基于FPGA的空間目標(biāo)碰撞預(yù)警系統(tǒng)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:為了解決空間目標(biāo)與航天器發(fā)生碰撞的問題,設(shè)計(jì)了一種基于FPGA,以在軌目標(biāo)三維坐標(biāo)為待處理數(shù)據(jù)進(jìn)行快速并行處理的目標(biāo)碰撞預(yù)警系統(tǒng)。該系統(tǒng)基于Xilinx公司FPGA芯片中的內(nèi)容可尋址存儲(chǔ)器(Content Addressable Memory,CAM)IP核和MicroBlaze軟核控制器,利用嵌入式開發(fā)套件(EDK)進(jìn)行搭建;并設(shè)計(jì)了空間危險(xiǎn)目標(biāo)的篩選算法,同時(shí)編寫了軟件及硬件代碼,加載到以上系統(tǒng)中進(jìn)行實(shí)際的操作驗(yàn)證。驗(yàn)證結(jié)果表明,該系統(tǒng)實(shí)現(xiàn)了16個(gè)目標(biāo)中危險(xiǎn)目標(biāo)的快速篩選功能,通過使用ChipScope邏輯分析工具進(jìn)行波形分析,可知系統(tǒng)執(zhí)行一次篩選操作所需時(shí)間為1.8 s。
關(guān)鍵詞:現(xiàn)場(chǎng)可編程門陣列;Microblaze;內(nèi)容可尋址存儲(chǔ)器;空間目標(biāo);碰撞
隨著人類航天活動(dòng)的不斷開展,空間碎片的空間密度已經(jīng)對(duì)航天器安全造成了威脅,特別是近地軌道,碎片密度更大,且其數(shù)量仍在迅速增加,航天器遭受空間碎片撞擊事件時(shí)有發(fā)生??臻g在軌目標(biāo)數(shù)量不斷增加,對(duì)空間目標(biāo)進(jìn)行碰撞預(yù)警所需要的計(jì)算量也在迅速增加,鑒于并行計(jì)算速度很快,因此適合應(yīng)用并行計(jì)算對(duì)危險(xiǎn)目標(biāo)進(jìn)行篩選,進(jìn)而進(jìn)行預(yù)警操作。利用FPGA中的CAM(內(nèi)容可尋址存儲(chǔ)器)和MicroBlaze軟核控制器可以實(shí)現(xiàn)危險(xiǎn)目標(biāo)的快速并行篩選。
1 CAM
1.1 CAM概述
CAM是一種特殊的存儲(chǔ)器,它是將數(shù)據(jù)項(xiàng)存儲(chǔ)在一個(gè)陣列中。每個(gè)數(shù)據(jù)項(xiàng)的位數(shù)叫作字寬,CAM中所有數(shù)據(jù)項(xiàng)的條數(shù)叫作CAM的深度。字寬和深度可以表征CAM的容量。
CAM基于內(nèi)容尋址,通過硬件電路實(shí)現(xiàn)快速匹配。CAM的并行處理特性使得它在數(shù)據(jù)分選領(lǐng)域倍受青睞,被廣泛應(yīng)用于以太網(wǎng)網(wǎng)址搜尋、數(shù)據(jù)壓縮、模式識(shí)別、高速緩存、高速數(shù)據(jù)處理、數(shù)據(jù)安全和數(shù)據(jù)加密等。
1.2 CAM工作原理
CAM最基本的兩個(gè)端口是數(shù)據(jù)線和地址線,數(shù)據(jù)線作為輸入端口,存放需要由CAM來處理的數(shù)據(jù),而地址線作為輸出端口,輸出CAM的處理結(jié)果——匹配數(shù)據(jù)所在地址。圖1所示為深度為4、字寬為4的CAM,如果將二進(jìn)制數(shù)1100放在數(shù)據(jù)線上,輸出的匹配結(jié)果將會(huì)是0011,如圖1所示,結(jié)果中的每一位二進(jìn)制數(shù)對(duì)應(yīng)CAM內(nèi)部每一條數(shù)據(jù),數(shù)據(jù)線上數(shù)據(jù)與CAM內(nèi)部數(shù)據(jù)相等則對(duì)應(yīng)位輸出為1,不相等則輸出為0。由于CAM具有并行匹配特性,所以很適合對(duì)空間多個(gè)目標(biāo)進(jìn)行同時(shí)并行匹配處理。
2 MicroBlaze軟核控制器
MicroBlaze是基于Xilinx公司FPGA的微處理器IP核,它和其他外設(shè)IP核一起可以完成可編程系統(tǒng)芯片(SOPC)的設(shè)計(jì)。MicroBlaze處理器采用RISC架構(gòu)和哈佛結(jié)構(gòu)的32位指令和數(shù)據(jù)總線,內(nèi)部有32個(gè)32位寬度的通用寄存器;其內(nèi)部結(jié)構(gòu)圖如圖2所示。
使用Xilinx公司提供的EDK(嵌入式系統(tǒng)開發(fā)套件),可以在參數(shù)化的圖形界面下方便地完成嵌入式處理器系統(tǒng)的設(shè)計(jì)。其突出的優(yōu)點(diǎn):一是設(shè)計(jì)靈活性;二是可以整合用戶自定義IP核,使得算法可以在硬件中并行的執(zhí)行而不是在軟件中串行的執(zhí)行,從而極大地加速軟件的執(zhí)行速度。
3 算法設(shè)計(jì)
3.1 算法分析
對(duì)空間目標(biāo)進(jìn)行碰撞預(yù)警,實(shí)際上可以轉(zhuǎn)化為通過對(duì)目標(biāo)之間的距離進(jìn)行判斷比較,找出有碰撞危險(xiǎn)的目標(biāo)。由于空間目標(biāo)的位置可以用三維空間坐標(biāo)表示,因此對(duì)任意兩個(gè)目標(biāo)之間距離的判斷又可進(jìn)一步轉(zhuǎn)化為他們之間坐標(biāo)的比較。
3.2 算法描述
假設(shè)只有3個(gè)目標(biāo)需要進(jìn)行坐標(biāo)匹配處理,它們的坐標(biāo)分別為A(xA、yA、zA),B(xB、yB、zB),C(xC、yC、zC),需要一個(gè)深度為3的CAM,首先處理z坐標(biāo),將3個(gè)目標(biāo)的x坐標(biāo)存入CAM,如圖3所示。
然后分別將xA、xB、zC放在數(shù)據(jù)線上進(jìn)行匹配操作,經(jīng)過3次匹配操作得到3個(gè)匹配結(jié)果RxA,RxB,RxC,對(duì)于y和z坐標(biāo)進(jìn)行相同操作,分別得到y(tǒng)和z的匹配結(jié)果為RyA,RyB,RyC和RzA,RzB,RzC,所得到的結(jié)果均為3位的二進(jìn)制數(shù),然后對(duì)每個(gè)目標(biāo)進(jìn)行內(nèi)部坐標(biāo)對(duì)比,例如將目標(biāo)A的3個(gè)匹配結(jié)果RxA,RyA,RzA進(jìn)行對(duì)比,就可知道是否存在與目標(biāo)A的3個(gè)坐標(biāo)均相同的項(xiàng),例如RxA,RyA,RzA分別為101,101,101則說明目標(biāo)A與目標(biāo)C的坐標(biāo)是匹配的,進(jìn)而可以判斷目標(biāo)A與目標(biāo)C有碰撞的可能。
與常規(guī)存儲(chǔ)器和軟件匹配方式有所不同,CAM對(duì)于數(shù)據(jù)的匹配操作是并行執(zhí)行的,這樣就可以大大提高數(shù)據(jù)匹配速度,進(jìn)而提升系統(tǒng)效率。
4 硬件平臺(tái)搭建及運(yùn)行
4.1 CAM模塊實(shí)現(xiàn)
利用賽靈思公司提供的IP核資源,通過配置CAM IP核參數(shù)化圖形界面,如圖4所示,在FPGA內(nèi)部例化了一個(gè)深度為16,字寬為32的CAM模塊,其基本參數(shù)如表1所示。
如表1所示,選擇存儲(chǔ)器類型為Block Memory這樣就可例化一個(gè)以FPGA片內(nèi)BRAM為基礎(chǔ)的CAM模塊,與基于SRL16(16 bit移位寄存器查找表)的CAM相比,其寫周期只需2個(gè)時(shí)鐘周期,寫操作所需時(shí)間為后者的1/8,提升了系統(tǒng)速度。
輸出地址編碼方式有3種可供選擇的方式:非編碼多位匹配(Multi Match Unencoded)、非編碼單一匹配(Single Match Unencoded)和二進(jìn)制編碼(Binary Encoded)。第一種編碼方式可以從地址線上輸出所有可能的匹配項(xiàng),而后兩種編碼方式則只能在地址線上輸出一個(gè)匹配項(xiàng)。
經(jīng)過實(shí)際驗(yàn)證,由ISE綜合工具XST進(jìn)行綜合后得出的綜合報(bào)告顯示,在型號(hào)為XC3S700AN的FPGA芯片中實(shí)現(xiàn)一個(gè)深度為16,字寬為32的CAM占用的資源情況如表2所示。
由表2可知,實(shí)現(xiàn)一個(gè)深度為16,字寬為32的CAM所占用的資源中,塊RAM所占比重較大,這是由于在FPGA內(nèi)部所實(shí)現(xiàn)的CAM模塊正是基于FPGA的塊RAM資源的,所以對(duì)塊RAM資源消耗比較多,因此在實(shí)際應(yīng)用中選用FPGA芯片時(shí)應(yīng)選擇塊RAM資源豐富的芯片。
4.2 MicroBlaze軟核控制器與CAM的連接
在FPGA芯片中配置一個(gè)MicroBlaze軟核控制器以實(shí)現(xiàn)對(duì)CAM的一系列控制,如復(fù)位、寫入數(shù)據(jù)、讀取數(shù)據(jù)等,MicroBlaze通過PLB總線與CAM相連,同時(shí)為便于調(diào)試,在PLB總線上連接了串口等外設(shè)模塊,系統(tǒng)模塊圖如圖5所示。
4.3 系統(tǒng)執(zhí)行
系統(tǒng)執(zhí)行過程中,Microblaze作為控制器通過執(zhí)行由C語言編寫的軟件程序?qū)崿F(xiàn)對(duì)CAM的控制,它的具體操作流程如圖6所示。
在系統(tǒng)內(nèi)部,整個(gè)工程的實(shí)現(xiàn)和下載共分成4步:首先產(chǎn)生系統(tǒng)的硬件網(wǎng)表,即對(duì)嵌入式系統(tǒng)進(jìn)行綜合;其次產(chǎn)生系統(tǒng)硬件架構(gòu)的比特流文件;再次編譯軟件,并將軟件代碼生成的比特流和系統(tǒng)硬件的比特流合二為一,構(gòu)成完整的系統(tǒng)描述比特流;最后將完整的比特流下載到FPGA芯片中。
4.4 驗(yàn)證結(jié)果分析
經(jīng)過對(duì)處理結(jié)果分析可知,此系統(tǒng)驗(yàn)證了設(shè)計(jì)算法的正確性。所搭建系統(tǒng)時(shí)鐘頻率為62.5 MHz,時(shí)鐘周期為16 ns,通過在代碼內(nèi)部添加時(shí)鐘計(jì)數(shù)器,并且使用ChipScope邏輯分析儀進(jìn)行波形分析,可知系統(tǒng)執(zhí)行一次篩選操作所需要的時(shí)鐘周期數(shù)為114 296 649個(gè),即1.8 s左右。
4.5 系統(tǒng)擴(kuò)展能力分析
在后續(xù)研究中通過對(duì)CAM容量的擴(kuò)展,可以增加待篩選目標(biāo)的數(shù)量。CAM容量的擴(kuò)展,需要占用更多的FPGA芯片資源,同時(shí)其運(yùn)行頻率會(huì)有所降低,以某Spartan3A芯片為例,三者之間的關(guān)系如表3、表4、表5所示。
考慮到成本問題,本設(shè)計(jì)所使用的芯片為賽靈思公司的型號(hào)為XC3S700AN,由表3~表5可知,在擴(kuò)展CAM容量時(shí),需要綜合考慮所需CAM容量、所選FPGA芯片資源情況以及運(yùn)行頻率三者之間的關(guān)系。
5 結(jié)論
采用賽靈思公司MicroBlaze軟核控制器和內(nèi)容可尋址存儲(chǔ)器(CAM)所搭建的目標(biāo)碰撞預(yù)警平臺(tái)實(shí)現(xiàn)了總目標(biāo)數(shù)為16的目標(biāo)群中危險(xiǎn)目標(biāo)的篩選操作。軟核控制器與CAM模塊同在一片F(xiàn)PGA芯片中實(shí)現(xiàn),管理和操作起來比較方便,便于系統(tǒng)實(shí)現(xiàn)小型化、集成化。受到FPGA自身容量的限制,在擴(kuò)展CAM容量時(shí)可以考慮選用更大容量的FPGA芯片,或者應(yīng)用外接大容量專有CAM芯片,實(shí)現(xiàn)大規(guī)模目標(biāo)的并行匹配操作。