中心議題:
- 基于MEMS的無線鼠標(biāo)系統(tǒng)原理與設(shè)計
- 基于MEMS的無線鼠標(biāo)的具體設(shè)計方案
解決方案:
- 無線鼠標(biāo)的發(fā)射端設(shè)計
- 無線鼠標(biāo)的接收端設(shè)計
- 無線鼠標(biāo)的節(jié)能設(shè)計
本文詳細(xì)討論了基于微加速度傳感器的MEMS無線鼠標(biāo)的軟件、硬件設(shè)計和系統(tǒng)構(gòu)成,并給出了Matlab環(huán)境下系統(tǒng)的simulink模型和算法,模擬的結(jié)果證明:無線鼠標(biāo)的設(shè)計是合理可行的,文中提出的二次積分近似算法是簡捷有效的;文中討論的二維鼠標(biāo)的設(shè)計技術(shù),能為進(jìn)一步研究多維多功能的MEMS輸入設(shè)備打下很好的基礎(chǔ)。
1 系統(tǒng)原理與設(shè)計
1.1 檢測原理
目前,常見的鼠標(biāo)有2種,滾輪式和光電式。滾輪式鼠標(biāo)是靠滾輪的傳動帶動X和Y軸上的譯碼輪轉(zhuǎn)動,來感測鼠標(biāo)位移的變化;光電式鼠標(biāo)是用一個自帶光源的光電傳感器,跟隨鼠標(biāo)的移動連續(xù)記錄它途經(jīng)表面的“快照”,這些快照(即幀)有一定的頻率、尺寸和分辨力,而光電鼠標(biāo)的核心--DSP通過對比這些快照之間的差異從而識別移動的方向和位移量,并將這些位移的信息加以編碼后實時地傳給電腦主機。
而基于MEMS技術(shù)的無線鼠標(biāo)是用微加速度傳感器實時測量鼠標(biāo)運動的加速度,經(jīng)過兩次積分轉(zhuǎn)換為位移信號傳輸給主機,來控制光標(biāo)的移動,從而實現(xiàn)鼠標(biāo)的功能。
1.2 硬件設(shè)計
如圖1所示,整個無線鼠標(biāo)系統(tǒng)分為2個子系統(tǒng),遠(yuǎn)端子系統(tǒng)和主機端子系統(tǒng)。
圖1 無線鼠標(biāo)系統(tǒng)結(jié)構(gòu)框圖
遠(yuǎn)端子系統(tǒng)由微加速度傳感器、微控制器和nRF2401射頻收發(fā)器組成。微加速度傳感器采用美國AD公司生產(chǎn)的ADXL203微傳感器,微控制器采用Atmel公司生產(chǎn)的ATmega 16L微控制器,該微控制器附帶有8路10位可編程的A/D轉(zhuǎn)換電路,可以實時地將ADXL203加速度傳感器輸出的加速度模擬信號轉(zhuǎn)換成加速度數(shù)字信號。
ADXL203加速度傳感器在加速度為0時輸出電壓為2.5V,為提高A/D轉(zhuǎn)換的精度,本文利用ATmega 16L內(nèi)置的差分放大功能,用差分信號將這2.5V電壓給濾掉,并將差分后的電壓信號放大到與A/D轉(zhuǎn)換的參考電壓相匹配。系統(tǒng)供電采用電器中常見的9V電池,連接一個LM78M05穩(wěn)壓貼片得到恒定的5V電壓,供各個模塊使用。
主機端子系統(tǒng)由nRF2401射頻收發(fā)器,串行傳輸接口芯片和另一個ATmega 16L微控制器組成,其中,RS232串行通信接口芯片采用的是Maxim2IC公司的MAX233芯片,作用是將微控制器輸出的5V TTL/CMOS電平轉(zhuǎn)換為EIA/TIA-232-E電平,以便與電腦主機進(jìn)行串行(RS232)通信。
1.3 軟件與算法設(shè)計
鼠標(biāo)在人的操縱下移動,微加速度傳感器便會實時地輸出鼠標(biāo)運動的加速度大小和方向,ADXL203傳感器的量程為±1.7gn ,電壓靈敏度為1000mV/gn,這個電壓信號經(jīng)過差分放大5.0/1.7倍后,通過微控制器A/D轉(zhuǎn)換功能變成與加速度大小對應(yīng)的數(shù)字信號,加速度經(jīng)過兩次積分,便變成了鼠標(biāo)移動的位移信號,然后,再經(jīng)過編碼,并通過nRF2401射頻收發(fā)器將位移信號發(fā)射出去。
[page]
當(dāng)加速度傳感器輸出電壓為a時,經(jīng)A/D轉(zhuǎn)換得到的數(shù)字量大小為
式中[ ]表示取整數(shù);a為加速度傳感器輸出的電壓大小,V。ATmega 16L單片機最大采樣速率可以達(dá)到15000次/秒,本文采用1000次/秒;即每1ms采樣一次,每25ms便向電腦報告一次相對的位移改變量,以保證屏幕上鼠標(biāo)指針運動的精確和平滑,則每一次報告的位移改變量包含25次對加速度采樣的數(shù)據(jù)??梢圆捎媒扑惴▉韺铀俣刃盘栠M(jìn)行二次積分,得到位移信號。
編碼的目的是將X和Y方向的位移改變量,連同鼠標(biāo)按鍵的實時信息,按照標(biāo)準(zhǔn)的Microsoft鼠標(biāo)協(xié)議要求的格式進(jìn)行編碼,以便最后發(fā)送到主機的信息能夠被電腦正確識別,從而使電腦能正確處理發(fā)送給它的位移信號,來正確控制鼠標(biāo)光標(biāo)的移動等動作。表1表示的即是標(biāo)準(zhǔn)的鼠標(biāo)協(xié)議規(guī)定的三字節(jié)數(shù)據(jù)包格式,第1個字節(jié)記錄的是左右按鍵的信息和鼠標(biāo)X,Y位移的最高2個字位的數(shù)據(jù),按鍵按下時,對應(yīng)的位置1,否則,置0;第2和第3個字節(jié)分別記錄X和Y方向位移的低6位數(shù)據(jù)。位移值的范圍取-127~+127,再大的位移改變量會自動溢出。
表1 Microsoft標(biāo)準(zhǔn)鼠標(biāo)協(xié)議數(shù)據(jù)包格式
2 具體設(shè)計方案
2.1 鼠標(biāo)原理
光學(xué)鼠標(biāo)的核心是一個低分辨率迷你攝像機, 稱為傳感器。瀏覽LED照亮表面,光從表面反射回來,通過透鏡采集。大多數(shù)鼠標(biāo)制造商采用可視的紅色LED,有些制造商還生產(chǎn)采用紅外線LED的鼠標(biāo)。
當(dāng)鼠標(biāo)移動時,傳感器會連續(xù)拍攝物體表面,并利用數(shù)字信號處理來比較各個影像,以決定移動的距離和方向。產(chǎn)生的結(jié)果會傳回計算機,而屏幕上的光標(biāo)會根據(jù)這些結(jié)果來移動。雖然光學(xué)鼠標(biāo)傳感器幾乎可以在任何一種物體表面上移動,但仍有一些表面是鼠標(biāo)傳感器無法瀏覽的,例如鏡面、玻璃表面、光滑表面、雜志及全像攝影表面。
根據(jù)圖1,鼠標(biāo)可劃分為以下幾個功能部分:
1)位移檢測單元--X、Y雙軸加速度傳感器;
2)按鍵檢測單元;
3)單片機(MCU);
4)藍(lán)牙發(fā)射芯片;
5)藍(lán)牙收發(fā)芯片--做接收器(RX);
6)帶USB接口的單片機(USB MCU)。
圖1 基于加速度傳感器無線鼠標(biāo)的描述
[page]
鼠標(biāo)具體的工作原理為:鼠標(biāo)內(nèi)的單片機實時監(jiān)測加速度傳感器的移動和按鍵狀態(tài),當(dāng)鼠標(biāo)器的狀態(tài)發(fā)生變化時,單片機讀出按鍵狀態(tài)并及時得到當(dāng)前X/Y坐標(biāo)移動的位置;接著單片機就將變化的數(shù)據(jù)按照約定的通信協(xié)議將數(shù)據(jù)打包通過無線收發(fā)技術(shù)發(fā)送到接收端,接收端通過單片機解碼把符合鼠標(biāo)USB協(xié)議的數(shù)據(jù)包送至PC主機的USB端口;PC中的鼠標(biāo)驅(qū)動程序接收到端口的數(shù)據(jù)包后將其解碼再傳送給相應(yīng)的應(yīng)用軟件,從而完成鼠標(biāo)器的檢測和控制過程。
2.2 發(fā)射端
加速度傳感器采集加速度信號,單片機通過軟件實現(xiàn)對加速度信號的二重積分而轉(zhuǎn)換為位移信號,經(jīng)編碼處理至藍(lán)牙發(fā)射芯片,通過天線將數(shù)據(jù)發(fā)射出去。
2.2.1 加速度傳感器電路
采用ADI的低成本、低功耗雙軸單片加速度傳感器 ,其可測量加速度范圍至少在 ±2g 以上 ,可以測量動態(tài)加速度(比如振動)和靜態(tài)加速度(比如重力加速度),其輸出的占空比是和加速度的大小成一定的線性關(guān)系,并且可以直接被單片機(MCU)采樣而不需模數(shù)轉(zhuǎn)換(ADC)。工作周期則可以簡單地通過RSET來調(diào)節(jié) ,范圍在0. 5m s到10m s之間。帶寬可以通過調(diào)節(jié)XFLT和管腳上的電容Cx和Cy來確定, 本方案中選用Cx=Cy= 0.10μF, 故F-3db=50Hz,需要注意的是,加速度傳感器在平動時會在相應(yīng)的方向產(chǎn)生與加速度相關(guān)的輸出,在轉(zhuǎn)動的時候也是如此 ,本方案中我們假設(shè)鼠標(biāo)在水平面使用 ,因此我們只需要一片加速度傳感器就可以解決問題 ,加速度的大小可以通過 T1/ T2 = 11% 3A+ 50%這個線性比例關(guān)系獲得 其中 T1表示工作周期中高電平部分的長度 , T2表示整個工作周期的長度 , T1/ T2就是輸出占空比的大小,A 是加速度大小 ,而加速度的方向可以通過其正負(fù)性來判定。
2.2.2 占空比輸出解碼
對于每一個軸,傳感器的輸出電路把模擬信號轉(zhuǎn)變成占空比調(diào)制的數(shù)字信號,這樣就可以通過MCU 的定時/計數(shù)器解碼獲得加速度信息,其大小可以通過下式計算得到:
由于每個器件存在差異,其 0g輸出和靈敏性會因為溫度、噪聲等原因而不同,為實現(xiàn)高精度測量,0g的偏移量和比例因子必須按照實際測量所得。本方案在TA=25℃,VDD=3V,RSET=125KΩ,中測得:
為了實現(xiàn)高精度測量,考慮到T2易受溫度漂移的影響,必須周期性地更新T2的平均值。一種新的改進(jìn)型脈寬調(diào)制(PWM)解碼方法是通過占空比調(diào)制在X軸和Y軸使用相同的三角形參考波 ,使得每個周期中 T1的中點達(dá)到同步 ,這種方法能加快數(shù)據(jù)傳輸時間,也稱之為高速解碼,X軸和Y軸的占空比輸出如圖2所示。
圖2 X軸和Y軸的占空比輸出
單片機軟件編程實現(xiàn)獲取加速度信息的流程圖如圖3所示。
圖3 ADXL202E高速解碼技術(shù)流程圖
[page]
2.2.3 軟件實現(xiàn)獲取位移信號
如何實現(xiàn)高精確度且易于編程的二重積分算法是把加速度信號轉(zhuǎn)換為位移信號的關(guān)鍵所在,用積分電路來實現(xiàn)二重積分的誤差較大,因此擬用軟件編程來實現(xiàn)二重積分的算法 ,并且先在 matlab環(huán)境下用動態(tài)系統(tǒng)的simulink模型模擬 FFT、辛普生公式等不同的積分算法 ,來進(jìn)行算法的比較與選擇 ,通過加速度傳感器鼠標(biāo)的 simulink模型對實際位移和軟件實現(xiàn)的位移信號進(jìn)行比較,誤差控制在在0.5%以內(nèi),滿足鼠標(biāo)設(shè)計要求。
2.2.4 無線鼠標(biāo)按鍵
鼠標(biāo)按鍵采用標(biāo)準(zhǔn)開關(guān),每個開關(guān)直接連到ATmega16 的通用輸入輸出(GPIO)口, GPIO被配置成輸入引腳,每個引腳可以單獨地選擇上拉電阻,單片機檢測按鍵操作,軟件進(jìn)行按鍵去抖處理和實現(xiàn)噪聲抑制功能,然后通過藍(lán)牙芯片發(fā)射出按鍵信息。
2.2.5 藍(lán)牙模塊發(fā)射芯片
nRF2402是單片2.4 ~2.5GHz射頻發(fā)射芯片, 發(fā)射器包含頻率合成器、功放、晶體振蕩器和調(diào)制器 ,輸出功率和信道選擇很容易通過3-線接口編程實現(xiàn), 在輸 出功率為-5dBm時電流消耗僅10mA ,內(nèi)置的ShockBurst技術(shù)以及休眠模式用來降低發(fā)送數(shù)據(jù)的電流消耗 ,以延長電池使用壽命 ,并且向pc發(fā)送的數(shù)據(jù)包也應(yīng)盡可能少(取采樣速率為100采樣點/秒)。ShockBurst技術(shù)使用片內(nèi)先入先出堆棧(FIFO)低速處理數(shù)據(jù)(10Kbps)而高速發(fā)送數(shù)據(jù)(1Mbps)。
該設(shè)計需要一個16MHz的晶體振蕩器和一個外部的EPROM用來固件存儲。固件將使用ShockBurst技術(shù)從鼠標(biāo)發(fā)送RF數(shù)據(jù)包。其中固件必須完成下列任務(wù):
- 裝載地址(ADDR)和有效載荷(PAYLOAD);
- 計算循環(huán)冗余檢查(CRC);
- 添加信息位(PRE);
- 使用ShockBurst技術(shù)發(fā)送數(shù)據(jù)包;
- 數(shù)據(jù)包發(fā)送完成回到休眠模式。
2.3 接收端
2.3.1 藍(lán)牙收發(fā)芯片
接收器是將nRF2401收發(fā)芯片配置成接收模式(RX),其性能類似發(fā)射芯片,但該芯片采用Duo2Ceiver同步雙通道接收技術(shù),這樣就可以實現(xiàn)鼠標(biāo)和鍵盤的無線控制(在此我們僅考慮鼠標(biāo)的使用)。誤差控制其固件必須完成下列任務(wù):
- 當(dāng)nRF2401作為ShockBurst的接收器時,設(shè)置正確的地址和接收到的RF數(shù)據(jù)包的有效載荷長度;
- 激活RX,并設(shè)CE為高;
- 等待200μs后,nRF2401處于等待接收數(shù)據(jù)狀態(tài);
- 當(dāng)有效數(shù)據(jù)包正確的ADDR和CRC信息接收到后,nRF2401去除數(shù)據(jù)包中的附加信息、地址和循環(huán)冗余檢查位;
- nRF2401通知MCU使DR1設(shè)置為高;
- MCU設(shè)置CE為低也可能不設(shè)置為低 使芯片處于低電流模式;
- MCU以一定的速率記錄有效載荷信息;
當(dāng)?shù)玫接行лd荷后nRF2402設(shè)置DR1為低。如果CE為高則準(zhǔn)備接收新的數(shù)據(jù)包 ,如果CE為低,則重新開始起始序列。
[page]
2.3.2 PCB天線設(shè)計
為實現(xiàn)2.4GHz低功耗射頻器件nRF2401和nRF2402 的小尺寸、易制造和低成本特點,在PCB上選用1/4波長單極天線是一個理想的解決方案。但是如同其他天線一樣 , 1/4 波長單極天線的增益會由于殼體材料、與接地面(ground p lane)接地面的尺寸以及PCB天線的寬度和厚度等參數(shù)的改變而發(fā)生變化,因此單極PCB天線的長度必須的改變而發(fā)生變化,因此單極PCB天線的長度必須優(yōu)化。在本方案中,天線采用標(biāo)準(zhǔn)1.6mm材料,其相對介電常數(shù)為4.4,天線的寬度W=1.5 mm,通過計算可得到單極天線周圍物質(zhì)的介電常數(shù)為3.16,從而在該條件下波長為 68.9mm。在PCB基底上選用印制1/4波長單極天線的長度L=17.2 mm ,為了使得天線在 2.4GHz更容易諧振,天線的長度可適當(dāng)延長,本方案中選天線長度L =22mm的類“┓”型設(shè)計,是PCB天線制作較為合理的一種方法,大大節(jié)省了PCB板的面積,同時在規(guī)定PCB板面積的條件下應(yīng)保證天線的開口端和接地面之間的距離d盡可能大,實現(xiàn)信號高精度、高增益的準(zhǔn)確發(fā)射和接收。
2.3.3 帶USB接口的單片機
USB設(shè)備具有即插即用、熱插拔等優(yōu)勢 ,鼠標(biāo)采用USB接口必將成為一種趨勢,因此我們采用帶USB收發(fā)器的單片機CY7C637xx系列。該系列是采用高性能8位精簡指令(RISC)結(jié)構(gòu),集成了USB串行接口引擎(SIE)的單片機 ,其內(nèi)置了時鐘振蕩器、計時器、可編程電流驅(qū)動以及在每個I/O口線上的上拉電阻,可以用極少量的外部元件和簡單的固件編程實現(xiàn)高性能低成本的人機交互設(shè)備(HID)。
軟件部分對接收的RF數(shù)據(jù)包進(jìn)行譯碼,并經(jīng)過處理轉(zhuǎn)換為符合鼠標(biāo)USB協(xié)議的數(shù)據(jù)包格式送到PC機,以及完成為實現(xiàn)鼠標(biāo)功能所需的固件的編寫。當(dāng)USB器件第一次連到總線,總線供電,D-的上拉電阻報告集線器連接一低速(1.5Mbps)USB器件,主機識別這個USB器件,總線重啟。主機接收到器件的描述符后賦予器件一個新的地址,這樣器件和主機通過這個新的地址進(jìn)行數(shù)據(jù)通信。
2.4 節(jié)能考慮
單片機可通過軟件選擇省電方式:閑置方式停止CPU的工作 ,而SRAM、定時 /計數(shù)器、SPI口及中斷系統(tǒng)繼續(xù)工作;掉電方式保留寄存器的內(nèi)容,但停止晶振,終止芯片的其他功能,直至下一次外部中斷或硬件復(fù)位。藍(lán)牙芯片則通過配置特殊寄存器,可使芯片工作在ShockBurst無線方式,并支持休眠模式和掉電模式,可實現(xiàn)數(shù)據(jù)的超低功耗傳輸,因此,對于用電池供電的鼠標(biāo)器發(fā)射端無疑延長了其使用時間。
3 結(jié)語
本文詳細(xì)討論了基于微加速度傳感器的MEMS無線鼠標(biāo)的軟件、硬件設(shè)計和系統(tǒng)構(gòu)成,并給出了Matlab環(huán)境下系統(tǒng)的simulink模型和算法,模擬的結(jié)果證明:無線鼠標(biāo)的設(shè)計是合理可行的,文中提出的二次積分近似算法是簡捷有效的;文中討論的二維鼠標(biāo)的設(shè)計技術(shù),能為進(jìn)一步研究多維多功能的MEMS輸入設(shè)備打下很好的基礎(chǔ)。本文選擇硬件時,充分考慮了系統(tǒng)向多維和多功能擴展的可能性,可以在此二維鼠標(biāo)的基礎(chǔ)上再添加一些器件,構(gòu)成功能更多更完善的MEMS輸入設(shè)備,例如:可以再添加一個微加速度傳感器來感測Z軸的加速度,從而實現(xiàn)三維鼠標(biāo),可以實現(xiàn)對三維立體旋轉(zhuǎn)等的控制;也可以利用nRF2401射頻收發(fā)器內(nèi)置的多點通信控制的特性,再多增加幾個接收模塊,可以同時控制多臺主機,或多增加幾個發(fā)射模塊,用幾個輸入設(shè)備來控制同一臺主機,以適應(yīng)不同應(yīng)用場合的需要。
另外,基于MEMS技術(shù)的無線鼠標(biāo)很容易向三維空間使用拓展,這樣就能為很多場合,尤其是作演講時提供很大的方便,具有很大的應(yīng)用價值。