《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應(yīng)用 > 基于FPGA的空間目標(biāo)碰撞預(yù)警系統(tǒng)
基于FPGA的空間目標(biāo)碰撞預(yù)警系統(tǒng)
電子設(shè)計工程
褚鵬輝,,程 濤
摘要: 摘要:為了解決空間目標(biāo)與航天器發(fā)生碰撞的問題,,設(shè)計了一種基于FPGA,,以在軌目標(biāo)三維坐標(biāo)為待處理數(shù)據(jù)進(jìn)行快速并行處理的目標(biāo)碰撞預(yù)警系統(tǒng),。該系統(tǒng)基于Xilinx公司FPGA芯片中的內(nèi)容可尋址存儲器(ContentAddressable
Abstract:
Key words :

摘要:為了解決空間目標(biāo)與航天器發(fā)生碰撞的問題,,設(shè)計了一種基于FPGA,,以在軌目標(biāo)三維坐標(biāo)為待處理數(shù)據(jù)進(jìn)行快速并行處理的目標(biāo)碰撞預(yù)警系統(tǒng),。該系統(tǒng)基于Xilinx公司FPGA芯片中的內(nèi)容可尋址存儲器(Content Addressable Memory,,CAM)IP核和MicroBlaze軟核控制器,,利用嵌入式開發(fā)套件(EDK)進(jìn)行搭建;并設(shè)計了空間危險目標(biāo)的篩選算法,,同時編寫了軟件及硬件代碼,,加載到以上系統(tǒng)中進(jìn)行實際的操作驗證。驗證結(jié)果表明,,該系統(tǒng)實現(xiàn)了16個目標(biāo)中危險目標(biāo)的快速篩選功能,,通過使用ChipScope邏輯分析工具進(jìn)行波形分析,可知系統(tǒng)執(zhí)行一次篩選操作所需時間為1.8 s,。
關(guān)鍵詞:現(xiàn)場可編程門陣列,;Microblaze;內(nèi)容可尋址存儲器,;空間目標(biāo),;碰撞

    隨著人類航天活動的不斷開展,空間碎片的空間密度已經(jīng)對航天器安全造成了威脅,特別是近地軌道,,碎片密度更大,,且其數(shù)量仍在迅速增加,航天器遭受空間碎片撞擊事件時有發(fā)生,??臻g在軌目標(biāo)數(shù)量不斷增加,對空間目標(biāo)進(jìn)行碰撞預(yù)警所需要的計算量也在迅速增加,,鑒于并行計算速度很快,,因此適合應(yīng)用并行計算對危險目標(biāo)進(jìn)行篩選,進(jìn)而進(jìn)行預(yù)警操作,。利用FPGA中的CAM(內(nèi)容可尋址存儲器)和MicroBlaze軟核控制器可以實現(xiàn)危險目標(biāo)的快速并行篩選,。

1 CAM
1.1 CAM概述
    CAM是一種特殊的存儲器,它是將數(shù)據(jù)項存儲在一個陣列中,。每個數(shù)據(jù)項的位數(shù)叫作字寬,,CAM中所有數(shù)據(jù)項的條數(shù)叫作CAM的深度。字寬和深度可以表征CAM的容量,。
    CAM基于內(nèi)容尋址,,通過硬件電路實現(xiàn)快速匹配。CAM的并行處理特性使得它在數(shù)據(jù)分選領(lǐng)域倍受青睞,,被廣泛應(yīng)用于以太網(wǎng)網(wǎng)址搜尋,、數(shù)據(jù)壓縮、模式識別,、高速緩存,、高速數(shù)據(jù)處理、數(shù)據(jù)安全和數(shù)據(jù)加密等,。
1.2 CAM工作原理
    CAM最基本的兩個端口是數(shù)據(jù)線和地址線,,數(shù)據(jù)線作為輸入端口,存放需要由CAM來處理的數(shù)據(jù),,而地址線作為輸出端口,,輸出CAM的處理結(jié)果——匹配數(shù)據(jù)所在地址。圖1所示為深度為4,、字寬為4的CAM,,如果將二進(jìn)制數(shù)1100放在數(shù)據(jù)線上,輸出的匹配結(jié)果將會是0011,,如圖1所示,,結(jié)果中的每一位二進(jìn)制數(shù)對應(yīng)CAM內(nèi)部每一條數(shù)據(jù),數(shù)據(jù)線上數(shù)據(jù)與CAM內(nèi)部數(shù)據(jù)相等則對應(yīng)位輸出為1,,不相等則輸出為0,。由于CAM具有并行匹配特性,,所以很適合對空間多個目標(biāo)進(jìn)行同時并行匹配處理。

a.JPG



2 MicroBlaze軟核控制器
    MicroBlaze是基于Xilinx公司FPGA的微處理器IP核,,它和其他外設(shè)IP核一起可以完成可編程系統(tǒng)芯片(SOPC)的設(shè)計,。MicroBlaze處理器采用RISC架構(gòu)和哈佛結(jié)構(gòu)的32位指令和數(shù)據(jù)總線,內(nèi)部有32個32位寬度的通用寄存器,;其內(nèi)部結(jié)構(gòu)圖如圖2所示,。

b.JPG


    使用Xilinx公司提供的EDK(嵌入式系統(tǒng)開發(fā)套件),可以在參數(shù)化的圖形界面下方便地完成嵌入式處理器系統(tǒng)的設(shè)計,。其突出的優(yōu)點:一是設(shè)計靈活性,;二是可以整合用戶自定義IP核,使得算法可以在硬件中并行的執(zhí)行而不是在軟件中串行的執(zhí)行,,從而極大地加速軟件的執(zhí)行速度,。

3 算法設(shè)計
3.1 算法分析
    對空間目標(biāo)進(jìn)行碰撞預(yù)警,實際上可以轉(zhuǎn)化為通過對目標(biāo)之間的距離進(jìn)行判斷比較,,找出有碰撞危險的目標(biāo),。由于空間目標(biāo)的位置可以用三維空間坐標(biāo)表示,因此對任意兩個目標(biāo)之間距離的判斷又可進(jìn)一步轉(zhuǎn)化為他們之間坐標(biāo)的比較,。
3.2 算法描述
    假設(shè)只有3個目標(biāo)需要進(jìn)行坐標(biāo)匹配處理,,它們的坐標(biāo)分別為A(xA、yA,、zA),,B(xB、yB,、zB),,C(xC、yC,、zC),需要一個深度為3的CAM,,首先處理z坐標(biāo),,將3個目標(biāo)的x坐標(biāo)存入CAM,如圖3所示,。

c.JPG


    然后分別將xA,、xB、zC放在數(shù)據(jù)線上進(jìn)行匹配操作,,經(jīng)過3次匹配操作得到3個匹配結(jié)果RxA,,RxB,RxC,,對于y和z坐標(biāo)進(jìn)行相同操作,,分別得到y(tǒng)和z的匹配結(jié)果為RyA,RyB,RyC和RzA,,RzB,,RzC,所得到的結(jié)果均為3位的二進(jìn)制數(shù),,然后對每個目標(biāo)進(jìn)行內(nèi)部坐標(biāo)對比,,例如將目標(biāo)A的3個匹配結(jié)果RxA,RyA,,RzA進(jìn)行對比,,就可知道是否存在與目標(biāo)A的3個坐標(biāo)均相同的項,例如RxA,,RyA,,RzA分別為101,101,,101則說明目標(biāo)A與目標(biāo)C的坐標(biāo)是匹配的,,進(jìn)而可以判斷目標(biāo)A與目標(biāo)C有碰撞的可能。
    與常規(guī)存儲器和軟件匹配方式有所不同,,CAM對于數(shù)據(jù)的匹配操作是并行執(zhí)行的,,這樣就可以大大提高數(shù)據(jù)匹配速度,進(jìn)而提升系統(tǒng)效率,。

4 硬件平臺搭建及運(yùn)行
4.1 CAM模塊實現(xiàn)
    利用賽靈思公司提供的IP核資源,,通過配置CAM IP核參數(shù)化圖形界面,如圖4所示,,在FPGA內(nèi)部例化了一個深度為16,,字寬為32的CAM模塊,其基本參數(shù)如表1所示,。

d.JPG

e.JPG


    如表1所示,,選擇存儲器類型為Block Memory這樣就可例化一個以FPGA片內(nèi)BRAM為基礎(chǔ)的CAM模塊,與基于SRL16(16 bit移位寄存器查找表)的CAM相比,,其寫周期只需2個時鐘周期,,寫操作所需時間為后者的1/8,提升了系統(tǒng)速度,。

    輸出地址編碼方式有3種可供選擇的方式:非編碼多位匹配(Multi Match Unencoded),、非編碼單一匹配(Single Match Unencoded)和二進(jìn)制編碼(Binary Encoded)。第一種編碼方式可以從地址線上輸出所有可能的匹配項,,而后兩種編碼方式則只能在地址線上輸出一個匹配項,。
    經(jīng)過實際驗證,由ISE綜合工具XST進(jìn)行綜合后得出的綜合報告顯示,,在型號為XC3S700AN的FPGA芯片中實現(xiàn)一個深度為16,,字寬為32的CAM占用的資源情況如表2所示,。


    由表2可知,實現(xiàn)一個深度為16,,字寬為32的CAM所占用的資源中,,塊RAM所占比重較大,這是由于在FPGA內(nèi)部所實現(xiàn)的CAM模塊正是基于FPGA的塊RAM資源的,,所以對塊RAM資源消耗比較多,,因此在實際應(yīng)用中選用FPGA芯片時應(yīng)選擇塊RAM資源豐富的芯片。


4.2 MicroBlaze軟核控制器與CAM的連接
    在FPGA芯片中配置一個MicroBlaze軟核控制器以實現(xiàn)對CAM的一系列控制,,如復(fù)位,、寫入數(shù)據(jù)、讀取數(shù)據(jù)等,,MicroBlaze通過PLB總線與CAM相連,,同時為便于調(diào)試,在PLB總線上連接了串口等外設(shè)模塊,,系統(tǒng)模塊圖如圖5所示,。

h.JPG


4.3 系統(tǒng)執(zhí)行
    系統(tǒng)執(zhí)行過程中,Microblaze作為控制器通過執(zhí)行由C語言編寫的軟件程序?qū)崿F(xiàn)對CAM的控制,,它的具體操作流程如圖6所示,。

i.JPG


    在系統(tǒng)內(nèi)部,整個工程的實現(xiàn)和下載共分成4步:首先產(chǎn)生系統(tǒng)的硬件網(wǎng)表,,即對嵌入式系統(tǒng)進(jìn)行綜合,;其次產(chǎn)生系統(tǒng)硬件架構(gòu)的比特流文件;再次編譯軟件,,并將軟件代碼生成的比特流和系統(tǒng)硬件的比特流合二為一,,構(gòu)成完整的系統(tǒng)描述比特流;最后將完整的比特流下載到FPGA芯片中,。
4.4 驗證結(jié)果分析
    經(jīng)過對處理結(jié)果分析可知,,此系統(tǒng)驗證了設(shè)計算法的正確性。所搭建系統(tǒng)時鐘頻率為62.5 MHz,,時鐘周期為16 ns,,通過在代碼內(nèi)部添加時鐘計數(shù)器,并且使用ChipScope邏輯分析儀進(jìn)行波形分析,,可知系統(tǒng)執(zhí)行一次篩選操作所需要的時鐘周期數(shù)為114 296 649個,即1.8 s左右,。
4.5 系統(tǒng)擴(kuò)展能力分析
    在后續(xù)研究中通過對CAM容量的擴(kuò)展,,可以增加待篩選目標(biāo)的數(shù)量。CAM容量的擴(kuò)展,,需要占用更多的FPGA芯片資源,,同時其運(yùn)行頻率會有所降低,,以某Spartan3A芯片為例,三者之間的關(guān)系如表3,、表4,、表5所示。

j.JPG


    考慮到成本問題,,本設(shè)計所使用的芯片為賽靈思公司的型號為XC3S700AN,,由表3~表5可知,在擴(kuò)展CAM容量時,,需要綜合考慮所需CAM容量,、所選FPGA芯片資源情況以及運(yùn)行頻率三者之間的關(guān)系。

5 結(jié)論
    采用賽靈思公司MicroBlaze軟核控制器和內(nèi)容可尋址存儲器(CAM)所搭建的目標(biāo)碰撞預(yù)警平臺實現(xiàn)了總目標(biāo)數(shù)為16的目標(biāo)群中危險目標(biāo)的篩選操作,。軟核控制器與CAM模塊同在一片F(xiàn)PGA芯片中實現(xiàn),,管理和操作起來比較方便,便于系統(tǒng)實現(xiàn)小型化,、集成化,。受到FPGA自身容量的限制,在擴(kuò)展CAM容量時可以考慮選用更大容量的FPGA芯片,,或者應(yīng)用外接大容量專有CAM芯片,,實現(xiàn)大規(guī)模目標(biāo)的并行匹配操作。

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。