來自Nordic VLSI ASA的nRF24E1和nRF24E2(本文統(tǒng)稱為nRF24Ex)使設計一個2.4GHz ISM波段的3鍵3軸無線鼠標單片解決方案成為可能。nRF24Ex系列芯片內(nèi)置8051微控制器、一個9通道ADC和與流行的 nRF2401/nRF2402芯片一樣的RF部分。nRF24Ex系列可以在1.9V到3.6V電壓范圍內(nèi)工作,因此特別適用于由電池供電的產(chǎn)品的應用。本文介紹怎樣利用nRF24Ex系列芯片制作3鍵3軸無線鼠標。
2.設計方案
圖1. nRF24Ex在3鍵3軸無線鼠標設計中的應用
2.1 RF部分
如圖3原理圖所示,RF部分的設計以可從www.nvlsi.no網(wǎng)站下載的nRF24Ex參考設計作為參考。該設計用16MHz晶振、一個作為固件存儲器的外部EPROM。EPROM作為固件存儲器。固件用ShockBurst技術從鼠標發(fā)送數(shù)據(jù)包。ShockBurst技術用來最大限度減小每發(fā)射一位數(shù)據(jù)的電流消耗,從而延長電池的壽命。如果想進一步了解ShockBurst技術可以參考 nRF24Ex的數(shù)據(jù)手冊或者可以從www.nvlsi.no網(wǎng)站下載相關資料。
2.2無線鼠標基礎
無線鼠標和標準鼠標具有一樣的基本功能。不同的是無線鼠標用無線電信號傳輸數(shù)據(jù)到主機而不是用電纜。這意味著無線鼠標收集移動和按鍵信息的方式和老式有線鼠標是一樣的。本文以一個使用滾球的鼠標作為例子。該鼠標每個鍵有一個開關、一個滾球和若干用來測量移動的滾軸。滾軸其實是一個刻有光槽的轉(zhuǎn)輪,它可以對每一步移動作出響應輸出波形。因為無線鼠標用電池供電所以應該注意盡量省電。因此往主機發(fā)射更新數(shù)據(jù)的次數(shù)越少越好(移動或者點擊時60-100次/ 秒)。
2.3 無線鼠標的光學結(jié)構
如圖2所示,因為鼠標中有光學機構,所以IR-LED(紅外發(fā)光二極管)經(jīng)過轉(zhuǎn)輪照在兩個光電三極管上。轉(zhuǎn)輪隨著鼠標的圓形滾軸轉(zhuǎn)動。經(jīng)過轉(zhuǎn)輪的光線照在兩個接成源極跟隨器的光電三極管上。從IR-LED(紅外發(fā)光二極管)發(fā)出的光會使光電三極管處于開狀態(tài)。
轉(zhuǎn)輪阻擋紅外光線使光電三極管開和關從而輸出方波。輸出波形每變化一次代表鼠標移動的一次計數(shù)。比較光學結(jié)構的當前和下一個狀態(tài)就可得知鼠標移動的方向。
圖2. 從IR-LED(紅外發(fā)光二極管)面看鼠標的光學結(jié)構
2.4 無線鼠標的按鍵
每個鼠標按鍵就是一個標準的開關,各個開關直接與nRF24Ex芯片的GPIO 引腳相連。GPIO引腳設置為輸入端由外部上拉電阻上拉。-----固件按鍵按下時間應在15-25ms-----。本設計有3個鍵∶左鍵、中間鍵和右鍵。
2.5 原理圖
圖3顯示怎樣把光學機構、按鍵與標準nRF24Ex芯片外帶一個EPROM連接起來,制作成一個2.4GHz無線鼠標。
3.電池壽命
本節(jié)內(nèi)容包括電流消耗的計算和一個怎樣實現(xiàn)省電的例子。
3.1 省電
無線鼠標中最耗電的器件不是RF部分而是光學裝置中的紅外發(fā)光二極管。因此在保證我們想要實現(xiàn)的鼠標功能的同時使LED(發(fā)光二極管)點亮時間盡量短、熄滅時間盡量長是很重要的。為了達到這個目的我們定義了3種不同的狀態(tài)為LED施加脈沖。
狀態(tài)1∶該狀態(tài)設置在鼠標正在移動需要最精確測量的時候。在該狀態(tài)下tledon=10us,tledoff=200us并且累計鼠標移動的總量每隔10ms發(fā)送一次數(shù)據(jù)給主機PC。
狀態(tài)2∶該狀態(tài)設定在最近還在使用但目前處于靜止的時候。在該狀態(tài)tledon=10us,tledoff=25000us。使用者不會注意到鼠標再次使用時的短暫延遲。在狀態(tài)1時如果鼠標在5ms內(nèi)沒有動作則進入狀態(tài)2。處在狀態(tài)2時當檢測到鼠標移動時鼠標從狀態(tài)2進入狀態(tài)1。
狀態(tài)3∶一段時間內(nèi)沒有用鼠標後鼠標將進入該狀態(tài)。tledon=10us, tledoff=100000us。在該模式下意味著使用者已長時間沒有使用鼠標,不會注意到鼠標移動到光標處的延遲,在該狀態(tài)下當檢測到鼠標移動時鼠標應立即進入到狀態(tài)1。從狀態(tài)2進入狀態(tài)3應有1-2分鐘間隔。
3.2 計算電流消耗
點亮時每個IR-LED(紅外發(fā)光二極管)耗電10mA。nRF24Ex在活動狀態(tài)耗電3 mA,在省電狀態(tài)下耗電2uA,當處于發(fā)送ShockBurst數(shù)據(jù)包的時候外加10.5mA。除了發(fā)送ShockBurst數(shù)據(jù)包時我們假設IR- LED(紅外發(fā)光二極管)熄滅時nRF24Ex處于待命狀態(tài)。這樣各個狀態(tài)下的平均電流消耗可以用方程1計算。
方程1 平均電流消耗
對狀態(tài)2和狀態(tài)3的平均電流消耗可以直接計算出來∶
方程2 狀態(tài)2的平均電流消耗
方程3 狀態(tài)3的平均電流消耗
對狀態(tài)1我們必須加上ShockBurst發(fā)送的電流消耗。如前面所設定的當鼠標處于移動狀態(tài)時每10ms必須發(fā)送一次數(shù)據(jù)。我們假設一個鼠標數(shù)據(jù)包包含 124位數(shù)據(jù)。這就是說nRF2401將用124us時間以1Mbit/s速度發(fā)送該數(shù)據(jù)包。另外還有202us的數(shù)據(jù)建立時間。這意味著一次 ShockBurst發(fā)送將在326us內(nèi)消耗10.5mA的電流外加微控制器使用的3mA。把這代入給出的方程∶
方程4 狀態(tài)1的平均電流消耗
3.3 電池壽命例子
計算電池預期壽命需要用到典型的使用者怎樣使用鼠標的統(tǒng)計材料。這個例子不是基于統(tǒng)計模型僅是一個介紹怎樣計算電池壽命的例子。
我們假設電池容量為1000mAh并且假設典型的使用者每天把鼠標置于狀態(tài)1 的時間為20分鐘,置于狀態(tài)2的時間為120分鐘,其馀時間置于狀態(tài)3。這就得出了總電流消耗為∶
方程5 總的平均電流消耗
電池壽命由下式給出∶
方程6 計算電池壽命
在激活模式工作時使用4MHz晶振代替16MHz晶振可以把nRF24Ex的電流消耗從3mA降低到1.6mA。雖然這樣會導致RF連接速度從 1Mbit/s 降低到250Kbit/s但它有延長電池壽命的好處。用這些數(shù)據(jù)進行同樣計算可得∶
方程7 用4MHz晶振時總的電流消耗
方程7 用4MHz晶振時總的電池壽命