Closed tccoin closed 5 years ago
虽然说CAN通讯速率高又稳定,但是妙算上只有串口啊= = 反正也没得选就是了
妙算系统 Ubuntu 14.04 https://blog.csdn.net/u012348655/article/details/51168356 https://blog.csdn.net/xhao014/article/details/7640568 Python 串口通讯就那么几行?我佛了
因为采用的设备是妙算,所以也没得选只能用串口通讯,但是总想着要优化一下,串口实在太辣鸡了,考虑到要进行高帧率通讯,按我的经验要解决以下问题:
针对丢包,那么就是要做校验,因为串口通讯速率不高,所以采用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
发生了一些神秘的现象hhh,但是通讯实现了~
USART or CAN? 考虑稳定性、数据结构拓展性、传输速度。