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

          新聞中心

          EEPW首頁(yè) > 模擬技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于nRF24E1無(wú)線傳輸?shù)脑O(shè)計(jì)與應(yīng)用

          基于nRF24E1無(wú)線傳輸?shù)脑O(shè)計(jì)與應(yīng)用

          ——
          作者:西南石油學(xué)院 于珍珠 何志敏 梅大成 時(shí)間:2007-01-26 來(lái)源:《世界電子元器件》 收藏

          引言
          隨著科技的進(jìn)步,越來(lái)越多的無(wú)線技術(shù)正快速應(yīng)用到各種產(chǎn)品中。nrf24e1是挪威nordic公司推出的一款單片2.4ghz無(wú)線收發(fā)芯片,采用0.18 m cmos技術(shù)制造,以增強(qiáng)型51為內(nèi)核,9路10bitadc,采樣率可達(dá)100k,具有125個(gè)頻道,傳輸速率可達(dá)1mbps,內(nèi)置crc校驗(yàn)并支持多點(diǎn)通信。1.9~3.6v低功耗工作,內(nèi)置電壓監(jiān)視和復(fù)位電路,多種省電模式可供選擇,待機(jī)電流僅為2 a。nrf24e1可廣泛應(yīng)用于無(wú)線水表、煤氣、電表;無(wú)線智能傳感器;無(wú)線數(shù)據(jù)采集裝置;無(wú)線身份識(shí)別智能卡;無(wú)線火警探頭;無(wú)線耳機(jī)、麥克風(fēng);無(wú)線鼠標(biāo)、無(wú)線鍵盤;pda手持終端等短距離無(wú)線通信場(chǎng)所。

          本文引用地址:http://www.ex-cimer.com/article/20692.htm


          概述

          nrf24e1功能介紹

          nrf24e1結(jié)構(gòu)框圖如圖1所示。

          微處理器

          nrf24e1微處理器的指令系統(tǒng)與工業(yè)標(biāo)準(zhǔn)的8051相兼容,但兩者的執(zhí)行時(shí)序稍有不同。通常,nrf24e1片內(nèi)微控制器、的指令周期為4到20個(gè)指令周期,而工業(yè)標(biāo)準(zhǔn)的8051為12~48個(gè)時(shí)鐘周期。nrf24e1的中斷控制器支持adc、spi、rf接收器1、rf接收器2、喚醒定時(shí)器、5個(gè)中斷源。nrf24e1擁有3個(gè)與8052一樣的定時(shí)器。在傳統(tǒng)的異步通信方式下,與8051兼容的uart可用作定時(shí)器1和定時(shí)器2的波特率發(fā)生器。nrf24e1的cpu集成了2個(gè)數(shù)據(jù)指針,以便于和外部ram進(jìn)行數(shù)據(jù)傳遞。晶振直接為nrf24e1的微控制器提供了時(shí)鐘來(lái)源。

          nrf24e1的微控制器中有256字節(jié)的數(shù)據(jù)ram和512字節(jié)的rom。上電復(fù)位或經(jīng)軟件初始化后,處理器自動(dòng)加載rom引導(dǎo)區(qū)中的代碼。用戶程序通常是在引導(dǎo)區(qū)的引導(dǎo)下,從外部串口eeprom加載到1個(gè)4kb的ram中,這個(gè)4kb的ram也可作存儲(chǔ)數(shù)據(jù)用。如果不使用掩膜rom(即內(nèi)含的rom),程序代碼必須從外部非易失性存儲(chǔ)器中加載。這時(shí),默認(rèn)的啟動(dòng)引導(dǎo)區(qū)使用spi接口的“通用25320”eeprom。為了控制標(biāo)準(zhǔn)8051沒(méi)有的功能,nrf24e1增加了一些特殊功能寄存器,如radio(p2)、adccon、adcdatah、pwmcon、pwmduty、rstreas等。其p0和p1也和標(biāo)準(zhǔn)8051有所不同,其它大部分的sfrs均與標(biāo)準(zhǔn)8051相同。

          pwm

          nrf24e1有一個(gè)可編程pwm輸出,它和dio9共同復(fù)用p0.7引腳,并可軟件編程決定pwm工作于6、7或8位。

          spi(串行外設(shè)接口)

          spi的3個(gè)口(sdi、sck和sdo)與gpio(din0、dio0和dio1)共同復(fù)用p1口的三個(gè)引腳(p1.0、p1.1、p1.2)。spi硬件不產(chǎn)生任何片選信號(hào),通常用gpio位(p0口)來(lái)作為外部spi設(shè)備的片選口。

          端口邏輯

          nrf24e1有1個(gè)輸入,10個(gè)輸出引腳。p0(dio2~dio9)和p1(dio0、dio1、din0)默認(rèn)配置為gpio(通用輸入輸出端口)。多數(shù)gpio在程序控制下可復(fù)用,這些復(fù)用功能包括兩個(gè)外部中斷,uart rxd和txd,一個(gè)spi主機(jī)端口,三個(gè)定時(shí)器和pwm輸出。

          rtc喚醒定時(shí)器、wtd(看門狗)和rc振蕩器

          nrf24e1內(nèi)有一個(gè)低功耗的rc振蕩器。該振蕩器在vdd≥1.8v時(shí),會(huì)持續(xù)工作。rtc喚醒定時(shí)器和wtd(看門狗)是2個(gè)16位的可編程定時(shí)器,它們的工作時(shí)鐘為rc振蕩器的lp_osc。喚醒定時(shí)器和看門狗的定時(shí)時(shí)間約為300 s~80ms,其默認(rèn)值為10ms。喚醒定時(shí)器由用戶軟件控制啟動(dòng)和停止??撮T狗在復(fù)位后被禁止,再次復(fù)位后才能被激活。

          a/d轉(zhuǎn)換器

          nrf24e1內(nèi)有9通道10位adc,線性轉(zhuǎn)換時(shí)間為每10位48個(gè)cpu指令周期。a/d轉(zhuǎn)換器可在arfe輸入和內(nèi)部1.22v的帶隙參考之間進(jìn)行軟件選擇。轉(zhuǎn)換器的9個(gè)輸入可由軟件進(jìn)行選擇。通道0~7可以轉(zhuǎn)換對(duì)應(yīng)引腳ain0~ain7上的電壓值,通道8用于對(duì)nrf24e1工作電壓的監(jiān)控。a/d轉(zhuǎn)換器默認(rèn)配置為10位,為滿足需要,可通過(guò)軟件使其工作于6位、8位或12位方式。

          無(wú)線收發(fā)器

          nrf24e1收發(fā)器通過(guò)內(nèi)部并行口或內(nèi)部spi口與其他模塊進(jìn)行通信,同單片射頻收發(fā)器nrf2401具有相同的功能。duoceiver接收器輸出的數(shù)據(jù)準(zhǔn)備信號(hào),可通過(guò)程序使其作為微處理器的中斷或通過(guò)gpio口傳給cpu。nrf24e1工作于全球開放的2.4~2.5ghz頻段。收發(fā)器由1個(gè)完整的頻率合成器、1個(gè)功率放大器、1個(gè)調(diào)節(jié)器和2個(gè)接收器組成。輸出功率、頻道和其它射頻參數(shù)可通過(guò)對(duì)radio寄存器(sfr 0xa0)編程進(jìn)行控制。發(fā)射模式下,射頻電流消耗僅為10.5ma,接收模式下為18ma。為了節(jié)能,可通過(guò)軟件程序控制收發(fā)器的開/關(guān)。


          硬件設(shè)計(jì)

          nrf24e1收發(fā)核心電路如圖2所示。


          由于本設(shè)計(jì)要求pcb板越小越好而且成品要密封,所以如何供電成了這次設(shè)計(jì)的難點(diǎn)。若使用電池則有持續(xù)時(shí)間短、占用面積大和易震動(dòng)脫落等缺點(diǎn)。nrf24e1電源電壓是1.9~3.6v,且功耗很低。max2323及串口eeprom25aa320均可工作在3.0v,因此在該設(shè)計(jì)中摒棄了由電池供電的做法,而采用了從串口取電源作為整個(gè)電路的供電系統(tǒng)。其串口取電源電路如圖3所示。

          軟件設(shè)計(jì)

          nrf24e1具有增強(qiáng)型8051內(nèi)核,keil c51支持nrf24e1開發(fā),因此利用c51開發(fā)經(jīng)驗(yàn)即可編出高效優(yōu)質(zhì)的代碼。此程序是經(jīng)keil c51 v7.05編譯并調(diào)試通過(guò),篇幅有限,僅列出主要功能函數(shù)。

          (1)初始化程序如下:

          void init(void){
          //配置i/o口
          p0_alt=0x06; // p0.1為rxd,p0.2為txd
          p0_dir=0x09; // p0.0和p0.3設(shè)為輸入
          p1_dir=0x03; // p1.0和p1.1設(shè)為輸入
          pwr_up=1; //開radio,讀時(shí)不用,寫時(shí)為電源
          spiclk=0; //spi時(shí)鐘為xtal/8
          spi_ctrl=0x02; //把spi與收發(fā)通道1(ch1)相連
          //串口通訊初始化
          th1 = 0x0f3; // 晶振為16mhz,波特率為19200(當(dāng)t1m=1且smod=1時(shí))
          ckcon |= 0x10; // t1m=1 (計(jì)數(shù)器時(shí)鐘為cpu時(shí)鐘的1/4)
          pcon = 0x80; // smod=1 (雙倍波特率)
          scon = 0x52; // 采用串口模式1,使能接收器
          tmod = 0x20; // 使用計(jì)數(shù)器1,8位計(jì)數(shù)值自動(dòng)重載
          tcon = 0x40; // 啟動(dòng)計(jì)數(shù)器
          }
          (2)接收器配置函數(shù)

          void init_receiver(void){
          unsigned char b;
          cs = 1; //打開配置方式
          delay100us(0);
          for(b=0;b {
          spireadwrite(rconf.buf[b]); //發(fā)送接收器配置字
          }
          cs = 0; // 關(guān)配置方式
          ce = 1; // 使能收發(fā)功能
          } (3)接收函數(shù)
          void receiver(void){
          unsigned char b;
          cs = 1; //打開配置模式
          delay100us(0);
          for(b=0;b spireadwrite(rconf.buf[b]); //發(fā)送接收器配置字
          }
          cs = 0; //關(guān)配置模式
          for(;;){
          b = receivepacket(); //接收數(shù)據(jù)包
          putchar(b); //串口通信函數(shù),將接收到的數(shù)據(jù)通過(guò)串口傳送
          }
          }

          (4)發(fā)送函數(shù)

          void transmitter(void){
          unsigned char b;
          cs = 1;
          delay100us(0);
          for(b=0;b spireadwrite(tconf.buf[b]); //發(fā)送發(fā)送器配置字
          }
          cs = 0;
          for(;;){
          b= readadc(); // 讀a/d轉(zhuǎn)換結(jié)果
          putchar(b);
          transmitpacket(b); // 發(fā)送數(shù)據(jù)包
          }
          }

          此程序除了以上函數(shù)外,還有串口通訊函數(shù)、讀a/d轉(zhuǎn)換結(jié)果函數(shù)、接收包處理函數(shù)和發(fā)送包處理函數(shù)等。


          結(jié)論

          本設(shè)計(jì)電路簡(jiǎn)單,易于實(shí)現(xiàn)。經(jīng)實(shí)際調(diào)試應(yīng)用完全可用于點(diǎn)對(duì)點(diǎn)及點(diǎn)對(duì)多點(diǎn)的無(wú)線數(shù)據(jù)傳輸,收到了良好的效果。1mbps完全滿足一般無(wú)線傳輸?shù)囊?。若進(jìn)行批量生產(chǎn)時(shí)可將程序?qū)戇M(jìn)nrf24e1的內(nèi)部ram中,從而省去了外部串口eeprom,節(jié)約了成本。



          關(guān)鍵詞:

          評(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); })();