软件常用通信协议模板

简述

通信协议是软件的重要组成部分,是系统中软件交互信息的桥梁和标准。
我接触过的通信协议主要用于三种场合,对应三种形式的数据形式:
1)上位机和下位机各模块之间
这种场合下通常是通过串口或网口传输状态、控制、数据信息,通信协议复杂而紧密。
通常一个字节甚至一个bit位就表征了一个完整信息,需要报头、报尾、CRC、时间戳等组成。
这类通信协议通常通过整型约定系数的方式表征浮点数,编写结构体时需要严格区分unsigned和signed类型,还要注意字节对齐问题。
Modbus-Profibus、Can总线等行业标准也采用的这种形式。
2)互联网Web传输
通常采用HTTP短报文的方式传输数据。
数据通常采用Json格式,格式非常清楚而明了。
3)局域网内或自环通信
通常采用TCP/UDP的方式进行传输,协议定义可以采用信息头+分割符的方式,非常灵活而多变。

模板

1)上位机和下位机通信协议模板

字序号 名称 字节 数据 备注
0–1 2 0x44AA
2–2 识别码 1 0x5E
xx xx xxx xx xx
75–76 2
77–77 1
78–78 1
79–79 1
80–80 1
81–81 1
82–83 毫秒 2
84–94 预留 11
95–96 校验码 2 CRC_16冗余校验
97–98 2 0x22CC

2)互联网短报文通信协议模板

http/https请求方式:POST
http://工程路径/app/xx.do
请求body示例:
{
	"type":"xx",
	"number":"xx",
	"xx":"xx",
	"time":"2019-04-11 12:00:01"
}

3)局域网或自环通信模板

信息种类 格式 举例 备注
控制信息 “C”*“Restart” C*Restart 重启
xx xx xx xx
发布了47 篇原创文章 · 获赞 45 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/lusanshui/article/details/89204005