李珊珊,吳傳貴
(1.中國人民解放軍第5720工廠航空設(shè)備測控與逆向工程實(shí)驗(yàn)室,安徽蕪湖 241007;2.中國人民解放軍第5720工廠,安徽蕪湖 241007)
傳統(tǒng)的總線數(shù)據(jù)分析多是嵌入在各產(chǎn)品的專用測試系統(tǒng)中,主要存在以下兩點(diǎn)問題[1]:一是在不同產(chǎn)品的測試系統(tǒng)之間,總線數(shù)據(jù)分析代碼無法共用,針對(duì)不同產(chǎn)品的接口控制文件(ICD)需要分別編寫解析代碼,降低了測試系統(tǒng)的通用性;二是當(dāng)接口控制文件發(fā)生變化時(shí),需要重新開發(fā)測試系統(tǒng)的接口數(shù)據(jù)解析代碼,降低了測試系統(tǒng)的測試效率和可靠性。
針對(duì)這一現(xiàn)狀,近年來行業(yè)內(nèi)開展了多種總線基于ICD配置文件的通用化總線解析流程研究,研制了多種總線的通用分析軟件[2-6],如 ARINC429、MILSTD-1553B等。隨著航空電子產(chǎn)品對(duì)通信速率和可靠程度要求的不斷提高,F(xiàn)C-AE-ASM總線已廣泛應(yīng)用于各型號(hào)中。但目前針對(duì)該類總線的通用解析研究還較少。
基于以上問題,本文開發(fā)了一種FC-AE-ASM總線數(shù)據(jù)通用分析軟件,根據(jù)配置的ICD數(shù)據(jù)庫,采用通用化處理流程,可實(shí)現(xiàn)對(duì)不同航空電子產(chǎn)品FC-AEASM數(shù)據(jù)的自動(dòng)分析及顯示。
通用分析軟件對(duì)不同航空電子產(chǎn)品的ICD進(jìn)行格式化處理,轉(zhuǎn)換成統(tǒng)一的數(shù)據(jù)庫文件后,將總線數(shù)據(jù)與ICD數(shù)據(jù)庫相關(guān)聯(lián),自動(dòng)查找其映射關(guān)系及邏輯,并根據(jù)ICD數(shù)據(jù)庫中的定義對(duì)采集到的總線數(shù)據(jù)進(jìn)行實(shí)時(shí)分析[7],最后將分析結(jié)果送到人機(jī)交互界面顯示。這種基于ICD數(shù)據(jù)庫開發(fā)總線數(shù)據(jù)分析軟件的方法,使總線數(shù)據(jù)分析過程完全獨(dú)立于航電產(chǎn)品測試系統(tǒng),避免了不同航空電子產(chǎn)品、即不同ICD的麻煩,具有通用性。
通用分析軟件采用結(jié)構(gòu)化設(shè)計(jì),應(yīng)具有以下3個(gè)功能:① ICD數(shù)據(jù)庫管理功能,包括新建ICD數(shù)據(jù)庫和導(dǎo)入已有ICD數(shù)據(jù)庫;② 總線數(shù)據(jù)分析功能,即依據(jù)導(dǎo)入的ICD數(shù)據(jù)庫自動(dòng)分析總線數(shù)據(jù);③數(shù)據(jù)管理及顯示功能,即可對(duì)分析結(jié)果進(jìn)行顯示和保存。通用分析軟件各功能模塊具體設(shè)計(jì)需求如圖1所示。1.3 ICD數(shù)據(jù)庫分析
圖1 通用分析軟件功能框圖
ICD是FC-AE-ASM分析總線數(shù)據(jù)的基礎(chǔ),定義了信號(hào)類型、參數(shù)物理意義等一整套總線系統(tǒng)數(shù)據(jù)[8]。ICD一般采用數(shù)據(jù)庫形式管理[9],由于航空電子產(chǎn)品FC-AE-ASM總線ICD文件的編制方式不一致,因此,為實(shí)現(xiàn)總線數(shù)據(jù)分析流程通用化,設(shè)計(jì)具有統(tǒng)一格式和數(shù)據(jù)結(jié)構(gòu)的ICD數(shù)據(jù)庫是關(guān)鍵。
根據(jù)對(duì)航空電子系統(tǒng)典型總線ICD定義的分析得出,ICD中包含兩種基本接口類型:消息塊和信號(hào)。消息塊是由若干信號(hào)組成,且至少包含一個(gè)信號(hào),具有唯一的標(biāo)識(shí)(ID)、源地址(SID)和目的地址(DID)。信號(hào)是總線上傳輸信息的最小數(shù)據(jù)單位,可分為數(shù)據(jù)信號(hào)和離散信號(hào),數(shù)據(jù)信號(hào)代表具體物理量的值,離散信號(hào)又可包含多個(gè)物理量的狀態(tài)屬性。因此,一個(gè)通用的ICD數(shù)據(jù)模型應(yīng)包含“ICD-Block-Signal-Filed”四級(jí)信息[10]:ICD定義機(jī)載設(shè)備的一些屬性信息;Block即消息塊,定義通信規(guī)范信息;Signal即信號(hào),是通信的基本單元,定義信號(hào)的屬性信息;Filed即離散域,定義具體離散值的屬性意義。同時(shí),為提高總線數(shù)據(jù)分析效率,避免不同信號(hào)類型或同信號(hào)類型不同長度的總線數(shù)據(jù)之間的差異,應(yīng)在各級(jí)信息中提取共性特征。
根據(jù)1.3節(jié)分析,設(shè)計(jì)了由消息塊描述表、數(shù)據(jù)信號(hào)描述表、各離散信號(hào)獨(dú)立描述表組成的數(shù)據(jù)庫,各描述表結(jié)構(gòu)獨(dú)立、邏輯關(guān)聯(lián)[11]。
消息塊描述表中包含了總線上傳輸?shù)乃邢K,每個(gè)消息塊的數(shù)據(jù)結(jié)構(gòu)即說明如表1所示。
表1 消息塊數(shù)據(jù)結(jié)構(gòu)
數(shù)據(jù)信號(hào)用16/32位串行數(shù)字信號(hào)表示某個(gè)具體物理量的值,數(shù)據(jù)信號(hào)描述表中包含了所有數(shù)據(jù)信號(hào),每個(gè)數(shù)據(jù)信號(hào)的數(shù)據(jù)結(jié)構(gòu)及說明如表2所示。在數(shù)據(jù)結(jié)構(gòu)中,針對(duì)數(shù)據(jù)信號(hào)最高有效位、最低有效位的區(qū)別,建立了最高位和最低位字段,根據(jù)兩字段的值實(shí)現(xiàn)不同長度數(shù)據(jù)信號(hào)分析算法的一致性。
表2 數(shù)據(jù)信號(hào)描述表數(shù)據(jù)結(jié)構(gòu)
離散信號(hào)與數(shù)據(jù)信號(hào)不同,離散信號(hào)用16位串行數(shù)字信號(hào)表示產(chǎn)品的幾項(xiàng)物理量狀態(tài),每個(gè)離散信號(hào)包含的物理量名稱和個(gè)數(shù)均不相同,因此需要為每一個(gè)離散信號(hào)建立獨(dú)立的描述表,描述表內(nèi)每個(gè)產(chǎn)品物理量數(shù)據(jù)結(jié)構(gòu)及說明如表3所示。針對(duì)不同離散信號(hào)包含的物理量狀態(tài)的個(gè)數(shù)、每個(gè)物理量狀態(tài)所占有效位的不同,建立了所占位數(shù)、最高位、最低位字段,根據(jù)字段值實(shí)現(xiàn)不同離散信號(hào)分析算法的一致性。
表3 離散信號(hào)描述表中產(chǎn)品物理量數(shù)據(jù)結(jié)構(gòu)
ICD數(shù)據(jù)庫生成界面如圖2所示,通過依次輸入消息塊信息的方式,軟件將自動(dòng)生成遵循本設(shè)計(jì)要求、格式統(tǒng)一的數(shù)據(jù)庫文件。
圖2 ICD數(shù)據(jù)庫生成界面
數(shù)據(jù)庫文件生成或?qū)牒?,每個(gè)消息塊與軟件中定義的結(jié)構(gòu)體相關(guān)聯(lián),實(shí)現(xiàn)對(duì)ICD的管理。結(jié)構(gòu)體具體如下:
struct ElementInfo
{
CString name; //信號(hào)名
CString type; //信號(hào)類型
long length; //信號(hào)長度
long value; //未解碼的16/32bit信號(hào)值
}Element[N]; //N為消息塊的信號(hào)數(shù)量
總線數(shù)據(jù)分析模塊以消息塊為單位,按照消息塊信息獲取和信號(hào)解碼兩步對(duì)總線數(shù)據(jù)進(jìn)行解析。
消息塊信息獲取流程如圖3所示,通過將總線數(shù)據(jù)MsgID與消息塊描述表消息塊號(hào)字段記錄值相比較,獲取一包完整總線數(shù)據(jù)對(duì)應(yīng)的物理意義和包含的信號(hào)信息,并存入結(jié)構(gòu)體Element。
信息解碼流程如圖4所示,數(shù)據(jù)信號(hào)和離散信號(hào)采用的解碼方法不同,軟件根據(jù)Element[].type內(nèi)的值選擇不同的解碼流程。數(shù)據(jù)信號(hào)根據(jù)數(shù)據(jù)信號(hào)描述表中對(duì)應(yīng)記錄各字段的定義,計(jì)算出所代表物理量的名稱和數(shù)值;離散信號(hào)根據(jù)對(duì)應(yīng)離散信號(hào)描述表中各字段的定義,計(jì)算出所代表的多個(gè)產(chǎn)品物理狀態(tài)。
數(shù)據(jù)顯示與信息解碼同步,信息解碼過程中,每分析出一個(gè)有用信息,結(jié)果顯示界面將同步更新,有用信息包括消息塊名稱、信號(hào)名稱,數(shù)據(jù)信號(hào)的物理量值及離散信號(hào)的物理狀態(tài)。分析結(jié)果以樹形圖的形式顯示被分析總線上的所有消息塊信息,并以.txt格式保存,樹形圖結(jié)構(gòu)如圖5所示。
圖3 消息塊信息獲取流程圖
本文基于FC-AE總線測試平臺(tái),以FC-AE-ASM總線上3個(gè)消息為例,利用ICD數(shù)據(jù)庫生成工具轉(zhuǎn)化為分析軟件規(guī)定的數(shù)據(jù)庫格式后,對(duì)通用性和高效性進(jìn)行了測試驗(yàn)證。
通用性即分析軟件可對(duì)不同產(chǎn)品的FC-AE-ASM總線數(shù)據(jù)進(jìn)行解析,解算結(jié)果僅與導(dǎo)入的產(chǎn)品ICD數(shù)據(jù)庫中有關(guān)。
①利用FC-AE總線測試平臺(tái),自環(huán)發(fā)送一幀完整的FC-AE-ASM總線數(shù)據(jù),數(shù)據(jù)幀ASM幀頭和數(shù)據(jù)域字段具體如下。
圖4 信號(hào)解碼流程圖
圖5 分析結(jié)果顯示結(jié)構(gòu)圖
②導(dǎo)入產(chǎn)品1的ICD數(shù)據(jù)庫文件,產(chǎn)品1的ICD數(shù)據(jù)庫中定義了消息號(hào)為1,消息名為長機(jī)目標(biāo)分配的消息,基于該ICD數(shù)據(jù)庫文件對(duì)以上幀解算后的結(jié)果如圖6所示。
③導(dǎo)入產(chǎn)品2的ICD數(shù)據(jù)庫文件,產(chǎn)品2的ICD數(shù)據(jù)庫中定義了消息號(hào)為1,消息名為任務(wù)分配信息的消息,基于該ICD數(shù)據(jù)庫文件對(duì)以上幀結(jié)算后的結(jié)果如圖7所示。
圖6 解算結(jié)果1
圖7 解算結(jié)果2
總線數(shù)據(jù)的解算,即將總線上包含的每條信號(hào)根據(jù)ICD中的定義轉(zhuǎn)換為其物理意義的過程,以10條FC-AE-ASM總線信號(hào)的分析為例,采用傳統(tǒng)方法和通用分析軟件所耗費(fèi)的時(shí)間如圖8所示。按照傳統(tǒng)方法將總線數(shù)據(jù)解算過程嵌入在產(chǎn)品專用測試系統(tǒng)中,則需要針對(duì)每條信號(hào)編寫對(duì)應(yīng)的數(shù)據(jù)計(jì)算代碼,因FCAE-ASM數(shù)據(jù)量大、解算過程復(fù)雜,每條信號(hào)的解算代碼編寫需40~60 min,則整個(gè)產(chǎn)品的總線分析軟件約7 h左右時(shí)間完成。采用本文開發(fā)的通用分析軟件,只需在ICD數(shù)據(jù)庫生成界面中錄入待測產(chǎn)品的每條總線信號(hào)后,形成符合規(guī)定的數(shù)據(jù)庫格式,再以動(dòng)態(tài)導(dǎo)入的形式實(shí)現(xiàn)對(duì)產(chǎn)品的解算。每條總線信號(hào)的錄入最多需2 min,則整個(gè)產(chǎn)品的總線分析軟件在10 min內(nèi)完成。
圖8 解算程序編程時(shí)間對(duì)比圖
本文基于傳統(tǒng)的總線分析軟件的不足,開發(fā)了基于ICD數(shù)據(jù)庫的FC-AE-ASM總線通用解析軟件,并對(duì)其進(jìn)行測試驗(yàn)證,測試驗(yàn)證表明其有效性。所開發(fā)的軟件可廣泛應(yīng)用于含F(xiàn)C-AE-ASM總線數(shù)據(jù)的產(chǎn)品測試中。