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