Zigbee SDK 产测

更新时间:2022-02-23 06:44:20下载pdf

本文介绍了涂鸦Zigbee标准通用产测协议规范,使得 PC 端产测工具能够标准化,同时兼容不同 Zigbee 产品的 PCBA 和整机产测的需求。

适用范围

  • 规范涂鸦Zigbee设备进入产测模式的方法。
  • 明确涂鸦Zigbee设备需要产测的功能点。
  • 明确涂鸦Zigbee设备连通测试的流程,提升产测效率。

产测范围

  • 进入产测和复位测试。
  • Zigbee设备配网测试。
  • Zigbee设备相关功能点测试。

产测拓扑

Zigbee SDK 产测

RF 通信约定

说明:Zigbee 设备需要配网到指定的产测版专用网关下才能进行产测。

配网操作步骤如下:

  1. 先开启网关允许配网。
  2. 长按设备配网键,等到设备配网指示灯闪烁后熄灭配网完成。
  3. 设备配网指示灯常亮指示进入产测模式。

产测流程

涂鸦 Zigbee 标准通用产测协议的产测流程如下图所示:

Zigbee SDK 产测

帧格式说明

  • 格式:

    长度 2 字节 1 字节 1 字节 2 字节 X 字节 1 字节
    格式 帧头 版本 命令字 数据长度 数据 校验和字段
  • 字段说明:

    字段 字节数 说明
    帧头 2 固定为0x55AA
    版本 1 升级扩展用
    命令字 1 具体帧类型
    数据长度 2 如果是JSON格式的字符串则不包括字符串的结束符
    数据 XXXX -
    校验和 1 从帧头累加到数据字段的最后一个字节再对256求余

已使用的命令字:0x00~0x14;0x80~0x87 ;0x90

必选测项

Zigbee设备产测协议用于整个测试流程,包括PCBA或整机和产测专用网关之间的RF通信(
使用Zigbee私有cluster )以及PC上位机与产测专用网关之间的TCP通信。

进入产测模式(0x00)

产测软件:

字段 字节数 说明
帧头 2 0x55AA
版本 1 0x00
命令字 1 0x00
数据长度 2 0x0001
数据 1 0x00
校验和 1 从帧头累加到数据字段的最后一个字节再对256求余

HEX格式发送示例:55 AA 00 00 00 01 00 00

模组返回:

字段 字节数 说明
帧头 2 0x55AA
版本 1 0x00
命令字 1 0x00
数据长度 2 0x0001
数据 2 第1字节为信道号,第2字节由以下元素组成:
  • bit 0:产测类型,0 表示模组产测,1 表示网关产测
  • bit 1:是否写入 PID,0 表示写入pid, 1 表示不写入 PID;
  • bit 2:是否写入固件授权码, 0 表示不写入固件授权码,1 表示写入固件授权码
  • bit 3:是否支持写入 auzkey,0 表示不支持,1 表示支持
  • bit 4-7:为保留位置
校验和 1 从帧头累加到数据字段的最后一个字节再对256求余

HEX格式返回示例:

  • 写入设备ID:55 AA 00 00 00 01 00 00
  • 网关产测:55 AA 00 00 00 01 01 01
  • 不写设备ID:55 AA 00 00 00 01 02 02

说明:设备在收到私有 Cluster 命令的进入产测命令后,进入网关产测流程。

读取MAC地址(0x01 )

产测软件:

字段 字节数 说明
帧头 2 0x55AA
版本 1 0x00
命令字 1 0x01
数据长度 2 0x000E 表示以下字符串长度(不含 0
数据 14 {“mac”: “read”}
校验和 1 从帧头累加到数据字段的最后一个字节再对256求余

HEX格式发送示例:55 AA 00 01 00 0E 7B 22 6D 61 63 22 3A 22 72 65 61 64 22 7D 95

模组返回:

字段 字节数 说明
帧头 2 0x55AA
版本 1 0x00
命令字 1 0x01
数据长度 2 0xXXXX 表示以下字符串长度(不含 0
数据 XX 指示待测模组的MAC地址 {“mac”: “XX”};
校验和 1 从帧头累加到数据字段的最后一个字节再对256求余

说明:MAC地址长度固定为8个字节,为设备唯一标识符,必须支持。

GPIO测试(可选)( 0x02)

产测软件:

字段 字节数 说明
帧头 2 0x55AA
版本 1 0x00
命令字 1 0x02
数据长度 2 0x0001
数据 1 0x00
校验和 1 从帧头累加到数据字段的最后一个字节再对256求余

HEX格式发送示例:55 AA 00 02 00 01 00 02

模组返回:

字段 字节数 说明
帧头 2 0x55AA
版本 1 0x00
命令字 1 0x02
数据长度 2 0xXXXX 表示以下字符串长度(不含 0
数据 XX {“ret”:true} 或 {“ret”:false}
校验和 1 从帧头累加到数据字段的最后一个字节再对256求余
  • HEX格式返回成功示例:55 AA 00 02 00 0C 7B 22 72 65 74 22 3A 74 72 75 65 7D 8E
  • HEX格式返回失败示例:55 AA 00 02 00 0D 7B 22 72 65 74 22 3A 66 61 6C 73 65 7D DA

说明:GPIO的测试在PCBA和整机测试中不需要。

写入设备ID(可选)(0x03)

产测软件:

字段 字节数 说明
帧头 2 0x55AA
版本 1 0x00
命令字 1 0x03
数据长度 2 0xXXXX
数据 XX {“PID”: “XXXXXXXX”}
校验和 1 从帧头累加到数据字段的最后一个字节再对256求余

HEX格式发送示例:55 AA 00 03 00 12 7B 22 50 49 44 22 3A 22 30 31 32 33 34 35 36 37 22 7D 47

若模组在进入产测模式中返回数据为0x00,则上位机需要写入设备ID。

模组返回:

字段 字节数 说明
帧头 2 0x55AA
版本 1 0x00
命令字 1 0x03
数据长度 2 0xXXXX 表示以下字符串长度(不含 0
数据 XX {“ret”:true} 或者 {“ret”:false}
校验和 1 从帧头累加到数据字段的最后一个字节再对256求余
  • HEX格式返回成功示例:55 AA 00 03 00 0C 7B 22 72 65 74 22 3A 74 72 75 65 7D 8F
  • HEX格式返回失败示例:55 AA 00 03 00 0D 7B 22 72 65 74 22 3A 66 61 6C 73 65 7D DB

说明:写入的设备信息为product ID,长度为8
bytes的字符串,写入后需要复位,然后再读取PID校验。

模组复位测试(0x04)

产测软件:

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x00
命令字 1 0x04
数据长度 2 0x0001
数据 XX 0x00
校验和 1 从帧头累加到数据字段的最后一个字节再对255求余

HEX格式发送示例:55 AA 00 04 00 01 00 04

模组返回:

字段 字节数 说明
帧头 2 0x55AA
版本 1 0x00
命令字 1 0x04
数据长度 2 0x0001
数据 XX 0x00
校验和 1 从帧头累加到数据字段的最后一个字节再对256求余

HEX格式返回示例:55 AA 00 04 00 01 00 04

说明:模组返回数据后再复位。

读取设备ID(可选)(0x05)

产测软件:

字段 字节数 说明
帧头 2 0x55AA
版本 1 0x00
命令字 1 0x05
数据长度 2 0x000E 表示以下字符串长度(不含 0
数据 14 {“PID”: “read”}
校验和 1 从帧头累加到数据字段的最后一个字节再对256求余

HEX格式发送示例:55 AA 00 05 00 0E 7B 22 50 49 44 22 3A 22 72 65 61 64 22 7D 45

模组返回:

字段 字节数 说明
帧头 2 0x55AA
版本 1 0x00
命令字 1 0x05
数据长度 2 0xXXXX 表示以下字符串长度(不含 0
数据 XX {“PID”: “XXXXXXXX”}
校验和 1 从帧头累加到数据字段的最后一个字节再对256求余

说明:ID长度为8个字节字符串。

获取固件指纹(0x06)

产测软件:

字段 字节数 说明
帧头 2 0x55AA
版本 1 0x00
命令字 1 0x06
数据长度 2 0x0001
数据 1 0x00
校验和 1 从帧头开始按字节求和得出的结果对256求余

HEX格式发送示例:55 AA 00 06 00 01 00 06

模组返回:

字段 字节数 说明
帧头 2 0x55AA
版本 1 0x00
命令字 1 0x06
数据长度 2 0xXXXX 表示以下字符串长度(不含 0
数据 XX 串口:{“ret”:true,“firmName”: “XX”,“firmVer”: “X.X.X”}
网关:{“ret”:true,“N”: “XX”,“V”: “X.X.X”}
校验和 1 从帧头开始按字节求和得出的结果对256求余

说明:产测软件需要对固件返回的指纹信息做校验,即固件名称和固件版本做校验,防止用错授权key
或烧错固件。

写入固件授权码(0xE0)

产测软件:

字段 字节数 说明
帧头 2 0x55AA
版本 1 0x00
命令字 1 0xE0
数据长度 2 0xXXXX 表示以下字符串长度(不含 0
数据 1 { “key”: “xxxxxxxxxxxxx” }
校验和 1 从帧头开始按字节求和得出的结果对256求余

模组返回:

字段 字节数 说明
帧头 2 0x55AA
版本 1 0x00
命令字 1 0xE0
数据长度 2 0xXXXX 表示以下字符串长度(不含 0
数据 XX {“ret”:true} /{“ret”:false}
校验和 1 从帧头开始按字节求和得出的结果对256求余

设备离网测试(组网独占命令字)(0x10)

产测软件:

字段 字节数 说明
帧头 2 0x55AA
版本 1 0x00
命令字 1 0x10
数据长度 2 0x0001
数据 1 0x00
校验和 1 从帧头累加到数据字段的最后一个字节再对256求余

HEX格式发送示例:55 AA 00 10 00 01 00 10

模组返回:

字段 字节数 说明
帧头 2 0x55AA
版本 1 0x00
命令字 1 0x10
数据长度 2 0x000C 表示以下字符串长度(不含 0
数据 12 {“ret”:true}
校验和 1 从帧头累加到数据字段的最后一个字节再对256求余

HEX格式返回示例:55 AA 00 10 00 0C 7B 22 72 65 74 22 3A 74 72 75 65 7D 9C

说明:设备收到离网指令后返回成功,1s后离网。离网后设备在重新上电前不再主动入网。

RF测试(0x07)

模组的RF测试方式为DUT(待测设备)和GU(黄金单元)之间通过回环测试的方式进行,即DUT端进行发包,GU端收到之后再转发给DUT,DUT端收到之后进行统计并将结果通过串口上报给PC。

产测软件:

字段 长度(bytes) 说明
帧头 2 0x55AA
版本 1 0x00
命令字 1 0x07
数据长度 2 0xXXXX 表示以下字符串长度(不含 0),
数据 XX {“send”:XX} XX表示测试包的数量
校验和 1 从帧头累加到数据字段的最后一个字节再对256求余

DUT返回:

字段 长度(bytes) 说明
帧头 2 0x55AA
版本 1 0x00
命令字 1 0x07
数据长度 2 0xXXXX 表示以下字符串长度(不含 0),
数据 XX {“ret”:XX} 或 {“ret”:false} XX表示接收到的测试包数量
校验和 1 从帧头累加到数据字段的最后一个字节再对256求余
  • HEX格式返回成功示例:55 AA 00 06 00 09 7B 22 72 65 74 22 3A XX 7D XX
  • HEX格式返回 丢包率>=85% 示例:55 AA 00 06 00 0D 7B 22 72 65 74 22 3A 66 61 6C 73 65 7D E3

说明

  1. RF测试的时候DUT和GU端都需要进入产测模式,且设置为相同的信道。
  2. 发送测试包只需要带发送次数即可,包的payload信息预先写入DUT。
  3. RF测试在PCBA和整机产测中不需要。

设备 DP 可选测项

由于设备之间功能点的不同,以下协议在产测应用层不是实现所有的条目。

LED测试(0x08)

产测软件:

字段 字节数 说明
帧头 2 0x55AA
版本 1 0x00
命令字 1 0x08
数据长度 2 0x0001
数据 1
  • 0x00: 全亮
  • 0x01: 全灭
  • 0x02: 交替闪烁(500ms)
校验和 1 从帧头累加到数据字段的最后一个字节再对256求余

模组返回:

字段 字节数 说明
帧头 2 0x55AA
版本 1 0x00
命令字 1 0x08
数据长度 2 0x000C 表示以下字符串长度(不含 0
数据 12 正确返回{“ret”:true}/错误不返回
校验和 1 从帧头累加到数据字段的最后一个字节再对256求余

HEX格式返回示例:55 AA 00 08 00 0C 7B 22 72 65 74 22 3A 74 72 75 65 7D 94

说明:对于灯少的设备使用交替闪烁,对于灯多的设备使用全亮;LED动作需要人为判断。

继电器测试(0x09)

产测软件:

字段 字节数 说明
帧头 2 0x55AA
版本 1 0x00
命令字 1 0x09
数据长度 2 0x0001
数据 1 0x00: 全开 0x01: 全关 0x02: 交替开关三次(500ms)
校验和 1 从帧头累加到数据字段的最后一个字节再对256求余

模组返回:

字段 字节数 说明
帧头 2 0x55AA
版本 1 0x00
命令字 1 0x09
数据长度 2 0x000C 表示以下字符串长度(不含 0
数据 12 正确返回{“ret”:true}/错误不返回
校验和 1 从帧头累加到数据字段的最后一个字节再对256求余

HEX格式返回示例:55 AA 00 09 00 0C 7B 22 72 65 74 22 3A 74 72 75 65 7D 95

说明:对于继电器少的设备使用交替动作,对于继电器多的设备使用全开动作;继电器动作需要人为判断。

按键测试(0x0A)

产测软件:

字段 字节数 说明
帧头 2 0x55AA
版本 1 0x00
命令字 1 0x0A
数据长度 2 0x0001
数据 1 0x00
校验和 1 从帧头累加到数据字段的最后一个字节再对256求余

HEX格式发送示例:55 AA 00 0A 00 01 00 0A

模组返回:

字段 字节数 说明
帧头 2 0x55AA
版本 1 0x00
命令字 1 0x0A
数据长度 2 0xXXXX
数据 XX {“keyID”:n} N表示按键值,例如{“keyID”:0} 、{“keyID”:1}、{“keyID”:2}
校验和 1 从帧头累加到数据字段的最后一个字节再对256求余

开关量传感器测试(0x0B)

产测软件:

字段 字节数 说明
帧头 2 0x55AA
版本 1 0x00
命令字 1 0x0B
数据长度 2 0x0001
数据 1 0x00 传感器类型标识 门磁:0x00 红外:0x01 光敏:0x02 烟雾:0x03 燃气:0x04 水浸:0x05
校验和 1 从帧头累加到数据字段的最后一个字节再对256求余

模组返回:

字段 字节数 说明
帧头 2 0x55AA
版本 1 0x00
命令字 1 0x0B
数据长度 2 0xXXXX 表示以下字符串长度(不含 0
数据 1 {“Dtn”:true} 或 {“Dtn”:false} ‘t’表示传感器类型 ’n’表示同类型传感器下的个数 例如:两个红外{“D10”:true}和{“D11”:true}
校验和 1 从帧头累加到数据字段的最后一个字节再对256求余

说明:要区分同一个设备上有多个不同类型开关量传感器,同时还要区分同一类型传感器下的哪一个传感器。

模拟量传感器测试(0x0C)仅用作温湿度传感器

产测软件:

字段 字节数 说明
帧头 2 0x55AA
版本 1 0x00
命令字 1 0x0C
数据长度 2 0x0001
数据 1 0x00 传感器类型标识 温湿度:0x00 类目待扩充
校验和 1 从帧头累加到数据字段的最后一个字节再对256求余
温湿度HEX格式发送 55 AA 00 0C 00 01 00 0C`

模组返回:

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x00
命令字 1 0x0C
数据长度 2 0xXXXX 表示以下字符串长度(不含 0
数据 XX {“S1”:Value, “S2”:Value} 例如:S1: 温度值,S2:湿度值 如果只有一个值则S2为0
校验和 1 从帧头累加到数据字段的最后一个字节再对256求余

说明:每次返回两个模拟量值,少于两个模拟量的设备只是用sensor1,多余两个模拟量的设备,分多次返回。模拟量的值使用int32_t传递,传感器需要将float小数点消除后转换为int32_t发送。

调色灯测试(0x0D)

产测软件:

字段 字节数 说明
帧头 2 0x55AA
版本 1 0x00
命令字 1 0x0D
数据长度 2 0x0001
数据 1 0x00: 红灯 0x01: 绿灯 0x02: 蓝灯 0x03: 冷(白)光测试 0x04: 暖光测试 0x04: 老化测试(RGB灯要交替闪烁10分钟;冷暖灯要冷色和暖色全功率交替闪烁10分钟)
校验和 1 从帧头累加到数据字段的最后一个字节再对256求余

模组返回:

字段 字节数 说明
帧头 2 0x55AA
版本 1 0x00
命令字 1 0x0D
数据长度 2 0x000C 表示以下字符串长度(不含 0
数据 12 正确返回{“ret”:true}/错误不返回
校验和 1 从帧头累加到数据字段的最后一个字节再对256求余

HEX格式返回示例:55 AA 00 0D 00 0C 7B 22 72 65 74 22 3A 74 72 75 65 7D 99

说明:调色灯的测试先单独测试每个基色,然后进入老化测试。

电机测试(0x0E)

产测软件:

字段 字节数 说明
帧头 2 0x55AA
版本 1 0x00
命令字 1 0x0E
数据长度 2 0x0001
数据 1 0x00: 正转 0x01: 反转 0x02: 停止 0x03: 往复测试
校验和 1 从帧头累加到数据字段的最后一个字节再对256求余

模组返回:

字段 字节数 说明
帧头 2 0x55AA
版本 1 0x00
命令字 1 0x0E
数据长度 2 0x000C 表示以下字符串长度(不含 0
数据 12 正确返回{“ret”:true}/错误不返回
校验和 1 从帧头累加到数据字段的最后一个字节再对256求余

HEX格式返回示例:55 AA 00 0E 00 0C 7B 22 72 65 74 22 3A 74 72 75 65 7D 9A

RSSI值获取测试(组网独占命令字)(0x0F)

产测软件:

字段 字节数 说明
帧头 2 0x55AA
版本 1 0x00
命令字 1 0x0F
数据长度 2 0x0001
数据 1 0x00
校验和 1 从帧头累加到数据字段的最后一个字节再对256求余

HEX格式发送示例:55 AA 00 0F 00 01 00 0F

模组返回:

字段 字节数 说明
帧头 2 0x55AA
版本 1 0x00
命令字 1 0x0F
数据长度 2 0xXXXX 表示以下字符串长度(不含 0
数据 XX 正确返回{“ret”:XX}/错误不返回 XX为RSSI值
校验和 1 从帧头累加到数据字段的最后一个字节再对256求余

电量信息读取测试(0x11)

产测软件:

字段 字节数 说明
帧头 2 0x55AA
版本 1 0x00
命令字 1 0x11
数据长度 2 0x0001
数据 1 0x00
校验和 1 从帧头累加到数据字段的最后一个字节再对256求余

HEX格式发送示例:55 AA 00 10 00 01 00 11

说明:异步测试,最大超时5秒。

模组返回:

字段 字节数 说明
帧头 2 0x55AA
版本 1 0x00
命令字 1 0x11
数据长度 2 0xXXXX
数据 XX 正确返回{“ret”:true} 错误返回{“ret”:false}
校验和 1 从帧头累加到数据字段的最后一个字节再对256求余

电量校准(0x12)

产测软件:

字段 字节数 说明
帧头 2 0x55AA
版本 1 0x00
命令字 1 0x12
数据长度 2 0xXXXX
数据 XX v代表电压伏伏特,p代表功率(W),需要上位机软件提供测试人员编辑电压和功率的接口 {“v”:220, “p”:1000}
校验和 1 从帧头累加到数据字段的最后一个字节再对256求余

说明:同步测试,立即返回结果。

模组返回:

字段 字节数 说明
帧头 2 0x55AA
版本 1 0x00
命令字 1 0x12
数据长度 2 0xXXXX
数据 XX 正确返回{“ret”:true} 错误返回{“ret”:false}
校验和 1 从帧头累加到数据字段的最后一个字节再对256求余

模拟量传感器测试(0X13)

该接口为新版本模拟量传感器测试命令。新传感器测试命令都包含该接口。原来的模拟量传感器测试接口仅用作测试老固件的温湿度传感器。

产测软件:

字段 字节数 说明
帧头 2 0x55AA
版本 1 0x00
命令字 1 0x13
数据长度 2 0x0003
数据 3 {“type”: “PM2.5”,“ch”:0}
校验和 1 从帧头累加到数据字段的最后一个字节再对256求余

温湿度HEX格式发送示例:55 AA 00 0C 00 01 00 0C

模组返回:

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x00
命令字 1 0x13
数据长度 2 0xXXXX 表示以下字符串长度(不含 0
数据 XX {“type”: “PM2.5”, “ch”:x,“val”:56.8} val为传感器数值,float类型 ch为传感器编号,从0开始
校验和 1 从帧头累加到数据字段的最后一个字节再对256求余

模拟量传感器类型及说明:

Type 说明 示例
PM1.0 PM1.0 浓度 {“type”: “PM2.5”,“ch”:0}
PM2.5 PM2.5 浓度 {“type”: “PM2.5”,“ch”:0}
PM10 PM10 浓度 {“type”: “PM2.5”,“ch”:0}
luminance 亮度 {“type”: “Iuminance”,“ch”:0}
SenseDistance PIR感应距离 {“type”: " SenseDistance",“ch”:0}
SensePeriod PIR感应周期 {“type”: " SensePeriod",“ch”:0}

低功耗电流测试(0X14)

产测软件:

字段 字节数 说明
帧头 2 0x55AA
版本 1 0x00
命令字 1 0x14
数据长度 2 0xxxx
数据 3 {“sleepTime”:5}
校验和 1 从帧头累加到数据字段的最后一个字节再对256求余

温湿度HEX格式发送示例:55 AA 00 0C 00 01 00 0C

说明:同步测试,立即返回结果。

模组返回:

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x00
命令字 1 0x14
数据长度 2 0xXXXX 表示以下字符串长度(不含 0
数据 XX 正确返回{“ret”:true} 错误返回{“ret”:false}
校验和 1 从帧头累加到数据字段的最后一个字节再对256求余

说明:模组接收到上位机下发的指令后,立刻进入休眠,在休眠 sleepTime 秒后,自动唤醒并返回结果。

串口会独占命令字。

配置文件下载(0x80)

产测软件:

字段 字节数 说明
帧头 2 0x55AA
版本 1 0x00
命令字 1 0x80
数据长度 2 0xXXXX 表示以下字符串长度(不含 0
数据 XX 二进制字节流
校验和 1 从帧头累加到数据字段的最后一个字节再对256求余

模组返回:

字段 字节数 说明
帧头 2 0x55AA
版本 1 0x00
命令字 1 0x80
数据长度 2 0xXXXX 表示以下字符串长度(不含 0
数据 XX {“ret”:true,“crc32”: “XXXXXXXX”} 或 {“ret”:false}
校验和 1 从帧头累加到数据字段的最后一个字节再对256求余

HEX格式返回失败示例:55 AA 00 10 00 0D 7B 22 72 65 74 22 3A 66 61 6C 73 65 7D E8

说明:使用 CRC-32-IEEE 802.3 标准的多项式 0x04C11DB7 或者 0xEDB88320。返回的 crc32 为十六进制字符串,字符串头部不包含字符 0x

配置文件查询(0x81)

产测软件:

字段 长度(byte) 说明
帧头 2 0x55AA
版本 1 0x00
命令字 1 0x81
数据长度 2 0x0001
数据 1 00
校验和 1 从帧头累加到数据字段的最后一个字节再对256求余

HEX格式发送示例:55 AA 00 81 00 01 00 81

模组返回:

字段 长度(byte) 说明
帧头 2 0x55AA
版本 1 0x00
命令字 1 0x81
数据长度 2 0xXXXX 表示以下字符串长度(不含 0
数据 XX {“ret”:true,“crc32”: “XXXXXXXX”} 或 {“ret”:false}
校验和 1 从帧头累加到数据字段的最后一个字节再对256求余

HEX格式返回失败示例:55 AA 00 81 00 0D 7B 22 72 65 74 22 3A 66 61 6C 73 65 7D 59

说明:使用CRC-32-IEEE 802.3 标准的多项式 0x04C11DB7 或者 0xEDB88320。返回的 crc32 为十六进制字符串,字符串头部不包含字符 0x

写入设备 ISN

产测软件:

字段 字节数 说明
帧头 2 0x55AA
版本 1 0x00
命令字 1 0x82
数据长度 2 0xXXXX 表示以下字符串长度(不含 0
数据 XX {“ISN”: “XXXXXXXX”}
校验和 1 从帧头累加到数据字段的最后一个字节再对256求余

模组返回:

字段 字节数 说明
帧头 2 0x55AA
版本 1 0x00
命令字 1 0x82
数据长度 2 0xXXXX 表示以下字符串长度(不含 0
数据 XX {“ret”:true} 或 {“ret”:false}
校验和 1 从帧头累加到数据字段的最后一个字节再对256求余

读取设备 ISN

产测软件:

字段 字节数 说明
帧头 2 0x55AA
版本 1 0x00
命令字 1 0x83
数据长度 2 0xXXXX 表示以下字符串长度(不含 0
数据 XX {“ISN”: “read”}
校验和 1 从帧头累加到数据字段的最后一个字节再对256求余

模组返回:

字段 字节数 说明
帧头 2 0x55AA
版本 1 0x00
命令字 1 0x83
数据长度 2 0xXXXX 表示以下字符串长度(不含 0
数据 XX {“ISN”: “XXXXXXXX”} 或 {“ret”:false}
校验和 1 从帧头累加到数据字段的最后一个字节再对256求余

写入设备 CMEI

产测软件:

字段 字节数 说明
帧头 2 0x55AA
版本 1 0x00
命令字 1 0x84
数据长度 2 0xXXXX 表示以下字符串长度(不含 0
数据 XX {“CMEI”: “XXXXXXXX”}
校验和 1 从帧头累加到数据字段的最后一个字节再对256求余

模组返回:

字段 字节数 说明
帧头 2 0x55AA
版本 1 0x00
命令字 1 0x84
数据长度 2 0xXXXX 表示以下字符串长度(不含 0
数据 XX {“ret”:true} 或 {“ret”:false}
校验和 1 从帧头累加到数据字段的最后一个字节再对256求余

读取设备CMEI

产测软件:

字段 字节数 说明
帧头 2 0x55AA
版本 1 0x00
命令字 1 0x85
数据长度 2 0xXXXX 表示以下字符串长度(不含 0
数据 XX {“CMEI”: “read”}
校验和 1 从帧头累加到数据字段的最后一个字节再对256求余

模组返回:

字段 字节数 说明
帧头 2 0x55AA
版本 1 0x00
命令字 1 0x85
数据长度 2 0xXXXX 表示以下字符串长度(不含 0
数据 XX {“CMEI”: “XXXXXXXX”} 或者 {“ret”:false}
校验和 1 从帧头累加到数据字段的最后一个字节再对256求余

写入授权码(0x86)

此命令不是所有固件都支持的,需要根据进产测返回的数据来判断是否支持写入授权码。

如果进产测返回的第二个字节bit3为1,则支持写入授权码,否则不支持该命令。

产测软件:

字段 长度(byte) 说明
帧头 2 0x55AA
版本 1 0x00
命令字 1 0x86
数据长度 2 XXXX
数据 1 {“auzKey”: “xxxxxxxxx”}
校验和 1 从帧头累加到数据字段的最后一个字节再对256求余

模组返回:

字段 长度(byte) 说明
帧头 2 0x55AA
版本 1 0x00
命令字 1 0x86
数据长度 2 0xXXXX 表示以下字符串长度(不含 0
数据 XX {“ret”:true} 或 {“ret”:false}
校验和 1 从帧头累加到数据字段的最后一个字节再对256求余

读取授权码(0x87)

此命令不是所有固件都支持的,需要根据进产测返回的数据来判断是否支持读取授权码。

如果进产测返回的第二个字节bit3为1,则支持读取授权码,否则不支持该命令。

产测软件:

字段 长度(byte) 说明
帧头 2 0x55AA
版本 1 0x00
命令字 1 0x87
数据长度 2 XXXX
数据 1 -
校验和 1 从帧头累加到数据字段的最后一个字节再对256求余

模组返回:

字段 长度(byte) 说明
帧头 2 0x55AA
版本 1 0x00
命令字 1 0x87
数据长度 2 0xXXXX 表示以下字符串长度(不含 0
数据 XX {“ret”:true,“auzKey”: “xxxxx”} 或 {“ret”:false}
校验和 1 从帧头累加到数据字段的最后一个字节再对256求余

电池测试(0x90)

产测软件:

字段 长度(byte) 说明
帧头 2 0x55AA
版本 1 0x00
命令字 1 0x90
数据长度 2 XXXX
数据 1 -
校验和 1 从帧头累加到数据字段的最后一个字节再对256求余

模组返回:

字段 长度(byte) 说明
帧头 2 0x55AA
版本 1 0x00
命令字 1 0x90
数据长度 2 0xXXXX 表示以下字符串长度(不含 0
数据 XX { “P”:1, //1:充电状态,0:非充电 “B”:1600//电池电压,单位mv }
校验和 1 从帧头累加到数据字段的最后一个字节再对256求余