高振斌,陳 賀,華 中,寇志強(qiáng)
(1.河北工業(yè)大學(xué) 信息工程學(xué)院,天津 300401;2.天津鉑創(chuàng)國茂電子科技發(fā)展有限公司,天津 300384)
基于HAV1007的觸摸屏紅外控制器設(shè)計(jì)
高振斌1,陳 賀2,華 中2,寇志強(qiáng)3
(1.河北工業(yè)大學(xué) 信息工程學(xué)院,天津 300401;2.天津鉑創(chuàng)國茂電子科技發(fā)展有限公司,天津 300384)
主要介紹了觸摸屏紅外控制器的設(shè)計(jì)方案,該方案主要包括主控制單元HAV1007芯片介紹、主控單元和外圍硬件電路的連接、整體軟件設(shè)計(jì)和程序流程圖。實(shí)現(xiàn)了鼠標(biāo)操作、數(shù)字手寫輸入和雙擊確認(rèn)功能。該觸摸屏紅外控制器能夠流暢地控制紅外接收設(shè)備,如電視、機(jī)頂盒、空調(diào)等,并獲得了良好的用戶體驗(yàn)。
設(shè)計(jì)方案;觸摸屏紅外控制器;HAV1007
隨著社會的發(fā)展,人們對生活舒適度提出了更高的要求。機(jī)頂盒、電視、空調(diào)大部分使用固定按鍵紅外遙控器,而每種電器都配備有自己獨(dú)立的固定按鍵遙控器。人們經(jīng)常將機(jī)頂盒和電視的遙控器混淆,使用不便。固定按鍵式的遙控器存在一些缺點(diǎn),固定按鍵的塑膠材料易老化,印刷電路板易腐蝕,造成遙控器失靈,一個(gè)遙控器經(jīng)常需要進(jìn)行除塵操作,并且淘汰的遙控器會污染環(huán)境。傳統(tǒng)的按鍵遙控器功耗較高,需要經(jīng)常更換電池,廢舊的電池造成污染。
觸摸屏的出現(xiàn)提供了一種新的人機(jī)交互方式,觸摸屏代替按鍵進(jìn)行操作,使得人機(jī)交互更為方便[1]。由此產(chǎn)生設(shè)計(jì)觸摸屏控制器的設(shè)計(jì)想法。
觸摸屏紅外控制器利用電容式觸摸屏代替固定按鍵來進(jìn)行操作,避免了傳統(tǒng)遙控器按鍵老化的缺點(diǎn),通過手指在觸摸屏上滑動進(jìn)行上下左右操作,比按鍵式更加靈敏、方便。采用鋰電池進(jìn)行供電,該鋰電池可利用USB接口進(jìn)行反復(fù)充電,同時(shí)控制器具有自動休眠功能,使得能耗更低。更新紅外協(xié)議可控制多種紅外接收設(shè)備,實(shí)現(xiàn)“一機(jī)多用”[2]。
1.1 系統(tǒng)硬件設(shè)計(jì)
整體硬件包括:USB轉(zhuǎn)I2C模塊(USB to I2C)、低功耗喚醒(Low Power Wake-up)、觸摸屏以及連接、電源管理模塊(Power Management)、LED燈顯示、紅外發(fā)射、主控芯片HAV1007。
USB轉(zhuǎn)I2C模塊:該模塊主要用作主控芯片HAV1007和PC之間的通信。首先,通過固定的編碼格式將紅外協(xié)議進(jìn)行編碼;其次,PC將該編碼后的協(xié)議通過USB to I2C模塊更新到HAV1007中。經(jīng)過上述兩個(gè)步驟,完成紅外協(xié)議的更新,以控制多種紅外接收設(shè)備。
低功耗喚醒:該模塊主要功能為喚醒低功耗模式下的主控芯片。一定時(shí)間內(nèi)沒有對控制器進(jìn)行操作,主控芯片自動進(jìn)入休眠模式,再次使用該控制器時(shí),通過該模塊進(jìn)行喚醒,由休眠模式進(jìn)入正常模式。
觸摸屏以及連接:該模塊由導(dǎo)電油墨電容式觸摸屏和外圍連接電路組成。主要是采集手指觸摸在觸摸屏中的數(shù)據(jù)信息,并由外圍電路傳遞給芯片進(jìn)行處理。
電源管理模塊:該模塊由鋰電池和外圍電路組成。
LED燈顯示:該模塊由LED燈和外圍電路組成,主要功能是顯示給用戶當(dāng)前控制的設(shè)備和紅外發(fā)射指示。
紅外發(fā)射:該模塊由三極管和放大電路組成,主要功能是根據(jù)PWM信號,完成紅外信號的發(fā)射。
如圖1所示,硬件的各個(gè)模塊以及各模塊之間的連接。
圖1 硬件連接圖
1.2 芯片框圖
本項(xiàng)目使用HAV1007作為主控芯片。芯片HAV1007是針對電容式觸摸屏開發(fā)的一款芯片,其CPU采用蘇州國芯C*Core CPU C306。該CPU采用0.15 μm EFlash生產(chǎn)工藝,4級流水線,完全可綜合的32位嵌入式RISC CPU,低功耗,高性能,高代碼密度,適用于手提設(shè)備(PDA、移動電話)、通信設(shè)備(無線局域網(wǎng)、路由器)、汽車工業(yè)(ABS、安全氣囊、電噴控制、剎車控制)、家用電器以及眾多的工業(yè)過程控制。具有豐富的外設(shè)資源,包括AD,PIT,WDT,SPI,UART,EPORT,I2C等。如圖2所示為芯片HAV1007詳細(xì)信息。
圖2 芯片內(nèi)部結(jié)構(gòu)框圖
2.1 整體軟件設(shè)計(jì)
整體軟件設(shè)計(jì)方案包括:系統(tǒng)初始化,觸摸數(shù)據(jù)的采集、處理,狀態(tài)轉(zhuǎn)移,紅外協(xié)議更新,紅外數(shù)據(jù)處理和紅外發(fā)射。
首先,按照方案對CPU的外設(shè)以及外設(shè)的中斷設(shè)置進(jìn)行初始化。電容式觸摸屏由15條X感應(yīng)線和7條Y感應(yīng)線組成,需根據(jù)感應(yīng)線分布情況設(shè)置相應(yīng)的感應(yīng)參數(shù),同時(shí)根據(jù)中斷需求設(shè)置各模塊中斷以及各模塊寄存器。
初始化完畢,系統(tǒng)處于等待狀態(tài),手指觸摸時(shí),觸摸信息通過22條感應(yīng)線傳遞給CPU,采集到的觸摸信息經(jīng)過處理,最終生成觸摸點(diǎn)坐標(biāo)和手指個(gè)數(shù)信息。將生成的數(shù)據(jù)存儲在循環(huán)數(shù)組(觸摸坐標(biāo)值)中[3],這樣完成了數(shù)據(jù)坐標(biāo)的存儲,該數(shù)據(jù)信息將作為狀態(tài)轉(zhuǎn)移模塊的數(shù)據(jù)輸入。狀態(tài)轉(zhuǎn)移模塊根據(jù)輸入的數(shù)據(jù)信息和當(dāng)前狀態(tài),完成狀態(tài)轉(zhuǎn)移和紅外發(fā)射的設(shè)置。需要發(fā)射紅外信號時(shí),將待發(fā)射的信號與存儲在Flash中的紅外數(shù)據(jù)匹配,選擇發(fā)射的紅外碼值并編碼,將編碼完畢的數(shù)據(jù)存儲在循環(huán)數(shù)組(紅外編碼數(shù)據(jù))中[4]。紅外發(fā)射模塊讀取紅外編碼數(shù)據(jù),設(shè)置PWM引腳,最終由硬件電路對信號進(jìn)行放大、發(fā)射,這樣就完成從手指觸摸到紅外信號發(fā)射過程。其中,兩個(gè)循環(huán)數(shù)組作為兩模塊之間的橋梁,并具有緩沖作用。
更新紅外協(xié)議可控制不同設(shè)備,在網(wǎng)頁界面選擇要更新設(shè)備的紅外協(xié)議(編碼后),USB to I2C模塊將PC的數(shù)據(jù)傳輸?shù)接|摸屏控制器中,校驗(yàn)并存儲,完成紅外協(xié)議的更新。如圖3所示,為整體軟件設(shè)計(jì)方案。
圖3 軟件設(shè)計(jì)方案
2.2 程序流程圖
在系統(tǒng)中,觸摸信息的產(chǎn)生是周期性的,頻率由WDT控制。系統(tǒng)初始化中設(shè)置WDT時(shí)間Tw,采點(diǎn)頻率1/Tw。WDT中斷服務(wù)函數(shù)中將采點(diǎn)標(biāo)志位置“1”,主程序中判斷該標(biāo)志位的值,進(jìn)行數(shù)據(jù)的采集、存儲,采集完成后,將該標(biāo)志位清零,控制采點(diǎn)頻率,并將采集到的點(diǎn)存儲在循環(huán)數(shù)組(觸摸坐標(biāo))中。
主程序中,將采集到的點(diǎn)進(jìn)行處理、分析,通過當(dāng)前狀態(tài)Current_State和處理后的點(diǎn)信息,得出輸出狀態(tài)Output_State和信息。根據(jù)狀態(tài)跳轉(zhuǎn)和輸出信息,判斷紅外信號發(fā)射情況。需發(fā)射紅外數(shù)據(jù)時(shí),將編碼后的紅外數(shù)據(jù)存儲在循環(huán)數(shù)組(紅外編碼)中,由于RAM的限制,循環(huán)數(shù)組不能一次存儲全部的紅外編碼值,需要將發(fā)射完畢后的紅外編碼值清除,在清除后的位置上填充新的紅外編碼值。紅外編碼值的存儲和發(fā)射同步進(jìn)行,由模塊PIT和PWM共同完成。PIT負(fù)責(zé)數(shù)據(jù)的填充,PWM負(fù)責(zé)數(shù)據(jù)的讀取,二者協(xié)同完成紅外編碼數(shù)據(jù)的設(shè)置。最終由紅外發(fā)射電路將紅外信號發(fā)射出去。
主程序流程圖和各中斷服務(wù)函數(shù)流程如圖4所示。
圖4 程序流程圖
2.3 狀態(tài)轉(zhuǎn)移
參考固定按鍵遙控器的狀態(tài)設(shè)置,設(shè)計(jì)了基于電容式觸摸屏的狀態(tài)機(jī)[5]。該狀態(tài)機(jī)采用有限狀態(tài)機(jī),有限狀態(tài)機(jī)分為Moore型有限狀態(tài)機(jī)和Mealy型有限狀態(tài)機(jī)。Moore型有限狀態(tài)機(jī),輸出信號僅與當(dāng)前狀態(tài)有關(guān)。Mealy型有限狀態(tài)機(jī),輸出信號與當(dāng)前狀態(tài)和輸入信號有關(guān)[6-7]。因輸出信號與當(dāng)前狀態(tài)和輸入的數(shù)據(jù)信息有關(guān),固該狀態(tài)機(jī)選擇Mealy型有限狀態(tài)機(jī)。不同于固定按鍵遙控器的按鍵狀態(tài)種類,觸摸屏控制器需考慮更多狀態(tài)。狀態(tài)及注釋:“1 s”為雙擊操作兩次點(diǎn)擊之間的時(shí)間閾值;G_IDLE_STATE表示空閑狀態(tài);G_T_STATE表示觸摸狀態(tài);G_SC_UP_STATE表示點(diǎn)擊提起狀態(tài);G_LP_STATE表示長按狀態(tài);G_DM_STATE表示滑動狀態(tài);G_DS_T_STATE表示雙擊的第二次觸摸狀態(tài)。圖5描述了手指觸摸在觸摸屏上產(chǎn)生的各種狀態(tài),以及狀態(tài)轉(zhuǎn)移路徑和轉(zhuǎn)移條件。
狀態(tài)機(jī)的設(shè)置,使得觸摸操作更為精準(zhǔn)、靈敏,并實(shí)現(xiàn)了雙擊和長按動作。
2.4 數(shù)字模式
數(shù)字模式下支持?jǐn)?shù)字手寫輸入。輸入的數(shù)據(jù)信息經(jīng)過數(shù)字識別算法判斷出紅外信號,該數(shù)字識別算法主要包括3個(gè)模塊:數(shù)據(jù)預(yù)處理、特征提取、數(shù)字識別。特征提取分為方向特征、首末點(diǎn)輪廓、整體輪廓、斷點(diǎn)的提取。圖6為數(shù)字識別算法結(jié)構(gòu)框圖。
圖5 操作狀態(tài)轉(zhuǎn)移圖
圖6 數(shù)字識別算法結(jié)構(gòu)框圖
數(shù)字識別模塊采用編輯距離公式進(jìn)行數(shù)據(jù)和模板的比對,判斷編輯距離最小的數(shù)字為輸出數(shù)字。編輯距離是指兩個(gè)字串之間,由一個(gè)轉(zhuǎn)成另一個(gè)所需的最少編輯操作次數(shù)。許可的編輯操作包括將一個(gè)字符替換成另一個(gè)字符,插入一個(gè)字符,刪除一個(gè)字符[8-11]。
本文針對數(shù)字模式進(jìn)行了一些編輯距離算法的改進(jìn),改進(jìn)的編輯距離步驟:
1)定義左上數(shù)據(jù)變量,上、左數(shù)據(jù)變量,以及定義記錄當(dāng)前數(shù)值的數(shù)組,并賦初值;
2)比較數(shù)字模板和提取的特征向量,若當(dāng)前位置對應(yīng)的數(shù)字相等,則臨時(shí)變量賦0,否則賦2(臨時(shí)變量表示下一步的編輯距離),將左上數(shù)值加臨時(shí)變量、上數(shù)值加1、左數(shù)值加1三者的最小值賦給數(shù)組的當(dāng)前位置(如果出現(xiàn)0,則臨時(shí)變量賦0);
3)判定是否遍歷數(shù)字與提取的特征向量,如果是,輸出數(shù)組最后的一個(gè)數(shù)值,即數(shù)字與樣本的編輯距離,否則返回執(zhí)行步驟3);
4)判定是否遍歷0~9數(shù)字模板,如果是,則判定與樣本的編輯距離最短的數(shù)字為輸出的數(shù)字;否則,返回執(zhí)行步驟2)。
該數(shù)字識別算法,具有復(fù)雜度低、容錯(cuò)性強(qiáng)、識別率高的優(yōu)點(diǎn)。對大量數(shù)據(jù)進(jìn)行試驗(yàn),結(jié)果表明數(shù)字識別率為95.5%。
根據(jù)該方案,經(jīng)過軟硬件測試,最終完成電容式觸摸屏紅外控制器樣機(jī)的生產(chǎn)。
該樣機(jī)包括3種模式:方向模式、鼠標(biāo)模式、數(shù)字模式。方向模式采用上下左右滑動代替了傳統(tǒng)遙控器的上下左右鍵,并且可根據(jù)滑動速度和距離判斷發(fā)射紅外次數(shù),操作方便。鼠標(biāo)模式中,滑動鼠標(biāo)時(shí),發(fā)射鼠標(biāo)的紅外鍵值,該功能主要用于機(jī)頂盒中。數(shù)字模式時(shí),支持?jǐn)?shù)字手寫輸入,經(jīng)過處理發(fā)射數(shù)字對應(yīng)的紅外鍵值[12]。
經(jīng)產(chǎn)品測試,該產(chǎn)品具有較高的數(shù)字識別率,增加了鼠標(biāo)、雙擊確認(rèn)、長按等功能,可控制多種設(shè)備,具有良好的用戶體驗(yàn)。圖7所示為該控制器樣機(jī)圖片。
圖7 電容式觸摸屏控制器
隨著觸摸屏市場的打開,觸摸屏設(shè)備成為人們生活不可分割的一部分。電容式觸摸屏紅外控制器完全有可能作為傳統(tǒng)固定按鍵遙控器的替代品。通過更換紅外協(xié)議的方式來控制多種設(shè)備,協(xié)議的獲得只需開發(fā)人員完成,無需用戶進(jìn)行設(shè)置,用戶只需在網(wǎng)上選擇需要更換的設(shè)備編號即可完成所控設(shè)備的更換,摒棄了學(xué)習(xí)型遙控器所控設(shè)備單一的缺點(diǎn)。同時(shí),觸摸屏控制器操作更為方便,容易被人們所接受。因此,具有研究和生產(chǎn)價(jià)值。
[1]許強(qiáng).面向Android機(jī)頂盒的觸摸屏紅外遙控器的設(shè)計(jì)[J].電視技術(shù),2014,38(1):82-85.
[2] 李晉.學(xué)習(xí)型遙控器設(shè)計(jì)[J].電子測量技術(shù),2006,29(1):106-107.
[3] 許淑華.C語言中數(shù)組應(yīng)用總結(jié)[J].科技廣場,2014,38(1):254-256.
[4]徐志.基于模糊模式識別算法的學(xué)習(xí)型紅外遙控器的編碼壓縮[J].福州大學(xué)學(xué)報(bào),2008(36):62-64.
[5] 泰國棟.有限狀態(tài)機(jī)的嵌入式Linux按鍵驅(qū)動設(shè)計(jì)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2012,4(1):1-4.
[6] 劉斌.基于有限狀態(tài)機(jī)的Linux多點(diǎn)觸摸屏驅(qū)動設(shè)計(jì)[J].微計(jì)算機(jī)信息,2012,28(3):54-56.
[7]孫宏旭.基于有限狀態(tài)機(jī)的模型轉(zhuǎn)換方法的研究[J].計(jì)算機(jī)技術(shù)與應(yīng)用,2012,22(2):10-13.
[8] 肖冰.一種度量圖像相似性和計(jì)算圖編輯距離的新方法[J].電子學(xué)報(bào),2009,37(10):2206-2210.
[9] 趙作鵬.一種改進(jìn)的編輯距離算法及其在數(shù)據(jù)處理中的應(yīng)用[J].計(jì)算機(jī)應(yīng)用,2009,29(2):425-426.
[10]刁興春.一種融合多種編輯距離的字符串相似度計(jì)算方法[J].計(jì)算機(jī)應(yīng)用研究,2010,27(12):4524-4525.
[11] ROBLES K A,HANCOCK E R.Graph edit distance from spec?tral seriation[J].IEEE Trans.Pattern Analysis and Machine Intel? ligence,2005,27(3):365-378.
[12]孫憲奇.紅外遙控發(fā)射器系統(tǒng)碼和鍵值測定儀[J].沈陽工業(yè)大學(xué)學(xué)報(bào),1998,20(3):50-60.
Design of Touch-screen Infrared Controller Based on HAV1007
GAO Zhenbin1,CHEN He2,HUA Zhong2,KOU Zhiqiang3
(1.Information Engineering College of Hebei University of technology,Tianjin 300401,China;2.Tianjin Botro Electronical Tech Co.,Ltd.,Tianjin 300384,China)
The design of touch screen infrared controller is introduced in this paper.The chip introduction of the main control unit-HAV1007,the connection of main control unit and the peripheral hardware,software design and program flow chart are comprised in this scheme.Mouse operation,digital handwriting input and double click function are realized through this scheme.It is proved that the touch-screen infrared controller can control the infrared receiving device smoothly,such as TV,set-top box,air-conditioning,and get a good user experience.
design scheme;touch-screen infrared controller;HAV1007
TN835
B
10.16280/j.videoe.2015.04.011
高振斌(1973—),副教授,主要研究方向?yàn)閷S眉呻娐吩O(shè)計(jì)、通信信號處理;
2014-08-19
【本文獻(xiàn)信息】高振斌,陳賀,華中,等.基于HAV1007的觸摸屏紅外控制器設(shè)計(jì)[J].電視技術(shù),2015,39(4).
陳 賀(1989—),碩士生,主研嵌入式系統(tǒng)及應(yīng)用。
責(zé)任編輯:許 盈