程廷果+許維東



摘 要:受施工現場條件限制,常規的無線網絡節點多存在功耗高、傳輸距離短、信號穿透性差、數據穩定性不足等問題。設計并實現了一種基于LoRa(long range)技術的節點,給出了節點的軟硬件系統設計方案。硬件包括SX1278、ds18b20單總線接口、msp430f149、w25q32和ds1302。軟件包括底層驅動、系統框架和任務處理程序。將節點搭建為星型網進行測試,結果證明該節點工作穩定可靠,功耗較低,能滿足大體積混凝土的測溫要求。
關鍵詞:LoRa技術;msp430f149;星型網;大體積混凝土測溫
DOIDOI:10.11907/rjdk.171290
中圖分類號:TP319
文獻標識碼:A 文章編號文章編號:1672-7800(2017)008-0111-03
0 引言
隨著建筑行業的飛速發展,大體積混凝土越來越普遍,由此帶來的溫度引發裂縫問題受到工程界廣泛關注[1-2]。為此,國家標準GB50496-2009規定大體積混凝土要進行現場檢測和試驗[3]。
目前,在我國建筑施工行業中,采用無線傳感器網絡(WSN)進行結構物和施工環境的安全監測已成為常態[4]。工程中常見的大體積混凝土溫度監控周期一般為數月,監控測點相距往往數百米,網絡節點之間經常存在臨時障礙物等,導致包括ZigBee、433MHz在內的無線網絡技術無法得到有效應用。
2013年8月,美國加利福利亞州的Semtech公司推出了一系列基于擴頻調制技術的LoRa(long range)芯片[5],該芯片在FSK調制方式下保持低功耗性能的同時,明顯增加了通信距離,具有極強的抗干擾能力。LoRa作為一種調制技術,是線性調制擴頻(CSS)的一個變種,與同類技術相比,可提供更長的通信距離,并具有前向糾錯(FEC)功能; LoRa在接收靈敏度方面明顯優于傳統調制技術,其接收靈敏度高達-148dBm。因此,本文將LoRa技術引入大體積混凝土測溫領域。
1 節點系統設計
為了獲取大體積混凝土內的溫度數據并通過無線射頻發送到網關,設計了如圖1所示的以MCU為中心的采集節點。MCU采用msp430f149,外圍芯片采用SX1278、w25q32、ds1302,分別實現射頻、存儲和實時時鐘功能,Px(1,2,3,4)用于連接ds18b20總線。
使用IAR集成開發環境和C語言開發MCU軟件系統。軟件結構分為元件驅動程序、數據幀封裝器、任務管理器和任務處理程序,如圖2所示。
1.1 硬件系統
傳感器:為了穩定可靠,采用工程現場常用的ds18b20傳感器。該傳感器可多個搭接在單總線上,非常適合多點測溫[6],元件參數見表1。
微控制器:msp430f149是業界標桿TI公司的一款低電壓低功耗芯片,帶有12位ADC,是帶硬件乘法器的16bitMCU,在standby和off模式下電流低至1.6μA和0.1μA[7],元件參數見表2。
無線射頻芯片:SX1278是市面上最常用的Lora芯片,其無線電頻段屬于ISM開放頻段,無需授權許可。考慮到射頻PCB的設計,最后選用以SX1278為核心的Lora模塊。
SX1278具有極高的接收靈敏度和抗干擾能力,127dBm的動態RSSI,最大20dBm發送功率,多種調制方式可選以及載波監聽等功能,使用非常方便,安全性好[8]。元件參數見表3。
1.2 軟件系統
1.2.1 元件驅動程序
元件驅動程序是對應元件的功能函數集合,由于函數較多,這里只介紹主要函數。
(1)ds18b20:
STATUS SearchROM(char(*ROM)[8],
uchar ROMsize,char*numsofsensor)
SearchROM函數用于搜集各個端口單總線上所有傳感器的ID并返回各個端口傳感器數量和函數執行狀態。
SearchROM函數主要用到搜索二叉樹算法[9]。
STATUS GetRegister(char*rambuf,
char*singleROM)
GetRegister函數用于將單個傳感器寄存器中的數據復制到ram,以便計算溫度和CRC校驗[10]。
(2)ds1302:
STATUS GetTime(char*time,
uchar timesize)
STATUS ModifyTime(char *time,
uchar timesiz)
GetTime、Modifyime分別用于讀取和修改實時時鐘。
(3)w25q32:
STATUS WriteData(char*address,
char*ram,uchar size)
STATUS ReadData(char*address,
char*ram,uchar size)
WriteData、ReadData分別用于向flash芯片中寫和讀指定地址和大小的數據。
(4)Lora:
void LoraSendBytes(char *rfsendbuf,
uchar size);
LoraSendBytes用于Lora發送多個字節,Lora接收函數在interrupt實現。
1.2.2 數據幀封裝器
為了使多個節點能夠共同協調工作,將多個節點的拓撲網絡設計為星型結構,見圖3。為使節點具有自己的地址,在鏈路上互不干擾,需要設計一個簡單的鏈路協議,所有采集節點將各自的數據打包成數據幀發送到指定地址的網關節點,數據幀封裝器用于實現這一功能。endprint
數據幀有以下幾種:
(1)上/下行數據幀。用于節點上傳收集的數據或網關控制節點工作模式,見表4。
(2)上/下行確認幀。用于網關和節點互相確認對方是否成功收到數據,見表5。
(3)上行心跳幀。心跳幀有兩個作用,用于網關判斷節點是否連接網絡與上傳節點電壓,見表6。
1.2.3 任務管理器與任務程序
任務程序是節點軟件系統的中心部件,負責處理所有事件,包括采集上傳任務、設置參數任務、上傳錯誤任務、上傳心跳任務等。任務管理器則負責檢查事件表,根據事件將指令碼插入指令隊列尾并根據隊列調用相應的處理程序,任務管理器事件輪詢功能見圖4。
事件表采用RAM中的數組實現,事件表中的位置代表了事件的優先級。為了保持處理事件的順序,指令碼采用隊列存儲,隊列使用循環數組實現,由于運行過程中需要收集發生的錯誤用于分析原因,而對錯誤沒有順序要求,所以錯誤碼采用棧存儲,棧采用數組棧實現[11],如圖5所示。
1.2.4 其它
(1)limit。該文件內全部是宏定義,用于限制傳感器數量、隊列、棧、數據存儲區等在內存中的大小,以合理使用內存。
(2)globlevariable:全局變量。該文件包含系統所有全局變量,用以確定靜態內存區大小。
(3)clock:全局時鐘區。所有需要用到時間的服務都由該文件中的函數提供。
(4)System:系統初始化。包括CPU時鐘頻率、定時器頻率以及和系統有關的設置等。
(5)Interrupt:中斷函數文件。該文件主要包含LoRa發送和接收中斷、時鐘中斷。因為Lora模塊休眠后不能接收信號,所以需要設置接收時隙以及無應答重發機制。
2 系統測試
將3個節點分開放于3個實驗室模擬測試,每個節點接10個傳感器,分別相距網關約1km、500m、800m,將各節點分別設置為間隔10分鐘采集一次數據并上傳至網關。
將網關接收數據處理后通過串口上傳至PC,可在PC端看到各節點發來的數據,見圖6。
3 結語
節點模擬工作一段時間后,經過對溫度數據的分析發現很少丟失數據。經過對電壓數據的整理發現功耗較低。在傳輸距離方面,LoRa優于同功耗下的2.4GHz與433MHz傳統調制技術,完全滿足大體積混凝土的測溫要求。
LoRaWAN網絡已經在世界多地進行試點部署,包括中國、美國、法國、新西蘭 、印度、澳大利亞、韓國、西班牙[12-15] 等國。
搭建中國的物聯網平臺,將大體積混凝土測溫節點加入loRaWAN網絡,是行業發展方向,會極大促進安全監測領域發展,給建造事業提供便利,更好地保護人民的生命財產安全。
參考文獻:
[1] 解榮. 大體積混凝土溫度監控的研究[D].西安: 長安大學, 2011.
[2] 方仙梅. 大體積混凝土裂縫的分析及防治[J]. 中國西部科技, 2011, 10(10):20-21.
[3] 中國冶金建設協會. 大體積混凝土施工規范[M]. 北京:中國計劃出版社, 2009.
[4] 史學濤. 結構健康監測系統的研究[D]. 上海:同濟大學, 2006.
[5] 龔天平.LoRa技術實現遠距離、低功耗無線數據傳輸[J].技術交流,2016(10):117-119.
[6] 李會聰. DS18B20多點測溫方法探討[J]. 微計算機信息, 2010, 26(26):166-167.
[7] 李彬, 王朝陽, 卜濤,等. 基于MSP430F149的最小系統設計[J]. 國外電子測量技術, 2009, 28(12):74-76.
[8] 王瑞, 李躍忠. 基于SX1278的水表端無線抄表控制器[J]. 電子質量, 2015(12):67-68.
[9] 劉建華. 二叉樹算法在單總線技術中的應用[J]. 自動化儀表, 2006, 27(3):63-64.
[10] 蔡淼. Modbus RTU協議中字節型CRC-16算法分析與實現[J]. 物聯網技術, 2015(3):35-36.
[11] KENNETH A, REEK. C和指針 [M].第2版.北京: 人民郵電出版社, 2008.
[12] 佚名. 法國運營商Orange啟動物聯網計劃[J]. 今日電子, 2016(1):40-41.
[13] 佚名. 三星聯手SK電信部署全國性LoRaWAN[J]. 互聯網天地, 2016(7):40-41.
[14] NAMELESS. New smart parking by libelium includes double radio with LoRaWAN and Sigfox[EB/OL]. http://www.businesswire.com/news/home/20160405005177/en/Smart-Parking-Libelium-Includes-Double-Radio-LoRaWAN.
[15] 張冬楊. 物聯網領域最具發展前景的通信技術[J]. 物聯網技術, 2016, 6(10):7-8.endprint