发新帖我要提问
12
返回列表
打印

非固定长度的数据传输

[复制链接]
楼主: liuzaiy
手机看帖
扫描二维码
随时随地手机跟帖
21
chenjunt| | 2015-1-5 19:40 | 只看该作者 回帖奖励 |倒序浏览
自定义协议就好了。

使用特权

评论回复
22
morrisk| | 2015-1-5 19:40 | 只看该作者
做简单的异或校验呗

使用特权

评论回复
23
houcs| | 2015-1-5 19:41 | 只看该作者
实现过了。。自己定义一个协议就好,然后在PC端用ringbuff接收,然后通过状态机 分离有效数据就好。

使用特权

评论回复
24
supernan| | 2015-1-5 19:42 | 只看该作者
如果能够允许极少量的丢高就直接采用帧头+帧类型+数据+帧计数+CRC校验的方式,但不能接受丢包的话就麻烦点了。简单的方式,重要的数据发送多次,这样丢包概率就非常小了;复杂点就自己设计ACK指令回报确认的方式。

使用特权

评论回复
25
栩栩如生| | 2015-1-5 19:42 | 只看该作者
有很多现成的协议可以遵守,比如ModBus

使用特权

评论回复
26
liuzaiy|  楼主 | 2015-1-5 19:43 | 只看该作者
嗯,了解了,多谢大家

使用特权

评论回复
27
liuzaiy|  楼主 | 2015-1-5 19:43 | 只看该作者
那就结贴了哈

使用特权

评论回复
28
hnkf118| | 2015-1-6 16:07 | 只看该作者
其实 很简单。 非固定长度的数据包通讯,大多是利用数据字节之间的间隔来进行识别数据帧的,比如MODBUS协议是规定 数据帧之间3.5倍波特率字节间隔时间,每个字节数据中间最大不能超过1.5倍字节间隔时间。

你参考下。 如果可能你就用标准的MODBUS协议最好,而且有相应的调试工具,方便排除问题。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则