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