李 力,陳 星,李 俊,徐海富
(1.湖北省氣象信息與技術保障中心,武漢430074;2.宜昌市氣象局,宜昌443000)
檢測二維閃電探測儀狀態的傳統方法是使用串口調試助手或者網絡調試助手。前者先用串口線將設備與電腦連接,再用客戶端的串口調試助手程序發送相應命令,通過返回信息來判斷探測儀核心部件的工作狀態。此種方法需要技術人員攜帶工具抵達設備現場,在調試程序中設置串口、波特率、校驗位等一系列正確信息后才能接收到對應的返回值,檢測不便且效率較低。后者在客戶端軟件輸入需要測試的探測儀IP 地址和端口號,再將軟件所在電腦的IP 地址寫入探測儀通信模塊中,通過TCP或UDP 協議建立網絡通信。此種方法每次檢測探測儀狀態都需要配置單一站點的IP 地址和端口號等信息,查詢、操作較為繁瑣[1]。
三維閃電探測儀使用時差定位法接收云閃、云地閃輻射的閃電回擊脈沖信號,可以解算閃電輻射源的時間、位置、高度、強度、極性等重要參數信息,三維閃電探測系統接收處理的數據量相比二維閃電探測系統增加數倍,定位算法和狀態監控設計更加復雜[2-5]。針對傳統二維閃電探測儀繁雜、低效的狀態檢測方式和功能簡單的狀態監控系統,使用C/S 架構與C++ builder 編程開發三維閃電探測儀狀態檢測監控系統。本文重點闡明系統架構、程序結構、功能模塊的設計應用,結合湖北省三維閃電探測系統的實際運行狀態,期望實現設計合理、功能齊備、信息及時、友好直觀、移植方便的三維閃電探測儀狀態檢測監控系統。
狀態檢測監控系統是三維閃電探測儀的核心組成部分,可以直接用于判斷探測儀的性能與狀態。狀態檢測監控在設計時充分考慮了系統的可移植性、處理速度和可靠性等要求,基于可編程邏輯器件和嵌入式處理器內核,綜合運用多中斷處理、并行處理和多任務協同等信息處理技術來進行架構設計與開發[6-7]。
根據三維閃電的探測任務需求和相關技術設計,系統要實現的基本功能有:讀取GPS 信息與精確時鐘;測量閃電回擊波形的參量,并實時發送探測數據;接收外部指令,根據指令執行相應操作后,再返回信息;必要的自檢、維修與測試功能。
狀態檢測監控系統軟件主要包括系統初始化、系統運行、波形判別、本地時鐘、GPS 授時、狀態管理、自檢、通信單元等功能模塊,系統的軟件結構如圖1所示。

圖1 系統軟件結構Fig.1 System software structure
系統初始化的主要功能是完成系統啟動和各功能單元初始化設定。初始化程序包括檢測外部RAM,接收GPS 信息,校對本地時鐘,計算A/D 轉換補償誤差,復位及維修程序的選擇處理,系統初始化程序的結構框圖如圖2所示。

圖2 系統初始化結構框圖Fig.2 System initialization block diagram
自檢模塊的主要功能是確定系統各個單元能否正常工作。模塊結構主要包括測量10 MHz 晶振頻率,GPS 信息檢測,校對本地時鐘,校正A/D 轉換誤差,發送測試閃,計算測試閃的電場與磁場值,計算增益系數、通道系數和平均校正系數值,系統自檢模塊的細分結構如圖3所示。

圖3 系統自檢模塊結構框圖Fig.3 Block diagram of system self-checking module
系統運行模塊負責各個功能單元的協調和中斷處理,起到任務調配作用,是軟件設計的主要控制部分。系統運行包括發送狀態信息、閃數據幀、中心站命令處理、中斷程序處理、計算A/D 轉換誤差補償和控制A/D 采集,其細分結構如圖4所示。

圖4 系統運行結構框圖Fig.4 Block diagram of system operation structure
NIOS II 處理器作為一款Altera 公司開發的嵌入式軟核,可以根據任務需求進行設計裁剪和資源管理。閃電定位探測系統基于NIOS II 處理器研發,系統的軟件處理架構如圖5所示,圖中上位機與GPS 的通信方式均采用串口協議實現[8-10]。

圖5 系統軟件處理架構Fig.5 System software processing architecture
三維閃電探測儀狀態檢測監控系統程序的基本組成分為初始化程序、自檢程序、主程序以及相關中斷程序。初始化程序用于實現整個系統的硬件與軟件部分設置初始及中斷狀態,分層調整模數轉換器等功能。自檢程序用來對整個系統的工作狀態進行自檢,以確定系統是否正常運行,并由軟件計算出硬件隨時間或溫度等因素變化而引起的漂移補償值。自檢通過以后的程序稱為主程序段,它是一個以時間為標志對不同物理量或任務進行處理的循環程序。主程序段需要處理探測儀的回擊數據,并按不同格式發送回擊數據,還需要定時處理命令、自診斷、狀態等信息[11]。系統的主要中斷程序包括:
(1)閃電信號中斷處理程序:用于接收并處理閃電事件。
(2)時鐘中斷處理程序:三維閃電探測儀所處理的某些數據與時刻之間關系極為密切,需要準確的時間信息協同判斷處理這些數據,此過程在時鐘中斷程序里完成。
(3)串口中斷處理程序:用于接收指令,并輸出指令結果、閃數據、狀態信息等。
(4)過閾值率中斷處理程序:過閾值率是閃數據處理中用來判別背景噪聲大小的參量,程序需要將此參量記錄下來。
(5)GPS 中斷程序:用于接收GPS 信號傳送的經緯度和時間等信息。
系統初始化是程序的起始部分,在三維閃電探測儀上電或復位后開始執行,程序的主要設計內容為對各公共變量賦初值、開啟相關中斷、檢測GPS接收機工作狀態、讀取撥碼開關信息、一定時間范圍內將定時器清零。初始化程序首先完成以下功能:讀取撥碼開關信息;向CPU 板上5 個指示燈發送滅燈信號;檢測是否進入維修功能;檢測GPS 狀態并校準時間;讀取CPU 板的模數轉換結果,以便模數轉換器準備下一次轉換;根據DIP 開關,設置波特率和閾值;設置開啟串口、回擊數據、秒、小時、閾值等相關中斷;進行自檢測試[12-13]。
初始化程序的最后部分、時鐘的每個整點時刻和設備執行SELFTEST 命令3 種情況,三維閃電探測儀都會執行過程相同的自檢任務。自檢程序的功能:①檢測探測儀工作狀況,并將檢測結果作為狀態信息定時發往數據中心站,使用戶通過中心站可以隨時了解探測儀的設備狀態;②統計各種探測數據和采集通道的自檢結果,計算各通道的增益、零點漂移偏差等數據,進行采集數據校正。自檢程序的主要內容如下:
(1)測量探測儀的艙內溫度、GPS 狀態(經度、緯度、幾何精度因子)、閾值設定值、閾值反讀值、晶振頻率、每秒過閾值噪聲率等基本運行參數。
(2)校正A/D 轉換的變換誤差。
(3)測量與校正各個通道(南北磁場、東西磁場、電場)的探測數據。
將測得的自檢參數按照要求存入指定寄存器,以便后續數據校正使用,通過參數校正可以保證較高的數據處理精度。根據探測儀完成自檢后的結果來驅動設備上5 個狀態指示燈,可以顯示對應的設備狀態,同時向數據中心站發送主要狀態參數,系統的自檢流程如圖6所示。

圖6 系統自檢流程Fig.6 System self-check flow chart
三維閃電探測儀自檢程序通過之后,系統運行進入主程序部分,主程序的任務是響應各類中斷請求。主程序設計的中斷處理包括:回擊數據處理中斷、CPU 串口通訊中斷、GPS 1 PPS 中斷、小時自檢中斷、過閾值中斷。此外,主程序還需要定時向外部發送探測儀狀態信息和回擊數據信息,響應并處理串口命令,其設計流程如圖7所示。

圖7 主程序流程Fig.7 Main program flow chart
本地時鐘中斷是通過GPS 授時給本地時鐘所產生的精確時鐘中斷信號,主程序通過被精確授時的小時中斷信號進行每小時自檢和誤差修正。當探測儀上電啟動或者運行自檢程序時,系統需要進行GPS 授時,此時GPS 信號通過中斷接入主程序。串口中斷主要功能是完成設備和上位機之間數據的雙向通信。過閾值中斷用來判斷當前接收的閃電信號是否真實有效。由于一次閃電一般含有多次回擊數據,回擊信號之間的時間間隔大多為20~200 ms。在雷暴最頻繁的時段,回擊信號間的時間間隔僅僅幾毫秒。因此,若要及時處理每一個回擊數據,其程序設計方法為在回擊中斷服務程序中,將從ADC 讀取的磁場、電場模擬量轉換結果和回擊信號波形特征點的到達時刻不加處理地保存于內存區,直到退出中斷服務程序再作處理;退出中斷服務程序以后,查詢系統主程序中是否有回擊中斷,若有則將結果數據打包成數據幀發往中心站,閃電回擊數據中斷服務處理流程如圖8所示。

圖8 回擊數據中斷處理流程Fig.8 Flow chart of data interruption processing
針對本文所述的三維閃電探測儀狀態檢測監控系統,使用C/S 架構和C++ builder 設計開發了操作簡便、友好直觀、面向用戶的閃電探測儀狀態檢測監控界面以及檢測探測儀程序子界面,與數據接收處理、探測儀檢測與控制、查看與設置系統配置、數據查詢與回放、閃電回擊數據重定位等子系統所構成的省級三維閃電探測系統進行數據關聯,實現了軟件系統狀態檢測、狀態監控及其它功能模塊集成應用,驗證了前述程序設計開發的可行性,以下是三維閃電探測儀狀態檢測監控系統的典型功能子界面。
三維閃電探測儀具備從天線到輸出端口的全自檢功能。在檢測探測儀程序子界面中選擇待檢測的探測站點,再設置最大響應延遲時間,當發送SELFTEST 指令后,程序開始運行系統自檢功能,并在最大響應延遲時間內顯示設備的自檢結果,檢測探測儀程序運行系統自檢功能的操作和結果如圖9所示。

圖9 程序運行自檢功能Fig.9 Program running self-check function
檢測探測儀程序準備檢測宜昌站三維閃電探測儀時,選擇或鍵入SELFTEST 指令,在發送指令后最長30 s 的響應延遲時間內,程序會反饋宜昌站的設備自檢結果。
檢測探測儀程序可自動輸出三維閃電設備核心部件的工作參數,實現核心部件故障自動報警。發送STATUS 指令后程序運行狀態檢測功能,在最大響應延遲時間內返回設備的狀態檢測結果,系統狀態檢測功能的操作和結果如圖10所示。

圖10 程序檢測探測儀狀態Fig.10 Program detection detector status
在程序界面中選擇或鍵入STATUS 指令,最長30 s 的響應延遲時間內,界面會顯示所選站點探測儀當前的核心部件工作參數。
將三維閃電探測儀狀態檢測監控系統部署于省級平臺,系統通過接收站點的狀態數據,可以判斷當前探測儀狀態,并使用交互界面進行設備的狀態監控,如圖11所示。

圖11 系統監控探測儀狀態Fig.11 System monitoring detector status
系統以場景方式展示與其它功能的交互狀態。探測站名稱、IP 地址、端口號、狀態數據、云地回擊、云間回擊等信息顯示于界面左側,設備用綠色與灰色區分,表示系統狀態正常與異常。站名、地理位置、最近一次自檢開始時間、自檢通過標志、當前閾值、當前閾值平均通過率、自檢開始時GPS 誤差值、10 MHz 恒溫槽石英晶振頻率值的偏差等實時信息顯示于界面右側。
本文針對三維閃電探測系統接收處理的數據量相比二維閃電探測系統增加數倍,定位算法和狀態監控設計更加復雜,以及傳統二維閃電探測儀繁雜、低效的狀態檢測方式等問題,開發了三維閃電探測儀狀態檢測監控系統。系統設計了檢測探測儀程序,可以直接判斷探測儀性能與狀態,實現從天線到輸出端口的全自檢功能;還設計了閃電探測儀狀態檢測監控界面和檢測探測儀程序子界面,根據接收的狀態數據判斷當前探測儀狀態,應用場景方式展示與其它功能的交互情況,提供人機互動界面進行狀態監控。同時結合湖北省三維閃電探測網搭建實驗平臺,進行系統功能和程序運行測試,驗證本文設計開發方法的適用性與穩定性,結果表明:狀態檢測監控系統程序設計清晰合理、狀態檢測及時便捷、狀態監控信息完整、系統功能全面完善、操作界面友好直觀,滿足三維閃電探測儀狀態檢測監控的實際需求,對其它種類探測設備狀態檢測監控系統的設計研發提供了重要借鑒意義。