|
|||||||||||
nRF24E1 |
nRF24E1 的PDF資料下載,3171582K |
其他型號 |
| nRF24E1的供應商: |
聯(lián)系人:王先生 電話:13510086379 |
聯(lián)系人:朱先生/周艷麗 電話:0755-83266687/0755-83265028 |
聯(lián)系人:曹歡 電話:0755-83002566 |
聯(lián)系人:朱先生/李小姐 電話:0755-83325286/0755-83326422 |
|
| >>更多供應商 | |||||
基于nRF24E1無線傳輸的設計與應用
引言
隨著科技的進步,越來越多的無線技術正快速應用到各種產品中。nRF24E1是挪威Nordic公司推出的一款單片2.4GHz無線收發(fā)芯片,采用0.18 m CMOS技術制造,以增強型51為內核,9路10bitADC,采樣率可達100K,具有125個頻道,傳輸速率可達1Mbps,內置CRC校驗并支持多點通信。1.9~3.6V低功耗工作,內置電壓監(jiān)視和復位電路,多種省電模式可供選擇,待機電流僅為2 A。nRF24E1可廣泛應用于無線水表、煤氣、電表;無線智能傳感器;無線數據采集裝置;無線身份識別智能卡;無線火警探頭;無線耳機、麥克風;無線鼠標、無線鍵盤;PDA手持終端等短距離無線通信場所。
概述
nRF24E1功能介紹
nRF24E1結構框圖如圖1所示。
微處理器nRF24E1微處理器的指令系統(tǒng)與工業(yè)標準的8051相兼容,但兩者的執(zhí)行時序稍有不同。通常,nRF24E1片內微控制器、的指令周期為4到20個指令周期,而工業(yè)標準的8051為12~48個時鐘周期。nRF24E1的中斷控制器支持ADC、SPI、RF接收器1、RF接收器2、喚醒定時器、5個中斷源。nRF24E1擁有3個與8052一樣的定時器。在傳統(tǒng)的異步通信方式下,與8051兼容的UART可用作定時器1和定時器2的波特率發(fā)生器。nRF24E1的CPU集成了2個數據指針,以便于和外部RAM進行數據傳遞。晶振直接為nRF24E1的微控制器提供了時鐘來源。
nRF24E1的微控制器中有256字節(jié)的數據RAM和512字節(jié)的ROM。上電復位或經軟件初始化后,處理器自動加載ROM引導區(qū)中的代碼。用戶程序通常是在引導區(qū)的引導下,從外部串口EEPROM加載到1個4KB的RAM中,這個4KB的RAM也可作存儲數據用。如果不使用掩膜ROM(即內含的ROM),程序代碼必須從外部非易失性存儲器中加載。這時,默認的啟動引導區(qū)使用SPI接口的“通用25320”EEPROM。為了控制標準8051沒有的功能,nRF24E1增加了一些特殊功能寄存器,如RADIO(P2)、ADCCON、ADCDATAH、PWMCON、PWMDUTY、RSTREAS等。其P0和P1也和標準8051有所不同,其它大部分的SFRs均與標準8051相同。
PWM
nRF24E1有一個可編程PWM輸出,它和DIO9共同復用P0.7引腳,并可軟件編程決定PWM工作于6、7或8位。
SPI(串行外設接口)
SPI的3個口(SDI、SCK和SDO)與GPIO(DIN0、DIO0和DIO1)共同復用P1口的三個引腳(P1.0、P1.1、P1.2)。SPI硬件不產生任何片選信號,通常用GPIO位(P0口)來作為外部SPI設備的片選口。
端口邏輯
nRF24E1有1個輸入,10個輸出引腳。P0(DIO2~DIO9)和P1(DIO0、DIO1、DIN0)默認配置為GPIO(通用輸入輸出端口)。多數GPIO在程序控制下可復用,這些復用功能包括兩個外部中斷,UART RXD和TXD,一個SPI主機端口,三個定時器和PWM輸出。
RTC喚醒定時器、WTD(看門狗)和RC振蕩器
nRF24E1內有一個低功耗的RC振蕩器。該振蕩器在VDD≥1.8V時,會持續(xù)工作。RTC喚醒定時器和WTD(看門狗)是2個16位的可編程定時器,它們的工作時鐘為RC振蕩器的LP_OSC。喚醒定時器和看門狗的定時時間約為300 s~80ms,其默認值為10ms。喚醒定時器由用戶軟件控制啟動和停止?撮T狗在復位后被禁止,再次復位后才能被激活。
A/D轉換器
nRF24E1內有9通道10位ADC,線性轉換時間為每10位48個CPU指令周期。A/D轉換器可在ARFE輸入和內部1.22V的帶隙參考之間進行軟件選擇。轉換器的9個輸入可由軟件進行選擇。通道0~7可以轉換對應引腳AIN0~AIN7上的電壓值,通道8用于對nRF24E1工作電壓的監(jiān)控。A/D轉換器默認配置為10位,為滿足需要,可通過軟件使其工作于6位、8位或12位方式。
無線收發(fā)器
nRF24E1收發(fā)器通過內部并行口或內部SPI口與其他模塊進行通信,同單片射頻收發(fā)器nRF2401具有相同的功能。DuoCeiver接收器輸出的數據準備信號,可通過程序使其作為微處理器的中斷或通過GPIO口傳給CPU。nRF24E1工作于全球開放的2.4~2.5GHz頻段。收發(fā)器由1個完整的頻率合成器、1個功率放大器、1個調節(jié)器和2個接收器組成。輸出功率、頻道和其它射頻參數可通過對RADIO寄存器(SFR 0xA0)編程進行控制。發(fā)射模式下,射頻電流消耗僅為10.5mA,接收模式下為18mA。為了節(jié)能,可通過軟件程序控制收發(fā)器的開/關。
硬件設計
nRF24E1收發(fā)核心電路如圖2所示。
nRF24E1具有增強型8051內核,Keil C51支持nRF24E1開發(fā),因此利用C51開發(fā)經驗即可編出高效優(yōu)質的代碼。此程序是經Keil C51 V7.05編譯并調試通過,篇幅有限,僅列出主要功能函數。
(1)初始化程序如下:
void Init(void){
//配置I/O口
P0_ALT=0x06; // P0.1為RXD,P0.2為TXD
P0_DIR=0x09; // P0.0和P0.3設為輸入
P1_DIR=0x03; // P1.0和P1.1設為輸入
PWR_UP=1; //開Radio,讀時不用,寫時為電源
SPICLK=0; //SPI時鐘為XTAL/8
SPI_CTRL=0x02; //把SPI與收發(fā)通道1(CH1)相連
//串口通訊初始化
TH1 = 0x0F3; // 晶振為16MHz,波特率為19200(當T1M=1且SMOD=1時)
CKCON = 0x10; // T1M=1 (計數器時鐘為CPU時鐘的1/4)
PCON = 0x80; // SMOD=1 (雙倍波特率)
SCON = 0x52; // 采用串口模式1,使能接收器
TMOD = 0x20; // 使用計數器1,8位計數值自動重載
TCON = 0x40; // 啟動計數器
}
(2)接收器配置函數
void Init_Receiver(void){
unsigned char b;
CS = 1; //打開配置方式
Delay100us(0);
for(b=0;b<rconf.n;b++) //b<15
{
SpiReadWrite(rconf.buf[b]); //發(fā)送接收器配置字
}
CS = 0; // 關配置方式
CE = 1; // 使能收發(fā)功能
} (3)接收函數
void Receiver(void){
unsigned char b;
CS = 1; //打開配置模式
Delay100us(0);
for(b=0;b<rconf.n;b++){
SpiReadWrite(rconf.buf[b]); //發(fā)送接收器配置字
}
CS = 0; //關配置模式
for(;;){
b = ReceivePacket(); //接收數據包
PutChar(b); //串口通信函數,將接收到的數據通過串口傳送
}
}
(4)發(fā)送函數
void Transmitter(void){
unsigned char b;
CS = 1;
Delay100us(0);
for(b=0;b<tconf.n;b++){
SpiReadWrite(tconf.buf[b]); //發(fā)送發(fā)送器配置字
}
CS = 0;
for(;;){
b= ReadADC(); // 讀A/D轉換結果
PutChar(b);
TransmitPacket(b); // 發(fā)送數據包
}
}
此程序除了以上函數外,還有串口通訊函數、讀A/D轉換結果函數、接收包處理函數和發(fā)送包處理函數等。
結論
本設計電路簡單,易于實現(xiàn)。經實際調試應用完全可用于點對點及點對多點的無線數據傳輸,收到了良好的效果。1Mbps完全滿足一般無線傳輸的要求。若進行批量生產時可將程序寫進nRF24E1的內部RAM中,從而省去了外部串口EEPROM,節(jié)約了成本。
|
|||
|
|