帧数据解析问题

[复制链接]
168|2
 楼主 | 2018-9-28 10:01 | 显示全部楼层 |阅读模式
如果数据部分包含与帧头一样的数据,需要怎么进行收发处理,如何判定一帧数据开始位置
| 2018-9-30 16:06 | 显示全部楼层
本帖最后由 dukedz 于 2018-9-30 16:15 编辑

判斷接收到的數據最開頭是否爲幀頭,是的話,按照長度字段去接收整個幀,判斷校驗是否正確。如果接收的數據長度不夠,超時後丟棄。

只要有一個步驟出錯,就清空整個接收緩衝。(譬如 DMA 環形接收,當前已經接收 40 字節,首個幀只占 20 字節,首幀出錯把 40 字節全丟掉)

所以,幾乎不存在誤把數據當作幀頭的情況,就算有,校驗不過當作普通錯誤丟掉即可。

再次強調:出錯清空所有接收緩衝數據。不要逐字節掃描幀頭。
| 2018-9-30 17:17 | 显示全部楼层
那需要从协议的整体去考虑,比如帧头后面数据的定义是否合理,帧长度是否正确,校验有没有通过等。一个编制良好的协议是不会受到“巧合”影响的。
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式
我要创建版块 申请成为版主

论坛热帖

关闭

热门推荐上一条 /1 下一条

快速回复 返回顶部 返回列表