楊藝+李端
收稿日期:2013-05-27
作者簡介:楊 藝(1980—),男,湖北利川人,講師,碩士研究生,研究方向:信號檢測與智能控制。
文章編號:1003-6199(2014)02-0137-04
摘 要:設計一種基于Zigbee無線傳感網(wǎng)絡的高層建筑在線監(jiān)測系統(tǒng),實現(xiàn)對高層建筑震動、晃動等在線監(jiān)測。檢測終端功耗低、體積小、便于安裝,實驗表明該系統(tǒng)能有效檢測精度為0.01075g的三分量加速度,并估算檢測點的位移。
關鍵詞:無線傳感網(wǎng)絡;高層建筑; 三分量加速度傳感器
中圖分類號:TP23文獻標識碼:A
Design of Online Monitoring System for Tall Building Based on Wireless Sensor Networks
YANG Yi, LI Duan
(School of Electrical Engineering an Automation ,Henan Polytechnic University, Jiaozuo,Henan 454000,China)
Abstract:A monitoring system for highrise based on Zigbee wireless sensor networks is presented in this paper.The slight vibration and wobble can be detected on line by this system.The detector is low power dissipation,small size and easy to install.Experiments verify the effectiveness of detecting three axis accelerations and estimating displacement.The experiment results show precision of detecting acceleration is 0.01075g.
Key words:wireless sensor network; tall building; three axis acceleration senor
1 前 言
隨著經(jīng)濟發(fā)展和科技進步,高層建筑在全球范圍內遍地開花。高層建筑的安全至關重要。建筑物的增高在放大了地震、強風等對其自身影響的同時,也導致人們對其心理安全感的下降。
高層建筑的震動和晃動現(xiàn)象十分常見。2011年3月11日日本發(fā)生里氏8.8級強震,東京的高層建筑普遍震感強烈,一棟20層高的高層建筑震動時間達到4分鐘,震動幅度超過20cm,遠在千里之外的上海的高樓也有明顯震感,引起人們的極度恐慌。除了地震、大風外,電梯的運行、建筑內群體性活動、城市軌道交通等也會引起高層建筑的震動[1]。2011年7月5日,韓國首爾一棟39層高的建筑震動近10分鐘,致使數(shù)百人驚慌逃離。最后查明,原因竟是在12層一些練習“跆搏”健身操的人和整個大樓結構產(chǎn)生共振引起。
對高層建筑進行實時動態(tài)監(jiān)測和診斷,及時評價震動對建筑的影響,發(fā)現(xiàn)建筑結構的損傷,評估其安全性,對可能出現(xiàn)的災害進行預測,已成為土木工程的必然要求[2]。
基于無線傳感網(wǎng)絡的高層建筑在線動態(tài)監(jiān)測系統(tǒng),通過分布在建筑物各處的三分量加速度傳感器采集建筑物三維加速度,采集的信息通過無線傳感網(wǎng)絡傳輸給上位機,估算建筑物的震動情況,并對建筑物的結構性能做出評估。
2 系統(tǒng)結構及組成
為了有效監(jiān)測建筑物整體動態(tài)情況,便于上位機重建建筑物當前狀態(tài),無線檢測節(jié)點應安裝在建筑物的關鍵部位。不同結構的建筑物其自由振動參數(shù)計算方法差異較大,且影響建筑物位移估算,故本文以框架結構高層建筑為例??蚣芙Y構由梁柱構成,在縱橫兩個方向都承受很大的力。為此,應分別在每層樓的梁柱結合處安裝無線檢測節(jié)點。
無線檢測節(jié)點實時檢測該點的三分量加速度,通過Zigbee網(wǎng)絡發(fā)送至中央?yún)f(xié)調器,再上傳至上位機處理。上位機可自行處理數(shù)據(jù);也可通過LAN(Local Area Network)網(wǎng)絡傳送至中心機房統(tǒng)一處理;或通過WAN(Wide Area Network)將信息傳送至遠程監(jiān)視計算機。系統(tǒng)結構圖如圖1所示。
圖1 系統(tǒng)結構圖
Zigbee設備在Zigbee網(wǎng)絡中分為協(xié)調器(Coordinator)、路由器(Router)和終端設備(End Device)三種。協(xié)調器負責初始化信道、建立通信地址表等。在本系統(tǒng)中,協(xié)調器除了負責建立通訊網(wǎng)絡外,還需要將其他節(jié)點檢測的數(shù)據(jù)上傳中央控制器(Central Controller),并將中央控制器的逐點巡檢等指令下達到各個通訊節(jié)點。路由器節(jié)點在本系統(tǒng)中除了提供數(shù)據(jù)傳輸路由外,還兼具檢測數(shù)據(jù)功能。終端設備節(jié)點在系統(tǒng)中只具備信號檢測功能。
3 硬件電路設計
系統(tǒng)硬件電路主要由檢測節(jié)點和中央控制器兩部分組成。由于檢測節(jié)點安裝在室內緊貼墻壁處,墻體、窗戶等會影響無線傳輸距離。為保證系統(tǒng)通訊的可靠性,選用Helicomm Zigbee通訊模塊IPLink1223,其最大通訊距離為100m,實驗顯示可在封閉狀態(tài)下穿越一層墻壁,符合系統(tǒng)要求。另外本模塊體積小、功耗低,發(fā)射時功耗為29mA,接收時功耗僅為27mA。為了提高通訊鏈路的可靠性,系統(tǒng)采用鏈狀拓撲結構,每條鏈路上采用雙路由器設置,既每層樓的Zigbee模塊設置兩個路由器。為避免與WIFI無線信號信道沖突,選用4、9、14、15信道,其工作頻段分別是2.425GHz、2.450GHz、2.457GHz和2.480GHz。
3.1 檢測節(jié)點硬件電路設計
檢測節(jié)點包括路由器檢測節(jié)點和終端設備檢測節(jié)點。其硬件電路完全相同,僅需在Zigbee模塊設置時分別設為路由器或終端節(jié)點即可。
選用Freescale MMA7260QT三軸加速度傳感器檢測建筑物的三分量加速度。MMA7260QT的加速度檢測范圍可通過選擇設定為±1.5g、±2g、±4g、±6g。當檢測范圍為±4g時,其檢測精度為300mV/g,與PIC16F886IML的10位AD轉換配合使用其檢測精度可達0.01075g。參照日本地震烈度表,當選擇檢測加速度范圍為±4g時,可以檢測I-VII地震引起的地面水平加速度[3][4]。另外該傳感器體積小功耗低,正常工作時功耗為500uA。
系統(tǒng)選用PIC16F886作為檢測節(jié)點的控制芯片。PIC16F886最多可實現(xiàn)14路10位AD轉換。通過設置可將AD轉換的參考電壓定為Vcc和GND,并可設置使用內部集成的RC時鐘信號,另外上電復位電路簡單,這使得外圍元器件降到最少。當使用4MHz時鐘信號時,芯片功耗僅為220uA。選用PIC16F886的QFN封裝,能進一步減小PCB板面積,節(jié)約成本,提高可靠性。PIC16F886和Zigbee模塊之間只需要用TTL電平實現(xiàn)串行通訊。
計算技術與自動化2014年6月
第33卷第2期楊 藝等:基于無線傳感網(wǎng)絡的高層建筑在線監(jiān)測系統(tǒng)設計
檢測節(jié)點硬件電路如圖2所示。
圖2 檢測節(jié)點硬件電路圖
3.2 中央節(jié)點硬件電路設計
中央節(jié)點負責控制Zigbee網(wǎng)絡中的協(xié)調器工作,將檢測節(jié)點的數(shù)據(jù)上傳到上位機,并向協(xié)調器下達上位機的指令。系統(tǒng)采用PIC18F23K22作為控制芯片,除了具備功耗低、體積小、外圍元件少等有點外,其還具有兩個URAT口,可滿足和同時與Zigbee協(xié)調器和上位機串行通訊的功能。由于系統(tǒng)采用3.3V供電,所以PIC18F23K22與上位機串口之間通訊的電平轉換采用MAX3232。中央控制器硬件電路設計如圖3所示。
圖3 中央節(jié)點硬件電路設計
4 控制芯片程序設計
從系統(tǒng)層面上來說,控制芯片程序設計分為加速度信號自檢程序、檢測程序和數(shù)據(jù)傳輸程序。檢測節(jié)點的程序相同,且包括上述三個內容。而中央控制器僅有數(shù)據(jù)傳輸指令,且與檢測節(jié)點的程序不同。
4.1 傳輸數(shù)據(jù)格式規(guī)定
IPLink1223傳輸?shù)拿繋瑪?shù)據(jù)格式如圖4所示。
圖4 數(shù)據(jù)傳輸幀格式
報頭(Header)1Byte的第5、6、7三個位可表示該幀數(shù)據(jù)的類型,分別為“命令請求”、“命令應答”、“數(shù)據(jù)請求”或“ASK應答”。當上位機對所有檢測點進行巡檢時,IPLink1223模塊會自動返回ASK應答數(shù)據(jù)幀。合理應用該方式可大大簡化巡檢應答程序。
LQI用于指示鏈路信號質量,如果該檢測點信號鏈路質量過低會影響傳輸信號的可靠性,因此在系統(tǒng)自檢過程中可以通過讀取該字段檢測信號鏈路質量,如果信號過低,可在上位機報警提示。
目的地址(Address)字段用于指定本幀數(shù)據(jù)發(fā)往的目標。其中協(xié)調器的地址0000H,廣播地址為FFFFH。當上位機巡檢時,可采用逐點巡檢方式,也可采用廣播巡檢方式。為便于系統(tǒng)后期信號處理,系統(tǒng)規(guī)定檢測節(jié)點地址的高位為樓層號、低位為節(jié)點號。如0304H,表示第3層的第4個檢測節(jié)點。另外規(guī)定01和02節(jié)點號為路由檢測節(jié)點。
數(shù)據(jù)(Data)是檢測節(jié)點上傳的有效數(shù)據(jù),是用戶自己定義的內容。根據(jù)實際需要,本系統(tǒng)有效負載為7個字節(jié)。從高到低分別是狀態(tài)(Status)1字節(jié)、X軸加速度(X-axis Acceleration)2字節(jié)、Y軸加速度(Y-axis Acceleration)2字節(jié)、Z軸加速度(Z-axis Acceleration)2字節(jié)。其中狀態(tài)字節(jié)含義分別是:FFH表示正常、00H表示電源故障、AAH表示X軸加速度數(shù)據(jù)讀取錯誤、BBH表示Y軸加速度數(shù)據(jù)讀取錯誤、CCH表示Z軸加速度數(shù)據(jù)讀取錯誤。
因為Data字段的數(shù)據(jù)位數(shù)為7位,所以數(shù)據(jù)長度(Data length)的數(shù)據(jù)始終未07H。
校驗字段(XOR),用于驗證傳輸數(shù)據(jù)正確性。系統(tǒng)對前面12個字節(jié)的數(shù)據(jù)進行異或,并存入校驗字段中。當接收端接收到信號時,首先計算數(shù)據(jù)前12個字節(jié)的異或結果,如果計算結果與校驗字段數(shù)據(jù)相同,則表示接收數(shù)據(jù)正確,否則錯誤。
4.2 檢測節(jié)點程序設計
檢測節(jié)點程序包括初始化程序、自檢程序、上位機巡檢應答程序、AD轉換程序、串行數(shù)據(jù)發(fā)送程序等幾個部門。程序流程圖如圖5所示。
圖5 檢測節(jié)點程序流程圖
初始化程序功能包括設置PIC16F886單片機使用內部振蕩信號、頻率4MHz;設置串口通訊格式;設置AD轉換標準等。自檢程序包括檢測電源電壓程序、AD轉化是否正常等。若自檢發(fā)現(xiàn)故障,直接在數(shù)據(jù)幀數(shù)據(jù)字段的第一個字節(jié)填寫相應的錯誤代碼發(fā)送出去。
當自檢無誤,系統(tǒng)判斷是否有上位機的巡檢指令。當接收到上位機的巡檢指令后,系統(tǒng)只需等待1秒空閑,Zigbee模塊會自動范圍一個ASK指令,并且攜帶本機地址。等待1秒,是為了躲過檢測點上傳數(shù)據(jù),不至于數(shù)據(jù)通道擁擠。
讀數(shù)據(jù)程序就是讀取AN8、AN9、AN10三個通道的AD轉換結果。因為系統(tǒng)采用10位AD轉換,因此程序直接將低8位送給對應的低位字節(jié),高2位送給對應的高位字節(jié)。發(fā)送數(shù)據(jù)程序調用串口發(fā)送數(shù)據(jù)。XOR字段為Zigbee模塊自動添加,無需處理。
4.3 中央節(jié)點程序設計
中心節(jié)點程序僅包含數(shù)據(jù)傳輸。分為接收檢測點數(shù)據(jù)并上傳上位機、下達巡檢指令兩個部分。程序流程圖如圖6所示。
當上電后,系統(tǒng)進入初始化程序。初始化程序主要完成設置PIC18F23K22單片機使用內部振蕩信號、頻率4MHz;設置串口1和串口2的通訊格式。自檢程序主要是檢測與協(xié)調器的通訊是否正常。如與協(xié)調器通訊有故障則在數(shù)據(jù)幀相應字段寫入錯誤代碼,并上傳給上位機。由于中央節(jié)點的通訊是單片機與上位機的通訊,因此單片機需要模擬一個數(shù)據(jù)幀格式。規(guī)定報頭為FFH、LQI為FFH、地址為0000H、XOR需要計算后寫入。
圖6 中心節(jié)點程序流程圖
當自檢無誤時,系統(tǒng)判斷是否有上位機巡檢指令。如有上位機巡檢,則將巡檢指令轉發(fā)給URAT1端口,再由Zigbee模塊發(fā)出。若沒有巡檢指令則判斷是否有檢測節(jié)點上傳數(shù)據(jù)。如有上傳數(shù)據(jù),則由URAT2上傳給上位機。
5 上位機軟件簡介
上位機采用VB.Net實現(xiàn)數(shù)據(jù)讀取、預處理和數(shù)據(jù)還原功能,并應用SQL Server存儲預處理數(shù)據(jù)和還原數(shù)據(jù)。
為了提高運行效率,上位機軟件采用多線程模式工作。軟件分為:主線程、數(shù)據(jù)讀取次線程、數(shù)據(jù)預處理次線程和數(shù)據(jù)還原次線程等4個線程。其中主線程完成操作界面控件響應、數(shù)據(jù)發(fā)送等功能。當COM接收到數(shù)據(jù)時觸發(fā)數(shù)據(jù)讀取次線程,并讀取串口數(shù)據(jù),當串口緩沖區(qū)字節(jié)為0時,關閉該線程。當數(shù)據(jù)讀取次線程讀取完一幀數(shù)據(jù)后觸發(fā)數(shù)據(jù)預處理次線程。當數(shù)據(jù)預處理次線程處理完一個幀數(shù)據(jù)后觸發(fā)數(shù)據(jù)還原線程。數(shù)據(jù)預處理次線程首先檢驗該幀數(shù)據(jù)的正確性,然后檢測該檢測點的數(shù)據(jù)鏈路質量及狀態(tài)位。如有故障則在頁面上顯示或報警。接著提取地址和X、Y、Z三個軸的加速度信息,并將該信息傳遞給數(shù)據(jù)還原次線程。最后調用系統(tǒng)時間、地址信息、狀態(tài)信息、LQI信息存入SQL的DataStuts數(shù)據(jù)表中。數(shù)據(jù)還原次線程完成將10位二進制的加速度數(shù)據(jù)轉換成為十進制浮點型數(shù)據(jù),并顯示在界面對應的控件上。同時,調用系統(tǒng)時間、地址信息和還原的加速度信息存入SQL的AccelerationData數(shù)據(jù)表中。上位機軟件運行程序主界面如圖7所示。
圖7 上位機程序主界面
6 結論及展望
經(jīng)實驗證明,本文所設計的基于無線傳感網(wǎng)絡的高層建筑在線監(jiān)測系統(tǒng)具有硬件可靠、組網(wǎng)簡單方便、檢測節(jié)點功耗低(發(fā)射和接收功耗小于60mA)、硬件電路外圍器件少等優(yōu)點。但仍然存在一些需要改進的地方:
1)本系統(tǒng)的檢測精度為0.01075g,雖然能檢測I級地震產(chǎn)生的地表加速度,但對于輕微的高層建筑晃動無法有效檢測。主要原因是加速度傳感器檢測精度過低。目前,如何提高三分量加速度傳感器的檢測精度并微型化,也是研究熱點問題。彌補本系統(tǒng)存在的不足,依賴于傳感器領域的研究成果及產(chǎn)品開發(fā)。
2)由于高層建筑震動的三分量加速度之間存在一定的耦合關系,本系統(tǒng)目前僅能提供各個監(jiān)測點的實時位移估算值。如何對X、Y、Z三軸加速度準確解耦,并找到更合理的位移估算算法需要進一步研究。
3)本系統(tǒng)能實時檢測建筑物的三分量加速度。如何利用這些加速度信息對建筑的狀態(tài)實現(xiàn)三維動態(tài)可視化重現(xiàn),需要進一步研究并實現(xiàn)。
參考文獻
[1] 姚錦寶,夏禾.列車運行引起高層建筑物震動分析[J].中國鐵道科學,2009,30(2):71-76.
[2] 刁建鵬.微波干涉測量在高層建筑動態(tài)監(jiān)測中的應用[J].震動與沖擊.2010,29(11):177-179.
[3] 朱亮,鄒兵,嚴龍. 基于MMA7260QT的危險場所跌倒檢測設備的研制[J].工業(yè)安全與環(huán)保2012,38(5):45-48.
[4] 陶玉貴,蔣慧. 基于DSP和MMA7260Q的車輛加速度測試系統(tǒng)設計[J]. 佳木斯大學學報. 2011,29(6): 845-847.
檢測節(jié)點硬件電路如圖2所示。
圖2 檢測節(jié)點硬件電路圖
3.2 中央節(jié)點硬件電路設計
中央節(jié)點負責控制Zigbee網(wǎng)絡中的協(xié)調器工作,將檢測節(jié)點的數(shù)據(jù)上傳到上位機,并向協(xié)調器下達上位機的指令。系統(tǒng)采用PIC18F23K22作為控制芯片,除了具備功耗低、體積小、外圍元件少等有點外,其還具有兩個URAT口,可滿足和同時與Zigbee協(xié)調器和上位機串行通訊的功能。由于系統(tǒng)采用3.3V供電,所以PIC18F23K22與上位機串口之間通訊的電平轉換采用MAX3232。中央控制器硬件電路設計如圖3所示。
圖3 中央節(jié)點硬件電路設計
4 控制芯片程序設計
從系統(tǒng)層面上來說,控制芯片程序設計分為加速度信號自檢程序、檢測程序和數(shù)據(jù)傳輸程序。檢測節(jié)點的程序相同,且包括上述三個內容。而中央控制器僅有數(shù)據(jù)傳輸指令,且與檢測節(jié)點的程序不同。
4.1 傳輸數(shù)據(jù)格式規(guī)定
IPLink1223傳輸?shù)拿繋瑪?shù)據(jù)格式如圖4所示。
圖4 數(shù)據(jù)傳輸幀格式
報頭(Header)1Byte的第5、6、7三個位可表示該幀數(shù)據(jù)的類型,分別為“命令請求”、“命令應答”、“數(shù)據(jù)請求”或“ASK應答”。當上位機對所有檢測點進行巡檢時,IPLink1223模塊會自動返回ASK應答數(shù)據(jù)幀。合理應用該方式可大大簡化巡檢應答程序。
LQI用于指示鏈路信號質量,如果該檢測點信號鏈路質量過低會影響傳輸信號的可靠性,因此在系統(tǒng)自檢過程中可以通過讀取該字段檢測信號鏈路質量,如果信號過低,可在上位機報警提示。
目的地址(Address)字段用于指定本幀數(shù)據(jù)發(fā)往的目標。其中協(xié)調器的地址0000H,廣播地址為FFFFH。當上位機巡檢時,可采用逐點巡檢方式,也可采用廣播巡檢方式。為便于系統(tǒng)后期信號處理,系統(tǒng)規(guī)定檢測節(jié)點地址的高位為樓層號、低位為節(jié)點號。如0304H,表示第3層的第4個檢測節(jié)點。另外規(guī)定01和02節(jié)點號為路由檢測節(jié)點。
數(shù)據(jù)(Data)是檢測節(jié)點上傳的有效數(shù)據(jù),是用戶自己定義的內容。根據(jù)實際需要,本系統(tǒng)有效負載為7個字節(jié)。從高到低分別是狀態(tài)(Status)1字節(jié)、X軸加速度(X-axis Acceleration)2字節(jié)、Y軸加速度(Y-axis Acceleration)2字節(jié)、Z軸加速度(Z-axis Acceleration)2字節(jié)。其中狀態(tài)字節(jié)含義分別是:FFH表示正常、00H表示電源故障、AAH表示X軸加速度數(shù)據(jù)讀取錯誤、BBH表示Y軸加速度數(shù)據(jù)讀取錯誤、CCH表示Z軸加速度數(shù)據(jù)讀取錯誤。
因為Data字段的數(shù)據(jù)位數(shù)為7位,所以數(shù)據(jù)長度(Data length)的數(shù)據(jù)始終未07H。
校驗字段(XOR),用于驗證傳輸數(shù)據(jù)正確性。系統(tǒng)對前面12個字節(jié)的數(shù)據(jù)進行異或,并存入校驗字段中。當接收端接收到信號時,首先計算數(shù)據(jù)前12個字節(jié)的異或結果,如果計算結果與校驗字段數(shù)據(jù)相同,則表示接收數(shù)據(jù)正確,否則錯誤。
4.2 檢測節(jié)點程序設計
檢測節(jié)點程序包括初始化程序、自檢程序、上位機巡檢應答程序、AD轉換程序、串行數(shù)據(jù)發(fā)送程序等幾個部門。程序流程圖如圖5所示。
圖5 檢測節(jié)點程序流程圖
初始化程序功能包括設置PIC16F886單片機使用內部振蕩信號、頻率4MHz;設置串口通訊格式;設置AD轉換標準等。自檢程序包括檢測電源電壓程序、AD轉化是否正常等。若自檢發(fā)現(xiàn)故障,直接在數(shù)據(jù)幀數(shù)據(jù)字段的第一個字節(jié)填寫相應的錯誤代碼發(fā)送出去。
當自檢無誤,系統(tǒng)判斷是否有上位機的巡檢指令。當接收到上位機的巡檢指令后,系統(tǒng)只需等待1秒空閑,Zigbee模塊會自動范圍一個ASK指令,并且攜帶本機地址。等待1秒,是為了躲過檢測點上傳數(shù)據(jù),不至于數(shù)據(jù)通道擁擠。
讀數(shù)據(jù)程序就是讀取AN8、AN9、AN10三個通道的AD轉換結果。因為系統(tǒng)采用10位AD轉換,因此程序直接將低8位送給對應的低位字節(jié),高2位送給對應的高位字節(jié)。發(fā)送數(shù)據(jù)程序調用串口發(fā)送數(shù)據(jù)。XOR字段為Zigbee模塊自動添加,無需處理。
4.3 中央節(jié)點程序設計
中心節(jié)點程序僅包含數(shù)據(jù)傳輸。分為接收檢測點數(shù)據(jù)并上傳上位機、下達巡檢指令兩個部分。程序流程圖如圖6所示。
當上電后,系統(tǒng)進入初始化程序。初始化程序主要完成設置PIC18F23K22單片機使用內部振蕩信號、頻率4MHz;設置串口1和串口2的通訊格式。自檢程序主要是檢測與協(xié)調器的通訊是否正常。如與協(xié)調器通訊有故障則在數(shù)據(jù)幀相應字段寫入錯誤代碼,并上傳給上位機。由于中央節(jié)點的通訊是單片機與上位機的通訊,因此單片機需要模擬一個數(shù)據(jù)幀格式。規(guī)定報頭為FFH、LQI為FFH、地址為0000H、XOR需要計算后寫入。
圖6 中心節(jié)點程序流程圖
當自檢無誤時,系統(tǒng)判斷是否有上位機巡檢指令。如有上位機巡檢,則將巡檢指令轉發(fā)給URAT1端口,再由Zigbee模塊發(fā)出。若沒有巡檢指令則判斷是否有檢測節(jié)點上傳數(shù)據(jù)。如有上傳數(shù)據(jù),則由URAT2上傳給上位機。
5 上位機軟件簡介
上位機采用VB.Net實現(xiàn)數(shù)據(jù)讀取、預處理和數(shù)據(jù)還原功能,并應用SQL Server存儲預處理數(shù)據(jù)和還原數(shù)據(jù)。
為了提高運行效率,上位機軟件采用多線程模式工作。軟件分為:主線程、數(shù)據(jù)讀取次線程、數(shù)據(jù)預處理次線程和數(shù)據(jù)還原次線程等4個線程。其中主線程完成操作界面控件響應、數(shù)據(jù)發(fā)送等功能。當COM接收到數(shù)據(jù)時觸發(fā)數(shù)據(jù)讀取次線程,并讀取串口數(shù)據(jù),當串口緩沖區(qū)字節(jié)為0時,關閉該線程。當數(shù)據(jù)讀取次線程讀取完一幀數(shù)據(jù)后觸發(fā)數(shù)據(jù)預處理次線程。當數(shù)據(jù)預處理次線程處理完一個幀數(shù)據(jù)后觸發(fā)數(shù)據(jù)還原線程。數(shù)據(jù)預處理次線程首先檢驗該幀數(shù)據(jù)的正確性,然后檢測該檢測點的數(shù)據(jù)鏈路質量及狀態(tài)位。如有故障則在頁面上顯示或報警。接著提取地址和X、Y、Z三個軸的加速度信息,并將該信息傳遞給數(shù)據(jù)還原次線程。最后調用系統(tǒng)時間、地址信息、狀態(tài)信息、LQI信息存入SQL的DataStuts數(shù)據(jù)表中。數(shù)據(jù)還原次線程完成將10位二進制的加速度數(shù)據(jù)轉換成為十進制浮點型數(shù)據(jù),并顯示在界面對應的控件上。同時,調用系統(tǒng)時間、地址信息和還原的加速度信息存入SQL的AccelerationData數(shù)據(jù)表中。上位機軟件運行程序主界面如圖7所示。
圖7 上位機程序主界面
6 結論及展望
經(jīng)實驗證明,本文所設計的基于無線傳感網(wǎng)絡的高層建筑在線監(jiān)測系統(tǒng)具有硬件可靠、組網(wǎng)簡單方便、檢測節(jié)點功耗低(發(fā)射和接收功耗小于60mA)、硬件電路外圍器件少等優(yōu)點。但仍然存在一些需要改進的地方:
1)本系統(tǒng)的檢測精度為0.01075g,雖然能檢測I級地震產(chǎn)生的地表加速度,但對于輕微的高層建筑晃動無法有效檢測。主要原因是加速度傳感器檢測精度過低。目前,如何提高三分量加速度傳感器的檢測精度并微型化,也是研究熱點問題。彌補本系統(tǒng)存在的不足,依賴于傳感器領域的研究成果及產(chǎn)品開發(fā)。
2)由于高層建筑震動的三分量加速度之間存在一定的耦合關系,本系統(tǒng)目前僅能提供各個監(jiān)測點的實時位移估算值。如何對X、Y、Z三軸加速度準確解耦,并找到更合理的位移估算算法需要進一步研究。
3)本系統(tǒng)能實時檢測建筑物的三分量加速度。如何利用這些加速度信息對建筑的狀態(tài)實現(xiàn)三維動態(tài)可視化重現(xiàn),需要進一步研究并實現(xiàn)。
參考文獻
[1] 姚錦寶,夏禾.列車運行引起高層建筑物震動分析[J].中國鐵道科學,2009,30(2):71-76.
[2] 刁建鵬.微波干涉測量在高層建筑動態(tài)監(jiān)測中的應用[J].震動與沖擊.2010,29(11):177-179.
[3] 朱亮,鄒兵,嚴龍. 基于MMA7260QT的危險場所跌倒檢測設備的研制[J].工業(yè)安全與環(huán)保2012,38(5):45-48.
[4] 陶玉貴,蔣慧. 基于DSP和MMA7260Q的車輛加速度測試系統(tǒng)設計[J]. 佳木斯大學學報. 2011,29(6): 845-847.
檢測節(jié)點硬件電路如圖2所示。
圖2 檢測節(jié)點硬件電路圖
3.2 中央節(jié)點硬件電路設計
中央節(jié)點負責控制Zigbee網(wǎng)絡中的協(xié)調器工作,將檢測節(jié)點的數(shù)據(jù)上傳到上位機,并向協(xié)調器下達上位機的指令。系統(tǒng)采用PIC18F23K22作為控制芯片,除了具備功耗低、體積小、外圍元件少等有點外,其還具有兩個URAT口,可滿足和同時與Zigbee協(xié)調器和上位機串行通訊的功能。由于系統(tǒng)采用3.3V供電,所以PIC18F23K22與上位機串口之間通訊的電平轉換采用MAX3232。中央控制器硬件電路設計如圖3所示。
圖3 中央節(jié)點硬件電路設計
4 控制芯片程序設計
從系統(tǒng)層面上來說,控制芯片程序設計分為加速度信號自檢程序、檢測程序和數(shù)據(jù)傳輸程序。檢測節(jié)點的程序相同,且包括上述三個內容。而中央控制器僅有數(shù)據(jù)傳輸指令,且與檢測節(jié)點的程序不同。
4.1 傳輸數(shù)據(jù)格式規(guī)定
IPLink1223傳輸?shù)拿繋瑪?shù)據(jù)格式如圖4所示。
圖4 數(shù)據(jù)傳輸幀格式
報頭(Header)1Byte的第5、6、7三個位可表示該幀數(shù)據(jù)的類型,分別為“命令請求”、“命令應答”、“數(shù)據(jù)請求”或“ASK應答”。當上位機對所有檢測點進行巡檢時,IPLink1223模塊會自動返回ASK應答數(shù)據(jù)幀。合理應用該方式可大大簡化巡檢應答程序。
LQI用于指示鏈路信號質量,如果該檢測點信號鏈路質量過低會影響傳輸信號的可靠性,因此在系統(tǒng)自檢過程中可以通過讀取該字段檢測信號鏈路質量,如果信號過低,可在上位機報警提示。
目的地址(Address)字段用于指定本幀數(shù)據(jù)發(fā)往的目標。其中協(xié)調器的地址0000H,廣播地址為FFFFH。當上位機巡檢時,可采用逐點巡檢方式,也可采用廣播巡檢方式。為便于系統(tǒng)后期信號處理,系統(tǒng)規(guī)定檢測節(jié)點地址的高位為樓層號、低位為節(jié)點號。如0304H,表示第3層的第4個檢測節(jié)點。另外規(guī)定01和02節(jié)點號為路由檢測節(jié)點。
數(shù)據(jù)(Data)是檢測節(jié)點上傳的有效數(shù)據(jù),是用戶自己定義的內容。根據(jù)實際需要,本系統(tǒng)有效負載為7個字節(jié)。從高到低分別是狀態(tài)(Status)1字節(jié)、X軸加速度(X-axis Acceleration)2字節(jié)、Y軸加速度(Y-axis Acceleration)2字節(jié)、Z軸加速度(Z-axis Acceleration)2字節(jié)。其中狀態(tài)字節(jié)含義分別是:FFH表示正常、00H表示電源故障、AAH表示X軸加速度數(shù)據(jù)讀取錯誤、BBH表示Y軸加速度數(shù)據(jù)讀取錯誤、CCH表示Z軸加速度數(shù)據(jù)讀取錯誤。
因為Data字段的數(shù)據(jù)位數(shù)為7位,所以數(shù)據(jù)長度(Data length)的數(shù)據(jù)始終未07H。
校驗字段(XOR),用于驗證傳輸數(shù)據(jù)正確性。系統(tǒng)對前面12個字節(jié)的數(shù)據(jù)進行異或,并存入校驗字段中。當接收端接收到信號時,首先計算數(shù)據(jù)前12個字節(jié)的異或結果,如果計算結果與校驗字段數(shù)據(jù)相同,則表示接收數(shù)據(jù)正確,否則錯誤。
4.2 檢測節(jié)點程序設計
檢測節(jié)點程序包括初始化程序、自檢程序、上位機巡檢應答程序、AD轉換程序、串行數(shù)據(jù)發(fā)送程序等幾個部門。程序流程圖如圖5所示。
圖5 檢測節(jié)點程序流程圖
初始化程序功能包括設置PIC16F886單片機使用內部振蕩信號、頻率4MHz;設置串口通訊格式;設置AD轉換標準等。自檢程序包括檢測電源電壓程序、AD轉化是否正常等。若自檢發(fā)現(xiàn)故障,直接在數(shù)據(jù)幀數(shù)據(jù)字段的第一個字節(jié)填寫相應的錯誤代碼發(fā)送出去。
當自檢無誤,系統(tǒng)判斷是否有上位機的巡檢指令。當接收到上位機的巡檢指令后,系統(tǒng)只需等待1秒空閑,Zigbee模塊會自動范圍一個ASK指令,并且攜帶本機地址。等待1秒,是為了躲過檢測點上傳數(shù)據(jù),不至于數(shù)據(jù)通道擁擠。
讀數(shù)據(jù)程序就是讀取AN8、AN9、AN10三個通道的AD轉換結果。因為系統(tǒng)采用10位AD轉換,因此程序直接將低8位送給對應的低位字節(jié),高2位送給對應的高位字節(jié)。發(fā)送數(shù)據(jù)程序調用串口發(fā)送數(shù)據(jù)。XOR字段為Zigbee模塊自動添加,無需處理。
4.3 中央節(jié)點程序設計
中心節(jié)點程序僅包含數(shù)據(jù)傳輸。分為接收檢測點數(shù)據(jù)并上傳上位機、下達巡檢指令兩個部分。程序流程圖如圖6所示。
當上電后,系統(tǒng)進入初始化程序。初始化程序主要完成設置PIC18F23K22單片機使用內部振蕩信號、頻率4MHz;設置串口1和串口2的通訊格式。自檢程序主要是檢測與協(xié)調器的通訊是否正常。如與協(xié)調器通訊有故障則在數(shù)據(jù)幀相應字段寫入錯誤代碼,并上傳給上位機。由于中央節(jié)點的通訊是單片機與上位機的通訊,因此單片機需要模擬一個數(shù)據(jù)幀格式。規(guī)定報頭為FFH、LQI為FFH、地址為0000H、XOR需要計算后寫入。
圖6 中心節(jié)點程序流程圖
當自檢無誤時,系統(tǒng)判斷是否有上位機巡檢指令。如有上位機巡檢,則將巡檢指令轉發(fā)給URAT1端口,再由Zigbee模塊發(fā)出。若沒有巡檢指令則判斷是否有檢測節(jié)點上傳數(shù)據(jù)。如有上傳數(shù)據(jù),則由URAT2上傳給上位機。
5 上位機軟件簡介
上位機采用VB.Net實現(xiàn)數(shù)據(jù)讀取、預處理和數(shù)據(jù)還原功能,并應用SQL Server存儲預處理數(shù)據(jù)和還原數(shù)據(jù)。
為了提高運行效率,上位機軟件采用多線程模式工作。軟件分為:主線程、數(shù)據(jù)讀取次線程、數(shù)據(jù)預處理次線程和數(shù)據(jù)還原次線程等4個線程。其中主線程完成操作界面控件響應、數(shù)據(jù)發(fā)送等功能。當COM接收到數(shù)據(jù)時觸發(fā)數(shù)據(jù)讀取次線程,并讀取串口數(shù)據(jù),當串口緩沖區(qū)字節(jié)為0時,關閉該線程。當數(shù)據(jù)讀取次線程讀取完一幀數(shù)據(jù)后觸發(fā)數(shù)據(jù)預處理次線程。當數(shù)據(jù)預處理次線程處理完一個幀數(shù)據(jù)后觸發(fā)數(shù)據(jù)還原線程。數(shù)據(jù)預處理次線程首先檢驗該幀數(shù)據(jù)的正確性,然后檢測該檢測點的數(shù)據(jù)鏈路質量及狀態(tài)位。如有故障則在頁面上顯示或報警。接著提取地址和X、Y、Z三個軸的加速度信息,并將該信息傳遞給數(shù)據(jù)還原次線程。最后調用系統(tǒng)時間、地址信息、狀態(tài)信息、LQI信息存入SQL的DataStuts數(shù)據(jù)表中。數(shù)據(jù)還原次線程完成將10位二進制的加速度數(shù)據(jù)轉換成為十進制浮點型數(shù)據(jù),并顯示在界面對應的控件上。同時,調用系統(tǒng)時間、地址信息和還原的加速度信息存入SQL的AccelerationData數(shù)據(jù)表中。上位機軟件運行程序主界面如圖7所示。
圖7 上位機程序主界面
6 結論及展望
經(jīng)實驗證明,本文所設計的基于無線傳感網(wǎng)絡的高層建筑在線監(jiān)測系統(tǒng)具有硬件可靠、組網(wǎng)簡單方便、檢測節(jié)點功耗低(發(fā)射和接收功耗小于60mA)、硬件電路外圍器件少等優(yōu)點。但仍然存在一些需要改進的地方:
1)本系統(tǒng)的檢測精度為0.01075g,雖然能檢測I級地震產(chǎn)生的地表加速度,但對于輕微的高層建筑晃動無法有效檢測。主要原因是加速度傳感器檢測精度過低。目前,如何提高三分量加速度傳感器的檢測精度并微型化,也是研究熱點問題。彌補本系統(tǒng)存在的不足,依賴于傳感器領域的研究成果及產(chǎn)品開發(fā)。
2)由于高層建筑震動的三分量加速度之間存在一定的耦合關系,本系統(tǒng)目前僅能提供各個監(jiān)測點的實時位移估算值。如何對X、Y、Z三軸加速度準確解耦,并找到更合理的位移估算算法需要進一步研究。
3)本系統(tǒng)能實時檢測建筑物的三分量加速度。如何利用這些加速度信息對建筑的狀態(tài)實現(xiàn)三維動態(tài)可視化重現(xiàn),需要進一步研究并實現(xiàn)。
參考文獻
[1] 姚錦寶,夏禾.列車運行引起高層建筑物震動分析[J].中國鐵道科學,2009,30(2):71-76.
[2] 刁建鵬.微波干涉測量在高層建筑動態(tài)監(jiān)測中的應用[J].震動與沖擊.2010,29(11):177-179.
[3] 朱亮,鄒兵,嚴龍. 基于MMA7260QT的危險場所跌倒檢測設備的研制[J].工業(yè)安全與環(huán)保2012,38(5):45-48.
[4] 陶玉貴,蔣慧. 基于DSP和MMA7260Q的車輛加速度測試系統(tǒng)設計[J]. 佳木斯大學學報. 2011,29(6): 845-847.