鐵玉峰 吉小軍 吳建銘 練 達(dá) 王李寧 王嘉靖 胡雄超
(1.上海交通大學(xué) 電子信息與電氣工程學(xué)院儀器科學(xué)與工程系,上海 200240;2.上海航天控制技術(shù)研究所,上海 201109)
系統(tǒng)通過同步測(cè)量采集三個(gè)傳感器的加速度信號(hào)并利用計(jì)算機(jī)解算得到完整的衛(wèi)星的振動(dòng)狀態(tài)。
根據(jù)測(cè)控和處理需求,三個(gè)角加速度傳感器由三個(gè)支持觸發(fā)控制的ADC同步采集,根據(jù)傳感器性能指標(biāo)采樣率設(shè)置為2kHz[7]。系統(tǒng)以FPGA為控制中心,進(jìn)行ADC同步采集控制。1553B總線為星上計(jì)算機(jī)與所有設(shè)備的接口,連接眾多子系統(tǒng)設(shè)備,以2kHz采樣率采集的數(shù)據(jù)不能實(shí)時(shí)通過總線發(fā)送到上位計(jì)算機(jī),需要先緩存在本地,根據(jù)星載計(jì)算機(jī)的指令,每隔一定時(shí)間間隔將緩存的數(shù)據(jù)打包通過1553B接口發(fā)送給上位機(jī)。為提高通信效率,減少對(duì)總線的占用時(shí)間,設(shè)計(jì)中利用FPGA控制兩片SRAM作為本地的數(shù)據(jù)緩存空間,且數(shù)據(jù)緩存需采用冗余模式設(shè)計(jì),以保證數(shù)據(jù)的安全可靠。1553B總線接口使用BU61580總線橋接芯片進(jìn)行設(shè)計(jì)開發(fā),采用適用于大量數(shù)據(jù)傳輸?shù)难h(huán)緩沖模式進(jìn)行采集數(shù)據(jù)的上傳。設(shè)計(jì)的總體方案如圖1所示。
圖1 系統(tǒng)實(shí)施的方案框圖
系統(tǒng)設(shè)計(jì)中AD同步采集由FPGA控制,根據(jù)采樣率和帶寬要求,需要ADC具備高采樣率,支持自校準(zhǔn)功能,同時(shí)具備同步采樣控制功能,因此ADC芯片采用ADI公司電容陣列逐次比較型AD677TD/833,是基于開關(guān)電容/電荷再分配架構(gòu),使其轉(zhuǎn)換速率最高達(dá)100kSPS,16位串行輸出,片內(nèi)自動(dòng)校準(zhǔn)功能可對(duì)內(nèi)部非線性進(jìn)行數(shù)字校正,積分非線性(INL)±1LSB,模擬電源與數(shù)字電源分離,且提供獨(dú)立的模擬地與數(shù)字地,以減少數(shù)字串?dāng)_。ADC的轉(zhuǎn)換結(jié)果暫存于SRAM,根據(jù)3通道數(shù)據(jù)+狀態(tài)信息的需求,每個(gè)采樣周期的數(shù)據(jù)為8×16bit,以采樣率2 kHz,讀數(shù)周期0.1s來計(jì)算,每周數(shù)周期內(nèi)讀取200組數(shù)據(jù),緩存空間的最小需求為8×200=1600個(gè)地址,即緩存容量需求為1.6k×16bit,基于滿足空間環(huán)境工作的性能要求,以及后續(xù)冗余設(shè)計(jì)的需求,SRAM采用3DPLUS公司3D SR16M16CS4512型內(nèi)存,高速高集成度的SRAM,單5V供電,接口兼容TTL電平,在靜態(tài)運(yùn)行時(shí)無需時(shí)鐘或刷新支持三態(tài)輸出。數(shù)據(jù)在接到上位機(jī)指令后將前一通信周期存儲(chǔ)的數(shù)據(jù)通過總線傳送給上位機(jī),在這期間要保證數(shù)據(jù)的連續(xù)與可靠。由于采用單端口SRAM,為保證數(shù)據(jù)快速讀/寫的連續(xù)性,采用兩片SRAM通過乒乓操作實(shí)現(xiàn)存儲(chǔ)的切換。
乒乓操作作為一種常用的數(shù)據(jù)處理方法[8],在SRAM接口處設(shè)計(jì)一個(gè)數(shù)據(jù)寫入選擇器和一個(gè)數(shù)據(jù)讀取選擇器;在第一個(gè)周期,采樣數(shù)據(jù)存儲(chǔ)到RAM1;在第二個(gè)周期開始時(shí),切換選擇器,采樣數(shù)據(jù)存儲(chǔ)到RAM2,從RAM1讀取第一個(gè)周期的數(shù)據(jù)輸出;在第三個(gè)周期開始時(shí),切換選擇器,采樣數(shù)據(jù)存儲(chǔ)到RAM1,從RAM2讀取數(shù)第二個(gè)周期的數(shù)據(jù)輸出;連續(xù)循環(huán)下去。設(shè)計(jì)操作的核心是通過寫入選擇器與讀取選擇器,根據(jù)設(shè)定的工作周期切換,將數(shù)據(jù)進(jìn)行緩存后,通過總線傳送給上位機(jī)進(jìn)行處理,如圖2所示。
圖2 乒乓操作示意圖
系統(tǒng)服務(wù)于在軌衛(wèi)星,運(yùn)行時(shí)會(huì)受到宇宙射線、地球輻射帶、太陽風(fēng)和極光輻射等,微電子器件在受到輻射后會(huì)產(chǎn)生多種輻射效應(yīng)。對(duì)電子系統(tǒng)而言,單粒子翻轉(zhuǎn)效應(yīng)(Single Event Upset,SEU)對(duì)SRAM影響最大[9]。由于緩存采用SRAM,受單粒子翻轉(zhuǎn)效應(yīng)SEU的影響最大;常規(guī)基于SRAM架構(gòu)的現(xiàn)場(chǎng)可編程門陣列(Field Programmable Gate Array,F(xiàn)PGA)對(duì)于帶電粒子輻射也特別敏感,因此需要進(jìn)行抗輻射的針對(duì)性設(shè)計(jì)。一般有效的抗SEU的方法大致可以分為三種:電荷補(bǔ)充技術(shù)、EDAC(Error Detection And Correction,錯(cuò)誤檢測(cè)與糾正)技術(shù)、冗余技術(shù),電荷補(bǔ)充技術(shù)應(yīng)用相對(duì)較少,主要是采用EDAC技術(shù)和冗余技術(shù)。
EDAC技術(shù)[10],寫入數(shù)據(jù)前在原始數(shù)據(jù)中按照一定的規(guī)則加入不同的冗余碼,再存儲(chǔ)到RAM內(nèi),讀取數(shù)據(jù)的同時(shí)識(shí)別多余的冗余碼并加以邏輯判斷,以此發(fā)現(xiàn)數(shù)據(jù)錯(cuò)誤并加以糾正。EDAC有多種編碼方式,但對(duì)錯(cuò)誤的糾正能力不足。例如漢明碼具備糾正一個(gè)碼字中的任何一位錯(cuò)誤的能力,也能檢測(cè)出兩位錯(cuò)誤,但是錯(cuò)誤位數(shù)大于兩位時(shí),則不具有檢錯(cuò)和糾錯(cuò)能力。
探索基于微課的計(jì)算機(jī)課程實(shí)踐教學(xué)模式,規(guī)范和加強(qiáng)實(shí)踐教學(xué)管理,提高實(shí)踐教學(xué)質(zhì)量。著力培養(yǎng)勤于實(shí)踐探索、善于反思總結(jié)、樂于奉獻(xiàn)的科研型實(shí)踐學(xué)生,從而提高整體實(shí)踐教學(xué)水平,推進(jìn)學(xué)校的計(jì)算機(jī)課程實(shí)踐教學(xué)改革。
針對(duì)此問題,SRAM的抗SEU采用TMR(Triple Modular Redundancy,三模冗余)技術(shù)[11],對(duì)存入SRAM的數(shù)據(jù)進(jìn)行存三取二冗余。這是常見的冗余技術(shù),將所需要容錯(cuò)的硬件單元增到三倍并將各個(gè)單元的輸出連接至一個(gè)表決器上,將表決器選擇全部的硬件單元中大多數(shù)的輸出值當(dāng)做整體的輸出值。TMR技術(shù)是一個(gè)使用很廣泛的SEU容錯(cuò)技術(shù),其能大幅提高SRAM和FPGA在SEU影響下的可靠性。同時(shí),針對(duì)不同可靠性的要求還可以擴(kuò)充為五模冗余、七模冗余等多模冗余方法,且其可靠性正比于冗余模數(shù)。
根據(jù)計(jì)算,本次設(shè)計(jì)0.1s通信間隔,緩存數(shù)據(jù)量1.6k×16bit,總量較小,采用的存儲(chǔ)器可滿足數(shù)據(jù)三倍存儲(chǔ)所需的容量,因此采用存三取二的冗余設(shè)計(jì)模式:在寫入數(shù)據(jù)時(shí),將同一數(shù)據(jù)復(fù)制并存入SRAM的3個(gè)不同的BNAK區(qū)域,每個(gè)BANK存入的數(shù)據(jù)相同;在讀取數(shù)據(jù)時(shí),將3個(gè)BNAK的數(shù)據(jù)分別讀出,對(duì)讀出的3個(gè)數(shù)據(jù)進(jìn)行三取二按位比較。經(jīng)表決判斷后輸出,工作模式如圖3所示。
圖3 經(jīng)表決判斷后輸出的工作模式框圖
為保證系統(tǒng)的容錯(cuò)性,表決器采用按位表決的模式,16位數(shù)據(jù)的每一位分開表決。項(xiàng)目實(shí)現(xiàn)中為節(jié)省FPGA資源,在開發(fā)中將存三模塊整合到乒乓操作模塊的數(shù)據(jù)寫入選擇器,將數(shù)據(jù)表決器整合到乒乓操作模塊的數(shù)據(jù)讀取選擇器,這種設(shè)計(jì)有效減少了占用的FPGA資源,如圖4所示。
圖4 緩存原理框圖
在SRAM上應(yīng)用TMR,有效解決了EDAC技術(shù)不能檢錯(cuò)和糾錯(cuò)多位錯(cuò)誤的能力,但是若在FPGA上應(yīng)用TMR,需要額外的模塊與布線,會(huì)占用龐大的面積開銷,硬件資源消耗大,功耗增加,同時(shí)工作速度也受到影響。因此FPGA設(shè)計(jì)采用原ACTEL公司(已被Microsemi收購)的ProASIC3系列A3P1000-CQ208B型FPGA,該FPGA基于FLASH結(jié)構(gòu),可重復(fù)擦除,無須配置芯片,穩(wěn)定性高,具有固件免疫能力,且高能量的α粒子和中子和撞擊器件無影響,將SEU對(duì)FPGA的影響降到了最低。
采集系統(tǒng)與星上計(jì)算機(jī)通過MIL-STD-1553總線(簡(jiǎn)稱為1553B總線)連接,是飛機(jī)內(nèi)部時(shí)分制命令/響應(yīng)式多路復(fù)用數(shù)據(jù)總線[12]。20世紀(jì)70年代由美國(guó)公布的一種串行多路數(shù)據(jù)總線標(biāo)準(zhǔn),1553B是該總線的第2個(gè)版本,已經(jīng)廣泛地應(yīng)用于飛機(jī)的綜合航電系統(tǒng)及外掛物管理與集成系統(tǒng),且已逐步拓展到飛控等系統(tǒng)以及航天、坦克、艦船等多個(gè)領(lǐng)域。我國(guó)也在1987年頒布了相應(yīng)的軍標(biāo)。1553B總線的實(shí)時(shí)性好,完整性高,運(yùn)行高效,具有命令/響應(yīng)和“廣播”通訊方式。
主控計(jì)算機(jī)為BC(主控),采集系統(tǒng)為RT(遠(yuǎn)程終端),根據(jù)數(shù)據(jù)緩存采樣幀頭+數(shù)據(jù)+校驗(yàn)的需求計(jì)算,最高數(shù)據(jù)量為2k×8×16 bit=0.256 Mb,理論占用總線時(shí)間為(0.256 Mb÷1 Mb/s)×(10/8)=32%。
為降低系統(tǒng)的設(shè)計(jì)工作量,1553B總線協(xié)議部分采用專用協(xié)議芯片完成,選用美國(guó)DDC公司為MIL-STD-1553B標(biāo)準(zhǔn)設(shè)計(jì)的接口協(xié)議芯片BU61580,這是常用的微處理器到1553B總線信號(hào)轉(zhuǎn)換的接口協(xié)議芯片,具有BC/RT/MT一體化設(shè)計(jì)、單電源、電磁兼容性滿足軍標(biāo)等特點(diǎn),是當(dāng)前1553B總線應(yīng)用系統(tǒng)中流行的器件,內(nèi)部功能強(qiáng)、接口靈活、便于控制。因數(shù)據(jù)采集系統(tǒng)的工作特性,除從上位機(jī)接收少量的指令信息外,大量數(shù)據(jù)為上傳模式。因BU61580的中間緩存區(qū)有限,因此在接口設(shè)計(jì)上需使用BU61580的循環(huán)緩存模式進(jìn)行傳送,有效降低了FPGA邏輯的復(fù)雜度。
1553B總線的RT子地址由寄存器配置,在啟動(dòng)/復(fù)位后對(duì)BU61580配置順序如圖5所示。
圖5 1553B總線配置流程圖
FPGA為采集系統(tǒng)的控制核心,ADC啟動(dòng)后的校準(zhǔn)與信號(hào)采集控制、數(shù)據(jù)讀取,計(jì)數(shù)/計(jì)時(shí),SRAM數(shù)據(jù)緩存及冗余校驗(yàn)等功能均由FPGA控制完成;同時(shí)為實(shí)現(xiàn)通過BU61580經(jīng)1553B與主控機(jī)通信,F(xiàn)PGA還需在采集系統(tǒng)啟動(dòng)時(shí)完成對(duì)BU61580的配置以及通信接口控制。
在接口電路FPGA開發(fā)過程中,芯片選型為ACTEL公司的A3P1000型FPGA芯片,相應(yīng)開發(fā)軟件選擇ACTEL公司的Libero SoC v11.8,該軟件在Windows 7操作系統(tǒng)環(huán)境下運(yùn)行。在Libero SoC v11.8平臺(tái)軟件中,嵌入了邏輯綜合軟件Synplify、邏輯仿真軟件ModelSim,F(xiàn)PGA在完成編譯,在Designer中進(jìn)行編譯、布局布線,并生成下載文件軟件。采集系統(tǒng)的采樣、存儲(chǔ)、通信由FPGA控制,采用VHDL語言編程設(shè)計(jì)。
設(shè)計(jì)中采用的庫如下:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
FPGA程序設(shè)計(jì)采用超高速集成電路硬件描述語言VHDL(Very-High-Speed Integrated Circuit Hardware Description Language),根據(jù)系統(tǒng)的工作原理梳理功能,結(jié)合工作流程進(jìn)行功能分解,明確邏輯接口,將程序劃分為6個(gè)邏輯模塊,各模塊功能如下:主控模塊負(fù)責(zé)初始化控制,解析上位機(jī)指令內(nèi)容,向各模塊發(fā)送工作指令;采集控制模塊根據(jù)主控模塊指令控制采樣,并將采集的數(shù)據(jù)整理后存入SRAM;ADC模塊負(fù)責(zé)ADC初始化校準(zhǔn)控制、采樣轉(zhuǎn)換控制、AD數(shù)據(jù)讀??;SRAM模塊負(fù)責(zé)2片SRAM接口邏輯,讀寫切換,數(shù)據(jù)校驗(yàn);1553B模塊負(fù)責(zé)BU61580控制,數(shù)據(jù)收發(fā),從SRAM讀取數(shù)據(jù)。FPGA內(nèi)部各邏輯模塊劃分與連接如圖6所示。
圖6 FPGA邏輯設(shè)計(jì)框圖
基于在Libero SoC v11.8平臺(tái)軟件中采用VHDL語言完成FPGA程序設(shè)計(jì),包括采集系統(tǒng)的采樣、存儲(chǔ)、通信由FPGA控制。在Designer中完成綜合與布局布線,經(jīng)仿真驗(yàn)證確認(rèn)功能正常后進(jìn)行集成測(cè)試。系統(tǒng)仿真結(jié)果如圖7所示,在上電復(fù)位后,完成了1553B總線初始化,從1553B總線接到指令后,進(jìn)行了1次數(shù)據(jù)采集并將SRAM中的數(shù)據(jù)通過1553B總發(fā)發(fā)送到上位機(jī)。
圖7 FPGA程序仿真圖
為驗(yàn)證SRAM的TMR冗余設(shè)計(jì)有效性,模擬故障注入進(jìn)行仿真,在SRAM讀操作的3個(gè)數(shù)據(jù)中加入了錯(cuò)誤數(shù)據(jù),讀取的3個(gè)數(shù)據(jù)中有1個(gè)數(shù)據(jù)與另外2個(gè)不同。經(jīng)仿真驗(yàn)證,TMR表決器可有效糾正數(shù)據(jù)錯(cuò)誤,輸出正確的數(shù)據(jù),保證系統(tǒng)可靠運(yùn)行。如圖8所示,截取了仿真中的1次數(shù)據(jù)讀取過程,從SRAM地址0x497B讀取數(shù)據(jù),依次從SRAM的3個(gè)數(shù)據(jù)塊中讀出數(shù)據(jù)為0xB749、0xB649、0xB749,對(duì)數(shù)據(jù)進(jìn)行3取2處理,表決器輸出數(shù)據(jù)為0xB749。
圖8 TMR數(shù)據(jù)校正功能仿真圖
為驗(yàn)證采集系統(tǒng)的設(shè)計(jì)及期功能和性能滿足在星載系統(tǒng)中的需求,在設(shè)計(jì)完成后,制造了一套采集系統(tǒng)的樣機(jī)電路如圖9所示。
圖9 采集系統(tǒng)樣機(jī)電路實(shí)物圖
基于此樣機(jī),驗(yàn)證采集系統(tǒng)的功能、性能,為此搭建了一套測(cè)試環(huán)境模擬工作狀態(tài):在星載主控計(jì)算機(jī)的控制下,同步采集角加速度傳感器的信號(hào),并通過1553B總線上傳到星載計(jì)算機(jī),所使用的角隨機(jī)顫振傳感器原理樣機(jī)如圖10所示[7]。
圖10 角隨機(jī)顫振傳感器原理樣機(jī)實(shí)物圖
測(cè)試環(huán)境配置包括:1套測(cè)試計(jì)算機(jī)并安裝星載主控計(jì)算機(jī)環(huán)境,用于模擬星載計(jì)算機(jī)主控;3支MHD角隨機(jī)顫振傳感器,信號(hào)接入采集系統(tǒng);1套基于BU67210F2的BusTrACEr總線監(jiān)視器,進(jìn)行1553B總線通信的測(cè)試與監(jiān)測(cè);計(jì)算機(jī)、采集系統(tǒng)及總線監(jiān)視器接入1553B總線。測(cè)試方案如圖11所示,全面驗(yàn)證了傳感器信號(hào)采集、緩存及1553B總線數(shù)據(jù)通信。
圖11 測(cè)試環(huán)境方案框圖
通過計(jì)算機(jī)控制采集系統(tǒng),數(shù)據(jù)格式見表1。模擬正常2kHz采樣率對(duì)3個(gè)傳感器通道的信號(hào)進(jìn)行同步采集,并通過1553B總線每間隔0.1s獲取采
表1 采集系統(tǒng)數(shù)據(jù)格式Tab.1 Data format of the acquisition system數(shù)據(jù)類型上位機(jī)地址數(shù)據(jù)原始數(shù)據(jù)磁流體數(shù)據(jù)幀頭TMK2703113904-73磁流體第1組時(shí)基脈沖計(jì)數(shù)TMK2705178406-F8磁流體第1組時(shí)測(cè)量沖計(jì)數(shù)(高字)TMK27071100-0B磁流體第1組時(shí)測(cè)量沖計(jì)數(shù)(低字)TMK2709157473D-83磁流體第1組通道1采樣數(shù)據(jù)TMK2711100-01磁流體第1組通道2采樣數(shù)據(jù)TMK2713-14FF-F2磁流體第1組通道3采樣數(shù)據(jù)TMK2715-5FF-FB磁流體第1組數(shù)據(jù)狀態(tài)TMK271788303-73
集的振動(dòng)信號(hào)數(shù)據(jù),同時(shí)通過總線監(jiān)視器檢查1553B總線的數(shù)據(jù)。通過對(duì)采集的傳感器數(shù)據(jù)進(jìn)行讀取,所得數(shù)據(jù)格式見,證明驗(yàn)采集功能及數(shù)據(jù)通信正常;為驗(yàn)證采集系統(tǒng)性能是否達(dá)到采樣率2kHz,精度達(dá)到0.05%的性能需求,對(duì)數(shù)據(jù)進(jìn)行整理,確認(rèn)采樣率、數(shù)據(jù)精度達(dá)標(biāo),截取數(shù)據(jù)如圖12所示,橫坐標(biāo)為采樣時(shí)間,縱坐標(biāo)為誤差。經(jīng)驗(yàn)證,確認(rèn)采集系統(tǒng)的功能與性能滿足設(shè)計(jì)需求。
圖12 采集傳感器數(shù)據(jù)圖
通常通過輻射實(shí)驗(yàn)或故障注入的手段來實(shí)現(xiàn)抗SEU措施有效性的驗(yàn)證。因輻射實(shí)驗(yàn)成本較高,周期較長(zhǎng),且目前國(guó)內(nèi)能實(shí)現(xiàn)模擬單粒子轟擊的平臺(tái)數(shù)量較少;而故障注入方式的成本低、周期短,且可測(cè)試性高,成為了評(píng)估SEU緩解措施有效性的重要手段。在FPGA仿真數(shù)據(jù)中,進(jìn)行了專門的故障注入仿真,SRAM讀操作的3個(gè)數(shù)據(jù)中有1個(gè)錯(cuò)誤數(shù)據(jù)與另2個(gè)數(shù)據(jù)不同,根據(jù)仿真結(jié)果,可以有效剔除錯(cuò)誤數(shù)據(jù),保證系統(tǒng)可靠運(yùn)行。
本文基于FPGA和1553B總線的架構(gòu),設(shè)計(jì)了用于在軌衛(wèi)星高精度角顫振測(cè)量信息的數(shù)據(jù)采集系統(tǒng),針對(duì)測(cè)量信息的采集處理需求以及星載設(shè)備在軌應(yīng)用環(huán)境的要求,通過SRAM的TMR冗余,規(guī)避SRAM型FPGA的使用提高了系統(tǒng)可靠性,并通過樣機(jī)及試驗(yàn)驗(yàn)證了系統(tǒng)的功能。