NEXT:努力积累100篇
访问量
163.7K
文章数
71
运行天
405
一、通信协议的详细方案前文说到,我们设计了这么一个BTP(BWBTransportProtocol)通信协议:序号BTP字段名占用空间说明 1协议标识1字节 0x42(大写的'B') 2协议版本1字节 0x01(1.0版本) 3包类型1字节 握手请求包:0x01 握手响应包:0x02 心跳请求包:0x03 心跳响应包:0x04 数据包:0x05 断开请求包:0x06 断开响应包:0x07 4包序号1字节 0x00~0xFF循环使用 5数据长度2字节 0x0000~0xFFFF 6数据0~65535字节 要传输的数据
一、通信协议的设计说到通信,我们肯定会想到OSI七层模型,想到TCP/IP,想到Socket。但是如果我们需要直接和物理设备通信,尤其是对实时性、安全性要求较高的时候,采用在数据链路层发送自己设计的裸包的方法是最好不过的了:第一,安全性可控。自己设计的通信协议当然可以控制想要加密什么东西了。第二,实时性。不需要经过高层的封包解包,直接向MAC地址发送裸包。第三,也是最重要的,可裁剪。我们可以裁剪掉不需要的功能,增加需要的功能,这对于有内存闪存大小限制的嵌入式设备是很有意义的。那么,该如何去设计这个通信协议呢?最简单的协议可以考虑这些内容:序号协议字段名详细描述 1协议标识 标记这个包是用的你的协议 2协议版本 当协议有多个版本后,可以协调兼容问题&nb
1