劉成明
(貴州航天電器股份有限公司,貴州 貴陽 550009)
目前在航天器火工品點火控制中,一般都需要有箭地電源轉(zhuǎn)換功能(即轉(zhuǎn)電功能)[1],同時又需要點火時序可編程(如以通信方式裝訂時序)[2],傳統(tǒng)的時序控制模塊基本是使用一個微控制器實現(xiàn)[3]。然而由于微控制器都具有特定的失效模式,比如單片機、DSP(數(shù)字信號處理器)存在程序跑飛、受干擾可能發(fā)生復(fù)位的風(fēng)險,這些風(fēng)險在地面可控,但是一旦微控制器在航天器飛行過程中發(fā)生復(fù)位,將無法繼續(xù)執(zhí)行復(fù)位之前的點火控制流程,并且微控制器復(fù)位將直接導(dǎo)致轉(zhuǎn)電控制復(fù)位即控制器斷電,造成無法控制點火的嚴重影響。為克服上述缺陷,設(shè)計了一種采用兩種類型微控制器的點火控制模塊,同時通過軟件設(shè)計,保證單片機異常復(fù)位時也不會復(fù)位當(dāng)前的轉(zhuǎn)電狀態(tài)。
為增加點火可靠性,使用兩種不同類型的微控制器進行主、備份點火控制,主備點火信號經(jīng)過或門后輸出。由于單片機(或DSP)能夠集成非易失性數(shù)據(jù)存儲器和串行通信模塊等眾多外設(shè)[4-5],因此采用一片單片機作為主處理芯片,實現(xiàn)較復(fù)雜的地面指令通信、轉(zhuǎn)電控制、時序裝訂、主點火控制等功能。采用一片CPLD(或FPGA)作為備處理芯片,只用于實現(xiàn)簡單的時序讀取和備點火控制功能。單片機和CPLD均能實現(xiàn)0 ~2N(N 為單片機和CPLD 內(nèi)部計數(shù)器的位數(shù))秒可編程、毫秒級精度的計時[6]。
系統(tǒng)的工作流程如下:(1)地面上電,單片機自動控制轉(zhuǎn)電繼電器復(fù)位,系統(tǒng)由地面電源供電;(2)單片機通過串行通信接收外部指令進行時序裝訂,將時序值存儲在單片機內(nèi)部的非易失性數(shù)據(jù)存儲器中,實現(xiàn)掉電時序不丟失;(3)單片機通過串行通信接收外部指令進行轉(zhuǎn)電,控制轉(zhuǎn)電繼電器轉(zhuǎn)換,系統(tǒng)的供電由地面電源切換到航天器內(nèi)部電池;(4)發(fā)射前單片機對CPLD 使能發(fā)射允許信號,CPLD 只在發(fā)射允許信號有效時通過I/O 口讀取單片機提供的時序值,之后CPLD 不再讀取時序值,直到輸出點火信號;(5)在收到發(fā)射允許指令且電氣分離信號有效后,單片機和CPLD 同時開始計時,不再接收通信指令和電氣分離信號,直到輸出點火信號。
點火控制模塊主要由單片機電路、CPLD 電路和或門、達林頓驅(qū)動芯片組成。系統(tǒng)原理框圖如圖1 所示。
點火控制模塊的控制核心是單片機。本次設(shè)計選用的ATmega128 是ATMEL 公司的8 位低功耗CMOS 微處理器,其外設(shè)包括2 個16 位的計數(shù)器/定時器,2個可編程的串行USART,4K 字節(jié)的EEPROM 非易失性數(shù)據(jù)存儲器等。設(shè)計中使用單片機的UART 進行串行數(shù)據(jù)的收發(fā),EEPROM 用于存儲點火時序,定時器控制點火時序的輸出。單片機內(nèi)嵌的外設(shè)部件及其特點足以滿足點火控制模塊的功能需求,減少了電路的分立元件,增加了系統(tǒng)的可靠性。單片機電路的功能框圖如圖2 所示。
單片機的軟件功能模塊包括:(1)轉(zhuǎn)電復(fù)位控制模塊,用于識別單片機復(fù)位原因并進行航天器供電的轉(zhuǎn)電復(fù)位控制;(2)轉(zhuǎn)電控制模塊,用于根據(jù)通信輸入指令進行航天器供電的轉(zhuǎn)電控制;(3)時序裝訂模塊,用于根據(jù)通信輸入指令進行航天器點火時序存儲;(4)發(fā)射允許控制模塊,用于根據(jù)通信輸入指令進行航天器發(fā)射前準備工作(解鎖電氣分離信號檢測、向CPLD 轉(zhuǎn)發(fā)發(fā)射允許信號和點火時序值);(5)主點火信號輸出模塊,用于根據(jù)航天器發(fā)射時產(chǎn)生的電氣分離信號開始計時,當(dāng)?shù)竭_時序裝訂時間輸出主點火信號。
單片機程序中啟用了看門狗功能,并設(shè)計了復(fù)位原因識別功能:單片機復(fù)位后首先檢查自身的復(fù)位狀態(tài)寄存器,若存在復(fù)位標識(如看門狗復(fù)位、外部引腳電平復(fù)位、掉電檢測復(fù)位等)則不進行轉(zhuǎn)電復(fù)位,否則在每次正常上電后執(zhí)行轉(zhuǎn)電復(fù)位控制模塊進行轉(zhuǎn)電復(fù)位;之后單片機通過串行通信接收外部指令,收到轉(zhuǎn)電指令后執(zhí)行轉(zhuǎn)電控制模塊輸出轉(zhuǎn)電信號給達林頓驅(qū)動芯片,收到時序裝訂指令后執(zhí)行時序裝訂模塊保存收到的時序值到自身的非易失存儲器,收到發(fā)射允許指令后執(zhí)行發(fā)射允許控制模塊將發(fā)射允許信號和點火時序值發(fā)送給CPLD 同時啟動主點火信號輸出模塊,當(dāng)主點火信號輸出模塊接收到有效的電氣分離信號后開始計時并停止接收電氣分離信號和串行通信,到達時序裝訂時間輸出主點火信號給或門芯片,重新啟動接收電氣分離信號和串行通信。
CPLD 是點火控制模塊的備份點火控制器。本次設(shè)計選用的XC95144XL 是XILINX 公司的高性能的CPLD,具有144 個宏單元、3200 可用門,多達133個用戶I/O 引腳,系統(tǒng)頻率高達178MHz[7]。設(shè)計中使用CPLD 的I/O 讀取點火時序值,計數(shù)器控制點火時序的輸出。CPLD 僅用于點火時序的定時輸出,功能簡單,可靠性高。CPLD 電路的功能框圖如圖3 所示。
CPLD 的軟件功能模塊包括:(1)時序讀取模塊,用于根據(jù)輸入的發(fā)射允許信號開始讀取點火時序值;(2)備點火信號輸出模塊,用于根據(jù)航天器發(fā)射時產(chǎn)生的電氣分離信號開始計時,當(dāng)?shù)竭_點火時序時間輸出備點火信號。
當(dāng)CPLD 收到有效的發(fā)射允許信號后,執(zhí)行時序讀取模塊只讀一次取點火時序值同時啟動備點火信號輸出模塊,當(dāng)備點火信號輸出模塊接收到有效的電氣分離信號后開始計時并停止接收電氣分離信號,到達時序裝訂時間輸出備點火信號給或門芯片,重新啟動接收電氣分離信號。主、備點火信號經(jīng)過或門后送給達林頓驅(qū)動芯片,最終輸出有驅(qū)動能力的控制信號。
在該點火控制模塊的設(shè)計中,可靠性方面具有以下創(chuàng)新點:(1)使用的兩種微控制器有不同的失效模式,且CPLD 是可編程硬件電路,不存在像單片機程序跑飛的情況;在飛行過程中兩種微控制器互不影響,也不受外部信號和指令的影響,獨立完成點火控制,可靠性大大提高。兩個控制器互有分工,只在點火控制上進行雙冗余設(shè)計,兼顧了低成本的要求。(2)單片機軟件設(shè)置了復(fù)位模式識別功能,保證飛行中單片機因干擾發(fā)生復(fù)位時不會進行轉(zhuǎn)電復(fù)位,確保CPLD 可以繼續(xù)控制點火,而在地面正常上電時能夠控制轉(zhuǎn)電復(fù)位。為點火控制產(chǎn)品針對飛行中復(fù)位的問題提出了簡潔、有效的處理方案[8]。
經(jīng)過產(chǎn)品實物測試,點火時間設(shè)定為300s 時單片機和CPLD 的時序輸出誤差在10ms 以內(nèi),點火脈寬設(shè)定為200ms 時輸出誤差在1ms 以內(nèi),滿足任務(wù)需要。為模擬飛行中單片機發(fā)生復(fù)位的情況,在電氣分離信號有效即點火控制模塊開始計時后,人為對單片機進行外部復(fù)位,測試產(chǎn)品供電正常,未發(fā)生轉(zhuǎn)電復(fù)位,到達點火時刻單片機點火時序未發(fā)出,CPLD 點火時序正常發(fā)出,證明產(chǎn)品功能完整實現(xiàn)。
本設(shè)計采用較少的硬件電路實現(xiàn)高可靠的點火控制,兩種類型的微控制器不會因同一種問題失效,通過軟件方式解決微控制器受干擾復(fù)位后會導(dǎo)致產(chǎn)品斷電的問題,實現(xiàn)成本較低。