王夢迪, 張麗蕓, 華 金, 沈洪濱
(上海船舶運(yùn)輸科學(xué)研究所艦船自動化系統(tǒng)事業(yè)部,上海200135)
隨著觸摸傳感器技術(shù)的迅速發(fā)展,感應(yīng)觸摸式人機(jī)操作板在工業(yè)控制領(lǐng)域得到越來越廣泛的應(yīng)用。感應(yīng)觸摸式人機(jī)操作板采用感應(yīng)觸摸式按鍵,與傳統(tǒng)的機(jī)械微動開關(guān)按鍵和塑料薄膜按鍵相比,沒有任何機(jī)械部件,不會磨損,可靠性高,能降低后期維護(hù)成本。感應(yīng)觸摸式按鍵感應(yīng)部分可放置在感應(yīng)觸摸式人機(jī)操作板面板的后面,起到防水防潮的作用。感應(yīng)觸摸式人機(jī)操作板所有按鍵的大小和形狀可任意設(shè)計,面板外形美觀時尚,可從根本上達(dá)到機(jī)械面板、薄膜面板和金屬面板無法達(dá)到的效果。在艦船自動化領(lǐng)域:Konsberg公司的延伸報警模塊采用電容感應(yīng)觸摸式按鍵;常熟瑞特公司的某電機(jī)集中控制系統(tǒng)應(yīng)用觸摸鍵盤。當(dāng)前中國遠(yuǎn)洋海運(yùn)集團(tuán)有限公司的集裝箱船上配置的航行燈信號燈板和甲板照明控制板均采用感應(yīng)觸摸式按鍵,提高了外觀設(shè)計的靈活性和產(chǎn)品的品質(zhì)。當(dāng)前國內(nèi)的監(jiān)測報警人機(jī)操作板大多是由機(jī)械鍵盤、分立的應(yīng)答消聲按鈕和蜂鳴器組成的,風(fēng)格一致,整體不夠美觀,按鍵按鈕沒有背光調(diào)節(jié)功能。對此,本文結(jié)合實際應(yīng)用情況,設(shè)計一款基于感應(yīng)觸摸式按鍵技術(shù)的監(jiān)測報警人機(jī)操作板。
感應(yīng)觸摸式按鍵在本質(zhì)上是PCB板上一個面積稍大的覆銅焊盤,與四周結(jié)構(gòu)組成感應(yīng)電容,當(dāng)人的手指直接或通過導(dǎo)電材料觸摸該按鍵時,感應(yīng)電容的值會發(fā)生變化,從而判斷有沒有按鍵操作。
感應(yīng)觸摸式按鍵被按下前后等效電容變化情況見圖1。當(dāng)人的手指沒有觸摸到焊盤時,PCB板上的焊盤與地面形成的感應(yīng)電容值是一個固定不變的值CB,即總感應(yīng)電容CS=CB。當(dāng)人的手指觸摸到焊盤時,手指會與該焊盤形成一個耦合電容CF,該耦合電容CF會疊加到焊盤與地面形成的感應(yīng)電容CB上,從而改變感應(yīng)電容值,即總感應(yīng)電容CS=CB+CS。當(dāng)人的手指脫離焊盤時,手指與該焊盤形成的耦合電容消失,即總感應(yīng)電容CS=CB。當(dāng)檢測電路檢測到的感應(yīng)電容值達(dá)到設(shè)定的閾值CT時,認(rèn)定操作觸摸感應(yīng)式按鍵有效,執(zhí)行相應(yīng)的指令,如點亮或關(guān)閉LED燈。
圖1 感應(yīng)觸摸式按鍵被按下前后等效電容變化情況
周立功公司推出的電容感應(yīng)觸摸式按鍵方案采用外圍RC電路加軟件檢測技術(shù),集成FIR濾波算法,利用MCU的GPIO口和內(nèi)部定時器測量按鍵外部電容的變化。該方案雖然具有良好的抗干擾能力,但占用MCU的資源過多,浪費(fèi)機(jī)器時間,對于低成本、運(yùn)算能力較弱的MCU單元而言更為明顯。ST公司推出的基于STM8系列8位通用微控制器平臺的電容式觸摸感應(yīng)方案無需增加專用觸摸芯片,也利用RC電路的充放電時間檢測人體觸摸帶來的電容變化,實現(xiàn)電容式觸摸感應(yīng)功能,但該方案的靈活性不夠,不適于多點觸摸。
本文選用臺灣通泰公司的感應(yīng)觸摸式按鍵解決方案。觸摸鍵盤芯片選用TTP223Ton TouchTM(一款小封裝單點電容觸摸式按鍵檢測芯片,以下簡稱“TTP223”);觸摸鼠標(biāo)芯片選用TTP229Ton TouchTM(一款多點電容觸摸式按鍵檢測芯片,以下簡稱“TTP229”)。這2款芯片無需外接其他電路,可達(dá)到穩(wěn)定的觸摸檢測效果,觸摸檢測PAD的大小可依據(jù)不同的靈敏度設(shè)計在合理的范圍內(nèi),并提供低功耗模式,具有自動校準(zhǔn)功能[1]。
感應(yīng)觸摸式監(jiān)測報警人機(jī)操作板由觸摸鍵盤、觸摸鼠標(biāo)、監(jiān)測報警、USBHUB和背光調(diào)節(jié)電路組成(見圖2),能外接其他USB設(shè)備。監(jiān)測報警能實現(xiàn)系統(tǒng)故障的報警,通過判斷開關(guān)量輸入值控制單元的狀態(tài)控制蜂鳴器輸出,系統(tǒng)報警時蜂鳴器響,消警時蜂鳴器關(guān)閉。此外,感應(yīng)觸摸式監(jiān)測報警人機(jī)操作板還具有應(yīng)答消聲功能,并提供故障消息列表按鍵接口。
圖2 感應(yīng)觸摸式監(jiān)測報警人機(jī)操作板組成
MCU核心芯片選用NXP公司的LPC1768微控制器,具有功耗低、功能強(qiáng)、效率高和成本低等優(yōu)點。LPC1768基于Cortex-M3內(nèi)核,最高頻率100 MHz,片內(nèi)集成64 KB RAM、512 KB Flash、CAN控制器、SPI控制器、I2C控制器、USB控制器和以太網(wǎng)控制器等外設(shè)資源,無需外接其他專用芯片即可滿足系統(tǒng)的各項功能和性能指標(biāo)要求。
圖3為感應(yīng)觸模式按鍵及背光調(diào)節(jié)電路原理圖,TTP223僅支持單鍵有效,感應(yīng)觸摸式按鍵K1可直接與TTP223連接,無需增加其他外圍器件。TTP223的輸出模式見表1,TTP223的輸出通過AHLB引腳選擇高電平或低電平有效,通過TOG引腳選擇直接模式或觸發(fā)模式。圖3中TTP223的輸出配置為直接模式,低電平有效。OUT1直接連接到LPC1768微控制器,在沒有按鍵操作時OUT1為高電平,當(dāng)人的手指觸摸到K1時OUT1為低電平,因此LPC1768微控制器直接讀取GPIO值即可判斷按鍵是否被操作。
圖3 感應(yīng)觸摸式按鍵及背光調(diào)節(jié)電路原理圖
表1 TTP223的輸出模式
圖3中,背光調(diào)節(jié)電路利用MOS管的導(dǎo)通原理,通過電位器接口輸出可變化調(diào)光電壓Vadj,當(dāng)按鍵沒有被觸摸時,OUT1為高電平,1T1截止,1T2導(dǎo)通,GREEN燈點亮;當(dāng)按鍵被觸摸時,OUT1為低電平,1T1導(dǎo)通,1T2截止,RED燈點亮。
TTP229支持8鍵或16鍵,同時支持單鍵或多鍵有效,其中:8鍵為固定IO輸出模式;16鍵需采用IIC通信。為方便PCB布線和簡化應(yīng)用程序,觸摸鼠標(biāo)電路(見圖4)配置為固定IO輸出模式,引腳TP8-TP15直接與LPC1768微控制器連接,S1-S4和S6-S9為感應(yīng)觸摸式按鍵。觸摸鼠標(biāo)由6×6感應(yīng)觸摸式按鍵矩陣構(gòu)成,至少需5塊TTP229芯片。LPC1768微控制器可直接讀取GPIO值,判斷感應(yīng)觸摸式按鍵是否被觸摸。操作觸摸鼠標(biāo)是一個連續(xù)的過程,LPC1768微控制器讀取到的GPIO值是連續(xù)變化的,在軟件中需對觸摸鼠標(biāo)進(jìn)行觸摸路徑分析。
圖4 觸摸鼠標(biāo)電路
USBHUB選擇SMSC公司專用的USB2.0高速HUB控制器USB2517芯片,實現(xiàn)USB2.0通信,向下兼容USB1.1通信,對外提供1路USB上行接口和多路USB下行接口,并對內(nèi)提供1路下行接口控制I/O輸出。采用EEPROM實現(xiàn)USBHUB的信息配置,采用專用電源控制芯片輸出USB電源,通過USBHUB實現(xiàn)其他外接USB設(shè)備與主控計算機(jī)的USB接口的信息中轉(zhuǎn)。
感應(yīng)觸摸式監(jiān)測報警人機(jī)操作板軟件由基于時間觸發(fā)設(shè)計模式的軟件架構(gòu)編寫的調(diào)度器構(gòu)成,通過調(diào)度器實現(xiàn)最簡單的協(xié)作式多任務(wù)操作系統(tǒng)。調(diào)度器由不同任務(wù)之間共享的定時器中斷服務(wù)程序,在執(zhí)行多個任務(wù)時,可使用同一個調(diào)度器來完成。調(diào)度器中斷響應(yīng)函數(shù)是時間間隔為10 ms的“事件”,在調(diào)度器被任務(wù)中的“事件”觸發(fā)之后,遍歷任務(wù)塊鏈表,根據(jù)任務(wù)的優(yōu)先級執(zhí)行需被調(diào)度執(zhí)行的任務(wù)[2]。
根據(jù)“1.3”節(jié)中的硬件架構(gòu)設(shè)計框圖,感應(yīng)觸摸式監(jiān)測報警人機(jī)操作板的軟件主要由觸摸按鍵和觸摸鼠標(biāo)組成,觸摸鼠標(biāo)的實現(xiàn)過程與觸摸鍵盤基本一致,軟件設(shè)計主要參考觸摸鍵盤的實現(xiàn)過程。
由“1.4”節(jié)中的分析所知,LPC1768微控制器通過直接讀取感應(yīng)觸摸式按鍵的GPIO值來判斷按鍵是否被按下。感應(yīng)觸摸式監(jiān)測報警人機(jī)操作板的部分按鍵會受到多擊操作,即同一個按鍵在設(shè)定的時間內(nèi)被連續(xù)2次或多次按下。本文在多擊操作按鍵時,連續(xù)按下按鍵的有效時間間隔≤30 ms,該時間可根據(jù)用戶的需求進(jìn)行更改。單個感應(yīng)觸摸式按鍵單擊或多擊的操作過程見圖5,這里多擊設(shè)定最大為四擊操作,當(dāng)超過四擊時重新從單擊開始判定,主要分為以下10個過程:
1)定時讀感應(yīng)觸摸式按鍵的GPIO值,判斷按鍵是否被按下,若被按下,則執(zhí)行過程“2)”,否則執(zhí)行過程“10)”。
2)按鍵消抖處理,判斷感應(yīng)觸摸式按鍵操作是否有效,若有效,則執(zhí)行過程“3)”,否則執(zhí)行過程“10)”。
3)判斷感應(yīng)觸摸式按鍵操作是否是長按,若是長按,則為單擊操作,執(zhí)行過程“8)”,否則執(zhí)行過程“4)”。
4)判斷在設(shè)定的時間內(nèi)感應(yīng)觸摸式按鍵是否還有被按下的操作,若沒有,則為單擊操作,執(zhí)行過程“8)”;若有,判斷按鍵被按下操作是否有效,若無效,則為單擊操作,執(zhí)行過程“8)”,否則執(zhí)行過程“5)”。
5)在設(shè)定的時間內(nèi)判斷感應(yīng)觸摸式按鍵是否還有被按下操作,若沒有,則為雙擊操作,執(zhí)行過程“8)”;若有,判斷按鍵被按下操作是否有效,若無效,則為雙擊操作,執(zhí)行過程“8)”,否則執(zhí)行過程“6)”。
6)在設(shè)定的時間內(nèi)判斷感應(yīng)觸摸式按鍵是否還有被按下操作,若沒有,則為三擊操作,執(zhí)行過程“8)”;若有,判斷按鍵被按下操作是否有效,若無效,則為三擊操作,執(zhí)行過程“8)”,否則執(zhí)行過程“7)”。
圖5 感應(yīng)觸摸式按鍵單擊或多擊的操作過程
7)在設(shè)定的時間內(nèi)判斷感應(yīng)觸摸式按鍵是否還有被按下操作,若沒有,則為四擊操作,執(zhí)行過程“8)”;若有,判斷按鍵被按下操作是否有效,若無效,則為四擊操作,執(zhí)行過程“8)”,否則執(zhí)行過程“4)”。
8)將讀取到的被按下感應(yīng)觸摸式按鍵的GPIO值和判定的操作狀態(tài)(單擊、雙擊、三擊和四擊)轉(zhuǎn)換為USB鍵盤相應(yīng)的鍵值,執(zhí)行過程“9)”。
9)在程序中定義USB鍵盤事件數(shù)組,將過程“8)”中轉(zhuǎn)換的鍵值與鍵盤事件數(shù)組對比,結(jié)果一致完成相應(yīng)的USB鍵盤事件,然后LPC1768微控制器向USB端點寫按鍵操作事件,執(zhí)行過程“10)”。
10)單個感應(yīng)觸摸式按鍵操作流程結(jié)束。
觸摸鍵盤和觸摸鼠標(biāo)都屬于USB HID類設(shè)備,USB HID是用于管理和控制大多數(shù)計算機(jī)的人工輸入設(shè)備。USB主機(jī)檢測到USB設(shè)備插入之后,需對USB設(shè)備進(jìn)行枚舉,從設(shè)備中讀取各種描述符信息,主機(jī)根據(jù)這些信息加載合適的驅(qū)動程序,從而知道設(shè)備的類別及如何進(jìn)行通信等[3]。調(diào)試USB設(shè)備最重要的是USB設(shè)備的枚舉過程,枚舉也是USB設(shè)備通信的第一步,觸摸鍵盤的枚舉過程見圖6。
1)USB主機(jī)檢測到觸摸鍵盤插入之后,先對觸摸鍵盤進(jìn)行復(fù)位,觸摸鍵盤在總線復(fù)位之后的地址為0。USB主機(jī)可向地址為0的觸摸鍵盤的端點0發(fā)送獲取設(shè)備描述符的請求,觸摸鍵盤收到該請求之后將設(shè)備描述符返回給USB主機(jī)。
2)USB主機(jī)再次對觸摸鍵盤進(jìn)行復(fù)位,進(jìn)入設(shè)置地址階段。USB主機(jī)向地址為0的觸摸鍵盤的端點0發(fā)送設(shè)置地址的請求,USB主機(jī)會發(fā)配唯一的地址給觸摸鍵盤。
3)USB主機(jī)從剛分配給觸摸鍵盤的新地址中再次獲取設(shè)備描述符。
4)USB主機(jī)獲取配置描述符集合。配置描述符集合包括配置描述符、接口描述符和端點描述符等。接口描述符和端點描述符都不能單獨獲取,必須與配置描述符一起以集合的方式返回。
5)枚舉過程結(jié)束,觸摸鍵盤正常工作。
在USB規(guī)范中,除了規(guī)定必要的設(shè)備、配置、接口、端口和字符串描述符之外,USB HID還定義有報告描述符。報告描述符用來描述報告的結(jié)構(gòu)及報告中數(shù)據(jù)的作用。USB主機(jī)可通過報告描述符分析出報告中數(shù)據(jù)的意義。USB HID設(shè)備是通過報告?zhèn)魉蛿?shù)據(jù)的,報告有輸入報告和輸出報告。輸入報告是USB設(shè)備發(fā)送給主機(jī)的,如:USB鼠標(biāo)將鼠標(biāo)移動和鼠標(biāo)點擊等信息返回給計算機(jī);鍵盤將按鍵數(shù)據(jù)返回給計算機(jī)等。輸出報告是主機(jī)發(fā)送給USB設(shè)備的,如鍵盤上的數(shù)字鍵盤鎖定燈和大寫字母鎖定燈的控制等。以觸摸鍵盤的報告描述符為例,利用HID Descriptor Tool工具幫助建立和編寫觸摸鍵盤的報告描述符。
const uint8_t HID_ReportDescriptor[]={
HID_UsagePage(HID_USAGE_PAGE_GENERIC),//用途頁選擇為普通桌面頁
HID_Usage(HID_USAGE_GENERIC_KEYBOARD),//集合用途用于鍵盤
HID_Collection(HID_Application),//應(yīng)用集合
HID_UsagePage(HID_USAGE_PAGE_KEYBOARD),//選擇用途頁為鍵盤
HID_Usage Min(HID_USAGE_KEYBOARD_LCTRL),//最小的用途值,實際是鍵盤左CTRL鍵
HID_Usage Max(HID_USAGE_KEYBOARD_RGUI),//最大的用途值,實際是鍵盤右GUI鍵
HID_Logical Min(0),//數(shù)據(jù)的邏輯值,最小為0
HID_Logical Max(1),//數(shù)據(jù)的邏輯值,最大為1
HID_ReportSize(1),//數(shù)據(jù)域的長度為1個位
HID_ReportCount(8), //數(shù)據(jù)域的數(shù)量為8個
HID_Input(HID_Data|HID_Variable|HID_Absolute),//作為輸入,屬性為:Data,Var,Abs
HID_ReportCount(1),//數(shù)據(jù)域數(shù)量為1個
HID_ReportSize(8),//數(shù)據(jù)域的長度為8位
圖6 觸摸鍵盤的枚舉過程
HID_Input(HID_Constant),//作為輸入,屬性為:Constant
HID_ReportCount(3), //數(shù)據(jù)域的長度為3位
HID_ReportSize(1),//數(shù)據(jù)域數(shù)量為1個
HID_UsagePage(HID_USAGE_PAGE_LED),//用途頁為指示燈
HID_Usage Min(1),//用途最小值為數(shù)字鍵盤燈
HID_Usage Max(3),//用途最大值為滾動鎖定鍵燈
HID_Output(HID_Data|HID_Variable|HID_Absolute),//作為輸出,屬性為:Data,Var,Abs HID_ReportCount(1),//數(shù)據(jù)域數(shù)量為1個
HID_ReportSize(5),//數(shù)據(jù)域的數(shù)量為5個
HID_Output(HID_Constant),//作為輸出,屬性為:Constant
HID_EndCollection,//關(guān)閉集合
};
在觸摸鍵盤的固件程序中,數(shù)據(jù)的輸入和輸出只有滿足上述報告描述符的格式要求才能完成。利用USB監(jiān)控軟件BUS Hound得到觸摸鍵盤的枚舉過程和數(shù)據(jù)傳輸過程見圖7。
圖7 觸摸鍵盤的枚舉過程和數(shù)據(jù)傳輸過程抓包
感應(yīng)觸摸式監(jiān)測報警人機(jī)操作板除了包含硬件電路以外,還包含操作面板、導(dǎo)光板和殼體。操作面板選用玻璃材料,面板表面噴涂油漆。導(dǎo)光板緊貼在感應(yīng)觸摸式按鍵焊盤上,由散光膜、光學(xué)級亞克力基板、圍邊遮光膜和反射膜組成。導(dǎo)光板利用光學(xué)級亞克力基板吸取從LED經(jīng)反射膜發(fā)出的光并在光學(xué)級亞克力基板表面停留的原理,使光線射到各導(dǎo)光點時反射光擴(kuò)散到圍邊遮光膜內(nèi)破壞反射條件,從正面射出。反射光可通過疏密程度不一、大小不一的導(dǎo)光點,使導(dǎo)光板均勻發(fā)光。導(dǎo)光板必須緊貼在操作面板上,因此按鍵焊盤、導(dǎo)光板和操作面板之間不能有空隙,否則會降低按鍵的靈敏度。
感應(yīng)觸摸式監(jiān)測報警人機(jī)操作板實物圖見圖8。經(jīng)試驗,通過2 000次感應(yīng)觸摸式按鍵操作,觸摸鍵盤效果良好,觸摸信號輸出具有良好的重復(fù)性,能實現(xiàn)單擊、雙擊、三擊和四擊功能。觸摸鼠標(biāo)能實現(xiàn)鼠標(biāo)的基本功能,能判斷單擊、雙擊和平移等基本的觸摸手勢。感應(yīng)觸摸式監(jiān)測報警人機(jī)操作板具有USBHUB功能,正面可接U盤、打印機(jī)等USB設(shè)備。
圖8 感應(yīng)觸摸式監(jiān)測報警人機(jī)操作板實物圖
感應(yīng)觸摸式監(jiān)測報警人機(jī)操作板利用觸摸按鍵技術(shù)克服傳統(tǒng)操作板容易磨損、外形單一的缺陷,實現(xiàn)觸摸鍵盤、觸摸鼠標(biāo)、USBHUB、監(jiān)測報警和背光調(diào)節(jié)功能的有效集成。運(yùn)行結(jié)果表明,該感應(yīng)觸摸式監(jiān)測報警人機(jī)操作板性能穩(wěn)定可靠,產(chǎn)品外觀靈活、品質(zhì)較優(yōu),可成功應(yīng)用在相關(guān)監(jiān)測報警系統(tǒng)中。