单片机通信协议

通讯参数 数据传输格式 数据通讯举例说明 协议说明

一、通讯参数

通讯参数包括数据位,停止位,波特率、校验方式。

数据位、停止位、波特率由单片机决定。组态软件中的设定和单片机一致即可。校验方式为和校验。

二、数据传输格式

格式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为异常值,则该数据侦的数据无效。