阅读( 271 ) 我要纠错

通讯格式

协议结构如下:

帧头

包头数据

数据域

包校验

帧尾

0xA5(8byte)

(14byte)

(Nbyte)

(2byte)

0X5A(1 byte)

A5 A5 A5 A5 A5 A5 A5 A5

FE FF 00 08 00 00 00 00 00 00 FE 02 XX 00

命令组+命令功能编号+数据长度+数据

两位CRC16

5A

 

以下为协议中各项数据的说明:

1. 帧头由 8 个字节的0xA5组成,帧尾由一个字节的0x5A组成。帧头采用8个帧头,是为了防止0xA5丢失导致数据接收错误。在接收数据时,只要接收到一个0xA5就可认为接收到了帧头,然后等待下一个不是0xA5的数据,该数据为该帧的第一个有效数据。

2. 包头数据包含本包数据的一些属性,其定义参考包头数据格式定义。

3. 数据域为用户协议层数据,参考数据域定义。

4. 包校验为包头数据和数据域的校验值(CRC16 校验算法参考附录)。

 

3.1协议的分层

协议采用分层模式,分为协议层和物理传输层两层,其中数据域属于协议层数据。物理传输层又分为 PHY0PHY1两层,其中PHY1层数据结构如下:

包头数据

数据域

包校验

14byte

Nbyte

2byte

 

PHY1层实现数据域的封包操作,它为数据域增加包头,并计算包数据的校验值。

PHY0层数据结构为:

帧头

PHY1层数据

帧尾

8byte

Nbyte

1byte

 

PHY0层为PHY1数据增加帧头和帧尾,并对PHY1数据进行转义(参考字符转义


×