唐永學(xué),朱桂梅,聶瑞千
(1.北京軒宇空間科技有限公司,北京 100190;2.丹娜(天津)生物科技股份有限公司,天津 300467)
隨著近期“嫦娥”系列月球探測(cè)器、中國空間站核心艙、“天舟”系列貨運(yùn)飛船、“神舟”系列載人飛船的陸續(xù)成功發(fā)射,證明中國航天技術(shù)水平走在了國際前列。航天事業(yè)的步伐不斷的前進(jìn),對(duì)衛(wèi)星執(zhí)行任務(wù)的要求越發(fā)復(fù)雜、任務(wù)完成精度越高[1]。為了完成更為精確地姿態(tài)確定,星敏感器作為目前使用最廣泛、測(cè)量精度最高的天體敏感器,可以為飛行器提供精確的三軸姿態(tài)信息[2]。
星敏感器自身存儲(chǔ)有全天區(qū)的導(dǎo)航星圖[3],在工作過程中,通過其光學(xué)系統(tǒng)拍攝所對(duì)應(yīng)的天球上的恒星,得到觀測(cè)星圖,將觀測(cè)星圖與導(dǎo)航星圖進(jìn)行特征匹配,從而得出衛(wèi)星本體的坐標(biāo)系的姿態(tài)。姿態(tài)確定的輸入信息是姿態(tài)敏感器的測(cè)量數(shù)據(jù),輸出是衛(wèi)星的三軸姿態(tài)參數(shù)[4]。
為滿足高精度的姿態(tài)測(cè)量要求,國內(nèi)外的衛(wèi)星控制系統(tǒng)都采用高精度星敏感器進(jìn)行姿態(tài)測(cè)量。如國外的微型X 射線太陽光譜儀衛(wèi)星[5],三軸姿態(tài)控制精度為0. 004 2°、0. 011 7°和0. 006°,姿態(tài)測(cè)量精度為0. 001 83°/s、0.007 3°/s 和0.001 05°/s 。國內(nèi)的資源三號(hào)衛(wèi)星[6],控制系統(tǒng)穩(wěn)定度達(dá)到5×10-4°/s,慣性姿態(tài)測(cè)量精度達(dá)到了0.005°。電子星空模擬器是與星敏感器配套的地面測(cè)試設(shè)備。它可根據(jù)輸入的慣性姿態(tài)數(shù)據(jù),實(shí)時(shí)生成與該姿態(tài)對(duì)應(yīng)的星圖,按照接口時(shí)序向星敏感器線路盒輸出,使星敏感器線路獲得所需的電子圖像,從而達(dá)到實(shí)時(shí)動(dòng)態(tài)模擬在軌星敏工作過程。
文獻(xiàn)[7]主要介紹了高精度靜態(tài)星模擬器的組成、工作原理,完成了光學(xué)系統(tǒng)設(shè)計(jì)以及星點(diǎn)板設(shè)計(jì)。文獻(xiàn)[8]設(shè)計(jì)了一種基于長焦距高成像質(zhì)量準(zhǔn)直光學(xué)系統(tǒng)的甚高精度動(dòng)態(tài)星模擬器。文獻(xiàn)[9-10]主要設(shè)計(jì)的是基于CCD的星圖模擬器,上述文獻(xiàn)均是側(cè)重于光學(xué)系統(tǒng)的研制。文獻(xiàn)[11]設(shè)計(jì)了一款電子星空模擬器,但是主要側(cè)重于星圖生成研究,未對(duì)硬件原理做介紹。本文主要從電子星模擬器的軟硬件組成進(jìn)行了詳細(xì)的設(shè)計(jì),通過LVDS將電子圖像作為星敏感器的輸入,參與控制系統(tǒng)聯(lián)試,驗(yàn)證了星敏感器在軌工作性能。
作為應(yīng)用最為普遍和關(guān)鍵的星敏感器地面標(biāo)定設(shè)備,星模擬器的主要任務(wù)是,在實(shí)驗(yàn)室里生成靜態(tài)或者動(dòng)態(tài)星圖。按照使用用途將星模擬器分為靜態(tài)星模擬器、動(dòng)態(tài)星模擬器和電子星模擬器。
靜態(tài)星模擬器產(chǎn)生一幅固定天區(qū)的星圖,不能測(cè)試星敏感器的動(dòng)態(tài)性能,也不能參與閉路測(cè)試。靜態(tài)星模擬器主要用來考察星敏感器的光路和電路性能。
動(dòng)態(tài)星模擬器用于星敏感器動(dòng)態(tài)性能的測(cè)試和標(biāo)定,可以考察星敏感器動(dòng)態(tài)光學(xué)和電性能。動(dòng)態(tài)星模擬器需要實(shí)時(shí)更新顯示星表中的星圖,對(duì)星圖質(zhì)量具有較高要求,具有光學(xué)系統(tǒng),要求安裝精度高,成本較高[12]。
電子星模擬器產(chǎn)生星敏感器線路所需的電子圖像。電子星模擬器沒有復(fù)雜的光學(xué)系統(tǒng),電子圖像傳送至星敏感器的CPU板,供CPU板軟件處理,從而達(dá)到實(shí)時(shí)動(dòng)態(tài)模擬在軌星敏工作過程的目的,驗(yàn)證星敏感器的在軌工作性能。電子星模擬器具有成本較低,無安裝要求,精度較高的優(yōu)點(diǎn)。
電子星模擬器由控制計(jì)算機(jī)及相關(guān)連接電纜組成,其工作原理如圖1所示。電子星模擬器由高性能PC機(jī)、圖像處理板、硬件底層驅(qū)動(dòng)程序(FPGA程序、硬件驅(qū)動(dòng)程序等)和人機(jī)交互界面軟件等組成。電子星模擬器控制計(jì)算機(jī)不僅可以自動(dòng)生成星圖,也可以接收動(dòng)力學(xué)計(jì)算機(jī)的輸入指令生成星圖,因此要求電子星模擬器控制計(jì)算機(jī)與動(dòng)力學(xué)計(jì)算機(jī)間的通訊協(xié)議應(yīng)簡單、直接。
圖1 電子星模擬器系統(tǒng)組成框圖
地面動(dòng)力學(xué)按照10 ms仿真周期計(jì)算出慣性四元數(shù),并通過以太網(wǎng)將四元數(shù)發(fā)送給電子星模擬器,電子星模擬器根據(jù)輸入的四元數(shù),查找星圖表,實(shí)時(shí)生成與該姿態(tài)對(duì)應(yīng)的星圖,并將該星圖轉(zhuǎn)換為電子圖像通過LVDS電纜輸出。星敏的采樣周期為200 ms,可見電子星模擬器輸出的姿態(tài)頻率遠(yuǎn)高于星敏采樣頻率,同時(shí)電子星模擬器可設(shè)置不同工況下電子星模擬器產(chǎn)生星圖[13-14]。電子星模擬器圖像分辨率支持1 024*1 024;圖像位寬支持12 bit;能夠同時(shí)完成幀頻10 Hz的圖像上傳及采集。
電子星模擬器包括測(cè)試計(jì)算機(jī)、LVDS圖像卡和對(duì)應(yīng)測(cè)試電纜組成。其中,電子星模擬器接受指令并按照指令生成圖像,通過LVDS圖像卡提供給星敏感器,也可以通過LVDS圖像卡接收來自星敏感器發(fā)來的圖像并存儲(chǔ)。電子星模擬器總體結(jié)構(gòu)如圖2所示。
圖2 電子星模擬器總體結(jié)構(gòu)
電子星模擬器具體功能要求如下:
1)采用PC機(jī)擴(kuò)展卡的形式,可選用PCI/PCIe接口擴(kuò)展卡;
2)圖像為1 024×1 024×12 bit;
3)支持同時(shí)激勵(lì)2臺(tái)星敏感器;
4)能夠同時(shí)完成幀頻10 Hz的圖像上傳及采集;
5)要求板卡支持最大帶寬同時(shí)讀寫不低于20 Mbps;
6)要求板卡支持LVDS發(fā)送與接收;
圖像處理卡主要實(shí)現(xiàn)LVDS、LVTTL及其RS422差分電平接口,通過PCIe 總線與PC機(jī)通訊,實(shí)現(xiàn)與星敏感器接口時(shí)序,以及圖像的上傳與下載功能。具體性能如下:PCIe板卡尺寸167.65 * 106.65 mm;符合PCIe V1.1規(guī)范,支持PCIe 1 Lane接口;支持DMA讀寫功能,50 MHz系統(tǒng)時(shí)鐘實(shí)測(cè)最大讀帶寬130 Mb/s,寫帶寬84 Mb/s,可支持66 MHz系統(tǒng)時(shí)鐘,最大讀寫帶寬可達(dá)150 Mb/s;板載1 GB DDR2顆粒,用作FIFO緩存;采用FPGA芯片,可根據(jù)實(shí)際需要實(shí)現(xiàn)特定時(shí)序接口;采用高速電磁隔離,最大傳輸延遲7 ns;最大可承受脈沖電壓6 kV;最大支持20/20 LVDS輸入/輸出接口,符合IEEE 1 596.3 SCI /TIA/EIA-644規(guī)范;支持 4/4 路3.3 V LVTTL輸入/輸出接口。
此板卡使用FPGA芯片,連接前端接口,控制后端輸出,可靈活配置輸出接口時(shí)序,增加了板卡通用性以及靈活性。鑒于板卡帶寬較高,使用SDRAM緩存,防止圖像傳輸過程發(fā)生帶寬受限或者數(shù)據(jù)溢出現(xiàn)象。板卡具體原理如圖3所示。
圖3 板卡原理框圖
由于電子星模擬器的實(shí)時(shí)性需求較高,LVDS數(shù)據(jù)搬移時(shí)的邏輯時(shí)序要求較高,F(xiàn)PGA核心電路主要完成設(shè)備硬件時(shí)序和相關(guān)的數(shù)據(jù)控制處理。設(shè)計(jì)中采用Altera公司的CycloneIII系列的EP3C40F484C8N,該芯片具有39 600個(gè)邏輯單元,高達(dá)1 134 Kb RAM資源,可以滿足電子星模擬器信號(hào)控制和圖像處理等需求,集成的存儲(chǔ)器控制模塊速率可達(dá)525 Mb/s,可以用來外接高速大容量DDR2 SDRAM做緩存。
FPGA在本次設(shè)計(jì)中主要作為控制芯片使用。它的具體作用有以下幾個(gè):
1)控制LVDS芯片的工作;
2)利用外部晶振和內(nèi)部DLL(延遲鎖相環(huán))為內(nèi)部電路和LVDS驅(qū)動(dòng)接收芯片提供精確的時(shí)鐘信號(hào);
3)控制DDR2 SDRAM模塊及相應(yīng)二選一數(shù)據(jù)流模塊;
4)PCIe總線Local端總線操作模塊。
2.1.1 PCIe接口設(shè)計(jì)
本設(shè)計(jì)中與FPGA通訊選用PCIe-Local bus,采用PCIe x1接口,在滿足帶寬要求的基礎(chǔ)上,具有更好的適用性。PCIe接口采用PEX8311[15],性能如下:PCIe-Local bus,支持2.5 GHz PCIe x1接口,符合PCIe V1.0規(guī)范;支持32位 C/J模式Local bus,最大支持66 MHz時(shí)鐘;支持SPI接口EEPROM配置寄存器(PCIe端和Local端);1.5 V、2.5 V供電電壓,3.3 V IO電壓;PBGA 337封裝,21 mm*21 mm。根據(jù)PCIe V1.0規(guī)范,PCIe x1可支持最大傳輸速率為2.5 Gbps,由于其8/10編碼機(jī)制,有效帶寬最大為200 Mbps(2 Gbps)。根據(jù)PLX公司給出的實(shí)測(cè)數(shù)據(jù)PEX8311實(shí)際傳輸速率為:讀速度大于 160 Mbps,寫速度大于 150 Mbps。此數(shù)據(jù)完全能滿足板卡對(duì)于數(shù)據(jù)傳輸帶寬的要求。
PCIe主要有以下信號(hào):TX+/- 、RX+/- 、CLK+/- 、RST 三對(duì)差分信號(hào)和一個(gè)單端的復(fù)位信號(hào)。發(fā)送信號(hào)連接到PEX8311的接收端,接收信號(hào)連接到PEX8311的發(fā)送端,CLK信號(hào)連接到PEX8311的時(shí)鐘信號(hào)CLK,RST 信號(hào)連接到PEX8311的復(fù)位信號(hào)。接口電路如圖4所示。
圖4 PCIe接口電路
PEX8311外接兩個(gè)EEPROM,一個(gè)用于配置PCIe初始化寄存器,另外一個(gè)用于配置Local bus。可根據(jù)實(shí)際需要對(duì)PCIe/Local bus進(jìn)行配置。使用ATMEL公司的64 Kb SPI接口EEPROM(AT25640)用于配置PCIe寄存器信息,使用Microchip公司2 Kb EEPROM(93LC56)配置Local端寄存器信息。
2.1.2 LVDS接口設(shè)計(jì)
采用TI公司的DS90LV031/DS90LV032作為LVDS接口芯片,可以兼容星上LVDS接口。接口電路如圖5所示。
圖5 LVDS接口電路圖
具體性能如下:大于400 Mbps(200 MHz)轉(zhuǎn)換速率,4通道高速數(shù)字隔離器件;0.1 ns的典型差分延遲;2 ns最大傳輸延遲;3.3 V電源供電;±350 mV差分信號(hào);低功耗(3 V工作時(shí)13.2 mW靜態(tài)功耗);可與外部5 V LVDS芯片交互;兼容IEEE 1596.3 SCI LVDS標(biāo)準(zhǔn);兼容TIA/EIA-644 LVDS標(biāo)準(zhǔn)。
2.1.3 系統(tǒng)時(shí)鐘設(shè)計(jì)
時(shí)鐘部分主要是PCIe時(shí)鐘、FPGA時(shí)鐘以及Local bus時(shí)鐘。PCIe時(shí)鐘由PCIe插槽提供。FPGA與Local bus使用50 MHz時(shí)鐘,由50 MHz晶振經(jīng)過時(shí)鐘buffer CY2305SC輸出。
電子星模擬器主機(jī)負(fù)責(zé)人機(jī)交互、圖像生成、圖像采集、存儲(chǔ)顯示等,是測(cè)試軟件運(yùn)行的載體以及LVDS圖像卡、串口通信卡的安裝平臺(tái)。為了能更好的進(jìn)行圖像處理,在計(jì)算機(jī)CPU選擇時(shí)著重考慮處理速度,目前選擇i7系列CPU,主頻為3.4 GHz,四核八線程,以滿足圖像處理速度; LVDS圖像處理卡為PCIe接口,因此在選擇主板時(shí)應(yīng)選擇有PCIe的主板;選擇1T以上存儲(chǔ)空間的硬盤。根據(jù)上述要求,選擇惠普的商用電腦ProDesk 480G6。
FPGA程序在Altera的Quartus II環(huán)境下開發(fā)[16-17],發(fā)送模塊FPGA實(shí)現(xiàn)如圖6所示。發(fā)送圖像時(shí),上位機(jī)通過PEX8311以50M的時(shí)鐘向異步fifo_fi連續(xù)寫入32 bit的圖像數(shù)據(jù)。
圖6 發(fā)送模塊FPGA實(shí)現(xiàn)框圖
fifo_fi為64bit位寬,當(dāng)fifo_fi里面的使用地址大于等于64并且接收到DDR2的local_ready信號(hào)時(shí),突發(fā)地向DDR2內(nèi)寫入64個(gè)64bit的數(shù)據(jù),完成后DDR2內(nèi)寫數(shù)據(jù)地址加64(dr_wr_adr += 64);
fifo_fo為64bit位寬,當(dāng)fifo_fo里面的使用地址小于896,并且接收到DDR2的local_ready信號(hào),以及DDR2內(nèi)寫數(shù)據(jù)地址大于讀數(shù)據(jù)地址(dr_adr_dt = dr_wr_adr - dr_rd_adr)64,3個(gè)條件同時(shí)滿足時(shí),突發(fā)地從DDR2內(nèi)讀64個(gè)64bit的數(shù)據(jù)到fifo_fo中,完成后DDR2內(nèi)讀地址加64(dr_rd_adr += 64)。
異步fifo_fo的輸出位寬為32bit,以50M時(shí)鐘將32bit的圖像數(shù)據(jù)輸入給video_send模塊,該模塊在時(shí)鐘上升沿發(fā)送數(shù)據(jù)。
接收模塊的FPGA實(shí)現(xiàn)如圖7所示,圖像數(shù)據(jù)經(jīng)過LVDS接收,接收?qǐng)D像時(shí)鐘的下降沿取數(shù),將接收到的數(shù)據(jù)相應(yīng)的存入32bit數(shù)據(jù)的低16bit和高16bit,接收完一個(gè)32bit數(shù)據(jù)即產(chǎn)生一個(gè)寫DDR2_FIFO請(qǐng)求,將數(shù)據(jù)存入fifo;上位機(jī)DMA讀請(qǐng)求即fifo的讀請(qǐng)求,將數(shù)據(jù)讀出到接收緩沖區(qū),然后軟件進(jìn)行顯示及保存圖像操作。
圖7 接收模塊FPGA實(shí)現(xiàn)框圖
電子星模擬器軟件采用Microsoft Visual Studio 2010編寫,程序語言為C#以及VC++,軟件運(yùn)行在Windows 7操作系統(tǒng)下;使用NI VISA來驅(qū)動(dòng)LVDS圖像處理卡。人機(jī)交互界面、圖像顯示模塊、動(dòng)力學(xué)參數(shù)模塊均是使用C#開發(fā)。人機(jī)交互界面使用了WPF界面開發(fā)以及Prism框架。板卡操作模塊、圖像生成模塊、板卡驅(qū)動(dòng)模塊是使用C/C++開發(fā)。這樣的方案考慮了板卡操作的性能優(yōu)化,以及界面開發(fā)的便捷性。C#調(diào)用C/C++動(dòng)態(tài)庫的接口,采用調(diào)用方清堆棧的方式進(jìn)行[18-20]。
電子星模擬器軟件與動(dòng)力學(xué)地面設(shè)備傳遞動(dòng)力學(xué)參數(shù)使用以太網(wǎng)傳輸模式。
軟件的功能模塊主要包括:人機(jī)交互、板卡操作模塊、圖像生成、圖像發(fā)送、圖像采集、動(dòng)力學(xué)參數(shù)接收/生成及圖像顯示等功能。
1)人機(jī)交互模塊?;陟`活配置的軟件框架實(shí)現(xiàn)基本的按鈕控件、編輯框控件、主界面的顯示控件、開始/停止圖像數(shù)據(jù)輸出、開始/停止圖像數(shù)據(jù)采集、動(dòng)力學(xué)參數(shù)顯示等。
2)板卡操作模塊。主要實(shí)現(xiàn)功能是:初始化LVDS圖像板卡發(fā)送功能、采集功能以及中斷功能;維護(hù)板卡操作線程;在板卡操作線程中將模擬星圖數(shù)據(jù)通過LVDS板卡發(fā)送圖像數(shù)據(jù),并通過板卡采集圖像數(shù)據(jù)。此模塊使用VC++開發(fā)接口,以便于C#調(diào)用為原則進(jìn)行設(shè)計(jì);調(diào)用圖像生成模塊和板卡驅(qū)動(dòng)模塊;調(diào)用NI VISA接口來操作板卡。
3)圖像生成模塊。主要功能是根據(jù)動(dòng)力學(xué)參數(shù)以及其他系數(shù)(星點(diǎn)參數(shù)、標(biāo)定系數(shù)等),調(diào)用星圖庫生成模擬星圖數(shù)據(jù)。星圖庫采用北京控制工程研究所的星圖庫,專門為小型長壽命星敏電子星模模擬器提供,目前提供的庫生成的星圖為1024×1024×12 bit。
4)動(dòng)力學(xué)參數(shù)接收/生成模塊。根據(jù)界面用戶選擇初始化相應(yīng)的串口或網(wǎng)口,根據(jù)界面用戶選擇開啟接收線程(從串口或網(wǎng)絡(luò)接收動(dòng)力學(xué)參數(shù))或生成線程(本地生成動(dòng)力學(xué)參數(shù));維護(hù)動(dòng)力學(xué)參數(shù)的實(shí)時(shí)性。使用C#開發(fā);生成動(dòng)力學(xué)參數(shù)主要是四元數(shù)根據(jù)當(dāng)前設(shè)定的角速度進(jìn)行積分、計(jì)算。
5)圖像顯示模塊。主要實(shí)現(xiàn)功能是:將RAW數(shù)據(jù)格式轉(zhuǎn)換BMP格式;BMP格式數(shù)據(jù)到顯示窗口的轉(zhuǎn)換;定時(shí)圖像更新;圖像分析,放大縮小,灰度值顯示。使用C#開發(fā),窗口位圖按照BMP格式數(shù)據(jù)輸出。各軟件模塊的關(guān)系如圖8所示。
圖8 軟件模塊關(guān)系
根據(jù)指標(biāo)要求,電子星模擬器能夠完成10 Hz的圖像上傳及采集要求,即電子星模擬器接收到動(dòng)力學(xué)計(jì)算機(jī)的四元數(shù)后,將生成的星圖上傳給星敏感器的時(shí)間≤100 ms。影響響應(yīng)時(shí)間的因素主要有:星圖生成時(shí)間,寫DMA時(shí)間,Windows線程調(diào)度引起的線程等待。在2通道發(fā)送、采集均開啟的情況下,通過48小時(shí)拷機(jī)實(shí)驗(yàn),利用軟件輸出的數(shù)據(jù)文件進(jìn)行統(tǒng)計(jì):星圖生成時(shí)間均小于5 ms;通過PCIe總線通過DMA寫2 MB數(shù)據(jù)時(shí)間約為23.8 ms;Windows線程調(diào)度時(shí)間小于75 ms。故滿足系統(tǒng)設(shè)計(jì)指標(biāo)。
在某衛(wèi)星控制分系統(tǒng)地面測(cè)試中,將電子星模擬器接入閉環(huán)測(cè)試回路,在測(cè)試過程中,將同一時(shí)間段的地面動(dòng)力學(xué)輸出給星敏的理論數(shù)據(jù)和星敏采集到的姿態(tài)信息數(shù)據(jù)進(jìn)行分析,經(jīng)過數(shù)據(jù)分析,理論值和采集值的最大誤差為0.000 7,小于0.07%,此誤差對(duì)于閉環(huán)測(cè)試系統(tǒng)姿態(tài)確定的影響可忽略不計(jì)。電子星模擬器性能滿足要求,證明了電子星模擬器的實(shí)用性和有效性。
本文設(shè)計(jì)完成了電子星模擬器的軟硬件,此電子星模擬器在某衛(wèi)星控制分系統(tǒng)地面測(cè)試中成功的進(jìn)行了閉環(huán)試驗(yàn)。為更充分的驗(yàn)證衛(wèi)星控制系統(tǒng)方案的可行性,以及確定姿態(tài)的工作情況,將電子星模擬器應(yīng)用于衛(wèi)星控制分系統(tǒng)的閉環(huán)測(cè)試中,在地面模擬了星敏在軌識(shí)別的星圖,測(cè)試結(jié)果表明電子星模擬器動(dòng)態(tài)響應(yīng)迅速、工作穩(wěn)定、誤差小,該電子星模擬器具有通用性,可廣泛應(yīng)用于控制系統(tǒng)閉環(huán)測(cè)試中。