STM32 以太网 MAC Loopback的实现
前言
在STM32以太网调试中经常会遇到“设备接收不到数据”,或者“设备发出的数据对端设备收不到”之类的问题。遇到这类问题首先要做的是定位问题发生的部位,这样做的好处就是可以指明下一步调试的方向,缩小分析的范围。以下图为例我们做个简单的说明,设备A和设备B通过以太网通信,现发现设备B无法接收设备A发送的消息,问题可能出现在几个地方:
应用层的程序,或者协议栈出错,数据根本没有到STM32以太网外设。这种情况我们在调试的时候,在以太网输出函数low_level_output中打个断点就可以检查出来。
STM32以太网MAC出现问题,没有把数据发送出去。对于这种情况,可以通过STM32以太网的MAC loopback功能来检查MAC的收发是否正常。
STM32以太网MAC和外部PHY之间的通信出现问题。可以通过PHY提供的loopback功能来检查。
设备A端的收发没有问题,问题可能出现在线路上或者设备B。可以通过在网口的接线上做网线交叉,也就是将RJ-45接口中TX+与RX+连接,TX-与RX-连接,来进行检查。