紅外遙控芯片BA5104的軟件解碼方法探討
摘要:根據(jù)紅外遙控芯片BA5104的編碼格式,探討使用AVR單片機(jī)ATmega16進(jìn)行軟件解碼的兩種方法:外部中斷解碼法和輸入捕獲功能解碼法。詳細(xì)闡述這兩種解碼方法的思路,并給出相應(yīng)的解碼中斷服務(wù)子程序。分析這兩種解碼方法的優(yōu)缺點(diǎn),得出輸入捕獲功能解碼法比外部中斷解碼法效率更高、解出的遙控碼更穩(wěn)定、可靠的結(jié)論。
關(guān)鍵詞:AVR單片機(jī);捕獲模式;解碼;紅外遙控芯片
用BA5104芯片構(gòu)成的紅外遙控發(fā)射器電路具有外接元件少、成本低廉、器件本身功耗低、電源電壓適應(yīng)范圍寬、工作穩(wěn)定可靠等特點(diǎn),因此廣泛應(yīng)用于遙控風(fēng)扇、燈器、電熱水器等各類家用電器中。BA5104芯片解碼常用BA5204、BA820X系列、SM5032C等芯片進(jìn)行硬件解碼,這種解碼方法缺乏靈活性。目前許多電子產(chǎn)品和電氣設(shè)備以單片機(jī)作為核心控制器且逐漸采用紅外遙控器進(jìn)行操作,采用軟件解碼代替硬件解碼,對于設(shè)備的升級和改造提供極大的靈活性,降低開發(fā)成本。
1 BA5104芯片構(gòu)成的紅外遙控發(fā)射器電路
由紅外遙控芯片BA5104構(gòu)成的紅外遙控發(fā)射器電路如圖1所示。K1~K8為遙控器的輸入按鍵,由于BA5104的按鍵輸入端內(nèi)接有上拉電阻無鍵按下時,電路沒有電流流通,無編碼信號輸出。當(dāng)電路中有任一鍵按下時,振蕩電路起振,產(chǎn)生455 kHz的振蕩信號,經(jīng)BA5104內(nèi)部電路進(jìn)行12分頻,得到38 kHz的載波信號。按鍵的綰碼信息和C1、C2的狀態(tài)信息經(jīng)內(nèi)部電路進(jìn)行編碼調(diào)制,由15腳串行輸出,經(jīng)三極管Q1,Q2構(gòu)成的達(dá)靈頓電路放大,驅(qū)動經(jīng)外發(fā)射管發(fā)射38 kHz的已調(diào)制紅外載波信號。14腳輸出高電平,點(diǎn)亮發(fā)射狀態(tài)指示燈LED1。
2 BA5104芯片的編碼格式
BA5104的編碼格式瑚為:每一幀遙控碼的長度為12位,包括3位起始碼位、2位用戶碼位、7位指令碼位。每一幀遙控碼的時間間隔為4T,其中T=1.687 9 ms為每一位遙控碼的周期。一幀遙控碼如圖2所示。遙控碼“0”用1/4T的高電平、3/4T的低電平表示,遙控碼“1”用3/4T的高電平、1/4T的低電平表示,一位遙控碼的波形如圖3所示。
評論