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