首页 > 代码库 > iHealthGateway协议格式

iHealthGateway协议格式

扩展协议-基本指令格式

字节数

数值

解释

0

0xF5

头命令

1

0xNN

端口号

2

0xNN

数据包长度(MSB)

3

0xNN

数据包长度(LSB)

4

0xNN

UID

...

0xNN

9

0xNN

10

0xNN

命令ID

11

0xNN

数据字段

0xNN

N

0xNN

N+1

0xNN

和校验

4.2.1 头命令:

每一个扩展协议包的头命令都是0xF5。

4.2.2 端口号:

 

说明

0

扩展芯片固定端口号(Port0),其他模块在未分配Port前,初始值也为0。

1~255

Port1~255,Port的值由扩展芯片或CPU分配。

 

4.2.3 数据包长度:

从数据包长度字节下一字节开始计算,不包括校验字节,数据包长度不允许超过65535字节。

4.2.4 UID

当UID = 0时,指扩展芯片或扩展模块。

当 UID ≠ 0时,指产品的内部单片机唯一的序列号(若超过6字节,则取最后的6个字节)。

4.2.5 命令ID:

当命令ID为0时,代表数据型指令。其他命令ID详见下表。

基础通讯协议-基本指令格式

字节数

数值

解释

0

0xA0/0xB0

头命令

1

0xNN

数据包长度

2

0xNN

状态ID

3

0xNN

顺序ID

4

0xNN

命令数据字段

0xNN

N

0xNN

n+1

0xNN

Wi-Fi模块MAC地址字段(Wi-Fi通信有此字段,其他通信方式无此字段)

0xNN

n+6

0xNN

n+7

0xNN

和校验

注:上表中n表示数据包的第n个字节,0xNN表示此字节内容可以根据实际所用命令包内容进行修改,数据包中所有数据除特殊说明处外,其余都为无符号型数据,下同。

头命令:下位机向上位机发送指令头命令为0xA0,上位机向下位机发指令头命令为0xB0。

数据包长度:从数据包长度字节下一字节开始计算,不包括校验字节,数据包长度不允许超过255字节。如超过需对命令数据字段进行分包。

状态ID:表示该条命令的状态。该ID用于基础通讯层间明确命令的状态使用,产品层间不使用。

产品层向基础通讯层明确状态,应使用状态参数。

顺序ID:范围从0x00-0xFF,上位机软件发出的指令的顺序ID为单数递增,下位机软件发出的指令的顺序ID为双数递增,首条指令顺序ID为0x00或0x01,此后发送指令依次加一,上下位机整体统计。当顺序ID为0xFF时,下一条指令顺序ID为0x00。

命令数据字段:通信过程中需发送的产品类型、命令、数据等信息。对于确认指令此字段长度可能为零。

MAC地址字段:下位机MAC地址信息,长度为6字节。此字段为 Wi-Fi通信使用字段,其他通信方式无此字段。

和校验为数据包长度所包含所有数据的和,不包括头命令,数据包长度。

基础通讯协议-命令数据字段格式

字节数

数值

解释

0

0xNN

产品类型

1

0xFF

命令ID

4

0xNN

数据部分

0xNN

n

0xNN

产品类型: 见附录C,产品类型数值在拟定过程中不可为0x00;

注:存在公用功能的产品(例如,设置Wi-Fi模块,固件升级),发送该类命令时产品类型应使用特殊产品类型,详见附录C。

命令ID: 0xD0-0xFF字段,此字节段为保留段,各产品定义的命令ID不可使用。其中0xD0-0xD6为自升级命令ID,0xE0-0xE9为设置Wi-Fi指令的命令ID, 0xF0-0xF9为非IDPS认证设备传输设备信息的命令ID, 0xFA-0xFF为加密认证指令的命令ID。各产品命令ID如使用完后,可在数据ID部分嵌套一层命令ID,如当命令ID为某一固定值时,数据部分第一个字节为二级命令ID。

对于模块类产品,设计中通常需要部分命令用于模块和MCU之间交换信息、设置、工装实现等。此类命令不允许使用保留命令ID字段。而建议产品类型使用特殊类型。

数据部分字节数可以为0。