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