中科芯集成電路有限公司 吳志玲 胡凱 張弘 武亞恒 王琪 嚴丹丹
為解決傳統(tǒng)紅外發(fā)射編譯器無法實現(xiàn)多用戶編碼以及新增編碼格式較為復雜的問題,本文提出了一種基于XML的紅外發(fā)射編譯器的設計,該設計采用XML文件數(shù)據(jù)格式調用的方法,將不同類型的紅外發(fā)射碼以特定信息格式存儲在庫文件中,該格式中包含定制用戶碼信息,編譯器進行編譯操作時直接調用XML文件庫中的配置信息及編碼數(shù)據(jù)信息即可完成一種紅外發(fā)射碼的編譯操作,實現(xiàn)了可定制化多用戶編碼及支持多種編碼格式的可擴充性需求。
近年來隨著物聯(lián)網(wǎng)的發(fā)展,智能家居展現(xiàn)出強勁的活力。智能遙控器作為智能家居中一種用于遠程控制的裝置得到了廣泛的應用。隨著射頻技術的不斷進步,遙控器信號的傳送接口類型也在不斷增多,目前主要包括紅外線、2.4GHz頻帶電波(RF)、藍牙等,如今最為常見和產(chǎn)量最大的遙控器類型仍然是紅外遙控器。
紅外遙控器作為一種無線發(fā)射裝置,采用數(shù)字編碼技術將按鍵信息進行編碼,并以高低電平的形式通過紅外二極管發(fā)射出光信號,光信號經(jīng)接收端的紅外接收器接收并將其轉換為電信號,再由解碼處理器進行解碼操作,解調出相應的指令發(fā)送至執(zhí)行端[1]。目前已有的紅外發(fā)射編譯器無法實現(xiàn)多用戶碼編碼,也不能滿足不同格式紅外碼的擴充性需求。本文介紹了一種基于可編程智能遙控微控制器的紅外發(fā)射編譯器的設計,該編譯器可實現(xiàn)多用戶碼編碼,同時采用了XML文件數(shù)據(jù)格式調用的方法解決了傳統(tǒng)編譯器無法擴充新編碼格式的問題。
紅外發(fā)射與接收工作原理[2]:編碼IC通過三極管將信號進行放大調變,然后將此電信號(脈沖波)經(jīng)由紅外發(fā)射管(940nm波長)轉變?yōu)楣庑盘柊l(fā)射出去。紅外接收部分主要由光電二極管加紅外接收IC組成,光電二極管接收到的紅外發(fā)射管發(fā)射出的光信號后將其轉換為電信號(微安級的電流),此電信號輸入到接收IC內部經(jīng)過放大—增益—濾波—解調—整形等一系列處理后,還原遙控器給出的原始編碼,通過接收頭端將信號輸出到代碼識別電路[3]。
調制解調原理:紅外遙控是以調制的方式發(fā)射數(shù)據(jù),即把數(shù)據(jù)和一定頻率的載波進行“與”操作,既可以提高發(fā)射效率又可以降低電源功耗[4]。調制載波頻率一般在30kHz到60kHz之間,大多數(shù)使用的是38kHz,占空比1/3的方波,占空比取決于發(fā)射端所使用的455kHz晶振[5]。在發(fā)射端要對晶振進行整數(shù)分頻,分頻系數(shù)一般取12,所以455kHz÷12≈37.9 kHz≈38kHz。
本文所設計紅外發(fā)射編譯器軟件目前可支持20種常用的紅外編碼格式,均可實現(xiàn)三種定制用戶碼的編譯功能。除此之外,編譯器因采用XML庫調用的模式存儲不同編碼格式,故對編碼格式的擴充性較好,可快速便捷的新增編碼格式,目前支持格式如下:uPD6121G、SAA3010_RC5_38K、rc6-1、rc6-2、rc6-3、7461、50462、TC9012、TC9012F、50560-1、50560-2、0773、7051、2185、6014、Jvc、y261、SONY_1、SONY_2、SONY_3。
本文以常用編碼格式uPD6121G為例說明紅外發(fā)射編譯過程,uPD6121G編碼格式如圖1所示。該數(shù)據(jù)格式包括起始碼、用戶碼、數(shù)據(jù)碼和數(shù)據(jù)反碼,用戶碼、數(shù)據(jù)碼和數(shù)據(jù)反碼均為8位,故編碼共計32位,數(shù)據(jù)反碼為數(shù)據(jù)碼取反后的編碼,編碼時可用于對數(shù)據(jù)的糾錯。
圖1 uPD6121G數(shù)據(jù)編碼格式Fig.1 Data coding format of uPD6121G
用戶碼或數(shù)據(jù)碼中的每一位可以是位‘1’,也可以是位‘0’,‘1’和‘0’是利用脈沖的時間間隔來區(qū)分,這種編碼方式為脈沖位置調制方式(PPM)[6]。PPM以脈寬0.56ms、間隔0.565ms、周期1.125ms的組合表示二進制的‘0’,以脈寬0.56ms、間隔1.69ms、周期2.25ms的組合表示二進制的‘1’。
uPD6121G按鍵輸出有兩種方式,一種是每次按鍵都輸出完整的一幀數(shù)據(jù);另一種是按下相同的按鍵后每發(fā)送完整的一幀數(shù)據(jù)后再發(fā)送重復碼,再到按鍵被松開。
為更好實現(xiàn)人機交互,方便用戶對編碼格式、配置信息等快捷更新,紅外發(fā)射編譯器共設計了兩大模塊,即上位機界面與后臺運行編譯程序,紅外發(fā)射編譯器編碼過程如圖2所示,本文以uPD6121G為例對編譯過程進行說明。
圖2 編譯器工作流程圖Fig.2 Workflow diagram of compiler
(1)紅外發(fā)射編譯器上位機軟件界面如圖3所示,在界面左側配置頁設計了可配置編碼格式名稱、用戶碼位數(shù)、用戶碼數(shù)值、第二幀發(fā)射格式等信息的選擇框,便于用戶根據(jù)編碼需求自主設置配置信息。
圖3 紅外發(fā)射編譯器軟件界面Fig.3 Software interface of infrared emission compiler
具體實現(xiàn)如下:
(2)XML庫文件中包含20種編碼格式的配置信息,用戶可通過界面選擇其中一種編碼格式,通過對用戶設置的編碼格式進行分析,調用XML庫文件中的編碼格式進行匹配,并讀取XML庫文件中對應格式的配置信息,uPD6121G編碼在XML中部分配置信息如下:
軟件實現(xiàn)如下:
(3)在配置信息中查詢是否包含定制用戶碼,若有,則提取界面中用戶設置的用戶碼并經(jīng)數(shù)據(jù)轉換后存儲至燒錄文件對應區(qū)域內;若無定制用戶碼則進行后續(xù)發(fā)射碼的編譯;
軟件實現(xiàn)如下:
本設計中的三組用戶碼UserACom、UserBCom、UserDCom是在原編碼格式用戶碼基礎之上再次擴充的,可將發(fā)射按鍵數(shù)量擴充至原來的3倍,如常規(guī)發(fā)射按鍵78個,通過實現(xiàn)多用戶碼的編譯,可將按鍵數(shù)量擴充至234個。
(4)根據(jù)uPD6121G格式的位定義編譯起始碼、常規(guī)用戶碼、用戶反碼(uPD6121G格式中用戶反碼8位數(shù)據(jù)與用戶碼一樣,未取反,保持不變)、數(shù)據(jù)碼及數(shù)據(jù)反碼等信息,并存儲至燒錄文件;實現(xiàn)如下:
(5)將步驟(2)中讀取的配置信息編譯存儲至燒錄文件指定的配置區(qū)域;
(6)將包含發(fā)射碼所有格式信息及數(shù)據(jù)信息的二進制文件燒錄至微控制器,此時連接外部發(fā)射單元,按下按鍵即可實現(xiàn)紅外遙控的發(fā)射操作。
對本文所設計編譯器進行發(fā)碼測試,設置如圖4所示,選擇用戶碼D,用戶碼數(shù)值為33,其用戶反碼為CC,經(jīng)編譯器編譯并將文件燒錄至硬件中,按下按鍵值為4E的按鈕,其數(shù)據(jù)反碼為B1,發(fā)射成功后,用通用紅外遙控編碼分析儀接收到的數(shù)據(jù)如圖5所示,與圖4中配置信息對比發(fā)現(xiàn),紅外遙控編碼分析儀解析到的數(shù)據(jù)與按鍵值為4E的uPD6121G碼完全一致(注:編譯器編碼格式正確,紅外遙控編碼分析儀接收到信號后將自動匹配編碼類型并顯示出編碼格式及碼值;若編碼錯誤,紅外遙控編碼分析儀將解析不出任何波形)。
圖4 紅外發(fā)射編譯器發(fā)碼測試Fig.4 Code sending test of infrared emission compiler
圖5 紅外遙控編碼分析儀接收的uPD6121G格式碼形Fig.5 uPD6121G format code received by infrared remote control coding analyzer
用同樣的方法測試LC7461M-C13、MIT-C8D8、TC9012F、Sharp等格式,結果如圖6所示。
圖6 紅外遙控編碼分析儀接收的LC7461M-C13、MIT-C8D8、TC9012F、Sharp格式碼形Fig.6 LC7461M-C13、MIT-C8D8、TC9012F、Sharp format codes received by infrared remote control coding analyzer
傳統(tǒng)紅外發(fā)射編譯器無法實現(xiàn)多用戶碼編碼,也不能滿足不同格式紅外碼的擴充性需求。本文設計的基于可編程智能遙控微控制器的紅外發(fā)射編譯器可實現(xiàn)多用戶碼編碼,同時因采用XML文件數(shù)據(jù)格式調用的方法解決了傳統(tǒng)編譯器無法擴充新編碼格式的問題,只需在XML文件數(shù)據(jù)庫中添加新的編碼格式即可完成新增編碼類型的編譯工作,可擴展性較強。