文獻標識碼: A
文章編號: 0258-7998(2014)09-0072-03
相控陣雷達是一種多功能、高性能的雷達,具有多功能、多目標、遠距離、高數據率、高可靠性及自適應能力強等優(yōu)點[1]。隨著計算機和集成電路等相關技術的發(fā)展,相控陣雷達在地基、?;⒖栈约疤旎玫搅藦V泛的應用。隨之而來的是,數據記錄的速率和容量也需要相應提升。
而近年來存儲技術發(fā)展得很快,自2001年SATA1.0標準提出,如今SATA接口協(xié)議第三代已經達到了6.0 Gb/s[2]。新一代的SSD(Solid State Disk)基于Nand Flash存儲技術提供了超過了200 MB/s傳輸帶寬以及更低的功耗[3]。這些都為相控陣雷達的數據高速大容量存儲提供了支持。本文針對傳統(tǒng)記錄回放系統(tǒng)的兩種架構,設計并實現了一種通用的記錄回放系統(tǒng),由FPGA控制SATA IP核實現相控陣雷達天線陣面數據的高速存儲。
1 問題的提出
傳統(tǒng)典型的高速數據記錄回放系統(tǒng)一般采用兩種架構,即PCIE總線和自定義Flash存儲陣列架構。PCIE總線架構框圖如圖1所示。
CPU模塊通過PCIE總線接收采集模塊的數據放入內存,然后再經由PCIE總線將內存中的數據送給RAID控制模塊,完成一次記錄操作。在操作過程中,數據流兩次經過內存,采集模塊和RAID控制模塊共享PCIE總線,兩個模塊分時通過PCIE總線傳輸數據。這種架構的記錄回放系統(tǒng)有以下缺陷:(1)PCIE對于系統(tǒng)來說,只用到了50%效率;(2)系統(tǒng)記錄回放速度受限于PCIE總線的傳輸速度。
自定義Flash存儲陣列架構框圖如圖2所示。該系統(tǒng)為一個獨立模塊,把Flash芯片分成多個組,通過擴展Flash的位寬、深度提高記錄速度和存儲容量。FPGA將數據通過Flash的數據線、地址線存到Flash陣列里。這種架構的記錄回放系統(tǒng)有以下缺陷:(1)存儲接口不是基于標準的傳輸存儲協(xié)議,而且受限于Flash芯片類型,使得系統(tǒng)的通用性與擴展性受限;(2)一般自定義接口規(guī)范用于滿足某種特定雷達的指標,一旦指標發(fā)生變化,或者不能滿足雷達系統(tǒng)性能提升的要求,硬件就需要重新設計,造成一定的資源浪費。
2 問題的解決思路
根據以上的對比,可以將兩者優(yōu)點結合起來,提出一種新的記錄回放系統(tǒng)結構。最直接的方式就是在自定義Flash存儲陣列系統(tǒng)中,選用標準的存儲協(xié)議接口代替自定義接口。目前,主流的存儲協(xié)議有IDE、SCSI、SATA等。IDE和SCSI屬于并行接口,在高速的數據傳輸存儲中,并行傳輸的碼間串擾等問題會使誤碼率大大提高,而串行接口協(xié)議就很好地解決了這些問題,該協(xié)議已經相對成熟;SATA二代支持3 Gb/s的傳輸帶寬,并且其結構簡單,易于開發(fā)[2]。圖3為SATA陣列記錄回放系統(tǒng)框圖。
本設計中,在FPGA內部實現SATA硬盤的讀寫操作。為了提高記錄回放速度,在FPGA里還實現了RAID0功能,對多個硬盤并行讀寫。系統(tǒng)的存儲容量和記錄速度可根據配置硬盤的數量靈活調整,大大增強了通用性和可擴展性。
3 實現
FPGA內部的SATA硬盤控制設計是記錄回放系統(tǒng)的核心。系統(tǒng)選用Xilinx公司的Viretx-5的FPGA芯片,芯片型號為XC5VSX50T。芯片內部集成的GTP可以滿足SATA2.0協(xié)議中要求的3.0 Gb/s的數據傳輸速率。本系統(tǒng)實現了兩路SATA硬盤的并行讀寫,下面對該設計進行詳細闡述。
3.1 SATA硬盤控制
使用SATA IP核實現硬盤的讀寫操作。IP符合SATA協(xié)議要求,采用3層設計,即物理層、鏈路層和傳輸層。應用層邏輯開發(fā)基于傳輸層。傳輸層包含兩個接口,控制接口和數據接口??刂平涌趯崿F對IP內部的寄存器操作;數據接口采用FIFO技術,為用戶提供讀寫數據通道。應用層對IP核的寄存器進行控制,實現對硬盤的DMA數據傳輸,表1列出了寄存器的詳細信息。
系統(tǒng)采用DMA傳輸對硬盤進行數據讀寫。圖4給出了應用層中一次DMA操作的流程圖。圖5和圖6分別為在DMA操作過程中寄存器讀寫和數據傳輸時序圖。
3.2 RAID0控制
為了提高記錄回放速度,需要使用多個硬盤組成陣列。本系統(tǒng)在FPGA內部開發(fā)了兩個硬盤并行讀寫的RAID0控制功能模塊,設計原理如圖7所示。通過擴展位寬的方式實現兩個硬盤的同步讀寫。
3.3 數據管理
傳統(tǒng)的數據記錄回放系統(tǒng)直接以文件形式記錄數據,文件形式的數據可以在操作系統(tǒng)下方便靈活地訪問,但受到文件系統(tǒng)對文件的管理約束,記錄過程中的數據不一定連續(xù)存儲在硬盤的連續(xù)邏輯塊地址上[7]。在該記錄系統(tǒng)中,數據是順序存儲到硬盤中的,可以在一定程度上提高記錄系統(tǒng)的帶寬。因此采用了自定義的文件系統(tǒng),將磁盤的存儲空間分為管理區(qū)、標識區(qū)和數據區(qū)。數據區(qū)存放實際的數據;管理區(qū)存放的是記錄的文件的信息,一般包括數據的存儲位置信息、長度信息及數據到文件的映射信息;標識區(qū)是標記磁盤的空間使用情況。圖8為自定義文件系統(tǒng)結構示意圖。
該記錄回放系統(tǒng)的數據管理可以分為三個步驟,首先要劃分好硬盤中管理區(qū)、標識區(qū)和數據區(qū)的容量,構建好文件系統(tǒng)的框架;然后把經過記錄的數據順序地存放在數據區(qū);最后在一個文件記錄結束后,把文件的位置、大小、文件的標識符等相關信息添加到管理區(qū)和標識區(qū)。
在每次記錄開始前要先遍歷管理區(qū)中的標識區(qū),根據標識區(qū)的值來獲得記錄的起始地址。根據系統(tǒng)的設計,記錄的數據都是放在數據區(qū)的,如果標識區(qū)表明數據區(qū)為空,那這次記錄的起始地址就是數據區(qū)的起始地址,一般情況下是要緊接著上一個文件的結束地址來存儲。如果數據區(qū)被寫滿,會提示是否要清空磁盤的數據,包括數據區(qū)中存儲的數據和管理區(qū)中存儲的文件的相關信息。記錄時,數據被順序存放到數據區(qū)。記錄結束時,要將文件的信息寫到管理區(qū)相應的位置,當然管理區(qū)也是順序讀寫的,同時要更新標識區(qū)的標識,以便下次記錄時計算數據記錄的起始地址。
4 系統(tǒng)性能測試
在對該記錄回放系統(tǒng)進行測試時,選用兩塊Intel 公司的固態(tài)硬盤作為存儲介質,型號為SSDSA2SH064G1GC,單盤標稱的讀速率為250 MB/s,寫速率為170 MB/s,容量為64 GB,在Xilinx ISE 14.6中的Chip Scope來觀察波形。在實際測試中,每個盤一次讀寫256個扇區(qū),最后測得平均記錄速率為292 MB/s,回放速率為340 MB/s。同時經過數據比對,記錄回放的數據沒有出現錯誤。圖9和圖10分別為讀寫硬盤時的波形圖。
針對相控陣雷達天線陣面?zhèn)鹘y(tǒng)記錄回放系統(tǒng)的不足,實現了一種通用性好、集成度高的SATA陣列記錄回放系統(tǒng)。系統(tǒng)基于FPGA實現對SATA硬盤的讀寫,既滿足了對數據存儲速率帶寬的要求,而且不用重新繪制電路板,就可以應用在不同型號的雷達上。本系統(tǒng)實現了RAID0功能,兩個硬盤并行讀寫,平均記錄速率為292 MB/s,回放速率為340 MB/s。同時,采用自定義的文件管理系統(tǒng),結構簡單,便于管理。為了實現更高的速率,可以在目前實現的兩路硬盤并行讀寫擴展為8路硬盤同時讀寫,這也是本文的下一步工作。
參考文獻
[1] 胡善清,劉峰,龍騰.相控陣雷達光纖傳輸系統(tǒng)的設計與實現[J].光通信技術,2006(5):27-30.
[2] 唐純杰.SATA協(xié)議分析及其FPGA實現[D].長沙:湖南大學,2009.
[3] 王超,劉偉,張德聰.基于SATA的嵌入式直接存儲系統(tǒng)[J].計算機工程,2012,38(12):232-235.
[4] 王超,劉偉.基于文件系統(tǒng)的高速數據記錄系統(tǒng)[J].北京理工大學學報,2010,30(5):543-547.
[5] 張樂峰,徐安林,胡衛(wèi)東.一種通用的雷達回波記錄系統(tǒng)設計方法[J].數據采集與處理,2009(24):272-276.
[6] Xilinx,Inc..Virtex-5 FPGA serial ATA generation 2 protocol standard[Z].2007.
[7] 張昆帆.高速數據采集和存儲[J].現代雷達,2004,26(4):14-16.
[8] 周雙喜.基于FPGA的高速數據記錄系統(tǒng)的研究[D].成都電子科技大學,2010.