单片机通信协议
通讯参数包括数据位,停止位,波特率、校验方式。
数据位、停止位、波特率由单片机决定。组态软件中的设定和单片机一致即可。校验方式为和校验。
格式1、组态软件读数据命令格式:
STX |
Sta |
R |
DataType |
DataAddr |
DataNum |
ETX |
LRC |
0D |
0A |
格式2、单片机应答读数据格式(正确):
STX |
End Code |
DataLong |
Data…. |
ETX |
LRC |
0D |
0A |
格式3、组态软件写数据命令格式:
STX |
Sta |
W |
DataType |
DataAddr |
Data |
ETX |
LRC |
0D |
0A |
格式4、组态软件位操作写数据命令格式:
STX |
Sta |
B |
DataType |
DataAddr |
BitOffset |
Data |
ETX |
LRC |
0D |
0A |
格式5、单片机应答读数据格式
| STX | EndCode |
ETX |
LRC |
0D |
0A |
1、读数据
组态软件:发送读数据命令(格式1)
单片机:响应读数据命令
正确:返回(格式2)
2、写数据
组态软件:发送写数据命令(格式3)
组态软件:发送开关量写命令(格式4)
单片机:响应写数据命令
正确:返回(格式5)
数据传输:所有数据均为16进制数
STX |
H02 |
报文开始码 |
ETX |
H03 |
报 文 结 束 码 |
0D |
H0D |
回 车 |
0A |
H0A |
换 行 |
Sta: 设备地址1字节
R:读标志1字节(0x52)
W:写标志1字节(0x57)
B:位操作写标志1字节(0x42)
DataType:需要交换的数据类型,1字节。1,字节;2,字,3,浮点型。
DataType的值 |
含义 |
1 |
字节 |
2 |
字 |
3 |
浮点数 |
DataNum:要读取的数据的数量,1字节。
DataAddr:为数据偏移地址2字节,低字节在前,高字节在后。数据偏移地址以字节为单位。
Data:实际传输的数据,低字节在前,高字节在后 。
DataLong: 单片机返回Data的字节数,2字节,低字节在前,高字节在后 。
BitOffset:位操作写命令时,在字节中的位的偏移(0~7) 。
LRC: 为从第一个字节 至LRC前的所有字节的异或值,1字节 。
EndCode:
EndCode数值 |
含义 |
0 |
正确应答 |
1 |
数据类型错误 |
2 |
数据范围超限 |
3 |
指令无法识别,应为R或W。 |
4 |
校验错误 |
如果结束码EndCode为异常值,则该数据侦的数据无效。