基于MSP430單片機和nRF905的無(wú)線(xiàn)通信系統
隨著(zhù)信息技術(shù)的不斷發(fā)展,人們對通信技術(shù)的需求越來(lái)越強,擺脫有線(xiàn)網(wǎng)絡(luò )的束縛實(shí)現無(wú)線(xiàn)通信始終是大家關(guān)心的問(wèn)題,當今無(wú)線(xiàn)通信研究越來(lái)越熱,應用非常廣泛,使人與人之間的通信更加方便快捷,更具有市場(chǎng)發(fā)展前景。
本文以Nordic公司的nRF905作為通訊的核心,設計了無(wú)線(xiàn)通信系統。
系統設計
無(wú)線(xiàn)通信系統,由兩個(gè)部分組成:發(fā)送終端,接收終端。數據的發(fā)送和接收顯示是借助于串口來(lái)實(shí)現的,通過(guò)PC機串口給發(fā)送終端送數據,然后發(fā)送終端通過(guò)nRF905把數據發(fā)送出去;接收終端通過(guò)nRF905接收數據,然后把接收到的數據通過(guò)串口傳給PC機。系統框圖如圖1所示。
圖1
無(wú)線(xiàn)系統的硬軟件設計
系統的硬件設計
本系統采用的射頻收發(fā)器為NordicVLSI公司的nRF905,工作電壓為1.9~3.6V,工作于433/868/915MHz三個(gè)ISM頻段,頻段之間的轉換時(shí)間小于650us。nRF905由頻率合成器、接收解調器、功率放大器、晶體振蕩器和調制器組成,不需外加聲表濾波器。高抗擾GFSK調制,數據速率為50kbps,獨特的載波監測輸出,地址匹配輸出,數據就緒輸出。ShockBurstTM工作模式,自動(dòng)處理字頭和CRC(循環(huán)冗余碼校驗),使用SPI接口與微控制器通信,配置非常方便。此外,其功耗非常低,以-10dBm的輸出功率發(fā)射時(shí)電流只有11mA,工作于接收模式時(shí)的電流為12.5mA,內建空閑模式與關(guān)機模式,易于實(shí)現節能。nRF905的硬件連接電路圖如圖2所示。
采用的微處理器為T(mén)I公司的MSP430F149,它是一種超低功耗的混合信號控制器,具有16位RISC結構,CPU中的16個(gè)寄存器和常數產(chǎn)生器使MSP430能達到最高的代碼效率。單片機通過(guò)采用不同的時(shí)鐘源工作可以使器件滿(mǎn)足不同功耗要求,適當選擇時(shí)鐘源,可以讓器件的功耗達到最小。外設主要有存儲器、時(shí)鐘模塊、定時(shí)器、USART和A/D轉換器等。
此次設計主要用到了MSP430F149兩個(gè)串口通信模塊USART0和USART1,USART0作為UART使用,提供異步通信,通過(guò)MAX3232電平轉換芯片提供RS-232接口和PC機進(jìn)行通信,USART1作為SPI使用,提供同步通信,主要是和nRF905之間進(jìn)行命令和數據通信。把MSP430F149的P2口作為一般引腳使用,與nRF905的其他引腳相連。對MSP430F149提供雙晶振系統,低頻晶振為32.768K,與微控制的XIN和XOUT相連,為RS-232接口提供頻率支持,高頻晶振為8M,和微控制器的XT2相連,為系統運行的主時(shí)鐘。系統的整體設計相對較為簡(jiǎn)單,不過(guò)在此基礎上可以實(shí)現遙測,無(wú)線(xiàn)抄表,工業(yè)數據采集,機器人控制等。發(fā)送和接收的硬件電路是一樣的,系統設計主要硬件電路圖如圖3所示。
系統的軟件設計
系統軟件設計包括下位機軟件設計和PC機軟件設計。前者主要是微控制器通過(guò)SPI口對nRF905的控制以及微控制器串口通訊的設計,后者包括串口通訊模塊、主界面和數據庫設計。
}RFConfig;
RFConfigRxTxConf=
{
10,
0x01,0x0c,0x44,0x20,0x20,0xcc,
0xcc,0xcc,0xcc,0x58
};
nRF905提供SPI口的讀寫(xiě)指令,當CSN為低時(shí),SPI接口開(kāi)始等待一條指令,任何一條新指令均由CSN的由高到底的轉換開(kāi)始。下面主要介紹nRF905的發(fā)送流程和接收流程。
發(fā)送流程:
A.當微控制器有數據要發(fā)送時(shí),通過(guò)SPI接口,按時(shí)序把接收機的地址和要發(fā)送的數據送傳給nRF905,SPI接口的速率在通信協(xié)議和器件配置時(shí)確定;
B.微控制器置高TRX_CE和TX_EN,激發(fā)nRF905的ShockBurstTM發(fā)送模式;
C.nRF905的ShockBurstTM發(fā)送:射頻寄存器自動(dòng)開(kāi)啟;數據打包(加字頭和CRC校驗碼);發(fā)送數據包;當數據發(fā)送完成,數據準備好引腳被置高;
D.當TRX_CE被置低,nRF905發(fā)送過(guò)程完成,自動(dòng)進(jìn)入空閑模式。
ShockBurstTM工作模式保證,一旦發(fā)送數據的過(guò)程開(kāi)始,無(wú)論TRX_EN和TX_EN引腳是高或低,發(fā)送過(guò)程都會(huì )被處理完。只有在前一個(gè)數據包被發(fā)送完畢,nRF905才能接受下一個(gè)發(fā)送數據包。
接收流程:
A.當TRX_CE為高、TX_EN為低時(shí),nRF905進(jìn)入ShockBurstTM接收模式;
B.650us后,nRF905不斷監測,等待接收數據;
C.當nRF905檢測到同一頻段的載波時(shí),載波檢測引腳被置高;
D.當接收到一個(gè)相匹配的地址,地址匹配引腳被置高;
E.當一個(gè)正確的數據包接收完畢,nRF905自動(dòng)移去字頭、地址和CRC校驗位,然后把數據準備好引腳置高
F.微控制器把TRX_CE置低,nRF905進(jìn)入空閑模式;
G.微控制器通過(guò)SPI口,以一定的速率把數據移到微控制器內;
H.當所有的數據接收完畢,nRF905把數據準備好引腳和地址匹配引腳置低;
I.nRF905此時(shí)可以進(jìn)入ShockBurstTM接收模式、ShockBurstTM發(fā)送模式或關(guān)機模式。
MSP430F149的串口通訊程序設計,主要是設定傳輸的速率為4800bps,數據傳輸為8位數,1個(gè)停止位,無(wú)奇偶校驗。根據相應的發(fā)送端和接收端來(lái)設定發(fā)送模塊和接收模塊使能,發(fā)送中斷和接收中斷使能。
在PC機軟件設計中,串口通信模塊負責PC機與下位機之間的數據通信。而主界面和數據庫設計主要是方便對接收的數據進(jìn)行管理。
實(shí)驗測試分析
在發(fā)送和接收時(shí)利用示波器和萬(wàn)用表對nRF905的相關(guān)引腳進(jìn)行測量分析如下:
發(fā)射時(shí)nRF905的分析情況如表1所示。
接收時(shí)nRF905的分析情況如表2所示。
結語(yǔ)
本設計實(shí)現了基于MSP430F149和nRF905的無(wú)線(xiàn)通信。發(fā)送端和接收端之間的距離為80米,之間沒(méi)有任何有線(xiàn)連接,通過(guò)發(fā)送端發(fā)送數據,在接收端能正確接收數據并顯示在PC機上。實(shí)驗表明,該系統實(shí)時(shí)性好,性能可靠。
評論