格力空调红外编码分析
2014-07-17 21:18
141 查看
最近一个月一直在弄智能家居的东西,从最底层的硬件开始,找资料,学着用Altium Designer画电路图,PCB打样,再到电子元器件采购和焊接,中间出了些问题,也学到很多东西。不废话了,这里主要分析一下红外编码的问题。
红外遥控器大家肯定都很熟悉,也知道一般的红外信号都是38KHz调制信号,但是红外信号的编码方式有很多很多种,其中空调的最复杂,因为空调遥控每个按钮在不同的情况下发送的信号是不同的,不管按下的哪个按键,遥控器都会发送所有的状态,比如温度,模式,风速等等。要想完整的学习一个空调遥控就要分析每位数据代表的含义。
这里我以手上的格力空调遥控器为例分析一下,遥控器的型号是YB0F2。
格力空调遥控器(YB0F2)红外码组成如下,按解码顺序排列
起始码(S)+35位数据码+连接码(C)+32位数据码
1、各种编码的电平宽度:
数据码由“0”“1”组成:
0的电平宽度为:600us低电平+600us高电平,
1的电平宽度为:600us低电平+1600us高电平
起始码S电平宽度为:9000us低电平+4500us高电平
连接码C电平宽度为:600us低电平+20000us高电平
这里的电平宽度不是我用示波器看的,而是用51单片机测的,所以和实际的时间长短有一些差距,但是不影响功能的实现。
2、数据码的形成机制
前35位数据码形成如下图所示:
后32位数据码形成如下图所示:
上表中,大于两位的数据都是逆序递增的,各数据的意义如下:
校验码的形成机制如下:
校验码 = [(模式 – 1) + (温度 – 16) + 5 +左右扫风+换气+节能]取二进制后四位,再逆序;
例如:如果需要设置一下的状态,模式4,30℃,左右扫风,换气关闭,节能关闭,那么校验码为:
(4 – 1)+(30-16)+5+1+0+0= 15,取低四位为0111,逆序后为1110
为了方便编码,在编码时可以正序,解码端再逆序,解码的时候先解码低字节,再解码高字节的位。另外定时数据对最后的校验码的影响没有测试,因为很少会用到这个功能。
红外遥控器大家肯定都很熟悉,也知道一般的红外信号都是38KHz调制信号,但是红外信号的编码方式有很多很多种,其中空调的最复杂,因为空调遥控每个按钮在不同的情况下发送的信号是不同的,不管按下的哪个按键,遥控器都会发送所有的状态,比如温度,模式,风速等等。要想完整的学习一个空调遥控就要分析每位数据代表的含义。
这里我以手上的格力空调遥控器为例分析一下,遥控器的型号是YB0F2。
格力空调遥控器(YB0F2)红外码组成如下,按解码顺序排列
起始码(S)+35位数据码+连接码(C)+32位数据码
1、各种编码的电平宽度:
数据码由“0”“1”组成:
0的电平宽度为:600us低电平+600us高电平,
1的电平宽度为:600us低电平+1600us高电平
起始码S电平宽度为:9000us低电平+4500us高电平
连接码C电平宽度为:600us低电平+20000us高电平
这里的电平宽度不是我用示波器看的,而是用51单片机测的,所以和实际的时间长短有一些差距,但是不影响功能的实现。
2、数据码的形成机制
前35位数据码形成如下图所示:
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| | | | | | | | | | | | | | | |
模式标志 | 开关 | 风速 | 扫风 | 睡眠 | 温度数据 | 定时数据 | |||||||||
17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 28 | 30 | 31 | 32 |
| | | | | | | | | 0 | 0 | 0 | 1 | 0 | 1 | 0 |
定时数据 | 超强 | 灯光 | 健康 | 干燥 | 换气 | 所有按键都是这个值 | |||||||||
33 | 34 | 35 | | | |||||||||||
0 | 1 | 0 | | | |||||||||||
所有按键都是这个值 |
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 0 | 0 | 0 | | 0 | 0 | 0 | | | 0 | 0 | 0 | 1 | 0 | 0 |
上下扫风 | 所有按键都是这个值 | 左右扫风 | 所有按键都是这个值 | 温度显示 | | | | | | ||||||
17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 28 | 30 | 31 | 32 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 0 | | | | |
| | | | | | | 节能 | | 校验码 |
上表中,大于两位的数据都是逆序递增的,各数据的意义如下:
| 自动 | 制冷 | 加湿 | 送风 | 制热 |
模式标志 | 000 | 100 | 010 | 110 | 001 |
| 自动 | 一级 | 二级 | 三级 |
风速标志 | 00 | 10 | 01 | 11 |
| 16度 | 17度 | 18~29度 | 30度 |
温度 | 0000 | 1000 | 逆序递增 | 0111 |
校验码的形成机制如下:
校验码 = [(模式 – 1) + (温度 – 16) + 5 +左右扫风+换气+节能]取二进制后四位,再逆序;
例如:如果需要设置一下的状态,模式4,30℃,左右扫风,换气关闭,节能关闭,那么校验码为:
(4 – 1)+(30-16)+5+1+0+0= 15,取低四位为0111,逆序后为1110
为了方便编码,在编码时可以正序,解码端再逆序,解码的时候先解码低字节,再解码高字节的位。另外定时数据对最后的校验码的影响没有测试,因为很少会用到这个功能。
相关文章推荐
- H.264视频编码传输的QoS特性分析(一)
- 电脑协会blog的编码不支持Unicode(utf-8)些许分析
- FFMpeg中apiexample.c例子分析——编码分析
- H.264视频编码传输的QoS特性分析(三)
- 协议编码分析 - TCP协议解码详解
- H.264视频编码传输的QoS特性分析(二)
- MMS实现详细分析(BENQ M22模块)*--(2)---MMS PDU的头域和二进制编码分析
- 迅雷下载地址在线转换及编码算法分析
- 协议编码分析 - ARP协议详解
- CMS中文编码问题分析及解决方案
- 关于H.264视频编码传输的QoS特性分析(转载)
- 需求分析远比编码更重要
- Discuz!!论坛wap功能模块编码的注射漏洞分析
- 中文编码问题全面分析
- MPEG2代码分析Part2 编码前的初始化与序列头的格式
- 海洋顶端2006+密码编码分析
- H.264视频编码传输的QoS特性分析(三)
- java, asp 分析各种搜索引擎的关键字,自动识别url 中关键字的编码
- 针对不同编码的自定义截取函数分析
- 中文编码问题全面分析【转】