□ 金建超 江蘇聯(lián)宏自動(dòng)化系統(tǒng)工程有限公司
分體式空調(diào)紅外遙控編解碼研究及應(yīng)用
□ 金建超江蘇聯(lián)宏自動(dòng)化系統(tǒng)工程有限公司
本文首先介紹了紅外通信的基本原理,然后提出一種利用Neuron芯片邊沿記錄輸入對(duì)象采集遙控器編碼,分析得出編碼脈沖組中每個(gè)脈沖的寬度、各個(gè)字節(jié)數(shù)據(jù)的方法。介紹一種基于Neuron的紅外遙控編碼的軟件實(shí)現(xiàn)。為各類紅外遙控控制在LonWorks節(jié)點(diǎn)設(shè)備中的開發(fā)應(yīng)用提供一個(gè)參考。
Neuron 芯片;紅外遙控;編解碼;研究
紅外遙控使用方便、功耗低、成本低廉,已經(jīng)得到了廣泛應(yīng)用。但都是針對(duì)各自的遙控對(duì)象(彩電、空調(diào)、DVD等),由專用CPU解碼,作為一般的單片機(jī)控制系統(tǒng)不能直接使用。本文探討了如何參考紅外遙控系統(tǒng)的原理,自行設(shè)計(jì)解碼電路和解碼、控制程序,利用現(xiàn)有遙控器使普通單片機(jī)控制系統(tǒng)嵌入紅外遙控技術(shù)。
紅外通信,即以紅外線作為通信載體,通過(guò)紅外光在空中的傳播來(lái)傳輸數(shù)據(jù)的通信方式,它由發(fā)射端和接收端來(lái)完成。在發(fā)射端,發(fā)送的數(shù)字信號(hào)經(jīng)過(guò)適當(dāng)?shù)恼{(diào)制編碼后,送入電光變換電路,經(jīng)紅外發(fā)射管轉(zhuǎn)變?yōu)榧t外光脈沖發(fā)射到空中;在接收端,紅外接收器對(duì)接收到的紅外光脈沖進(jìn)行光電變換,解調(diào),再經(jīng)單片機(jī)處理,便可以恢復(fù)出原數(shù)據(jù)信號(hào)。
目前應(yīng)用中的各種紅外遙控系統(tǒng)的原理都大同小異,區(qū)別只是在于各系統(tǒng)的信號(hào)編碼格式不同,這里我們以運(yùn)用比較廣泛,解碼比較容易的一類來(lái)加以說(shuō)明,現(xiàn)以日本NEC的uPD6121G組成發(fā)射電路為例說(shuō)明編碼原理。發(fā)射器按鍵按下后,即有遙控碼發(fā)出,所按的鍵不同遙控編碼也不同。這種遙控碼具有以下特征:采用脈寬調(diào)制的串行碼,以脈寬為0.565ms、間隔0.56ms、周期為1.125ms的組合表示二進(jìn)制的“0”;以脈寬為0.565ms、間隔1.685ms、周期為2.25ms的組合表示二進(jìn)制的“1”,其波形如圖2所示。
圖2 遙控碼的“0”和“1”上述“0”和“1”組成的32位二進(jìn)制碼經(jīng)38kHz的載頻進(jìn)行二次調(diào)制以提高發(fā)射效率,達(dá)到降低電源功耗的目的。然后再通過(guò)紅外發(fā)射二極管產(chǎn)生紅外線向空間發(fā)射,如圖3所示。
圖3 遙控信號(hào)編碼波形圖
UPD6121G產(chǎn)生的遙控編碼是連續(xù)的32位二進(jìn)制碼組,其中前16位為用戶識(shí)別碼,能區(qū)別不同的電器設(shè)備,防止不同機(jī)種遙控碼互相干擾。該芯片的用戶識(shí)別碼固定為十六進(jìn)制01H;后16位為8位操作碼(功能碼)及其反碼。UPD6 121G最多額128種不同組合的編碼。遙控器在按鍵按下后,周期性地發(fā)出同一種32位二進(jìn)制碼,周期約為108ms。一組碼本身的持續(xù)時(shí)間隨它包含的二進(jìn)制“0”和“1”的個(gè)數(shù)不同而不同,大約在45—63ms之間,圖4為發(fā)射波形圖。
圖4 遙控連發(fā)信號(hào)波形
當(dāng)一個(gè)鍵按下超過(guò)36ms,振蕩器使芯片激活,將發(fā)射一組108ms的編碼脈沖,這108ms發(fā)射代碼由一個(gè)引導(dǎo)碼(9ms),一個(gè)結(jié)束碼(4.5ms),低8位地址碼(9ms~18ms),高8 位地址碼(9ms~18ms),8位數(shù)據(jù)碼(9ms~18ms)和這8位數(shù)據(jù)的反碼(9ms~18ms)組成。如果鍵按下超過(guò)108ms仍未松開,接下來(lái)發(fā)射的代碼(連發(fā)碼)將僅由起始碼(9ms)和結(jié)束碼(2.25ms)組成。
圖5 起始碼 連發(fā)碼
3.1紅外接收電路
接收電路可以使用一種集紅外線接收和放大于一體的一體化紅外線接收器,不需要任何外接元件,就能完成從紅外線接收到輸出與TTL電平信號(hào)兼容的所有工作,而體積和普通的塑封三極管大小一樣,它適合于各種紅外線遙控和紅外線數(shù)據(jù)傳輸。
接收器對(duì)外只有3個(gè)引腳:Out、GND、Vcc與單片機(jī)接口非常方便,如圖6所示。
脈沖信號(hào)輸出接,直接接單片機(jī)的IO 口;2)GND接系統(tǒng)的地線(0V);3)Vcc接系統(tǒng)的電源正極(+5V)。
3.2紅外解碼過(guò)程
下面以志高空調(diào)遙控器為例,介紹一下紅外解碼的過(guò)程。將邏輯分析儀測(cè)試引腳接到紅外接收管輸出管腳,對(duì)準(zhǔn)接收管按下遙控器,得到以下波形。
通過(guò)分析儀的測(cè)量功能可以得出遙控編碼協(xié)議格式:
將Neuron芯片IO4設(shè)置為邊沿記錄輸入對(duì)象
IO_4 input edgelog clock(7) io_time_stream;
IO_4 input byte io_time_stream_level;
通過(guò)定義邊沿記錄輸入對(duì)象,Neuron可以用于連接諸如UPC條形閱讀器或紅外接收機(jī)等I/O設(shè)備。通過(guò)測(cè)量IO_4引腳輸入的比特流上升沿(默認(rèn))或下降沿之間的時(shí)間周期,來(lái)分析這些I/O設(shè)備產(chǎn)生的復(fù)雜波形。
將測(cè)量到的時(shí)間周期通過(guò)網(wǎng)絡(luò)變量輸出:
為方便分析將以上數(shù)據(jù)放到excel中分析(表格略).通過(guò)表格分析,將0/1比特流轉(zhuǎn)換成8位byte,轉(zhuǎn)換時(shí)低字節(jié)在前,高字節(jié)在后(LSB)??梢钥闯鲞@組波形解碼后得到的數(shù)據(jù)為:
起始碼 + {0xff,0x00,0xff,0x00,0xff,0x00,0x87,0x78,0xd5,0x2 a,0x2a,0xd5} + 結(jié)束碼。
4.1紅外發(fā)送電路
紅外發(fā)送時(shí)由PWM引腳產(chǎn)生38K調(diào)制信號(hào),由FR_TX引腳輸出相應(yīng)的紅外編碼信息。實(shí)現(xiàn)相應(yīng)的紅外指令遙控控制。
4.2紅外編碼過(guò)程
紅外編碼即將解碼得到數(shù)據(jù)按對(duì)應(yīng)的紅外協(xié)議轉(zhuǎn)出成高低電平時(shí)序流發(fā)送出去,是解碼的逆過(guò)程。
發(fā)送起始碼:
Infrsend_L;
scaled_delay(480); // 約6.11MS
Infrsend_H;
scaled_delay(590); // 約7.412MS
發(fā)送bit“1”:
Infrsend_L;
scaled_delay(40); // 約0.53ms
Infrsend_H;
scaled_delay(133); // 約1.685ms
發(fā)送bit“0”:
Infrsend_L;
scaled_delay(40); // 約0.53ms
Infrsend_H;
scaled_delay(40); // 約0.53ms
發(fā)送結(jié)束碼:
Infrsend_L;
scaled_delay(40); //約0.53ms
Infrsend_H;
scaled_delay(590); //約7.43ms
Infrsend_L;
scaled_delay(40); //約0.53ms
Infrsend_H;
紅外發(fā)送子程序軟件流程圖:
本文介紹了利用Neuron芯片邊沿記錄輸入對(duì)象進(jìn)行紅外解碼的詳細(xì)方法。在實(shí)際應(yīng)用中紅外編碼都有規(guī)律可循,例如同一遙控器溫度、模式等指令代碼都在固定的比特位,根據(jù)這些規(guī)律能進(jìn)一步簡(jiǎn)化解碼過(guò)程加快解碼效率。目前以上所介紹的遍解碼方法已經(jīng)應(yīng)用到多個(gè)工程項(xiàng)目中,實(shí)現(xiàn)了分體式空調(diào)的溫度模式遠(yuǎn)程紅外控制的功能。使得分體式空調(diào)的用能監(jiān)測(cè),統(tǒng)一控制管理成為可能。
[1]楊育紅.《LON網(wǎng)絡(luò)控制技術(shù)》,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》