楊興文 雍珊珊 王新安 周康生 金秀如
AETA 數(shù)據(jù)采集系統(tǒng)的設(shè)計與實現(xiàn)
楊興文 雍珊珊?王新安 周康生 金秀如
北京大學(xué)深圳研究生院地震監(jiān)測預(yù)測技術(shù)研究中心, 深圳 518055; ?通信作者, E-mail: yongshanshan@pku.edu.cn
設(shè)計并實現(xiàn)一種適用于多分量監(jiān)測系統(tǒng) AETA 的數(shù)據(jù)采集系統(tǒng)。該采集系統(tǒng)包括探頭數(shù)據(jù)采集軟件、數(shù)據(jù)處理終端軟件和服務(wù)器端的應(yīng)用程序, 其中數(shù)據(jù)處理終端軟件為系統(tǒng)的核心, 負(fù)責(zé)接收探頭采集的數(shù)據(jù), 并將其穩(wěn)定、可靠地傳輸至服務(wù)器端。該采集系統(tǒng)具有自動升級和在線執(zhí)行命令的功能, 可以實現(xiàn)設(shè)備的遠(yuǎn)程運維和維護。測試結(jié)果表明, AETA 數(shù)據(jù)采集系統(tǒng)能夠在網(wǎng)速低至 10KB 的情況下穩(wěn)定地運行, 并能在一分鐘內(nèi)及時地響應(yīng)遠(yuǎn)程命令, 具有很好的穩(wěn)定性和實時交互性, 適用于地震監(jiān)測系統(tǒng)設(shè)備的跨區(qū)域和高密度布設(shè)。
地震監(jiān)測; 數(shù)據(jù)采集; 數(shù)據(jù)處理終端; 高穩(wěn)定性; 實時交互
地震監(jiān)測預(yù)測指利用傳感設(shè)備來探測與地震相關(guān)的前兆信號的變化, 通過分析前兆信號, 找出其與地震事件的關(guān)系, 從而預(yù)測地震的發(fā)生[1–5]。為了采集地震前兆信號, 學(xué)者們提出一些地震數(shù)據(jù)采集系統(tǒng)的設(shè)計。Gao 等[6]采用 LoRa 遠(yuǎn)程無線通信技術(shù), 設(shè)計一種分布式三分量地震數(shù)據(jù)采集系統(tǒng)。朱倩鈺[7]采用動態(tài)電源管理和動態(tài)頻率調(diào)節(jié)等技術(shù), 對自主研發(fā)的 GEIWSR 地震數(shù)據(jù)采集系統(tǒng)進行軟件層面的優(yōu)化, 降低了系統(tǒng)的功耗。王京京等[8]設(shè)計一種高精度地震數(shù)據(jù)采集單元, 具有功耗低、成本低等特點。以上研究集中在硬件的低功耗優(yōu)化以及數(shù)據(jù)的采集、傳輸方式等方面。為了形成較密集的前兆臺網(wǎng), 使得多臺站的前兆信號異??梢韵嗷ヲ炞C, 地震監(jiān)測設(shè)備往往都是跨區(qū)域、高密度地布設(shè)。大量的地震數(shù)據(jù)在網(wǎng)絡(luò)環(huán)境不穩(wěn)定的情況下難以可靠、穩(wěn)定地傳輸, 并且需要隨時查看和維護設(shè)備, 耗時耗力。
為了解決這些問題, 北京大學(xué)深圳研究生院地震監(jiān)測預(yù)測技術(shù)研究中心采用實驗室自制的傳感探頭以及終端設(shè)備, 設(shè)計了多分量監(jiān)測系統(tǒng) AETA (Acoustic and Electromagnetic Testing All in one system)。本文在前人研究的基礎(chǔ)上, 研發(fā)一款支持無網(wǎng)絡(luò)環(huán)境且具有遠(yuǎn)程實時交互功能的地震監(jiān)測數(shù)據(jù)采集系統(tǒng), 在發(fā)送模塊采用線程池的優(yōu)化方案, 并采用新型 SD 卡持久化存儲的目錄結(jié)構(gòu), 使得系統(tǒng)不僅能夠在網(wǎng)速低至 10KB 的情況下保持穩(wěn)定的網(wǎng)絡(luò)連接和數(shù)據(jù)傳輸, 并能在無網(wǎng)絡(luò)環(huán)境下及時保存數(shù)據(jù)。此外, 本文還設(shè)計了自動升級和遠(yuǎn)程執(zhí)行命令的功能, 通過在通信協(xié)議中加入相關(guān)命令的參數(shù)字段和探頭, 并在終端加入命令查詢的函數(shù), 使得系統(tǒng)能夠在一分鐘內(nèi)響應(yīng)遠(yuǎn)程下達的命令。測試結(jié)果表明, 該系統(tǒng)在不同的應(yīng)用場景下都具有良好的實時交互性。
多分量地震監(jiān)測預(yù)測系統(tǒng) AETA 由地聲傳感探頭、電磁傳感探頭、數(shù)據(jù)處理終端以及監(jiān)測數(shù)據(jù)云平臺和數(shù)據(jù)分析系統(tǒng)組成, 如圖1所示。
傳感探頭感知來自地下的電磁擾動和地聲信號, 數(shù)據(jù)處理終端實時采集數(shù)據(jù), 并通過互聯(lián)網(wǎng)(有線或無線)將數(shù)據(jù)傳輸?shù)皆破脚_進行特征提取、持久化存儲和異常分析等。截至目前, AETA 系統(tǒng)的布設(shè)范圍已覆蓋河北省、四川省、云南省、西藏自治區(qū)、廣東省和臺灣省等地區(qū), 其中在四川省的布設(shè)密度最大, 數(shù)量達 100 余套, 基本上覆蓋四川省全境重點區(qū)域[9–14]。由于AETA 系統(tǒng)跨區(qū)域布設(shè), 數(shù)量大, 所以需滿足不同地區(qū)的數(shù)據(jù)采集和傳輸需求, 盡可能避免設(shè)備卡死和丟失數(shù)據(jù)等情況, 能夠及時遠(yuǎn)程地發(fā)現(xiàn)并解決設(shè)備故障。
AETA 數(shù)據(jù)采集系統(tǒng)的總體框架主要包括探頭數(shù)據(jù)采集軟件、數(shù)據(jù)處理終端軟件和服務(wù)器端的應(yīng)用程序 3 個部分, 如圖 2 所示。探頭數(shù)據(jù)采集軟件主要負(fù)責(zé)采集高采樣率的地震監(jiān)測數(shù)據(jù), 并且具有自動升級和執(zhí)行終端下發(fā)的命令等功能; 數(shù)據(jù)處理終端軟件是 AETA 系統(tǒng)的關(guān)鍵中間節(jié)點, 不僅負(fù)責(zé)準(zhǔn)確、穩(wěn)定地傳輸?shù)卣鸨O(jiān)測數(shù)據(jù), 還具有自動升級、實時監(jiān)控和遠(yuǎn)程與服務(wù)器交互等功能; 服務(wù)器端的應(yīng)用程序主要負(fù)責(zé)數(shù)據(jù)接收和存儲功能。
2.2.1 通信協(xié)議
目前, 大多數(shù)地震監(jiān)測系統(tǒng)的通信協(xié)議都基于地震數(shù)據(jù)制定, 而 AETA 軟件不僅需要穩(wěn)定、可靠地傳輸?shù)卣饠?shù)據(jù), 還需要滿足實時命令的交互, 所以在 AETA 的數(shù)據(jù)通信協(xié)議中需要同時滿足數(shù)據(jù)和命令的傳輸。
數(shù)據(jù)處理終端位于 AETA 系統(tǒng)軟件的中間環(huán)節(jié), 既要與探頭進行數(shù)據(jù)交互, 又要與服務(wù)器應(yīng)用服務(wù)程序通信。數(shù)據(jù)處理終端與傳感探頭之間通過TCP/IP 協(xié)議通信, 與服務(wù)器之間通過 HTTP 協(xié)議通信。數(shù)據(jù)處理終端和服務(wù)器需要識別數(shù)據(jù)來源、數(shù)據(jù)類型、數(shù)據(jù)產(chǎn)生的時間和數(shù)據(jù)長度等信息, 據(jù)此確定數(shù)據(jù)在傳輸過程中沒有出現(xiàn)差錯。因此, 通信協(xié)議包括探頭與終端之間、終端與服務(wù)器之間的傳輸協(xié)議。
傳感探頭與終端建立 TCP 連接后, 直接向終端發(fā)送數(shù)據(jù)。由于探頭的數(shù)據(jù)發(fā)送速率較快, 因此數(shù)據(jù)發(fā)送后, 探頭在應(yīng)用層無須等待終端對數(shù)據(jù)的確認(rèn)回復(fù)即可繼續(xù)發(fā)送下一條數(shù)據(jù)。除發(fā)送從 ADC 采集的電磁和地聲傳感數(shù)據(jù)外, 傳感探頭還需要定時地向終端發(fā)送自身運行狀態(tài)(如探頭軟件版本號和狀態(tài)發(fā)送間隔等)。終端也可以向探頭下發(fā)控制命令(如復(fù)位等), 因此探頭還需要接收來自終端的控制信息。探頭與終端之間的數(shù)據(jù)協(xié)議如圖 3所示。
圖 3 中, Precode 為前導(dǎo)碼, 位于數(shù)據(jù)包的開始位置, 盡量與數(shù)據(jù)包的其他部分相異; Head 為包頭, 包含設(shè)備編號等信息以及自身的校驗信息; MSG 為消息, 分為數(shù)據(jù)和命令兩種, 前者來源于傳感探頭采集到的各種數(shù)據(jù), 后者可以讓探頭接受來自終端的命令; CRC16_Check 是一種數(shù)據(jù)校驗方式, 當(dāng)數(shù)據(jù)在探頭與終端之間傳輸時, 可以通過多重校驗來保證數(shù)據(jù)的準(zhǔn)確性, 也可以通過消息類型來判斷當(dāng)前消息是數(shù)據(jù)還是命令, 以便進行不同的操作。
數(shù)據(jù)處理終端與服務(wù)器之間, 采用 HTTP 協(xié)議進行通信, 終端向服務(wù)器發(fā)送 http 請求, 以 POST 的方式傳輸數(shù)據(jù)和參數(shù), 大量的數(shù)據(jù)(如日志和原始數(shù)據(jù))以文件的形式上傳。終端與服務(wù)器之間的交互流程包括身份認(rèn)證、數(shù)據(jù)上傳、時間同步、異常報警、參數(shù)配置、狀態(tài)上報、日志上報以及命令查詢等。其中, 數(shù)據(jù)上傳和命令查詢可以實現(xiàn)終端向服務(wù)器傳輸數(shù)據(jù)以及服務(wù)器向終端下達命令。由于http 請求是無狀態(tài)的短連接, 為了保證終端能夠一次登陸后多次上傳數(shù)據(jù), 我們還引入 http 的 session機制。
2.2.2 自動升級
AETA 監(jiān)測系統(tǒng)布設(shè)范圍遍及全國, 如果能在現(xiàn)場進行設(shè)備升級, 會大大提高設(shè)備的維護成本。AETA 數(shù)據(jù)采集系統(tǒng)通過探頭中的引導(dǎo)程序和終端的升級程序, 能夠?qū)崿F(xiàn)數(shù)據(jù)采集探頭和數(shù)據(jù)處理終端的遠(yuǎn)程自動升級。
探頭引導(dǎo)程序升級的過程是基于探頭與終端之間的 TFTP 通信, 上電時刻, 引導(dǎo)程序率先運行, 然后初始化其自身需要的相關(guān)外部設(shè)備(如時鐘、串口和 W5300 網(wǎng)絡(luò)芯片)。W5300 是一款用于網(wǎng)絡(luò)模塊傳輸?shù)男酒? 其內(nèi)核含有 PPPOE 協(xié)議、ARP 協(xié)議、IP 協(xié)議和 ICMP 協(xié)議等, 能夠有效地解決數(shù)據(jù)的網(wǎng)絡(luò)傳輸問題。然后, 對地面終端的 Linux TFTP服務(wù)器發(fā)起固件升級請求, 下載版本信息文件, 判斷是否需要進行固件升級。如需要, 則進行固件升級, 如不需要, 則執(zhí)行探頭的數(shù)據(jù)采集程序。
終端的升級程序完成對文件(包括升級程序自身)的升級。升級程序只在終端啟動時執(zhí)行, 執(zhí)行完成后, 升級程序自動結(jié)束。在服務(wù)器上, 每一個終端都對應(yīng)一個升級文件夾, 里面存放升級信息描述文件和升級文件壓縮包。升級信息描述文件中包含終端 ID 號、自身的版本號、升級文件壓縮包名、腳本文件名以及服務(wù)器計算出的升級文件壓縮包的 CRC 校驗值; 升級文件壓縮包包含要升級的文件清單、升級文件和腳本文件。終端升級程序的升級過程是, 首先從服務(wù)器下載升級信息描述文件, 判斷是否需要進行升級。如果需要升級, 則下載升級文件壓縮包到一個臨時目錄, 校驗成功后解壓該文件, 然后找到壓縮包中的腳本文件, 給腳本文件添加可執(zhí)行權(quán)限后, 執(zhí)行腳本文件。后續(xù)的所有工作(如將文件放到指定的目錄下或執(zhí)行其他操作)均由腳本文件完成。腳本文件完成所需工作后, 重啟終端。升級過程中產(chǎn)生的日志用 txt 格式保存, 然后通過 FTP 上傳至服務(wù)器中該終端 ID 對應(yīng)的升級目錄下。
結(jié)合探頭引導(dǎo)程序和終端應(yīng)用程序升級的流程, 可以在服務(wù)器中同時準(zhǔn)備好探頭和終端的新版軟件程序。這樣, 設(shè)備重啟后就可以完成探頭和終端的同時升級。這種升級流程實現(xiàn)了現(xiàn)場自動升級的功能, 可以大大減少設(shè)備維護成本。
2.2.3 實時監(jiān)控
在一個軟件系統(tǒng)中, 軟件或硬件的微小波動可能引起系統(tǒng)的運行故障, 此時, 系統(tǒng)能否自動恢復(fù)運行是衡量一個系統(tǒng)容錯性的重要指標(biāo)。
如圖 2 所示, AETA 數(shù)據(jù)采集系統(tǒng)終端的監(jiān)控程序是整個終端最先開始啟動的進程。終端電源接通后, 內(nèi)嵌于核心板中的 Linux 操作系統(tǒng)開始啟動。系統(tǒng)啟動后, 按照提前部署好的啟動腳本, 啟動監(jiān)控程序, 使得該進程在系統(tǒng)啟動后能夠自動運行。
監(jiān)控進程啟動后, 創(chuàng)建一段共享內(nèi)存, 進行自身的初始化, 與系統(tǒng)時間同步, 查詢系統(tǒng)進程表中是否存在升級程序和數(shù)據(jù)處理程序的進程 ID。若兩者的進程 ID 號不存在, 說明這兩個進程沒有啟動或已崩潰, 監(jiān)控程序會啟動這兩個進程。升級進程在確定軟件不需要更新, 或在更新完終端軟件后, 進程會自動釋放, 因此不需要向共享內(nèi)存中寫入心跳信息(即系統(tǒng)時間)受監(jiān)控進程的監(jiān)控, 即只在開機后運行一次。若系統(tǒng)中存在這兩個進程的 ID 號, 監(jiān)控進程會周期性地從共享內(nèi)存區(qū)中讀取數(shù)據(jù)處理進程寫入的心跳信息。如果前后兩次從共享內(nèi)存區(qū)讀取的系統(tǒng)時間不變, 說明數(shù)據(jù)處理進程卡死或崩潰, 監(jiān)控進程會將其終止, 然后重新拉起該進程。若相鄰兩次讀取的系統(tǒng)時間有變化, 則說明數(shù)據(jù)處理進程正在運行。
數(shù)據(jù)處理進程在運行后, 會專門分配一個線程,定時地向共享內(nèi)存中寫入系統(tǒng)時間, 寫入的時間間隔需小于監(jiān)控進程讀取共享內(nèi)存的時間間隔。此外, 終端的監(jiān)控程序以及探頭的升級程序和數(shù)據(jù)采集程序都由硬件“看門狗”進行監(jiān)控, 如果程序卡死或奔潰, 則硬件“看門狗”會對整個系統(tǒng)進行復(fù)位。
除監(jiān)控功能外, 監(jiān)控程序還負(fù)責(zé)定時地在服務(wù)器進行時間同步操作, 保證設(shè)備的時間與服務(wù)器同步。
2.2.4 數(shù)據(jù)采集和命令交互
AETA 數(shù)據(jù)采集系統(tǒng)的探頭引導(dǎo)程序運行完成后, 會自動執(zhí)行探頭的數(shù)據(jù)采集程序。探頭接受參數(shù)配置和命令都由該程序?qū)崿F(xiàn)。圖 4 展示數(shù)據(jù)采集程序的主函數(shù)執(zhí)行流程, 主要包括傳感數(shù)據(jù)的采集和發(fā)送、日志及狀態(tài)的生成與發(fā)送以命令的接收與處理 3 個任務(wù)。其中, 數(shù)據(jù)采集和命令的接收與處理分別通過 ADC 中斷和 W5300 中斷來實現(xiàn), 日志則在軟件運行過程中根據(jù)事件生成。
整個數(shù)據(jù)采集程序主函數(shù)在數(shù)據(jù)發(fā)送和命令執(zhí)行兩個函數(shù)之間循環(huán)執(zhí)行, 兩個函數(shù)通過標(biāo)志位來判斷是否執(zhí)行某項操作, 標(biāo)志位在中斷函數(shù)中進行修改。當(dāng) ADC 中斷被觸發(fā), 則程序進入 ADC 中斷函數(shù)處執(zhí)行, 讀取 ADC 數(shù)據(jù)(2 字節(jié))存入當(dāng)前緩沖區(qū)。緩沖區(qū)采用雙緩沖設(shè)計, 當(dāng)前緩沖區(qū)寫滿后切換至另一個緩沖區(qū), 并置發(fā)送標(biāo)志位。當(dāng)中斷函數(shù)執(zhí)行完畢退出時, 程序切換至中斷被觸發(fā)時刻的狀態(tài), 繼續(xù)執(zhí)行, 數(shù)據(jù)發(fā)送函數(shù)檢測到發(fā)送數(shù)據(jù)標(biāo)志位后, 即開始執(zhí)行發(fā)送任務(wù)。W5300 中斷只需將網(wǎng)絡(luò)接收標(biāo)志位置 1 即可。除發(fā)送傳感數(shù)據(jù)外, 數(shù)據(jù)發(fā)送函數(shù)時還需要發(fā)送溫度和狀態(tài)信息; 命令執(zhí)行函數(shù)目前只需解析并執(zhí)行命令, 但保留執(zhí)行其他任務(wù)的可拓展性。
在數(shù)據(jù)處理終端中, 數(shù)據(jù)處理程序的流程如圖5 所示。探頭與終端之間采用 TCP/IP 傳輸層協(xié)議進行通信, 監(jiān)聽線程為程序的主線程, 在指定端口持續(xù)地監(jiān)聽是否有探頭請求連接。一旦探頭向監(jiān)聽端口發(fā)起連接請求, 監(jiān)聽線程會創(chuàng)建一系列的線程來服務(wù)于此連接, 包括接收線程、解包線程以及濾波線程。
接收線程、接收流緩沖和解包線程以及解包線程、解包流緩沖和濾波線程之間, 構(gòu)成典型的生產(chǎn)者–消費者模型, 接收線程和解包線程通過條件變量和互斥鎖進行互斥與同步, 解包線程一旦發(fā)現(xiàn)接收流緩沖中沒有足夠的數(shù)據(jù)解包, 則自身會掛起, 等待條件變量的變化。接收線程每次接收到數(shù)據(jù)向接收流緩沖存放后, 通過條件變量喚醒解包線程進行解包。同樣, 解包線程在解完一個包后, 將數(shù)據(jù)存入解包流緩沖, 待解包流緩沖中存夠 1 秒的數(shù)據(jù)量后, 通過條件變量喚醒濾波線程, 對數(shù)據(jù)進行濾波。這種模型的優(yōu)化能夠極大地降低主進程對系統(tǒng) CPU 的占用率, 提高設(shè)備的可靠性。
發(fā)送線程與服務(wù)器應(yīng)用服務(wù)之間基于 HTTP 協(xié)議通信, 采用線程池技術(shù)對發(fā)送模塊進行優(yōu)化, 可以將每一個 HTTP 請求的超時時間設(shè)為一個較長的合理值。設(shè)計要求是每分鐘發(fā)送實時數(shù)據(jù), 在上一分鐘的數(shù)據(jù)還未發(fā)送完, 下一分鐘的數(shù)據(jù)就已經(jīng)到來的情況下, 可以從線程池中喚醒一個空閑線程來處理新的數(shù)據(jù), 而上一分鐘的數(shù)據(jù)則繼續(xù)發(fā)送, 兩者互不影響。在系統(tǒng)啟動時創(chuàng)建一定數(shù)量的線程, 初始狀態(tài)為空閑狀態(tài)。當(dāng)有新的任務(wù)加入任務(wù)隊列時, 則從線程池中取一個空閑的線程來處理該任務(wù)。此時該線程轉(zhuǎn)化為忙碌線程, 任務(wù)處理完成后, 該忙碌線程又自動掛起, 處于空閑狀態(tài)。線程的喚醒采用條件變量和互斥鎖來實現(xiàn)。采用線程池技術(shù)來設(shè)計發(fā)送模塊, 既可以減小線程創(chuàng)建和銷毀帶來的開銷, 又能夠延長 HTTP 請求的超時時間, 使得數(shù)據(jù)能夠在網(wǎng)絡(luò)不穩(wěn)定的情況下穩(wěn)定地傳輸。
終端的遠(yuǎn)程命令交互功能是通過向服務(wù)器發(fā)送線程查詢命令來實現(xiàn)。終端運行過程中, 每隔一定的時間會向服務(wù)器請求命令, 在接收到終端的命令查詢請求后, 服務(wù)器會查詢是否有運維人員給該終端下的命令, 若有, 則讀取命令, 并將其作為終端請求的響應(yīng)參數(shù)發(fā)送給終端, 終端通過制定的通信協(xié)議解析服務(wù)器應(yīng)用程序的響應(yīng)參數(shù)而得到命令信息, 并根據(jù)命令類型執(zhí)行相應(yīng)的操作, 整個流程保證在一分鐘內(nèi)執(zhí)行成功。
2.2.5 弱網(wǎng)絡(luò)環(huán)境處理
AETA 系統(tǒng)監(jiān)測站點大多部署在地震頻發(fā)的地域, 其中很多地方由于地理位置的原因, 網(wǎng)絡(luò)條件不穩(wěn)定, 經(jīng)常出現(xiàn)網(wǎng)速較慢甚至斷網(wǎng)等情況。因此, AETA 數(shù)據(jù)采集系統(tǒng)需要考慮在弱網(wǎng)絡(luò)環(huán)境下數(shù)據(jù)的傳輸問題。
AETA 數(shù)據(jù)處理終端預(yù)留了 SD 卡接口, AETA的每一臺終端均配備一張 32GB 容量的 SD 卡, 可以存儲一個標(biāo)準(zhǔn)臺站 3 個月以上的數(shù)據(jù)。因此, 在弱網(wǎng)絡(luò)環(huán)境下, 數(shù)據(jù)無法在超時的時間內(nèi)傳輸?shù)椒?wù)器應(yīng)用服務(wù)的情況下, 數(shù)據(jù)處理進程可以將數(shù)據(jù)存儲在 SD 卡中, 并在網(wǎng)絡(luò)穩(wěn)定時取出 SD 卡內(nèi)的數(shù)據(jù), 發(fā)送至服務(wù)器。如圖 5 所示, 發(fā)送線程在發(fā)送完一分鐘實時數(shù)據(jù)后, 如果下一分鐘數(shù)據(jù)還沒有到來, 就可以從 SD 卡取出數(shù)據(jù)發(fā)送出去。
圖 6 為 SD 卡持久化存儲的目錄結(jié)構(gòu)設(shè)計, 按天創(chuàng)建數(shù)據(jù)文件夾, 文件夾內(nèi)的文件名從 001 開始命名, 每小時加 1, 每天最多 24, 每個小時內(nèi)的數(shù)據(jù)寫入同一個文件。每一個文件都有對應(yīng)的 index文件, 記錄每條數(shù)據(jù)的地址、長度和讀取標(biāo)志, 用來描述數(shù)據(jù)文件中數(shù)據(jù)的讀取位置以及是否已讀等信息。
首先對 AETA 軟件進行自動升級測試。在服務(wù)器準(zhǔn)備兩個版本的軟件(包括探頭引導(dǎo)程度和終端應(yīng)用程序), 使設(shè)備在這兩個版本之間反復(fù)進行升級。測試結(jié)果表明, 在長達 100 次的升級測試中, 設(shè)備全部升級成功。
然后, 進行監(jiān)控功能的測試。通過 linux 命令,手動結(jié)束數(shù)據(jù)處理進程, 監(jiān)控進程檢測到心跳信息停止后, 成功地重新啟動該進程。用同樣的方式, 手動結(jié)束監(jiān)控進程, 發(fā)現(xiàn)硬件“看門狗”也成功地重啟監(jiān)控進程。為了模擬數(shù)據(jù)處理進程卡死的情況, 在主函數(shù)中添加延時函數(shù), 延時 60 秒, 觀察進程的變化。結(jié)果表明, 處于模擬卡死情況下的數(shù)據(jù)處理進程被成功地重啟。
再次, 進行命令交互的測試。如表 1 所示, 在服務(wù)器遠(yuǎn)程對終端下達以下命令, 每條命令都執(zhí)行10 次以上。結(jié)果表明, 所有命令都在一分鐘內(nèi)執(zhí)行成功。標(biāo)志“1”表示終端命令, 標(biāo)志“2”表示探頭命令。
最后, 進行弱網(wǎng)絡(luò)環(huán)境的模擬測試。如表 2 所示, 在網(wǎng)速低于 10KB 的情況下, SD 卡的使用率(每天)為 0.53%, 這時數(shù)據(jù)會存入 SD 卡, 等待網(wǎng)絡(luò)狀況良好時進行發(fā)送; 在網(wǎng)速高于 10KB 時, 數(shù)據(jù)穩(wěn)定地傳輸至服務(wù)器, SD 卡的使用率為零。
表1 命令交互測試結(jié)果
表2 不同網(wǎng)速情況下的SD卡使用率
本文設(shè)計并實現(xiàn)了應(yīng)用于多分量地震監(jiān)測系統(tǒng)AETA 的數(shù)據(jù)采集系統(tǒng)。該系統(tǒng)已經(jīng)穩(wěn)定地運行近一年時間, 能夠穩(wěn)定地采集和傳輸來自全國 10 個以上省份的數(shù)據(jù), 為 AETA 系統(tǒng)提供了豐富的地震監(jiān)測數(shù)據(jù)。此外, AETA 系統(tǒng)支持遠(yuǎn)程自動升級和命令交互, 可以實時獲取設(shè)備的運行狀態(tài), 并進行遠(yuǎn)程運維, 極大地降低了設(shè)備維護成本。在未來的設(shè)計工作中, 隨著設(shè)備布設(shè)數(shù)目的增多, 可以考慮分布式系統(tǒng)的架構(gòu), 平衡多臺服務(wù)器之間的壓力。
[1] Andrén M, Stockmann G, Skelton A, et al. Coupling between mineral reactions and chemical changes in groundwater before and after earthquakes in Iceland // AGU Fall Meeting. San Francisco, 2015: 2315–2337
[2] Brodsky E E, Thorne L. Geophysics recognizing foreshocks from the 1 April 2014 Chile earthquake. Science, 2014, 344: 700–702
[3] Green H W, Chen W P, Brudzinski M R. Seismic evidence of negligible water carried below 400-km depth in subducting lithosphere. Nature, 2010, 467: 828–831
[4] Garcia A M, Aguilar A N P. Affordable instrument design for seismic monitoring, early warning systems and control actions to risk mitigation // 13th APCA International Conference on Control and Soft Com-puting (CONTROLO). Ponta Delgada, 2018: 143–147
[5] Pierleoni P, Marzorati S, Ladina C, et al. Performance evaluation of a low-cost sensing unit for seismic applications: field testing during seismic events of 2016–2017 in central Italy. IEEE Sensors Journal, 2018, 18(16): 6644–6659
[6] Gao P, Li Z, Li F, et al. Design of distributed three component seismic data acquisition system based on LoRa wireless communication technology // 37th Chinese Control Conference (CCC). Wuhan, 2018: 10285–10288
[7] 朱倩鈺. 單通道無纜地震數(shù)據(jù)采集系統(tǒng)低功耗研究與實現(xiàn)[D]. 長春: 吉林大學(xué), 2017
[8] 王京京, 羅維炳, 李寧, 等. 一種高精度地震數(shù)據(jù)采集單元的系統(tǒng)設(shè)計與實現(xiàn). 地球物理學(xué)進展, 2017, 32(4): 1828–1837
[9] 林科, 王新安, 張興, 等. 一種適用于大地震臨震預(yù)測的地聲監(jiān)測系統(tǒng). 華南地震, 2013, 33(4): 54–62
[10] 王新安, 雍珊珊, 黃繼攀, 等. 基于 AETA 監(jiān)測數(shù)據(jù)的地震預(yù)測研究. 北京大學(xué)學(xué)報(自然科學(xué)版), 2019, 55(2): 209–214
[11] 金秀如, 雍珊珊, 王新安, 等. 地震監(jiān)測系統(tǒng) AETA 的數(shù)據(jù)處理設(shè)計與實現(xiàn). 計算機技術(shù)與發(fā)展, 2018, 28(1): 45–50
[12] 雍珊珊, 王新安, 龐瑞濤, 等. 多分量地震監(jiān)測系統(tǒng) AETA 的感應(yīng)式磁傳感器磁棒研制. 北京大學(xué)學(xué)報(自然科學(xué)版), 2018, 54(3): 495–501
[13] 劉晨光, 王新安, 雍珊珊, 等. AETA 多分量地震監(jiān)測系統(tǒng)的數(shù)據(jù)存儲與安全系統(tǒng). 計算機技術(shù)與發(fā)展, 2018(12): 1–7
[14] 王新安, 雍珊珊, 徐伯星, 等. 多分量地震監(jiān)測系統(tǒng) AETA 的研究與實現(xiàn). 北京大學(xué)學(xué)報 (自然科學(xué)版), 2018, 54(3): 487–494
Design and Implementation of Data Acquisition System for AETA
YANG Xingwen, YONG Shanshan?, WANG Xin’an, ZHOU Kangsheng, JINXiuru
Earthquake Monitoring and Prediction Technology Research Center, Peking University Shenzhen Graduate School, Shenzhen 518055; ? Corresponding author, E-mail: yongshanshan@pku.edu.cn
This paper designs and implements a data acquisition system for AETA (Acoustic and Electromagnetic Testing All in one system). The data acquisition system is mainly divided into three parts: probe data acquisition software, data processing terminal software and server application. The data processing terminal software is the core, which is responsible for receiving the data collected from the probe and transmitting it stably and reliably to the server. The proposed system also has the function of automatic upgrade and online execution of commands, which can realize remote operation and maintenance of the device. Tests show that the AETA data acquisition system can run stably with network speed as low as 10 KB, and can respond to remote commands in a minute. It has good stability and real-time interactivity, and is suitable for cross-region and high-density layout of seismic monitoring system equipment.
seismic monitoring; data acquisition; data processing terminal; high stability; real-time interactivity
10.13209/j.0479-8023.2020.052
深圳市科技計劃項目(JCYJ20180503182125190, KJYY20170721151955849)資助
2019–07–26;
2019–10–28