如题,1788主控板卡与KSZ8041通讯,接口为MII方式。采用的是周立功版本的TCP/ip协议栈。移植好后,PC端与主控板卡通过交换机连接,PC端用网络调试助手下发一定数据到主控板,主控板接收后,再回发到PC端显示。目前通讯、收发都正常。
但是存在一个问题,连续发送若干帧(不定,几帧到几十帧的样子)后,会突然出现pc端收不到主控板回发的数据了,通过抓包工具抓包,发现其实,主控板一直在正常回发数据包(网络抓包工具抓到回发的数据包了),但是似乎pc端收不到,开始以为是网络调试助手的问题,更换多个网络调试工具,问题一样。
以上问题,我采用,在主控板底层最终发送时,简单的重发一次后,发现问题改善很多,大约几百帧到上千帧才会出现,但是仍然存在。(其实以太网原来的协议栈里有重发机制,但是发现出问题时,代码并没有执行重发,因为它读取发送中断寄存器后,根据其状态判定发送是成功的,不会执行重发)。
另外,考我还采用了RMII通讯方式,收发也调试通了,但也会有上述问题,但该模式下,即使不加入重发机制,概率也低的多,一般都要几百几千帧会出现一次。且,RMII通讯有一个新的问题,即主控板每次收到PC下发的数据包,最后1个或2个字节数据都是错误的,这点也不明白为什么。
请各位大神之路,不胜感激!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>