协议 1、 目录 3. 软件传输协议描述
1. 版本记录 2
2. 目录 3
3. 软件传输协议描述 5
3.1. 协议特征 5
3.1.1. 命令帧 5
3.1.2. 应答帧 5
3.1.2.1. 正常应答帧格式 5
3.1.2.2. 状态码表 6
3.1.2.3. 通信短应答握手帧 7
3.1.3. 命令码表 7
3.1.3.1. Mid_CmdKind 2Bytes 7
3.1.3.2. Low_CmdKind 2Bytes 8
3.1.3.2.1. 绘画板->数位板 8
3.1.3.2.2. 外设模块->2.4G控制 8
3.1.3.2.3. IAP流程->通用 9
3.1.3.2.4. 绘画板->数位屏 9
3.1.4. 器件地址约束 9
3.2. 功能实现流程图 11
3.2.1. 设备端在线IAP升级流程图 11
3.3. 命令实现 12
3.3.1. (0x0000_0101_xxxx) 绘画板->数位板->A610 12
3.3.1.1. (0x0000_0101_01xx) 设置类 12
3.3.1.1.1. Cmd_0x0000_0101_0101 设置A610的关键算法参数 12
3.3.1.2. (0x0000_0101_02xx) 读取类 13
3.3.1.2.1. Cmd_0x0000_0101_0201 读取A610的关键算法参数 13
3.3.1.3. (0x0000_0101_03xx) 测试接口类 14
3.3.1.3.1. Cmd_0x0000_0101_0301 板载Shell接口透传测试接口 14
3.3.2. (0x0000_0201_xxxx) 外设模块->2.4G控制 15
3.3.2.1. (0x0000_0201_01xx) 设置类 15
3.3.2.1.1. Cmd_0x0000_0201_0101 设置RF主从模式 15
3.3.2.1.2. Cmd_0x0000_0201_0102 设置RF地址 15
3.3.2.1.3. Cmd_0x0000_0201_0103 设置RF工作信道 15
3.3.2.1.4. Cmd_0x0000_0201_0104 设置RF功率 16
3.3.2.1.5. Cmd_0x0000_0201_0105 设置RF睡眠 16
3.3.2.1.6. Cmd_0x0000_0201_0106 设置RF复位 16
3.3.2.1.7. Cmd_0x0000_0201_0107 设置RF测试模式 16
3.3.2.1.8. Cmd_0x0000_0201_0108 设置RF透传使能 17
3.3.2.2. (0x0000_0201_02xx) 读取类 18
3.3.2.2.1. Cmd_0x0000_0201_0201 获取RF主从模式 18
3.3.2.2.2. Cmd_0x0000_0201_0202 获取RF地址 18
3.3.2.2.3. Cmd_0x0000_0201_0203 获取RF工作信道 19
3.3.2.2.4. Cmd_0x0000_0201_0204 获取RF功率 19
3.3.2.2.5. Cmd_0x0000_0201_0205 获取RF连接状态 20
3.3.2.2.6. Cmd_0x0000_0201_0206 获取RF信号强度 20
3.3.2.2.7. Cmd_0x0000_0201_0207 获取RF固件版本 21
3.3.2.3. (0x0000_0201_03xx) 主动上报类 22
3.3.2.3.1. Cmd_0x0000_0201_0301 RF模块向外部MCU上报连接状态 22
3.3.3. (0x0000_0301_xxxx) IAP流程->通用 23
3.3.3.1. (0x0000_0301_01xx) 设备端IAP 23
3.3.3.1.1. Cmd_0x0000_0301_0101 获取设备运行区间参数 23
3.3.3.1.2. Cmd_0x0000_0301_0102 设置设备运行区间参数 23
3.3.3.1.3. Cmd_0x0000_0301_0103 获取设备预留Flash大小 23
3.3.3.1.4. Cmd_0x0000_0301_0104 向设备传输版本文件 24
3.3.3.1.5. Cmd_0x0000_0301_0105 向设备传输版本文件属性参数 24
3.3.3.1.6. Cmd_0x0000_0301_0106 设置待升级下位机固件对象 25
3.3.3.1.7. Cmd_0x0000_0301_0107 获取待升级下位机对象Boot区支持的数据包长度 25
3. 软件传输协议描述
3.1. 协议特征
本协议为应用层协议,由于通信具有双向性,因此要求通信总线为双向总线(全双工或者半双工),可以是无线通信,也可以是有线通信(如I2C、UART、SPI、USB或者其他)。通信双方地位平等,互为主从。
数据传输格式:大端模式(高字节在前,低字节在后;高位在前,低位在后)。
1.1.1. 命令帧
下表为命令包结构,命令包包括了设置命令以及读取命令。对于设置命令来说,设置列表就是各种具体的设置值,其收到的返回包则是接收方对本次设置的结果汇报;对于读取命令来说,其受到的返回包则是具体带读取的数据。
引导码 |
本机地址 |
对方地址 |
会话ID |
数据长度 |
命令码 |
设置列表 |
校验 |
1 Byte |
1Byte |
1Byte |
2Bytes |
2Bytes |
6Bytes |
N Bytes |
2Bytes |
1) 引导码:同步并区分不同的数据包:
- 0x89:命令帧
- 0x76:应答帧
2) 本机地址:用于通知对方本机地址,以便于对方知悉发送主机类型;这个适用于一对多的通信场合,详见“器件地址约束”章节
3) 对方地址:用于指定对方地址,以实现向特定对象发送数据(如果该地址为广播地址,则所有接收方都可以接收到数据);这个适用于多对一的通信场合,详见“器件地址约束”章节
4) 会话ID:会话ID用于对某条命令或者某个事件的身份标识,或者说是事务的流水号。接收方将所有接收到的会话ID缓存进队列中,然后逐个进行分析执行
5) 数据长度:命令码 + 设置列表
6) 命令码:代表设置列表所属类型:
- 高2Bytes:保留,默认为0x00
- 中2Bytes:表示业务方向与业务细则
- 低2Bytes:表示子类功能类别
- 2个字节一共可以形成256*256=65536个具体功能。4个字节一共可以形成256*256*256*256=42_9496_7296种命令,也就是大约43亿条命令,也就是对应了43亿个功能。如果再加上2个字节,范围就更大。而实际上一家公司无论产品线有多庞大,所有产品的功能总和是绝不可能有这么多的。此处增加2个字节的预留空间,更多的是从命令层次的角度来考虑。
7) 设置列表:代表命令码对应的具体参数列表
8) 校验:采用CRC16的校验方式
1.1.2. 应答帧
3.1.1.1. 正常应答帧格式
引导码 |
本机地址 |
对方地址 |
会话ID |
数据长度 |
命令码 |
执行状态 |
设置列表 |
校验 |
1 Byte |
1Byte |
1Byte |
2Bytes |
2Bytes |
6Bytes |
2Bytes |
N Bytes |
2Bytes |
1) 引导码:同步并区分不同的数据包:
- 0x89:命令帧
- 0x76:应答帧
2) 本机地址:用于通知对方本机地址,以便于对方知悉发送主机类型;这个适用于一对多的通信场合,详见“器件地址约束”章节
3) 对方地址:用于指定对方地址,以实现向特定对象发送数据(如果该地址为广播地址,则所有接收方都可以接收到数据);这个适用于多对一的通信场合,详见“器件地址约束”章节
4) 会话ID:会话ID用于对某条命令或者某个事件的身份标识,或者说是事务的流水号。接收方将所有接收到的会话ID缓存进队列中,然后逐个进行分析执行
5) 数据长度:命令码 + 执行状态 + 设置列表
6) 命令码:代表设置列表所属类型:
- 高2Bytes:保留,默认为0x00
- 中2Bytes:表示业务方向与业务细则
- 低2Bytes:表示子类功能类别
- 2个字节一共可以形成256*256=65536个具体功能。4个字节一共可以形成256*256*256*256=42_9496_7296种命令,也就是大约43亿条命令,也就是对应了43亿个功能。如果再加上2个字节,范围就更大。而实际上一家公司无论产品线有多庞大,所有产品的功能总和是绝不可能有这么多的。此处增加2个字节的预留空间,更多的是从命令层次的角度来考虑。
7) 执行状态:见3.1.2.2小节列表
8) 设置列表:代表命令码对应的具体参数列表
9) 校验:采用CRC16的校验方式
10) 【特别说明】:
- 该应答帧形式适用于“IAP流程->通用”类接口、“生产注册流程->产品通用”类接口、以及其他应用类别中的“获取类接口”。
3.1.1.2. 状态码表
状态码 |
内容解析 |
0x00 |
接收方正确接收并执行操作 |
0x01 |
包头接收错误 |
0x02 |
本机地址与上一次接收不一致错误 |
0x03 |
对方地址与接收方的实际地址不一致错误 |
0x04 |
同一会话出现不同的ID或者不同会话之间的ID产生冲突(即ID一致)错误 |
0x05 |
数据长度错误 |
0x06 |
命令代码错误 |
0x07 |
设置列表字节长度超过最大值错误 |
0x08 |
校验出错 |
0x09 |
设置列表参数错误 |
0x0A |
接收超时 |
0x0B |
执行条件不满足 |
0x0C |
设备执行失败 |
3.1.1.3. 通信短应答握手帧
引导码 |
本机地址 |
对方地址 |
会话ID |
校验 |
1 Byte |
1Byte |
1Byte |
2Bytes |
2Bytes |
1) 引导码:同步并区分不同的数据包:
- 0xAC:命令帧
2) 本机地址:用于通知对方本机地址,以便于对方知悉发送主机类型;这个适用于一对多的通信场合,详见“器件地址约束”章节
3) 对方地址:用于指定对方地址,以实现向特定对象发送数据(如果该地址为广播地址,则所有接收方都可以接收到数据);这个适用于多对一的通信场合,详见“器件地址约束”章节
4) 会话ID:会话ID用于对某条命令或者某个事件的身份标识,或者说是事务的流水号。接收方将所有接收到的会话ID缓存进队列中,然后逐个进行分析执行
5) 校验:采用CRC16的校验方式
6) 【特别说明】:
- 该应答帧只针对“特定”接口中的设置类命令以及主动上报类命令,读取类命令其他应用类别中设置类命令还是采用3.1.2.1小节描述的正常应答帧格式处理
- 发送方发出数据包之后,只要接收方收到该数据包就立即返回该应答包,进而表示本次通信完成;如果发送方在特定时间内未收到该应答包,则重传1-2此数据包,如果任然未能接收到短应答帧,则在能力范围内抛出异常提示
1.1.3. 命令码表
命令代码为6BYTES-----高2BYTES、中2BYTES和低2BYTES。
目前高2BYTE做预留,预留值为0x0000;中间2BYTES用于规定业务方向及业务细项;低2BYTES用于规定特定业务方向和业务细项下的功能类别。
业务方向体现了产品的行业属性或者说大方向,业务细项则是该行业方向下的具体产品类型;另外,业务方向所在的字段既可以体现数据包的属性(即对外设置或者向外读取),还能体现具体的操作内容(即对外设置具体行业方向下的具体产品还是向接收方写其他非功能类的信息),也就是说与具体功能状态无关的操作命令也会在本字段定义(比如IAP升级、写SN、读SN、写ID、读ID、写用户名、读用户名、写注册信息、读注册信息等等),如果本功能字段不够用,则可以用预留字节来扩展。
3.1.1.4. Mid_CmdKind 2Bytes
业务方向(1Byte) |
业务细则(1Byte) |
||
CmdKind2 |
描述 |
CmdKind3 |
描述 |
0x00 |
预留 |
0x00 |
预留 |
0x01 |
绘画板系列_数位板 |
0x00 |
预留 |
0x01 |
A610 |
||
…… |
预留 |
||
0x02 |
外设模块 |
0x00 |
预留 |
0x01 |
2.4G无线控制模块 |
||
…… |
预留 |
||
0x03 |
IAP流程 |
0x00 |
预留 |
0x01 |
通用 |
||
…… |
预留 |
||
0x04 |
绘画板系列_数位屏 |
0x00 |
预留 |
0x01 |
.... |
||
…… |
预留 |
||
…… |
预留 |
…… |
预留 |
3.1.1.5. Low_CmdKind 2Bytes
3.1.1.5.1. 绘画板->数位板
业务方向(1Byte) |
业务细则(1Byte) |
||
CmdKind4 |
描述 |
CmdKind5 |
描述 |
0x01 |
参数设置 |
0x00 |
预留 |
0x01 |
设置A610的关键算法参数 |
||
…… |
预留 |
||
0x02 |
参数读取 |
0x00 |
预留 |
0x01 |
读取A610的关键算法参数 |
||
…… |
预留 |
||
0x03 |
测试接口 |
0x00 |
预留 |
0x01 |
板载Shell接口透传测试接口 |
||
…… |
预留 |
3.1.1.5.2. 外设模块->2.4G控制
业务方向(1Byte) |
业务细则(1Byte) |
||
CmdKind4 |
描述 |
CmdKind5 |
描述 |
0x01 |
参数设置 |
0x00 |
预留 |
0x01 |
设置RF主从模式 |
||
0x02 |
设置RF地址 |
||
0x03 |
设置RF工作信道 |
||
0x04 |
设置RF功率 |
||
0x05 |
设置RF睡眠 |
||
0x06 |
设置RF复位 |
||
0x07 |
设置RF测试模式 |
||
…… |
预留 |
||
0x02 |
参数读取 |
0x00 |
预留 |
0x01 |
读取RF主从模式 |
||
0x02 |
读取RF地址 |
||
0x03 |
读取RF工作信道 |
||
0x04 |
读取RF功率 |
||
0x05 |
读取RF连接状态 |
||
0x06 |
读取RF信号强度 |
||
0x07 |
去读RF固件版本 |
||
…… |
预留 |
||
0x03 |
主动上报 |
0x00 |
预留 |
0x01 |
上报从设备状态信息 |
||
…… |
预留 |
3.1.1.5.3. IAP流程->通用
业务方向(1Byte) |
业务细则(1Byte) |
||
CmdKind4 |
描述 |
CmdKind5 |
描述 |
0x01 |
流程实现 |
0x00 |
预留 |
0x01 |
获取设备运行区间参数 |
||
0x02 |
设置设备运行区间参数 |
||
0x03 |
获取设备预留Flash大小 |
||
0x04 |
向设备传输版本文件 |
||
0x05 |
向设备传输版本文件属性参数 |
||
…… |
预留 |
3.1.1.5.4. 绘画板->数位屏
业务方向(1Byte) |
业务细则(1Byte) |
||
CmdKind4 |
描述 |
CmdKind5 |
描述 |
0x01 |
…… |
0x00 |
预留 |
0x01 |
…… |
||
…… |
预留 |
1.1.4. 器件地址约束
地址约束 |
内容解析 |
0x00 |
“PcHost”器件地址 |
0x01 |
“数位板-A610”器件地址 |
0x02 |
“数位板-A690”器件地址 |
0x03 |
“2.4G_RfControl_Master”器件地址 |
0x04 |
“2.4G_RfControl_Slave”器件地址 |
0xFF |
“Broadcast”广播地址 |
3.2. 功能实现流程图
1.1.5. 设备端在线IAP升级流程图
3.3. 命令实现
1.1.6. (0x0000_0101_xxxx) 绘画板->数位板->A610
3.3.1.1. (0x0000_0101_01xx) 设置类
3.3.1.1.1. Cmd_0x0000_0101_0101 设置A610的关键算法参数
描述:
此命令用于设置A610数位板中算法相关的相关参数。
命令包格式:
|
引导码 |
本机地址 |
对方地址 |
会话ID |
数据长度 |
命令码 |
命令负载 |
校验码 |
见下述表格 |
||||||||
Bytes |
1 |
1 |
1 |
2 |
2 |
6 |
N |
2 |
描述 |
0x89 |
0x00 |
0x01 |
|
6+N |
0x0000_0101_0101 |
…… |
|
|
命令负载 |
|
参数版本 |
具体各版本参数描述 |
|
Bytes |
1 |
…… |
描述 |
此字段用于描述传递参数的结构版本 |
分别见以下表格 |
|
Ver 1 参数列表 |
|||||||||||||||||||
A0状态 |
A1状态 |
A2状态 |
A3状态 |
A4状态 |
A5状态 |
|||||||||||||||
On Brd |
Dn Key |
Up Key |
On Brd |
Up Key |
Dn Key |
Up Key |
Dn Key |
Dn Key |
Up Key |
Dn Key |
Up Key |
515K Adcs |
515K Idx |
|||||||
Bytes |
5 |
5 |
5 |
5 |
5 |
5 |
5 |
5 |
5 |
5 |
5 |
5 |
5 |
5 |
||||||
描述 |
Pressure Para Struct Unit / 1Byte for Logic Operators / 4Byets for Value |
|||||||||||||||||||
|
Ver 1 参数列表 |
|||||||||||||||||||
7前导变频频点列表 |
||||||||||||||||||||
频点1 |
频点2 |
频点3 |
频点4 |
频点5 |
频点6 |
频点7 |
||||||||||||||
Bytes |
4 |
4 |
4 |
4 |
4 |
4 |
4 |
|||||||||||||
描述 |
输入频点范围:450000Hz ~ 540000Hz(暂不做限制) |
返回包格式:
|
引导码 |
本机地址 |
对方地址 |
会话ID |
数据长度 |
命令码 |
执行状态 |
校验码 |
Bytes |
1 |
1 |
1 |
2 |
2 |
6 |
2 |
2 |
描述 |
0x76 |
0x01 |
0x00 |
|
6+2 |
0x0000_0101_0101 |
参考列表 |
|
3.3.1.2. (0x0000_0101_02xx) 读取类
3.3.1.2.1. Cmd_0x0000_0101_0201 读取A610的关键算法参数
描述:
此命令用于获取A610数位板中算法相关的相关参数。
命令包格式:
|
引导码 |
本机地址 |
对方地址 |
会话ID |
数据长度 |
命令码 |
参数列表 |
校验码 |
见下述表格 |
||||||||
Bytes |
1 |
1 |
1 |
2 |
2 |
6 |
无 |
2 |
描述 |
0x89 |
0x00 |
0x01 |
|
6 |
0x0000_0101_0201 |
无 |
|
返回包格式:
|
引导码 |
本机地址 |
对方地址 |
会话ID |
数据长度 |
命令码 |
参数列表 |
校验码 |
见下述表格 |
||||||||
Bytes |
1 |
1 |
1 |
2 |
2 |
6 |
N |
2 |
描述 |
0x76 |
0x01 |
0x00 |
|
6+N |
0x0000_0101_0201 |
…… |
|
|
参数列表 |
||
Bytes |
…… |
…… |
…… |
描述 |
…… |
…… |
…… |
3.3.1.3. (0x0000_0101_03xx) 测试接口类
3.3.1.3.1. Cmd_0x0000_0101_0301 板载Shell接口透传测试接口
描述:
A610产品自身支持基于串口的板载Shell调试接口,此接口用于将Shell所支持的字符串流调试信息打包下发。
命令包格式:
|
引导码 |
本机地址 |
对方地址 |
会话ID |
数据长度 |
命令码 |
参数列表 |
校验码 |
见下述表格 |
||||||||
Bytes |
1 |
1 |
1 |
2 |
2 |
6 |
…… |
2 |
描述 |
0x89 |
0x00 |
0x01 |
|
6+1+N |
0x0000_0101_0301 |
…… |
|
|
参数列表 |
|
字符串长度 |
Shell调试用的字符串流 |
|
Bytes |
1 |
N |
描述 |
包含’ ’ |
|
返回包格式:
|
引导码 |
本机地址 |
对方地址 |
会话ID |
数据长度 |
命令码 |
执行状态 |
校验码 |
Bytes |
1 |
1 |
1 |
2 |
2 |
6 |
2 |
2 |
描述 |
0x76 |
0x01 |
0x00 |
|
6+2 |
0x0000_0101_0301 |
参考列表 |
|
1.1.7. (0x0000_0201_xxxx) 外设模块->2.4G控制
3.3.1.4. (0x0000_0201_01xx) 设置类
3.3.1.4.1. Cmd_0x0000_0201_0101 设置RF主从模式
描述:
设置模块的工作模式,切换工作模式模块会复位重新初始化默认配置
命令包格式:
|
引导码 |
本机地址 |
对方地址 |
会话ID |
数据长度 |
命令码 |
参数列表 |
校验码 |
主从模式 |
||||||||
Bytes |
1 |
1 |
1 |
2 |
2 |
6 |
1 |
2 |
描述 |
0x89 |
0xFF |
0xFF |
|
6+1 |
0x0000_0201_0101 |
|
|
1) 主从模式
- 0x00表示Server
- 0x01表示Client
- 复位值:0x00
3.3.1.4.2. Cmd_0x0000_0201_0102 设置RF地址
描述:
总共4个地址,RF模块地址。收、发模块必须设置相同才能正常工作
命令包格式:
|
引导码 |
本机地址 |
对方地址 |
会话ID |
数据长度 |
命令码 |
参数列表 |
校验码 |
模块地址 |
||||||||
Bytes |
1 |
1 |
1 |
2 |
2 |
6 |
4 |
2 |
描述 |
0x89 |
0xFF |
0xFF |
|
6+4 |
0x0000_0201_0102 |
|
|
1) 模块地址:
- 复位值:0xA1, 0xB2, 0xC2, 0xB4
3.3.1.4.3. Cmd_0x0000_0201_0103 设置RF工作信道
描述:
设置RF模块工作频道CH。收、发模块必须设置相同才能正常工作
命令包格式:
|
引导码 |
本机地址 |
对方地址 |
会话ID |
数据长度 |
命令码 |
参数列表 |
校验码 |
工作信道 |
||||||||
Bytes |
1 |
1 |
1 |
2 |
2 |
6 |
1 |
2 |
描述 |
0x89 |
0xFF |
0xFF |
|
6+1 |
0x0000_0201_0103 |
|
|
1) 工作信道:
- 复位值:0x00
- 范围:0~15
3.3.1.4.4. Cmd_0x0000_0201_0104 设置RF功率
描述:
无
命令包格式:
|
引导码 |
本机地址 |
对方地址 |
会话ID |
数据长度 |
命令码 |
参数列表 |
校验码 |
功率列表 |
||||||||
Bytes |
1 |
1 |
1 |
2 |
2 |
6 |
1 |
2 |
描述 |
0x89 |
0xFF |
0xFF |
|
6+1 |
0x0000_0201_0104 |
|
|
1) 功率列表:
- 复位值:12
- 0:-30dBm 1:-18dBm 2:-10dBm 3:-6dBm
- 4:-3dBm 5:0dBm 6:2dBm 7:4dBm
- 8:5dBm 9:7dBm 10:8dBm 11:10dBm
- 12:13dBm
3.3.1.4.5. Cmd_0x0000_0201_0105 设置RF睡眠
描述:
该命令没有参数。该命令让RF模块进入低功耗模式
命令包格式:
|
引导码 |
本机地址 |
对方地址 |
会话ID |
数据长度 |
命令码 |
校验码 |
Bytes |
1 |
1 |
1 |
2 |
2 |
6 |
2 |
描述 |
0x89 |
0xFF |
0xFF |
|
6 |
0x0000_0201_0105 |
|
3.3.1.4.6. Cmd_0x0000_0201_0106 设置RF复位
描述:
该命令没有参数。只复位模块,重新初始化默认配置。EEROM 保存的RF_ADDR和RF_CH 不改变
命令包格式:
|
引导码 |
本机地址 |
对方地址 |
会话ID |
数据长度 |
命令码 |
校验码 |
Bytes |
1 |
1 |
1 |
2 |
2 |
6 |
2 |
描述 |
0x89 |
0xFF |
0xFF |
|
6 |
0x0000_0201_0106 |
|
3.3.1.4.7. Cmd_0x0000_0201_0107 设置RF测试模式
描述:
测试模式频道范围:0~90,即2.400G~2.490G
注意:进入测试模式后,需要复位才能进入正常工作状态
命令包格式:
|
引导码 |
本机地址 |
对方地址 |
会话ID |
数据长度 |
命令码 |
参数列表 |
校验码 |
测试频点 |
||||||||
Bytes |
1 |
1 |
1 |
2 |
2 |
6 |
1 |
2 |
描述 |
0x89 |
0xFF |
0xFF |
|
6+1 |
0x0000_0201_0107 |
|
|
1) 测试频点:
- 范围:0~90
3.3.1.4.8. Cmd_0x0000_0201_0108 设置RF透传使能
描述:
该命令用来打开或者关闭RF模块的透传功能,当透传功能关闭时,RF模块仅需处理PWC类命令,当透传功能打开时,RF模块需要对命令码做判断,将非PWC类命令透传。
命令包格式:
|
引导码 |
本机地址 |
对方地址 |
会话ID |
数据长度 |
命令码 |
参数列表 |
校验码 |
透传使能 |
||||||||
Bytes |
1 |
1 |
1 |
2 |
2 |
6 |
1 |
2 |
描述 |
0x89 |
0xFF |
0xFF |
|
6 |
0x0000_0201_0108 |
0:Open 1:Close |
|
3.3.1.5. (0x0000_0201_02xx) 读取类
3.3.1.5.1. Cmd_0x0000_0201_0201 获取RF主从模式
描述:
设置模块的工作模式,切换工作模式模块会复位重新初始化默认配置
命令包格式:
|
引导码 |
本机地址 |
对方地址 |
会话ID |
数据长度 |
命令码 |
校验码 |
Bytes |
1 |
1 |
1 |
2 |
2 |
6 |
2 |
描述 |
0x89 |
0xFF |
0xFF |
|
6 |
0x0000_0201_0201 |
|
返回包格式:
|
引导码 |
本机地址 |
对方地址 |
会话ID |
数据长度 |
命令码 |
执行状态 |
参数列表 |
校验码 |
主从模式 |
|||||||||
Bytes |
1 |
1 |
1 |
2 |
2 |
6 |
2 |
1 |
2 |
描述 |
0x76 |
0xFF |
0xFF |
|
6+3 |
0x0000_0201_0201 |
参考列表 |
|
|
1) 主从模式
- 0x00表示Server
- 0x01表示Client
- 复位值:0x00
3.3.1.5.2. Cmd_0x0000_0201_0202 获取RF地址
描述:
总共4个地址,RF模块地址。收、发模块必须设置相同才能正常工作
命令包格式:
|
引导码 |
本机地址 |
对方地址 |
会话ID |
数据长度 |
命令码 |
校验码 |
Bytes |
1 |
1 |
1 |
2 |
2 |
6 |
2 |
描述 |
0x89 |
0xFF |
0xFF |
|
6 |
0x0000_0201_0202 |
|
返回包格式:
|
引导码 |
本机地址 |
对方地址 |
会话ID |
数据长度 |
命令码 |
执行状态 |
参数列表 |
校验码 |
模块地址 |
|||||||||
Bytes |
1 |
1 |
1 |
2 |
2 |
6 |
2 |
4 |
2 |
描述 |
0x76 |
0xFF |
0xFF |
|
6+6 |
0x0000_0201_0202 |
参考列表 |
|
|
1) 模块地址:
- 复位值:0xA1, 0xB2, 0xC2, 0xB4
3.3.1.5.3. Cmd_0x0000_0201_0203 获取RF工作信道
描述:
设置RF模块工作频道CH。收、发模块必须设置相同才能正常工作
命令包格式:
|
引导码 |
本机地址 |
对方地址 |
会话ID |
数据长度 |
命令码 |
校验码 |
Bytes |
1 |
1 |
1 |
2 |
2 |
6 |
2 |
描述 |
0x89 |
0xFF |
0xFF |
|
6 |
0x0000_0201_0203 |
|
返回包格式:
|
引导码 |
本机地址 |
对方地址 |
会话ID |
数据长度 |
命令码 |
执行状态 |
参数列表 |
校验码 |
工作信道 |
|||||||||
Bytes |
1 |
1 |
1 |
2 |
2 |
6 |
2 |
1 |
2 |
描述 |
0x76 |
0xFF |
0xFF |
|
6+3 |
0x0000_0201_0203 |
|
|
1) 工作信道:
- 复位值:0x00
- 范围:0~15
3.3.1.5.4. Cmd_0x0000_0201_0204 获取RF功率
描述:
无
命令包格式:
|
引导码 |
本机地址 |
对方地址 |
会话ID |
数据长度 |
命令码 |
校验码 |
Bytes |
1 |
1 |
1 |
2 |
2 |
6 |
2 |
描述 |
0x89 |
0xFF |
0xFF |
|
6 |
0x0000_0201_0204 |
|
返回包格式:
|
引导码 |
本机地址 |
对方地址 |
会话ID |
数据长度 |
命令码 |
执行状态 |
参数列表 |
校验码 |
功率 |
|||||||||
Bytes |
1 |
1 |
1 |
2 |
2 |
6 |
2 |
1 |
2 |
描述 |
0x76 |
0xFF |
0xFF |
|
6+3 |
0x0000_0201_0204 |
|
|
1) 功率列表:
- 复位值:12
- 0:-30dBm 1:-18dBm 2:-10dBm 3:-6dBm
- 4:-3dBm 5:0dBm 6:2dBm 7:4dBm
- 8:5dBm 9:7dBm 10:8dBm 11:10dBm
- 12:13dBm
3.3.1.5.5. Cmd_0x0000_0201_0205 获取RF连接状态
描述:
LINKS = 1,TX和RX 建立连接。LINKS = 0,TX和RX连接断开
命令包格式:
|
引导码 |
本机地址 |
对方地址 |
会话ID |
数据长度 |
命令码 |
校验码 |
Bytes |
1 |
1 |
1 |
2 |
2 |
6 |
2 |
描述 |
0x89 |
0xFF |
0xFF |
|
6 |
0x0000_0201_0205 |
|
返回包格式:
|
引导码 |
本机地址 |
对方地址 |
会话ID |
数据长度 |
命令码 |
执行状态 |
参数列表 |
校验码 |
连接状态 |
|||||||||
Bytes |
1 |
1 |
1 |
2 |
2 |
6 |
2 |
1 |
2 |
描述 |
0x76 |
0xFF |
0xFF |
|
6+3 |
0x0000_0201_0205 |
|
|
1) 连接状态:
- 复位值:0x00
- 0:非连接
- 1:连接
3.3.1.5.6. Cmd_0x0000_0201_0206 获取RF信号强度
描述:
TX和RX 建立连接后,可以获取RX 信号强度。范围:0~0x0F。0x0F 信号最强
命令包格式:
|
引导码 |
本机地址 |
对方地址 |
会话ID |
数据长度 |
命令码 |
校验码 |
Bytes |
1 |
1 |
1 |
2 |
2 |
6 |
2 |
描述 |
0x89 |
0xFF |
0xFF |
|
6 |
0x0000_0201_0206 |
|
返回包格式:
|
引导码 |
本机地址 |
对方地址 |
会话ID |
数据长度 |
命令码 |
执行状态 |
参数列表 |
校验码 |
信号强度 |
|||||||||
Bytes |
1 |
1 |
1 |
2 |
2 |
6 |
2 |
1 |
2 |
描述 |
0x76 |
0xFF |
0xFF |
|
6+3 |
0x0000_0201_0206 |
|
|
1) 信号强度:
- 复位值:0x00
3.3.1.5.7. Cmd_0x0000_0201_0207 获取RF固件版本
描述:
无
命令包格式:
|
引导码 |
本机地址 |
对方地址 |
会话ID |
数据长度 |
命令码 |
校验码 |
Bytes |
1 |
1 |
1 |
2 |
2 |
6 |
2 |
描述 |
0x89 |
0xFF |
0xFF |
|
6 |
0x0000_0201_0207 |
|
返回包格式:
|
引导码 |
本机地址 |
对方地址 |
会话ID |
数据长度 |
命令码 |
执行状态 |
参数列表 |
校验码 |
固件版本 |
|||||||||
Bytes |
1 |
1 |
1 |
2 |
2 |
6 |
2 |
4 |
2 |
描述 |
0x76 |
0xFF |
0xFF |
|
6+6 |
0x0000_0201_0207 |
|
|
3.3.1.6. (0x0000_0201_03xx) 主动上报类
3.3.1.6.1. Cmd_0x0000_0201_0301 RF模块向外部MCU上报连接状态
描述:
无
命令包格式:
|
引导码 |
本机地址 |
对方地址 |
会话ID |
数据长度 |
命令码 |
参数列表 |
校验码 |
RF模块连接状态 |
||||||||
Bytes |
1 |
1 |
1 |
2 |
2 |
6 |
1 |
2 |
描述 |
0x89 |
0xFF |
0xFF |
|
6+1 |
0x0000_0201_0301 |
…… |
|
1) RF模块连接状态:有效范围[0, 1],1表示有效连接
1.1.8. (0x0000_0301_xxxx) IAP流程->通用
3.3.1.7. (0x0000_0301_01xx) 设备端IAP
3.3.1.7.1. Cmd_0x0000_0301_0101 获取设备运行区间参数
描述:
此命令用于获取设备端的运行区间(Boot或者App)
命令包格式:
|
引导码 |
本机地址 |
对方地址 |
会话ID |
数据长度 |
命令码 |
校验码 |
Bytes |
1 |
1 |
1 |
2 |
2 |
6 |
2 |
描述 |
0x89 |
0xFF |
0xFF |
|
6 |
0x0000_0301_0101 |
|
返回包格式:
|
引导码 |
本机地址 |
对方地址 |
会话ID |
数据长度 |
命令码 |
执行状态 |
参数列表 |
校验码 |
运行区间 |
|||||||||
Bytes |
1 |
1 |
1 |
2 |
2 |
6 |
2 |
1 |
2 |
描述 |
0x76 |
0xFF |
0xFF |
|
6+3 |
0x0000_0301_0101 |
参考列表 |
0:Boot 1:App |
|
3.3.1.7.2. Cmd_0x0000_0301_0102 设置设备运行区间参数
描述:
此命令用于设置设备端的运行区间,让设备跳转到指定运行区间运行
命令包格式:
|
引导码 |
本机地址 |
对方地址 |
会话ID |
数据长度 |
命令码 |
参数列表 |
校验码 |
运行区间 |
||||||||
Bytes |
1 |
1 |
1 |
2 |
2 |
6 |
1 |
2 |
描述 |
0x89 |
0xFF |
0xFF |
|
6+1 |
0x0000_0301_0102 |
0:Boot 1:App |
|
返回包格式:
|
引导码 |
本机地址 |
对方地址 |
会话ID |
数据长度 |
命令码 |
执行状态 |
校验码 |
Bytes |
1 |
1 |
1 |
2 |
2 |
6 |
2 |
2 |
描述 |
0x76 |
0xFF |
0xFF |
|
6+2 |
0x0000_0301_0102 |
参考列表 |
|
3.3.1.7.3. Cmd_0x0000_0301_0103 获取设备预留Flash大小
描述:
无
命令包格式:
|
引导码 |
本机地址 |
对方地址 |
会话ID |
数据长度 |
命令码 |
校验码 |
Bytes |
1 |
1 |
1 |
2 |
2 |
6 |
2 |
描述 |
0x89 |
0xFF |
0xFF |
|
6 |
0x0000_0301_0103 |
|
返回包格式:
|
引导码 |
本机地址 |
对方地址 |
会话ID |
数据长度 |
命令码 |
执行状态 |
参数列表 |
校验码 |
Flash大小 |
|||||||||
Bytes |
1 |
1 |
1 |
2 |
2 |
6 |
2 |
4 |
2 |
描述 |
0x76 |
0xFF |
0xFF |
|
6+3 |
0x0000_0301_0103 |
参考列表 |
|
|
3.3.1.7.4. Cmd_0x0000_0301_0104 向设备传输版本文件
描述:
无
命令包格式:
|
引导码 |
本机地址 |
对方地址 |
会话ID |
数据长度 |
命令码 |
参数列表 |
校验码 |
见下述表格 |
||||||||
Bytes |
1 |
1 |
1 |
2 |
2 |
6 |
…… |
2 |
描述 |
0x89 |
0xFF |
0xFF |
|
6+5+N |
0x0000_0301_0104 |
|
|
|
参数列表 |
|||
包结束标识 |
包序号 |
包长度 |
包内容 |
|
Bytes |
1 |
2 |
2 |
N |
描述 |
0:进行中 1:结束 |
|
|
|
1) 包结束标识:
- 1:此包为最后一个数据包,如果此包内有效数据不足包长度限制,则填充0xFF
2) 包序号:
- 0:第一包,下位机将对整块存储空间做擦除操作,时间较长
返回包格式:
|
引导码 |
本机地址 |
对方地址 |
会话ID |
数据长度 |
命令码 |
执行状态 |
校验码 |
Bytes |
1 |
1 |
1 |
2 |
2 |
6 |
2 |
2 |
描述 |
0x76 |
0xFF |
0xFF |
|
6+2 |
0x0000_0301_0104 |
参考列表 |
|
3.3.1.7.5. Cmd_0x0000_0301_0105 向设备传输版本文件属性参数
描述:
无
命令包格式:
|
引导码 |
本机地址 |
对方地址 |
会话ID |
数据长度 |
命令码 |
参数列表 |
校验码 |
见下述表格 |
||||||||
Bytes |
1 |
1 |
1 |
2 |
2 |
6 |
…… |
2 |
描述 |
0x89 |
0xFF |
0xFF |
|
6+8 |
0x0000_0301_0105 |
|
|
|
参数列表 |
|
版本文件长度 |
版本文件CRC |
|
Bytes |
4 |
4 |
描述 |
|
|
返回包格式:
|
引导码 |
本机地址 |
对方地址 |
会话ID |
数据长度 |
命令码 |
执行状态 |
校验码 |
Bytes |
1 |
1 |
1 |
2 |
2 |
6 |
2 |
2 |
描述 |
0x76 |
0xFF |
0xFF |
|
6+2 |
0x0000_0301_0105 |
参考列表 |
|
3.3.1.7.6. Cmd_0x0000_0301_0106 设置待升级下位机固件对象
描述:
此命令用于设置下位机的待升级对象,当下位机有多个待升级板载对象时,通过此命令来告知下位机的总控对象将IAP应用流程分流处理。
命令包格式:
|
引导码 |
本机地址 |
对方地址 |
会话ID |
数据长度 |
命令码 |
参数列表 |
校验码 |
板载对象 |
||||||||
Bytes |
1 |
1 |
1 |
2 |
2 |
6 |
1 |
2 |
描述 |
0x89 |
0xFF |
0xFF |
|
6+1 |
0x0000_0301_0106 |
|
|
1) 板载对象:
- 0x01:待升级固件对象为A610的MCU
- 0x02:待升级固件对象为xxxx的MCU
- 0x03:待升级固件对象为2.4G无线RF模块
- 0x04:待升级固件对象为半载大容量存储器
返回包格式:
|
引导码 |
本机地址 |
对方地址 |
会话ID |
数据长度 |
命令码 |
执行状态 |
校验码 |
Bytes |
1 |
1 |
1 |
2 |
2 |
6 |
2 |
2 |
描述 |
0x76 |
0xFF |
0xFF |
|
6+2 |
0x0000_0301_0106 |
参考列表 |
|
3.3.1.7.7. Cmd_0x0000_0301_0107 获取待升级下位机对象Boot区支持的数据包长度
描述:
此命令用于获取设备端Boot区域支持的数据包长度参数
命令包格式:
|
引导码 |
本机地址 |
对方地址 |
会话ID |
数据长度 |
命令码 |
校验码 |
Bytes |
1 |
1 |
1 |
2 |
2 |
6 |
2 |
描述 |
0x89 |
0xFF |
0xFF |
|
6 |
0x0000_0301_0107 |
|
返回包格式:
|
引导码 |
本机地址 |
对方地址 |
会话ID |
数据长度 |
命令码 |
执行状态 |
参数列表 |
校验码 |
运行区间 |
|||||||||
Bytes |
1 |
1 |
1 |
2 |
2 |
6 |
2 |
2 |
2 |
描述 |
0x76 |
0xFF |
0xFF |
|
6+3 |
0x0000_0301_0107 |
参考列表 |
|
|
1) 此条命令通过设备的Boot反馈所支持的数据包长度参数,由Pc动态分配不同固件对象所支持的数据缓存,以此做到IAP接口以及应用很广流程的兼容性。