The preamble is intended for synchronization, the last two consequtive ones indicate the start of the data.
My circuit doesn't drop any frames, it simply converts serial Ethernet signal to SPI. FCS and MAC checking is done in software after receiving the whole frame.
You absolutely can get frames not addressed to you. Wireshark lets you do that. I debugged my adapter this way: I connected it to a dumb switch together with my computer and ran Wireshark on the computer which captured all frames regardless of their intended destination. On Linux you can even disable FCS checking and receive all rubbish from the wire.
Thanks, I had another question after a second reading of your post:
"The first bit of an Ethernet frame is always one, which means there might or might not be an extra edge in the beginning depending on the idle state of the amplifier. This extra edge, if it comes, needs to be filtered out."
Practically speaking what is the cause of the "extra" edge here? Would it be that the last bit of the FCS from the previous frame caused it to be a 1 and then the transceiver is immediately getting another edge from a preamble on a new Ethernet frame? Or am I confusing bits and edges?
A manchester-encoded bit 1 is a low-to-high transition: there should be "low" on the line which will change to "high". Before the "low" the line was idle (zero voltage difference), this state is interpreted by the differential amplifier as "high", so it's "high-low-high" at the beginning, but we are interested in the "low-high" edge and not in the "high-low" one.
Comments
The preamble is intended for synchronization, the last two consequtive ones indicate the start of the data.
My circuit doesn't drop any frames, it simply converts serial Ethernet signal to SPI. FCS and MAC checking is done in software after receiving the whole frame.
You absolutely can get frames not addressed to you. Wireshark lets you do that. I debugged my adapter this way: I connected it to a dumb switch together with my computer and ran Wireshark on the computer which captured all frames regardless of their intended destination. On Linux you can even disable FCS checking and receive all rubbish from the wire.
Thanks, I had another question after a second reading of your post:
Practically speaking what is the cause of the "extra" edge here? Would it be that the last bit of the FCS from the previous frame caused it to be a 1 and then the transceiver is immediately getting another edge from a preamble on a new Ethernet frame? Or am I confusing bits and edges?
A manchester-encoded bit 1 is a low-to-high transition: there should be "low" on the line which will change to "high". Before the "low" the line was idle (zero voltage difference), this state is interpreted by the differential amplifier as "high", so it's "high-low-high" at the beginning, but we are interested in the "low-high" edge and not in the "high-low" one.