設(shè)計摘要:
空間飛行 器的電子系 統(tǒng)設(shè)計面 臨著一些 問題。首先 ,太空飛行器執(zhí)行任 務(wù)時會經(jīng)歷復(fù) 雜的空間環(huán) 境,包括 溫度數(shù)百度 的巨變, 很強的電磁 干擾和宇 宙高能粒子輻射 等。這對可 靠性提出 了很高的要 求。第二 ,深空探測 的航天器 的目標離地通常 較遠,飛行 時間越來 越長,甚至 長達數(shù)年 。迫切需要 航天器的 硬件系統(tǒng)能夠升級更新,實現(xiàn)功能擴展。第三,空間電子系統(tǒng)本身復(fù)雜 度越來越高,當 系統(tǒng)出現(xiàn)故障時,需要進行自主修復(fù)功能。
我們計劃采用 Xilinx 的 Virtex FPGA 實現(xiàn)一個能解決以 上問題的空間電子系 統(tǒng)。利用 部分可重配 置特性實 現(xiàn)系統(tǒng)的遠 程更新, 并利用可重 構(gòu)計算加 上加速 航天器姿 態(tài)確定,姿 態(tài)軌道控 制等算法的 運算。當 系統(tǒng)受到高 能粒子轟 擊,發(fā)生單粒子事件翻轉(zhuǎn)故障時,利用 FPGA 的配置回讀特性實現(xiàn)故 障檢測與自我修復(fù)。
系統(tǒng)原理及技術(shù)特點
2.1 系統(tǒng)原理
在本項目中,我 們以空間飛行器導(dǎo)航、制導(dǎo)與控制(GNC)系統(tǒng) 為具體實現(xiàn)對象,來設(shè)計 可自修復(fù)空 間電子系 統(tǒng)。導(dǎo)航、 制導(dǎo)與控 制系統(tǒng)在飛 行器中的 作用和工作原理如下圖所示。

圖表 1 導(dǎo)航制導(dǎo)與控制系統(tǒng)工作原理
首先,空間飛行器的 GNC 系統(tǒng)從地面站或?qū)Ш剿惴ǖ玫綀?zhí) 行本次任務(wù)的期望位置與姿態(tài)信息。接著,GNC 系統(tǒng)通過飛行器上轉(zhuǎn)載的敏感 元件獲得飛行器本體目前真 實的軌道位 置與姿態(tài) 信息。敏感 元件包括 陀螺、加速 度計、星 敏感器、紅外地平敏感 區(qū)等。這些信號 經(jīng)過 AD 采用數(shù)字化、數(shù)字濾波、信號調(diào)理等處理后,經(jīng) 過制導(dǎo)和控 制算法解 算,得到飛 行器推力 器控制信號 。由控制 信號驅(qū)動推力器 的開關(guān)為飛 行器的航 行或姿態(tài)調(diào) 整提供合 適的力或力 矩。當這 些力和力矩作用 于空間飛行 器本體上 時,其軌道 位置和姿 態(tài)會發(fā)生改 變。而位 置和姿態(tài)的改變 立即被敏感 元件測量 到,從形成 一個閉環(huán) 的控制系統(tǒng) ,到 達期望的控制結(jié)果。

圖表 2 GNC 系統(tǒng)硬件實現(xiàn)組件框圖
2.2 可重構(gòu)加速計算
在空間飛 行器不同的 時間階段 要執(zhí)行不 同的任務(wù)算 法。比如 ,當飛行器 剛剛到達預(yù)定 軌道時,首 先要執(zhí)行 姿態(tài)確定任 務(wù),主要 算法有擴展 卡爾曼濾 波算法等。之后 要進行姿態(tài) 調(diào)整控制 ,執(zhí)行姿態(tài) 控制算法 。再運行軌 道導(dǎo)航制 導(dǎo)算法等等。可以看出在不 同的任務(wù)階段,執(zhí)行的算 法是不同的。對此,我們在 FPGA內(nèi)部規(guī)劃了 2 塊獨立的部分可重配置區(qū)域,在不同的任務(wù)階段, 對其配置合適的算法硬件加速模塊,從而大大提供系統(tǒng)的運 算性能。由于部分重配置時,F(xiàn)PGA的其他區(qū)域 任然正常的 工作運行 ,從而可以 在不同任 務(wù)階段平滑 的切換硬 件算法模塊,而不會對整個系統(tǒng)的運行造成中斷。FPGA 內(nèi)部規(guī)劃架構(gòu)圖如 下。

圖表 3 FPGA 片上系統(tǒng)組件架構(gòu)圖
部分重配置設(shè)計流程
第一步:用 HDL 描述設(shè)計并綜合計可以用 VHDL 或 Verilog 語言描述,任何一種 ISE 支持的 綜合工具都可 以用來綜 合。在綜合 時,必須 把其設(shè)置為 在不同的 設(shè)計層次間 沒有優(yōu)化 。另外 應(yīng)該禁止 I/O 插入以防止 I/O buffers 插入到低層模塊中。每個 部分重配置區(qū)域的模塊都必須分別綜合。
第二步:設(shè)置設(shè)計的約束
為布局布線設(shè)置約束。除了時序約束外( PERIOD,etc)還必須設(shè)置 AREAGROUP, AREA GROUP RANGE, MODE 和 LOC 約束。
第三步:實現(xiàn)非部分重配置區(qū)域的設(shè)計
第四步:時序/布局分析
第五步:實現(xiàn)基礎(chǔ)設(shè)計
第六步:實現(xiàn)各個重配置模塊
第七步:融合頂層,基礎(chǔ)及部分配置模塊設(shè)計,并生成最 終的配置 bit 文件在兩個部 分重配置區(qū) 域中,我 們將在不 同的任務(wù)階 段根據(jù)其 算法特點配 置不同的算法 硬件加速模 塊。在航 天器姿態(tài)軌 道控制系 統(tǒng)中要實現(xiàn) 對系統(tǒng)參 數(shù)的估計,最常用的技術(shù) 就是基于擴展卡爾曼濾波(EKF)技術(shù)的姿態(tài)確定算法。該方法 除了可以 估計航天器 的姿態(tài)參 數(shù)外,還可 以估計矢 量觀測中的 一些不確 定性參 數(shù)。因此,該方法能夠獲得很高的姿態(tài)確定精 度。

圖表 4 卡爾曼濾波算法流程
其中,姿態(tài)四元 數(shù)q=[q13 q4]T=[q1 q2 q3 q4],其 中q13 為矢量部分,q4 為標 量部分。u(t)為三個陀螺的測量輸出值 ,ω(t)為沿三個陀螺輸入軸的真實姿態(tài)角 速率,b(t)為三個 陀螺的常值漂移,d(t)為三個陀螺的相關(guān)漂移,n1 為三個陀螺 的測量白噪聲,且n1 的三個分量服從N(0,σgi ),(i=x,y,z)。我 們將把此算法用HDL語言編制 成硬件并行 執(zhí)行模塊。當航 天器當前任 務(wù)階段需要執(zhí) 行此算法時,將其加載入部分重構(gòu)模塊。為此,我 們將在航天 器姿態(tài)確 定任務(wù)階 段時,在其 中一個可 重配置區(qū)域 載入其算法硬件加速模塊。其工作流程圖如下:

圖表 5 算法部分重配置工作流程圖
2.3 硬件故障檢測與修復(fù)
在太空中 惡劣的環(huán)境 下,電子 系統(tǒng)在高 能帶電粒子 的轟擊下 很能會發(fā)生 狀態(tài)翻轉(zhuǎn),導(dǎo) 致功能出錯 ,甚至發(fā) 生致命的控 制錯誤。 為此,我們 設(shè)計模塊 來回讀 FPGA 中的配置數(shù)據(jù) 并進行 CRC 校驗,發(fā)現(xiàn)數(shù)據(jù)錯誤后重新配置出錯區(qū)域 ,及 時修復(fù)系統(tǒng)。
Virtex 系列 FPGA 系列包含了一個叫做回讀的特性。它最 初是設(shè)計來方便芯 片生產(chǎn)時的測試。它提供了一種非侵入式的 讀取 FPGA 中的每 個鎖存器和配置 存儲器狀態(tài)的方法。要利用這個特性,需要在 設(shè)計中例化回讀組件。這個功能實在后臺運行的,不會影響 FPGA 的運行性能。FPGA 的設(shè)計可以 全速運行而同時運行回讀功能。
在所有的讀出的比特之上會產(chǎn)生一個 CRC 校驗和,并把這個 校驗和插入到回讀序列流 的末尾。這 個校驗和 通過和當前 配置下期 望的校驗和 比對。如 果不匹配,一個 SEU 很可能就發(fā)生了。
我們將設(shè)計控制邏輯來運行和獲取回讀。 這個過程需要執(zhí)行下面的步驟:
1,開始回讀:把 RT 置高并保持住直 到回讀結(jié)束。
2,從回讀的開始到結(jié)束都不能打斷 CLOCK。CLOCK 信號必須 在 1Mhz
和 2Mhz 之間。
3,把回讀數(shù)據(jù)輸入一個 6 位的解碼器,以便 尋找數(shù)據(jù)頭《111110》。
4,當字頭被找到時,開始計數(shù)時鐘周期,當達到前面表 格所示的計數(shù)值時,
接下來就是一個 0,接著就是 11bit 的 CRC。
5,把這個 CRC 與期望的 CRC 比對。

圖表 6 故障檢測與修復(fù)流程圖
電子發(fā)燒友App










評論