□ 金建超 江蘇聯宏自動化系統工程有限公司
分體式空調紅外遙控編解碼研究及應用
□ 金建超江蘇聯宏自動化系統工程有限公司
本文首先介紹了紅外通信的基本原理,然后提出一種利用Neuron芯片邊沿記錄輸入對象采集遙控器編碼,分析得出編碼脈沖組中每個脈沖的寬度、各個字節數據的方法。介紹一種基于Neuron的紅外遙控編碼的軟件實現。為各類紅外遙控控制在LonWorks節點設備中的開發應用提供一個參考。
Neuron 芯片;紅外遙控;編解碼;研究
紅外遙控使用方便、功耗低、成本低廉,已經得到了廣泛應用。但都是針對各自的遙控對象(彩電、空調、DVD等),由專用CPU解碼,作為一般的單片機控制系統不能直接使用。本文探討了如何參考紅外遙控系統的原理,自行設計解碼電路和解碼、控制程序,利用現有遙控器使普通單片機控制系統嵌入紅外遙控技術。
紅外通信,即以紅外線作為通信載體,通過紅外光在空中的傳播來傳輸數據的通信方式,它由發射端和接收端來完成。在發射端,發送的數字信號經過適當的調制編碼后,送入電光變換電路,經紅外發射管轉變為紅外光脈沖發射到空中;在接收端,紅外接收器對接收到的紅外光脈沖進行光電變換,解調,再經單片機處理,便可以恢復出原數據信號。

目前應用中的各種紅外遙控系統的原理都大同小異,區別只是在于各系統的信號編碼格式不同,這里我們以運用比較廣泛,解碼比較容易的一類來加以說明,現以日本NEC的uPD6121G組成發射電路為例說明編碼原理。發射器按鍵按下后,即有遙控碼發出,所按的鍵不同遙控編碼也不同。這種遙控碼具有以下特征:采用脈寬調制的串行碼,以脈寬為0.565ms、間隔0.56ms、周期為1.125ms的組合表示二進制的“0”;以脈寬為0.565ms、間隔1.685ms、周期為2.25ms的組合表示二進制的“1”,其波形如圖2所示。

圖2 遙控碼的“0”和“1”上述“0”和“1”組成的32位二進制碼經38kHz的載頻進行二次調制以提高發射效率,達到降低電源功耗的目的。然后再通過紅外發射二極管產生紅外線向空間發射,如圖3所示。

圖3 遙控信號編碼波形圖
UPD6121G產生的遙控編碼是連續的32位二進制碼組,其中前16位為用戶識別碼,能區別不同的電器設備,防止不同機種遙控碼互相干擾。該芯片的用戶識別碼固定為十六進制01H;后16位為8位操作碼(功能碼)及其反碼。UPD6 121G最多額128種不同組合的編碼。遙控器在按鍵按下后,周期性地發出同一種32位二進制碼,周期約為108ms。一組碼本身的持續時間隨它包含的二進制“0”和“1”的個數不同而不同,大約在45—63ms之間,圖4為發射波形圖。

圖4 遙控連發信號波形
當一個鍵按下超過36ms,振蕩器使芯片激活,將發射一組108ms的編碼脈沖,這108ms發射代碼由一個引導碼(9ms),一個結束碼(4.5ms),低8位地址碼(9ms~18ms),高8 位地址碼(9ms~18ms),8位數據碼(9ms~18ms)和這8位數據的反碼(9ms~18ms)組成。如果鍵按下超過108ms仍未松開,接下來發射的代碼(連發碼)將僅由起始碼(9ms)和結束碼(2.25ms)組成。

圖5 起始碼 連發碼
3.1紅外接收電路
接收電路可以使用一種集紅外線接收和放大于一體的一體化紅外線接收器,不需要任何外接元件,就能完成從紅外線接收到輸出與TTL電平信號兼容的所有工作,而體積和普通的塑封三極管大小一樣,它適合于各種紅外線遙控和紅外線數據傳輸。
接收器對外只有3個引腳:Out、GND、Vcc與單片機接口非常方便,如圖6所示。

脈沖信號輸出接,直接接單片機的IO 口;2)GND接系統的地線(0V);3)Vcc接系統的電源正極(+5V)。
3.2紅外解碼過程
下面以志高空調遙控器為例,介紹一下紅外解碼的過程。將邏輯分析儀測試引腳接到紅外接收管輸出管腳,對準接收管按下遙控器,得到以下波形。

通過分析儀的測量功能可以得出遙控編碼協議格式:

將Neuron芯片IO4設置為邊沿記錄輸入對象
IO_4 input edgelog clock(7) io_time_stream;
IO_4 input byte io_time_stream_level;
通過定義邊沿記錄輸入對象,Neuron可以用于連接諸如UPC條形閱讀器或紅外接收機等I/O設備。通過測量IO_4引腳輸入的比特流上升沿(默認)或下降沿之間的時間周期,來分析這些I/O設備產生的復雜波形。

將測量到的時間周期通過網絡變量輸出:

為方便分析將以上數據放到excel中分析(表格略).通過表格分析,將0/1比特流轉換成8位byte,轉換時低字節在前,高字節在后(LSB)。可以看出這組波形解碼后得到的數據為:
起始碼 + {0xff,0x00,0xff,0x00,0xff,0x00,0x87,0x78,0xd5,0x2 a,0x2a,0xd5} + 結束碼。
4.1紅外發送電路

紅外發送時由PWM引腳產生38K調制信號,由FR_TX引腳輸出相應的紅外編碼信息。實現相應的紅外指令遙控控制。
4.2紅外編碼過程
紅外編碼即將解碼得到數據按對應的紅外協議轉出成高低電平時序流發送出去,是解碼的逆過程。
發送起始碼:
Infrsend_L;
scaled_delay(480); // 約6.11MS
Infrsend_H;
scaled_delay(590); // 約7.412MS
發送bit“1”:
Infrsend_L;
scaled_delay(40); // 約0.53ms
Infrsend_H;
scaled_delay(133); // 約1.685ms
發送bit“0”:
Infrsend_L;
scaled_delay(40); // 約0.53ms
Infrsend_H;
scaled_delay(40); // 約0.53ms
發送結束碼:
Infrsend_L;
scaled_delay(40); //約0.53ms
Infrsend_H;
scaled_delay(590); //約7.43ms
Infrsend_L;
scaled_delay(40); //約0.53ms
Infrsend_H;
紅外發送子程序軟件流程圖:

本文介紹了利用Neuron芯片邊沿記錄輸入對象進行紅外解碼的詳細方法。在實際應用中紅外編碼都有規律可循,例如同一遙控器溫度、模式等指令代碼都在固定的比特位,根據這些規律能進一步簡化解碼過程加快解碼效率。目前以上所介紹的遍解碼方法已經應用到多個工程項目中,實現了分體式空調的溫度模式遠程紅外控制的功能。使得分體式空調的用能監測,統一控制管理成為可能。
[1]楊育紅.《LON網絡控制技術》,2001
[2]Echelon Corporation.《Neuron C Programmers Guide》
[3]Echelon Corporation,《5000 Databook》
[4]Echelon Corporation,《I/O Model Reference》
[5]Echelon Corporation,《LonMark SVNT Master List》