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