紅外遙控接收發射原理及ESP8266實現

--作者:燕十三(flyingcys)

-- blog:http://blog.csdn.net/flyingcys

--QQ:294102238

紅外遙控是利用近紅外光進行數據傳輸的一種控制方式。近紅外光波長0.76um~1.5um,紅外遙控收發器件波長一般爲0.8um~0.94um,具有傳輸效率高,成本低,電路實現簡單,抗干擾強等特點,在家用電器上被廣泛使用。

紅外遙控一般有發射和接收兩部分組成,發射元件爲紅外發射管,接收一般採用一體化紅外接收頭,但發射載波頻率與接收頭固定頻率需一致才能正確接收。


一、發射

1. 調製

紅外遙控是以調製方式發射數據,將數據調製到固定的載波上發送,調製發送抗干擾能力更強,傳送距離也更遠。紅外發送首先要解決的就是調製問題。

目前主流的調製方式有PPMPWM

  • PPM:脈衝位置調製,調製脈衝寬度不變,用脈衝間隔來區分01。如下圖所示,脈衝寬度不變都是560us,脈衝間隔改變。邏輯1總時間爲2.25ms,邏輯0中時間長度爲1.12ms

 

1PPM調製

  • PWM:脈衝寬度調製,脈衝間隔不變,調製脈衝寬度改變。如下圖所示,脈衝間隔 600us,脈衝寬度不同。邏輯1高電平時間爲1.2ms,邏輯0高電平時間爲0.6ms

 

2PWM調製

調製載波頻率一般在30KHz60KHz之間,常用的載波有33K36K36.6K38K40K56K等,其中38K使用最多。

常用佔空比有1/31/21/3最多。

2. 紅外傳輸協議

常用的紅外傳輸協議有ITT協議、NEC協議、Nokia NRC協議、Sharp協議、Philips RC-5RC-6 RECS-80協議、Sony SIRC協議等,其中最常見的爲NEC協議。

常見NEC協議分析:

載波38KHz,邏輯12.25ms,脈衝時間560us;邏輯01.12ms,脈衝時間560us

 

3NEC邏輯’0’與邏輯’1’

l 協議格式

 

4NEC紅外載波發送協議

(1) 首先發送9ms的高電平脈衝

(2) 然後發送4.5ms的低電平

(3) 接下來是8bit的地址碼(低位在前)

(4) 然後是8bit的地址反碼,用於檢驗地址碼是否出錯

(5) 接下來的是8bit的命令碼(低位在前)

(6) 然後是8bit的命令反碼,用於檢驗命令碼是否出錯。

l 重複碼

 

5NEC重複發送載波協議

如果一直按着一個鍵,將以110ms爲週期發送重複碼,重複碼由9ms高電平、2.25ms低電平及560us高電平組成。

 

6NEC重複碼

3. 編碼

雖然不同協議都對各自的協議格式做了不同定義,但總體而言還是有高低電平組成的一串數據。

對於紅外發射,就是按照協議規定高電平時間內,在紅外輸出口輸出固定頻率載波;低電平則直接輸出低。紅外接收頭接到載波時輸出高電平,沒有載波時輸出低電平,完成數據解碼。

 

7NEC解碼後協議

二、接收

紅外接收常採用一體化紅外接收頭,集紅外接收、放大、濾波、比較器輸出等功能,並輸出MCU可識別的TTL信號的。常用的一體化紅外接收頭有SCR638HS0038VS1838等。

      

SCR638


HS0038

8:一體化接收頭

 

紅外接收應用電路圖:

 

9:紅外接收典型應用

 

三、ESP8266紅外發送與接收

ESP8266定義了1IR紅外遙控接口,IR紅外遙控接口由軟件實現,接口定義如下:

 

10ESP8266紅外管腳定義

1. 發送

ESP8266上用於發送的載波可以通過以下方式實現:

1) I2SBCK

2) WS管腳產生

3) GPIO中的sigma-delta功能在任意GPIO口產生載波。

其中sigma-delta產生的載波佔空比約爲20%,推薦使用MTMS管腳(GPIO14),可產生準確的38KHz且佔空比爲50%的標準方波。

2. 接收

紅外接收功能通過GPIO的邊沿中斷實現,讀取系統時間,將2次時間相減可以得到波形持續時間,然後通過軟件邏輯實現紅外協議處理。

 

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