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