基于nRF905無線數(shù)傳模塊的設(shè)計及其實現(xiàn)
1 引言
當(dāng)代科學(xué)技術(shù)日益向高速化、智能化、信息化、網(wǎng)絡(luò)化發(fā)展,各種各樣的制造業(yè)和通信業(yè)設(shè)備除了可以與計算機聯(lián)機外,還可以互相聯(lián)機,而實現(xiàn)設(shè)備間相互聯(lián)機的最具發(fā)展?jié)摿Φ姆绞骄褪菬o線通信。與有線通信方式相比,無線通信具有一系列優(yōu)點,特別適用于手持現(xiàn)場設(shè)備、電池供電設(shè)備、遙控遙測設(shè)備、水文氣象監(jiān)控設(shè)備、生物信號采集系統(tǒng)、工業(yè)數(shù)據(jù)采集系統(tǒng)等。在上述無線通信技術(shù)應(yīng)用實際中,無線通信協(xié)議起著至關(guān)重要的作用,直接關(guān)系到無線通信系統(tǒng)的安全性和誤碼率以及系統(tǒng)運行的速度。本文基于挪威Nordic VLSI公司最新推出的單片無線收發(fā)一體芯片nRF905設(shè)計出多功能無線數(shù)傳模塊:具有標(biāo)準(zhǔn)RS232C和RS485接口通信模塊,設(shè)計的多功能無線數(shù)傳模塊由基于nRF905的高頻頭和標(biāo)準(zhǔn)通信接口模塊組成。
2 硬件設(shè)計
2.1 高頻頭設(shè)計
2.1.1 nRF905 簡介
nRF905是挪威Nordic VLSI公司推出的單片射頻收發(fā)器,工作電壓為1.9~3.6V,32引腳QFN封裝(5×5mm),工作于433/868/915MHz三個ISM(工業(yè)、科學(xué)和醫(yī)學(xué))頻道,頻道之間的轉(zhuǎn)換時間小于650us。nRF905由頻率合成器、接收解調(diào)器、功率放大器、晶體振蕩器和調(diào)制器組成,不需外加聲表濾波器, ShockBurst工作模式,自動處理字頭和CRC(循環(huán)冗余碼校驗),使用SPI接口與微控制器通信,配置非常方便。此外,其功耗非常低,以-10dBm的輸出功率發(fā)射時電流只有11mA,工作于接收模式時的電流為12.5mA,內(nèi)建空閑模式與關(guān)機模式,易于實現(xiàn)節(jié)能。nRF905適用于無線數(shù)據(jù)通信、無線報警及安全系統(tǒng)、無線開鎖、無線監(jiān)測、家庭自動化和玩具等諸多領(lǐng)域。
nRF905片內(nèi)集成了電源管理、晶體振蕩器、低噪聲放大器、頻率合成器功率放大器等模塊,曼徹斯特編碼/解碼由片內(nèi)硬件完成,無需用戶對數(shù)據(jù)進(jìn)行曼徹斯特編碼,因此使用非常方便。nRF905的詳細(xì)結(jié) 構(gòu)如圖1所示,以及管腳功能如表1所示。 
圖1 nRF905結(jié)構(gòu)圖 
圖2 由nRF905組成的高頻頭用戶接口
2.1.2 高頻頭用戶接口設(shè)計
圖2中給出了由nRF905組成的高頻頭用戶接口,該接口由10個數(shù)字輸入/輸出I/O組成,按照工作可分為三組:
l 模式控制
該接口由TRX_CE、TXEN、PWR組成控制由nRF905組成的高頻頭的四種工作模式:掉電和SPI編程模式;待機和SPI編程模式;發(fā)射模式;接收模式,各種模式的控制模式見下表1。
l SPI接口
表1 各種模式的控制模式
|
PWR |
TRX_CE |
TXEN |
工作模式 |
|
0 |
X |
X |
掉電和SPI編程模式 |
|
1 |
0 |
X |
待機和SPI編程模式 |
|
1 |
1 |
0 |
接收 |
|
1 |
1 |
1 |
發(fā)射 |
SPI接口由SCK、MISO、MOSI以及CSN組成。
(1)在配置模式下單片機通過SPI接口配置高頻頭的工作參數(shù);
(2)在發(fā)射/接收模式下單片機SPI接口發(fā)送和接收數(shù)據(jù)。
l 狀態(tài)輸出接口
提供載波檢測輸出CD,地址匹配輸出AM,數(shù)據(jù)就緒輸出DR。
2.2 標(biāo)準(zhǔn)通信接口模塊
標(biāo)準(zhǔn)通信接口模塊主要由三部分組成:標(biāo)準(zhǔn)RS232C接口模塊;標(biāo)準(zhǔn)RS485接口模塊;無線通信接口模塊。標(biāo)準(zhǔn)RS232C接口模塊,采用MAXIM公司生產(chǎn)的MAX232A芯片將微處理器(MCU)的TTL電平與PC機串口標(biāo)準(zhǔn)RS232C電平進(jìn)行相互轉(zhuǎn)換。標(biāo)準(zhǔn)RS485接口模塊采用Motorola公司生產(chǎn)的MC3486和MC3487電平轉(zhuǎn)換芯片實現(xiàn)TTL電平與RS485電平的轉(zhuǎn)換。無線通信接口模塊采用Philips公司生產(chǎn)的74LVC4245A電平轉(zhuǎn)換芯片實現(xiàn)3V與5V電平轉(zhuǎn)換,可以實現(xiàn)MCU與nRF905之間的雙向數(shù)據(jù)通信。其工作原理為:根據(jù)事先設(shè)定的通信協(xié)議,MCU通過設(shè)定74LVC4245A的DIR引腳為高和低電平,可以分別實現(xiàn)數(shù)據(jù)由MCU到nRF905的傳輸(即5V轉(zhuǎn)換為3V)和nRF905到MCU的傳輸(即3V轉(zhuǎn)換為5V)。
3 軟件設(shè)計
3.1 RS232接口通信軟件設(shè)計
在本設(shè)計中PC機發(fā)送字符與接受字符均采用查詢方式,發(fā)送前先讀取通信或狀態(tài)寄存器,查詢發(fā)送保持寄存器是否為空;接收前先讀取通信或狀態(tài)寄存器,查詢一幀據(jù)是否收完。從機采用中斷方式,即接受到地址幀后就進(jìn)行串行口中斷申請,CPU響應(yīng)后,進(jìn)入中斷服務(wù)程序。
PC機通訊程序用Visual Basic開發(fā)。我們利用了VB提供的串行通訊專用ActiveX控件MSComm, 該控件屏蔽了通訊過程的低層操作。只需設(shè)置MSComm 控件的相應(yīng)屬性,調(diào)用控件相應(yīng)方法和事件,按照通訊協(xié)議要求發(fā)出命令號,下位機完成相應(yīng)功能,便能實現(xiàn)數(shù)據(jù)通訊。
3.2 RS485接口通信軟件設(shè)計
利用RS485接口可以實現(xiàn) PC機與單片機之間、單片機與單片機之間的遠(yuǎn)距離點對點和點對多點的異步串行通信。由于RS485通訊是一種半雙工通訊,發(fā)送和接收共用同一物理信道。在任意時刻只允許一臺單機處于發(fā)送狀態(tài)。因此要求應(yīng)答的單機必須在偵聽到總線上呼叫信號已經(jīng)發(fā)送完畢,并且沒有其它單機發(fā)出應(yīng)答信號的情況下,才能應(yīng)答。半雙工通訊對主機和從機的發(fā)送和接收時序有嚴(yán)格的要求。如果在時序上配合不好,就會發(fā)生總線沖突,使整個系統(tǒng)的通訊癱瘓,無法正常工作。對于多機通信,總線上所連接的各單機的發(fā)送控制信號在時序上應(yīng)完全隔開,以保證發(fā)送和接收信號的完整和正確避免總線上信號的碰撞。
3.3 基于nRF905的高頻頭的無線通信軟件設(shè)計
由于與RF協(xié)議相關(guān)的高速信號處理部分已經(jīng)嵌入在模塊內(nèi)部,高頻頭可與各種低成本單片機配合使用,也可以與DSP等高速處理器配合使用;高頻頭提供一個SPI接口,速率由微控制器自己設(shè)定的接口速度決定。在RX模式中,地址匹配(AM)和數(shù)據(jù)準(zhǔn)備就緒(DR)信號通知MCU一個有效的地址和數(shù)據(jù)包已經(jīng)各自接收完成,微控制器即可通過SPI讀取接收的數(shù)據(jù)。在TX模式中,高頻頭自動產(chǎn)生前導(dǎo)碼和CRC校驗碼,數(shù)據(jù)準(zhǔn)備就緒(DR)信號通知MCU數(shù)據(jù)傳輸已經(jīng)完成。這意味著降低MCU的存儲器需求也就是降低MCU成本,同時縮短軟件開發(fā)時間。nRF905接收模式如圖4所示,nRF905發(fā)射模式如圖5所示。
3.3.1 配置編程
上電以后MCU首先配置高頻頭模塊。先將PWR、TXEN、TRX_CE設(shè)為配置模式(見表1),MCU通過SPI將配置數(shù)據(jù)移入高頻頭模塊;在掉電和待機模式工作后,配置內(nèi)容仍然有效。配置數(shù)據(jù)只有當(dāng)電源撤除后才會丟失。
3.3.2 發(fā)射模式
l 當(dāng)MCU有數(shù)據(jù)需要發(fā)往規(guī)定節(jié)點時,接收節(jié)點的地址(TX-address)和有效數(shù)據(jù)(TX-payload)通過SPI接口傳送給高頻頭。應(yīng)用協(xié)議或MCU設(shè)置接口速度。

圖4 nRF905接收模式
l MCU設(shè)置TRX_CE,TXEN為高來啟動傳輸。
l 高頻頭內(nèi)部處理:
(1)無線系統(tǒng)自動上電
(2)數(shù)據(jù)包完成(加前導(dǎo)碼和CRC校驗碼)
(3)數(shù)據(jù)包發(fā)送(100kbps,GFSK,曼切斯特編碼)
l 如果AUTO_RETRAN被設(shè)置為高,高頻頭將連續(xù)地發(fā)送數(shù)據(jù)包,直到TRX_CE被設(shè)置為低。
l 當(dāng)TRX_CE被設(shè)置為低時,高頻頭結(jié)束數(shù)據(jù)傳輸并將自己設(shè)置成待機模式。
3.3.3 接收模式
l 通過設(shè)置TRX_CE高,TXEN低來選擇RX模式。
l 650us以后,高頻頭監(jiān)測空中的信息。
l 當(dāng)高頻頭發(fā)現(xiàn)和接收頻率相同的載波時,載波檢測(CD)被置高。
l 當(dāng)高頻頭接收到有效的地址時,地址匹配(AM)被置高。
l 當(dāng)高頻頭接收到有效的數(shù)據(jù)包(CRC校驗正確)時,高頻頭去掉前導(dǎo)碼,地址和CRC位,數(shù)據(jù)準(zhǔn)備就緒(DR)被置高。
l MCU設(shè)置TRX_CE低,進(jìn)入standby模式(待機模式)。
l MCU可以以合適的速率通過SPI接口讀出有效數(shù)據(jù)。
l 當(dāng)所有的有效數(shù)據(jù)被讀出后,高頻頭將AM和DR置低。
4 結(jié)束語
隨著信息技術(shù)和計算機科學(xué)的變革和發(fā)展,無線通訊技術(shù)已經(jīng)成為一種發(fā)展趨勢在各個領(lǐng)域當(dāng)中逐步得到應(yīng)用。無線通訊傳輸技術(shù)具有成本低、無需通訊電纜、不受應(yīng)用環(huán)境限制、組態(tài)靈活、重構(gòu)性強等優(yōu)點,這就給無線通信技術(shù)帶來了很大的發(fā)展空間。本文采用了挪威Nordic VLSI公司最新推出的單片無線收發(fā)一體芯片nRF905,并在此基礎(chǔ)上設(shè)計出多功能無線數(shù)傳模塊。
經(jīng)過實際檢驗,此模塊運行穩(wěn)定,通信可靠,能夠?qū)崿F(xiàn)遠(yuǎn)距離無線通信,PC機與單片機之間、單片機與單片機之間的遠(yuǎn)距離點對點和點對多點的異步串行通信。從實用性角度考慮,可以運用在遙控、遙測、無線抄表、門禁系統(tǒng)、小區(qū)傳呼、工業(yè)數(shù)據(jù)采集系統(tǒng)、無線標(biāo)簽、身份識別、非接觸RF、智能卡、小型無線數(shù)據(jù)終端、安全防火系統(tǒng)、無線遙控系統(tǒng)、生物信號采集、水文氣象監(jiān)控、機器人控制、信息家電等實際工作環(huán)境中。

圖5 nRF905發(fā)送模式
參考文獻(xiàn)
[1] Single chip 433/868/915MHz Transceiver nRF905. Nordic VLSI ASA,2004.1.
[2] nRF905 RF and antenna layout. Nordic Semiconductor ASA,2004.10.
[3] 陳蕾,仇潤鶴,薛冰雷,微計算機信息,一種應(yīng)用于車載系統(tǒng)的GPS接收機射頻前端的設(shè)計,2005(12),196-197
[4] 李群芳,張士軍,黃建. 單片微型計算機與接口技術(shù). 北京:電子工業(yè)出版社,2005.
[5] 李朝青. PC機及單片機數(shù)據(jù)通信技術(shù). 北京:北京航空航天大學(xué)出版社,2000.
[6] 王秉鈞. 通信系統(tǒng). 西安:西安電子科技大學(xué)出版社,1999.