<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

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

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

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


          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所列。



          待機(jī)模式1(Standby-I)主要用于降低電流損耗(在該模式下,晶體振蕩器仍然工作)。待機(jī)模式2(Standby-II)是當(dāng)FIFO寄存器為空且CE=1時(shí)進(jìn)入此模式。待機(jī)模式下,所有配置字仍然保留。在掉電模式(PowerDown)下電流損耗最小,同時(shí)nRF24L01也不工作,但其所有配置寄存器的值仍然保留。

          無(wú)線發(fā)射部分上電初始化時(shí),進(jìn)行了如下配置:

          ①CONFIG寄存器的低4位置1,分別為16位CRC校驗(yàn),芯片上電和接收模式;

          ②SETUP_AW(地址寬度)寄存器配置地址寬度為5字節(jié);

          ③SETUP_RETR(自動(dòng)重發(fā))寄存器配置為自動(dòng)重發(fā)延時(shí)500μs,重發(fā)5次;

          ④RF_CH(RF頻道)寄存器配置為工作頻道2 400MHz;

          ⑤RF_SETUP(RF設(shè)置)寄存器配置為發(fā)射功率0 dBm,Air Data Rate為1 MHz;

          ⑥將地址寫(xiě)入地址寄存器。

          在配置寄存器時(shí)應(yīng)注意一點(diǎn):在寫(xiě)nRF24L01的寄存器時(shí),它必須工作在掉電模式或待機(jī)模式。而在nRF24L01上電達(dá)到1.9 V以后,要經(jīng)過(guò)10.3 ms的上電復(fù)位然后再進(jìn)入掉電模式。這是一個(gè)不確定狀態(tài)。在此狀態(tài)下,對(duì)寄存器的寫(xiě)操作是無(wú)法完成的,因此必須加上一個(gè)合適的延時(shí),使程序?qū)RF24L01的配置操作在掉電模式或待機(jī)模式下進(jìn)行。

          當(dāng)光傳感器或按鍵等有操作時(shí),主控制器將讀入的信號(hào)寫(xiě)入nRF24L01的TX_PLD,然后由芯片自動(dòng)生成報(bào)頭和CRC校驗(yàn)碼,并發(fā)送出去。當(dāng)收到應(yīng)答信號(hào)(ACK)后,程序中所設(shè)置的標(biāo)志位success置1,清除TX FIFO隊(duì)列中的數(shù)據(jù),可以進(jìn)行下一次數(shù)據(jù)的寫(xiě)入了;若未收到應(yīng)答信號(hào)(ACK),則標(biāo)志位success置0,繼續(xù)重發(fā),且新的數(shù)據(jù)無(wú)法寫(xiě)入。

          2.3 讀光傳感器位移值

          讀光傳感器的位移值,其實(shí)就是讀它對(duì)應(yīng)的寄存器。在ADNS-5030的內(nèi)部寄存器中,地址為0x02的Motion寄存器用于表示是否有位移。其最高位若為0,則無(wú)位移;最高位若為1,則有位移。另外,使用到的兩個(gè)寄存器的地址是0x03和Ox04的DeltaX和DeltaY。這兩個(gè)寄存器的值分別表示X軸和Y軸方向上的位移。最高位表示位移的方向,1為負(fù)方向,0為正方向,低7位表示位移量。


          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();