红外与射频服务

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

红外和射频能力是一项附加功能,能够在原有的产品上增加红外能力,实现万能红外遥控器等特色产品。

  • 红外包括发送和自学习功能,可实现红外码库数据发送和红外码通过自学习后发送。

  • 射频功能可通过涂鸦标准 RF 方案,实现 433 MHz 小无线射频遥控器学习和发送。

红外功能

功能流程

  1. 通过涂鸦 IoT 开发平台配置红外功能,或者联系相关项目经理开通对应服务。

  2. 根据实际产品使用红外发射、接收在模组上的 GPIO 管脚,在基础流程 查询产品信息(0x01) 指令 ir 字段中返回对应的 GPIO 管脚。

    例如,5.12:红外发送脚为 IO5,红外接收脚为 IO12。

    如果工作模式使用模组自处理模式,请勿与按键和 Wi-Fi 指示灯设置的 IO 口重复。部分模组跨组 IO 设置,需要在设置组 IO 脚基础上加 32,例如 PB20 设置序号为 20 + 32。红外发送脚需要用到 PWM 资源,接收需要使用 IO 中断。具体模组支持的 IO 口,请参考模组资料。

  3. 若需要在模组自处理模式下,复用 Wi-Fi 状态指示灯 GPIO,可通过命令 设备新功能设置通知命令(可选) 设置。

指令列表

红外服务涉及以下协议指令:

命令 命令说明
0x2e 红外状态通知
0x2f 红外进入收发产测

红外状态通知下发(0x2e)

设备红外状态 描述 状态值
状态 1 正在发送红外码 0x00
状态 2 发送红外码结束 0x01
状态 3 红外学习开始 0x02
状态 4 红外学习结束 0x03
  • 红外码发送的时间周期非常短,并且需要保持良好的实时性,红外状态数据直接发送,不做重发。

  • 根据您自己的开发需求,通过红外状态做相关状态显示。

  • 红外功能的发送和接收需要使用模组的两个 GPIO 管脚。如果设备使用的联网状态也是模组自处理模式,请注意红外 GPIO 口不要与其他功能 GPIO 脚重复。模组自处理模式可参考 查询工作模式(0x02)

模组发送

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x00
命令 1 0x2e
数据长度 2 0x0001
数据 Data 指示红外工作状态。
  • 0x00:状态 1
  • 0x01:状态 2
  • 0x02:状态 3
  • 0x03:状态 4
校验和 1 从帧头开始,按字节求和,得出的结果对 256 求余

示例55 aa 00 2e 00 01 00 2e

MCU 返回

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

示例55 aa 03 2e 00 00 30

红外进入收发产测(0x2f)

MCU模组红外遥控器红外被控设备发送红外进入收发产测命令(0x2f)进入红外接收状态发送红外状态通知(0x2e),表示-当前设备已进入红外接收状态发送控制设备红外码(如:开)收到红外遥控器命令 2S 后发出接收到的红外码设备正常开启,产测成-功。设备无法开启,产-测失败。MCU模组红外遥控器红外被控设备
  • 红外产测功能需要在未配网状态下才会进入。
  • 模组进入红外产测状态就会进入红外学习状态。
  • 模组一旦进入红外产测模式,就会一直处于产测状态,不断学习数据再发送出来。当模被配上网或者被断电,就会退出产测状态。

MCU 发送

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

示例55 aa 03 2f 00 00 31

模组返回

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x00
命令 1 0x2f
数据长度 2 0x0001
数据 Data
  • 0x00:表示进入红外收发产测成功
  • 0x01:表示进入红外收发产测失败
校验和 1 从帧头开始,按字节求和,得出的结果对 256 求余

示例55 aa 00 2f 00 01 00 2f

射频功能

功能流程

  1. 通过 设备新功能设置通知命令(可选,0x37+0x00)abv 字段使能开启射频功能。
  2. 由于射频码会存在某些产品一次操作有多个键值下发的场景,考虑到 MCU 的资源,MCU 可通过 设备新功能设置通知命令(可选,0x37+0x00) 中的 buf 字段,通知模组当前 MCU 的串口 BUF 资源情况。考虑到键值的最大数据,MCU 的资源应大于 256 字节。
    Wi-Fi 模组在多键值下发的情况下,以此判断是否需要分包发送,最小分包数据量是一个键值。默认多键值时,以一条串口命令下发所有键值数据内容。
  3. 射频功能的执行方是在 MCU 侧,从用户使用角度考虑 Wi-Fi 模组侧不会实现自处理工作状态指示的功能。

指令列表

射频服务涉及以下协议指令:

命令 命令说明
0x33(子命令 0x01) 射频学习状态控制
0x33(子命令 0x02) 射频数据下发
0x33(子命令 0x03) 射频学习数据上报

射频学习状态控制(0x33+0x01)

命令为模组控制 MCU 射频部分的学习状态命令。

模组发送

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x00
命令 1 0x33
数据长度 2 0x0002
数据 1 子命令。0x01:射频学习类命令
1 控制状态。
  • 0x01:进入射频学习状态
  • 0x02:退出射频学习状态
校验和 1 从帧头开始按字节求和得出的结果对 256 求余

示例55 aa 00 33 00 02 01 01 36

MCU 返回

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x03
命令 1 0x33
数据长度 2 0x0003
数据 1 子命令:0x01
1 控制状态。0x01:进入射频学习状态
1 ACK 状态。
  • 0x00:成功
  • 0x02:退出射频学习状态
  • 0x01:失败
校验和 1 从帧头开始按字节求和得出的结果对 256 求余

示例55 aa 03 33 00 03 01 01 00 3a

射频数据下发(0x33+0x02)

  • 射频数据简称键值,一条完整射频数据可由多个键值组成,键值数过多可串口分包发送。

  • 射频数据编码方式为固定编码,即根据发送速率决定每个 bit 发送时长,单个 bit 为 1 表示发送,0 表示不发送,高位先发。

  • 学习码下发 MCU 无需解析频率与发送速率字段,只需解析 Data 字段。

模组发送

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x00
命令 1 0x33
数据长度 2 0x07+n*(T+D+I+L+C)
数据 1 子命令:0x02
1 发送类型。
  • 0x00:码库下发
  • 0x01:学习码下发
1 键值数:n
1 键值偏移序号。
  • 0xFF:整包发送所有键值数据。
  • 0x00-0xFE:指偏移序号,首包为 0,最后一包为键值数-1。
1 频率。0:315 Mhz,1:433.92 Mhz
2 发送速率。例如,2777bps
N Data
  • Ttimes,发送次数,1 字节 长度。当 学习码下发 时,此内容无效,填充默认值 0x00
  • D:delay,key 之间时间间隔,2 字节 长度。当 学习码下发 时,此内容无效,填充默认值 0x0000
  • I:intervals,每次发送时间间隔,2 字节 长度。当 学习码下发 时,此内容无效,填充默认值 0x0000
  • Lcode len,射频发送数据部分长度,2 字节 长度。
  • Ccode,射频发送数据部分,N 字节
校验和 1 从帧头开始按字节求和得出的结果对 256 求余

示例55 aa 00 33 00 xx 02 01 00 ff 00 0a d9 00 00 00 00 00 00 xx xx xx xx xx xx xx

MCU 返回

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x03
命令 1 0x33
数据长度 2 0x0002
数据 1 子命令:0x02
1 ACK 状态:
  • 0x00:成功
  • 0x01:失败
校验和 1 从帧头开始按字节求和得出的结果对 256 求余

示例55 aa 00 33 00 02 02 00 36

射频学习数据上报(0x33+0x03)

MCU 发送

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x03
命令 1 0x33
数据长度 2 0x0002+N
数据 1 子命令:0x03
1 状态。
  • 0:学习成功
  • 1:学习失败
N 内容:学习失败无此字段,学习成功时学习数据上报无固定格式,采用 MCU 端可理解的格式即可
校验和 1 从帧头开始按字节求和得出的结果对 256 求余

示例55 aa 03 33 xx xx 03 00 xx xx xx xx xx xx

模组返回

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x00
命令 1 0x33
数据长度 2 0x0002
数据 1 子命令:0x03
1 ACK 状态。
  • 0x00:上报成功
  • 0x01:上报失败
校验和 1 从帧头开始按字节求和得出的结果对 256 求余

示例55 aa 00 33 00 02 03 00 37