兼容RS-232的點(diǎn)對(duì)點(diǎn)無(wú)線接口設(shè)計(jì)
圖3 程序流程圖
程序流程圖如圖3所示。
nRF2401具有144位狀態(tài)字。控制器將nRF2401設(shè)置為配置方式,然后由通道1向nRF2401寫(xiě)入狀態(tài)字的配置值,寫(xiě)時(shí)高位在前。配置方式下控制器寫(xiě)狀態(tài)字的過(guò)程與激活方式下向nRF2401寫(xiě)入數(shù)據(jù)的過(guò)程完全相同,都經(jīng)由CLK、DR和DATA組成的三線接口完成。
在配置模式下,將nRF2401配置為ShockBurstTM收發(fā)模式,該模式下使nRF2401能夠處理射頻協(xié)議,在配置完成后,在nRF2401工作過(guò)程中,只需改變其最低一字節(jié)中的內(nèi)容,以實(shí)現(xiàn)接收模式和發(fā)送模式的轉(zhuǎn)換。ShockBurstTM的配置字由數(shù)據(jù)寬度、地址寬度、地址和CRC四部分組成。
程序中對(duì)狀態(tài)字后的120位進(jìn)行配置,其值為0x20 4000 DDDDDD DD 00CC CCCC CC83 6E05。配置后nRF2401的通道1數(shù)據(jù)段長(zhǎng)度為8字節(jié),地址段長(zhǎng)度為32位,通道1硬件地址為0x CCCCCCCC,使能16位CRC校驗(yàn),單通道接收,工作于突發(fā)傳遞模式下,通信速率為1Mb/s,晶振頻率為16MHz,輸出功率-5dbm,工作頻段為2402MHz。
?、侔l(fā)送、接收數(shù)據(jù)的程序設(shè)計(jì)
void ShockBurstTrans(){
unsigned char ByteNum;
MODE_RT;
Delay202();
for(ByteNum=0;ByteNum14;ByteNum++)
WriteTo2401(TXData[i]);
CE=0;
DATA=0;
}
數(shù)據(jù)接收設(shè)置為中斷服務(wù)程序方式。中斷服務(wù)程序如下:
void ReceiveShock()interrupt 0 using 3{
unsigned char ByteNum;
DATA=1;
for(ByteNum=0;
ByteNum8;ByteNum++)
RXData[ByteNum]=ReadFrom2401();
}
?、?串行口程序設(shè)計(jì)
采用中斷方式進(jìn)行串口管理。串行通信中對(duì)數(shù)據(jù)流的處理采用突發(fā)處理方式。針對(duì)RAM空間有限的情況,利用軟件模擬FIFO寄存器結(jié)構(gòu)。
串口的接收和發(fā)送工作是相對(duì)獨(dú)立的,構(gòu)建兩個(gè)環(huán)形緩沖區(qū)來(lái)實(shí)現(xiàn)具有FIFO功能的緩沖區(qū)隊(duì)列。每一個(gè)環(huán)形緩沖區(qū)都對(duì)應(yīng)有寫(xiě)入(Ptr_Wr)和讀出(Ptr_ Rd)兩個(gè)指針,從寫(xiě)指針到讀指針之間的相對(duì)區(qū)域存儲(chǔ)的是待發(fā)送或已接收的數(shù)據(jù),兩個(gè)指針的前后次序通過(guò)標(biāo)志位(bFlag_Order)判別,當(dāng)它們的位置重合時(shí)則表示沒(méi)有有效數(shù)據(jù)。讀寫(xiě)指針相對(duì)位置與存儲(chǔ)的數(shù)據(jù)之間的關(guān)系如圖4所示。陰影部分表示有效數(shù)據(jù)。
圖4 讀寫(xiě)指針相對(duì)位置與存儲(chǔ)數(shù)據(jù)之間的關(guān)系示意圖
結(jié)論
隨著Internet的飛速發(fā)展,從WAN到MAN,再到LAN、PAN,這些技術(shù)已逐漸成熟。無(wú)線網(wǎng)絡(luò)在各類網(wǎng)絡(luò)中最具增長(zhǎng)潛力。由于各種無(wú)線標(biāo)準(zhǔn)自身的技術(shù)也有待于不斷完善和提高,無(wú)線技術(shù)的應(yīng)用還有很大的市場(chǎng)空間。
nRF2401是一款性價(jià)比很高的單片無(wú)線收發(fā)芯片,利用AT89S52和nRF2401芯片設(shè)計(jì)的無(wú)線數(shù)據(jù)傳輸系統(tǒng),成本低,體積小,應(yīng)用靈活,具有良好的通用性和可靠性。通過(guò)調(diào)試結(jié)果表明,nRF2401芯片可以與微控制器連接實(shí)現(xiàn)無(wú)線數(shù)據(jù)通信,進(jìn)而實(shí)現(xiàn)了PC之間的無(wú)線通信,并且通信質(zhì)量可靠穩(wěn)定。
評(píng)論