您的位置:首页 > 其它

格力空调红外编码分析

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位数据码形成如下图所示:

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
 
 
所有按键都是这个值
后32位数据码形成如下图所示:

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

 

为了方便编码,在编码时可以正序,解码端再逆序,解码的时候先解码低字节,再解码高字节的位。另外定时数据对最后的校验码的影响没有测试,因为很少会用到这个功能。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息