摘要:電視機遙控器一般采用紅外線來傳送控制信號,它的特點是有方向性、不能有阻擋、距離一般不超過7米、不受電磁干擾、調試電路簡單等。紅外遙控器根據(jù)編碼方式可以分為兩類:脈沖寬度調制(NEC碼),脈沖位置調整(RC5,RC6碼以及未來的RC7碼)。本文主要介紹RC6碼遙控器的編碼方式,總結了電視端解碼思路,解碼流程及按鍵靈敏度處理的方法,便于在工作中與此相關的實際問題的處理。
關鍵詞:電視 RC6 遙控器解碼
中圖分類號:TN919.8 文獻標識碼:A 文章編號:1007-9416(2016)10-0103-01
1 前言
每一款電視產(chǎn)品都需要與之對應的遙控器,在電視開發(fā)的過程中,適配遙控器是一個尤為重要的工作,不僅需要電視端可以正確的解析用戶發(fā)出的指令,而且要靈敏的做出響應。正確性和靈敏度都會影響到用戶體驗,因此研究遙控器解碼具有十分重要的意義。
2 RC6遙控器編碼方式
RC6遙控器是一種典型的以脈沖位置調制(PPM)的編碼方式,以高低電平跳躍區(qū)分“0”,“1”,由高向低跳變記為1,由低到高跳變記為0,數(shù)據(jù)結構如圖1所示。
RC6遙控器編碼結構,引導碼(6位),客戶碼(16位),奇偶碼(8位),鍵值碼(8位),引導碼較特殊。
利用示波器讀取電視端遙控頭接收到的波形,將波形圖旋轉180度,分析此波形,從右向左讀?。喝鐖D2所示。
根據(jù)波形圖可清晰的讀出數(shù)據(jù):111100 1000 0000 0110 1000 0010 0110 0001 0110。
3 遙控器解碼思路及流程
RC6遙控器是以脈沖位置編碼,解碼時也是根據(jù)電平跳躍方式分析,我們需要設置一個標志位(IR_Flag)來記錄脈沖位置。若是脈沖的開始,通過判斷是高低電平來區(qū)別數(shù)據(jù),若是高電平,則此脈沖為由高向低跳變,記為1,若是低電平,則此數(shù)據(jù)為由低向高跳變,記為0。
3.1 無效脈沖判斷與處理
每一個脈沖是由高低電平的跳變組成,我們需要分析每一個高低電平的長度,除第一個數(shù)據(jù)的高電平為6t之外,其他都為1t-3t區(qū)間,為準確的判斷脈沖發(fā)射正常與否,可以在第一個數(shù)據(jù)的低電平開始記錄,將長度1t-3t之間的脈沖認定為與遙控器匹配的有效脈沖。解碼過程中若出現(xiàn)無效脈沖,則數(shù)據(jù)清零,重新解碼。
3.2 脈沖數(shù)據(jù)解析完成
一個完整的遙控波形共有38個數(shù)據(jù)位,當數(shù)據(jù)解碼個數(shù)為38時,代表解析完成,需設置一個標志位表示波形解碼結束,若波形解碼完成,則進入取數(shù)據(jù)(getkey)流程,取出客戶碼和鍵值等有效數(shù)據(jù)。
4 按鍵靈敏度處理
客戶碼用來判斷是否與此遙控器匹配,鍵值碼需返回上層,用于識別按鍵,奇偶碼是用來區(qū)分按鍵狀態(tài),是首次按下還是重復未松開,按鍵一直按住不松開時,遙控器會連續(xù)不斷的發(fā)出波形,發(fā)出的波形中奇偶碼不變,當松開后,下一次按下時,奇偶碼會發(fā)生變化,以此來區(qū)分,例如一次按鍵中奇偶碼為0010 0110,松開后下一次按下后變化為0101 0110。
4.1 重復按鍵判斷
遙控器如果按住不松開,會連續(xù)不斷的發(fā)出波形,需注意重復按鍵的判斷,介紹一種方法:可以記錄此波形的鍵值和奇偶碼,若下一個波形鍵值和奇偶碼都未發(fā)生變化,則為重復按鍵,若有發(fā)生變化,則是首次按下。設一個標志位flag來表示,重復按鍵為0,否為1,傳回到上層。
4.2 重復按鍵處理
有些平臺,會在上層根據(jù)此返回值,來智能的處理按鍵。如果軟件上層不去處理,就需要在底層返回按鍵的過程中處理重復按鍵。某些按鍵(比如音量+/-,調節(jié)進度條時左右按鍵),按下時,用戶肯定是希望不斷響應,調到自己期望的效果,因此處理這些按鍵時,需要合理的設置響應時間,既能快速響應,又不至于出現(xiàn)按一次,響應兩次的情況。方法:記錄按鍵重復次數(shù),若對于按鍵(音量+/-,導航鍵),若重復兩次,則響應1次,其他按鍵,重復四次波形,響應一次按鍵,大約為0.5s。
5 結語
本文介紹了RC6遙控器的編碼方式,總結了解碼思路及靈敏度問題處理,便于今后的電視軟件的開發(fā)與維護。
收稿日期:2016-08-18
作者簡介:劉麗(1988—),女,山東德州人,碩士,中級職稱,研究方向:電視機軟件開發(fā)與應用。