更新时间:2024-04-08 08:18:04下载pdf
红外和射频能力是一项附加功能,能够在原有的产品上增加红外能力,实现万能红外遥控器等特色产品。
红外包括发送和自学习功能,可实现红外码库数据发送和红外码通过自学习后发送。
射频功能可通过涂鸦标准 RF 方案,实现 433 MHz 小无线射频遥控器学习和发送。
通过涂鸦 IoT 开发平台配置红外功能,或者联系相关项目经理开通对应服务。
根据实际产品使用红外发射、接收在模组上的 GPIO 管脚,在基础流程 查询产品信息(0x01) 指令 ir
字段中返回对应的 GPIO 管脚。
例如,5.12
:红外发送脚为 IO5,红外接收脚为 IO12。
如果工作模式使用模组自处理模式,请勿与按键和 Wi-Fi 指示灯设置的 IO 口重复。部分模组跨组 IO 设置,需要在设置组 IO 脚基础上加 32
,例如 PB20 设置序号为 20 + 32
。红外发送脚需要用到 PWM 资源,接收需要使用 IO 中断。具体模组支持的 IO 口,请参考模组资料。
若需要在模组自处理模式下,复用 Wi-Fi 状态指示灯 GPIO,可通过命令 设备新功能设置通知命令(可选) 设置。
红外服务涉及以下协议指令:
命令 | 命令说明 |
---|---|
0x2e | 红外状态通知 |
0x2f | 红外进入收发产测 |
设备红外状态 | 描述 | 状态值 |
---|---|---|
状态 1 | 正在发送红外码 | 0x00 |
状态 2 | 发送红外码结束 | 0x01 |
状态 3 | 红外学习开始 | 0x02 |
状态 4 | 红外学习结束 | 0x03 |
红外码发送的时间周期非常短,并且需要保持良好的实时性,红外状态数据直接发送,不做重发。
根据您自己的开发需求,通过红外状态做相关状态显示。
红外功能的发送和接收需要使用模组的两个 GPIO 管脚。如果设备使用的联网状态也是模组自处理模式,请注意红外 GPIO 口不要与其他功能 GPIO 脚重复。模组自处理模式可参考 查询工作模式(0x02)。
模组发送
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令 | 1 | 0x2e |
数据长度 | 2 | 0x0001 |
数据 | Data | 指示红外工作状态。
|
校验和 | 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
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 |
|
校验和 | 1 | 从帧头开始,按字节求和,得出的结果对 256 求余 |
示例:55 aa 00 2f 00 01 00 2f
abv
字段使能开启射频功能。buf
字段,通知模组当前 MCU 的串口 BUF 资源情况。考虑到键值的最大数据,MCU 的资源应大于 256 字节。射频服务涉及以下协议指令:
命令 | 命令说明 |
---|---|
0x33(子命令 0x01) | 射频学习状态控制 |
0x33(子命令 0x02) | 射频数据下发 |
0x33(子命令 0x03) | 射频学习数据上报 |
命令为模组控制 MCU 射频部分的学习状态命令。
模组发送
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令 | 1 | 0x33 |
数据长度 | 2 | 0x0002 |
数据 | 1 | 子命令。0x01 :射频学习类命令 |
1 | 控制状态。
|
|
校验和 | 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 状态。
|
|
校验和 | 1 | 从帧头开始按字节求和得出的结果对 256 求余 |
示例:55 aa 03 33 00 03 01 01 00 3a
射频数据简称键值,一条完整射频数据可由多个键值组成,键值数过多可串口分包发送。
射频数据编码方式为固定编码,即根据发送速率决定每个 bit 发送时长,单个 bit 为 1
表示发送,0
表示不发送,高位先发。
学习码下发 MCU 无需解析频率与发送速率字段,只需解析 Data 字段。
模组发送
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令 | 1 | 0x33 |
数据长度 | 2 | 0x07+n*(T+D+I+L+C) |
数据 | 1 | 子命令:0x02 |
1 | 发送类型。
|
|
1 | 键值数:n |
|
1 | 键值偏移序号。
|
|
1 | 频率。0 :315 Mhz,1 :433.92 Mhz |
|
2 | 发送速率。例如,2777bps | |
N | Data
|
|
校验和 | 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 状态:
|
|
校验和 | 1 | 从帧头开始按字节求和得出的结果对 256 求余 |
示例:55 aa 00 33 00 02 02 00 36
MCU 发送
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x03 |
命令 | 1 | 0x33 |
数据长度 | 2 | 0x0002+N |
数据 | 1 | 子命令:0x03 |
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 状态。
|
|
校验和 | 1 | 从帧头开始按字节求和得出的结果对 256 求余 |
示例:55 aa 00 33 00 02 03 00 37
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈