李從宏
(南京工業職業技術學院 電氣與電子工程學院,南京210046)
李從宏(講師),研究方向為嵌入式系統設計、信號處理。
紅外遙控是一種無線、非接觸控制技術,具有抗干擾能力強、信息傳輸可靠、功耗低、成本低、易實現等優點,是目前使用最廣泛的一種通信和遙控手段。一般的軟件解碼技術在接收信號時采用了查詢方式[1],在處理信號時,對接收到的所有碼信息進行處理[1-3],占用、浪費系統的資源較嚴重,且容易得到錯誤信息。因此,本文通過對紅外遙控器發射碼序的特征進行分析,提出一種僅基于功能碼的軟件解碼技術,并在編程時采用中斷技術,占用較少的系統資源且系統的響應速度得到提高。
本系統中使用SC6122[4]作為遙控發射器主芯片,發射電路如圖1所示。

圖1 紅外遙控發射電路
紅外遙控接收器的實現方法很多,在本系統中,紅外接收頭采用價格便宜、性能可靠的一體化的紅外接收頭HS0038。它接收紅外信號頻率為38kHz,周期約為26 μs,具備對信號進行放大、檢波、整形的功能,輸出TLL電平的編碼信號,能很好地與宏晶科技的STC12C5410AD單片機進行連接。由于HS0038輸出的信號與發射器發射碼的相位相反,所以將其信號輸出腳連接到單片機的外部中斷引腳,并采用下降沿觸發方式觸發中斷。接收電路如圖2所示。

圖2 紅外遙控接收電路
與本系統相配套的遙控發射器以SC6122芯片為核心。其發射出的編碼結構為:當一個鍵按下超過36ms時,振蕩器使芯片激活,發射一組編碼脈沖。編碼脈沖由1位引導碼、低8位地址碼、高8位地址碼、8位數據碼、8位數據的反碼及1位結果碼組成。如果該鍵按下超過108ms仍未松開,則僅發射連發碼。遙控碼的特征波形如圖3所示。

圖3 遙控碼的特征波形
[1~3]中,對所有的碼都進行捕獲、存儲、解析,且需要對整個發射過程的總時間進行計算。這樣會造成系統資源的浪費,難以適應實時性要求高的場合。本文通過分析紅外遙控編碼脈沖的特征且考慮到紅外遙控器使用的場合,在實際應用時,僅需對引導碼和功能碼進行跟蹤捕獲就可準確解碼。故在本文中,僅對引導碼、功能碼進行捕獲。捕獲引導碼的主要作用是通知單片機發射器有某個按鍵被按下,做好對功能碼進行捕獲的準備;捕獲功能碼的作用是讓單片機判斷出被按下鍵所對應的值。由于功能碼決定了按鍵的作用,故僅需將功能碼進行存儲、解析,只占用8個字節的存儲空間,縮短了數據處理的時間,大大地提高了系統實時處理的能力。
在本解碼技術中,使用單片機系統的兩個中斷系統T0和ⅠNT0,將T0設為定時方式1,外部中斷ⅠNT0設為下降沿中斷觸發方式。通過分析遙控器發射碼的特征可知,數據位“0”的周期為1 125 μs,數據位“1”的周期為2 250 μs,引導碼的周期為13 500μs,故將定時器的定時時間設為100μs較好,不會產生誤碼,且系統的抗干擾能力強。解碼器主程序和外部中斷ⅠNT0中斷程序的流程分別如圖4、圖5所示。

圖4 解碼主程序流程
圖4和圖5中的times數組是表示功能碼的8位二進制,value是經過處理后所得到的功能值;count變量用來記錄T0發生中斷的次數,其與定時器的定時時間100μs的積就是遙控器發射碼的時間值。

圖5 外部中斷INT0中斷程序流程
在本文中,根據紅外遙控發射器發射碼的特征,僅對功能碼進行解析、存儲、數據處理,且采用中斷響應技術,實現了快速、高效的紅外搖控軟件解碼。經實驗測試,本軟件解碼技術沒有出現解碼錯誤的現象,可靠實用,且在解碼方面降低了硬件成本。
參考文獻
[1]唐柳,方鳳才.一種基于AT89S52單片機的紅外遙控發射碼解碼技術[J].廣西師范學院學報:自然科學版,2009,26(2):44-47.
[2]李澤光.基于單片機的紅外搖控器解碼器的設計[J].現代電子技術,2007(9):36-37.
[3]施新華.利用單片機實現的紅外遙控技術[J].上海電機學院學報,2006,9(3):69-71.
[4]Hangzhou Silan Microelectronics Joint-stock Co.,Ltd.SC6122.pdf[OL].[2010-05].http:// www.laogu.com/chip_855850.htm:4-6.