基于MCU和nRF905的低功耗遠距離無線傳輸系統(tǒng)
接收數(shù)據(jù)時,MCU 先在nRF905的待機狀態(tài)中寫好射頻配置寄存器中的接收地址,然后將nRF905置于接收模式(PWR_UP和TRX_CE置高、TX_EN置低),nRF905就會自動接收空中的載波。當收到有效數(shù)據(jù)(地址匹配且校驗正確)時,DR引腳會自動置高,MCU 在檢測到這個信號后,可以將nRF905置為待機模式,然后通過SPI總線從接收數(shù)據(jù)寄存器中讀出有效數(shù)據(jù)。nRF905接收數(shù)據(jù)的流程如圖3所示。本文引用地址:http://cafeforensic.com/article/156893.htm
3.3 點對點傳輸距離
傳輸距離主要由傳播損耗、工作頻率、外部損耗等因素決定。而傳播損耗是非常復雜的問題,涉及電波傳播機理、地形地物影響、載波工作頻段和天線指向等很多因素。這里給出自由空間傳播時的無線通信距離計算公式:
20lgd[km]=Los[dB]-32.44-20lgf[MHz] (1)
式中Los為傳播損耗,f為工作頻率,d為通信距離[4]。nRF905的最大發(fā)射功率為10dBm,接收靈敏度為-100dBm,假定由大氣、阻擋物、多徑等造成的損耗為25dB,可以計算得出通信距離d=0.98km,這是理想狀況下的計算。實測結果表明,在采用高增益天線時,基本可以達到800 米以上的傳輸距離;使用PCB天線時距離有所下降,但也可達到300米左右。
4 通信協(xié)議設計
4.1 MAC協(xié)議
本系統(tǒng)采用了一個簡化的點對多點通訊協(xié)議,主要分為三層。第一層為物理層,由nRF905模塊硬件實現(xiàn);第二層為數(shù)據(jù)鏈路層,提供可靠的無線數(shù)據(jù)傳輸,每一個數(shù)據(jù)包都包括具體數(shù)據(jù)和一些必要的控制信息;第三層為應用層,調用數(shù)據(jù)鏈接層完成具體的應用邏輯,包括數(shù)據(jù)收集、數(shù)據(jù)查詢等。
整個系統(tǒng)硬件可分為兩部分,分別定義為基站模塊和節(jié)點模塊。節(jié)點模塊應用層的功能是使數(shù)據(jù)與無線通訊相結合。對于不同的應用,可能有不同的數(shù)據(jù)采集方法。應用層接收數(shù)據(jù)鏈路層發(fā)來的命令,完成對數(shù)據(jù)的采集,并將數(shù)據(jù)打包發(fā)給數(shù)據(jù)鏈路層?;灸K的應用層負責與中心控制器的鏈接。將中心控制器發(fā)來的數(shù)據(jù)校驗處理后轉發(fā)給數(shù)據(jù)鏈路層,將數(shù)據(jù)鏈路層發(fā)來的數(shù)據(jù)打包處理后發(fā)給中心控制器。因為協(xié)議是分層的,相鄰層之間的聯(lián)系只是調用發(fā)送接收函數(shù),因此實現(xiàn)了各層的獨立,更換被采集的儀表或更換無線傳輸模塊所做的改動都不會影響其他層,從而提高了系統(tǒng)的靈活性。
每個數(shù)據(jù)幀包括2B的幀頭、1B的幀類型、6B的本地地址和目的地址、1B的幀長度、NB的數(shù)據(jù)、16位CRC校驗和2B的幀尾。本系統(tǒng)針對較小數(shù)據(jù)量 的應用設計,每個數(shù)據(jù)包的有效數(shù)據(jù)長度N一般小于32B,每個節(jié)點每一次需要傳送的數(shù)據(jù)都可以通過一個數(shù)據(jù)包發(fā)送完成。數(shù)據(jù)幀的類型包括采集命令、正確接 收確認、重發(fā)請求、異常信號等,用兩個字節(jié)來標示以便接收方分類處理。在N個字節(jié)的數(shù)據(jù)之后是16位CRC校驗。接收方同樣計算CRC后與校驗和比較,如 果CRC正確,則發(fā)送正確接收確認(ACK)。如果CRC不同,即為傳輸中出現(xiàn)錯誤,則給出出錯反饋要求發(fā)送方重新發(fā)送數(shù)據(jù)。數(shù)據(jù)的通信流程基本可概述為 DATA+ACK形式,即發(fā)送完DATA 等待ACK,接收到DATA 則發(fā)送ACK確認。
由于射頻芯片的高靈敏度,即使在沒有進行數(shù) 據(jù)傳輸時,其數(shù)據(jù)輸出腳也會有雜波輸出,這些雜波會被MCU的串口接收并處理。同時處于低功耗的考慮,在每個數(shù)據(jù)幀之前要先發(fā)幾個字節(jié)的同步碼以實現(xiàn)數(shù)據(jù) 同步和射頻喚醒。實踐證明四個字節(jié)的0xCC 就可以確保在有效數(shù)據(jù)幀到達前雙方通訊實現(xiàn)同步。為了準確區(qū)分噪聲與有效數(shù)據(jù),分別加入了2B的幀頭(0xD792)和幀尾(0xC2D5),以確保有效 數(shù)據(jù)的確認。
評論