ETHERNET CONTROLLER
S3C4510B
MII TRANSMIT OPERATION
The transmit block consists of three state machines: the gap_ok state machine, the back_off state machine, and
the main transmit state machine.
The gap_ok State Machine
The gap_ok state machine tracks and counts the inter-gap timing between the frames. When not operating in
full-duplex mode, it counts 96 bit times from the deassertion of the carrier sense (CrS) signal. If there is any
traffic within the first 64 bit times, the gap_ok state machine reset itself and starts counting from zero.
If there is any traffic in the last 1/3 of the inter-frame gap, the gap_ok state machine continues counting.
Following a successful transmission, a gap_ok is sent at the end of the next 96 bit times, regardless of the
network traffic.
In full-duplex mode, the gap_ok state machine starts counting at the end of the transmission and the gap_ok
signal is sent at the end of the 96 bit times, regardless of the network traffic.
Assemble MAC frame
Yes
Carrier sense==ON?
Wait for interframe gap
(96-bit time), start Tx
with preamble + SFD
Continue
transmission
Yes
Collision detected?
Preamble and SFD
transmitted?
Done. Complete Tx
Yes
Stop transmission,
send 32-bit jam,
++ Attemp_count
Wait for back-off time:
(=slot time x r),
Attempt_count>=
Max_attempt?
k = minimum (n, back-off limit (=10))
0<=n <Max_attempt (=16)
0<= random integer (r) <= 2k
Yes
Report attempt limit
exceeded error
; To upper level layer
Figure 7-18. CSMA/CD Transmit Operation
7-52