張 旭 孫國先
(西安機電信息技術(shù)研究所,陜西 西安 710065)
與傳統(tǒng)機械式、機電式引信安全解除保險系統(tǒng)相比,全電子安全解除保險系統(tǒng)(Electronic Safety and Arming System,ESA)具有更大的優(yōu)勢,系統(tǒng)全部由電子元件組成,具有較高的安全性、可靠性以及良好的抗干擾性能。全電子安全與解除保險系統(tǒng)能夠使用多種環(huán)境信息作為解除保險的激勵信號,極大地拓展了全電子安全與解除保險系統(tǒng)的應(yīng)用領(lǐng)域[1,2]。
一般來說,電子安全與解除保險裝置的邏輯控制器包括ASIC、ARM、單片機等。早期FPGA產(chǎn)品的功能和性能有很多局限性,如功耗高、成本高、密度低、加工速度慢等,實現(xiàn)電子安全與解除保險裝置功能的控制器通常采用ASIC 技術(shù)。ASIC 技術(shù)的應(yīng)用大大降低了產(chǎn)品的成本和規(guī)模,同時提高了產(chǎn)品的可靠性,推動了全電子安全與解除保險裝置小型化、集成化的發(fā)展[3]。然而,隨著近幾十年來FPGA技術(shù)的快速突破,F(xiàn)PGA產(chǎn)品的性能不斷得到顯著提高,其大量應(yīng)用在工業(yè)控制領(lǐng)域。與傳統(tǒng)ASIC相比,F(xiàn)PGA產(chǎn)品具有可編程性強、易于修改等特點,具有極大的靈活性。此外,應(yīng)用FPGA技術(shù)開發(fā)電子安全與解除保險裝置能大大縮短研發(fā)周期,同時能很好地控制成本[4]。在系統(tǒng)設(shè)計的正常水平上,F(xiàn)PGA產(chǎn)品正在迅速占據(jù)原來由ASIC產(chǎn)品占據(jù)的市場份額。
雖然ARM 和單片機價格低廉,在工業(yè)上得到了廣泛的應(yīng)用,但在高溫、強磁場、強沖擊和振動等惡劣環(huán)境中應(yīng)用時可靠性較差。為了解決現(xiàn)有單片機ESA 系統(tǒng)的不易修改性及變成性差的問題,同時為了極大地適應(yīng)ESA系統(tǒng)在強電磁干擾等惡劣環(huán)境條件下使用的安全性及可靠性,提出了采用雙FPGA 芯片作為ESA 系統(tǒng)解除保險的邏輯控制單元。兩個FPGA控制器主要負責(zé)識別彈上環(huán)境激勵信號,同時也控制解除相應(yīng)的保險開關(guān)。本文最后對整個工作過程進行了仿真和相應(yīng)的分析,驗證了該系統(tǒng)的正確性和有效性。
導(dǎo)彈發(fā)射后將經(jīng)歷不同的物理場,包括力場、聲場、電場、熱場和磁場[5]。選擇不同的環(huán)境信息作為解除保險的激勵信號需要考慮兩個因素,一方面,它必須有一個獨有的特征,能夠區(qū)別于其他環(huán)境信息。另一方面,這種環(huán)境信息必須能夠利用技術(shù)手段方便地被檢測和識別[6]。
經(jīng)過試驗表明,火箭發(fā)動機產(chǎn)生的加速度是穩(wěn)定的,并且持續(xù)很長時間。彈上控制系統(tǒng)給出的制導(dǎo)信息是在導(dǎo)彈飛行的某個時刻,具有唯一性。這兩種解除保險的環(huán)境激勵信號都具有唯一的特點,同時易于檢測和識別。因此,選擇發(fā)動機加速度和制導(dǎo)信息作為解除保險的環(huán)境激勵。本系統(tǒng)框架如圖1所示。
圖1 電子安全和接觸保險系統(tǒng)組件
為了識別導(dǎo)彈發(fā)動機在點火以后產(chǎn)生的加速度,采用AD22035 加速度傳感器來識別加速度信號。加速度傳感器由信號濾波電路、放大電路和AD0805 組成的信號處理電路對加速度模擬信號進行處理。然后將經(jīng)過AD轉(zhuǎn)換后的數(shù)字信號輸入到FPGA1 器件中進行進一步的可靠識別,當可靠識別到加速度信號時打開電子開關(guān)SW1。
當制導(dǎo)信息到達時,相應(yīng)的開關(guān)閉合,接通15V 電源。該信號經(jīng)濾波后調(diào)整到標準電壓3.3V,最后輸入到FPGA 2器件中進一步可靠識別。
ESA 系統(tǒng)中的三個電子開關(guān)起著保持系統(tǒng)安全的作用。當各級解保環(huán)境信號均被正確識別時,電子開關(guān)將打開,相應(yīng)的保險解除。當所有三個開關(guān)都打開時,ESA 系統(tǒng)處于解除保險狀態(tài)。簡而言之,兩個微控制器FPGA1和FPGA2負責(zé)環(huán)境激勵信號的識別,同時兩個控制器協(xié)同工作生成驅(qū)動信號以打開所有開關(guān),解除所有保險使ESA系統(tǒng)處于保險解除狀態(tài)。
整個ESA系統(tǒng)處于安全狀態(tài)時,三個負責(zé)保險的電子開關(guān)均與解保電源斷開。由于沒有向通信模塊提供電源,因此在安全狀態(tài)下,起爆控制器FPGA3不工作。當導(dǎo)彈發(fā)射后,兩個FPGA控制器協(xié)同工作將按順序打開三個電子開關(guān),當所有開關(guān)均被打開后,引信由安全狀態(tài)轉(zhuǎn)入解除保險狀態(tài)。圖2為兩個環(huán)境激勵信號識別原理和相應(yīng)時序。
圖2 環(huán)境激勵識別的原理
在圖2中,“a0”和“a1”的代表環(huán)境激勵信號的閾值?!皌”表示導(dǎo)彈工作時間,其單位為秒。虛線代表有效信號,而實線代表時間窗口。從圖中可以看出,所有的三個信號是由閾值和三個時間窗分別判斷[7]。
控制器FPGA1 用于識別導(dǎo)彈發(fā)動機加速度信號,其工作頻率為1MHz。導(dǎo)彈發(fā)動機產(chǎn)生的加速度信號將持續(xù)很長時間。因此,信號識別策略采取了兩個原則,就是信號幅度和時間窗口。對于此特定應(yīng)用場景,將選擇20g加速度作為閾值,當其幅度大于20g的信號被認為是預(yù)定的信號。同時如果這一預(yù)定信號持續(xù)時間超過0.8s,以及小于1s,則此信號識別為正確有效信號。加速度信號進行有效識別后,控制器FPGA1 將輸出兩個信號,right_acc 和sw1。其中right_acc作為反饋信號保存在FPGA2中,而sw1信號用作打開電子開關(guān)SW1的驅(qū)動信號。
控制器FPGA2的工作頻率為1kHz。當right_acc保持高電平為0.2s,則該時間窗口方法用于進一步識別信號的有效性。如圖2 所示,right_acc 的時間窗口為0.8s~1.4s。只有當right_acc持續(xù)在這個時間窗口內(nèi)時,系統(tǒng)才認為它是有效的信號。然后,識別right_acc作為正確有效信號所需時間保存在FPGA2中的CNT3計數(shù)器。
控制器需要識別的另一個解保環(huán)境信號是制導(dǎo)信息。利用控制器FPGA2 識別制導(dǎo)信號,同樣,也采用閾值+時間窗的方法來識別該信號。當其電壓上升為邏輯高電平時,F(xiàn)PGA2 相應(yīng)計數(shù)器開始計算其持續(xù)時間。如果高電平持續(xù)時間超過0.2s,則該信號被認為是正確有效的。此時,F(xiàn)PGA2輸出sw2信號以驅(qū)動SW2開關(guān)打開。同時FPGA2計數(shù)器也保存有效的制導(dǎo)信息到達的時刻。然后FPGA2 比較right_acc 的到達時間和制導(dǎo)信息到達時間。如果right_acc信號先出現(xiàn)并且制導(dǎo)信息后到達,則FPGA2將輸出sw3以打開開關(guān)SW3。如果沒有,則沒有信號輸出,并且開關(guān)保持與電源不連接,則整個系統(tǒng)處于安全狀態(tài)。
本系統(tǒng)采用Altera 公司生產(chǎn)的Cyclone II FPGA 進行設(shè)計實現(xiàn)。在QuartusII 軟件中編寫和編譯Verilog HDL 程序,借助Modelsim仿真軟件進行時序仿真,仿真結(jié)果如圖3至圖7所示。
圖3 FPGA1從AD讀取數(shù)據(jù)
圖3表示出控制器FPGA1從AD設(shè)備中讀取加速度信號的過程。圖3中顯示的所有信號解釋如下:
Clk是FPGA1的基本工作頻率大小為1MHz。rst_n表示復(fù)位信號,當rst_n為邏輯低時,內(nèi)部信號的值被重置。Wr_n用作來控制AD設(shè)備,當wr_n為邏輯低電平時,AD設(shè)備將復(fù)位,同時d0~d7 的值變?yōu)榱?;當它變?yōu)楦唠娖剑_始數(shù)據(jù)傳輸,在進行數(shù)據(jù)傳輸期間,intr信號保持邏輯高。在64個時鐘周期之后,8位二進制代碼被傳送到輸出鎖存器同時將intr變?yōu)檫壿嫷碗娖健ntr信號的邏輯低表示整個AD數(shù)據(jù)完成傳輸。當數(shù)據(jù)傳輸完成,rd_n 信號變?yōu)榈碗娖?,F(xiàn)PGA1 可以讀取d0~d7 的值,將讀取到的數(shù)據(jù)臨時存儲到一個8 位寄存器中,該寄存器的名稱為read_data。然后在下一個時鐘周期內(nèi),F(xiàn)PGA1通過相關(guān)指令將該值與設(shè)置的閾值進行比較。如果它超過閾值,則cnt2的值將加1。如果不是,則cnt2的值保持不變。此時,wr_n變?yōu)檫壿嫷碗娖?,將進行下一次的信號識別和傳輸過程。
圖4 表示加速度信號的識別結(jié)果。如圖4 所示,在1s 的時間窗內(nèi)當read_data里面保存的值超過閾值時,計數(shù)器cnt2的值就會增加。在1s的時間窗之后,將cnt2和11765的值之間進行比較。根據(jù)圖4,若cnt2 累計值超過11765,這表明加速度信號的持續(xù)時間超過0.8s(計算公式如下:11765×0.068=800.2ms),當幅值和持續(xù)時間都滿足要求時則認為該信號為有效信號。同時在下一個時鐘周期到來時,將right_acc 和sw1 都置為高。sw1 信號驅(qū)動打開開關(guān)SW1,并且將right_acc作為反饋信號傳輸給控制器FPGA2。
圖4 識別加速度信號的結(jié)果
圖5 FPGA2信號的仿真結(jié)果
FPGA2 的工作頻率為1 kHz。仿真時間設(shè)置為35s。根據(jù)圖4,該系統(tǒng)在31194ms完成解保。
FPGA2 中為了識別right_acc 信號,使用閾值+時間窗的方法。當right_acc 變高時,cnt1 開始記錄其持續(xù)時間,如果持續(xù)時間為200ms,則在時間窗內(nèi)進一步識別它。從圖4 可知,right_acc 將在1s 內(nèi)傳輸給FPGA2。在識別其預(yù)設(shè)閾值200ms 后,F(xiàn)PGA2 中的時間窗在1s~1.4s 的范圍內(nèi)。根據(jù)圖6,right_acc在1193ms到達,在預(yù)設(shè)的1s~1.4s的范圍內(nèi),將其視為有效的信號,同時將該值記錄到cnt3中以進一步識別。
圖6 識別right_acc信號的結(jié)果
圖7 識別制導(dǎo)信號和輸出
圖7所示是識別制導(dǎo)信號的過程。為了識別制導(dǎo)信號,使用時間窗口的方法。如果此信號變高并持續(xù)200ms,則視為正確信號。當可靠識別到制導(dǎo)信號后,sw2變量置高,驅(qū)動打開電子開關(guān)SW2。同時,cnt4 記錄識別制導(dǎo)信號的時間。在下一個時鐘周期中,比較cnt2 的值和cnt4 的值,可以明確兩個環(huán)境激勵信號到來的先后順序。如果cnt3 的值小于cnt4 的值,則sw3 將變高,然后打開電子開關(guān)SW3。如果不是,則sw3保持低電平,開關(guān)SW3不會打開。
本文提出了基于FPGA 的電子安全與解除保險系統(tǒng)。通過改進現(xiàn)有基于ARM 和單片機作為邏輯控制單元的體系,通過使用兩個FPGA 芯片進行保險解除的邏輯控制單元,使得設(shè)計過程變得更容易,開發(fā)周期短,產(chǎn)品易于修改。通過實驗?zāi)M和仿真分析了基于FPGA 的電子安全和解除保險系統(tǒng)的整個工作過程,模擬和仿真時序表明本系統(tǒng)能夠基于“閾值+時間窗”兩個信號識別原則正確區(qū)分不同的環(huán)境激勵信號。結(jié)果表明該系統(tǒng)能替代現(xiàn)有的基于ARM 和單片機的ESA 系統(tǒng),方法可行、有效,符合相應(yīng)國軍標的要求。此外,在設(shè)計過程中,嚴格遵循了幾個重要的設(shè)計標準。依據(jù)這些標準[8,9],兩個FPGA 芯片應(yīng)該在不同的時鐘頻率下工作,以防時鐘問題可能導(dǎo)致兩個FPGA 器件都出現(xiàn)故障。本系統(tǒng)中,兩個FPGA 工作在不同的時鐘頻率,這不僅符合設(shè)計標準,而且使系統(tǒng)更可靠。