【摘要】普通鼠標由于在外殼防護、操作環(huán)境、抗砸耐磨等方面不能很好地滿足工業(yè)控制現(xiàn)場需求而無法在工業(yè)控制中使用,本文設(shè)計了一種基于單片機的按鍵式USB鼠標,能夠滿足工業(yè)控制應(yīng)用。鼠標采用單片機作為控制核心,單片機程序?qū)崿F(xiàn)對按鍵信號的采集、濾波,并將按鍵信號根據(jù)HID協(xié)議轉(zhuǎn)換成標準的USB鼠標信號。
【關(guān)鍵詞】單片機;按鍵;USB;鼠標
引言
在工業(yè)控制系統(tǒng)中,常常需要用鼠標對控制器進行操作,但普通商業(yè)鼠標由于其以下特性無法滿足某些工業(yè)現(xiàn)場的惡劣環(huán)境。
外殼防護等級達不到要求。很多工業(yè)現(xiàn)場水汽和粉塵比較大,普通鼠標的左鍵和右鍵沒有特別的防護,水汽進入鼠標內(nèi)會對鼠標本身造成損壞,粉塵進入到按鍵的縫隙會導(dǎo)致操作不靈活。
操作環(huán)境達不到要求。普通鼠標需要一個干凈整齊的操作面,很多工業(yè)現(xiàn)場環(huán)境下很難提供這樣一個操作面,即便單獨設(shè)計一個操作面,粉塵和雜物也需要經(jīng)常清理,若清理不及時,操作不靈活,對控制系統(tǒng)的穩(wěn)定性會造成影響。
抗砸等級達不到要求。很多工業(yè)現(xiàn)場工料、雜物滾落時有發(fā)生,普通鼠標多為塑料外殼,容易損壞。
本文設(shè)計了一種能夠滿足工業(yè)現(xiàn)場要求的基于單片機的按鍵式USB鼠標,可保證工業(yè)控制系統(tǒng)的穩(wěn)定易用。
1.鼠標操作方式
鼠標操作方式采用全部按鍵操作,左鍵、右鍵跟普通鼠標一樣,采用按鍵操作,光標的移動也采用按鍵操作,用上下左右四個鍵來模擬光標的移動。鼠標按鍵分布如圖1所示。
圖1 按鍵分布
按鍵及基板均采用不銹鋼材質(zhì),抗砸耐磨。按鍵采用防塵防水設(shè)計,不易損壞。
2.鼠標接口
普通鼠標的接口有兩種方式:PS/2和USB,PS/2是早期的一種接口方式,現(xiàn)在使用更廣泛的是USB接口[1]。為了使設(shè)計的鼠標具有更好的通用性,鼠標采用USB接口。在Windows操作系統(tǒng)下,鼠標必須滿足HID(Human Interface Device)協(xié)議[2],才能被操作系統(tǒng)識別,這需要軟件設(shè)計來實現(xiàn)。采用單片機實現(xiàn)各個按鍵信號的采集和HID協(xié)議的處理。
電路原理如圖2所示。鼠標上的6個按鍵輸出均為無源常開接點信號,經(jīng)過隔離后單片機可以直接采集。隔離采用光耦隔離技術(shù),在端口采集的電路中,隔離可有效保護單片機不受外部干擾信號的影響,保證程序的穩(wěn)定運行。在信號采集的程序中,由于單片機的運行周期很短,必須要對信號進行濾波處理,不然會產(chǎn)品信號抖動。本設(shè)計采用的濾波方式是定時計數(shù)濾波方式,每隔一定的時間(如20ms)采集一次信號,如果此次采集的信號跟上次采集的相同,則計數(shù)加1,如果不同,則計數(shù)清零。當計數(shù)達到一定數(shù)值(如10),則認為信號已穩(wěn)定,該信號的狀態(tài)就可以被后續(xù)程序處理。
圖2 電路原理
在單片機的設(shè)計中,看門狗電路的設(shè)計關(guān)乎系統(tǒng)的穩(wěn)定。單片機程序在循環(huán)運行過程中,容易受到外界干擾產(chǎn)生跑飛的現(xiàn)場,看門狗電路就是為了防止程序跑飛設(shè)計的。看門狗電路的原理如下:單片機程序的運行過程中,每隔循環(huán)周期都會向看門狗芯片寫入一個信號,這個信號可以是電平信號,也可以是串行通信信號(如SPI、I2C等),看門狗芯片在一定時間內(nèi)沒有收到這個信號就認定為程序跑飛,然后看門狗芯片向單片機的復(fù)位管腳輸出一個復(fù)位信號,然單片機實現(xiàn)熱復(fù)位,從而實現(xiàn)程序從頭開始運行,確保程序不會產(chǎn)生錯誤。
3.HID協(xié)議實現(xiàn)方法
3.1 HID簡介
HID(Human Interface Device)[3]人機接口設(shè)備類別是Windows最早支持的USB類別。HID設(shè)備是計算機直接與人交互的設(shè)備,例如鍵盤、鼠標和游戲桿等。不過HID設(shè)備不一定要有人機接口,只要符合HID類別規(guī)范,就都是HID設(shè)備。HID設(shè)備可以低速設(shè)備也可以是全速設(shè)備,主要適用于傳輸數(shù)據(jù)量不大、數(shù)據(jù)具有突發(fā)性、無固定傳輸速率的應(yīng)用場所。
3.2 程序設(shè)計
HID設(shè)備的程序設(shè)計的核心是對主機(如計算機)的請求作出響應(yīng),請求可以控制傳輸請求,也可以使數(shù)據(jù)傳輸請求。軟件開發(fā)的主要工作是編寫USB的中斷服務(wù)程序,中斷服務(wù)程序首先判斷中斷的類型,然后根據(jù)中斷類型及其他相關(guān)信息,轉(zhuǎn)入相應(yīng)的協(xié)議處理程序,根據(jù)協(xié)議處理的結(jié)果,完成相應(yīng)的通信。在本設(shè)計中,由于是用上下左右鍵來模擬光標的運行,而在HID協(xié)議中,光標的數(shù)據(jù)應(yīng)該是一個坐標,這就需要程序講上下左右鍵遞增出來的數(shù)據(jù)轉(zhuǎn)換為坐標值。光標的移動速度,不同的應(yīng)用場所、不同的用戶都會有變化,難以統(tǒng)一,為了解決這個問題,這里做了一個通用性的設(shè)計,基本原理如下:用戶按住其中一個鍵,則光標開始向這個方向移動,開始以一個較慢的速度一定,隨著時間的積累,移動的速度越來越快,這樣可以保證用戶操作的準確性和光標移動的效率。在成成設(shè)計中需要對按鍵信號進行定時,不同的時間,坐標的遞增系數(shù)不同。
4.結(jié)語
本文設(shè)計的按鍵式USB鼠標耐磨抗砸,使用壽命長。鼠標采用單片機作為控制核心,單片機程序?qū)崿F(xiàn)對按鍵信號的采集、濾波,并將按鍵信號根據(jù)HID協(xié)議轉(zhuǎn)換成標準的USB鼠標信號。本設(shè)計對于提高控制系統(tǒng)的可操作性和穩(wěn)定性能起到一定的推進作用。
參考文獻
[1]任軍首,汪世林.基于STC89C52單片機的USB鼠標的設(shè)計[J].福建電腦,2011(5):107-129.
[2]吳曉莉.人機手控操縱原理在鼠標設(shè)計中的應(yīng)用[J].機械設(shè)計與研究,2009(4):77-79.
[3]王恒升,匡洋,彭宏道.USB HID類設(shè)備小驅(qū)動程序開發(fā)[J].控制工程,2010(6):815-819.
作者簡介:趙樹有(1982—),男,河北滄州人,工程師。