劉博 李小磊 夏天泉 李欣欣
(上海航天電子技術(shù)研究所,上海, 201109)
隨著航天任務(wù)復(fù)雜度和需求度提升,對(duì)航天器上電源系統(tǒng)的要求也越來(lái)越高[1]。作為整個(gè)航天器電源系統(tǒng)管理的控制核心,電源控制器(Power Control Unit,PCU)根據(jù) 需要對(duì) 星上能量輸出進(jìn)行相應(yīng)調(diào)節(jié)、傳輸和變換,以保證星上各儀器能夠正常工作[2]。
目前,星上的電源系統(tǒng)控制方式多使用8051的CPU(中央處理器)系統(tǒng),以及一系列的鎖存器、譯碼器等中小規(guī)模集成電路構(gòu)成[3-4],此類(lèi)架構(gòu)外圍電路較為復(fù)雜,且對(duì)不同類(lèi)型的接口兼容性不強(qiáng)。另外也有使用單個(gè)反熔絲FPGA(可編程陣列邏輯)來(lái)完成電源系統(tǒng)的遙測(cè)遙控功能[5-6],此類(lèi)方式能減少器件的種類(lèi)、簡(jiǎn)化電路設(shè)計(jì),但由于其做浮點(diǎn)運(yùn)算的能力較弱,會(huì)消耗大量資源,因此在對(duì)蓄電池的自主管理方面會(huì)有所欠缺。
鑒于此,本文提出了一種適用于新型星載電源智能管理的設(shè)計(jì)方案,能夠?qū)崿F(xiàn)電路的小型化,完成更復(fù)雜的數(shù)據(jù)傳輸與管理;同時(shí)適應(yīng)多種接口和控制方式,有良好的通用性和可擴(kuò)展性,可以穩(wěn)定地對(duì)電源系統(tǒng)進(jìn)行自主監(jiān)控和管理。
電源管理方案的基本思路是:首先通過(guò)遙測(cè)采集模塊周期性采集電源分系統(tǒng)的工作參數(shù),并在控制處理模塊的控制下將其轉(zhuǎn)化為數(shù)字量;響應(yīng)星載主機(jī)周期性的輪詢(xún)命令,由1553通信模塊將存儲(chǔ)的遙測(cè)參數(shù)送至星上總線網(wǎng)絡(luò);CPU將多輪采集的遙測(cè)參數(shù)進(jìn)行運(yùn)算處理,并與預(yù)設(shè)或星載主機(jī)上注的控制門(mén)限值相比較,自主發(fā)送不同類(lèi)型控制指令調(diào)節(jié)當(dāng)前能源管理的狀態(tài),防止蓄電池過(guò)充過(guò)放,以提高蓄電池的充電效率,延長(zhǎng)蓄電池壽命[7]。同時(shí),增加了在系統(tǒng)編程的功能,可以根據(jù)不同蓄電池的K系數(shù)及控制策略變更進(jìn)行實(shí)時(shí)的軟件修改,可有效縮減研制周期,增強(qiáng)設(shè)備的兼容性。
圖1給出了電源管理方案的原理框圖,由圖可知電源管理方案由二次電源變換、遙測(cè)采集模塊、A/D轉(zhuǎn)換、控制處理模塊、1553B接口電路、指令輸出接口、片選輸出、422接口等電路組成??紤]到空間應(yīng)用的不可維修性,采用了雙機(jī)冷備份的設(shè)計(jì)。
圖1 電源管理方案原理框圖
數(shù)據(jù)采集的主要功能是在CPU的控制下,時(shí)序采集電源分系統(tǒng)的狀態(tài)參數(shù),并將采集的電壓量轉(zhuǎn)換為數(shù)字量,由控制模塊讀取,存入數(shù)據(jù)存儲(chǔ)器。數(shù)據(jù)采集功能主要分為2部分,一部分為多選一的模擬通道,另一部分為AD轉(zhuǎn)換電路。數(shù)據(jù)采集功能框圖如圖2所示。
圖2 數(shù)據(jù)采集功能框圖
模擬通道電路主要由16選1的模擬門(mén)芯片構(gòu)成,采用2級(jí)選通的方式實(shí)現(xiàn)多選一功能,該功能保證了AD轉(zhuǎn)換器在每一個(gè)采集時(shí)刻只采集一路信號(hào),避免多路信號(hào)之間相互干擾的問(wèn)題。
AD轉(zhuǎn)換電路由運(yùn)算放大器OP77和AD轉(zhuǎn)換芯片AD574組成。在使用中,將OP77設(shè)置為射極跟隨器電路,以保證對(duì)輸入信號(hào)的高阻抗隔離及A/D轉(zhuǎn)換所要求的低輸入阻抗。AD574是AD公司生產(chǎn)的一種快速逐次比較型12位AD轉(zhuǎn)換器,轉(zhuǎn)換速度最大為35μs,轉(zhuǎn)換精度不大于0.05%,能夠滿(mǎn)足對(duì)蓄電池閾值門(mén)限控制的精度要求。
指令發(fā)送功能是由CPU經(jīng)過(guò)判斷或計(jì)算后,依據(jù)發(fā)送通路,將對(duì)應(yīng)的指令數(shù)據(jù)寫(xiě)入FPGA中,F(xiàn)PGA根據(jù)數(shù)據(jù)所寫(xiě)入的地址和指令內(nèi)容來(lái)實(shí)施具體指令的發(fā)送。指令控制方式分為3類(lèi):①OC指令:FPGA輸出脈沖選通電平控制驅(qū)動(dòng)芯片發(fā)送OC指令,使用了具有16路指令驅(qū)動(dòng)芯片BM2711;②片選指令:FPGA輸出電平選通信號(hào)通過(guò)電平轉(zhuǎn)換芯片發(fā)送片選指令,電平轉(zhuǎn)換芯片使用了CC40109,能夠?qū)?V電平轉(zhuǎn)換為適合電源系統(tǒng)充電曲線切換的電平后輸出;③串口指令:FPGA通過(guò)串口芯片輸出三線制時(shí)鐘、門(mén)控、數(shù)據(jù)進(jìn)行同步串口指令的發(fā)送。
電源管理設(shè)備的控制處理核心為8051系列CPU系統(tǒng)和FPGA控制芯片,CPU系統(tǒng)包括CPU、PROM和SRAM芯片,PROM用于存放CPU處理軟件,SRAM用于存放遙測(cè)數(shù)據(jù)和控制參數(shù),SRAM與FPGA相連后作為同步422接口的遙測(cè)數(shù)據(jù)緩存,F(xiàn)PGA完成系統(tǒng)的邏輯控制及輸入輸出信號(hào)的收發(fā)控制。CPU與FPGA之間以及控制處理模塊與外部各芯片的接口關(guān)系如圖3所示。
圖3 控制處理模塊接口關(guān)系
CPU作為主控芯片完成1553B總線通信、遙測(cè)組幀、指令包解析、電源系統(tǒng)各參數(shù)的處理,F(xiàn)PGA作為從芯片,配合CPU完成地址端口的映射、地址的邏輯譯碼、模擬量的采集與緩存、各類(lèi)指令發(fā)送、對(duì)外的同步或異步串口通信以及看門(mén)狗功能等。
在物理層,F(xiàn)PGA與CPU數(shù)據(jù)交換通過(guò)八位并行總線實(shí)現(xiàn)。FPGA內(nèi)部主要由CPU通信模塊完成與CPU的通信控制。CPU通信模塊根據(jù)CPU的讀寫(xiě)信號(hào)和ALE信號(hào),按照時(shí)序與CPU進(jìn)行通信,通過(guò)CPU給出的地址進(jìn)行地址譯碼,實(shí)現(xiàn)外部各芯片的選通和讀寫(xiě)控制。根據(jù)接收到的不同指令請(qǐng)求內(nèi)容分發(fā)指令碼至相應(yīng)功能模塊。與緩存管理模塊交互,完成計(jì)算參數(shù)、遙測(cè)數(shù)據(jù)的緩存和轉(zhuǎn)發(fā)。
為了便于系統(tǒng)和整星測(cè)試時(shí)的軟件更改,設(shè)計(jì)了在系統(tǒng)編程功能。在系統(tǒng)編程的實(shí)現(xiàn)是通過(guò)增加一個(gè)RS232芯片,將CPU的TXD、RXD引出,同時(shí)將標(biāo)準(zhǔn)RS232串口中的DTR信號(hào)送FPGA芯片,采用在系統(tǒng)編程軟件實(shí)現(xiàn)用戶(hù)應(yīng)用軟件的燒錄。由于FPGA設(shè)計(jì)中設(shè)計(jì)了看門(mén)狗控制功能,軟件加載時(shí),首先會(huì)禁止看門(mén)狗輸出,此時(shí)CPU將自動(dòng)識(shí)別到ISP端口,進(jìn)行程序加載,整個(gè)加載過(guò)程CPU處于不工作模式,不會(huì)輸出任何數(shù)據(jù)。
充電保護(hù)控制目的:CPU通過(guò)自主調(diào)節(jié)蓄電池組充電限壓曲線,保證蓄電池組所有單體電壓不大于單體電壓上限保護(hù)值,避免蓄電池單體過(guò)充。當(dāng)需要進(jìn)行充電保護(hù)控制流程時(shí),星務(wù)軟件會(huì)通過(guò)1553B總線發(fā)送一條“蓄電池單體保護(hù)充電控制使能”指令,CPU接收并解析該條指令后,便可在充電過(guò)程中對(duì)蓄電池單體進(jìn)行自主控制,控制的周期為2s。在充電過(guò)程中,F(xiàn)PGA周期性地通過(guò)串口從均衡器接收蓄電池的各電壓值,同時(shí)從AD處采集放電電流、蓄電池組電壓等模擬量,CPU根據(jù)FPGA收集到的遙測(cè)電壓數(shù)據(jù)判斷,當(dāng)滿(mǎn)足任意一組蓄電池組的充電電流I<4A且持續(xù)28s,充電開(kāi)始,CPU進(jìn)入充電控制流程:先篩選出單體電壓在3.5V~4.5V范圍的電池單體,并連續(xù)檢測(cè)蓄電池單體電壓變化情況;當(dāng)檢測(cè)到單體電壓達(dá)到單體電壓上限保護(hù)值時(shí),CPU控制FPGA發(fā)送充電限壓曲線切換指令,輸出片選信號(hào)切換蓄電池組充電限壓曲線至低一檔的位置,實(shí)現(xiàn)對(duì)蓄電池單體的保護(hù),同時(shí)更新健康字,記錄當(dāng)前電池單體保護(hù)充電自主控制狀態(tài)。單體電壓的上限保護(hù)值可通過(guò)參數(shù)注入進(jìn)行修改,以適應(yīng)電池不同模式的使用方式。
目前星上越來(lái)越多地使用了鋰離子電池組,其由多節(jié)單體鋰離子電池所組成,為了提高鋰離子蓄電池單體之間的均衡性,使單體電壓偏差保持在預(yù)期范圍內(nèi)[4],應(yīng)提供對(duì)鋰離子蓄電池單體均衡管理的功能,這里以7節(jié)單體組成的電池組為例。
FPGA從串口接收均衡器采集的當(dāng)前蓄電池組所有單體電壓、從外部采集 “太陽(yáng)電池陣電流” “平臺(tái)太陽(yáng)電池陣電流1” “平臺(tái)太陽(yáng)電池陣電流2”衛(wèi)星光照陰影狀態(tài)信號(hào),并存儲(chǔ)在數(shù)據(jù)緩存芯片中;星務(wù)軟件發(fā)指令將均衡控制使能狀態(tài)切換至“均衡控制使能允許”。隨后CPU對(duì)單體電壓進(jìn)行處理:CPU在7個(gè)當(dāng)前蓄電池單體電壓中剔除超出范圍的值,然后將未剔除的電壓值取平均值,每個(gè)電壓與平均值比較,將與平均值誤差≥0.2V的單體電壓剔出;求取未剔除單體電壓中最小單體電壓Umin。
CPU需預(yù)先判斷蓄電池各單體的均衡狀態(tài),若均為“0”,則退出此次均衡判斷,若至少有一單體均衡狀態(tài)為“1”,則進(jìn)行以下操作:①FPGA通過(guò)串口發(fā)送給均衡器均衡關(guān)指令;②CPU置平臺(tái)蓄電池組A單體1~7均衡狀態(tài)遙測(cè)為“0”;③CPU將均衡時(shí)間、均衡計(jì)時(shí)位置零。
若均衡功能狀態(tài)為“1”時(shí),CPU判斷衛(wèi)星光照陰影狀態(tài)。如果陰影狀態(tài),CPU繼續(xù)判斷均衡時(shí)間是否大于2h,如果大于2h,則進(jìn)行以下操作:①FPGA通過(guò)串口發(fā)送給均衡器均衡關(guān)指令;②CPU置平臺(tái)蓄電池組A單體1~7均衡狀態(tài)遙測(cè)為“0”;③CPU將均衡時(shí)間、均衡計(jì)時(shí)位置零;退出本次均衡判斷。
如果均衡時(shí)間≤2h,以2個(gè)均衡控制運(yùn)行周期內(nèi)是否滿(mǎn)足以下2個(gè)條件中的任意一個(gè)為均衡接通判斷條件:①在2個(gè)均衡控制運(yùn)行周期內(nèi)滿(mǎn)足Ui-Umin≥U平臺(tái)均衡(均衡閾值可以通過(guò)1553B總線注數(shù)修改,初始值為80mV,Ui為同一單體);②在2個(gè)均衡控制運(yùn)行周期內(nèi)滿(mǎn)足Ui≥U單體設(shè)定(Ui為同一單體)。
若該單體滿(mǎn)足均衡接通條件,則進(jìn)行以下操作:①FPGA通過(guò)串口發(fā)送該單體均衡開(kāi)指令至均衡器;②CPU將該單體均衡遙測(cè)狀態(tài)位置1,均衡計(jì)時(shí)位置1;③CPU進(jìn)行均衡時(shí)間累加判斷操作。
如果該單體不滿(mǎn)足均衡接通條件,則對(duì)下一單體進(jìn)行均衡接通判斷,對(duì)所有在正常電壓范圍內(nèi)的單體判斷完成后,進(jìn)行操作均衡時(shí)間累加判斷。對(duì)均衡計(jì)時(shí)位判斷,如果為“1”則均衡時(shí)間累加,退出本次均衡控制程序;如果均衡計(jì)時(shí)位為“0”,直接退出本次均衡控制程序。
根據(jù)本文設(shè)計(jì)的電源管理構(gòu)架,在原先單CPU的基礎(chǔ)上增加了FPGA作為CPU的擴(kuò)展,可以方便地通過(guò)硬件描述語(yǔ)言(HDL)實(shí)現(xiàn)組合邏輯與時(shí)序邏輯,IO接口豐富,可大大提高產(chǎn)品的集成度。CPU通過(guò)對(duì)相應(yīng)地址、數(shù)據(jù)的操作,控制FPGA進(jìn)行功能實(shí)現(xiàn)。
在Modelsim中對(duì)FPGA功能進(jìn)行仿真,如圖4~圖7所示。
圖4 指令選通發(fā)送仿真波形
圖7 均衡器遙測(cè)接收功能仿真
圖4中,CPU向地址“0x2001” (OC指令發(fā)送地址)寫(xiě)入對(duì)應(yīng)的通道號(hào),F(xiàn)PGA判斷解析后,將對(duì)應(yīng)的指令驅(qū)動(dòng)芯片輸入管腳置高。圖4中寫(xiě)入的通道號(hào)為“0x00”,則驅(qū)動(dòng)芯片第一路的行、列選通置高,且持續(xù)80ms后再次置低。
圖5中,CPU向地址“0x2002” (均衡器指令發(fā)送地址)寫(xiě)入對(duì)應(yīng)的通道號(hào),F(xiàn)PGA進(jìn)行判斷解析,jh_cmd_en為均衡器指令發(fā)送使能,啟動(dòng)后同時(shí)輸出對(duì)應(yīng)的4kbps時(shí)鐘,門(mén)控和指令數(shù)據(jù)。仿真實(shí)例中CPU寫(xiě)入的指令碼為“0x01”,其對(duì)應(yīng)輸出的A組均衡器指令數(shù)據(jù)為“0x8003”,實(shí)現(xiàn)了均衡指令發(fā)送功能。
圖5 均衡器指令發(fā)送功能仿真波形
圖6中,CPU向地址“0x2003” (電平選通指令地址)寫(xiě)入對(duì)應(yīng)的通道號(hào),F(xiàn)PGA進(jìn)行判斷解析,輸出對(duì)應(yīng)選通電平。仿真實(shí)例中CPU寫(xiě)入的指令碼為“0x06”,其對(duì)應(yīng)輸出的A組充電電流3檔指令數(shù)據(jù)為“011”,共3組輸出,實(shí)現(xiàn)了電平選通功能。
圖6 電平選通功能仿真波形
圖7仿 真 實(shí) 例 中,CPU向 地 址 “0x2000”(均衡器遙測(cè)請(qǐng)求地址)寫(xiě)入對(duì)應(yīng)的數(shù)據(jù)“0xaa”,隨后FPGA會(huì)產(chǎn)生均衡器遙測(cè)請(qǐng)求標(biāo)識(shí)(yc_req_jh),F(xiàn)PGA輸出 門(mén)控 和4kbps的時(shí)鐘 送往均衡器,并按位接收均衡器傳來(lái)的遙測(cè)數(shù)據(jù)。FPGA對(duì)2臺(tái)均衡器的遙測(cè)數(shù)據(jù)時(shí)序接收,以保證數(shù)據(jù)的完整性。
為滿(mǎn)足星載電源系統(tǒng)內(nèi)資源不斷增多和控制流程日益復(fù)雜化、多樣化的需求,降低研制周期,減少產(chǎn)品的器件種類(lèi),本文提出了一種星載電源系統(tǒng)管理的設(shè)計(jì)方案,該方案基于CPU+FPGA的系統(tǒng)架構(gòu),進(jìn)一步提高了設(shè)計(jì)的通用性和可移植性,具有集成度高、研制周期短、通用性強(qiáng)、可擴(kuò)展、易于維護(hù)等優(yōu)點(diǎn),實(shí)現(xiàn)了對(duì)星載電源系統(tǒng)的自主控制,降低了對(duì)外部系統(tǒng)的依賴(lài),可滿(mǎn)足電源系統(tǒng)內(nèi)不同蓄電池的管理需求,確保了對(duì)星載蓄電池有效、靈活的管理與保護(hù)。