張開洪,李 聰,張文會
(重慶交通大學信息科學與工程學院,重慶400074)
近年來,橋梁因結(jié)構(gòu)老化和損傷而出現(xiàn)垮塌的事件屢見不鮮,橋梁結(jié)構(gòu)健康監(jiān)測受到全世界的廣泛關注?,F(xiàn)有橋梁健康監(jiān)測系統(tǒng)存在供電難、維護難、成本高、穩(wěn)定性差等問題,難以在中小型橋梁中普及應用,有必要對現(xiàn)有系統(tǒng)進行優(yōu)化改進。
國內(nèi)外在結(jié)構(gòu)環(huán)境結(jié)構(gòu)監(jiān)測方向提出一些優(yōu)秀的成果。Zhuang,等[1]提出了基于 ARM9和 ZigBee的橋梁應力監(jiān)測系統(tǒng);紀航宇,等[2]提出了利用802.15.4協(xié)議組網(wǎng),并在基站端采用GPRS同上位機通信的梁結(jié)構(gòu)監(jiān)測系統(tǒng);嚴麗平,等[3]提出的一種基于ZigBee與GPRS的嵌入式水質(zhì)監(jiān)測系統(tǒng)中,介紹了一種3層體系的水質(zhì)監(jiān)測系統(tǒng),將ZigBee技術,GPRS技術與嵌入式技術結(jié)合來實現(xiàn)環(huán)境遠程監(jiān)測;T.Harms,等[4]提出基于 GPRS 無線傳輸?shù)倪h程橋梁監(jiān)測系統(tǒng)。但由于橋梁結(jié)構(gòu)健康監(jiān)測是個長期性工程,如何處理傳感器采集所得龐大的數(shù)據(jù)量以降低網(wǎng)絡傳輸壓力、減少數(shù)據(jù)冗余,以及如何降低整個系統(tǒng)的功耗,這些問題還需要深入研究。
筆者針對橋梁健康監(jiān)測系統(tǒng)的現(xiàn)場數(shù)據(jù)采集和傳輸部分,提出基于嵌入式技術、ZigBee無線網(wǎng)絡技術和GPRS無線傳輸技術相結(jié)合的全新的橋梁數(shù)據(jù)采集系統(tǒng)。利用嵌入式結(jié)合GPRS網(wǎng)絡實現(xiàn)控制數(shù)據(jù)采集、數(shù)據(jù)融合、數(shù)據(jù)處理、誤差分析、數(shù)據(jù)存儲和數(shù)據(jù)傳輸?shù)墓δ?,解決了工控機耗電量大、維護困難的缺點;利用ZigBee無線傳感網(wǎng)絡和傳感器節(jié)點電源自控制技術進行數(shù)據(jù)采集、數(shù)據(jù)傳輸和電源管理,解決了布線困難、布線成本高的缺陷,提高了數(shù)據(jù)的可靠性。本系統(tǒng)通過嵌入式系統(tǒng)休眠、ZigBee模塊休眠、傳感器節(jié)點電源管理等措施,大大降低了整個數(shù)據(jù)采集系統(tǒng)的功耗。
為了對橋梁進行完整地、系統(tǒng)地評估與分析,橋梁健康監(jiān)測系統(tǒng)應具備可靠、穩(wěn)定的分析與評估子系統(tǒng)即遠程數(shù)據(jù)管理與分析中心、數(shù)據(jù)預處理的現(xiàn)場采集子系統(tǒng)、環(huán)境變量采集的傳感器子系統(tǒng)(圖1)。
圖1 系統(tǒng)總體方案Fig.1 Overview of system architecture
遠程數(shù)據(jù)管理分析中心由數(shù)據(jù)后期分析再現(xiàn)子系統(tǒng)、專家評估及仿真應用子系統(tǒng)組成,包括數(shù)據(jù)處理程序、參數(shù)仿真程序、數(shù)據(jù)報表程序等。主要功能是對數(shù)據(jù)分析,從中再現(xiàn)問題發(fā)生的時間情況以及生成報表等,比如裂縫發(fā)生的位置、形狀、時間以及其發(fā)展過程。該子系統(tǒng)是基于PC服務器的上位子系統(tǒng),軟硬件都是成熟產(chǎn)品,本系統(tǒng)中采用重慶交通大學自主研發(fā)的橋梁健康監(jiān)測服務器系統(tǒng)。
現(xiàn)場數(shù)據(jù)采集系統(tǒng)是該系統(tǒng)的核心,主要完成動態(tài)電源管理功能,網(wǎng)絡數(shù)據(jù)接收功能,多源異構(gòu)傳感器數(shù)據(jù)預處理、數(shù)據(jù)庫建立及存儲,通過GPRS上傳數(shù)據(jù)至服務器??紤]到系統(tǒng)的嵌入式特點,采用通用性強、易裁減、易開發(fā)的嵌入式Linux作為操作系統(tǒng)。
傳感器子系統(tǒng)主要負責采集不同的橋梁結(jié)構(gòu)、環(huán)境等數(shù)據(jù),并以無線的方式傳回現(xiàn)場數(shù)據(jù)采集子系統(tǒng)。建立在IEEE 802.15.4(LR_WPAN,低速率無線個人區(qū)域網(wǎng))上的ZigBee技術是由ZigBee聯(lián)盟推出的近距離、低復雜度、低功耗、低成本的新型無線通信技術。將不同類型的傳感器與ZigBee模塊組合成無線傳感器節(jié)點,如溫度測量節(jié)點、濕度測量節(jié)點、撓度測量節(jié)點、應變測量節(jié)點等。由ZigBee無線傳感器組建的網(wǎng)絡匯集所有測量節(jié)點的數(shù)據(jù)給現(xiàn)場采集子系統(tǒng),再通過GPRS上傳至服務器。
為了能達到集中分析預處理多源異構(gòu)傳感器數(shù)據(jù)的目的,該子系統(tǒng)中采用目前流行的嵌入式Linux操作系統(tǒng),實現(xiàn)了系統(tǒng)的低成本、易開發(fā)的特性。
選用了Samsung公司基于ARM920T內(nèi)核的S3C2440A作為系統(tǒng)處理器控制核心;存儲采用Samsung公 司 的 K9F1208,容 量 為 64M;內(nèi) 存 為SST39F1601,大小為64M。硬件設計采用核心板加母板的方式,核心板包含ARM最小系統(tǒng),母板主要有電源部分、ZigBee基站部分、GPRS模塊部分和接口部分等4大部分,具體硬件結(jié)構(gòu)如圖2。
圖2 現(xiàn)場數(shù)據(jù)采集子系統(tǒng)硬件結(jié)構(gòu)Fig.2 Overview of hardware architecture of on-site data acquisition system
S3C2440A處理器內(nèi)部自帶的名為“Steppingstone”的4K SRAM緩沖器,用以支持NAND FLASH啟動[5]。系統(tǒng)上電后,NAND FLASH的前4K代碼將被拷貝到處理器內(nèi)部4K RAM中執(zhí)行,實際上前4K代碼即為類似于PC機BIOS引導程序,用以引導操作系統(tǒng)啟動。在前4K的程序中,U-boot將完成中斷向量表初始化、關閉看門狗、設置堆棧地址、代碼拷貝等一系列工作,當將自身拷貝到SDRAM后,即跳轉(zhuǎn)到內(nèi)存中運行,進而引導Linux操作系統(tǒng)啟動。Linux系統(tǒng)啟動后將通過初始化腳本來自動運行數(shù)據(jù)采集程序。系統(tǒng)中舍棄掉專為方便開發(fā)的NOR FLASH是為了減小板載設備功耗,采用 NAND FALSH+SDRAM的模式,只要對NAND分區(qū)合理,完全能夠滿足系統(tǒng)穩(wěn)定性與可靠性的要求。ZigBee基站設計是將帶有完全功能的ZigBee FFD模塊通過SPI總線接入系統(tǒng)母板,可進行高效穩(wěn)定的傳輸數(shù)據(jù)。GPRS模塊與系統(tǒng)則采用RS232接口連接。
本系統(tǒng)關于橋梁數(shù)據(jù)的用戶層分析是在遠程服務器端進行,所以此處僅介紹在現(xiàn)場采集部分的軟件設計。嵌入式Linux軟件平臺是典型的分層體系,通常是由以下4層構(gòu)成:Bootloader、Linux內(nèi)核、文件系統(tǒng)、用戶應用程序(圖3)。筆者選用開源的Uboot作為引導程序,Linux 內(nèi)核版本為 Linux 2.6.38.8,文件系統(tǒng)采用cramfs與yaffs結(jié)合的模式,用只讀的cramfs作為根文件系統(tǒng)掛載,增加系統(tǒng)的穩(wěn)定性,而yaffs的易可讀寫則非常適合應用程序的存放。
圖3 系統(tǒng)軟件分層模型Fig.3 Layered model of system software
2.2.1 嵌入式數(shù)據(jù)庫SQLite3的移植與開發(fā)
SQLite是一款輕量級的開源嵌入式數(shù)據(jù)庫,使用方便,性能出眾,廣泛應用于消費電子、醫(yī)療、工業(yè)控制、軍事等各領域。SQLite3是其最新版本(目前穩(wěn)定版為3.7.11),SQLite3提供的C接口可方便地為開發(fā)服務:如sqlite_open打開SQLite3數(shù)據(jù)庫,sqlite_close關閉 SQLite3數(shù)據(jù)庫,sqlite_exec執(zhí)行SQL語句等。
Sqlite3的移植過程如下:
1)配置編譯并安裝 sqlite。進入 sqlite-3.7.11根目錄下運行命令“./configure-host=arm-linux-prefix=/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t-disable-tcl”生成Makefile文件。運行命令“make”對 sqlite-3.7.11源代碼進行編譯。運行命令“make install”安裝 sqlite-3.7.11。
2)Sqlite函數(shù)庫及相關頭文件移植。復制/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib/目錄下的libsqlite3.so.0到要制作的目標文件系統(tǒng)的 lib目錄中。復制/usr/local/arm/4.3.2/armnone-linux-gnueabi/libc/armv4t/include/目錄下的sqlite3.h到交叉編譯器的默認頭文件目錄/usr/local/arm/4.3.2/arm-none-linux-gnueabi/include 目錄下。
嵌入式橋梁健康監(jiān)測的數(shù)據(jù)概念模型設計如圖4。
圖4 概念模型Fig.4 Database conceptual model
創(chuàng)建數(shù)據(jù)庫與數(shù)據(jù)表:
1)創(chuàng)建數(shù)據(jù)庫。在應用程序目錄運行命令“sqlite3 bridge_monitoringdata.db”,創(chuàng)建名為 bridge_monitoringdata.db的數(shù)據(jù)庫文件并進入sqlite的操作終端。
2)在終端下輸入以下命令依次創(chuàng)建數(shù)據(jù)表:sqlite>create table bridge_monitoring_table(bridge_name,bridge_id,bridge_info);sqlite>create table temperature_info_table(sensor_id,sensor_value,date_time);sqlite>create table humidity_info_table(sensor_id,sensor_value,date_time);sqlite>create table strain_info_table(sensor_id,sensor_value,date_time);sqlite>create table vibration_info_table(sensor_id,sensor_value,date_time);
創(chuàng)建完成的數(shù)據(jù)庫邏輯模型見表1。
表1 數(shù)據(jù)庫邏輯模型Table 1 Logical model of database
2.2.2 現(xiàn)場數(shù)據(jù)預處理過程設計
遠程橋梁健康監(jiān)測的最終評估是在遠程服務器端進行,而龐大的監(jiān)測數(shù)據(jù)量中數(shù)據(jù)冗余度很高,從而引起ZigBee網(wǎng)絡節(jié)點間頻繁的信道搶占,導致網(wǎng)絡延時增大甚至網(wǎng)絡癱瘓[6]。為了解決這個問題,采用增加現(xiàn)場數(shù)據(jù)預處理的方法,即在傳感器數(shù)據(jù)存儲轉(zhuǎn)發(fā)之前對其進行數(shù)據(jù)融合處理。數(shù)據(jù)預處理流程圖如圖5。
圖5 數(shù)據(jù)預處理流程Fig.5 Data pre-processing progress
2.2.3 GPRS 數(shù)據(jù)發(fā)送程序開發(fā)
GPRS數(shù)據(jù)發(fā)送程序主要完成在系統(tǒng)啟動時自動撥號上網(wǎng),并通過檢測數(shù)據(jù)通信流來喚醒休眠系統(tǒng)的機制來大幅降低系統(tǒng)功耗并能確保系統(tǒng)不斷線的實時數(shù)據(jù)傳輸。系統(tǒng)上電后程序默認進入休眠狀態(tài),當檢測到通信請求后,判斷請求來自上層服務器還是下層數(shù)據(jù)采集系統(tǒng),并按時不同請求完成不同任務,即轉(zhuǎn)發(fā)或預處理存儲。設定一定時間間隔無通信響應則使系統(tǒng)進入休眠狀態(tài)。
1)移植PPP協(xié)議
PPP協(xié)議工作與Linux系統(tǒng)之上,它支持開機自動撥號,支持常時在線、自動掛斷定時模式。PPP協(xié)議屬于請求-應答方式,用戶端向ISP服務端發(fā)出請求,ISP服務端作出應答。整個協(xié)商完成后便可通過GPRS模塊進行Internet IP數(shù)據(jù)格式傳輸。
根據(jù)板級配置修改ppp-on,ppp-off及ppp-on-dialer等3個配置腳本。在ppp-on中刪除賬號與密碼,并修改電話號碼為相應的GPRS模塊支持的號碼,如*99***1#,刪除ppp-on-dialer中的賬號與密碼。并在內(nèi)核配置時增加對PPP與TCP協(xié)議的支持。
2)配置GPRS模塊
正確配置波特率,設置數(shù)據(jù)包格式與默認網(wǎng)關,撥號連接服務器。然后即可進行數(shù)據(jù)通信,整個流程如圖6。
圖6 數(shù)據(jù)預處理流程Fig.6 GPRS dial-up connection progress
無線傳感器網(wǎng)絡處于整個監(jiān)測系統(tǒng)的最底層,傳感器節(jié)點根據(jù)橋梁結(jié)構(gòu)要求分布在橋梁內(nèi)外不同監(jiān)測點,將精密傳感器與ZigBee無線傳輸模塊結(jié)合組成無線傳感節(jié)點。每個傳感器節(jié)點包括3個組成部分:精密傳感器、內(nèi)置ZigBee協(xié)議棧的無線單片機模塊(RF-2430)、電源部分(電池組)。
目前ZigBee模塊已經(jīng)比較成熟,本系統(tǒng)選用無線龍ZigBee無線傳感器網(wǎng)絡專業(yè)開發(fā)模塊RF-2430,它采用德州儀器 ZigBee SOC射頻芯片CC2430-F128作為單片機控制核心,完全滿足IEEE802.15.4標準和ZigBee技術標準,選用成熟的ZigBee模塊可提高系統(tǒng)穩(wěn)定性同時節(jié)省開發(fā)時間。網(wǎng)關及分類采集節(jié)點硬件結(jié)構(gòu)圖如圖7。
圖7 傳感器節(jié)點結(jié)構(gòu)Fig.7 Sensor node structure
傳感監(jiān)測節(jié)點分布于橋梁不同監(jiān)測區(qū)域,針對特定的結(jié)構(gòu)可采用不同的組網(wǎng)方式,常用為樹狀拓撲結(jié)構(gòu),如圖8。
圖8 ZigBee網(wǎng)絡拓撲結(jié)構(gòu)Fig.8 ZigBee network topology
組建一個新的ZigBee網(wǎng)絡首先由應用層發(fā)出網(wǎng)絡組建請求,由網(wǎng)絡層向MAC層發(fā)出信道能量檢測、信道掃描等請求并接收返回數(shù)據(jù)包。檢查有無其他網(wǎng)絡最終選擇一個空閑信道,選擇PANID,建立網(wǎng)絡,準許接入點加入網(wǎng)絡并分配地址,成功返回[7]。流程如圖9。
圖9 建立網(wǎng)絡流程Fig.9 Network establishing process
為了驗證所設計的監(jiān)測系統(tǒng),在實驗室構(gòu)建了一套實驗系統(tǒng),受條件限制,實驗時僅加入3種傳感器節(jié)點,風速、溫度、濕度各一個。實驗中采用的ARM系統(tǒng)開發(fā)板自帶了很多可擴展或直接可用的接口,這里并未使用。無線傳感器節(jié)點按照設計頻率將采集所得數(shù)據(jù)經(jīng)ZigBee協(xié)調(diào)器接收至現(xiàn)場數(shù)據(jù)處理中心,再由GRPS模塊傳送到服務器,圖10~圖12為存儲在服務器中2012-03-01—06的監(jiān)測結(jié)果。
圖10 濕度監(jiān)測數(shù)據(jù)Fig.10 Humidity monitoring data
圖11 應變監(jiān)測數(shù)據(jù)Fig.11 Strain monitoring data
圖12 溫度監(jiān)測數(shù)據(jù)Fig.12 Temperature monitoring data
從實驗結(jié)果可以看出,對于每一監(jiān)測時間點,數(shù)據(jù)與實際所反應的環(huán)境情況完全吻合。實驗過程驗證了系統(tǒng)的實時性,穩(wěn)定性,可靠性,為驗證數(shù)據(jù)預處理的結(jié)果可靠性,可在節(jié)點端用軟件編程方式返回奇異數(shù)據(jù),實驗證明在現(xiàn)場預處理過程中會將奇異值剔除并備注。
橋梁健康監(jiān)測具有實時性、長期性、條件惡劣等要求,筆者針對橋梁健康監(jiān)測的這些特點,將嵌入式技術與ZigBee無線局域網(wǎng)技術、GPRS技術結(jié)合起來提出了新型的嵌入橋梁健康監(jiān)測數(shù)據(jù)采集系統(tǒng)。該系統(tǒng)具有數(shù)據(jù)采集穩(wěn)定、低成本、低功耗、安裝方便、易于維護等優(yōu)點,能對橋梁環(huán)境健康進行實時、在線、長期自動監(jiān)測。實驗完成了對該系統(tǒng)的功能可靠與穩(wěn)定性的初步驗證,但是目前該系統(tǒng)還未進行實地領域測試,系統(tǒng)的實地性能還有待進一步考證。
[1] Zhuang Xiaoqi,Zhang Lijun,F(xiàn)ang Min,et al.An Embedded System of Bridge Stress Monitoring Based on ARM9 and Zigbee[C]//2010 International Conference on Electrical and Control Engineering.Wuhan:ICECE,2010:5007-5010.
[2] 紀航宇,劉曉平.無線傳感器網(wǎng)絡在梁結(jié)構(gòu)監(jiān)測系統(tǒng)中的應用[J].儀表技術,2007(12):62-64.
Ji Hangyu,Liu Xiaoping.Application of wireless sensor network for beam structure monitoring system[J].Instrument Technology,2007(12):62-64.
[3] 嚴麗平,宋凱.基于ZigBee與GPRS的嵌入式水質(zhì)監(jiān)測系統(tǒng)設計[J].計算機工程與設計,2011,32(5):1638-1640.
Yan Liping,Song Kai.Design of embedded water quality monitoring system based on ZigBee and GPRS[J].Computer Engineering and Design,2011,32(5):1638-1640.
[4] Harms T,Bastianini F,Sedigh S.An Embedded Wireless System for Remote Monitoring of Bridges[C]//Sensors and Smart Structures Technologies for Civil,Mechanical,and Aerospace Systems 2008.San Diego,California,USA:Society of Photo-Optical Instrumentation Engineers,2008.
[5] SAMSUNG Semiconductor Inc..S3C2440A 32-Bit CMOS Microcontroller User’s Manual:Revision 1[G].Yongin-City,Gyeonggi-Do,Korea:SAMSUNG Semiconductor Inc.,2004.
[6] 王平,程明傳,翁宗煌.數(shù)據(jù)融合處理算法在ZigBee中的應用[J].計算機應用,2009,29(7):1897-1900.
Wang Ping,Cheng Mingchuan,Weng Zonghuang.Application of data confusion algorithm in ZigBee protocol[J].Journal of Computer Applications,2009,29(7):1897-1900.
[7] 喬大雷,夏士雄.基于ARM9的嵌入式ZigBee網(wǎng)關設計與實現(xiàn)[J].微計算機信息,2007,23(12):156-158.
Qiao Dalei,Xia Shixiong.The design and realization of embedded ZigBee Gateway based on ARM9[J].Control& Automation,2007,23(12):156-158.