武修文
(上海創(chuàng)景信息科技有限公司,上海 201203)
故障注入測試系統(tǒng)是一套對通訊鏈路進(jìn)行系統(tǒng)級故障注入的設(shè)備。針對部分應(yīng)用場景下,通信總線出現(xiàn)故障時無法定位的情況,研發(fā)了此套系統(tǒng)。該系統(tǒng)適用于航天航空、國防科工、艦船、車輛電子等領(lǐng)域,同時可獨立運行于目標(biāo)系統(tǒng)之外,以精準(zhǔn)、便捷的方式,驗證目標(biāo)系統(tǒng)的容錯性、穩(wěn)定性和健壯性。
整個物理層故障注入系統(tǒng)是以串行方式接入到正常通訊的傳輸線路中,根據(jù)用戶定制的故障類型和故障觸發(fā)策略注入各種故障[1]。系統(tǒng)能夠?qū)νㄐ趴偩€進(jìn)行單一方向的物理層故障注入以及故障注入前后總線數(shù)據(jù)的采集和上傳。
系統(tǒng)主要由3 個部分組成(見圖1),指令板負(fù)責(zé)通過網(wǎng)口與上位機通信以及故障注入指令的下發(fā);物理層故障注入底板用于執(zhí)行物理層故障注入,同時通信總線的輸入輸出接口和PHY 板也在該板上;物理層故障注入繼電器板是物理層故障注入的具體實施單元。
圖1 系統(tǒng)硬件框圖
指令板是整個系統(tǒng)的控制單元,必須具有能夠進(jìn)行分析判斷的控制核心,以及大量且靈活的IO。故采用了XILINX 公司的ZYNQ 系列SoC XC7Z045。
其中,PL 側(cè)主要實現(xiàn)以下兩個方面:
(1) 對物理層故障注入配置信息的下發(fā)。
(2) 接收總線經(jīng)過PHY 芯片轉(zhuǎn)換后的總線信息,利用該信息對總線進(jìn)行幀解析且按照幀解析的內(nèi)容實現(xiàn)物理層故障注入的觸發(fā)及總線通信方向的控制。對于PS 側(cè),通過網(wǎng)口與上位機通信,接收上位機的配置信息,上傳總線數(shù)據(jù)。
底板在整個系統(tǒng)具有承上啟下的關(guān)鍵作用,見圖2,主要實現(xiàn)以下5 個功能:
圖2 物理層故障注入底板硬件框圖
1.3.1 物理層故障注入的執(zhí)行單元
執(zhí)行單元采用多個低成本的FPGA 按照配置指令和觸發(fā)線狀態(tài),對用于具體實現(xiàn)故障注入的繼電器和模擬開關(guān)進(jìn)行控制。
1.3.2 通信總線的對外接口
總線對外接口為圖2 中的“PORT-IN”和“PORT-OUT”。線1 和線2 為差分線對,是全雙工總線的前向信號線或半雙工總線的信號線;線3 為總線信號地線,通過磁珠與系統(tǒng)地相連;線4 和線5 是全雙工總線的反向信號線,在板上進(jìn)行了短路連接,使得全雙工總線反向信號對于主從機可直接通信。
1.3.3 半雙工總線通信方向控制單元
對于半雙工總線的通信方向控制是系統(tǒng)設(shè)計的一個技術(shù)難點。采用圖2 中高速模擬開關(guān)S1、S2 和S3 構(gòu)成的半雙工總線的通信方向控制單元來實現(xiàn)此功能,開關(guān)動作由指令板進(jìn)行控制[2]。對于模擬開關(guān)的選型主要考慮其帶寬、開關(guān)時間和輸入電壓范圍(由電源電壓決定)。
1.3.4 PHY 信號傳輸單元
該部分主要為兩個板對板連接器用于連接PHY 板,將PHY 板的信號線連接至目標(biāo)處。
1.3.5 外部信號及噪音信號產(chǎn)生單元
單元主要為由FPGA 控制的DA 及DA信號處理電路組成的信號發(fā)生器,作為噪音信號用于故障注入。
實現(xiàn)全部物理層故障注入功能指標(biāo)共需要繼電器和高速模擬開關(guān)近500 個,占用大量面積,需單獨設(shè)計電路板。該板面積較大,可承載大量元器件,通過連接器及固定孔架空于底板于指令板之上。
PHY 板與底板相連,可按照用戶所使用的總線類型,更換其上面的PHY 芯片。
物理層故障注入類型設(shè)計主要模擬通信總線上常見的線路故障,設(shè)計了“信號線開路”“信號線短路”“串聯(lián)阻抗”“并聯(lián)阻抗”“噪音耦合”“外部信號疊加與替換”6 種故障模式,6 種故障模式間可自由組合。
2.1.1 信號線開路與信號線短路故障注入的實現(xiàn)
如圖3 所示,這兩種故障類型屬于動態(tài)故障注入,是模擬通信總線突然出現(xiàn)的信號線開路或短路情況。故障執(zhí)行模塊檢測到來自于指令板的故障觸發(fā)線為高時,便按照故障注入的配置信息將相應(yīng)的模擬開關(guān)在設(shè)定的時間范圍內(nèi)進(jìn)行打開或閉合操作。
圖3 信號線開路(左)、信號線短路(右)
2.1.2 信號線串行阻抗和信號線并行阻抗故障注入的實現(xiàn)
如圖4 所示,串行阻抗和并行阻抗故障注入用于模擬通信總線的物理線路上不同阻抗大小對信號產(chǎn)生的影響,其屬于靜態(tài)故障注入,即無故障觸發(fā)機制,電阻值在故障注入配置信息下發(fā)后就設(shè)置完成,通信總線在整個通信過程中均處于該故障模式下。
圖4 信號線串行阻抗(左)、信號線并行阻抗(右)
2.1.3 外部信號替換疊加及噪音耦合故障注入設(shè)計
該故障注入模塊為動態(tài)故障注入方式,可模擬通信總線在外部信號干擾下的通信。其作為一個整體只能供一路總線使用,圖5(a)為外部信號疊加或替換的示意圖;圖5(b)為噪音串聯(lián)或并聯(lián)耦合的示意圖,在實際電路中,這4 種故障注入模式集成在一起,只能選擇一種模式。
圖5
物理層故障注入各模塊可任意順序組合是此系統(tǒng)的一個功能特色,此處以兩種故障注入模塊為例,實現(xiàn)方式見圖6。
圖6 故障自由組合實現(xiàn)方式示意
圖6 中的模塊1 和模塊2 表示不同的兩種故障注入單元、+信號線、-信號線、GND 線的輸入、輸出口均如圖7 所示形成一個三選一的開關(guān)。模塊1 和模塊2 輸入端中“LINE IN +”短路作為兩個模塊“+ 信號線”第一級的信號輸入,兩個模塊輸出端中“LINE OUT +”短路作為兩個模塊“+信號線”最后一級的信號輸出,對于“-信號線”和“GND 線”相同。NET“1 FROM 2 +”表示模塊1 的“+信號”的輸入線來自于模塊2 的“+信號”的輸出線,此線與模塊2 的“2 TO 1 +”在電路中短路。
若模塊2 的輸入線切換至“LINE IN +”“LINE IN-”和“LINE IN GND”,而輸出線均切換至與模塊1 短路的信號線,模塊1 的輸出線均切換至“LINE OUT+”“LINE OUT -”和“LINE OUT GND”,實現(xiàn)了通信總線先經(jīng)過故障2、再經(jīng)過故障1 的組合。
圖7 為樣機展示,在樣機組裝完成后進(jìn)行功能測試。由于每個樣機共有四路總線,每一路總線均有6種能夠自由組合的故障模塊,所以測試項目眾多,故此處挑選其中具有代表性的內(nèi)容加以表述[3]。本研究選擇了全雙工總線RS422 和半雙工總線RS485 進(jìn)行“線路開路”“差分信號線間線路短路”及“串聯(lián)阻抗”3種故障注入模式。
圖7 物理層故障注入樣機
首先驗證半雙工總線的信號方向控制模塊,在確定波特率115 200 kbps、8 位數(shù)據(jù)位位寬、無奇偶校驗和1 位停止位位寬等串口幀參數(shù)后,測試發(fā)現(xiàn)RS485 對于主發(fā)從收和從發(fā)主收機均可正常通信。
(1) “信號線開路”,RS422 和RS485 的前向信號均接收不到數(shù)據(jù),而反向信號能正確接收數(shù)據(jù)。
(2)“信號線短路”,測試了毫秒級的故障注入。故障注入時RS422 和RS485 前向信號收到數(shù)據(jù)為0,驗證了短路測試功能的正常。
(3)“串聯(lián)阻抗”,用萬用表測試了信號線輸入和輸出口之間的阻抗,與設(shè)置阻抗基本相同,測試誤差來自于大量串聯(lián)繼電器的導(dǎo)通電阻之和以及萬用表在通電線路上進(jìn)行電阻測量的誤差。
本研究詳細(xì)敘述了物理層故障注入系統(tǒng)設(shè)計,包括系統(tǒng)架構(gòu)、指令板功能邏輯、底板、繼電器板硬件設(shè)計以及物理層故障注入模塊類型和具體實現(xiàn)方式。在解決了半雙工總線通信方向控制與故障模塊自由組合等設(shè)計技術(shù)難點后,通過實驗驗證了該系統(tǒng)的整體工作性能。