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

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