紅外遙控芯片BA5104的軟件解碼方法探討
摘要:根據紅外遙控芯片BA5104的編碼格式,探討使用AVR單片機ATmega16進行軟件解碼的兩種方法:外部中斷解碼法和輸入捕獲功能解碼法。詳細闡述這兩種解碼方法的思路,并給出相應的解碼中斷服務子程序。分析這兩種解碼方法的優缺點,得出輸入捕獲功能解碼法比外部中斷解碼法效率更高、解出的遙控碼更穩定、可靠的結論。
關鍵詞:AVR單片機;捕獲模式;解碼;紅外遙控芯片
用BA5104芯片構成的紅外遙控發射器電路具有外接元件少、成本低廉、器件本身功耗低、電源電壓適應范圍寬、工作穩定可靠等特點,因此廣泛應用于遙控風扇、燈器、電熱水器等各類家用電器中。BA5104芯片解碼常用BA5204、BA820X系列、SM5032C等芯片進行硬件解碼,這種解碼方法缺乏靈活性。目前許多電子產品和電氣設備以單片機作為核心控制器且逐漸采用紅外遙控器進行操作,采用軟件解碼代替硬件解碼,對于設備的升級和改造提供極大的靈活性,降低開發成本。
1 BA5104芯片構成的紅外遙控發射器電路
由紅外遙控芯片BA5104構成的紅外遙控發射器電路如圖1所示。K1~K8為遙控器的輸入按鍵,由于BA5104的按鍵輸入端內接有上拉電阻無鍵按下時,電路沒有電流流通,無編碼信號輸出。當電路中有任一鍵按下時,振蕩電路起振,產生455 kHz的振蕩信號,經BA5104內部電路進行12分頻,得到38 kHz的載波信號。按鍵的綰碼信息和C1、C2的狀態信息經內部電路進行編碼調制,由15腳串行輸出,經三極管Q1,Q2構成的達靈頓電路放大,驅動經外發射管發射38 kHz的已調制紅外載波信號。14腳輸出高電平,點亮發射狀態指示燈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所示。
評論