甄國(guó)涌,陳曉錦,李 祎,王淑琴
(1.中北大學(xué)儀器科學(xué)與動(dòng)態(tài)測(cè)試教育部重點(diǎn)實(shí)驗(yàn)室,山西 太原 030051;2.空軍裝備部駐太原地區(qū)軍事代表室,山西 太原 030006)
數(shù)據(jù)自毀是飛行器實(shí)施安全控制的重要保障,一旦出現(xiàn)故障,便會(huì)造成國(guó)家機(jī)密的泄露,產(chǎn)生難以估量的損失[1]。某型自毀系統(tǒng)中采用開關(guān)脈沖信號(hào)作為自毀指令,在其實(shí)際傳輸和響應(yīng)過程中,發(fā)現(xiàn)存在如下問題:(1)自毀狀態(tài)下可能發(fā)生外部電源失效問題,導(dǎo)致自毀無法完成;(2)受到觸發(fā)硬件的制造工藝或空間輻射的影響,接收端的指令特性并不像理想輸入特性那么完美,容易疊入雜波發(fā)生畸變。因此,基于自毀的開關(guān)脈沖指令能否實(shí)現(xiàn)可靠傳輸已經(jīng)成為研究的重點(diǎn)問題[2]。
鑒于此,分別從硬件和軟件方面進(jìn)行優(yōu)化設(shè)計(jì)。對(duì)指令傳輸鏈路和備用鋰電池組采用雙冗余設(shè)計(jì),以低功耗思想對(duì)電池電壓監(jiān)測(cè)電路以及自毀狀態(tài)下主備電源切換進(jìn)行設(shè)計(jì)與優(yōu)化,解決了鋰電池短期失效的問題。在邏輯判別中采用投票表決算法代替硬件消抖算法,盡可能地濾除干擾信號(hào),保障了指令判別的準(zhǔn)確性。
在失控狀態(tài)下,安控系統(tǒng)為及時(shí)止損需經(jīng)指令傳輸鏈路向受控設(shè)備發(fā)出自毀指令。根據(jù)可靠性數(shù)學(xué)中可靠率的計(jì)算方法,用K和G來分別表示該指令傳輸?shù)目煽柯屎凸收下?,則
引入如圖1 所示的雙冗余并聯(lián)設(shè)計(jì),為指令傳輸鏈路A增加結(jié)構(gòu)相同且相對(duì)獨(dú)立的B通道,將傳輸鏈路A、B的可靠率分別用K1和K2表示,根據(jù)式(1)得出故障率:
圖1 雙冗余傳輸鏈路圖
此時(shí),指令傳輸?shù)目煽柯蕿镵=1-G1G2,若A、B鏈路傳輸?shù)目煽柯释瑸?5%,故障率為5%,采用雙冗余并聯(lián)設(shè)計(jì)以后,傳輸可靠率就變?yōu)镵=1-5%×5%=99.75%,由此將指令傳輸受阻的概率減小[3],保證指令的傳輸質(zhì)量。
鋰電池作為外部電源失效時(shí)的后備電源是保障自毀完成的關(guān)鍵因素。結(jié)合表1 中鋰電池相關(guān)參數(shù)及實(shí)際測(cè)試,分析可能影響自毀的潛在問題:
表1 鋰電池相關(guān)參數(shù)
(1)受低溫環(huán)境影響電池容量下降,導(dǎo)致自毀無法完成。
(2)長(zhǎng)時(shí)間工作或長(zhǎng)期貯存下電池失效[4],導(dǎo)致自毀無法完成。
針對(duì)以上問題,對(duì)以下硬件部分進(jìn)行優(yōu)化。
(1)將電池模塊調(diào)整于電源模塊正下方,由持續(xù)發(fā)熱的電源模塊為其提供一個(gè)相對(duì)較高的環(huán)境溫度,彌補(bǔ)了低溫下電池容量降低的問題。
(2)從鋰電池組雙備份和降低功耗的角度,解決鋰電池失效所帶來的安全問題。如圖2 所示,設(shè)計(jì)A、B 兩組鋰電池互為備份,并在電池輸出端設(shè)置二極管鉗位電路,利用二極管正向?qū)▔航捣€(wěn)定且低的特點(diǎn)實(shí)現(xiàn)鋰電池組的最優(yōu)選擇。此外,為了縮短鋰電池的工作時(shí)間,采用具有開關(guān)控制功能的線性穩(wěn)壓芯片MIC29302BT 配合整流二極管實(shí)現(xiàn)自毀判別后的主備電源切換功能[5]。
圖2 主備切換原理圖
MIC29302BT 使能端配置下拉電阻R1,常態(tài)下,自毀控制器FPGA 將其EN 端信號(hào)置0,關(guān)斷MIC29302BT 使電池處于睡眠狀態(tài)。當(dāng)接收到自毀指令后,由FPGA 將EN 信號(hào)置1,使能MIC29302BT芯片,此時(shí)電壓較高的一組電源回路所對(duì)應(yīng)的二極管優(yōu)先導(dǎo)通,而電壓較低的鋰電池輸出則被鉗制,此后當(dāng)發(fā)生外部28 V 供電失效時(shí)則由優(yōu)選的備用鋰電池組維持自毀完成。因此通過靈活控制MIC29302BT 的開斷功能可大幅度減少電池的工作時(shí)間,為自毀的完成提供保障。
如圖3 所示,鋰電池的靜態(tài)漏電流來自電容漏電流i1、電壓采集輸入端漏電流i2、充電管理端漏電流i3及MIC29302BT 輸入端靜態(tài)漏電流i4,由此可通過降低靜態(tài)功耗來預(yù)防鋰電池長(zhǎng)期貯存下引起的失效。
圖3 鋰電池管理示意圖
根據(jù)反向二極管和運(yùn)放跟隨器高阻抗的特性,可按照式(4)、式(5)進(jìn)行如下估算:
參考表1,令UBAT=7.4 V,而R1、R2按照充電芯片BQ24105 數(shù)據(jù)手冊(cè)取標(biāo)稱值301 kΩ 和100 kΩ,即i2≈18.5 μA;而AD 采集前端則選擇大阻值的分壓電阻(R1=7.5 MΩ、R2=4.99 MΩ)代替小阻值電阻(R1=1.5 MΩ、R2=1 MΩ),將i3相對(duì)降低了2.341 μA。經(jīng)實(shí)測(cè),靜態(tài)漏電流i1、i2、i3、i4分別穩(wěn)定在7 μA、0.1 μA、0.72 μA、22 μA,因此鋰電池的靜態(tài)漏電流為7+0.1+0.72+22=29.82 μA,理論計(jì)算鋰電池靜態(tài)工作時(shí)間為640 mAh÷29.82 μA≈21 462 h,超過2 年,可滿足正常的維護(hù)周期。
根據(jù)任務(wù)需求,指令傳輸接口電路如圖4 所示。其工作原理如下:
圖4 指令傳輸接口電路
發(fā)送端由FPGA 控制引腳輸出高電平(典型值3.3 V)保持200 ms 后恢復(fù)默認(rèn)狀態(tài)(低)來發(fā)出自毀指令。高電平作用下NPN 晶體管PN 結(jié)(UBE≈0.7 V)導(dǎo)通,經(jīng)R8產(chǎn)生基極電流驅(qū)動(dòng)晶體管飽和導(dǎo)通,集電極呈低電平,電磁繼電器DS2Y-S 控制端經(jīng)125 Ω 的線圈電阻產(chǎn)生40 mA 的驅(qū)動(dòng)電流達(dá)到銜鐵吸合動(dòng)作值,200 ms 后繼電器內(nèi)部線圈失電銜鐵釋放。理論上,接收端將收到一個(gè)28 V 幅值、200 ms脈寬的開關(guān)脈沖信號(hào),經(jīng)光電耦合器(光耦)電平轉(zhuǎn)換后為FPGA 接收引腳提供一個(gè)3.3 V 幅值、200 ms脈寬的開關(guān)脈沖信號(hào)作為自毀指令[6]。
圖5 為指令傳輸接口電路中FPGA 接收端A 點(diǎn)捕獲的完整自毀指令波形,測(cè)量發(fā)現(xiàn)電磁繼電器在吸合、釋放瞬間存在接觸抖動(dòng)效應(yīng)[7],即在觸點(diǎn)實(shí)現(xiàn)完全接觸和完全分離的過程中存在多次0 和1 的隨機(jī)輸入。為了進(jìn)一步確定指令中干擾的特征,在A 點(diǎn)抓取十次波形圖,并利用數(shù)據(jù)分析軟件Origin對(duì)每次的關(guān)斷抖動(dòng)時(shí)間及最大毛刺脈寬進(jìn)行統(tǒng)計(jì)分析,如圖6 所示,觸點(diǎn)閉合和斷開的抖動(dòng)時(shí)間最大值分別為1073.5 μs 和190.2 μs,其中,干擾脈沖的脈寬峰值為310.6 μs。
圖5 自毀指令脈沖波形圖
圖6 抖動(dòng)測(cè)試折線圖
此外,指令在長(zhǎng)距離傳輸過程中難免受到空間電磁輻射干擾串入雜波[8]。可以看出在200 ms 理論脈寬(低)中存在諸多的不確定性,故以增加脈寬的誤差容限為手段,設(shè)計(jì)100 ms 的脈寬(低)為合格脈寬的判別條件。
結(jié)合以上誤判分析,擬定了兩種解決方案:
方案1 在自毀(ZH)信號(hào)進(jìn)入判決前用邏輯(FPGA 控制)對(duì)其進(jìn)行消抖。參考圖6 中干擾脈寬峰值,將尖峰寬度小于0.4 ms 的脈沖定義為干擾,設(shè)置一個(gè)0.4 ms 的計(jì)數(shù)器,一個(gè)按鍵信號(hào)ZH_reg(初值為1)用于輸出消抖后的理想波形。系統(tǒng)在40 MHz 主頻時(shí)鐘下對(duì)ZH 信號(hào)進(jìn)行采樣,當(dāng)214個(gè)周期內(nèi)采樣值均為邏輯0 時(shí),認(rèn)為觸點(diǎn)完全接觸,執(zhí)行ZH_reg<=0(無抖動(dòng));當(dāng)214個(gè)周期內(nèi)采樣值均為邏輯1 時(shí),認(rèn)為觸點(diǎn)完全斷開,執(zhí)行ZH_reg<=1(無抖動(dòng))??紤]到冗余性,采用10 判8 的差額投票表決算法對(duì)消抖后信號(hào)的有效脈寬進(jìn)行判別。
方案2 對(duì)接收到的ZH 信號(hào)采用先表決再計(jì)數(shù)的方法進(jìn)行判別。設(shè)置0.9 ms 內(nèi)低電平占用時(shí)間>=0.5 ms 的投票表決條件實(shí)現(xiàn)對(duì)ZH 信號(hào)的一級(jí)濾波處理;設(shè)置100 ms 的脈寬限制計(jì)數(shù)器對(duì)一級(jí)表決結(jié)果中連續(xù)“通過”的個(gè)數(shù)進(jìn)行累計(jì),即每隔1 ms采樣一次,直至連續(xù)采到100 個(gè)有效表決結(jié)果則認(rèn)為指令判決成功。
對(duì)比發(fā)現(xiàn),方案1 中的消抖和方案2 中的一級(jí)投票表決均為指令判決前的濾波處理。從開啟判別流程來看,消抖是以識(shí)別到0.4 ms 的連續(xù)低電平為條件,強(qiáng)調(diào)的是有效連續(xù)性,方案2 采用差額投票表決的容錯(cuò)技術(shù)[9],強(qiáng)調(diào)的是有效聚集性。顯然,當(dāng)攜帶雜波的自毀指令到來時(shí),方案2 開啟判別的門限更低,緩解了指令判別的延遲。此外,方案2 充分考慮了長(zhǎng)線傳輸和惡劣背景噪聲下的指令特征,在每段0.9 ms 的脈寬中融入了一定的誤差容限,以更小的脈寬判別單位展開,可靠性更高。
以優(yōu)選方案2 設(shè)計(jì)如圖7、圖8 所示的指令判別流程,并提出以下幾點(diǎn)注意點(diǎn):
圖7 表決流程圖
圖8 判決流程圖
(1)進(jìn)程參考時(shí)鐘的設(shè)計(jì)
在40 MHz 系統(tǒng)時(shí)鐘下分別分頻產(chǎn)生10 kHz 的Clk01ms 時(shí)鐘和1 kHz 的Clk1ms 時(shí)鐘。用Clk01ms控制對(duì)ZH 信號(hào)進(jìn)行一級(jí)投票表決;用Clk1ms 控制對(duì)表決結(jié)果ZH_flg 的連續(xù)有效個(gè)數(shù)進(jìn)行累計(jì),決定自毀指令是否響應(yīng)。
(2)亞穩(wěn)態(tài)緩解分析
如圖9 所示為異步傳輸下亞穩(wěn)態(tài)響應(yīng)示意圖。tco和tnet分別為觸發(fā)器Q 端輸出相對(duì)于時(shí)鐘沿和一級(jí)輸出端Q 到達(dá)二級(jí)輸入D 端的時(shí)間延遲。由于ZH 信號(hào)可在任意時(shí)刻發(fā)生翻轉(zhuǎn),當(dāng)其翻轉(zhuǎn)時(shí)刻出現(xiàn)在以時(shí)鐘上升沿為參考的觸發(fā)器建立時(shí)間ts和保持時(shí)間th內(nèi)時(shí),觸發(fā)器Q 端便可能出現(xiàn)亞穩(wěn)態(tài)現(xiàn)象[10],即觸發(fā)器一時(shí)無法確定某一輸出狀態(tài)(‘0’或‘1’)需在tco的基礎(chǔ)上增加一定的決斷時(shí)間tres來確定一個(gè)穩(wěn)定的輸出狀態(tài),此時(shí)若直接對(duì)Q1進(jìn)行判別就極可能發(fā)生亞穩(wěn)態(tài)現(xiàn)象。
圖9 亞穩(wěn)態(tài)響應(yīng)示意圖
為預(yù)防受控FPGA 陷入失控的風(fēng)險(xiǎn),在ZH 信號(hào)送入采樣表決寄存器Vote_reg 之前,增加兩級(jí)觸發(fā)器級(jí)聯(lián)對(duì)ZH 狀態(tài)進(jìn)行同步處理。從圖9 可以看出只要滿足tnet+tco+tres+ts≤Tclk01ms,Q1q便可以恢復(fù)至一個(gè)穩(wěn)定的狀態(tài)使得二級(jí)觸發(fā)器Q 端呈現(xiàn)一穩(wěn)定輸出。
(3)9 判5 差額投票表決法
首先開辟一個(gè)9 位的寄存器Vote_reg()用于存儲(chǔ)0.9 ms 內(nèi)ZH 信號(hào)同步后的狀態(tài)ZH_reg,其中Vote_reg(i)=‘0’表示有效。在Clk01ms 上升沿,ZH_reg 依次進(jìn)入Vote_reg(i),同時(shí)計(jì)算Vote_reg(0 to 8)中Vote_reg(i)=‘0’的個(gè)數(shù)sum。當(dāng)有效狀態(tài)個(gè)數(shù)sum≥5 時(shí),執(zhí)行ZH_flg<=0,表示一級(jí)表決通過,即在0.9ms 的有效帶寬內(nèi),9 個(gè)連續(xù)的ZH_reg狀態(tài)中最多允許出現(xiàn)4 個(gè)無效狀態(tài)。
(4)在Clk1ms 上升沿,監(jiān)測(cè)表決標(biāo)志ZH_flg,當(dāng)投票寄存器Vote_reg(0 to 8)中首次存夠5 個(gè)有效狀態(tài)后(ZH_flg1<=0),判決流程正式開始,脈寬限制計(jì)數(shù)器ZH_cnt2 從0 開始計(jì)數(shù)。判別流程開始后,一旦在1 ms 的采樣中發(fā)現(xiàn)0.9 ms 內(nèi)低電平占用時(shí)間<0.5 ms 的情況(ZH_flg<=1),ZH_cnt2 清零判決流程自動(dòng)結(jié)束并重新等待開啟標(biāo)志。直到發(fā)現(xiàn)一段100 ms 內(nèi)ZH_flg 均有效的指令段,則認(rèn)為指令有效。
為了驗(yàn)證判別邏輯的準(zhǔn)確性和預(yù)期的容錯(cuò)能力,利用測(cè)試平臺(tái)文件Test Bench 完成如圖10 理論波形下的動(dòng)態(tài)仿真測(cè)試[11]。首先依據(jù)指令特性劃分抖動(dòng)段和穩(wěn)定段,然后以測(cè)試峰值和理論極限值為參考,以ZH 信號(hào)的采樣時(shí)鐘周期為差值對(duì)干擾脈寬進(jìn)行如下設(shè)置:
圖10 理論波形
抖動(dòng)段:310 μs、210 μs、110 μs
平穩(wěn)段:(400±100)μs/900 μs
平穩(wěn)段測(cè)試激勵(lì)是利用$random 函數(shù)在每個(gè)900 μs 中設(shè)置(400±100)μs 脈寬的干擾[12],具體代碼如下:
測(cè)試時(shí)通過更改b 為300、400 來分別驗(yàn)證干擾脈寬為300 μs~400 μs 和400 μs~500 μs 情況下判別情況。
從圖11 可以看出在ZH_D 在1 100 μs 的抖動(dòng)段內(nèi)時(shí),沒有滿足9 判5 的表決條件,ZH_flg 始終為1,而在cursor 為1.550 1 ms 的時(shí)刻,ZH_flg 置為0,ZH_cnt 也由“00000000”變?yōu)椤?000001”開始對(duì)有效脈寬進(jìn)行計(jì)數(shù),判決流程開啟,直至ZH_cnt 計(jì)數(shù)達(dá)到“01100011”,ZH_state_q 由0 置1,指令判別成功。由此證明,該判別邏輯能夠準(zhǔn)確判別有效自毀指令,且能濾除900 μs 內(nèi)400 μs 以下脈寬的干擾,具有一定的可靠性。此外,從圖11 右側(cè)的放大波形來看,表決成功的條件為 Vote _ reg ()=“101100100”,可以看出Vote_reg()中的5 個(gè)‘0’,有3 個(gè)是在抖動(dòng)段累積的,所以進(jìn)入穩(wěn)定段后,僅需要繼續(xù)存夠兩個(gè)‘0’,ZH_flg 便立即置1,可以證明方案2 開啟判別的優(yōu)勢(shì)所在。
圖11 300 μs~400 μs 脈寬干擾下的波形
從圖12 可以看出,當(dāng)干擾脈寬超出400 μs 時(shí),ZH_flg 表現(xiàn)出一個(gè)不穩(wěn)定的狀態(tài),直至200 ms 結(jié)束ZH_state_q 仍然為0。從圖12 中放大波形來看400 μs~500μs 脈寬干擾下,ZH_flg 是否為1 取決于clk01ms 的有效采樣個(gè)數(shù)是否恰好處于有效電平(0)內(nèi),因此,判決邏輯無法濾除900 μs 內(nèi)400 μs以上脈寬的干擾,符合設(shè)計(jì)要求,驗(yàn)證成功。
圖12 400 μs~500 μs 脈寬干擾下的部分波形
為了進(jìn)一步驗(yàn)證本次設(shè)計(jì)的可靠性,采用上位機(jī)和測(cè)控臺(tái)組成的測(cè)試系統(tǒng)模擬飛控系統(tǒng)進(jìn)行測(cè)試。利用上位機(jī)控制測(cè)控臺(tái)下發(fā)自毀指令,經(jīng)72 m 的同軸電纜傳入自毀響應(yīng)模塊。由上位機(jī)界面可以看出自毀指令下的狀態(tài)返回情況,自毀指令下發(fā)后外部28 V 供電失效,由備用電源維持存儲(chǔ)模塊完成數(shù)據(jù)自毀,多次測(cè)試無誤判現(xiàn)象,證明本方案設(shè)計(jì)的可靠性。
結(jié)合實(shí)際應(yīng)用背景,提供了較為實(shí)用可靠的主備電切換方案及詳細(xì)的邏輯優(yōu)化設(shè)計(jì),通過增加判別的容錯(cuò)性及判別次數(shù),有效保證了開關(guān)脈沖指令的傳輸質(zhì)量以及響應(yīng)速度。該設(shè)計(jì)有著較高的可靠性,目前已成功應(yīng)用在某采編存儲(chǔ)設(shè)備上,對(duì)于相同形式的緊急命令的傳輸設(shè)計(jì)有一定的參考價(jià)值。