吳 賡
(福建船政交通職業(yè)學(xué)院,福州 350011)
在單片機(jī)紅外控制應(yīng)用系統(tǒng)中, 紅外遙控編碼是利用38kHz載波進(jìn)行脈沖幅度調(diào)制后便形成紅外信號,經(jīng)紅外發(fā)射管發(fā)射出去,發(fā)射距離一般10m以內(nèi)。利用紅外接收管接收紅外發(fā)射信號,并按照一定的規(guī)律將信號轉(zhuǎn)換成一系列的二進(jìn)制數(shù)。這些對應(yīng)的二進(jìn)制數(shù)可以用來傳送控制信號和數(shù)據(jù)信息,以實現(xiàn)單片機(jī)非接觸傳遞信號的功能,在彩電、錄像機(jī)、錄音機(jī)、音響設(shè)備、空調(diào)機(jī)以及玩具等其他小型電器裝置上采用紅外線遙控比較方便和適應(yīng)。在工業(yè)設(shè)備應(yīng)用中,在高壓、輻射、有毒氣體、粉塵等環(huán)境下,采用紅外線遙控不僅安全可靠而且能有效地隔離電氣干擾。
紅外使用方便,價格便宜,信號采集和編程靈活,功能多,目前已應(yīng)用廣泛?,F(xiàn)在在市場上非常容易買到(見圖1)。同時,將紅外發(fā)射接收遙控裝置應(yīng)用在單片機(jī)控制系統(tǒng)中時,能將遙控器上許多的按鍵解碼出來,用作單片機(jī)系統(tǒng)的輸入,則解決了常規(guī)矩陣鍵盤線路板過大、布線復(fù)雜、占用I/O口過多的弊病。而且通過使用紅外發(fā)射接收遙控裝置,操作時可實現(xiàn)人與設(shè)備的分離,從而更加方便靈活使用。
實現(xiàn)單片機(jī)系統(tǒng)紅外通信的關(guān)鍵在于紅外接口電路的設(shè)計和程序的編寫?,F(xiàn)在普遍使用的編碼規(guī)則是:一次按鍵動作的遙控編碼信息包含一引導(dǎo)脈沖和32位串行二進(jìn)制碼。前16位碼為用戶碼,不隨按鍵的不同而變化。它是為了表示特定用戶而設(shè)置的一個辨識標(biāo)志,以區(qū)別不同機(jī)種和不同用戶發(fā)射的遙控信號,防止誤操作。后16位碼隨著按鍵的不同而改變,是按鍵的識別碼。前8位為鍵碼的正碼,后8位為鍵碼的反碼。
紅外編碼是用發(fā)射不同電平的高低電壓信號來表示二進(jìn)制信號“0”和“1”的,對于二進(jìn)制信號“0”,是一個脈沖周期為1.125ms,其中低電平占0.56ms,其余是高電平的信號;對于二進(jìn)制信號“1”,一個脈沖周期為2.25ms其中低電平占0.56ms,其余是高電平的信號?!?”脈沖的占空比一般為1∶1,“1”脈沖的占空比一般為1∶3解調(diào)后的“0”和“1”波形及單片機(jī)編碼如圖2所示。
紅外遙控器發(fā)送數(shù)據(jù)時,是將二進(jìn)制數(shù)據(jù)調(diào)制成一系列的脈沖信號通過紅外發(fā)射管發(fā)射出去,紅外載波為頻率 38kHz的方波,紅外接收端在收到 38kHz的載波信號時,會輸出低電平,否則輸出高電平,從而可以將“時斷時續(xù)”的紅外光信號解調(diào)成一定周期的連續(xù)方波信號,再經(jīng)過一體化紅外接收頭解調(diào)便可以恢復(fù)出原數(shù)據(jù)信號。
當(dāng)紅外發(fā)射裝置發(fā)射紅外線時,通過載波的方式加載發(fā)射,這樣可以減小發(fā)射功率。如果沒有接收到紅外遙控信號,接收器的輸出端口保持高電平,當(dāng)接收到紅外遙控信號時,接收頭就接收到低電平,這時利用單片機(jī)中斷的方式采集低電平的時間,存儲起來,然后根據(jù)時間的不同可以定義不同的編碼信號。
(1)引導(dǎo)脈沖是通過定時器接收低電平信號,當(dāng)紅外發(fā)射結(jié)束而接收到高電平信號時保存記錄低電平的時間,這個時間值在定時器中保存的數(shù)值介于2300H到23FFH之間的16位2進(jìn)制數(shù),高電平的計時時間忽略。
(2)數(shù)據(jù)脈沖0是通過定時器接收低電平信號,當(dāng)紅外發(fā)射結(jié)束而接收到高電平信號時保存記錄低電平的時間,這個時間值在定時器中保存的數(shù)值介于0000H到00FFH之間的16位2進(jìn)制數(shù),高電平的計時時間忽略。
(3)數(shù)據(jù)脈沖1是通過定時器接收低電平信號,當(dāng)紅外發(fā)射結(jié)束而接收到高電平信號時保存記錄低電平的時間,這個時間值在定時器中保存的數(shù)值介于0100H到01FFH之間的16位2進(jìn)制數(shù),高電平的計時時間忽略。
(4)數(shù)據(jù)脈沖2是通過定時器接收低電平信號,當(dāng)紅外發(fā)射結(jié)束而接收到高電平信號時保存記錄低電平的時間,這個時間值在定時器中保存的數(shù)值介于0200H到02FFH之間的16位2進(jìn)制數(shù),高電平的計時時間忽略。
(5)數(shù)據(jù)脈沖3是通過定時器接收低電平信號,當(dāng)紅外發(fā)射結(jié)束而接收到高電平信號時保存記錄低電平的時間,這個時間值在定時器中保存的數(shù)值介于0300H到03FFH之間的16位2進(jìn)制數(shù),高電平的計時時間忽略。
(6)數(shù)據(jù)脈沖4是通過定時器接收低電平信號,當(dāng)紅外發(fā)射結(jié)束而接收到高電平信號時保存記錄低電平的時間,這個時間值在定時器中保存的數(shù)值介于0400H到04FFH之間的16位2進(jìn)制數(shù),高電平的計時時間忽略。
(7)數(shù)據(jù)脈沖5是通過定時器接收低電平信號,當(dāng)紅外發(fā)射結(jié)束而接收到高電平信號時保存記錄低電平的時間,這個時間值在定時器中保存的數(shù)值介于0500H到05FFH之間的16位2進(jìn)制數(shù),高電平的計時時間忽略。
(8)數(shù)據(jù)脈沖6是通過定時器接收低電平信號,當(dāng)紅外發(fā)射結(jié)束而接收到高電平信號時保存記錄低電平的時間,這個時間值在定時器中保存的數(shù)值介于0600H到06FFH之間的16位2進(jìn)制數(shù),高電平的計時時間忽略。
(9)數(shù)據(jù)脈沖7是通過定時器接收低電平信號,當(dāng)紅外發(fā)射結(jié)束而接收到高電平信號時保存記錄低電平的時間,這個時間值在定時器中保存的數(shù)值介于0700H到07FFH之間的16位2進(jìn)制數(shù),高電平的計時時間忽略。
(10)數(shù)據(jù)脈沖8是通過定時器接收低電平信號,當(dāng)紅外發(fā)射結(jié)束而接收到高電平信號時保存記錄低電平的時間,這個時間值在定時器中保存的數(shù)值介于0800H到08FFH之間的16位2進(jìn)制數(shù),高電平的計時時間忽略。
(11)數(shù)據(jù)脈沖9是通過定時器接收低電平信號,當(dāng)紅外發(fā)射結(jié)束而接收到高電平信號時保存記錄低電平的時間,這個時間值在定時器中保存的數(shù)值介于0900H到09FFH之間的16位2進(jìn)制數(shù),高電平的計時時間忽略。
將這些脈沖組合起來形成紅外發(fā)射序列,可以得到不同的數(shù)碼信號,當(dāng)單片機(jī)接收到這些信號時,記錄時間,并進(jìn)行比較,得出一系列的數(shù)字信號,這些數(shù)字信號可以代表編程者不同的控制命令,從而為單片機(jī)產(chǎn)生不同的執(zhí)行指令服務(wù)。
一種簡單的組合是一個控制命令由一個引導(dǎo)脈沖、一個數(shù)據(jù)脈沖構(gòu)成,比如要產(chǎn)生命令0,必須發(fā)射兩個脈沖:引導(dǎo)脈沖、0數(shù)據(jù)脈沖。這樣我們可以得到各種命令,能夠滿足一般遙控需要要求。這種發(fā)射編碼所需要的脈沖個數(shù)少,發(fā)射的時間周期短,產(chǎn)生誤碼的概率很小,比較適用于數(shù)據(jù)的傳送。
復(fù)雜的組合可以由一個引導(dǎo)脈沖和多個數(shù)據(jù)脈沖構(gòu)成,這樣在執(zhí)行多個控制命令時不會出現(xiàn)重碼和誤碼的錯誤。這樣我們可以得到各種命令,能夠滿足一般遙控需要要求。這種發(fā)射編碼所需要的脈沖個數(shù)少,發(fā)射的時間周期短,產(chǎn)生誤碼的概率很小,比較適用于數(shù)據(jù)的傳送。
本文應(yīng)用紅外遙控發(fā)射和接收進(jìn)行數(shù)據(jù)傳輸,進(jìn)而可以數(shù)據(jù)顯示和相應(yīng)控制處理,同時本設(shè)計還涉及AD及LM35的溫度采樣,能實時顯示溫度,并把溫度傳給另一方。
由上述可知,應(yīng)用這種軟件編寫單片機(jī)紅外發(fā)射程序簡單,經(jīng)過上述的應(yīng)用設(shè)計檢測,紅外遙控信號的發(fā)射和接收沒有出現(xiàn)傳輸誤碼,可靠、實用,在編碼解碼方面降低了硬件成本。單片機(jī)通過采用上述方法對遙控接收信號進(jìn)行分析判斷,就可將其轉(zhuǎn)換成相應(yīng)的二進(jìn)制代碼。這樣就可以根據(jù)事先約定代碼所代表的功能,單片機(jī)就可以去執(zhí)行各種控制動作,從而達(dá)到遙控的目的。
[1]郭天祥.新概念51單片機(jī)C語言教程[M].北京:電子工業(yè)出版社,2009.
[2]薛小玲.單片機(jī)接口模塊應(yīng)用與開發(fā)實例詳解[M].北京:北京航空航天大學(xué)出版社,2010.
[3]徐文明.嵌入式系統(tǒng)結(jié)構(gòu)特點[J].電測與儀表,2004,41(8):36~38.
[4]聶詩良,李磊民.紅外遙控信號的一種編碼解碼方法[J].儀表技術(shù)與傳感器,2004,(8).
[5]崔如春,譚海燕.紅外遙控信號的編碼方法與單片機(jī)譯碼程序的設(shè)計[J].計算機(jī)與現(xiàn)代化,2000,(6).
[6]蔡明文.紅外遙控編碼的唯一性研究[J].蘭州工業(yè)高等??茖W(xué)校學(xué)報,2008,15(4).
[7]劉曉明,安敏,黃克初.軟件解碼實現(xiàn)智能儀器紅外遙控[J].計算機(jī)自動測量與控制,2001,9(3).