設(shè)計(jì)摘要:
空間飛行 器的電子系 統(tǒng)設(shè)計(jì)面 臨著一些 問題。首先 ,太空飛行器執(zhí)行任 務(wù)時(shí)會(huì)經(jīng)歷復(fù) 雜的空間環(huán) 境,包括 溫度數(shù)百度 的巨變, 很強(qiáng)的電磁 干擾和宇 宙高能粒子輻射 等。這對(duì)可 靠性提出 了很高的要 求。第二 ,深空探測(cè) 的航天器 的目標(biāo)離地通常 較遠(yuǎn),飛行 時(shí)間越來 越長,甚至 長達(dá)數(shù)年 。迫切需要 航天器的 硬件系統(tǒng)能夠升級(jí)更新,實(shí)現(xiàn)功能擴(kuò)展。第三,空間電子系統(tǒng)本身復(fù)雜 度越來越高,當(dāng) 系統(tǒng)出現(xiàn)故障時(shí),需要進(jìn)行自主修復(fù)功能。
我們計(jì)劃采用 Xilinx 的 Virtex FPGA 實(shí)現(xiàn)一個(gè)能解決以 上問題的空間電子系 統(tǒng)。利用 部分可重配 置特性實(shí) 現(xiàn)系統(tǒng)的遠(yuǎn) 程更新, 并利用可重 構(gòu)計(jì)算加 上加速 航天器姿 態(tài)確定,姿 態(tài)軌道控 制等算法的 運(yùn)算。當(dāng) 系統(tǒng)受到高 能粒子轟 擊,發(fā)生單粒子事件翻轉(zhuǎn)故障時(shí),利用 FPGA 的配置回讀特性實(shí)現(xiàn)故 障檢測(cè)與自我修復(fù)。
系統(tǒng)原理及技術(shù)特點(diǎn)
2.1 系統(tǒng)原理
在本項(xiàng)目中,我 們以空間飛行器導(dǎo)航、制導(dǎo)與控制(GNC)系統(tǒng) 為具體實(shí)現(xiàn)對(duì)象,來設(shè)計(jì) 可自修復(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)載的敏感 元件獲得飛行器本體目前真 實(shí)的軌道位 置與姿態(tài) 信息。敏感 元件包括 陀螺、加速 度計(jì)、星 敏感器、紅外地平敏感 區(qū)等。這些信號(hào) 經(jīng)過 AD 采用數(shù)字化、數(shù)字濾波、信號(hào)調(diào)理等處理后,經(jīng) 過制導(dǎo)和控 制算法解 算,得到飛 行器推力 器控制信號(hào) 。由控制 信號(hào)驅(qū)動(dòng)推力器 的開關(guān)為飛 行器的航 行或姿態(tài)調(diào) 整提供合 適的力或力 矩。當(dāng)這 些力和力矩作用 于空間飛行 器本體上 時(shí),其軌道 位置和姿 態(tài)會(huì)發(fā)生改 變。而位 置和姿態(tài)的改變 立即被敏感 元件測(cè)量 到,從形成 一個(gè)閉環(huán) 的控制系統(tǒng) ,到 達(dá)期望的控制結(jié)果。

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

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

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

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

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










評(píng)論