这几天正在用STM32+LWIP做网络控制系统,也在跟STM32的网络控制斗智斗勇,正好今晚刚做了实验就看到了LZ的帖子。。。
因为我的工作对数据传输实时性要求很高,要求10ms一次的采样并返回控制数据,所以俺将SysTick中断时间设为5ms,LWIP协议栈的TCP查询时间定成5ms,因此TCP发送数据的poll时间是10ms(根据LWIP代码tcp_slowtmr()函数)。通过SNIFFER侦测发现STM32+LWIP协议栈能以10ms为间隔,每次发送至少550B的数据包(再多的数据量我就没测试了,因为用不着)。
上面说的是STM32以主动方式每过10ms发送一个包的情况。事实上如果是PC主动发送数据给STM32,STM32收到数据后马上返回500BYTE的数据的话,响应时间为330us左右!我感觉STM32的硬件速度不止于此,因为测试发现数据包为最小的1B也要200us的响应时间,这个200us的时间大概就是LWIP协议的消耗。LWIP并不进行数据复制,因此那100us的时间应该就是DMA传输内存数据到乙太网接口的时间开销,也就是说500B/100us==5B/us==40bit/us,相当于40M的网速吧?
|