www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 嵌入式 > 嵌入式教程
[導(dǎo)讀]基于nRF24E1無線傳輸?shù)脑O(shè)計與應(yīng)用

引言

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

概述

nRF24E1功能介紹

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

微處理器

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

nRF24E1的微控制器中有256字節(jié)的數(shù)據(jù)RAM和512字節(jié)的ROM。上電復(fù)位或經(jīng)軟件初始化后,處理器自動加載ROM引導(dǎo)區(qū)中的代碼。用戶程序通常是在引導(dǎo)區(qū)的引導(dǎo)下,從外部串口EEPROM加載到1個4KB的RAM中,這個4KB的RAM也可作存儲數(shù)據(jù)用。如果不使用掩膜ROM(即內(nèi)含的ROM),程序代碼必須從外部非易失性存儲器中加載。這時,默認(rèn)的啟動引導(dǎo)區(qū)使用SPI接口的“通用25320”EEPROM。為了控制標(biāo)準(zhǔn)8051沒有的功能,nRF24E1增加了一些特殊功能寄存器,如RADIO(P2)、ADCCON、ADCDATAH、PWMCON、PWMDUTY、RSTREAS等。其P0和P1也和標(biāo)準(zhǔn)8051有所不同,其它大部分的SFRs均與標(biāo)準(zhǔn)8051相同。

PWM

nRF24E1有一個可編程PWM輸出,它和DIO9共同復(fù)用P0.7引腳,并可軟件編程決定PWM工作于6、7或8位。

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

SPI的3個口(SDI、SCK和SDO)與GPIO(DIN0、DIO0和DIO1)共同復(fù)用P1口的三個引腳(P1.0、P1.1、P1.2)。SPI硬件不產(chǎn)生任何片選信號,通常用GPIO位(P0口)來作為外部SPI設(shè)備的片選口。

端口邏輯

nRF24E1有1個輸入,10個輸出引腳。P0(DIO2~DIO9)和P1(DIO0、DIO1、DIN0)默認(rèn)配置為GPIO(通用輸入輸出端口)。多數(shù)GPIO在程序控制下可復(fù)用,這些復(fù)用功能包括兩個外部中斷,UARTRXD和TXD,一個SPI主機端口,三個定時器和PWM輸出。

RTC喚醒定時器、WTD(看門狗)和RC振蕩器

nRF24E1內(nèi)有一個低功耗的RC振蕩器。該振蕩器在VDD≥1.8V時,會持續(xù)工作。RTC喚醒定時器和WTD(看門狗)是2個16位的可編程定時器,它們的工作時鐘為RC振蕩器的LP_OSC。喚醒定時器和看門狗的定時時間約為300s~80ms,其默認(rèn)值為10ms。喚醒定時器由用戶軟件控制啟動和停止??撮T狗在復(fù)位后被禁止,再次復(fù)位后才能被激活。

A/D轉(zhuǎn)換器

nRF24E1內(nèi)有9通道10位ADC,線性轉(zhuǎn)換時間為每10位48個CPU指令周期。A/D轉(zhuǎn)換器可在ARFE輸入和內(nèi)部1.22V的帶隙參考之間進行軟件選擇。轉(zhuǎn)換器的9個輸入可由軟件進行選擇。通道0~7可以轉(zhuǎn)換對應(yīng)引腳AIN0~AIN7上的電壓值,通道8用于對nRF24E1工作電壓的監(jiān)控。A/D轉(zhuǎn)換器默認(rèn)配置為10位,為滿足需要,可通過軟件使其工作于6位、8位或12位方式。

無線收發(fā)器

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

硬件設(shè)計

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

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

軟件設(shè)計

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

(1)初始化程序如下:

voidInit(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,讀時不用,寫時為電源

SPICLK=0;//SPI時鐘為XTAL/8

SPI_CTRL=0x02;//把SPI與收發(fā)通道1(CH1)相連

//串口通訊初始化

TH1=0x0F3;//晶振為16MHz,波特率為19200(當(dāng)T1M=1且SMOD=1時)

CKCON|=0x10;//T1M=1(計數(shù)器時鐘為CPU時鐘的1/4)

PCON=0x80;//SMOD=1(雙倍波特率)

SCON=0x52;//采用串口模式1,使能接收器

TMOD=0x20;//使用計數(shù)器1,8位計數(shù)值自動重載

TCON=0x40;//啟動計數(shù)器

}

(2)接收器配置函數(shù)

[!--empirenews.page--]

voidInit_Receiver(void){

unsignedcharb;

CS=1;//打開配置方式

Delay100us(0);

for(b=0;b

{

SpiReadWrite(rconf.buf[b]);//發(fā)送接收器配置字

}

CS=0;//關(guān)配置方式

CE=1;//使能收發(fā)功能

}(3)接收函數(shù)

voidReceiver(void){

unsignedcharb;

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ù)通過串口傳送

}

}

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

voidTransmitter(void){

unsignedcharb;

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è)計電路簡單,易于實現(xiàn)。經(jīng)實際調(diào)試應(yīng)用完全可用于點對點及點對多點的無線數(shù)據(jù)傳輸,收到了良好的效果。1Mbps完全滿足一般無線傳輸的要求。若進行批量生產(chǎn)時可將程序?qū)戇MnRF24E1的內(nèi)部RAM中,從而省去了外部串口EEPROM,節(jié)約了成本。

 

 

 

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

上海2025年7月21日 /美通社/ -- 本文圍繞跨域時間同步技術(shù)展開,作為智能汽車 "感知-決策-執(zhí)行 -交互" 全鏈路的時間基準(zhǔn),文章介紹了 PTP、gPTP、CAN 等主流同步技術(shù)及特點,并以...

關(guān)鍵字: 時鐘 時間同步 同步技術(shù) 智能汽車

只要FPGA設(shè)計中的所有資源不全屬于一個時鐘域,那么就可能存在跨時鐘域問題,因為異步邏輯其實也可以看做一種特殊的跨時鐘域問題。

關(guān)鍵字: FPGA 時鐘

北京——2024年10月29日 亞馬遜云科技日前宣布,通過與光環(huán)新網(wǎng)與西云數(shù)據(jù)的緊密合作,在亞馬遜云科技(北京)區(qū)域和(寧夏)區(qū)域推出Amazon Lambda SnapStart功能,將基于Java Lambda函數(shù)的...

關(guān)鍵字: 函數(shù) 數(shù)據(jù)處理

北京2024年10月29日 /美通社/ -- 亞馬遜云科技日前宣布,通過與光環(huán)新網(wǎng)與西云數(shù)據(jù)的緊密合作,在亞馬遜云科技(北京)區(qū)域和(寧夏)區(qū)域推出Amazon Lambda SnapStart功能,將基于Java La...

關(guān)鍵字: START 亞馬遜 PS 函數(shù)

關(guān)于數(shù)據(jù)分析與可視化,以下介紹Pandas讀取數(shù)據(jù)以及保存數(shù)據(jù)的方法,畢竟我們很多時候需要讀取各種形式的數(shù)據(jù),以及將我們需要將所做的統(tǒng)計分析保存成特定的格式。

關(guān)鍵字: 函數(shù) Panda

深圳2024年8月15日 /美通社/ -- 近日,知名量化交易平臺水母量化正式推出了突破性的輪動交易策略回測功能,目前已進入公測階段。該功能實現(xiàn)了從策略設(shè)計、歷史回測到實盤自動交易一體化流程,幫用戶解決了策略驗證難、交易...

關(guān)鍵字: 編程 仿真 函數(shù) 開源

在Xilinx FPGA的DDR3設(shè)計中,時鐘系統(tǒng)扮演著至關(guān)重要的角色。它不僅決定了DDR3存儲器的數(shù)據(jù)傳輸速率,還直接影響到FPGA與DDR3存儲器之間數(shù)據(jù)交換的穩(wěn)定性和效率。本文將詳細(xì)介紹Xilinx FPGA DD...

關(guān)鍵字: Xilinx FPGA DDR3 時鐘

TimeProvider 4100主時鐘的附件,可擴展至200 個完全冗余的T1、E1 或CC同步輸出端

關(guān)鍵字: 5G網(wǎng)絡(luò) 時鐘

Holtek針對無線通信領(lǐng)域新推出Arm? Cortex?-M0+為核心的2.4GHz Transceiver MCU HT32F67041/HT32F67051。具備32-bit MCU核心提供優(yōu)勢運算效能及豐富外圍資...

關(guān)鍵字: MCU 安防 無線傳輸

Python由荷蘭數(shù)學(xué)和計算機科學(xué)研究學(xué)會的吉多·范羅蘇姆于1990年代初設(shè)計,作為一門叫做ABC語言的替代品。 Python提供了高效的高級數(shù)據(jù)結(jié)構(gòu),還能簡單有效地面向?qū)ο缶幊獭?/p> 關(guān)鍵字: python 函數(shù) 對象編程

關(guān)閉