<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 手機與無(wú)線(xiàn)通信 > 設計應用 > 51兼容射頻Soc nRF9E5與無(wú)線(xiàn)光機鼠標設計

51兼容射頻Soc nRF9E5與無(wú)線(xiàn)光機鼠標設計

作者: 時(shí)間:2004-12-07 來(lái)源:網(wǎng)絡(luò ) 收藏
作者Email: liekie@126.com

【摘 要】本文首先比較詳細、系統地介紹了最新51SoC 的片內微控制器和其它功能模塊;然后分析了與有線(xiàn)的區別,并引出了的概念和工作原理,給出用進(jìn)行鼠標的方案和該方案中的電池壽命的計算方法;最后,說(shuō)明用進(jìn)行無(wú)線(xiàn)鼠標的優(yōu)勢。

【關(guān)鍵詞】nRF9E5;;無(wú)線(xiàn)通信;光機鼠標;鼠標

1. 引言

nRF9E5是Nordic VLSI公司于2004年2月5日推出的系統級RF芯片,其內置nRF905 433/868/915MHz收發(fā)器、8051微控制器和4輸入10位80ksps AD轉換器,是真正的系統級芯片。內置nRF905收發(fā)器與nRF905 芯片的收發(fā)器一樣,可以工作在ShockBurstTM(自動(dòng)處理前綴、地址和CRC)方式。內置電壓調整模塊,最大限度地抑制噪音,為系統提供1.9V到3.6V的工作電壓。nRF9E5符合美國通信委員會(huì )和歐洲電信標準學(xué)會(huì )的相關(guān)標準。由于nRF905功耗低,工作可靠,因此很適用于無(wú)線(xiàn)光機鼠標。

2. nRF9E5功能介紹

2.1微控制器

nRF9E5的片內微控制器與標準51。指令時(shí)序與標準51稍有區別,典型的區別是nRF9E5的片內微控制器的指令周期為4到20個(gè)指令周期。中斷控制器支持5個(gè)擴展的中斷源:ADC中斷、SPI中斷、RADIO1中斷、RADIO2中斷和喚醒定時(shí)器中斷。片內控制器還有3個(gè)與8052相同的定時(shí)器。一個(gè)和8051相同的串口,可以用定時(shí)器1和定時(shí)器2來(lái)作為異步通信的波特率產(chǎn)生器。此外,還擴展了兩個(gè)數據指針,以方便于從XRAM區讀取數據。

微處理器中有256字節的數據RAM和512字節的ROM。上電復位或軟件復位后,處理器自動(dòng)執行ROM中的引導區中的代碼。用戶(hù)程序通常是在引導區的引導下,從EEPROM加載到1個(gè)4K的RAM中,這個(gè)4K的RAM也可作存儲數據用。如果應用當中不用掩膜ROM(也即內含的ROM),程序代碼必須從外部非易失性存儲器中加載,比較常見(jiàn)的是通過(guò)SPI接口擴展型號為25320的EEPROM。

nRF9E5的大部分寄存器和標準8051相同,只是為了控制一些8051沒(méi)有的功能,增加了一些特殊功能寄存器,如RADIO(P2)、ADCCON、ADCDATAH、ADCDATAL、ADCSTATIC、PWMCON、PWMDUTY等。nRF9E5中的P0、P1和P2口寄存器地址和標準8051中的相同,都是0x80,0x90,0xA0,但功能和標準8051中的有所不同。

圖1 nRF9E5功能圖[1]

2.2 PWM

nRF9E5內有一個(gè)可編程控制的PWM(脈寬調制)輸出,使用時(shí),通過(guò)程序改變P0.7的功能來(lái)實(shí)現,并可編程決定PWM工作于6位、7位或8位。PWM的頻率與晶振有關(guān),可編程控制。

2.3 SPI接口

SPI(串行外設接口)的接口引腳有MISO(接收EEPROM的SDO送來(lái)的數據)、SCK(給EEPROM的SCK提供時(shí)鐘信號)、MOSI(送數據到EEPROM的SDI)、EECSN(給EEPROM的CSN送使能信號)。SPI口的MISO、SCK和MOSI與P1口的低3位重用,通過(guò)寄存器SPI_CTRL控制來(lái)控制功能間的撤換。SPI硬件不產(chǎn)生任何片選信號,可以用GPIO口來(lái)進(jìn)行片選。通常,系統上電時(shí),SPI自動(dòng)和片外的25320相連,當程序加載完成后,MISO(P1.2)、MOSI(P1.0)和SCK(P1.0)可能會(huì )用作其它用途,比如其它的SPI器件或GPIO。

2.4 LF時(shí)鐘,RTC喚醒定時(shí)器,GPIO喚醒和WTD

nRF9E5內有一個(gè)低頻的時(shí)鐘CKLF,該時(shí)鐘常開(kāi)。當晶振開(kāi)始工作后,CKLF頻率為4kHz;晶振不工作時(shí),CKLF是一個(gè)低功耗RC晶振并且不能禁能,只要VDD 1.8V,其連續工作。RTC喚醒定時(shí)器、WTD(看門(mén)狗)和GPIO喚醒全都工作在CKLF頻率,以保證芯片低功耗工作時(shí)能夠完成這三個(gè)功能。

  RTC喚醒定時(shí)器是個(gè)24位可編程控制的遞減計數器,WTD則是個(gè)16位可編程控制的遞減計數器。RTC喚醒定時(shí)器和WTD的循環(huán)周期一般在300us和80ms之間,默認為1ms。

2.5 AD轉換器

nRF9E5片內有10位ADC,AD轉換參考電壓可以通過(guò)軟件設置在A(yíng)REF和1.22V之間(內部參考電壓)。AD轉換器的4個(gè)輸入可通過(guò)軟件進(jìn)行選擇,通道0到3可以把對應引腳AIN0到AIN3上的電壓值分別轉換為數字值,通道4用于對nRF9E5工作電壓的監控。AD轉換器默認工作于10位方式,可通過(guò)軟件使其工作于6位、8位或12位方式。

2.6 收發(fā)器

nRF9E5收發(fā)器通過(guò)內部并行口或內部SPI口與其它模塊進(jìn)行通信,具有同單片射頻收發(fā)器nRF905相同的功能。DuoCeiver接收器輸出的數據準備信號,可通過(guò)程序使其為微處理器的中斷或通過(guò)GPIO口的傳給CPU。

nRF9E5工作于433/868/915 ISM頻段。收發(fā)器由一個(gè)完整的頻率合成器、一個(gè)功率放大器、一個(gè)調節器和兩個(gè)接收器組成。輸出功率、頻道和其它射頻參數可通過(guò)對特殊功能寄存器RADIO(0xA0)編程進(jìn)行控制。發(fā)射模式下,射頻電流消耗僅為11mA,接收模式下為12.5mA。為了節能,可通過(guò)程序控制收發(fā)器的開(kāi)/關(guān)。

3. 無(wú)線(xiàn)鼠標的基本知識[2]

  無(wú)線(xiàn)鼠標的基本功能和普通鼠標相同,唯一的區別是無(wú)線(xiàn)鼠標通過(guò)無(wú)線(xiàn)方式傳送鼠標信息給PC機,而普通鼠標是通過(guò)電線(xiàn)。這意味著(zhù)無(wú)線(xiàn)鼠標檢測鼠標移動(dòng)和按鍵信息的方法和普通有線(xiàn)鼠標一樣,也是用開(kāi)關(guān)來(lái)檢測按鍵,用球和滾軸來(lái)檢測鼠標的移動(dòng)。無(wú)線(xiàn)鼠標使用電池供電,所以應該盡量考慮節能問(wèn)題,盡量用最少的次數就能把檢測到的鼠標信息發(fā)送到PC機。無(wú)線(xiàn)鼠標在PC機處還應有一個(gè)接收器,一般該接收器是通過(guò)USB接口或串口與PC機相連,目前發(fā)展的趨勢是采用USB接口。

4. 無(wú)線(xiàn)光機鼠標方案

  無(wú)線(xiàn)光機鼠標器,即將滾輪的機械轉動(dòng)轉換成光信號,然后變?yōu)閿底蛛娦盘栐偻ㄟ^(guò)無(wú)線(xiàn)的方式發(fā)送給和PC機相連的接收器。無(wú)線(xiàn)光機鼠標器底部有一個(gè)露出一部分的塑膠小球,當鼠標器在操作桌面上移動(dòng)時(shí),小球隨之轉動(dòng),在鼠標器內部裝有三個(gè)滾軸與小球接觸,其中有兩個(gè)分別是X軸方向和Y軸方向滾軸,用來(lái)分別測量X軸方向和Y軸方向的移動(dòng)量,另一個(gè)是空軸,僅起支撐作用。拖動(dòng)鼠標器時(shí),由于小球帶動(dòng)三個(gè)滾軸轉動(dòng),X軸方向和Y軸方向滾軸又各帶動(dòng)一個(gè)轉軸(稱(chēng)為譯碼輪)轉動(dòng)。譯碼輪(見(jiàn)圖2)[3]的兩側分別裝有紅外

圖2 譯碼輪和光敏傳感器工作原理

發(fā)光二極管和光敏傳感器,組成光電耦合器。光敏傳感器內部沿垂直方向排列有兩個(gè)光敏晶體管A和B。由于譯碼輪有間隙,故當譯碼輪轉動(dòng)時(shí),紅外發(fā)光二極管發(fā)出的紅外線(xiàn)時(shí)而照在光敏傳感器上,時(shí)而被阻斷,從而使光敏傳感器輸出脈沖信號。光敏晶體管A和B被安放的位置使得其光照和阻斷的時(shí)間有差異,從而產(chǎn)生的脈沖A和脈沖B有一定的相位差,利用這種方法,就能測出鼠標器的拖動(dòng)方向。塑膠小球的移動(dòng)帶動(dòng)滾軸轉動(dòng),滾軸每轉動(dòng)一個(gè)小角度,鼠標位置計數器加1,每隔一定時(shí)間,nRF9E5就把鼠標位置計數器的值讀出,通過(guò)計算得出鼠標移動(dòng)的位移,再把位移信息發(fā)送給PC機。

鼠標的按鍵是典型的開(kāi)關(guān),每個(gè)開(kāi)關(guān)和nRF9E5的一個(gè)GPIO口相連。與開(kāi)關(guān)相連的GPIO口配置為輸入狀態(tài),并通過(guò)外部上拉電阻把其置高。按鍵在被按下的時(shí)候可能會(huì )出現抖動(dòng),所以在軟件設計的時(shí)候一般要考慮到去抖動(dòng),一般的方法是延時(shí)15-25ms再去檢測按鍵。一般的鼠標按鍵有:左鍵、中鍵和右鍵。系統原理圖如圖3所示。

射頻部分基于nRF9E5設計,系統晶振為16MHz,EEPROM存儲程序,使用nRF9E5的ShockBurstTM工作方式發(fā)送鼠標信息包。ShockBurstTM工作方式在芯片硬件設計時(shí)就已經(jīng)考慮到節能,因此使用該工作方式可以延長(cháng)電池壽命。

5. 無(wú)線(xiàn)光機鼠標電池壽命算法[2]

5.1工作狀態(tài)分析

  無(wú)線(xiàn)光機鼠標中,最耗電是紅外發(fā)光二極管,而不是射頻收發(fā)部分,因此,要使發(fā)光二極管盡量少耗電并且鼠標又能正常工作。下文給出一個(gè)節電的方法,首先把發(fā)光二極管的工作狀態(tài)分為以下三種:

  狀態(tài)1:鼠標在移動(dòng)并且要求以最大的精確度測出移動(dòng)信息。此狀態(tài)下,tledon=10us,tkedoff=200us,每隔10ms,鼠標信息被精確算出并發(fā)送給PC機。

  狀態(tài)2:鼠標剛剛被用過(guò)但現在不用。此狀態(tài)下tledon=10us,tledoff=25000us。當用戶(hù)再次拖動(dòng)鼠標時(shí),也不會(huì )感覺(jué)得出25000us的短延時(shí)。鼠標從狀態(tài)1進(jìn)入狀態(tài)2一般應在5ms左右,當鼠標檢測到移動(dòng)時(shí),應立刻從狀態(tài)2進(jìn)入狀態(tài)1。

  狀態(tài)3:當鼠標很長(cháng)時(shí)間沒(méi)用時(shí),進(jìn)入狀態(tài)3。此狀態(tài)下tledon=10us,tledoff=100000us。同樣,很久沒(méi)有使用之后再次拖動(dòng)鼠標時(shí),用戶(hù)感覺(jué)不出來(lái)100000us的延時(shí)。一旦檢測出鼠標被移動(dòng)時(shí),鼠標應該馬上進(jìn)入狀態(tài)1,從狀態(tài)2進(jìn)入狀態(tài)3一般要1到2分鐘。

5.2工作電流的計算

  發(fā)光二極管的工作電流是10mA。nRF9E5在工作狀態(tài)時(shí)工作電流為3mA,空閑狀態(tài)時(shí)工作電流是25uA,傳送ShockBurstTM數據包時(shí)工作電流為11mA。各個(gè)狀態(tài)時(shí)的平均電流可根據公式(1)來(lái)計算:

至于狀態(tài)1,要考慮到ShockBurstTM發(fā)射所消耗的電流。假設數據包共為124位,發(fā)射速度為1Mbit/s,則nRF9E5所用時(shí)間為124us,此外,起動(dòng)時(shí)間為202us,ShockBurstTM的工作時(shí)間加起來(lái)應該是326us。因此,可得到狀態(tài)1的平均電流算式,如式(4)

nRF9E5推薦外接晶振頻率為16MHz,當外接晶振工作頻率降低時(shí),無(wú)線(xiàn)光機鼠標的平均工作電流也會(huì )明顯降低。經(jīng)過(guò)計算,nRF9E5外接晶振是4MHz的無(wú)線(xiàn)光機鼠標的電池壽命約為外接晶振是16MHz時(shí)的1.33倍。同樣,降低nRF9E5的射頻發(fā)射速度,無(wú)線(xiàn)光機鼠標的電池壽命也會(huì )增大。

5. 結論

nRF9E5尺寸小,使用中外圍元件少,433/868/915MHz三個(gè)工作頻率,非常適合用來(lái)做無(wú)線(xiàn)光機鼠標與PC機進(jìn)行通信。nRF9E5的ShockBurstTM技術(shù),使得無(wú)線(xiàn)光機鼠標的功耗更低,設計中為節約用電而編寫(xiě)的程序更少,并且電池監管更方便。此外,nRF9E5更易于實(shí)現安全的無(wú)線(xiàn)光機鼠標信息的發(fā)送,如果設計需要,還可以擴展更多的鼠標按鍵。

參考文獻
[1] Nordic VLSI ASA Inc. 2.4Ghz RF transceiver with embedded 8051 compatible microcontroller and 9 input, 10 bit ADC[Z].2003.5
[2] Nordic VLSI ASA Inc. nRF24Ex in a wireless keyboard design[Z].2003.10
[3] http://www.vip998.com/dnfiles/dn-hwxyhsb.htm



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>