兼容RS-232的點(diǎn)對點(diǎn)無線接口設(shè)計(圖)
本文設(shè)計了基于RF芯片nRF2401的兼容RS-232的無線數(shù)傳模塊,給出了系統(tǒng)的硬件電路及相關(guān)軟件設(shè)計的解決方案。
前言
隨著通信、信息技術(shù)和微電子技術(shù)的飛速發(fā)展,短距離無線通信的應(yīng)用步伐不斷加快。在短距離無線數(shù)據(jù)通信中,目前最為成熟的三個標(biāo)準(zhǔn)是:Bluetooth, 802.11(Wi_Fi)和IrDA。RFID和UWB憑借其獨(dú)有的特點(diǎn)成為短距離無線數(shù)據(jù)傳輸技術(shù)的后起之秀。
RS-232接口標(biāo)準(zhǔn)是一種廣泛的普及標(biāo)準(zhǔn),但此標(biāo)準(zhǔn)推出較早,在現(xiàn)代金融、保險、電信和電子化網(wǎng)絡(luò)中已暴露出明顯的問題:信號線易受外界干擾;RS-232采取不平衡傳輸方式,其共模抑制能力差,再加上雙絞線上的分布電容,其傳送距離最大約為15m。由于上述問題的存在,導(dǎo)致RS-232串口數(shù)據(jù)線對電壓浪涌特別敏感。目前,非交流電源線路的浪涌所引起的損害占據(jù)全部浪涌損害的一大部分。其后果是:硬件損壞、數(shù)據(jù)丟失、通信中斷以及由此引起停機(jī)。
為了改進(jìn)RS-232通信距離短、易受外界干擾的缺點(diǎn)和滿足PC系統(tǒng)需要增加無線數(shù)據(jù)傳輸功能的需要,設(shè)計了基于RF芯片nRF2401的兼容RS232的無線數(shù)傳模塊。
系統(tǒng)設(shè)計
nRF2401采用 5mm5mm的24引腳QFN封裝,具有突發(fā)傳遞和直接傳遞兩種工作模式。突發(fā)傳遞模式以低速率向nRF2401寫入待發(fā)數(shù)據(jù),以高速率無線傳輸,盡量降低功耗。直接傳遞模式與傳統(tǒng)RF器件工作模式一致。
圖1 TTL/ RS232的邏輯電平轉(zhuǎn)換電路
nRF2401的主要特點(diǎn):
● 全球開放的2.4GHz頻段,125個頻道,滿足多頻及跳頻需要。
● 高速率( 1Mb/s),優(yōu)于藍(lán)牙技術(shù)。
● 外圍元件極少,電壓范圍為1.9~3.6V,電流消耗很小,功耗很低。
● 發(fā)射功率和工作頻率等所有工作參數(shù)可全部通過軟件設(shè)置。
● 芯片內(nèi)部設(shè)有專門的穩(wěn)壓電路,且無須外部SAW濾波器。
● 獨(dú)特設(shè)計:采用DuoCeiver 技術(shù)可同時接收兩個nRF2401的數(shù)據(jù)。
● 可通過軟件設(shè)置最多40位地址,且只有收到本機(jī)地址時才會輸出數(shù)據(jù)。
● 內(nèi)置CRC校驗硬件電路和協(xié)議,有數(shù)據(jù)時隙和數(shù)據(jù)時鐘恢復(fù)功能。
1 nRF2401的高頻頭設(shè)計
nRF2401芯片以及其外圍元件電路組成了發(fā)送接收模塊??紤]到電磁兼容性,nRF2401的應(yīng)用電路單獨(dú)做成一塊PCB。高頻模塊使用雙層PCB,PCB設(shè)計中大量使用過孔,使頂層和底層的地充分接觸,PCB的空余部分大面積連續(xù)接地。
圖2 MCU與nRF2401的直連方式
2 接口電路設(shè)計
RS232信號在正負(fù)電平之間擺動。發(fā)送數(shù)據(jù)時,發(fā)送端驅(qū)動器輸出正電平在+5~+15V,負(fù)電平在-5~-15V。從開始傳送數(shù)據(jù)到結(jié)束,線上電平從TTL電平到RS-232電平再返回TTL電平。接收器典型的工作電平在+3~+12V與-3~-12V。選用MAX3232芯片作TTL/ RS232的邏輯電平轉(zhuǎn)換。圖1為TTL/ RS232邏輯電平轉(zhuǎn)換的原理圖電路。其中C16、C20使用1uF獨(dú)石電容,C17、C19使用0.1μF獨(dú)石電容。
MCU與nRF2401的連接采用I/O口直接連接方式。原理圖如圖2所示。連接電路中采用電阻分壓網(wǎng)絡(luò)來實現(xiàn)AT89S52與 nRF2401的數(shù)據(jù)交互。
3 軟件設(shè)計
nRF2401的ShockBurstTM RX/TX模式采用片上 FIFO來進(jìn)行低數(shù)據(jù)率的時鐘同步和高數(shù)據(jù)率的傳輸,因此極大地降低了功耗。ShockBurstTM發(fā)射主要通過MCU接口引腳CE、CLK1和DATA來完成。當(dāng)MCU請求發(fā)送數(shù)據(jù)時,置CE為高電平,此時的接收機(jī)地址和有效載荷數(shù)據(jù)作為nRF2401的內(nèi)部時鐘,可用請求協(xié)議或MCU將速率調(diào)至1Mb/s;置CE為低電平可激活ShockBurstTM發(fā)射。nRF2401在突發(fā)模式下的幀格式如表1所示。
圖3 程序流程圖
程序流程圖如圖3所示。
nRF2401具有144位狀態(tài)字??刂破鲗RF2401設(shè)置為配置方式,然后由通道1向nRF2401寫入狀態(tài)字的配置值,寫時高位在前。配置方式下控制器寫狀態(tài)字的過程與激活方式下向nRF2401寫入數(shù)據(jù)的過程完全相同,都經(jīng)由CLK、DR和DATA組成的三線接口完成。
在配置模式下,將nRF2401配置為ShockBurstTM收發(fā)模式,該模式下使nRF2401能夠處理射頻協(xié)議,在配置完成后,在nRF2401工作過程中,只需改變其最低一字節(jié)中的內(nèi)容,以實現(xiàn)接收模式和發(fā)送模式的轉(zhuǎn)換。ShockBurstTM的配置字由數(shù)據(jù)寬度、地址寬度、地址和CRC四部分組成。
程序中對狀態(tài)字后的120位進(jìn)行配置,其值為0x20 4000 DDDDDD DD 00CC CCCC CC83 6E05。配置后nRF2401的通道1數(shù)據(jù)段長度為8字節(jié),地址段長度為32位,通道1硬件地址為0x CCCCCCCC,使能16位CRC校驗,單通道接收,工作于突發(fā)傳遞模式下,通信速率為1Mb/s,晶振頻率為16MHz,輸出功率-5dbm,工作頻段為2402MHz。
①發(fā)送、接收數(shù)據(jù)的程序設(shè)計
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ìn)行串口管理。串行通信中對數(shù)據(jù)流的處理采用突發(fā)處理方式。針對RAM空間有限的情況,利用軟件模擬FIFO寄存器結(jié)構(gòu)。
串口的接收和發(fā)送工作是相對獨(dú)立的,構(gòu)建兩個環(huán)形緩沖區(qū)來實現(xiàn)具有FIFO功能的緩沖區(qū)隊列。每一個環(huán)形緩沖區(qū)都對應(yīng)有寫入(Ptr_Wr)和讀出(Ptr_ Rd)兩個指針,從寫指針到讀指針之間的相對區(qū)域存儲的是待發(fā)送或已接收的數(shù)據(jù),兩個指針的前后次序通過標(biāo)志位(bFlag_Order)判別,當(dāng)它們的位置重合時則表示沒有有效數(shù)據(jù)。讀寫指針相對位置與存儲的數(shù)據(jù)之間的關(guān)系如圖4所示。陰影部分表示有效數(shù)據(jù)。
圖4 讀寫指針相對位置與存儲數(shù)據(jù)之間的關(guān)系示意圖
結(jié)論
隨著Internet的飛速發(fā)展,從WAN到MAN,再到LAN、PAN,這些技術(shù)已逐漸成熟。無線網(wǎng)絡(luò)在各類網(wǎng)絡(luò)中最具增長潛力。由于各種無線標(biāo)準(zhǔn)自身的技術(shù)也有待于不斷完善和提高,無線技術(shù)的應(yīng)用還有很大的市場空間。
nRF2401是一款性價比很高的單片無線收發(fā)芯片,利用AT89S52和nRF2401芯片設(shè)計的無線數(shù)據(jù)傳輸系統(tǒng),成本低,體積小,應(yīng)用靈活,具有良好的通用性和可靠性。通過調(diào)試結(jié)果表明,nRF2401芯片可以與微控制器連接實現(xiàn)無線數(shù)據(jù)通信,進(jìn)而實現(xiàn)了PC之間的無線通信,并且通信質(zhì)量可靠穩(wěn)定。
評論