遙控器軟件解碼探討論文
時間:2022-03-05 03:18:00
導語:遙控器軟件解碼探討論文一文來源于網友上傳,不代表本站觀點,若需要原創文章可咨詢客服老師,歡迎參考。
1紅外遙控信號的接收
接收電路可以使用集成紅外接收器成品。接收器包括紅外接收管和信號處理IC。接收器對外只有3個引腳:Vcc、GND和1個脈沖信號輸出PO。與單片機接口非常方便,如圖1所示。
①Vcc接系統的電源正極(+5V);
②GND接系統的地線(0V);
③脈沖信號輸出接CPU的中斷輸入引腳(例如8031的13腳INT1)。采取這種連接方法,軟件解既可工作于查詢方式,也可工作于中斷方式。
2脈沖流分析
要了解一個未知的遙控器,首先要分析其脈沖流,從而了解其脈沖波形特征(以何種方式攜帶“0”、“1”信息),進而了解其編碼規律。脈沖流的分析應從分析脈沖的高、低電平寬度入手。筆者用軟件的方法實現了對脈沖流的分析。以圖1所示的接口為例,如果沒有紅外遙控信號到來,接收器的輸出端口PO保持高電平;當接收到紅外遙控信號時,接收器件信號轉換成脈沖序列加到CPU的中斷輸入引腳。用軟件測試引腳的邏輯電平,同時啟動TC計時器,測量該引腳分別為邏輯“0”和邏輯“1”情況下的時間值,存儲起來,然后打印、分析。下面用8051匯編語言給出對脈沖流進行采集、存儲的程序段:
MOVR0,#00H
MOVR1,#28H
MOVTMOD,#01H
TK:JBP3.3,TK;等待低電平到來
;測低電平寬度
TK1:MOVTH0,#00H
MOVTL0,#00H
SETBTR0
TK0:JBTF0,TKE;超時無效返回
JNBP3.3,TK2
CLRTR0
MOVA,TH0
MOVX@R0,A
INCR0
MOVA,TL0
MOVX@R0,A
INCR0
;測高電平寬度
MOVTH0,#00H
MOVTL0,#00H
SETBTR0
TK3:JBTF0,TKE;超時無效返回
JBP3.3,TK3
CLRTR0
MOVA,TH0
MOVX@R0,A
INCR0
MOVA,TL0
MOVX@R0,A
INCR0
DJNZR1,TK1;循環
TKE:RET
這段程序首先將TC0設置成16位定時器方式,初始化RAM地址指針R0和循環計數指針R1,每當引腳的邏輯電平發生跳變時,停止計時,將計時值保存到連續的RAM中。這段程序可以連續測量40個脈沖的時間值(包括40個低電平脈寬)。筆者以TC9012芯片的遙控器為對象,采集了所有按鍵的編程脈沖波形,并且對同一按鍵進行了重復實驗。限于篇幅,采樣數據不能給出,僅給出脈沖流的規律(仿真機CPU晶振為6MHz):
①引導脈沖是一個時間值為0937H~0957H的低電平和時間值為084FH~086FH的高電平;
②數據脈沖的低電平時間值約為0.127H~0177H;
③高電平時間值有2種情況:00BBH~00FFH(窄)、02EFH~0333H(寬)。
由大量數據總結分析,按鍵編碼有如下規律:
①除引導脈沖外的脈沖是數據編碼脈沖,數據“位”信息由高電平脈寬決定:窄脈寬表示“0”、寬脈寬表示“1”;
②每個按鍵的脈沖流譯碼后,包含4個字節的信息:
*所有按鍵的前2個字節編碼都一樣,都是2個字節的“0EH”;
*第3字節是鍵碼;
*第4字節是鍵碼的反碼。
經過對相同按鍵脈沖進行多次采樣發現,相同按鍵脈沖序列的對應位置脈寬時間值是在一個小范圍內波動的(不是一個確定值),因此,對模式的識別不能采取精確比較法。對此,本人采取模糊的辦法進行了抽象處理。根據上述實驗規律,將軟件譯碼時對脈沖的分析判斷依據及算法設計思想總結如下:
①引導脈沖的低電平和高電平寬度的判斷依據是時間值的“高字節大于08H”,低字節忽略;
②數據脈沖流的低電平脈寬相同,忽略不判斷;
③高電平脈寬是判斷數據流每位是“0”還是“1”的依據。本人抽取的判斷是脈寬的高字節若小于2表示“0”,否則表示“1”,脈寬的低字節忽略。
實踐證明,上述判據是有效可行的。這樣處
理不僅使解碼軟件的設計簡單化,而且大大提高了解碼的速度。使用上述判據編寫軟件解碼程序時,要注意脈沖流采樣數據存儲地址與脈沖的對應關系。軟件主要有如下幾部分:
①判斷遙控信號的到來(在解碼前調用1個獨立的子程序);
②采樣并存儲脈沖流;
③判斷引導脈沖是否有效;
④解碼前2個字節并判斷是否為“0EH”;
⑤解碼第3個字節,該字節即為有效鍵碼;
⑥鍵碼的查表映射(如果使用原鍵碼,可省略這一步)。
3解碼軟件的設計
基于上述思路設計的軟件解碼系統成功地應用于多個控制系統。下面給出一個實例(用MCS-51系列MC交通規則TC9012紅外遙控器進行軟件解碼)的匯編語言程序。程序中使用的參數是針對MCU使用6MHz晶振的情況,使用其它頻率的晶振,只需修改脈寬判據即可。為便于理解,盡量保持與原理敘述中的致性,程序中給出了較詳細的注翻譯,詳見網絡補充版()。
本文雖然是用MCS-51系列MCU對TC9012紅外遙控器軟件解碼的研究,但其方法具有一般性。具體的應用,可自行變通。
- 上一篇:時鐘設計研究論文
- 下一篇:紅外遙控器信號接收論文