Many times i notice people “kind of afraid” of some protocol, trying to avoid the usage because “it’s complicated”, I decide to go in-depth in one and show that maybe it’s not so complicated after all. First challenge is choosing the protocol and decide about the Ethernet, because this protocol has many challenges in my mind, and it’s well-known, old, has many standards, have misconceptions that another protocol, like USB or HDMI don’t.
I’ll try to show the protocol in low-level (bit level) in few words possible, many things will be missing in this text, so don’t use this text to do any ethernet work related.
The Ethernet was started in 1973, but only in 1990 was released the standards IEEE 802.3i that is known as Ethernet 10BASE-T or “10Mbit Ethernet”, and the first point is that there were some standards before, like the DIX Ethernet, StarLAN and LattisNET. I don’t think theses protocols are used today, so I’ll ignore them and focus only on the IEEE 802.3i, that I’ll call “Ethernet”.
Other point is the IEEE 802.3 standard, is a collection of standard so, we have Ethernet over Coax cable, twisted pair, Fiber-Optic, and many other options. Again the focus is the 10BASE-T (10 is refer of 10Mbit, the BASE refer signaling BASE or BROAD and T refer twisted pair).
The ethernet standard 802.3i will cover only the physical and data link of the OSI model, but in the data link layer will be divided into MAC (media access control) and LLC (logical link control), the 802.3i only cover the MAC layer, don’t cover the LLC layer, this is cover in 802.2.
For a designer that want to include the ethernet in your project (Considering a IC Designer) you will need design theses.
Physical layer (Mostly Analog IC Designer)
All communication is transmitted by a differential driver and will have the deal with some encoded data in and out as the control in and out.
All data will be encoded in Manchester encode and will communicate in full-duplex or half-duplex.
Media Access Control Layer (Digital IC Designer)
Uses CSMA/CD control access and will receive and send a frame that will be describe below:
1 – Preamble
2 – SFD
3 – Destination Address
4 – Source Address
5 – Length/Type
6 – MAC Client data / PAD (Payload)
7 – Frame Check Sequence
8 – Extension (optional)
1 – Preamble is a 7 bytes(56 bit) that is sent to allow the PHY layer reaches a steady state, these bytes is:
10101010 10101010 10101010 10101010 10101010 10101010 10101010
2 – SFD is the Start Frame Delimiter show the start of the frame, this is one byte (8 bit):
3 and 4 – Destination and Source Address, both is an 6 bytes (48 bit), that theoretically represent a unique identifier for each equipment.
5 – This can represent two types of data, in 2 bytes (16 bits) the length or type of the following data.
6 – This is the data to be sent, or message, can be 46 to 1500 bytes long (368 to 12000 bits) and at the end is included a PAD. Any other protocol will be in it.
7 – This is a CRC calculation of the Destination and source address, length/type field and data/pad field, and is attached in the end of data/pad field, that has 4 bytes (32 bits) long.
8 – It’s not transmitted in half-duplex mode, is transmitted until complete the time frame.
There are many controls and processes that the MAC Layer will execute, but i don’t think this will very interesting to show in this post. And there is no way that i can show every detail of the standard in some small internet post.
But as you can see, isn’t complicated to implement, sometimes it’s hard to get some information if it’s old, or maybe pay for the standard and understand it.
It’s totally possible to a designer implement any standard, the most complicated is understand the standard that is written not in a very practical way, this need practice to understand it.