RoboVigor / RV-AutoAim

AutoAim by FuXing PS
MIT License
11 stars 3 forks source link

妙算STM32通讯测试 #2

Closed tccoin closed 5 years ago

tccoin commented 5 years ago

USART or CAN? 考虑稳定性、数据结构拓展性、传输速度。

tccoin commented 5 years ago

虽然说CAN通讯速率高又稳定,但是妙算上只有串口啊= = 反正也没得选就是了

tccoin commented 5 years ago

妙算系统 Ubuntu 14.04 https://blog.csdn.net/u012348655/article/details/51168356 https://blog.csdn.net/xhao014/article/details/7640568 Python 串口通讯就那么几行?我佛了

tccoin commented 5 years ago

因为采用的设备是妙算,所以也没得选只能用串口通讯,但是总想着要优化一下,串口实在太辣鸡了,考虑到要进行高帧率通讯,按我的经验要解决以下问题:

  1. 丢包
  2. 信息传输量少

针对丢包,那么就是要做校验,因为串口通讯速率不高,所以采用CRC8作校验。对于信息传输量少的问题嘛,那就是定义一套自己的数据帧结构,其中数据段用2字节拼成一个uint16,这样用2直接就可以表示$$0-2^{16}$$。想起来原先还想直接用JSON什么的,现在想想挺蠢的。

帧结构

Name Length Description Value(DEC)
SOF 8 起始段 87
ID 4 数据ID 0-15
LEN 4 数据长度n 0-15
DATA 16n uint16
CRC8 8 检验段
EOF 8 结束段 88

参考

CRC8算法参考 https://blog.csdn.net/zjli321/article/details/52998468 不是Hash,是CRC! https://eklitzke.org/crcs-vs-hash-functions

tccoin commented 5 years ago

发生了一些神秘的现象hhh,但是通讯实现了~