??? 摘??要: 基于ARM和WINCE的自行高炮火控系統狀態監測技術的總體結構,完成了硬件設計和軟件開發,實現了對自行高炮火控系統的模擬、數字與軸角信號的采集。該系統簡單便攜,易于擴展,可廣泛應用于各種需要數據采集及處理的系統中。?
??? 關鍵詞: 火控系統; ARM; WINCE; 狀態監測
?
??? 我軍現裝備的某自行高炮系統組成復雜、技術先進,對其技術保障的難度大、要求高[1]。無論維修保障,還是平時訓練使用、裝備檢查,研制其火控系統狀態監測設備,為系統提供正常工作時的監測手段,都尤為必要。本文介紹了一種基于ARM的火控狀態監測系統方案,該系統可實現對火控系統的狀態信息、故障信息和性能參數信息等重要參數的采集、存儲、分析和處理。?
1 系統總體結構設計?
??? 監測系統的主要功能是對目標跟蹤系統、火控系統、隨動系統和導航系統等的工作狀態進行監控,對火控計算機、跟蹤計算機、車體信息機、隨動控制箱、激光測距機、電視跟蹤器等主要單體通信信號進行監控和測試。采用靜止方式對電氣系統的工作狀態進行全面監測,采用多點同時監測的手段實施,對系統工作過程中的各個環節進行詳細監測和分析。即在自行高炮靜止狀態下進行各種靜態和動態監測,適用于日常操作訓練、裝備技術狀態檢查、故障檢測與診斷等。在行進過程中的監測主要限于關鍵部位的狀態,主要包括目標跟蹤狀態監測、火控計算機諸元解算過程監測、隨動系統工作狀態監測、導航系統工作狀態監測等。此時監測的主要目的是反映裝備的整體工作狀況,及時發現異常或故障。監測系統主要采用分布式、小型的監測裝置,提供狀態顯示和報警功能。?
2 系統硬件設計?
??? 系統硬件部分主要由四部分組成:嵌入式系統平臺、數據采集電路、顯示控制模塊和報警電路。嵌入式系統平臺主要負責整個系統的運行,數據采集電路主要用于采集火控系統的數據,顯示控制模塊用于人機交互和狀態顯示,報警電路用于對裝備故障發出警報。其硬件構成如圖1所示。?
?
?
2.1 嵌入式系統平臺?
??? 嵌入式系統平臺采用以Samsung公司的S3C2440A高性能嵌入式微處理器作為系統的硬件平臺核心,以S3C2440A處理器為ARM920T內核的16/32位RISC嵌入式微處理器,ARM920T核由ARM9TDMI、存儲管理單元(MMU)和高速緩存三部分組成。在此基礎上擴展了系統管理單元(SDRAM控制器等)、3通道UART、4通道DMA、GPIO口實時時鐘(RTC)、8通道10位精度ADC和觸摸屏控制器等[2]。配合以64 MB Nand-Flash、64 MB SDRAM。嵌入式平臺結構如圖2所示[3]。?
?
?
2.2? 數據采集電路?
??? 數據采集電路與自行高炮火控系統采用三通電纜連接,根據信號類別采用不同的數據采集電路,一般的模擬信號經過幅度調整、隔離、濾波等調理后采用模擬多路開關進行采集通道分配。對于軸角信號則采用2個變壓器進行降壓隔離并實現三相變二相,1個變壓器用于提取激勵信號,然后采用多通道同步采集。對于數字信號采集電路則采用FPGA設計專門的接口電路,實現對各種采集方法的靈活切換和裝備接口與采集通道的動態管理。數據采集電路組成如圖3所示。?
?
?
??? 由于ARM自帶的ADC為8通道,觸摸屏控制器占用4個通道,余下4個通道的采集范圍和通道數量無法滿足要求,因此,擴展1片Maxim公司的ADC芯片MAX197。MAX197是多電壓量程模數轉換芯片,分辨率為12位,工作電壓為+5 V,有8路模擬輸入通道,具有5 MHz帶寬的采樣保持,100 KS/s采樣速率。MAX197與ARM連接電路如圖4所示。?
?
?
??? 模擬信號CH0~CH7經過MAX197后變成數字信號,總線收發器74HC245用于保護ARM處理器,D0~D7直接接到ARM的數據總線,AD結束信號INT#一路送到總線D0供查詢,另一路送到外部中斷EINT1。?
2.3? 顯示控制模塊和報警電路?
??? 報警電路主要采用蜂鳴器和LED閃爍的方式,由ARM的GPIO控制。為了減小系統體積提高便攜性,顯示控制模塊采用觸摸屏。?
3 系統軟件設計?
??? 系統軟件設計采用Microsoft公司的Windows CE 5.0嵌入式操作系統,它源自桌面型Windows操作系統,具有緊湊、高效、實時性能好和通信能力強的特點,使用Microsoft公司的Platform Builder 5.0定制符合所需要的系統。軟件開發平臺,使用Microsoft公司的專用于WINCE軟件開發的EVC(Embedded Visiual C++)開發工具,它與Visual C++開發工具具有一定的相似之處,可充分利用Microsoft的32位基于Windows的開發工具的全部的函數[4]。監控系統中主要用到Windows CE操作系統中對ARM的GPIO的操作、ARM外部中斷的實現及多線程編程等。軟件功能主要分為信號特征數據庫設計、數據采集功能實現、實時信號特征提取與分析功能實現及決策處理功能實現。?
3.1 Windows CE 5.0中自定義中斷的實現?
??? Windows CE 5.0的中斷處理是3個映射關系:中斷服務請求(ISQ)-->邏輯中斷號(Interrupt)-->Event對象。?
??? 當中斷發生時,中斷服務例程(ISR)返回該中斷號對應的邏輯中斷號,然后盡可能快地返回ISR;接著Windows CE就設置該邏輯中斷號對應的Event對象(如果有的話),以喚醒在該Event等待的中斷服務線程(IST),大部分工作都是由IST來完成[5]。一般來說,IST是存放在驅動程序中,也可以存放在應用程序里,尤其是對應只有一個應用程序使用的特殊硬件時更方便。?
??? 首先要修改BSP包的ISR部分,IST直接在應用程序里實現。步驟如下:?
??? (1) 在BSP的oalintr.h里定義自定義中斷的邏輯中斷值,如:?
??? #define SYSINTR_MYINTR(SYSINTR_RIRMWARE+10)?
??? (2) 修改KERNELHALcfw.c中的3個函數:OEMInterruptEnable( )、OEMInterruptDisable( )、OEMInterruptDone( ),增加對自定義中斷的啟用和禁用代碼。?
??? (3)修改KERNELHALARMarmint.c中的OEMInterruptHandler( ),對irq返回邏輯中斷號,如:?
??? else if (IntPendVal == INTSRC_EINT2)?
???????? return (SYSINTR_MYINTR)?
??? (4) 在PlatformBuilder中重新生成nk.bin,下載運行。此時,內核已經支持自定義中斷SYSINTR_MYINT了,在應用程序中就可以把這個SYSINTR_MYINTR與一個Event對象關聯起來,然后在一個線程IST里等待這個Event就可以了。?
??? (5)在IST里用InterruptInitialize( )將自定義中斷和Event關聯起來,并運行WaitForSingleObject( )。在線程里(即IST)里寫入下列代碼:?
??? hEvent = CreateEvent(NULL, FALSE,FALSE, NULL);?
??? InterruptInitialize(SYSINTR_MYINTR, hEvent, NULL, 0) ;?
??? OEMInterruptEnable( ) //若沒有修改,這個調用就會失敗?
??? While ( TRUE )?
??? {?
??????? WaitForSingleObject(hEvent, INFINITE);?
??????? //在這里加上讀取ADC數據的代碼,實現中斷所?
??????? //需實現的相關功能?
??? }?
3.2? 信號特征數據庫設計?
??? 信號特征數據庫是對信號進行分類采集和分析處理的前提,也是故障定位的根據。采用專用于WinCE的SQL Server CE進行開發,用ADOCE進行訪問。在系統中主要設計兩類表:一類用一個表存儲所要監測的火控系統中電纜的編號、芯數和所連接兩端的名稱,主要用于選擇要監測的電纜;另一類表是每條電纜有一個表用于存儲電纜中各個針的信號內容、類型、幅度、頻率、占空比、流向及信號說明,是信號分析和故障定位的依據。?
3.3? 監測部分功能實現?
3.3.1數據采集功能實現?
??? 針對火控系統的特點,對于不同的監測點采用不同的數據采集方法,主要包括定時采集、連續動態采集兩種方式。具體方法是根據信號特點分別采用預先觸發采集、滯后觸發采集和實時觸發采集三種方式,以保證數據采集的正確時機。在采集過程中,必須進行多點時鐘同步,以達成多點采集的同時性。在程序中主要依靠定時器中斷和多線程來實現。?
3.3.2 實時信號特征提取與分析?
??? 采用時域分析和頻域分析相結合的方法實現信號特征提取。對于不同的信號采用不同的方法,對狀態信號和電平信號等一般的模擬信號和數字信號采用簡單的時域分析,通過查詢和對比信號特征數據庫判斷其幅度與當前值是否相符;對數據和地址等并行通信信號則必須采用時域多路信號并行處理的方法,與信號特征數據特征數據庫對比的同時還必須對整體值進行分析,判斷其是否相符;對脈沖信號判定其占空比是否符合要求;對于軸角信號與激勵信號等頻帶信號則應采取頻域分析的方法,判斷周期與相位是否符合要求。部分信號還需要進行時頻分析。?
3.3.3 決策處理功能實現?
??? 通過以上實時信號特征的提取和分析,對分析結果進行判斷。若正常則不進行處理;若信號異常則啟動蜂鳴器和LED閃爍進行報警,通過查詢數據庫顯示信號相關信息以便于故障定位,并顯示信號的波形。?
??? 系統總體流程如圖5所示。?
?
?
??? 本文簡單介紹了某自行高炮狀態監測系統的總體結構,討論了系統的硬件結構和軟件結構設計的問題。實驗結果表明,該系統運行可靠,能夠實現對自行高炮火控系統的數據采集和狀態監控,為進一步實現對火控系統故障診斷及性能評估提供了很好的條件。?
參考文獻?
[1] 朱新華.火控系統構造[M].石家莊:軍械工程學院,2007.?
[2] Samsung Electronics. S3C2440A user’s manual(Z). 2004.?
[3] 沈文斌.嵌入式硬件系統設計與開發實例詳解[M].北京:電子工業出版社,2005.?
[4] 汪兵.EVC高級編程及其應用開發[M].北京:中國水利水電出版社,2005.?
[5] 田 澤.ARM9嵌入式開發實驗與實踐[M].北京:北京航空航天出版社,2006.