|
由于项目需要,需实时传送大量数据(80KB/s左右的机器人自身运行参数信息,伺服频率1K),用于机器人样机的研发调试。
最近几个月一直纠结与这个问题,一直想弄个简单的方法实现。
前几天买了个 有人 新出的串口透传WIFI USR-C322(TI CC3200),其文档说:波特率最大3M,1K UART 接收缓存(如下图)
其文档中的 UART 传送机理 只找到如下这条信息
简单测试如下(TCP模式):
1)3M波特率准确性测试, USR-C322 连续输出 0B10101010 数据的波形如下
上图可见,波形还是很不错的(我的探头及示波器很烂)
2)不开模块的串口流控,直接用3M 波特率给模块发送数据,注:每个字节间有几微妙的间隔,使得实际的传送速度大概在 80KB/s左右
用这种模式传送1 000 000 个字节(都是0xAA),一般会出现几个字节数据的丢包(暂时没发现数据出错),较少的时候出现几十个字节数据的丢包,有时又完全不丢包
3)开模块串口流控,与上述发送的模式基本相同,只是在每发送一个字节前,先检测模块的RTS(Request to Send)是否允许发送,在允许发送的前提下才发送数据。
用这种模式传送,可以明显发现,当PC端因为某种原因而接收缓慢时(可能WIFI被干扰,PC响应不过来 等),模块的RTS会拒绝接收新的串口数据。
通过这个方法可以解决,2)测试模式中 偶尔出现的较多数据丢失问题(即由于PC接收阻塞引起的丢包问题,可以用RTS解决)。
但 对于那种每次丢几个数据的丢包问题,还是没法解决(即使一次传送中,完全没有接收到RTS信号,还是丢了几个数据)
所以请教:
上面一次传送中几个字节数据是怎么丢的? PS(实在没法解决的话,我自己数据处理程序直接把丢包的这一帧数据扔了就好)
PS: 请路过的大侠,推荐高速的串口透传模块(越快越稳越好,价格不是问题(只卖一个嘛^ ^),速度可以稍低些)
PPS: 上述测试,是对于我自身高速传输应用的测试,低速没有测过
PPPS: 希望有人团队能把模块的传输特性,详细的出个文档(很不能理解,对于这样的商品,怎么会没有性能测试文档);希望把UART接收缓存开大些 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
阿莫论坛20周年了!感谢大家的支持与爱护!!
你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。
|