新聞中心

EEPW首頁(yè) > 手機(jī)與無(wú)線通信 > 設(shè)計(jì)應(yīng)用 > 基于2.4 GHz射頻通信的多功能鼠標(biāo)設(shè)計(jì)

基于2.4 GHz射頻通信的多功能鼠標(biāo)設(shè)計(jì)

作者: 時(shí)間:2010-06-25 來(lái)源:網(wǎng)絡(luò) 收藏


1.2 電源管理
手持系統(tǒng)對(duì)低功耗有較嚴(yán)格的要求。MSP430系列單片機(jī)有5種低功耗模式。在一定時(shí)間內(nèi)無(wú)操作的情況下,可以使其進(jìn)入某一種低功耗模式,這時(shí)的工作電流可以控制在十幾μA以下。
對(duì)于外圍器件,如光傳感器和無(wú)線發(fā)射部分,設(shè)置了一個(gè)開(kāi)關(guān),在主控芯片進(jìn)入低功耗模式之前先切斷它們的電源,使系統(tǒng)的功耗進(jìn)一步降低。而在有操作到來(lái)的時(shí)候,主控芯片從低功耗模式返回到活躍模式,首先將外圍器件的電源開(kāi)關(guān)打開(kāi),這樣可以保證系統(tǒng)正常工作。低功耗電源控制電路如圖3所示。開(kāi)關(guān)由一個(gè)PNP型的晶體管構(gòu)成,基極作為控制信號(hào)的輸入,發(fā)射極為電壓輸入,集電極為電壓輸出??刂菩盘?hào)的電平變化可以控制線路上電源的通斷。


1.3 光傳感器部分
光傳感器ADNS-5030用于的定位。ADNS-5030的正常工作電壓為3.3 V,在光傳感器的中需要將電池供電輸出的3.O V電壓轉(zhuǎn)換成其所需要的3.3 V電壓。電路采用HT7733芯片來(lái)完成電壓的轉(zhuǎn)換。ADNS-5030通過(guò)SPI總線與主控芯片進(jìn)行數(shù)據(jù),其連接方式如圖4所示。


1.4 按鍵與鍵盤(pán)
無(wú)線的按鍵與普通的按鍵功能基本相同,只是將普通鼠標(biāo)的滾輪(wheel)改成了上下鍵的。這兩種的功能是相同的。鍵盤(pán)用于阿拉伯?dāng)?shù)字、字母以及各種功能鍵的輸入。采用矩陣式的手機(jī)鍵盤(pán),節(jié)省了主控芯片的I/O口資源。

2 軟件部分設(shè)計(jì)
2.1 通用I/O模擬SPl接口
無(wú)線發(fā)射芯片nRF24L01和光傳感器ADNS-5030均是采用SPI總線與主控芯片進(jìn)行數(shù)據(jù)交換的。出于成本考慮,本設(shè)計(jì)所選用的主控芯片MSP430F413內(nèi)部沒(méi)有SPI總線接口,因此,需要用通用I/O口來(lái)模擬SPI接口。
用通用I/O口來(lái)模擬SPI串行接口,必須嚴(yán)格遵守器件SPI的總線時(shí)序。ADNS-5030的SPI總線時(shí)序有幾個(gè)需要注意的地方:一是SPI總線的串行時(shí)鐘頻率應(yīng)小于1 MHz,若SPI總線的時(shí)鐘頻率過(guò)高,器件無(wú)法在短時(shí)間內(nèi)作出響應(yīng),相應(yīng)的操作也就無(wú)法完成;二是ADNS-5030對(duì)SPI總線上的時(shí)鐘信號(hào)要求50%的占空比,這種要求并不是針對(duì)所有器件的,但對(duì)具體提出這種要求的個(gè)例,就必須遵循了(實(shí)驗(yàn)證明這個(gè)結(jié)論是正確的,筆者通過(guò)在程序中加空指令的方式來(lái)填補(bǔ)空缺,使其占空比達(dá)到器件的要求);三是SPI總線操作中有許多必要的延時(shí),如讀操作中寫(xiě)地址和讀數(shù)據(jù)之間需要4 μs的延時(shí),程序中若無(wú)該延時(shí),就不能執(zhí)行正常的讀寫(xiě)操作。
2.2 無(wú)線發(fā)射部分
nRF24L01的工作原理如下:發(fā)射數(shù)據(jù)時(shí),首先將nRF24L01配置為發(fā)射模式,接著把接收節(jié)點(diǎn)地址TX_ADDR和有效數(shù)據(jù)TX_PLD按照時(shí)序由SPI口寫(xiě)入nRF24L01緩存區(qū)。TX_PLD必須在CSN為低時(shí)連續(xù)寫(xiě)入,而TX_ADDR在發(fā)射時(shí)寫(xiě)入一次即可。然后,CE置為高電平并保持至少10μs,延遲130μs后發(fā)射數(shù)據(jù)。若自動(dòng)應(yīng)答開(kāi)啟,那么nRF24L01在發(fā)射數(shù)據(jù)后立即進(jìn)入接收模式,接收應(yīng)答信號(hào)(自動(dòng)應(yīng)答接收地址應(yīng)該與接收節(jié)點(diǎn)地址TX_ADDR一致)。如果收到應(yīng)答,則認(rèn)為此次成功,TX_DS置高,同時(shí)TX_PLD從TX_FIFO中清除;若未收到應(yīng)答,則自動(dòng)重新發(fā)射該數(shù)據(jù)(自動(dòng)重發(fā)已開(kāi)啟),若重發(fā)次數(shù)(ARC)達(dá)到上限,MAX_RT置高,TXFIFO中數(shù)據(jù)保留以便再次重發(fā)。MAX_RT或TX_DS置高時(shí),使IRQ變低,產(chǎn)生中斷,通知MCU。發(fā)射成功時(shí),若CE為低,則nRF24L01進(jìn)入待機(jī)模式1;若發(fā)送堆棧中有數(shù)據(jù)且CE為高,則進(jìn)入下一次發(fā)射;若發(fā)送堆棧中無(wú)數(shù)據(jù)且CE為高,則進(jìn)入待機(jī)模式2。
接收數(shù)據(jù)時(shí),首先將nRF24L01配置為接收模式,接著延遲130μs進(jìn)入接收狀態(tài)等待數(shù)據(jù)的到來(lái)。當(dāng)接收方檢測(cè)到有效的地址和CRC時(shí),就將數(shù)據(jù)包存儲(chǔ)在RXFIFO中,同時(shí)中斷標(biāo)志位RX_DR置高,IRQ變低,產(chǎn)生中斷,通知MCU取數(shù)據(jù)。若此時(shí)自動(dòng)應(yīng)答開(kāi)啟,接收方則同時(shí)進(jìn)入發(fā)射狀態(tài)回傳應(yīng)答信號(hào)。接收成功時(shí),若CE變低,則nRF24L01進(jìn)入待機(jī)模式1。
nRF24L01有發(fā)射、接收、待機(jī)和掉電4種工作模式,可以通過(guò)配置寄存器來(lái)設(shè)置其工作狀態(tài),如表1所列。

電能表相關(guān)文章:電能表原理


評(píng)論


相關(guān)推薦

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

關(guān)閉