文獻標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.2015.10.003
中文引用格式: 楊曉,陳媛媛,王志斌,等. 激光告警DSP加載系統(tǒng)的可靠性設(shè)計[J].電子技術(shù)應(yīng)用,2015,41(10):17-19,23.
英文引用格式: Yang Xiao,Chen Yuanyuan,Wang Zhibin,et al. Reliable design of laser warning DSP bootloading system[J].Application of Electronic Technique,2015,41(10):17-19,23.
0 引言
為了對抗激光對于固定軍事目標(biāo)的威脅,激光對抗技術(shù)的研究已經(jīng)成為一個重要課題。高性能激光告警接收機采用面陣探測器,具有高速峰值檢測和實時判斷的功能,能夠?qū)崿F(xiàn)高速可靠地探測軍用制導(dǎo)武器所發(fā)出的各種波長的窄脈沖激光的目的。系統(tǒng)高層處理算法處理的數(shù)據(jù)量較低層算法少,算法的控制結(jié)構(gòu)復(fù)雜,適于用運算速度高、尋址方式靈活、通信機制強大的DSP來實現(xiàn)。
數(shù)據(jù)送到DSP后,由于高能帶電粒子造成單粒子翻轉(zhuǎn)會導(dǎo)致程序無法正確運行,存儲數(shù)據(jù)的差錯也會對激光信號的判別造成影響。因此如何克服空間粒子效應(yīng)的影響成為高性能DSP能否在空間中應(yīng)用的關(guān)鍵。
1 基于光柵衍射的激光探測原理
激光告警設(shè)備是能夠?qū)す馔{信號進行識別、截獲、測量并做出實時告警的光電偵察設(shè)備,能夠在地面空間等環(huán)境工作。它以發(fā)射的光的功率、波長、調(diào)制特性和光信號的脈沖寬度、脈沖頻率、及編碼等技術(shù)參數(shù)為依據(jù)來制定相應(yīng)的光對抗措施[1]。
入射激光經(jīng)過接收窗口入射到光學(xué)子系統(tǒng),然后在面陣焦平面探測器光敏單元成像,并通過FPGA采集信號,DSP快速處理,輸出結(jié)果經(jīng)處理后將信息顯示在液晶顯示器上,顯示出入射激光波長和方向等信息。根據(jù)總體設(shè)計方案,探測實驗系統(tǒng)中光學(xué)子系統(tǒng)主要由激光接收窗口、光柵、透鏡組合,以及面陣焦平面探測器組成。衍射光柵激光波長和方向探測原理結(jié)構(gòu)簡圖如圖1所示。
2 空間粒子效應(yīng)及處理方法
單粒子效應(yīng)在激光告警技術(shù)應(yīng)用中可能出現(xiàn)的主要問題包括:程序存儲中數(shù)據(jù)改變,導(dǎo)致計算錯誤,不能正確判斷到來的激光信號的角度和波長信息;程序存儲區(qū)發(fā)生位變化,使各個內(nèi)部程序不能正確執(zhí)行;寄存器等系統(tǒng)功能失效等情況。單粒子效應(yīng)主要故障類型見表1。
經(jīng)統(tǒng)計,在上述故障中出現(xiàn)最多的是單粒子翻轉(zhuǎn),它不會造成硬件損毀,可以通過采取有效的措施修復(fù)。在防止單粒子效應(yīng)對電子芯片的影響時常用到的容錯措施有定期重配置、周期擦除、三模冗余、EDAC等手段[2]。
三模冗余(Triple Modular Redundancy,TMR)方法以實現(xiàn)簡單和效果可靠被廣泛地應(yīng)用于單粒子翻轉(zhuǎn)的容錯處理中。由于片外冗余方式易增加電路的復(fù)雜性和功耗等,這里采用片內(nèi)冗余:外置存儲器分配三個地址空間對程序數(shù)據(jù)燒寫操作,保證某一位地址空間的數(shù)據(jù)出現(xiàn)錯誤時仍有其他程序正確執(zhí)行[3,4]。
3 系統(tǒng)可靠性設(shè)計
DSP在整個系統(tǒng)中主要完成數(shù)據(jù)處理,確定激光的波長、方位角和俯仰角,DSP程序的正確運行對于整個系統(tǒng)至關(guān)重要。DSP抗單粒子主要從硬件和軟件方面來考慮,硬件方面采用“看門狗”電路進行DSP故障的實時檢測,軟件方面采用TMR的程序設(shè)計。
3.1 看門狗電路
針對可能出現(xiàn)的程序跑飛甚至是死機問題,系統(tǒng)在電路中設(shè)計了專門的硬件“看門狗”進行加固。MAX706是MAXIM公司推出一種專門用來監(jiān)控微處理器工作狀態(tài)的監(jiān)控電路,具有“看門狗”功能。當(dāng)檢測到DSP發(fā)生故障死機時產(chǎn)生復(fù)位脈沖。原理圖如圖2所示。
WDI端與DSP的IO口連接,主程序產(chǎn)生的脈沖信號通過GPIO3引腳傳輸給看門狗電路的輸入端,當(dāng)DSP程序出現(xiàn)問題死機,在間隔1.6 s后看門狗定時器溢出,WDI拉低產(chǎn)生復(fù)位操作。電路還提供了手動復(fù)位方式,通過S3接通電路,電平拉低后使能人工復(fù)位輸入端MR,輸出有效的復(fù)位信號。
3.2 數(shù)據(jù)的預(yù)處理
處理數(shù)據(jù)前對從FPGA傳輸過來的數(shù)據(jù)進行預(yù)先處理,在DSP程序中對幀頭標(biāo)志、圖像亮點個數(shù)標(biāo)志等影響程序運行流程的標(biāo)志位進行TMR設(shè)計,然后判斷圖像中亮點的個數(shù)。激光經(jīng)過閃耀光柵發(fā)生衍射,再經(jīng)過透鏡組入射到探測器上,會有正負(fù)一級和零級3個亮點。程序判斷出有3個亮點后,才繼續(xù)運行計算波長方位角和俯仰角。其流程圖如圖3所示。
3.3 DSP程序燒寫與程序引導(dǎo)中的抗SEU設(shè)計
用高性能、超低功耗、部門架構(gòu)靈活等特點的Flash存儲器CMOS 3.0V引導(dǎo)扇區(qū)閃存AM29LV160作為DSP的外部程序存儲器,將主程序工程做三模冗余備份。首先將引導(dǎo)程序在內(nèi)的所有程序下載到DSP內(nèi)存RAM(0x00000000)中,進而對Flash進行數(shù)據(jù)燒寫,在寫入Flash中存儲時存入不同的地址空間做備份處理。部分程序代碼如下:
void Flash(void)
{
unsigned short j;
int i=0;
i= ReadID();
EraseChip(); //擦除Flash
for(i=0;i<0x40000;i+=2)
{
j=*(unsigned short *)i;
WriteFlash(0x90000000+i,j);
WriteFlash(0x90040000+i,j);
WriteFlash(0x90080000+i,j);
}
}
與RAM型器件中出現(xiàn)的單粒子翻轉(zhuǎn)現(xiàn)象而引起的故障不同,F(xiàn)lash的單粒子翻轉(zhuǎn)類錯誤長期存在。針對Flash器件可能出現(xiàn)的單粒子翻轉(zhuǎn)現(xiàn)象,采用三模冗余結(jié)合定時刷新技術(shù)。在進行完差錯檢驗并得到正確的數(shù)據(jù)以后,每隔一段時間自動執(zhí)行Flash燒寫并進行再次備份的方式,將原來有可能累積的錯誤數(shù)據(jù)不斷擦除,即能確保設(shè)備的運行速度也保證了即使設(shè)備處于長時間的輻射影響中,也不會使錯誤積累。
3.4 差錯檢驗及校正
備份在Flash中的程序在下載到DSP以后,為了保證能夠正確運行,需要在運行之前進行差錯檢驗和表決,驗證是否有bit位發(fā)生變化。這里通過在上電自舉的二次引導(dǎo)程序中增加輸出數(shù)據(jù)的差錯判決單元的方法來實現(xiàn)這一功能。如果在判決中發(fā)現(xiàn)有地址中的數(shù)據(jù)出現(xiàn)錯誤則進行校正,確保運行的程序正確無誤[5,6]。
引導(dǎo)程序以逐位檢驗的方式進行檢錯,表決時采用三中取二原則,對三個主程序的每一個地址的各位依次進行表決,以確定要運行的主程序數(shù)據(jù)。其原理圖如圖4所示。
差錯檢驗及表決過程如下:
cmpeq B3,B2,B0//比較寄存器B3和B2,
//相等時B0置一,否則置零
[!B0] cmpeq B3,B1,B0//若B0不等于一比較
//B3和B1,相等則將B0置一,否則置零
[!B0] cmpeq B2,B1,B0
[!B0] stw B1,*B3//若B0的值不等于一,
//則將寄存器B3地址中的數(shù)據(jù)存入B1中
stw B3,*B4++//將寄存器B4地址中的數(shù)據(jù)
//寫入B3,尋址后B4自動加一
add 1,A1,A1
cmplt A1,B5,B0 //A1與B5比較,A1小于B5時
//B0置1,否則置零
[B0] b loop//B0為1程序跳至loop循環(huán)
b_c_int00//否則跳至主程序入口
在進行二次引導(dǎo)的時候,從起始地址開始進行依次判決并循環(huán)操作直到最后一位地址結(jié)束,隨后進入主程序執(zhí)行相關(guān)操作。
4 實驗
受實驗條件限制無法模擬高能粒子輻射環(huán)境,針對抗單粒子翻轉(zhuǎn)只對DSP上電引導(dǎo)程序差錯屏蔽功能實驗驗證:在一個備份地址中寫入錯誤數(shù)據(jù)i,執(zhí)行完操作后可以看到DSP內(nèi)存空間中的數(shù)據(jù)更新為校正后的正確數(shù)據(jù)。實驗步驟如下:
(1)首先在ccs3.3中對引導(dǎo)程序和主程序進行編譯,正確無誤后通過JTAG接口下載燒寫進DSP內(nèi)部RAM中。運行Flash燒寫程序?qū)?shù)據(jù)存至三個不同的地址空間作為備份,結(jié)果如圖5所示。
(2)關(guān)閉ccs使開發(fā)板脫離仿真環(huán)境,對DSP進行重新上電啟動上電自舉程序,DSP將會在二次引導(dǎo)時完成差錯檢驗及校正,之后進行主程序的執(zhí)行。利用DSP仿真通過JTAG接口查看DSP內(nèi)部存儲空間中的數(shù)據(jù)。能夠驗證已將錯誤屏蔽掉。結(jié)果如圖6所示。
5 結(jié)論
本文解決了激光告警設(shè)備進行實時高速激光信號采集與處理時高能粒子翻轉(zhuǎn)造成DSP芯片無法正常工作的問題。提出了以對外擴展非易失性存儲器Flash芯片作為存儲模塊,并采用自啟動技術(shù)進行程序的引導(dǎo),調(diào)用以及執(zhí)行。通過信號預(yù)處理、三模冗余以及在引導(dǎo)程序中增加判決單元進行檢驗糾錯的方法進行DSP抗輻射程序的加固。保證了設(shè)備能夠在脫離PC進入空間環(huán)境后穩(wěn)定運行。
參考文獻
[1] 張記龍,田二明,王志斌.基于正弦透射光柵的激光告警接收機研究[J].紅外與激光工程,2006,35(3):326-330.
[2] 周順燕,吳丹.一種基于Flash型FPGA的高可靠系統(tǒng)設(shè)計[J].微計算機信息,2009,25(8):134-136.
[3] 邢克飛,楊俊,周永彬,等.星載高性能DSP加固設(shè)計方法研究.[J]電子器件,2007,30(1):206-209.
[4] 王大慶,劉曉旭,王宇,等.基于軟件的星載DSP減緩單粒子效應(yīng)措施研究[J].空間電子技術(shù),2013(1):40-43.
[5] 鄭歡歡,穆占杰.基于C6000系列DSP片外Flash自啟動方法[J].信息化研究,2011,37(5):34-37.
[6] 馮軼,衛(wèi)育新.基于S320C6713及AM29LV800B的上電自舉設(shè)計[J].電子設(shè)計工程,2009,17(2):82-84.