首页 > 技术文章 > 协议

linxw-blog 2019-08-30 10:00 原文

 

1、 目录

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. 协议特征

本协议为应用层协议,由于通信具有双向性,因此要求通信总线为双向总线(全双工或者半双工),可以是无线通信,也可以是有线通信(如I2CUARTSPIUSB或者其他)。通信双方地位平等,互为主从。

数据传输格式:大端模式(高字节在前,低字节在后;高位在前,低位在后)。

 

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) 【特别说明】:

 

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

描述

包含’\0’

 

 

返回包格式:

 

引导码

本机地址

对方地址

会话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 50dBm 62dBm 74dBm
  • 85dBm 97dBm 108dBm 1110dBm
  • 1213dBm

 

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

0Open

1Close

 

 

 

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 50dBm 62dBm 74dBm
  • 85dBm 97dBm 108dBm 1110dBm
  • 1213dBm

 

3.3.1.5.5. Cmd_0x0000_0201_0205 获取RF连接状态

描述: 

LINKS = 1TXRX 建立连接。LINKS = 0TXRX连接断开

命令包格式:

 

引导码

本机地址

对方地址

会话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信号强度

描述: 

TXRX 建立连接后,可以获取RX 信号强度。范围0~0x0F0x0F 信号最强

命令包格式:

 

引导码

本机地址

对方地址

会话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

参考列表

0Boot 

1App

 

 

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

0Boot 

1App

 

 

返回包格式:

 

引导码

本机地址

对方地址

会话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:待升级固件对象为A610MCU
  • 0x02:待升级固件对象为xxxxMCU
  • 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接口以及应用很广流程的兼容性。

 

推荐阅读