我们从2016年开始零星使用395Q,当时是D版,做服务器时UDP丢包率超过50%(连发5个SNTP包),网络端不定期失联(SPI端没问题),大约7天左右会出一次,断电重启才能恢复,基本没法用,反应给贵司后回应可能2端数据处理冲突,正在想办法解决。
2018年又捡起来试验,目前版本F版,做UDP服务器时丢包率大约还有15%,有所改善,凑合能用,期间做了个维修用的设备,MACRAW方式LLC协议只发不收,现场24小时运行3个多月来挺好;
2019年继续测试,这次同时使用socket 0和socket 3.
socket 3使用UDP协议客户端发送SNTP包获取时间,芯片硬复位后第一个发送的包必定丢失,返回超时,抓包软件什么都看不到,后面正常,但是每次收发后都会多一个空中断,就是全局中断0x80套接字中断0x00;
socket 0使用TCP长连接给服务器提供数据,只发现每次收发有空中断。
测试中发现网络端仍然有失联现象,发作时间最短10小时,最长15天,发作后收不到任何东西,恢复方法:1.断电重启 2.RESET脚复位 3.拔一下网线
以上都是实际应用中积累的记录,不是特意建立的试验环境。
国产通用协议栈目前只找到贵司有生产,CH395比较适合我们小数据量使用,希望能完善发现的问题。
贴一些调试期间的状态数据,其中G是全局中断寄存器,S是套接字中断寄存器,S0/S1是套接字状态寄存器。
CH395 Hardware Version = 46
IP = 192.168.1.177
IP Gateway = 192.168.1.1
IP Mask = 255.255.255.0
MAC = 84.C2.E4.F8.34.C1
G=80,S=41,TCP ready, S0=00, S1=00
G=10,S=01,G=10,S=00,G=10,S=02,G=10,S=04,TCP receive len = 10
TCP send len = 34
G=10,S=01,G=10,S=00,G=10,S=02,G=10,S=04,TCP receive len = 18
TCP send len = 10
G=10,S=01,G=10,S=00,G=10,S=02,G=10,S=04,TCP receive len = 10
TCP send len = 34
G=10,S=01,G=10,S=00,G=10,S=02,G=10,S=04,TCP receive len = 10
TCP send len = 34
G=10,S=01,G=10,S=00,G=10,S=02,G=10,S=04,TCP receive len = 10
TCP send len = 34
G=10,S=01,G=10,S=00,G=10,S=02,G=10,S=04,TCP receive len = 10
TCP send len = 34
G=10,S=01,G=10,S=00,G=10,S=02,G=10,S=04,TCP receive len = 10
TCP send len = 34
G=10,S=01,G=10,S=00,G=10,S=02,G=10,S=04,TCP receive len = 10
TCP send len = 34
G=10,S=01,G=10,S=00,G=10,S=02,G=10,S=04,TCP receive len = 18
TCP send len = 10
G=10,S=01,G=10,S=00,G=10,S=02,G=80,S=03,G=80,S=04,SNTP receive len = 48G=80,S=00,