魏文涵 楊 江 范 濤 楊厚麗
(1.湖北省地震局地震預(yù)警湖北省重點(diǎn)實(shí)驗(yàn)室,湖北武漢 430071;2.武漢地震科學(xué)儀器研究院有限公司,湖北武漢 430071)
隨著我國經(jīng)濟(jì)建設(shè)的飛速發(fā)展以及城市化進(jìn)程的快速推進(jìn),截至2020年我國燃?xì)夤芫W(wǎng)的總里程已接近10 萬km。國外發(fā)達(dá)國家的部分城市已經(jīng)建立了燃?xì)夤芫W(wǎng)地震緊急處置系統(tǒng),緊急處置技術(shù)較為成熟,并在強(qiáng)地震中起到了減災(zāi)作用,如在1995年的日本阪神大地震中,大阪煤氣公司的地震緊急自動處置系統(tǒng)由于自動關(guān)閉裝置運(yùn)行良好,有效減輕了因煤氣泄漏引發(fā)的次生災(zāi)害。目前國內(nèi)較多城市燃?xì)夤芫W(wǎng)應(yīng)用了SCADA、GIS、GSM和GPRS系統(tǒng),基于以上研究,中國地震局工程力學(xué)研究所研制的全機(jī)械式地震觸發(fā)閥門,地震觸發(fā)閥門設(shè)定閾值為8度,在1~5 Hz的地震頻率下觸發(fā)關(guān)閉,能夠避免外界非地震震動的誤觸發(fā)。但這種全機(jī)械式地震觸發(fā)閥門也存在一定的不足,比如觸發(fā)閾值單一且不方便調(diào)整、無法實(shí)現(xiàn)遠(yuǎn)程控制、地震中缺乏具體振動數(shù)據(jù)不利于震后評估、體積大安裝維護(hù)麻煩等問題。
區(qū)別于傳統(tǒng)的地震監(jiān)測設(shè)備和工程力學(xué)研究所研制的全機(jī)械式地震觸發(fā)閥門,采用智能數(shù)字化加速度傳感器進(jìn)行加速度測量,地震燃?xì)忾_關(guān)平時處于休眠狀態(tài),小振動情況下自動喚醒同時進(jìn)行振動數(shù)據(jù)識別及采集,實(shí)現(xiàn)振動高采樣實(shí)時監(jiān)測。在振動超過設(shè)定閾值時自動切斷燃?xì)忾y開關(guān),有效提升了報警可靠性。利用通信模塊通過MQTT協(xié)議完整的記錄并傳輸?shù)卣饠?shù)據(jù)至MQTT服務(wù)器云端,為震后分析評估提供數(shù)據(jù)支撐。
系統(tǒng)硬件框架主要分為主控模塊、加速度傳感器模塊、通信模塊、供電模塊。系統(tǒng)以ADuCM3029為主控芯片,通過軟件對傳感器的采樣頻率、振動閾值等參數(shù)進(jìn)行配置,實(shí)現(xiàn)對傳感器的控制;將采集的數(shù)據(jù)通過UART串口以設(shè)定的通信協(xié)議數(shù)據(jù)傳輸格式將數(shù)據(jù)傳輸?shù)組QTT云端服務(wù)器。傳感器模塊在主控芯片控制下采集三軸加速度,將加速度測量值通過SPI串口傳入主控芯片。利用通信模塊SIM7020通過MQTT協(xié)議連入MQTT服務(wù)器云端,并將主控芯片中的加速度測量值存儲至云端服務(wù)器。通過發(fā)布/訂閱的方式,用戶可以獲取存儲在云端的數(shù)據(jù),實(shí)現(xiàn)與遠(yuǎn)程終端的數(shù)據(jù)交互。
主控芯片選擇的是ADI公司所生產(chǎn)的ADuCM3029芯片。ADuCM3029采用Cortex-M3內(nèi)核,由內(nèi)部振蕩器提供高達(dá)26 MHz的時鐘源,在運(yùn)行內(nèi)核或調(diào)用外設(shè)時可以通過軟件配置選擇使用外部晶振或內(nèi)部振蕩器,對需要特定時鐘的外設(shè)保證合適的頻率,為應(yīng)用帶來了高度的靈活性。256 kB的嵌入式閃存用于存儲程序,64 kB的SRAM,LFCSP封裝具有44個可編程GPIO引腳、3個SPI接口、1個UART、1個I2C總線、2個RTC,具有豐富的外設(shè)。
主控模塊主要負(fù)責(zé)傳感器數(shù)據(jù)的讀取,與通信模塊數(shù)據(jù)交互。SPI通信接口與加速度傳感器ADXL362進(jìn)行數(shù)據(jù)的傳輸;UART串口與通信模塊連接;引腳47與51作為外部中斷信號,控制芯片與傳感器的模式切換。
在數(shù)據(jù)采樣方面,ADXL362與使用周期采樣實(shí)現(xiàn)低功耗的加速度傳感器不同,沒有通過欠采樣混疊輸入信號,采用全數(shù)據(jù)速率對傳感器的帶寬進(jìn)行采樣。ADXL362一般提供12位輸出分辨率,在較低分辨率的情況下,提供8位輸出分辨率實(shí)現(xiàn)高效的單字節(jié)傳輸。ADXL362量程選擇±2 g時,加速度測量誤差小于5%,非線性度誤差小于1%,測量頻帶0.1~20 Hz,選擇低噪聲工作模式(典型值為175 μg/Hz),等效動態(tài)范圍約為60 dB,滿足加速度測量需求。
ADXL362加速度傳感器通過SPI和ADuCM3029連接,ADuCM3029作為主機(jī)時,ADXL362提供的INT1和INT2引腳通過與主控芯片的外部中斷引腳相連作為外部中斷信號。
通信模塊的性能對于系統(tǒng)的功耗具有較大影響,同時對于所在網(wǎng)絡(luò)信號強(qiáng)度的需求、網(wǎng)絡(luò)附著所需時間、數(shù)據(jù)傳輸質(zhì)量等因素有較大影響,選用SIMCom公司設(shè)計(jì)的面向NBIoT領(lǐng)域的通信模塊SIM7020。
(1)主控模塊進(jìn)行初始化操作,配置系統(tǒng)時鐘,初始化GPIO口并完成引腳復(fù)用映射;初始化SPI、設(shè)置喚醒中斷;配置傳感器參數(shù),包括運(yùn)動閾值、靜止閾值、測量模式、采樣率等,系統(tǒng)進(jìn)入休眠模式。
(2)系統(tǒng)進(jìn)入休眠檢測模式,ADXL362以6 Hz采樣率進(jìn)行振動檢測,有連續(xù)測量值超過設(shè)定的靜止閾值時,喚醒主控模塊ADuCM3029,系統(tǒng)進(jìn)入運(yùn)動檢測模式,傳感器以100 Hz采樣率進(jìn)行振動檢測。
(3)主控模塊ADuCM3029喚醒后,開始振動數(shù)據(jù)采集及數(shù)據(jù)處理,對下級電路發(fā)送信號開啟通信模塊,根據(jù)設(shè)定的服務(wù)端地址參數(shù),主動與服務(wù)器發(fā)起連接。
(4)振動數(shù)據(jù)超過報警閾值,主控模塊ADuCM3029給下級電路發(fā)送信號,控制閥門控制開關(guān),電容迅速放電,關(guān)斷燃?xì)忾y門。通信模塊向服務(wù)器發(fā)送監(jiān)測數(shù)據(jù),數(shù)據(jù)類型包括報警信息、實(shí)時振動數(shù)據(jù)采集、加速度峰值數(shù)據(jù)、設(shè)備狀態(tài)信息等。
系統(tǒng)采用主控芯片ADuCM3029為ADI公司生產(chǎn),前期開發(fā)環(huán)境采用官方推薦的CrossCore Ebedded Studio(CCES)軟件開發(fā)環(huán)境,后期為了增加程序可移植性,采用Keil公司開發(fā)的Keil MDK5軟件開發(fā)平臺進(jìn)行開發(fā)。
傳感器ADXL362的SPI通信首先進(jìn)行驅(qū)動的移植,包括系統(tǒng)時鐘、GPIO、SPI串口通信、TMR定時器、Interrupt外部中斷等。初始化完成后再開始調(diào)用SPI通信的庫函數(shù),在ADI_InitPinmux()函數(shù)將GPIO上引腳分別完成復(fù)用映射,保證傳感器和核心板之間能夠?qū)崿F(xiàn)數(shù)據(jù)傳輸。
物聯(lián)網(wǎng)中通信十分常用,無論是近距離無線傳輸技術(shù)還是移動通信技術(shù),都影響物聯(lián)網(wǎng)的發(fā)展。在物聯(lián)網(wǎng)協(xié)議中常用的如MQTT、CoAP、HTTP等協(xié)議,根據(jù)通信場景和數(shù)據(jù)傳輸?shù)奶攸c(diǎn),選擇合適的通信協(xié)議尤為重要。
MQTT的基礎(chǔ)協(xié)議是基于TCP協(xié)議,CoAP的基礎(chǔ)協(xié)議是基于UDP協(xié)議,考慮對數(shù)據(jù)傳輸?shù)姆€(wěn)定性需求以及數(shù)據(jù)可靠性要求較高,MQTT通信協(xié)議更有優(yōu)勢。相比于其他物聯(lián)網(wǎng)技術(shù),MQTT的優(yōu)勢在于代碼數(shù)量較少且需要的帶寬也比較有限,更利于系統(tǒng)的實(shí)現(xiàn)。
系統(tǒng)初始化完成之后,對通信模塊進(jìn)行初始化操作,使SIM7020設(shè)備入網(wǎng),供后續(xù)傳輸數(shù)據(jù)使用。通信模塊主要通過UART串口與MCU進(jìn)行通信,方式主要是通過發(fā)送AT指令的形式操作一條完整的AT指令。發(fā)送主要包括發(fā)送和響應(yīng)兩部分組成,過程為MCU向SIM7020發(fā)送AT指令,通信模塊會立即發(fā)送一個響應(yīng)消息給MCU,響應(yīng)主要為了確認(rèn)上條指令發(fā)送給設(shè)備后是否正確接收,若正確則執(zhí)行響應(yīng)操作,若失敗則返回錯誤信息給MCU。
通過使用Eclipse Mosquitto實(shí)現(xiàn)MQTT協(xié)議版本的開源消息代理,編寫程序?qū)崿F(xiàn)SIM7020與MQTT代理服務(wù)器的連接,從服務(wù)器接收到SUBACK確認(rèn)后,程序進(jìn)入循環(huán)等待由傳感器產(chǎn)生的中斷。
傳感器ADXL362任意一軸上的加速度大于設(shè)定的閾值時產(chǎn)生中斷,之后程序?qū)l(fā)布由傳感器采集的X、Y、Z軸上的加速度數(shù)值,通過訂閱此主題可以查閱相關(guān)信息,根據(jù)設(shè)定的IP地址和端口號連接上MQTT云服務(wù)器。
(1)加速度測量誤差。
燃?xì)忾_關(guān)的采樣率為100 Hz,振動參考頻率范圍為1~20 Hz,振動參考幅度的有效值宜選擇為5 m/s2,計(jì)算加速度測量值與標(biāo)稱值的相對誤差最大值作為測試結(jié)果,加速度測量誤差測試結(jié)果要求<5%(0.1~20 Hz)。
分別測量X軸向與Y軸向加速度值,采樣率為100 Hz時,X軸加速度測量誤差結(jié)果分別為0.686%、1.222%、0.520%、0.890%,Y軸加速度測量誤差結(jié)果分別為0.306%、1.012%、1.529%、1.395%,均滿足小于5%的結(jié)果要求。
(2)線性度誤差測試結(jié)果。
測試信號頻率選擇10 Hz,對燃?xì)忾_關(guān)樣機(jī)輸入輸出兩組數(shù)據(jù)進(jìn)行線性擬合,計(jì)算線性擬合最大偏差,取最大偏差與輸出滿刻度值之比作為最終線性度誤差。線性度誤差測試結(jié)果要求<1%。
X軸線性度誤差測試結(jié)果為線性擬合a為1.001 4,線性擬合b為6.656 5,最大偏差值4.094,線性度誤差為0.21%,滿足測試結(jié)果要求。
Y軸線性度誤差測試結(jié)果為線性擬合a為1.003 3,線性擬合b為-7.619 7,最大偏差值14.915,線性度誤差為0.76%,滿足測試結(jié)果要求。
(3)幅頻特性測試結(jié)果。
在檢測到超過閾值的小振動時,加速度傳感器采樣率為100 Hz的監(jiān)控狀態(tài)下,振動參考頻率范圍為1~41 Hz,振動參考幅度的有效值宜選擇為5 m/s2。
測試可知,采樣率為100 Hz時,高頻截止頻率為40 Hz的信號噪聲為-2.855 dB,41 Hz的信號噪聲為-3.719 dB,滿足-3 dB的要求。
本文以ADuCM3029為核心芯片,通過傳感器ADXL362采集實(shí)時振動數(shù)據(jù),并根據(jù)設(shè)定振動閾值產(chǎn)生中斷實(shí)現(xiàn)自動喚醒功能。以通信模塊SIM7020作為物聯(lián)網(wǎng)通信模塊進(jìn)行數(shù)據(jù)傳輸,基于MQTT協(xié)議實(shí)現(xiàn)查閱上傳到服務(wù)器的數(shù)據(jù),長時間測試未發(fā)現(xiàn)數(shù)據(jù)丟包狀況,數(shù)據(jù)傳輸穩(wěn)定。通過振動臺模擬振動觸發(fā)試驗(yàn),人為觸發(fā)方式檢測在小振動情況下,系統(tǒng)能夠正常喚醒;在振動較大的情況下燃?xì)忾y門能夠正常關(guān)斷。通過振動臺測試加速度測量誤差、線性度誤差、高頻截止頻率測試結(jié)果均滿足要求,為防災(zāi)減災(zāi)工作提供了一種新的解決方案。