基于2.4 GHz射頻通信的多功能鼠標設(shè)計
待機模式1(Standby-I)主要用于降低電流損耗(在該模式下,晶體振蕩器仍然工作)。待機模式2(Standby-II)是當FIFO寄存器為空且CE=1時進入此模式。待機模式下,所有配置字仍然保留。在掉電模式(Power Down)下電流損耗最小,同時nRF24L01也不工作,但其所有配置寄存器的值仍然保留。
無線發(fā)射部分上電初始化時,進行了如下配置:
①CONFIG寄存器的低4位置1,分別為16位CRC校驗,芯片上電和接收模式;
②SETUP_AW(地址寬度)寄存器配置地址寬度為5字節(jié);
③SETUP_RETR(自動重發(fā))寄存器配置為自動重發(fā)延時500μs,重發(fā)5次;
④RF_CH(RF頻道)寄存器配置為工作頻道2400MHz;
⑤RF_SETUP(RF設(shè)置)寄存器配置為發(fā)射功率O dBm,Air Data Rate為1 MHz;
⑥將地址寫入地址寄存器。
在配置寄存器時應(yīng)注意一點:在寫nRF24L01的寄存器時,它必須工作在掉電模式或待機模式。而在nRF24L01上電達到l.9 V以后,要經(jīng)過10.3 ms的上電復(fù)位然后再進入掉電模式。這是一個不確定狀態(tài)。在此狀態(tài)下,對寄存器的寫操作是無法完成的,因此必須加上一個合適的延時,使程序?qū)RF24L01的配置操作在掉電模式或待機模式下進行。
當光傳感器或按鍵等有操作時,主控制器將讀入的信號寫入nRF24L01的TX_PLD,然后由芯片自動生成報頭和CRC校驗碼,并發(fā)送出去。當收到應(yīng)答信號(ACK)后,程序中所設(shè)置的標志位success置1,清除TX FIFO隊列中的數(shù)據(jù),可以進行下一次數(shù)據(jù)的寫入了;若未收到應(yīng)答信號(ACK),則標志位success置O,繼續(xù)重發(fā),且新的數(shù)據(jù)無法寫入。
2.3 讀光傳感器位移值
讀光傳感器的位移值,其實就是讀它對應(yīng)的寄存器。在ADNS-5030的內(nèi)部寄存器中,地址為Ox02的Motion寄存器用于表示是否有位移。其最高位若為O,則無位移;最高位若為1,則有位移。另外,使用到的兩個寄存器的地址是Ox03和Ox04的DeltaX和DeltaY。這兩個寄存器的值分別表示X軸和Y軸方向上的位移。最高位表示位移的方向,1為負方向,O為正方向,低7位表示位移量。
如圖5所示,首先判斷是否有位移,即Motion的最高位是否為1。若不為1,則表示沒有位移,本次查詢結(jié)束;若為1,則表示有位移,然后再去讀DeltaX和DeltaY的值,并將其通過無線發(fā)射部分發(fā)送出去。
讀DeltaX、DeltaY寄存器后,寄存器中的值自動清零,但是Motion寄存器讀后不清零,所以最后需要對Motion寄存器的最高位進行清零,以防止在沒有位移的情況下,系統(tǒng)也對DeltaX、DeltaY寄存器進行掃描,造成不必要的浪費。
另一個需考慮的地方是光傳感器的分辨率。在上電復(fù)位后,光傳感器的分辨率為默認的500cpi(cells perinch),但是實驗效果并不好。在調(diào)試時,其位移并不明顯,后來修改寄存器的值,將其分辨率改為1 000 cpi(只有500 cpi和1 000 cpi兩種分辨率),光標的位移效果明顯好于分辨率為,500 cpi時的效果。由此可見,光傳感器的這一屬性也是相當重要的。
2.4 讀按鍵與鍵盤
左右鍵的沒計與普通按鍵的設(shè)計稍有不同。使用鼠標時可以看到,在按下左鍵同時拖動鼠標時,可以選中光標移動范圍內(nèi)的選項;同樣,右鍵也具有這樣的功能。
在左右鍵的掃描程序中,當程序掃描到有鍵按下時(例如左鍵按下),立刻將所得到的鍵值發(fā)送出去,這時,接收端的左鍵值一直是處于按下狀態(tài)的,同時也不耽誤光傳感器等的掃描;當左鍵抬起時,再向接收端發(fā)送按鍵抬起的指令,一次左右鍵的掃描就完成了。這樣就可以實現(xiàn)在按下左鍵同時拖動鼠標時,選中光標移動范圍內(nèi)選項的操作了。
上下鍵與左鍵和右鍵的操作方式不同。在上下鍵的掃描程序中還應(yīng)考慮點動和連動這兩種不同的情況。點動即為在一定時間內(nèi)快速按下一個按鍵,然后立即釋放;而按下一個鍵并延時一段時間再釋放,則程序?qū)⑵渥R別為連動。
鍵盤部分設(shè)置了20個鍵,是一個5×4的矩陣,包括“O~9”10個數(shù)字鍵,“上、下、左、右”4個方向鍵,“←”鍵,“確定”鍵,“Esc”鍵以及3個快捷鍵(“顯示桌面”、“瀏覽器”和“我的電腦”)。其中“0~9”10個數(shù)字鍵是復(fù)用鍵,像手機鍵盤一樣,根據(jù)一定時間內(nèi)連擊次數(shù)的不同,可以輸入不同的鍵值。
結(jié)語
本文所涉及的硬件均在實際中調(diào)試通過。實驗證明,MSP430系列單片機成本較低,在低功耗產(chǎn)品中的應(yīng)用極為廣泛,將會得到廣大開發(fā)人員的認同。本系統(tǒng)已實現(xiàn)鼠標和手機鍵盤結(jié)合的基本功能,以后仍可以對其功能進行補充,完善多功能無線鼠標的性能。
評論