低功耗蓝牙和 LTE Cat.1 特定协议

更新时间:2024-04-08 08:18:04下载pdf

本文介绍蜂窝标准协议下低功耗蓝牙特定协议的指令说明。

产品授权

授权信息储存在低功耗蓝牙芯片内部,如果 LTE Cat.1 模组接入,低功耗蓝牙通过 UART 将授权信息和激活信息传输到 LTE Cat.1 模组。LTE Cat.1 不支持主动绑定云端,也不支持从云端解绑。当低功耗蓝牙设备进行解绑的时候,需要发送命令给 LTE Cat.1 通知已经解绑。

基本交互:

LTE Cat.1低功耗蓝牙1. 发送心跳2. 回复心跳3. 查询产品信息4. 回复产品信息5. 保存低功耗蓝牙的软件版本号启动 PDP 激活启动云服务6. 查询工作状态7. 回复工作状态8. 查询 LTE Cat.1 唯一标识9. 返回 LTE Cat.1 IMEI、设备类型以及是否绑定的标记10. 获取密钥11. 生成 public key 和共享密钥,保存共享密钥12. 应答 LTE Cat.1 pub 密钥13. 同步授权信息14. 获取到 uuid、auth_key、psk_key(可选),调用 tuya_iot_set_ext_auth_info 设置 uuid、auth_key、psk_key15. 返回授权信息同步应答,应答包中的 32 字节使用 16 字节随机数+共享密钥进行 hamc_sha256 加密16. 激活信息同步命令17. 收到激活信息后,启动 3 秒定时器18. 返回激活状态 019. 定时器调用 tuya_iot_set_ext_active_info20. 返回激活状态 4,保存激活标记LTE Cat.1低功耗蓝牙

模组唯一标识查询(0xD0 00)

低功耗蓝牙发送

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

模组回复

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x00
命令字 1 0xD0
数据长度 2 N
数据 1 子命令 0x00
1
  • result0 表示信息获取成功,非 0 表示信息获取失败
  • 失败后,后续数据无效
1 模组绑定状态,0 表示未绑定,1 表示绑定
1 Type 表示模组类型(目前只有 23 在使用中)
  • 1:NB-IoT
  • 2:Wi-Fi
  • 3:LTE Cat.1
  • 4:Zigbee
  • 5:低功耗蓝牙
N XXX (模组的唯一标识)
校验和 1 从帧头开始按字节求和,得出的结果对 256 求余

授权信息同步 (0xD0 01)

低功耗蓝牙发送

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x03
命令字 1 0xD0
数据长度 2 N
数据 N
  • 子命令 0x01
  • 加密方式
    • 0x00:AES-CBC
    • 0x01:AES_CCM
    • 0x02:其他
  • 随机数:16 字节
  • {“uuid”:“xxxx”,
    “auth_key”:“xxxx”,
    “psk_key”:“xxxx”}
    uuidauth_keypsk_key
校验和 1 从帧头开始按字节求和,得出的结果对 256 求余

模组回复

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x00
命令字 1 0xD0
数据长度 2 0x0002
数据 35
  • 子命令 0x01
  • result0 信息获取成功,非 0 信息获取失败
  • 加密方式
    • 0x00:AES-CBC
    • 0x01:AES_CCM
    • 0x02:其他
  • 对随机数做 hmac_sha256Key 使用共享秘钥,key_len 为 32 字节
校验和 1 从帧头开始按字节求和,得出的结果对 256 求余

激活信息同步(0xD0 02)

低功耗蓝牙发送

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x03
命令字 1 0xD0
数据长度 2 N
数据 1+N
  • 子命令 0x02
  • {
    “devId”:“xxxx”,
    “localKey”:“xxxx”,
    “secKey”:“xxxx”,
    “env”:“xxxx”,
    “region”:“xxxx”
    }
    该字段部分加密,采用 AES 加密,具体算法由加密方式字段决定。其中:
    • Key:取共享秘钥的前 16 字节
    • iv:全 0
    • Padding:补齐非 16 整数倍相差的字节
校验和 1 从帧头开始按字节求和,得出的结果对 256 求余

模组回复

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x00
命令字 1 0xD0
数据长度 2 1
数据 1 子命令 0x02
Result 0 表示收到激活信息,正在激活中。激活成功可按 基础服务 中网络状态进行判断,其它结果表示激活失败。
校验和 1 从帧头开始按字节求和,得出的结果对 256 求余

密钥获取(0xD0 03)

低功耗蓝牙发送

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x03
命令字 1 0xD0
数据长度 2 0x42 (66)
数据 66
  • 子命令 0x03
  • 加密曲线类型
    • 1:secp192r1
    • 2:secp224r1
    • 3:secp256r1
    • 4:secp256k1
  • MCU 公钥:64 字节
校验和 1 从帧头开始按字节求和,得出的结果对 256 求余

模组回复

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x00
命令字 1 0xD0
数据长度 2 0x42 (66)
数据 66
  • 子命令 0x03
  • 加密曲线类型
    • 1:secp192r1
    • 2:secp224r1
    • 3:secp256r1
    • 4:secp256k1
  • 模组公钥:64 字节
校验和 1 从帧头开始按字节求和,得出的结果对 256 求余