看到网上有一些关于嫌tftp速度太慢的帖子,有的说只有几十KB的速度。
最近也在研究lwip的tftp协议。用的stm32H7单片机,主频400MHz。刚开始是电脑通过无线连接路由,开发板通过网线连接路由。传输速度只有200KB。不能满足需求。
然后把电脑通过网线直接连路由。速度提高到500KB/s,然后又把电脑直连开发板,但是速度没有提高。
开始不知道原因出在哪里。怀疑是不是kai'开发板处理速度慢。然后用电脑对电脑TFTP试验,发现还是500KB速度。看来不是开发板的问题。
用的3CDaemon软件。换了tftpd32也是一样。感觉非常不合理,因为平时用QQ传文件也没有这么慢。难道FTP更快?但是理论上是TFTPgeng更快啊
后来发现用电脑对电脑时,把块大小提高可以提高传输速度。块大小越大,速度越快。电脑对电脑4MB/S。
原来是块大小影响了速度,默认块大小都是512字节。太小了。但是对开发板通信,即使是改了块大小,也不能提高速度,因为LWIP的TFTP协议的程序是不支持块大小协商的。协商不成功,还是按照512的速度发。
所以要提高速度就要修改tftp协议程序。
让他支持块大小协商不算难。要看RFC1782和RFC1783两个协议文件。然后修改程序就可以了。