趙 鑫,張振友,王長(zhǎng)升
(防空兵學(xué)院,鄭州 450052)
某型自行高炮工況分析儀的設(shè)計(jì)與實(shí)現(xiàn)*
趙 鑫,張振友,王長(zhǎng)升
(防空兵學(xué)院,鄭州 450052)
針對(duì)某型自行高炮缺少總線數(shù)據(jù)記錄和分析手段的問(wèn)題,基于雙機(jī)分離、協(xié)議轉(zhuǎn)換、時(shí)序分析等技術(shù),實(shí)現(xiàn)了CAN總線數(shù)據(jù)實(shí)時(shí)采集、存儲(chǔ)、轉(zhuǎn)發(fā)、回放和時(shí)序錯(cuò)誤監(jiān)測(cè);基于相關(guān)性分析實(shí)現(xiàn)智能故障定位,基于統(tǒng)計(jì)分析實(shí)現(xiàn)總線性能評(píng)價(jià)。為部隊(duì)提高裝備訓(xùn)練、維護(hù)水平提供了有力技術(shù)支撐。
CAN總線,自行高炮,數(shù)據(jù)采集,協(xié)議轉(zhuǎn)換,相關(guān)分析,雙機(jī)分離
某型自行高炮是我軍新型的防空武器,工況數(shù)據(jù)通過(guò)CAN總線進(jìn)行傳輸。為滿足裝備工況的實(shí)時(shí)監(jiān)測(cè)和事后故障分析的要求,通常采用工況記錄(黑匣子)實(shí)時(shí)記錄在線數(shù)據(jù),為事后裝備性能分析、故障診斷等提供依據(jù)。某型自行高炮底盤部分應(yīng)用了數(shù)據(jù)記錄與分析儀,但上裝部分目前仍是空白。上裝工況分析儀可對(duì)CAN總線數(shù)據(jù)實(shí)時(shí)獲取、存儲(chǔ)和遠(yuǎn)程監(jiān)控;基于總線數(shù)據(jù)的時(shí)序分析,可對(duì)各節(jié)點(diǎn)時(shí)序故障報(bào)警;基于總線歷史數(shù)據(jù)的分析,可進(jìn)行故障智能定位、總線性能評(píng)價(jià)。
為實(shí)現(xiàn)CAN總線數(shù)據(jù)的實(shí)時(shí)采集和存儲(chǔ),需要首先對(duì)自行高炮的CAN總線布局、數(shù)據(jù)結(jié)構(gòu)、發(fā)送策略進(jìn)行分析,以確定數(shù)據(jù)采集算法。
自行高炮CAN總線采用CAN 2.0B標(biāo)準(zhǔn)總線協(xié)議,總線通信速率為500 kb/s,同步信號(hào)是RS-485規(guī)范的周期性方波脈沖信號(hào)。CAN總線分為兩層,數(shù)據(jù)的發(fā)送策略較為復(fù)雜,其中一層CAN采用周期傳輸方式,二層CAN采用“發(fā)現(xiàn)即傳輸”方式,具有隨機(jī)性,在采集算法設(shè)計(jì)時(shí)應(yīng)充分考慮。
CAN總線數(shù)據(jù)幀為短數(shù)據(jù)報(bào)文,由幀起始、仲裁域、控制域、數(shù)據(jù)域、CRC域、應(yīng)答域、幀結(jié)尾等7個(gè)位域組成,共132比特。
系統(tǒng)包括主機(jī)及軟件兩部分。主機(jī)通過(guò)兩根CAN數(shù)據(jù)線與自行高炮的中繼測(cè)試盒相應(yīng)接口連接,通過(guò)一根電源電纜與自行高炮備用電源電纜連接;當(dāng)需要遠(yuǎn)程監(jiān)控時(shí),通過(guò)以太網(wǎng)口將CAN總線數(shù)據(jù)轉(zhuǎn)發(fā)到遠(yuǎn)程監(jiān)控計(jì)算機(jī),系統(tǒng)連接關(guān)系如圖1所示。
圖1 系統(tǒng)連接示意圖
系統(tǒng)主要具有CAN總線數(shù)據(jù)的實(shí)時(shí)采集與存儲(chǔ)、各單體的在線時(shí)序監(jiān)測(cè)、遠(yuǎn)程在線監(jiān)測(cè)和存儲(chǔ)、離線數(shù)據(jù)回放和曲線顯示、基于離線數(shù)據(jù)分析的故障診斷和基于離線數(shù)據(jù)分析的總線性能評(píng)價(jià)等功能。
為便于后期分析,系統(tǒng)要求在數(shù)據(jù)采集時(shí)記錄采集時(shí)間,而CAN總線在高速運(yùn)行時(shí)約0.26ms就會(huì)發(fā)出一幀CAN數(shù)據(jù),常用操作系統(tǒng)的任務(wù)時(shí)鐘難以滿足加注時(shí)標(biāo)的這一任務(wù)要求,而在實(shí)時(shí)取數(shù)的同時(shí)進(jìn)行存儲(chǔ)和轉(zhuǎn)發(fā)就更為困難。
圖2 工況分析儀主機(jī)邏輯結(jié)構(gòu)
為解決這一問(wèn)題,在工況分析儀主機(jī)設(shè)計(jì)中采用雙機(jī)分離和并行工作的設(shè)計(jì)思想,如圖2所示,下位機(jī)采用實(shí)時(shí)操作系統(tǒng)Free RTOS,利用實(shí)時(shí)任務(wù)調(diào)度時(shí)鐘完成實(shí)時(shí)取數(shù)和加注時(shí)標(biāo)任務(wù),同時(shí)轉(zhuǎn)發(fā)給上位機(jī);上位機(jī)采用WIN XP系統(tǒng),完成實(shí)時(shí)存儲(chǔ),同時(shí)利用剩余的計(jì)算資源進(jìn)行數(shù)據(jù)時(shí)序分析和故障代碼顯示。
在實(shí)時(shí)數(shù)據(jù)采集算法中還有一個(gè)細(xì)節(jié)設(shè)計(jì),由于自行高炮兩層CAN總線采用不同的數(shù)據(jù)發(fā)送策略,如采用常用的中斷方式采集數(shù)據(jù),則可能產(chǎn)生兩層CAN數(shù)據(jù)中斷沖突,從而導(dǎo)致取數(shù)失敗,因此,算法采用查詢方式采集數(shù)據(jù),保證實(shí)時(shí)數(shù)據(jù)采集不丟數(shù)。
CAN數(shù)據(jù)幀采用的是一種短而快速的串行數(shù)據(jù)通信方式,因此,系統(tǒng)在進(jìn)行實(shí)時(shí)數(shù)據(jù)采集設(shè)計(jì)時(shí),利用Free RTOS較高精度的任務(wù)調(diào)度時(shí)鐘進(jìn)行數(shù)據(jù)時(shí)標(biāo)加注;但系統(tǒng)設(shè)計(jì)中下位機(jī)和上位機(jī)的通信及上位機(jī)與遠(yuǎn)程監(jiān)控計(jì)算機(jī)的通信若仍采用CAN總線傳輸,則必然給實(shí)時(shí)存儲(chǔ)和遠(yuǎn)程監(jiān)控軟件的開(kāi)發(fā)增加困難。
表1 CAN數(shù)據(jù)編碼格式
為解決這一問(wèn)題,下位機(jī)在數(shù)據(jù)采集后通過(guò)如表1所示的編碼格式,按照CAN段標(biāo)記域、標(biāo)志域、數(shù)據(jù)域、時(shí)標(biāo)域順序?qū)AN數(shù)據(jù)和時(shí)標(biāo)數(shù)據(jù)重新編碼為20個(gè)字節(jié),再按照兩個(gè)CAN1、兩個(gè)CAN2和一個(gè)時(shí)標(biāo)的順序重構(gòu)為100個(gè)字節(jié)的UDP數(shù)據(jù)報(bào)文向上位機(jī)發(fā)送。通過(guò)任務(wù)的合理分配,實(shí)現(xiàn)了對(duì)短而快速的串行數(shù)據(jù)通信——CAN總線的實(shí)時(shí)處理,將其轉(zhuǎn)變?yōu)檩^長(zhǎng)而更加快速的串行數(shù)據(jù)通信——以太網(wǎng)數(shù)據(jù)傳輸,進(jìn)而轉(zhuǎn)變?yōu)閿?shù)據(jù)量較大,但處理緩慢的硬盤數(shù)據(jù)讀寫操作,從而解決了遠(yuǎn)程監(jiān)控和實(shí)時(shí)存盤問(wèn)題。
在傳輸層采用無(wú)連接的UDP協(xié)議可快速建立連接,但也可能存在丟包和亂序問(wèn)題,為此,系統(tǒng)采用冗余傳輸?shù)姆绞浇鉀Q丟包問(wèn)題,采用驗(yàn)證時(shí)標(biāo)計(jì)數(shù)的方式解決亂序問(wèn)題。
上裝工況分析儀采集存儲(chǔ)的CAN總線數(shù)據(jù)主要用于操作回放、狀態(tài)監(jiān)測(cè)和故障診斷,主機(jī)為滿足實(shí)時(shí)取數(shù)、存儲(chǔ)和轉(zhuǎn)發(fā)功能需求,只做了分系統(tǒng)或裝置的時(shí)序錯(cuò)誤判斷,主要的數(shù)據(jù)挖掘工作由遠(yuǎn)程監(jiān)控計(jì)算機(jī)的離線分析程序完成。
離線分析程序?qū)ψ孕懈吲诜轿唤?、高低角、航向角、縱搖角、橫滾角、目標(biāo)速度、斜距離等重要技術(shù)指標(biāo)的多個(gè)相關(guān)總線數(shù)據(jù)輸出進(jìn)行曲線擬合和相關(guān)分析,形成關(guān)聯(lián)數(shù)據(jù)約束規(guī)則,結(jié)合常見(jiàn)故障特征庫(kù)規(guī)則,即可進(jìn)行智能故障定位。
如搜索雷達(dá)、火控計(jì)算機(jī)、穩(wěn)定跟蹤伺服、受信儀、隨動(dòng)系統(tǒng)、方位測(cè)量裝置、尋北儀、導(dǎo)航姿態(tài)等單體都會(huì)輸出方位角信息,其中搜索雷達(dá)方位角βs、伺服方位角βt、隨動(dòng)受信儀方位角βsp、炮塔方位角測(cè)量裝置測(cè)得的方位角βpt、火控方位角主令βtc滿足以下限制:
Δ1為受信儀與炮塔方位角測(cè)量裝置之間的測(cè)量誤差;
Δ2為火炮隨動(dòng)誤差;
Δ3為身管指向與搜索雷達(dá)電軸指向的誤差;
Δ4為穩(wěn)定跟蹤器方位與身管指向的誤差;
Δ5為火炮動(dòng)態(tài)跟蹤方位隨機(jī)誤差(均方差)。
上裝工況分析儀主機(jī)由下位機(jī)、上位機(jī)、電源板組成,其內(nèi)部組成如圖3所示。
下位機(jī)主要由嵌入式單板機(jī)、雙端口隔離CAN卡、時(shí)標(biāo)接口板和CF卡組成。單板機(jī)上運(yùn)行的是存儲(chǔ)在CF卡上的Free RTOS操作系統(tǒng),下位機(jī)利用北斗時(shí)標(biāo)模塊時(shí)間信息中的秒脈沖信號(hào)和絕對(duì)時(shí)標(biāo)(RS-232信號(hào))作為時(shí)間基準(zhǔn)及粗分劃,F(xiàn)ree RTOS實(shí)時(shí)操作系統(tǒng)任務(wù)周期作為時(shí)間精細(xì)刻度分劃,以精、粗分劃組合讀數(shù)為采集數(shù)據(jù)加注較高精度的時(shí)標(biāo)信息。系統(tǒng)在每個(gè)任務(wù)周期通過(guò)CAN卡取出來(lái)自中繼測(cè)試盒的兩層CAN數(shù)據(jù),送入編碼模塊。編碼模塊完成CAN總線數(shù)據(jù)到UDP數(shù)據(jù)包的轉(zhuǎn)換,并通過(guò)以太網(wǎng)將其發(fā)送到上位機(jī)。
圖3 工況分析儀主機(jī)內(nèi)部組成
上位機(jī)主要由嵌入式單板機(jī)、SSD硬盤、數(shù)碼顯示板、I/O接口板等組成。上位機(jī)通過(guò)網(wǎng)線與下位機(jī)連接,采用XP操作系統(tǒng)。上位機(jī)利用雙網(wǎng)卡將接收到的UDP協(xié)議數(shù)據(jù)包直接向外轉(zhuǎn)發(fā)到遠(yuǎn)程控制計(jì)算機(jī),同時(shí)通過(guò)解碼模塊對(duì)接收到的UDP協(xié)議數(shù)據(jù)包解碼獲取工況數(shù)據(jù),進(jìn)行存盤、計(jì)數(shù)和時(shí)序故障分析。
電源板通過(guò)一根電源電纜與自行高炮備用電源電纜連接,用于將自行高炮工作電源轉(zhuǎn)換為系統(tǒng)所需的直流+5V工作電源。
軟件由運(yùn)行于主機(jī)上數(shù)據(jù)采集軟件和運(yùn)行于遠(yuǎn)程監(jiān)控計(jì)算機(jī)上的工況分析軟件組成。
數(shù)據(jù)采集軟件在工況分析儀主機(jī)的下位機(jī)Free RTOS系統(tǒng)和上位機(jī)WINXP系統(tǒng)上運(yùn)行,包含F(xiàn)ree RTOS系統(tǒng)CAN卡驅(qū)動(dòng)和網(wǎng)絡(luò)編程支持模塊、CAN總線數(shù)據(jù)讀取模塊、北斗時(shí)標(biāo)模塊、數(shù)據(jù)編碼模塊、數(shù)據(jù)監(jiān)測(cè)模塊及數(shù)據(jù)存儲(chǔ)模塊等。數(shù)據(jù)采集軟件流程如圖4所示。
首先將DOS下的CAN接口驅(qū)動(dòng)及基于Packet Driver的socket編程方法移植到Free RTOS系統(tǒng)中,使其支持CAN卡編程和UDP網(wǎng)絡(luò)通信;CAN總線數(shù)據(jù)讀取模塊主要針對(duì)雙端口隔離CAN卡中CAN控制器SJA1000的連接原理進(jìn)行程序設(shè)計(jì),通過(guò)每個(gè)Free RTOS系統(tǒng)任務(wù)周期執(zhí)行兩次查詢?nèi)?shù)操作,確保完整獲取CAN總線數(shù)據(jù);北斗時(shí)標(biāo)模塊讀取北斗時(shí)標(biāo)數(shù)據(jù)用于后續(xù)時(shí)標(biāo)計(jì)數(shù);數(shù)據(jù)編碼模塊用于解析CAN數(shù)據(jù)幀標(biāo)志、數(shù)據(jù)域,存入緩存并把當(dāng)前實(shí)時(shí)調(diào)度任務(wù)的時(shí)鐘計(jì)數(shù)值附加到緩存區(qū)的時(shí)標(biāo)字段,重構(gòu)為較長(zhǎng)的以太網(wǎng)數(shù)據(jù)幀;數(shù)據(jù)監(jiān)測(cè)模塊用于解析以太網(wǎng)數(shù)據(jù)幀進(jìn)行計(jì)數(shù),并按各分系統(tǒng)或裝置時(shí)序規(guī)則判斷時(shí)序錯(cuò)誤,將計(jì)數(shù)及時(shí)序錯(cuò)誤信息顯示在LED顯示屏上;數(shù)據(jù)存儲(chǔ)模塊用于存儲(chǔ)CAN數(shù)據(jù)及實(shí)時(shí)時(shí)標(biāo)信息。
圖4 操作程序流程圖
上裝工況分析軟件(組成如圖5所示)在遠(yuǎn)程監(jiān)控計(jì)算機(jī)上運(yùn)行,主要分為在線監(jiān)測(cè)和離線分析兩部分。
分析軟件的在線監(jiān)測(cè)主要由4個(gè)子模塊組成。狀態(tài)顯示模塊用于監(jiān)控單體工作狀態(tài)數(shù)據(jù);操作監(jiān)視模塊用于檢測(cè)操作手是否按正確的操作順序和參數(shù)設(shè)置要求進(jìn)行裝備操作;實(shí)時(shí)數(shù)據(jù)模塊是為了指揮員和技術(shù)人員能夠準(zhǔn)確掌握主要單體的運(yùn)行數(shù)據(jù)參數(shù)和系統(tǒng)軸系的一致性進(jìn)行數(shù)據(jù)選取輸出;時(shí)序監(jiān)測(cè)模塊用于檢測(cè)CAN總線上各單體的工作時(shí)序,與上位機(jī)中數(shù)據(jù)監(jiān)測(cè)模塊功能相同。
圖5 離線分析程序組成
分析軟件的離線分析主要由5個(gè)子模塊組成。數(shù)據(jù)文件解析模塊將數(shù)據(jù)存儲(chǔ)文件提取到計(jì)算機(jī)內(nèi)存中,并進(jìn)行文件格式轉(zhuǎn)換,以便進(jìn)一步分析;操作數(shù)據(jù)回放模塊將操作手主要操作按時(shí)標(biāo)信息以文字形式回放;操作數(shù)據(jù)顯示模塊將CAN數(shù)據(jù)以文本文件形式打開(kāi),以便進(jìn)行具體分析;故障診斷模塊對(duì)各單體之間相關(guān)數(shù)據(jù)進(jìn)行對(duì)比分析,通過(guò)閾值判斷等方法確定是否有故障或工作性能是否符合設(shè)計(jì)要求;性能評(píng)價(jià)模塊對(duì)兩層CAN總線中各單體的工作性能進(jìn)行分析和評(píng)價(jià)。
系統(tǒng)已應(yīng)用于部隊(duì)訓(xùn)練,并對(duì)裝備維護(hù)水平的提高起到了積極作用,本文通過(guò)一次故障定位實(shí)例加以說(shuō)明。
故障現(xiàn)象:身管高低抖動(dòng)。
故障分析與定位:
第1步,導(dǎo)入數(shù)據(jù)。將故障前1 h到發(fā)生故障時(shí)采集數(shù)據(jù)導(dǎo)入離線分析程序,圖6給出了各單體在同步時(shí)統(tǒng)序號(hào)為8 000附近時(shí)的數(shù)據(jù)曲線;
第2步,分析定位。系統(tǒng)基于知識(shí)庫(kù)和數(shù)據(jù)相關(guān)性約束規(guī)則,對(duì)身管數(shù)據(jù)相關(guān)單體進(jìn)行數(shù)據(jù)檢查。按照關(guān)聯(lián)順序依次檢查受信儀高低角、火控隨動(dòng)主令高低角、搜索雷達(dá)高低角、雷達(dá)紅外電視測(cè)角、激光雷達(dá)測(cè)距、火控解算數(shù)據(jù)。檢查中發(fā)現(xiàn)受信儀高低角、火控隨動(dòng)主令高低角數(shù)據(jù)在同步時(shí)統(tǒng)序號(hào)為8 000附近有抖動(dòng),但搜索雷達(dá)高低角無(wú)抖動(dòng),說(shuō)明目標(biāo)飛行穩(wěn)定;進(jìn)一步檢查激光測(cè)距機(jī)的輸出數(shù)據(jù)在同步時(shí)統(tǒng)序號(hào)8 000時(shí)為0,通過(guò)查看激光測(cè)距機(jī)狀態(tài)信息碼,最終系統(tǒng)自動(dòng)得出故障原因是激光測(cè)距機(jī)因超時(shí)工作而自動(dòng)停機(jī)。
這一故障排查過(guò)程自動(dòng)完成,并最終輸出準(zhǔn)確的故障定位,顯著提高了裝備智能故障診斷的自動(dòng)
圖6 名單體在同步時(shí)統(tǒng)序號(hào)為8 000附近時(shí)的數(shù)據(jù)曲線化水平。
系統(tǒng)創(chuàng)造性地應(yīng)用雙機(jī)分離設(shè)計(jì)思想,綜合采用實(shí)時(shí)操作系統(tǒng)、CAN總線-以太網(wǎng)網(wǎng)絡(luò)協(xié)議轉(zhuǎn)換技術(shù)、時(shí)標(biāo)技術(shù)、相關(guān)性分析技術(shù)等方法,有效解決了CAN總線數(shù)據(jù)實(shí)時(shí)提取、存儲(chǔ)困難的問(wèn)題;通過(guò)對(duì)各節(jié)點(diǎn)時(shí)序的自動(dòng)監(jiān)聽(tīng),及對(duì)總線歷史數(shù)據(jù)的分析,實(shí)現(xiàn)了對(duì)上裝各單體的總線性能評(píng)價(jià)和智能故障定位,為裝備維護(hù)保養(yǎng)、訓(xùn)練評(píng)估、故障診斷提供了有力的技術(shù)支撐手段。
[1]閔華松.以太網(wǎng)CAN總線轉(zhuǎn)換器的延時(shí)特性分析及設(shè)計(jì)[J].計(jì)算機(jī)工程與設(shè)計(jì),2012,33(2):503-507.
[2]宮筱霞.基于CAN總線的智能多參數(shù)監(jiān)控系統(tǒng)[D].鎮(zhèn)江:江蘇科技大學(xué),2010.
[3]楊曄.多通道CAN-Ethernet嵌入式網(wǎng)關(guān)的設(shè)計(jì)與實(shí)現(xiàn)[D].蘇州:蘇州大學(xué),2010.
[4]汪保男.相關(guān)分析在異常檢測(cè)中的應(yīng)用研究[D].西安:西安科技大學(xué),2010.
[5]孫兵.基于DSP的CAN總線與以太網(wǎng)互聯(lián)系統(tǒng)研制[J].儀器儀表學(xué)報(bào),2008,29(2):377-380.
[6]趙浩.基于CAN總線和以太網(wǎng)的遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計(jì)[J].測(cè)控技術(shù),2006,25(10):53-56.
A Design and Im p lementation of Artillery Condition Analyzer
ZHAOXin,ZHANGZhen-you,WANGChang-sheng
(Air Defense Forces Academy,Zhengzhou 450052,China)
The work condition analyzer is designed against the problem that the methods of bus data recording and analysis in the self-propelled antiaircraft gun are lacked.It implements real time collection,storage,relay,replay and time series mistaken monitoring,based on the technologies of double engine cooperation,protocol conversion,time series analysis.It can achieve bug location and property evaluation based on relevance analysis and statistics analysis.It can offer powerful technology support improving the equipment training and maintaining level.
CAN bus,self-propelled antiaircraftgun,data acquisition,protocol transition,correlation analysis,doubleengine cooperation
TJ393
A
1002-0640(2015)11-0159-04
2014-09-05
2014-11-02
軍隊(duì)技術(shù)革新項(xiàng)目
趙 鑫(1979- ),男,山西長(zhǎng)治人,博士,講師。研究方向:自行高炮,網(wǎng)絡(luò)安全技術(shù)。