格力空調紅外編碼分析

最近一個月一直在弄智能家居的東西,從最底層的硬件開始,找資料,學着用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

 

爲了方便編碼,在編碼時可以正序,解碼端再逆序,解碼的時候先解碼低字節,再解碼高字節的位。另外定時數據對最後的校驗碼的影響沒有測試,因爲很少會用到這個功能。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章