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