串口通信协议设计

经常和各种串口协议的设备打交道,也做过一些串口设备的通信协议,因为并不经常做,所以可能在再做协议设计时, 就忘掉了之前已经积累的宝贵经验,又从头再来。青春不再,时间不能再这样白白浪费掉了。费话少说,直接上干货吧。

1.帧头起始标志,帧尾结束标志;

2.帧数据长度

3.指令及参数数据

4.检验位(“异或校验”和“和校验”)。

回复的数据中,也要有上面的要素。比如为什么在回复中也要加入3.指令表示呢,因为加入了这个,在上位机中的代码中 就可以简单的根据这个指令处理了,而不必有一个状态机设计。参见(状态机在指纹通讯编程中的应用)否则的话,理论上好像可以去掉这个,但是有了这个, 可以简化对端的处理。