《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于MCU和nRF905的低功耗遠距離無線傳輸系統
基于MCU和nRF905的低功耗遠距離無線傳輸系統
郝妍娜,洪志良
摘要: 介紹一種基于MCU和nRF905的低功耗遠距離無線傳輸系統,描述了系統設計軟硬件的實現方法和多點傳輸數據的通信協議。系統主控芯片采用通用的低功耗MCU芯片MSP430 ,射頻芯片采用具有多信道的單片收發芯片nRF905。同時提出了跳頻機制保證數據傳輸的可靠性,增加了系統的魯棒性。
Abstract:
Key words :

    摘 要: 介紹一種基于MCU" title="MCU">MCU和nRF905" title="nRF905">nRF905的低功耗遠距離無線傳輸" title="無線傳輸">無線傳輸系統,描述了系統設計軟硬件的實現方法和多點傳輸數據的通信協議。系統主控芯片采用通用的低功耗MCU芯片MSP430 ,射頻芯片采用具有多信道的單片收發芯片nRF905。同時提出了跳頻機制保證數據傳輸的可靠性,增加了系統的魯棒性。
    關鍵詞: nRF905  無線數據傳輸  低功耗  跳頻

 

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

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

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


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

4 通信協議設計
4.1 MAC協議

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

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


    本系統設定了5個隨機頻道,當跳頻次數hop大于5后認為通信失敗。由于同時采用了重發和退讓機制,收發雙方并不需要同時跳入隨機頻道,系統具有一定的容錯性。通常一定時間內干擾只在某個頻段存在,只要將5個通信頻道拉開一段頻距,即可有效抵制干擾。
5 系統的低功耗設計
    系統中MSP430完成初始化后,處于低功耗工作模式,在有外部事件發生時喚醒進入中斷服務程序,完成后重新進入低功耗模式。如此循環往復,可以最大限度地降低功耗。所以系統低功耗設計的重點是射頻芯片nRF905的控制。nRF905在接收狀態時功耗比較大,工作電流為10mA左右,所以應盡量使nRF905 處于休眠狀態。對于下層節點模塊,當上層基站模塊需要進行數據采集時,首先發送喚醒碼。本系統使用0xCC作為喚醒碼,即主機連續發送0xCC,從機收到連續兩個0xCC后即保持接收狀態而不進入休眠。如果兩個周期內沒有收到有效數據幀的幀頭,則視為雜波干擾,重新進入休眠狀態。如此設定之后,nRF905的平均工作電流可降至200?滋A以下,整個模塊的平均工作電流在250?滋A以下,采用兩節電池供電可以使用一年以上。上層基站模塊作為主機,可主動發起通信,所以等待時nRF905可一直工作在休眠狀態,整個模塊的平均工作電流在100μA以下,采用兩節電池供電可以使用一年半以上。
    本文利用低功耗單片機MSP430和nRF905芯片設計了一種成本低、低功耗、抗干擾性強的遠距離無線傳輸系統,給出了具體的硬件實現和獨特的通信協議。nRF905的高靈敏度為其提供了穩定的傳輸距離,即使利用無增益的PCB天線其傳輸距離也可達300米,采用高增益的天線則可達到800米以上,可滿足不同客戶的需求。如果系統配以其他傳感器組則可以實現多種應用環境的無線數據采集、傳輸與處理或遠程監控等,在很多領域都具有廣闊的應用前景。
參考文獻
[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的無線數據多點跳傳通信系統.儀表技術與傳感器,2004,(9):39-40.
[5] 馬祖長,張怡寧.大規摸無線傳感器網絡得路由協議.計算機工程與應用,2004,(11):165-167.

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 一级毛片直接看 | 视频在线观看一区二区三区 | 欧美日韩亚洲区久久综合 | 亚洲欧美日本综合一区二区三区 | 全黄一级裸片视频免费 | 成年男女免费视频网站播放 | 99热久这里都是精品小草 | 亚洲国产日韩欧美在线 | 国产成人91精品 | 一级毛片观看 | 午夜天堂视频 | 一二三区乱码一区二区三区码 | 51视频在线| 日韩视频免费在线 | 国产综合第一页在线视频 | 欧美成亚洲 | 琪琪在线视频 | 一级特黄色大片 | 一节毛片 | 手机在线 | 日本一线a视频免费观看 | 小妖精抬起臀嗯啊h军人小说 | 看全免费的一级毛片 | 麻豆久久婷婷综合五月国产 | 1024手机基地在线看手机 | 日韩精品高清自在线 | 国产女人91精品嗷嗷嗷嗷 | 日本天天射 | 色综合久久久久久久久五月 | 91精品导航在线观看 | 在线视频亚洲 | 午夜大片免费男女爽爽影院久久 | 一二三区乱码一区二区三区码 | 草在线视频 | 无遮挡h纯内动漫在线观看 无遮挡1000部拍拍拍免费观看 | 在线成人免费看大片 | 中文字幕 视频一区 | 先锋影音国产精品 | 国产麻豆a一级毛片爽爽影院 | 欧美色p | 天天爽爽 |