上位机使用RBF文件给FPGA升级时文件太大,切割后的包太大,传输速率慢,如何解决

上位机使用RBF文件给FPGA升级时文件太大,切割后的包太大,传输速率慢,怎么解决?
开发一个上位机软件,通过读取RBF文件给FPGA升级,实现实时升级功能,但软件开发完成后发现,RBF文件有4M多,规定每个包为130个字节,组成完成数据包为139个字节,总包数为33000个左右,结果升级完成需要将近1小时,领导说这速度差不多是10年前,需要将速度控制在8分钟以内,求各位大大出点主意,该如何解决?
------解决思路----------------------
你用什么方法传输数据的呢?
一种策略是多线程传输,33000个包可以事先分割好,定义好包顺序,用多线程同时传输,比如5个线程,每个传输6600个包,都收完后再合并。那么时间可能只需要五分之一左右了。
当然,这样看你的通信通道的能力。
------解决思路----------------------
每秒 1274 个 字节 提高到 115200 是100 倍 , 可以在 1分钟内 完成.
------解决思路----------------------
提高传输速度
1.利用带宽发更多数据
2.将数据变小,也就是压缩
------解决思路----------------------
引用:
Quote: 引用:

以前我也是做过串口对通信升级硬件, 感觉也是非常快的, 升级一张卡的固件程序, 也就是几秒钟时间, 只是固件比较小, 才几百K.

我的有4M,几百K变成4M所需要的时间会变成让人受不了。


比如波特率9600  然后一个字符使用12位,  则每秒传输800Bytes    那么4M就需要 5220秒 即87分钟.  这还是理论速度, 如果加上程序自已内部逻辑, 速度会更慢.

所以, 要么提高波特率, 要么减小数据体积.  一般是需要优化你的固件程序, 不要让体积那么大. 固件程序的每一个bit位都是很珍贵的.
------解决思路----------------------
波特率直接搞成 115200, 然后每次发送设置为 10K 左右, 是可以的,在这个波特率下,传输是可以在规定时间完成的。