《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于MCU和nRF905的低功耗遠(yuǎn)距離無線傳輸系統(tǒng)
基于MCU和nRF905的低功耗遠(yuǎn)距離無線傳輸系統(tǒng)
郝妍娜,洪志良
摘要: 介紹一種基于MCU和nRF905的低功耗遠(yuǎn)距離無線傳輸系統(tǒng),,描述了系統(tǒng)設(shè)計(jì)軟硬件的實(shí)現(xiàn)方法和多點(diǎn)傳輸數(shù)據(jù)的通信協(xié)議,。系統(tǒng)主控芯片采用通用的低功耗MCU芯片MSP430 ,射頻芯片采用具有多信道的單片收發(fā)芯片nRF905,。同時(shí)提出了跳頻機(jī)制保證數(shù)據(jù)傳輸?shù)目煽啃?,增加了系統(tǒng)的魯棒性,。
Abstract:
Key words :

    摘 要: 介紹一種基于MCU" title="MCU">MCU和nRF905" title="nRF905">nRF905的低功耗遠(yuǎn)距離無線傳輸" title="無線傳輸">無線傳輸系統(tǒng),描述了系統(tǒng)設(shè)計(jì)軟硬件的實(shí)現(xiàn)方法和多點(diǎn)傳輸數(shù)據(jù)的通信協(xié)議,。系統(tǒng)主控芯片采用通用的低功耗MCU芯片MSP430 ,,射頻芯片采用具有多信道的單片收發(fā)芯片nRF905。同時(shí)提出了跳頻機(jī)制保證數(shù)據(jù)傳輸?shù)目煽啃?,增加了系統(tǒng)的魯棒性,。
    關(guān)鍵詞: nRF905  無線數(shù)據(jù)傳輸  低功耗  跳頻

 

    目前,在遙控遙測,、無線抄表,、門禁系統(tǒng)、小區(qū)傳呼,、工業(yè)數(shù)據(jù)采集,、無線遙控系統(tǒng),、無線鼠標(biāo)鍵盤等許多應(yīng)用領(lǐng)域,都采用無線方式進(jìn)行遠(yuǎn)距離數(shù)據(jù)傳輸,。本文介紹一種采用通用的低功耗單片機(jī)MSP430作為主控芯片,、具有多信道的單片收發(fā)芯片nRF905作為無線收發(fā)模塊、利用SPI口實(shí)現(xiàn)雙向通訊的無線數(shù)據(jù)傳輸系統(tǒng),。系統(tǒng)集成了MSP430在低功耗應(yīng)用方面的優(yōu)勢和nRF905無線特有的多頻道支持及功耗低,、易控制等優(yōu)點(diǎn),特別適合于低功耗,、小數(shù)據(jù)量的無線數(shù)據(jù)傳輸系統(tǒng),。
1 系統(tǒng)的總體結(jié)構(gòu)
    系統(tǒng)總體框圖如圖1所示。主控MCU使用TI公司MSP430系列中的F1491型,,射頻收發(fā)模塊使用Nordic公司的nRF905實(shí)現(xiàn)無線數(shù)據(jù)收發(fā),。除MSP430和nRF905外,系統(tǒng)還提供RS-232接口,,可以實(shí)現(xiàn)與PC機(jī)的通訊,,RS-485接口滿足一些通用儀器儀表的要求。根據(jù)不同的應(yīng)用需求,,可選擇采用PCB天線或高增益的外置式天線以滿足遠(yuǎn)距離的需求,。

2 系統(tǒng)主要芯片介紹
    MSP430是TI公司推出的16位系列單片機(jī),在電池供電的低功耗應(yīng)用中具有獨(dú)特的優(yōu)勢,。其工作電壓在1.8~3.6V之間,,正常工作時(shí)功耗可控制在200μA左右,低功耗模式時(shí)可實(shí)現(xiàn)2μA甚至0.1μA的低功耗,。本系統(tǒng)所采用的MSP4301491系列在單個(gè)芯片上集成8通道12位的A/D轉(zhuǎn)換,、2個(gè)16位定時(shí)器、2個(gè)USART接口,、16位看門狗,、48個(gè)GPIO 端口及2 048KB RAM和60KB的flash,單片即可滿足大多數(shù)應(yīng)用需要,。其高效率精簡16 位指令結(jié)構(gòu)可以確保任何任務(wù)的快速執(zhí)行,,大多數(shù)指令可以在一個(gè)時(shí)鐘周期內(nèi)完成;它還具有高級語言編程能力,,使軟件開發(fā)更為便利[1],。
    射頻部分使用Nordic公司的多通道單片收發(fā)芯片nRF905[2]。它采用GFSK 調(diào)制解調(diào)技術(shù),,工作電壓為1.9~3.6V,,工作于433/868/915MHz 3個(gè)ISM頻道。nRF905由頻率合成器、接收解調(diào)器,、功率放大器,、晶體振蕩器和調(diào)制器組成,具有低功耗的Shock Burst工作模式,,可以自動(dòng)完成前導(dǎo)碼和CRC的工作,,可由片內(nèi)硬件自動(dòng)完成曼徹斯特編碼/解碼,使用SPI接口與MCU通信,,配置非常方便,。作為射頻發(fā)射芯片,其低功耗性能是極為突出,。以-10dBm的輸出功率發(fā)射時(shí),,電流只有11mA,在接收模式時(shí)電流為12.5mA,。nRF905傳輸數(shù)據(jù)時(shí)為非實(shí)時(shí)方式,即發(fā)送端發(fā)出數(shù)據(jù),,接收端收到后先暫存于芯片存儲器內(nèi),,外部的MCU可以在需要時(shí)再到芯片中去取。nRF905一次發(fā)射最多可傳輸?shù)臄?shù)據(jù)量為32B,。天線接口設(shè)計(jì)為差分天線,,便于使用低成本的PCB天線[3]
3 點(diǎn)對點(diǎn)無線通信的實(shí)現(xiàn)
3.1 SPI接口
    nRF905利用SPI口實(shí)現(xiàn)與MCU的雙向通訊,。nRF905的SPI總線包括4個(gè)引腳:CSN(SPI使能),、SCK(SPI時(shí)鐘)、MISO (主入從出)和MOSI(主出從入),。其中CSN可以接到一個(gè)GPIO端口控制芯片工作,,而其他三個(gè)腳則連接到主控MCU的SPI接口上。主控MCU可以使用GPIO端口控制nRF905的3根控制線,,控制低功耗的PWR_UP,、正常工作的TX_EN、選擇發(fā)送還是接收方式的TRX_CE,。nRF905有兩種節(jié)能模式和兩種工作模式,,分別為掉電模式、待機(jī)模式,、Shock Burst 接收模式和Shock Burst發(fā)送模式,。這幾種模式由主控MCU通過控制nRF905的3個(gè)引腳PWR_UP、TRX_CE和TX_ EN的高低電平來決定,。nRF905有3個(gè)引腳用于狀態(tài)輸出,,分別是:CD(載波檢測)、AM(地址匹配)和DR(數(shù)據(jù)就緒),均為高電平有效,。nRF905在處于接收模式時(shí),,若檢測到接收頻率段的載波,就置CD為高,。接著檢測載波數(shù)據(jù)中的地址字節(jié),,若與本身已配置的接收地址相同,則置AM為高,;若檢測到接收數(shù)據(jù)中的CRC校驗(yàn)正確,,則存儲有效數(shù)據(jù)字節(jié),置DR為高,。
    MCU通過SPI總線配置nRF905的內(nèi)部寄存器和收發(fā)數(shù)據(jù),。這里nRF905為從機(jī),其SPI的時(shí)鐘范圍很寬,,可為1Hz~10MHz,,因此MCU在寫控制程序時(shí)不必苛求時(shí)間的準(zhǔn)確度。SPI總線的每次操作都必須在使能引腳CSN的下降沿開始,,CSN 低電平有效,,總線上的數(shù)據(jù)在時(shí)鐘的上升沿有效。MCU對SPI總線進(jìn)行讀操作時(shí),,先把CSN置低,,然后在MOSI 數(shù)據(jù)線上輸出一個(gè)表示讀命令的字節(jié),與此同時(shí),,nRF905會在MISO數(shù)據(jù)線上輸出一個(gè)字節(jié)表示狀態(tài)信息的數(shù)據(jù),,隨后輸出一個(gè)地址字節(jié),后面跟隨有效數(shù)據(jù),。在進(jìn)行寫操作時(shí)比較簡單,,MCU先把CSN拉低,然后在MOSI線上輸出寫命令字節(jié)和數(shù)據(jù)字節(jié)即可,。
3.2 數(shù)據(jù)收發(fā)過程
    在nRF905正常工作前,,必須由MCU根據(jù)需要寫好配置寄存器。發(fā)送數(shù)據(jù)時(shí),,先通過MCU把nRF905置于待機(jī)模式(PWR_UP置為高,、TRX_CE置為低),然后通過SPI總線把發(fā)送地址和待發(fā)送的數(shù)據(jù)都寫入相應(yīng)的寄存器中,,之后把nRF905置于發(fā)送模式(PWR_UP,、TRX_CE和TX_EN全部置高),配置成功后數(shù)據(jù)就會自動(dòng)發(fā)送出去,。若射頻配置寄存器中的自動(dòng)重發(fā)位(AUTO_RETRAN)設(shè)為有效,,數(shù)據(jù)包就會被重復(fù)發(fā)出,,直到MCU拉低TRX_CE退出發(fā)送模式為止。nRF905發(fā)送數(shù)據(jù)的流程圖如圖2所示,。

    接收數(shù)據(jù)時(shí),,MCU 先在nRF905的待機(jī)狀態(tài)中寫好射頻配置寄存器中的接收地址,然后將nRF905置于接收模式(PWR_UP和TRX_CE置高,、TX_EN置低),,nRF905就會自動(dòng)接收空中的載波。當(dāng)收到有效數(shù)據(jù)(地址匹配且校驗(yàn)正確)時(shí),,DR引腳會自動(dòng)置高,,MCU 在檢測到這個(gè)信號后,可以將nRF905置為待機(jī)模式,,然后通過SPI總線從接收數(shù)據(jù)寄存器中讀出有效數(shù)據(jù),。nRF905接收數(shù)據(jù)的流程如圖3所示。


3.3 點(diǎn)對點(diǎn)傳輸距離
    傳輸距離主要由傳播損耗,、工作頻率,、外部損耗等因素決定。而傳播損耗是非常復(fù)雜的問題,,涉及電波傳播機(jī)理,、地形地物影響、載波工作頻段和天線指向等很多因素,。這里給出自由空間傳播時(shí)的無線通信距離計(jì)算公式:
    20lgd[km]=Los[dB]-32.44-20lgf[MHz]                      (1)
    式中Los為傳播損耗,f為工作頻率,,d為通信距離[4],。nRF905的最大發(fā)射功率為10dBm,接收靈敏度為-100dBm,,假定由大氣,、阻擋物、多徑等造成的損耗為25dB,,可以計(jì)算得出通信距離d=0.98km,,這是理想狀況下的計(jì)算。實(shí)測結(jié)果表明,,在采用高增益天線時(shí),,基本可以達(dá)到800米以上的傳輸距離;使用PCB天線時(shí)距離有所下降,,但也可達(dá)到300米左右,。

4 通信協(xié)議設(shè)計(jì)
4.1 MAC協(xié)議

    本系統(tǒng)采用了一個(gè)簡化的點(diǎn)對多點(diǎn)通訊協(xié)議,主要分為三層,。第一層為物理層,,由nRF905模塊硬件實(shí)現(xiàn),;第二層為數(shù)據(jù)鏈路層,提供可靠的無線數(shù)據(jù)傳輸,,每一個(gè)數(shù)據(jù)包都包括具體數(shù)據(jù)和一些必要的控制信息,;第三層為應(yīng)用層,調(diào)用數(shù)據(jù)鏈接層完成具體的應(yīng)用邏輯,,包括數(shù)據(jù)收集,、數(shù)據(jù)查詢等。
    整個(gè)系統(tǒng)硬件可分為兩部分,,分別定義為基站模塊和節(jié)點(diǎn)模塊,。節(jié)點(diǎn)模塊應(yīng)用層的功能是使數(shù)據(jù)與無線通訊相結(jié)合。對于不同的應(yīng)用,,可能有不同的數(shù)據(jù)采集方法,。應(yīng)用層接收數(shù)據(jù)鏈路層發(fā)來的命令,完成對數(shù)據(jù)的采集,,并將數(shù)據(jù)打包發(fā)給數(shù)據(jù)鏈路層,。基站模塊的應(yīng)用層負(fù)責(zé)與中心控制器的鏈接,。將中心控制器發(fā)來的數(shù)據(jù)校驗(yàn)處理后轉(zhuǎn)發(fā)給數(shù)據(jù)鏈路層,,將數(shù)據(jù)鏈路層發(fā)來的數(shù)據(jù)打包處理后發(fā)給中心控制器。因?yàn)閰f(xié)議是分層的,,相鄰層之間的聯(lián)系只是調(diào)用發(fā)送接收函數(shù),,因此實(shí)現(xiàn)了各層的獨(dú)立,更換被采集的儀表或更換無線傳輸模塊所做的改動(dòng)都不會影響其他層,,從而提高了系統(tǒng)的靈活性,。
    系統(tǒng)設(shè)定的數(shù)據(jù)鏈路層的數(shù)據(jù)幀格式如表1。

    每個(gè)數(shù)據(jù)幀包括2B的幀頭,、1B的幀類型,、6B的本地地址和目的地址、1B的幀長度,、NB的數(shù)據(jù),、16位CRC校驗(yàn)和2B的幀尾。本系統(tǒng)針對較小數(shù)據(jù)量的應(yīng)用設(shè)計(jì),,每個(gè)數(shù)據(jù)包的有效數(shù)據(jù)長度N一般小于32B,,每個(gè)節(jié)點(diǎn)每一次需要傳送的數(shù)據(jù)都可以通過一個(gè)數(shù)據(jù)包發(fā)送完成。數(shù)據(jù)幀的類型包括采集命令,、正確接收確認(rèn),、重發(fā)請求、異常信號等,,用兩個(gè)字節(jié)來標(biāo)示以便接收方分類處理,。在N個(gè)字節(jié)的數(shù)據(jù)之后是16位CRC校驗(yàn),。接收方同樣計(jì)算CRC后與校驗(yàn)和比較,如果CRC正確,,則發(fā)送正確接收確認(rèn)(ACK),。如果CRC不同,即為傳輸中出現(xiàn)錯(cuò)誤,,則給出出錯(cuò)反饋要求發(fā)送方重新發(fā)送數(shù)據(jù),。數(shù)據(jù)的通信流程基本可概述為DATA+ACK形式,即發(fā)送完DATA 等待ACK,,接收到DATA 則發(fā)送ACK確認(rèn),。
    由于射頻芯片的高靈敏度,即使在沒有進(jìn)行數(shù)據(jù)傳輸時(shí),,其數(shù)據(jù)輸出腳也會有雜波輸出,,這些雜波會被MCU的串口接收并處理。同時(shí)處于低功耗的考慮,,在每個(gè)數(shù)據(jù)幀之前要先發(fā)幾個(gè)字節(jié)的同步碼以實(shí)現(xiàn)數(shù)據(jù)同步和射頻喚醒,。實(shí)踐證明四個(gè)字節(jié)的0xCC 就可以確保在有效數(shù)據(jù)幀到達(dá)前雙方通訊實(shí)現(xiàn)同步。為了準(zhǔn)確區(qū)分噪聲與有效數(shù)據(jù),,分別加入了2B的幀頭(0xD792)和幀尾(0xC2D5),,以確保有效數(shù)據(jù)的確認(rèn)。
4.2 跳頻機(jī)制
    為避免信道阻塞,,系統(tǒng)采用了二進(jìn)制指數(shù)退避算法[5]隨機(jī)延時(shí)一段時(shí)間再發(fā)送數(shù)據(jù),,有效地避免了同頻道下的數(shù)據(jù)沖突。除此之外,,系統(tǒng)還設(shè)計(jì)了跳頻機(jī)制以有效地保證數(shù)據(jù)傳輸?shù)臏?zhǔn)確性,。
    跳頻機(jī)制的基本原理是將頻段分為一系列的通道,發(fā)送端查找預(yù)先設(shè)定的頻率列表,,以偽隨機(jī)方式產(chǎn)生通信頻道及發(fā)射前導(dǎo)碼,發(fā)射前導(dǎo)碼的時(shí)間應(yīng)確保接收機(jī)可以掃描所有的通道[6],。接收端以一定的跳頻序列掃描,,在某一通道上,接收端收到完整的前導(dǎo)碼則收發(fā)雙方頻率同步,。一旦完成頻率捕獲,,發(fā)送端與接收端即可識別對方,并且相互通信,。發(fā)送端和接收端的跳頻過程示意圖分別如圖4(a)和圖4(b)所示,。


    本系統(tǒng)設(shè)定了5個(gè)隨機(jī)頻道,當(dāng)跳頻次數(shù)hop大于5后認(rèn)為通信失敗,。由于同時(shí)采用了重發(fā)和退讓機(jī)制,,收發(fā)雙方并不需要同時(shí)跳入隨機(jī)頻道,,系統(tǒng)具有一定的容錯(cuò)性。通常一定時(shí)間內(nèi)干擾只在某個(gè)頻段存在,,只要將5個(gè)通信頻道拉開一段頻距,,即可有效抵制干擾。
5 系統(tǒng)的低功耗設(shè)計(jì)
    系統(tǒng)中MSP430完成初始化后,,處于低功耗工作模式,,在有外部事件發(fā)生時(shí)喚醒進(jìn)入中斷服務(wù)程序,完成后重新進(jìn)入低功耗模式,。如此循環(huán)往復(fù),,可以最大限度地降低功耗。所以系統(tǒng)低功耗設(shè)計(jì)的重點(diǎn)是射頻芯片nRF905的控制,。nRF905在接收狀態(tài)時(shí)功耗比較大,,工作電流為10mA左右,所以應(yīng)盡量使nRF905 處于休眠狀態(tài),。對于下層節(jié)點(diǎn)模塊,,當(dāng)上層基站模塊需要進(jìn)行數(shù)據(jù)采集時(shí),首先發(fā)送喚醒碼,。本系統(tǒng)使用0xCC作為喚醒碼,,即主機(jī)連續(xù)發(fā)送0xCC,從機(jī)收到連續(xù)兩個(gè)0xCC后即保持接收狀態(tài)而不進(jìn)入休眠,。如果兩個(gè)周期內(nèi)沒有收到有效數(shù)據(jù)幀的幀頭,,則視為雜波干擾,重新進(jìn)入休眠狀態(tài),。如此設(shè)定之后,,nRF905的平均工作電流可降至200?滋A以下,整個(gè)模塊的平均工作電流在250?滋A以下,,采用兩節(jié)電池供電可以使用一年以上,。上層基站模塊作為主機(jī),可主動(dòng)發(fā)起通信,,所以等待時(shí)nRF905可一直工作在休眠狀態(tài),,整個(gè)模塊的平均工作電流在100μA以下,采用兩節(jié)電池供電可以使用一年半以上,。
    本文利用低功耗單片機(jī)MSP430和nRF905芯片設(shè)計(jì)了一種成本低,、低功耗、抗干擾性強(qiáng)的遠(yuǎn)距離無線傳輸系統(tǒng),,給出了具體的硬件實(shí)現(xiàn)和獨(dú)特的通信協(xié)議,。nRF905的高靈敏度為其提供了穩(wěn)定的傳輸距離,即使利用無增益的PCB天線其傳輸距離也可達(dá)300米,,采用高增益的天線則可達(dá)到800米以上,,可滿足不同客戶的需求,。如果系統(tǒng)配以其他傳感器組則可以實(shí)現(xiàn)多種應(yīng)用環(huán)境的無線數(shù)據(jù)采集、傳輸與處理或遠(yuǎn)程監(jiān)控等,,在很多領(lǐng)域都具有廣闊的應(yīng)用前景,。
參考文獻(xiàn)
[1] Msp430x13x,Msp430x14x,,Msp430x14x1 Datasheet.TI Inc,,2004.
[2] Single chip 433/868/915MHz.Transceiver nRF905 Datasheet.Nordic Inc,2005.
[3] Application Note.nRF905 RF and antenna layout.Nordic Inc,,2005.
[4] 金保華,,張勇,崔光照.基于nRF905的無線數(shù)據(jù)多點(diǎn)跳傳通信系統(tǒng).儀表技術(shù)與傳感器,,2004,,(9):39-40.
[5] 馬祖長,張怡寧.大規(guī)摸無線傳感器網(wǎng)絡(luò)得路由協(xié)議.計(jì)算機(jī)工程與應(yīng)用,,2004,,(11):165-167.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。