720
/
838
Nations Technologies Inc.
Tel
:
+86-755-86309900
:
Address: Nations Tower, #109 Baoshen Road, Hi-tech Park North.
Nanshan District, Shenzhen, 518057, P.R.China
Receive of multiple frames
Different from TxFIFO, since the status information of the frame follows the frame data, MAC can judge the status
of the received frame according to the frame status information immediately after the frame data, so the transmission
of the second received frame is immediately followed by the data and status information of the first received frame,
as long as RxFIFO is not full, any number of frames can be stored.
Receive flow control
When working in full-duplex mode, can set ETH_MACFLWCTRL.RFE to enable or disable the Pause frame
detection function. If the Pause frame detection is enabled, MAC can decode the received Pause frame, identify the
type field, operand field and pause time field, and transmit it after a certain period of time according to the parameters
of the pause time field in the Pause frame. During a pause, if a new Pause frame is received, the new pause time will
be loaded into the pause time counter immediately. If the value of the received pause time field is 0, MAC will stop
the pause time counter and resume data transmission. Determine how these received control frames are handled by
configuring these bits in ETH_MACFFLT.PCF[1:0]. If the Pause frame detection function is disabled, MAC will
ignore the received Pause frame.
Receive frame error handling
If RxFIFO is full before MAC receives the EOF, MAC controller will drop the entire frame and return to the
overflow state, and the overflow counter will be incremented accordingly.
If RxFIFO works in store-and-forward mode, MAC filter and discard all error frames, but by setting
ETH_DMAOPMOD.FEF and ETH_DMAOPMOD.FUF, RxFIFO can still receive error frames and frames
whose length is lower than the minimum frame length.
If RxFIFO works in the cut-through (threshold) mode, all error frames cannot be dropped. Only when DMA
reads the SOF of the frame from RxFIFO and RxFIFO obtains the error status of the frame, the error frame can
be dropped.
Receive frame status information word
After receiving the Ethernet frame, MAC will analyze and record the frame itself and some status information in the
receiving process, and write the receiving status information back to the DMA receive descriptor and related status
flags. Applications can utilize these status bits to implement upper layer protocols.
Note: The frame length value of 0 indicates that the frame written to RxFIFO is incomplete, such as RxFIFO
overflows or the value of the filter is dynamically modified during the receiving process, resulting in failure to pass
the filter.
Receive checksum module
Set ETH_MACCFG.IPC to enable the receive checksum module. The receive checksum module can calculate the
checksum of the IPv4 header and check that it matches the contents of the checksum field of the IPv4 header. If the
received Ethernet frame type field value is 0x0800, the frame is an IPv4 frame; if the received Ethernet frame type
field value is 0x86DD, the frame is an IPv6 frame.
RDES0.ICEGF is set to 1 when the received IP header:
–
The calculated checksum value of IPv4 header does not match the content of its checksum field
–
The data type indicated by Ethernet type field does not match IP header version field