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。