摘? 要: 軍事領域常選擇ADI公司的TS201芯片用于信號處理平臺,但由于其采用基于電路交換的LINK口進行連接,難以實現軍方對電子系統設計提出的可重構性的需求。FPGA可以用來實現接口轉換功能,如果利用FPGA將基于電路交換的LINK口轉換成基于包交換的其他形式的接口,就能在不改變硬件連接的基礎上,實現DSP系統的重構。本文介紹了一種基于串行RapidIO技術的可重構的信號處理平臺,并對其中核心的FPGA的邏輯設計進行了討論。
在雷達、聲納、電子對抗等軍用電子設備中,數字信號處理機作為實現信號處理算法的平臺,起著至關重要的作用。在傳統的信號處理平臺中,軍事領域多選用ADI公司的TigerShark系列的DSP芯片作為信號處理單元,在PCB的板內和板間采用高速的LINK口進行互聯。
LINK口是一種源同步接口,可以達到很高的傳輸速度。但是,由于LINK口是基于電路交換的接口,連接的雙方獨占一條通路,LINK口一旦在硬件上連接起來,系統中的DSP網絡拓撲就固定不變了。由于信號處理算法的多樣性,系統中數據流的方向也很不確定,固定的DSP拓撲網絡只能針對一定的算法達到最優,當數據流方向改變較大時,同樣的信號處理平臺的傳輸效率就會大大降低。這時,如果能夠重新調整DSP網絡的拓撲結構,會大大提高平臺的性能。
為了實現系統可重構的特性,需要利用專門的FPGA芯片,將基于電路交換的LINK口轉換成基于(帶有路由信息的)包交換的其他格式的接口進行傳輸。現在比較流行的基于包交換的接口有串行 RapidIO接口、 PCI Express接口和千兆以太網接口等。
串行RapidIO、PCI Express和千兆以太網技術都可以提供高速、可靠的點對點互聯。串行RapidIO技術是專門為嵌入式系統互聯而設計的,只要有足夠多的交換機,就可以實現任意結構的拓撲。PCI Express技術是著眼于最大的兼容PCI總線技術而設計,為了能夠兼容傳統的PCI總線技術,PCI Express的拓撲結構只能是樹形結構。這種結構在PC機和服務器內非常適用,如果合適的話,也能用在嵌入式系統內。但在PCI Express的結構中除了要有交換機,還需要有一個根聯合體來做統一的管理,這增加了硬件的開銷。千兆以太網技術是百兆以太網技術的升級,最初用于局域網內和廣域網內的互聯,是非常可靠的互聯選擇。但千兆以太網技術較前2種技術的效率稍低,而且系統延時較大,不太適合實時嵌入式系統內部的互聯。在這3種技術中,串行RapidIO技術是在嵌入式系統內實現互聯的最佳選擇[1]。
1 RapidIO技術
RapidIO是一種高性能、低引腳數、基于包交換的系統級互聯協議,是專門為多種多樣的嵌入式系統互聯而建立的一種標準[1]。RapidIO接口主要適用于芯片到芯片和電路板到電路板之間的連接。在2008年3月由RapidIO組織公布的2.0版本的規范中,串行RapidIO鏈路可以支持每路1.25、2.5、3.125、5、6.25 GBaud的傳輸速率[2](1,2,2.5,4,5 Gb/s的有效數據率)。現在FPGA的IP核能夠支持的主流配置是x1或x4的鏈路,每路支持2.5 Gb/s或3.125 Gb/s的傳輸速率。因此,如果采用x4的鏈路和3.125 Gb/s傳輸速率,就可以達到雙向各12.5 Gb/s的帶寬。另外,RapidIO也提供了較高級別的錯誤管理和錯誤恢復機制,是一種比較穩定和可靠的互聯選擇[3]。
2 系統結構設計
2.1 板卡內DSP的連接結構
DSP板是信號處理系統中最基本的組成模塊,它的結構固定不變。本文選擇ADI公司的TS201系列芯片。每塊TS201芯片帶有4個高速LINK口,其中3個LINK口用于板卡內DSP之間的連接,1個LINK口用來通過FPGA進行協議轉換,轉成串行RapidIO接口,實現與其他板卡之間的連接。板卡上共采用6塊TS201芯片,其拓撲結構如圖1所示。圖中虛線部分表示DSP芯片之間的LINK口連接,實線部分表示DSP與FPGA的LINK口連接。
這種拓撲結構能夠達到板卡內DSP之間較高的傳輸速度,因為每個DSP直接或最多經過一次中轉就能與板上任意其他的DSP進行通信。
2.2 板卡間DSP的連接結構
在DSP板板卡之間用RapidIO接口連接有很多好處。最直接的好處是,由于RapidIO采用的是串行總線,這使得背板上的布線設計不再困難,系統可以擴展得更大。更重要的是,由于RapidIO是以數據包的格式傳送數據的,用戶可以通過改變數據包包頭中的路由信息來改變數據的流向。這使得系統的重構變得十分容易。DSP板在系統中的連接如圖2所示。
在系統內, 任意2片(不同板卡上的)DSP芯片之間都可以建立連接。例如:如果用戶想要將DSP板1上的DSP4中的數據發送給DSP板3上的DSP6,只需在系統上電時提前將DSP板1上的FPGA內部控制路由的寄存器(目標板ID號設為3,目標DSP分配的地址設置為6)通過軟件設置好即可。交換機收到數據后,會根據數據包中用戶配置的路由信息將數據包送往目標DSP板,然后,目標DSP板上的FPGA進一步將數據發送到目標DSP芯片。在下一次的算法設計中,如果數據的流向改變很大時,用戶可以根據數據流向的特點,重新優化DSP網絡的拓撲結構,以適應不同的算法。
重構DSP網絡拓撲的過程在傳統的信號處理平臺中是很難實現的。在多數情況下,由于DSP拓撲結構不夠靈活,算法設計者受限于固定的DSP拓撲結構,只能降低系統的使用效率,從而使大量的DSP資源閑置,降低了系統的處理能力。而在這種新的信號處理平臺架構中,用戶只需要通過軟件界面設置路由信息即可完成整個平臺結構的改變,系統不會因為算法的改變而降低使用效率。
2.3 FPGA內部的邏輯設計
在DSP板卡上有一塊Altera公司的Stratix II GX系列的FPGA芯片。這塊FPGA芯片專門用來實現LINK口與RapidIO接口之間的數據轉換,將6路LINK口數據整合到1路RapidIO通路中。數據接收和發送的邏輯結構如圖3所示。
當DSP發送數據時,FPGA的LINK口接收模塊將收到的數據緩存到FIFO中,數據輪詢狀態機按順序檢查FIFO的存儲狀態。當FIFO內的數據滿足RapidIO包最大負載(256 B)時,啟動1次RapidIO數據發送操作。另外,由于LINK口傳輸協議不包含數據長度,所以1次LINK口傳輸的數據長度不可能正好是256 B的整數倍。如果當前FIFO內有低于256 B的數據,而當前LINK口又沒有處于傳輸狀態,也認為LINK口完成了1次數據發送,這時也啟動一次RapidIO數據發送操作。
在每次啟動RapidIO數據發送操作之前,配置寄存器模塊會根據不同的DSP號將對應的路由信息輸入給RapidIO的IP核。RapidIO的IP核負責將輸入的路由信息和數據一起打包并發送出去。
在RapidIO的數據接收端,當RapidIO核接收到數據時,首先檢查數據包包頭中的目標板ID號信息。如果目標板ID號與本地的ID號一致,說明數據包是發往這個板卡的,然后RapidIO核將接收到的數據和DSP地址信息傳遞給數據分發狀態機,由數據分發狀態機根據地址信息將數據分發到對應的FIFO中。最后,由LINK口發送模塊將數據傳給目標DSP。
這種將不同的信號相互交織在不同時間段內,沿著同一個信道傳輸,在接收端再用某種方法將各個時間段內不同的信號提取出來的方式,類似于通信中的時分復用的機制。
2.4 功能仿真
為了驗證rapidIO IP核的邏輯功能和LINK口與rapidIO接口的轉換邏輯功能,將2個rapidIO核的td[3:0],rd[3:0]對接起來。其中一個rapidIO核的后端連接發送數據包的控制邏輯,另一個rapidIO核后端連接接收數據包的控制邏輯。將LINK口邏輯、接口轉換邏輯和rapidIO核邏輯串接起來,然后在數據發送端施加激勵信號,在數據接收端進行數據檢驗。整個過程如圖4所示。
在仿真過程中,最關鍵的部分是驗證rapidIO核的邏輯功能。Altera公司提供的rapidIO IP核的邏輯層接口符合avalon總線的接口時序[4](avalon總線是由Altera公司提出,用于在基于FPGA的片上系統中連接片內處理器和片內外設的總線結構)。對rapidIO核的控制可以參照avalon規范[5]。
2.5 缺陷及解決方案
在系統中,每路LINK口實現300 MB/s的帶寬,如果6路LINK口同時發送數據,總帶寬將達到14 Gb/s,已經超出了RapidIO的IP核所能支持的最大帶寬。這時,RapidIO鏈路將成為數據傳輸的瓶頸,從而造成DSP的傳輸速率降低。另外,當少于3個DSP發送數據時,又會造成RapidIO鏈路的浪費。這像大城市中的交通一樣,在上下班高峰時道路會擁堵,在其他時間,道路又暢通無阻。生活中,很多人會避免上下班高峰時期出行。類似地,在使用此系統時,應該盡量避免在一塊DSP板卡上同時發送6個DSP的數據到其他板卡。
本文提出了一種利用RapidIO技術搭建的可重構的信號處理平臺,并簡要介紹了其邏輯功能的實現。該平臺的最大優勢就是系統的可重構性。使用這樣的信號處理平臺,DSP工程師可以根據不同算法的數據流向重新搭建出更加優化的DSP網絡拓撲結構,從而提高數據的傳輸效率。總之,可重構的信號處理平臺能夠靈活地改變系統中DSP網絡的拓撲結構以適應各種數據流向的應用,為用戶和國家節省大量的設備購買費用和研發時間。
評論
查看更多