(1.航天東方紅衛(wèi)星有限公司,北京 100094; 2.上海空間電源研究所,上海 200245)
智能化自主管理是衛(wèi)星應(yīng)用發(fā)展的趨勢(shì),能源管理單元作為衛(wèi)星供配電分系統(tǒng)的功能模塊之一,是供配電分系統(tǒng)實(shí)現(xiàn)智能化信息采集和控制管理的關(guān)鍵部件[1]。根據(jù)總體任務(wù)要求,一般完成供配電分系統(tǒng)工作狀態(tài)監(jiān)視與控制、工程參數(shù)的采集、遙控指令的接收與執(zhí)行、蓄電池組的充電控制和保護(hù)、蓄電池組溫控、與星務(wù)主機(jī)進(jìn)行通信等功能。傳統(tǒng)的能源管理單元一般采用單片機(jī)+PROM的形式,外擴(kuò)外圍電路采用大量的集成芯片,功耗約在瓦級(jí),且體積重量也較大。
目前,小衛(wèi)星載荷任務(wù)呈現(xiàn)多樣化發(fā)展趨勢(shì),載荷/平臺(tái)重量比不斷增加,這要求衛(wèi)星平臺(tái)逐漸向高功能密度和輕量化發(fā)展[2-3]。片上系統(tǒng)(System on Chip, SoC)正是為了適應(yīng)日益復(fù)雜的電子設(shè)備需求而產(chǎn)生,其在單個(gè)芯片上集成了一個(gè)完整的系統(tǒng),一般包括中央處理器、存儲(chǔ)器和多種外圍電路[4-5]。利用SoC進(jìn)行能源管理單元設(shè)計(jì),有利于提高供配電功能密度,減輕供配電系統(tǒng)重量,統(tǒng)一技術(shù)狀態(tài),同時(shí)可以加強(qiáng)供配電在軌自主管理能力,適應(yīng)批量快速生產(chǎn),降低生產(chǎn)成本。
但目前的片上系統(tǒng)大多為商用芯片,在軌飛行經(jīng)歷少,對(duì)嚴(yán)酷的空間環(huán)境適應(yīng)性有待考核[6-7]。能源管理單元直接對(duì)供配電分系統(tǒng)的運(yùn)行狀態(tài)進(jìn)行監(jiān)視和控制,一旦發(fā)生故障,將會(huì)嚴(yán)重影響到整星的能源安全,甚至?xí)苯佑绊懙胶教炱魅蝿?wù)的成功與否。因此,需要針對(duì)商用SoC在設(shè)計(jì)階段開(kāi)展完善的可靠性設(shè)計(jì)。
本文提出一種基于C8051F040型SoC的小衛(wèi)星能源管理單元軟硬件設(shè)計(jì),并在此基礎(chǔ)上開(kāi)展可靠性設(shè)計(jì)。最后開(kāi)展系統(tǒng)測(cè)試和在軌飛行驗(yàn)證。
軟硬件界面的劃分是能源管理單元的頂層設(shè)計(jì),以功能需求驅(qū)動(dòng)系統(tǒng)的軟硬件協(xié)同設(shè)計(jì)。
1)能源管理單元完成采集、處理供配電分系統(tǒng)的模擬量工程參數(shù)。C8051F040集成了一個(gè)12 位分辨率和一個(gè)8位分辨率的逐次逼近寄存器型ADC,每個(gè)ADC自帶可編程模擬多路開(kāi)關(guān)選擇器(AMUX)[8]。因此,直接利用SoC自帶的ADC輔以軟件處理,即可完成該功能。在不外擴(kuò)模擬開(kāi)關(guān)的前提下,理論上利用C8051F040最多可完成21路外部供配電分系統(tǒng)模擬量采集。
2)能源管理單元完成采集、處理供配電分系統(tǒng)的狀態(tài)量工程參數(shù)。C8051F040有按8 位端口組織的64 個(gè)數(shù)字I/O 引腳,每個(gè)數(shù)字引腳均可被配置為數(shù)字輸入。因此狀態(tài)量采集直接利用軟件讀取I/O口寄存器的方式實(shí)現(xiàn)。
3)能源管理單元完成與星務(wù)雙路冷備份CAN總線通信。C8051F040 集成了1路Bosch CAN控制器,用于進(jìn)行串行通信,但并未提供物理層驅(qū)動(dòng)器。因此需要外擴(kuò)1片收發(fā)器82C250。另1路CAN總線通信通過(guò)外擴(kuò)CAN控制器SJA1000和收發(fā)器82C250實(shí)現(xiàn)硬件支持,通過(guò)軟件中斷響應(yīng)操作C8051F040數(shù)據(jù)地址總線完成通信。
4)能源管理單元根據(jù)相應(yīng)的邏輯判斷或CAN總線輸入完成脈沖型/電平型OC指令的輸出。C8051F040通過(guò)數(shù)據(jù)地址總線控制指令鎖存器進(jìn)行間接命令的路選及信號(hào)的形成,然后由開(kāi)關(guān)輸出電路(OC門(mén)驅(qū)動(dòng)電路)形成最終的指令,用來(lái)驅(qū)動(dòng)供配電分系統(tǒng)的控制器件。因此需要外擴(kuò)相應(yīng)指令路數(shù)的鎖存器與OC門(mén)驅(qū)動(dòng)芯片。通過(guò)軟件定時(shí)刷新鎖存器的方式控制指令脈沖的寬度。
5)能源管理單元完成與供配電分系統(tǒng)其它下位機(jī)(如電池下位機(jī))的串行通信。通過(guò)C8051F040集成的SMBus0 I/O 接口,接口兼容I2C 串行總線協(xié)議,軟件配置I2C主從工作模式實(shí)現(xiàn)串行通信。
6)軟件具備在軌可修改功能。C8051F040集成了64KB可在線編程的FLASH 存儲(chǔ)器,軟件通過(guò)CAN總線上注的方式實(shí)現(xiàn)FLASH擦寫(xiě),通過(guò)預(yù)埋鉤子函數(shù)的方式實(shí)現(xiàn)程序替換。
7)軟件其它功能。根據(jù)總線協(xié)議和幀格式要求對(duì)總線輪詢(xún)和指令進(jìn)行應(yīng)答;對(duì)蓄電池溫度采集處理后完成閉環(huán)邏輯控制;完成充放電電量的累計(jì)、當(dāng)前電量的計(jì)算和滿(mǎn)電量的邏輯判斷與置位等。
能源管理單元采用雙機(jī)冷備份設(shè)計(jì),其原理框圖見(jiàn)圖1。主備份模塊除用于主備份狀態(tài)遙測(cè)的狀態(tài)量輸入不同以外,其它部分均相同。主備份共用電源切換控制電路。

圖1 能源管理單元硬件架構(gòu)原理框圖
能源管理單元的看門(mén)狗電路使用的是專(zhuān)用看門(mén)狗電路芯片MAX706TESA,該電路在完成復(fù)位功能的同時(shí),可以監(jiān)視系統(tǒng)電源電壓,并能在電壓低于3.08 V時(shí)給CPU系統(tǒng)復(fù)位,確保在電源電壓不穩(wěn)定時(shí)保護(hù)對(duì)外接口電路,避免能源管理單元對(duì)外進(jìn)行誤操作。其基本電路原理圖如圖2所示。

圖2 看門(mén)狗電路
能源管理單元設(shè)計(jì)外部16 MHz晶振,為CPU提供工作時(shí)鐘。CAN總線波特率500 Kbps,可以使用16 M晶振。SoC內(nèi)部CAN總線控制器使用系統(tǒng)時(shí)鐘,外擴(kuò)SJA1000使用單獨(dú)的16 M晶振。電路原理圖見(jiàn)圖3。

圖3 晶振電路
由于SoC供電為3.3 V,而鎖存器、OC門(mén)驅(qū)動(dòng)電路以及SJA1000等外圍電路均為5V供電,所以電平轉(zhuǎn)換電路是將SoC模塊I/O口產(chǎn)生的0~3.3 V電平轉(zhuǎn)換為0~5 V電平輸出,轉(zhuǎn)換信號(hào)包括數(shù)據(jù)信號(hào)、地址信號(hào)、片選信號(hào)、讀寫(xiě)信號(hào)等。
數(shù)據(jù)信號(hào)需要雙向轉(zhuǎn)換,其它信號(hào)只需SoC輸出方向單向轉(zhuǎn)換,雙向轉(zhuǎn)換的方向同SoC產(chǎn)生的讀信號(hào)方向。因此采用SoC的讀信號(hào)控制電平轉(zhuǎn)換電路(SN74ALVC164245)的電平轉(zhuǎn)換控制端。
能源管理單元供電包含三部分,即切機(jī)控制電路、+5 V供電電路和+3.3 V供電電路。能源管理單元為雙機(jī)冷備份設(shè)計(jì),通過(guò)直接指令“能源管理單元A通B斷”和“能源管理單元B通A斷”切換供電總開(kāi)關(guān)繼電器。能源管理單元電路使用+5 V和+3.3 V兩種電壓,每路電壓均通過(guò)具有限流保護(hù)的線性穩(wěn)壓器MAX883或MAX882進(jìn)行隔離保護(hù)。切機(jī)控制電路見(jiàn)圖4。

圖4 切機(jī)控制電路
軟件基本結(jié)構(gòu)采用主程序循環(huán)加中斷響應(yīng)的方式,其基本結(jié)構(gòu)框圖如圖5所示。中斷優(yōu)先級(jí)按照?qǐng)D中從左至右依次降低的順序排列。

圖5 軟件結(jié)構(gòu)框圖
系統(tǒng)上電或復(fù)位后,必須對(duì)能源管理單元軟件的運(yùn)行環(huán)境進(jìn)行初始化,初始化模塊執(zhí)行能源管理軟件初始化的功能,主要包括對(duì)硬件、端口等的初始化,對(duì)變量、數(shù)據(jù)區(qū)等的初始化。初始化模塊相關(guān)存儲(chǔ)分配表見(jiàn)表1。
電量計(jì)控制是采用計(jì)算機(jī)軟件進(jìn)行蓄電池組充放電管理的技術(shù),其目的是精確、最佳化地對(duì)掌握蓄電池組充放電狀態(tài)。

表1 存儲(chǔ)地址分配表
其主要功能是根據(jù)充電電流、放電電流、充放比和計(jì)算時(shí)間間隔來(lái)計(jì)算當(dāng)前電量、充電電量和放電電量,并按要求進(jìn)行比較;同時(shí)對(duì)計(jì)算后電量值進(jìn)行有效值范圍判斷,異常則恢復(fù)默認(rèn)電量計(jì)參數(shù);重要的遙測(cè)參數(shù)進(jìn)行3取2判決,異常則恢復(fù)默認(rèn)電量計(jì)參數(shù)。
能源管理單元作為整星CAN總線從節(jié)點(diǎn),按照相關(guān)協(xié)議約定的要求,實(shí)現(xiàn)與星務(wù)中心計(jì)算機(jī)之間的信息交換。主要功能是接收星務(wù)中心計(jì)算機(jī)發(fā)出的輪詢(xún)指令,按數(shù)據(jù)幀格式將供配電分系統(tǒng)的工程參數(shù)上傳到星務(wù)中心計(jì)算機(jī),并對(duì)星務(wù)中心計(jì)算機(jī)下傳的間接指令解碼和執(zhí)行,處理上行數(shù)據(jù)塊。CAN總線中斷響應(yīng)流程圖見(jiàn)圖6。

圖6 CAN總線中斷響應(yīng)流程圖
I2C總線中斷響應(yīng)是通過(guò)狀態(tài)機(jī)的方式實(shí)現(xiàn)。每次中斷產(chǎn)生,根據(jù)當(dāng)前狀態(tài)和狀態(tài)寄存器SMB0STA中保存的8 位狀態(tài)碼進(jìn)行狀態(tài)遷移和總線操作。函數(shù)實(shí)現(xiàn)主發(fā)送狀態(tài)機(jī)和主接收狀態(tài)機(jī)。
能源管理單元上注數(shù)據(jù)主要包括參數(shù)數(shù)據(jù)塊、程序數(shù)據(jù)塊和內(nèi)存下泄數(shù)據(jù)塊,通過(guò)設(shè)計(jì)不同的起始標(biāo)志區(qū)分3種數(shù)據(jù)塊。供配電系統(tǒng)的部分控制參數(shù)需要在軌修改,這些參數(shù)的修改分別通過(guò)上注安全監(jiān)測(cè)參數(shù)數(shù)據(jù)塊和電量計(jì)參數(shù)數(shù)據(jù)塊來(lái)實(shí)現(xiàn)。

圖7 上注數(shù)據(jù)處理流程圖
與通用軟件相比,星上軟件本身具有處理器能力有限、存儲(chǔ)空間較小等嵌入式軟件的特點(diǎn);軟件長(zhǎng)期在軌運(yùn)行,空間環(huán)境較為惡劣,軟件運(yùn)行環(huán)境易受空間環(huán)境特別是單粒子效應(yīng)影響。本文采用針對(duì)性的軟件可靠性設(shè)計(jì)提高商用SoC芯片的空間環(huán)境適應(yīng)能力。
4.1.1 三模冗余設(shè)計(jì)
三模冗余包括三模冗余存儲(chǔ)、三取二表決、三取二刷新以及三取二恢復(fù)等內(nèi)容。采用三模冗余會(huì)使得占用存儲(chǔ)空間和機(jī)時(shí)增加,對(duì)于不具備EDAC功能商用SoC集成的SRAM、FLASH等存儲(chǔ)器中存儲(chǔ)的、影響系統(tǒng)運(yùn)行分支或重要運(yùn)算結(jié)果的數(shù)據(jù)量小的關(guān)鍵數(shù)據(jù)或影響整星安全的關(guān)鍵指令等采用三模冗余設(shè)計(jì)。
三模冗余存儲(chǔ):將關(guān)鍵數(shù)據(jù)存儲(chǔ)在物理上不連續(xù)的3個(gè)地址中;
三取二表決:讀取時(shí)采取三取二表決的方式,使用三取二后的結(jié)果進(jìn)行操作;
三取二刷新:對(duì)關(guān)鍵數(shù)據(jù)進(jìn)行三取二表決,將表決結(jié)果寫(xiě)回3個(gè)數(shù)據(jù)區(qū);
三取二恢復(fù):因單粒子效應(yīng)產(chǎn)生的硬件不可糾正的錯(cuò)誤時(shí),使用三取二表決結(jié)果恢復(fù)錯(cuò)誤數(shù)據(jù)。
4.1.2 數(shù)據(jù)校驗(yàn)
對(duì)于通過(guò)總線等方式傳送的數(shù)據(jù)、存儲(chǔ)器中連續(xù)地址上的一段關(guān)鍵數(shù)據(jù)或代碼采用累加和、異或和等校驗(yàn)方式。
4.1.3 數(shù)據(jù)濾波
模擬量信號(hào)采樣采取多次采集的方式,并使用濾波算法對(duì)采樣信號(hào)進(jìn)行處理,避免瞬時(shí)錯(cuò)誤傳遞擴(kuò)大為安時(shí)計(jì)累積或能源安全判斷錯(cuò)誤;并根據(jù)硬件特性,在每次采集之間留有一定間隔,避免信號(hào)毛刺導(dǎo)致采集的數(shù)據(jù)有誤[9]。如安全模式進(jìn)入判斷,通過(guò)總線采集的遙測(cè)至少連續(xù)三次達(dá)到相應(yīng)閾值后,才能判斷滿(mǎn)足安全模式的進(jìn)入條件。
4.1.4 有效性驗(yàn)證
從外部接收到的數(shù)據(jù)用于分支判斷或重要操作時(shí),應(yīng)先驗(yàn)證數(shù)據(jù)的有效性再進(jìn)行后續(xù)操作,避免無(wú)效或錯(cuò)誤的數(shù)據(jù)影響軟件甚至整星狀態(tài)。例如安全監(jiān)測(cè)參數(shù)數(shù)據(jù)塊使用前對(duì)數(shù)據(jù)范圍進(jìn)行判斷,避免使用無(wú)效數(shù)據(jù)進(jìn)行后續(xù)操作。
對(duì)影響系統(tǒng)運(yùn)行模式、運(yùn)行狀態(tài)等特別關(guān)鍵的操作,進(jìn)行多重條件判斷,只有在兩個(gè)或多個(gè)條件滿(mǎn)足的情況下,軟件才執(zhí)行指定操作。如進(jìn)入安全模式,必須滿(mǎn)足安全模式使能允許、安全模式進(jìn)入判據(jù)等多個(gè)條件同時(shí)滿(mǎn)足時(shí)才進(jìn)入安全模式。
4.3.1 未使用存儲(chǔ)器保護(hù)
軟件對(duì)所有未使用的存儲(chǔ)區(qū)填充軟件陷阱,當(dāng)軟件走飛到未用FLASH區(qū)域中時(shí),系統(tǒng)能夠及時(shí)恢復(fù)。
4.3.2 未處理中斷保護(hù)
設(shè)計(jì)未使用中斷的中斷保護(hù)函數(shù),當(dāng)程序異常誤入未使用中斷時(shí),該中斷保護(hù)函數(shù)能夠正確退出中斷。
4.3.3 看門(mén)狗機(jī)制
使用外部看門(mén)狗來(lái)監(jiān)視軟件的運(yùn)行狀態(tài),當(dāng)軟件在規(guī)定時(shí)間內(nèi)未進(jìn)行清狗操作時(shí),通過(guò)看門(mén)狗復(fù)位使計(jì)算機(jī)系統(tǒng)重新復(fù)位。
4.4.1 三取二錯(cuò)誤計(jì)數(shù)遙測(cè)
設(shè)置緩變遙測(cè)三取二錯(cuò)誤計(jì)數(shù),三取二操作產(chǎn)生不一致情況時(shí)計(jì)數(shù)增加,對(duì)SRAM在軌異常狀況進(jìn)行統(tǒng)計(jì)。涉及的三取二參數(shù)如表2。

表2 軟件三取二參數(shù)列表
4.4.2 內(nèi)存下泄
對(duì)于三取二參數(shù)以外的數(shù)據(jù)區(qū)和程序區(qū),設(shè)計(jì)內(nèi)存下泄的方式,通過(guò)上注數(shù)據(jù)塊指定特定地址,可以將SRAM的數(shù)據(jù)或FLASH的程序?qū)懭刖徸償?shù)據(jù)緩存區(qū),通過(guò)星地遙測(cè)方式下傳。該方式需要注意的是對(duì)作為關(guān)鍵判據(jù)的緩變參數(shù)的保護(hù),例如緩變安全模式字是星務(wù)進(jìn)行能源安全判斷的標(biāo)志,在內(nèi)存下泄時(shí)不能被替代。
為了降低在型號(hào)的生命周期內(nèi)產(chǎn)生的能源管理單元故障錯(cuò)誤對(duì)分系統(tǒng)乃至整星的影響,能源管理單元需具有良好的在軌維護(hù)性。本文針對(duì)性開(kāi)展了以下設(shè)計(jì)。
4.5.1 程序可上注
模塊級(jí)維護(hù):經(jīng)過(guò)在軌運(yùn)行驗(yàn)證,如果軟件某些功能不能滿(mǎn)足在軌運(yùn)行的實(shí)際需求,或者需要增加某些功能,可以選擇模塊級(jí)在軌維護(hù),完成對(duì)軟件函數(shù)的替換。
配置項(xiàng)級(jí)維護(hù):如果在軌發(fā)生重大質(zhì)量問(wèn)題或者需求在軌發(fā)生重大變化,需要更動(dòng)的軟件功能較多,可以選擇配置項(xiàng)級(jí)在軌維護(hù),完成對(duì)軟件的整體替換。
4.5.2 總線容錯(cuò)
能源管理單元軟件設(shè)計(jì)原則是首先保證不對(duì)總線產(chǎn)生干擾,同時(shí)具有抵抗總線干擾的能力,并能在嚴(yán)重干擾情況下自動(dòng)恢復(fù)[10]。例如設(shè)置獨(dú)立的總線緩沖區(qū)、滿(mǎn)足幀間隔協(xié)議和總線狀態(tài)自主監(jiān)測(cè)復(fù)位等措施。
4.5.3 重要數(shù)據(jù)備份恢復(fù)
能源管理單元中影響供配電安全的關(guān)鍵數(shù)據(jù)定時(shí)進(jìn)行些FLASH操作,在能源管理單元復(fù)位或切機(jī)后通過(guò)數(shù)據(jù)應(yīng)急恢復(fù)關(guān)鍵狀態(tài)量等重要信息,使得供配電分系統(tǒng)迅速恢復(fù)復(fù)位/切機(jī)前的狀態(tài),減少人為干預(yù)。
4.5.4 系統(tǒng)級(jí)安全模式
能源管理單元中某些危及整星供電安全的操作,例如蓄電池過(guò)放保護(hù),設(shè)計(jì)相應(yīng)的閉環(huán)邏輯,實(shí)時(shí)監(jiān)測(cè)蓄電池達(dá)到可恢復(fù)供電的狀態(tài)時(shí),自主接入蓄電池。從系統(tǒng)級(jí)安全模式設(shè)計(jì)考慮應(yīng)急狀態(tài)下或錯(cuò)誤操作后的自主恢復(fù)。
基于該商用SoC的能源管理單元在希望二號(hào)、歐比特視頻衛(wèi)星等9顆衛(wèi)星上得到了應(yīng)用,覆蓋500km~1100km的低軌道空間環(huán)境,在軌表現(xiàn)穩(wěn)定。通過(guò)遙測(cè)“能源管理單元熱啟動(dòng)計(jì)數(shù)”和“關(guān)鍵參數(shù)三取二錯(cuò)誤計(jì)數(shù)”判斷,能源管理單元未發(fā)生熱啟動(dòng),SoC集成的SRAM也未發(fā)生頻繁的單粒子翻轉(zhuǎn)事件,供配電分系統(tǒng)遙測(cè)采集正常,指令執(zhí)行正常。主要技術(shù)指標(biāo)與傳統(tǒng)基于單片機(jī)+PROM的實(shí)現(xiàn)方式對(duì)比見(jiàn)表3。
通過(guò)表3可以看出,基于商用SoC設(shè)計(jì)的能源管理單元在功耗、重量、尺寸、元器件獲取等方面具有較大的優(yōu)勢(shì),并且可以降低成本,適用于小衛(wèi)星大規(guī)模、批量化生產(chǎn)。
本文提出一種基于商用SoC的能源管理單元設(shè)計(jì)方法,并針對(duì)商用器件開(kāi)展了詳細(xì)的可靠性設(shè)計(jì)。通過(guò)地面測(cè)試和在軌多顆衛(wèi)星的實(shí)際應(yīng)用驗(yàn)證,表明該設(shè)計(jì)能夠滿(mǎn)足供配電分系統(tǒng)在軌使用需求。基于商用SoC的設(shè)計(jì)在功耗、重量、尺寸、成本和元器件等方面具有較大的優(yōu)勢(shì),適應(yīng)于快速批量化、低成本設(shè)計(jì)生產(chǎn),可以為后續(xù)小衛(wèi)星或微小衛(wèi)星能源管理單元提供設(shè)計(jì)參考。

表3 與傳統(tǒng)實(shí)現(xiàn)方式主要技術(shù)指標(biāo)對(duì)比