紅外遙控系統的組成
如圖一所示。遙控器用來產生遙控編碼脈衝,驅動紅外發射管輸出紅外遙控信號,遙控接收頭完成對遙控信號的放大、檢波、整形、解調出遙控編碼脈衝。遙控編碼脈衝是一組串列二進制碼,對於一般的紅外遙控系統,此串列碼輸入到微控制器,由其內部CPU完成對遙控指令解碼,並執行相應的遙控功能。使用遙控器作為控制系統的輸入,需要解決如下幾個關鍵問題:如何接收紅外遙控信號;如何識別紅外遙控信號以及解碼軟體的設計、控制程式的設計。
紅外遙控信號的接收
接收電路使用集成一體化紅外接收頭SM0038(1 )。
圖一紅外遙控系統組成方框圖
圖二紅外接收頭SM0038 圖三SM0038與單片機接口電路
紅外遙控編碼規律
目前套用中的各種紅外遙控系統的原理都大同小異,區別只是在於各系統的信號編碼格式不同。遙控專用積體電路的編碼格式是公開的,可以查閱到。下面就以TC9012組成的遙控器說明它的編碼體制規律。當按下遙控器上任一按鍵時,TC9012即產生一串脈衝編碼如圖四所示。TC9012形成的遙控編碼脈衝對40kHz載波進行脈衝幅度調製後便形成遙控信號,經驅動電路由紅外發射管發射出去。編碼體制規律如下:
(1)一次按鍵動作的遙控編碼信息包含一引導脈衝和32 位串列二進制碼。前16 位碼為用戶碼,不隨按鍵的不同而變化。它是為了表示特定用戶而設定的一個辨識標誌,以區別不同機種和不同用戶發射的遙控信號,防止誤操作。後16位碼隨著按鍵的不同而改變,是按鍵的識別碼。前8位為鍵碼的正碼,後8位為鍵碼的反碼。
(2)遙控信號不是用高電平或低電平來表示“1”或“0”的,而是通過脈寬來表示的,對於二進制信號“0”,一個脈衝占1.2ms;對於二進制信號“1”,一個脈衝占2.4ms,而每一脈衝內低電平均為0.6ms。
圖四一幀碼的數據結構圖
按鍵識別程式的設計
要使用一個遙控器進行遙控系統的設計,必需首先了解不同的按鍵編碼脈衝是怎樣和遙控器上不同的按鍵一一對應的。筆者用軟體的方法實現對脈衝流的分析,使用如圖三所示的接口電路接收信號。如果沒有紅外遙控信號到來,接收器的輸出連線埠OUT 保持高電平;當接收到紅外遙控信號時,接收頭將信號解調下來並轉換成脈衝序列加到CPU的中斷輸入引腳。用軟體測試引腳的邏輯電平,同時啟動T計時器,測量該引腳分別為邏輯“0”和邏輯“1”情況下的時間值,存儲起來,然後分析。其規律如下(仿真機CPU晶振為6MHz):
①引導脈衝是一個時間值為1137H~1157H的低電平和時間值為084FH~086FH的高電平;
②數據脈衝的低電平時間值約為0127H~0177H;
③高電平時間值有2種情況:00BBH~00FFH(窄:表示“0”)利0301H~0333H(寬:表示“1”);
④同時通過分析能從中了解各鍵的鍵碼值,供編寫應用程式時使用。
紅外解碼技術的套用
紅外遙控系統的組成及紅外接收電路如圖一、圖三所示,在這主要介紹系統軟體的設計。系統軟體主要由主程式、各控制處理程式、遙控接收解碼中斷程式、顯示控制等模組組成。