《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于COM Express架構的數(shù)據(jù)記錄儀的設計與實現(xiàn)
基于COM Express架構的數(shù)據(jù)記錄儀的設計與實現(xiàn)
來源:電子技術應用2011年第12期
王 維1,,2,蔣景宏1,,2,,劉 垚1,2,,蔡惠智1,2
1.中國科學院聲學研究所,北京100190,; 2.北京中科海訊數(shù)字信號處理技術有限公司,北京100107
摘要: 為實現(xiàn)聲納數(shù)據(jù)的海量實時存儲,提出一種基于COM Express架構的數(shù)據(jù)記錄儀的設計與實現(xiàn)方法,。該記錄儀在COM Express載板上集成了ETXexpress處理器模塊,、光纖數(shù)據(jù)采集子卡,以及由4個500 GB硬盤組成的RAID0存儲陣列,。應用結果表明,,該記錄儀可以達到80 MB/s以上的實時存儲速率,很好地勝任了聲納數(shù)據(jù)的存儲任務,。
中圖分類號: TP216+.2
文獻標識碼: A
文章編號: 0258-7998(2011)12-0029-04
The design and implementation of a data recorder based on COM Express architecture
Wang Wei1,,2,Jiang Jinghong1,,2,,Liu Yao1,2,,Cai Huizhi1,,2
1.Institute of Acoustic, Chinese Academy of Sciences, Beijing 100190,China,; 2.Beijing Zhongkehaixun Digital Signal Processing Technology Co. Ltd, Beijing 100107,,China
Abstract: In order to implement the real-time mass data storage in the SONAR system, a method of data recorder's design and implementation which based on COM Express architecture is proposed. The recorder integrated ETXexpress CPU module, fabric data acquisition board and RAID0 storage array that composed by four 500 GB hard-disks on a COM Express carrier board. The results of application indicated that, the real-time storage velocity of the recorder can be above 80 MB/s, and it can be competent for task of SONAR data storage.
Key words : COM Express;PCI Express BUS,;recorder,;fabric data acquisition


    在軍事應用領域,基于通用信號的處理平臺,,通常需要實現(xiàn)高速大容量的數(shù)據(jù)存儲,。如何解決數(shù)據(jù)I/O和存儲帶寬瓶頸,以滿足雷達,、聲納等系統(tǒng)對高速大容量數(shù)據(jù)存儲的要求,,以及如何基于不同的架構平臺,開發(fā)通用,、開放的存儲模塊,,是需要解決的一個問題。
    現(xiàn)階段聲納某型數(shù)據(jù)記錄儀采用CPCI架構,,記錄儀中的數(shù)據(jù)采集板卡與信號處理機之間的通信接口采用并行的LVDS連接線,,數(shù)據(jù)采集板卡通過PCI總線將接收到的數(shù)據(jù)提交至主控板進行存儲。由于受并行連接線間串擾和PCI總線帶寬的雙重限制,,記錄儀的性能,、通用性和可擴展性差,存儲速率也不理想,,不能很好地滿足未來聲納系統(tǒng)對實時數(shù)據(jù)存儲的要求,。因此,,基于新架構和高速串行總線的數(shù)據(jù)記錄儀的研究變得十分迫切。
    基于上述問題,,本文提出了一種基于COM Express架構的新型數(shù)據(jù)記錄儀的設計與實現(xiàn)方法,,并且對其硬件重要組成部件——光纖采集子卡進行了詳細討論,最后給出了測試結果,。
1 記錄儀系統(tǒng)結構與關鍵技術
1.1 記錄儀系統(tǒng)結構

    本設計從架構體系和總線結構兩個方面進行考慮,,選擇了德國控創(chuàng)公司的ETXexpress-PC模塊作為處理器單元,在COM Express載板上設計了XMC-PCIE規(guī)格的夾層卡作為光纖數(shù)據(jù)采集模塊,,同時使用4個500 GB的磁盤組成RAID0存儲陣列完成新型記錄儀的設計,。記錄儀結構框圖如圖1所示。

    控創(chuàng)公司的ETXexpress-PC模塊使用Intel公司的45 nm工藝級酷睿2雙核處理器以及GS45和ICH9M芯片組,,支持SATA ,、USB、PCI Express,、千兆以太網等高速接口,,并且模塊都嚴格遵循COM Express規(guī)范,便于載板的升級,,減少了重復設計帶來的資源浪費[1],。
    為加速產品的開發(fā),記錄儀主要是在控創(chuàng)公司提供的一款COM Express評估板的基礎上進行設計的,。在有限的載板空間上,,為了給光纖采集卡提供足夠的安裝空間,設計保留了原載板的VGA,、PS/2,、RS232、USB,、LAN等必須的外圍接口,,去掉了Express Card、Mini Express等記錄儀不需要卻占用大量空間的接口,。載板上沒有給硬盤留出空間,,是因為實際應用中為了方便硬盤的拆卸和更換,記錄儀的機箱設計了專門的硬盤倉,。SATA硬盤是通過定制的加固SATA連接線與載板連接,,所以只需要在載板的合適位置安裝上定制的SATA卡座即可。
1.2 關鍵技術
    COM(Computer On Module)Express是國際工業(yè)電氣協(xié)會(PICMG)定義的計算機模塊標準,,由幾大嵌入式工業(yè)計算機廠商共同制定[2],。COM Express的處理器模塊集成了CPU和南北橋芯片,所有的I/O功能都通過AB和CD兩個440 PIN的雙排連接器實現(xiàn),。其中,,AB連接器定義了PCI Express、SATA,、SDVO,、千兆以太網以及USB等高速接口,CD連接器定義了PCI,、IDE等傳統(tǒng)的并行總線接口,。用戶可以根據(jù)不同的應用場合選擇不同CPU性能、功耗,、I/O能力的處理器模塊,,以及開發(fā)不同的功能模塊。功能模塊一般都設計成標準的接口,,通過特定的連接器與載板相連,。與傳統(tǒng)的CPCI架構相比,COM Express具有接口豐富,、使用靈活,、開發(fā)周期短的優(yōu)勢。
    數(shù)字光纖通信是一種遠程數(shù)據(jù)傳輸技術,,具有高帶寬,、低延遲、高可靠性,、傳輸距離長,、抗干擾性強、技術成熟等優(yōu)點[3],。點到點的光纖通信速率可以達到2 Gb/s~4 GB/s,,在遠程數(shù)據(jù)采集、遠程實時監(jiān)控的領域有著廣泛的應用前景,。本設計選用光纖來代替并行LVDS連接線作為記錄儀數(shù)據(jù)采集接口,,很好地克服了高速串擾和通信距離的問題。
    傳統(tǒng)的32 bit/33 MHz PCI總線的理論傳輸速率為133 MB/s,,遠遠達不到要求,,成為了制約記錄儀存儲性能的主要因素。PCI Express是第三代高性能I/O總線,,在總線結構上由并行總線變?yōu)榱舜锌偩€,,采用點到點的互連,大大提高了系統(tǒng)的傳輸帶寬,。并且其總線結構從地址空間,、配置機制以及軟件上均保持了與PCI總線的兼容[4]。使用PCIE總線代替PCI總線作為數(shù)據(jù)采集卡與主控板之間的數(shù)據(jù)通路,,不僅可以大幅提高存儲的性能,,還可以保持良好的向上兼容性,。
    磁盤陣列(RAID)是指將多臺硬盤通過RAID控制器(軟件或硬件控制器)組合成虛擬單臺大容量硬盤的使用,通過資源冗余來提供各種服務質量,。例如,,將多個獨立的磁盤組織成一個邏輯盤,提供更大的存儲容量,;通過數(shù)據(jù)分割,、多通道并行來提高數(shù)據(jù)的I/O速率;通過保存冗余的數(shù)據(jù),、校驗信息來提高存儲系統(tǒng)的可靠性等,。使用多磁盤的RAID技術將大大提高存儲容量、存儲速率以及可靠性,。
2 光纖采集卡的設計
2.1 光纖采集卡概述

    光纖采集卡是記錄儀的核心部分,。板卡是基于Xilinx公司的一款Virtex5系列FPGA芯片XC5VLX50T進行開發(fā)的,遵循VITA42.3 XMC PCI Express規(guī)范所定義的尺寸形狀和機械結構,,使用Samtec公司的標準XMC連接器ASP-105885與COM Express載板之間進行互連通信,。板卡主要由光纖接口模塊、DDR2高速緩存模塊,、PCIE接口模塊,、電源管理模塊、時鐘管理模塊和復位電路組成,,其系統(tǒng)框圖如圖2所示,。

2.2 光纖接口設計

 


    光纖模塊采用FINISAR公司的FTLF1321 SFP高速收發(fā)器。光纖采集的工作流程是:光纖收發(fā)器接收數(shù)據(jù)并進行光電轉換,,然后將串行的數(shù)據(jù)傳輸?shù)紽PGA的Rocket IO硬核進行串并轉換,,最后將并行的數(shù)據(jù)存儲到FPGA的內部FIFO中。為了增加數(shù)據(jù)的可靠性,、降低誤碼率,,以及匹配收發(fā)雙發(fā)的速率,需要引入流控,、數(shù)據(jù)管理和編解碼的機制,,因此,設計使用了Xilinx公司免費提供的Aurora協(xié)議對光纖通道進行驅動和管理,。Aurora協(xié)議是一種簡潔,、輕量級、可裁剪的通信協(xié)議,,使用非常靈活,,占用系統(tǒng)資源少,并且可以擴展多路光纖通道,。
2.3 DDR2高速緩存設計
    由于數(shù)據(jù)采集系統(tǒng)都是實時系統(tǒng),,所采集的數(shù)據(jù)持續(xù)地送往記錄儀,,而Windows操作系統(tǒng)的非實時性、內核調度以及多線程操作的不可預知性,,導致可能出現(xiàn)數(shù)據(jù)丟失,。因此,為了保證記錄儀的可靠性并減輕處理器模塊的緩存壓力,,應在光纖采集卡上設計容量大、快速存取能力的緩存裝置,。板卡選用了2片Micron公司的MT47H128M16B型號的DDR2 SDRAM進行高速緩存,。該芯片采用1.8 V核電壓,最高支持667 MHz時鐘頻率,。本設計采用Xilinx公司的內存管理生成器IP核MIG3.1來開發(fā)DDR2控制器,,完成FPGA對DDR2的控制。DDR2控制器在管理數(shù)據(jù)高速緩存的同時,,還需要管理與PCIE總線控制模塊的DMA傳輸中斷請求,。
2.4 PCIE總線控制邏輯設計
    PCIE總線控制邏輯是光纖采集卡的難點。由于XC5VLX50T器件內嵌了PCIE endpoint block(端點模塊),,該IP核實現(xiàn)了PCIE總線的完整功能,,因此可以選用FPGA的PCIE endpoint block硬核和Rocket IO硬核來實現(xiàn)PCIE協(xié)議的物理層、鏈路層和傳輸層的功能[5],。PCIE總線與處理器的交互可以通過PIO或DMA兩種方式進行,。PCIE硬核本身只包含了PIO的功能模塊,而PIO模式需要CPU的參與,,因此會影響到CPU的運行效率,。為滿足數(shù)據(jù)實時高速的存儲,自行設計了DMA控制器來完成DMA功能,。PCIE協(xié)議規(guī)定,,PCIE的事務可分為四種:存儲器事務、IO事務,、配置事務和消息事務,。事務的執(zhí)行或者完成由發(fā)送和接收事務包(TLP)具體實現(xiàn),也即PCIE端點與CPU之間通過TLP進行通信,。本設計中主要需要使用的TLP包括:存儲器讀TLP(MRd),、存儲器寫請求TLP(MWr)和帶數(shù)據(jù)的完成TLP(CplD)。因此PCIE總線控制邏輯的重點是PCIE事務包的構建與解析,、中斷的管理以及DMA傳輸?shù)目刂?。DMA控制邏輯框圖如圖3所示。

    圖3中主要模塊功能如下:
    (1)DMA狀態(tài)/控制寄存器模塊主要負責板卡狀態(tài)的管理,、DMA傳輸?shù)墓芾硪约爸袛嘈盘柕牟糠止芾?。在例化PCIE endpoint block硬核時,,向系統(tǒng)申請128 B的BAR0存儲器空間來存放這些寄存器,主要的寄存器如表1所示,。板卡驅動加載后,,CPU會讀取StutasReg寄存器來察看板卡的狀態(tài),如果光纖鏈路或者PCIE鏈路出現(xiàn)故障,,模塊負責給出相應的故障指示信號,。如果板卡狀態(tài)正常,CPU會向CtrlReg寄存器寫入DMA傳輸?shù)牡刂泛烷L度信息,,向IntReg寄存器寫入相應中斷的使能標志,。

    (2)數(shù)據(jù)發(fā)射機模塊負責從數(shù)據(jù)準備模塊讀取數(shù)據(jù),構建MRd,、MWr,、CplD事務包,并且發(fā)送到endpoint block,。數(shù)據(jù)準備模塊所組織的數(shù)據(jù)來自于發(fā)送 FIFO或者DMA 狀態(tài)/控制寄存器,。
    (3)數(shù)據(jù)接收模塊負責從endpoint block接收并解析MRd、MWr,、CplD事務包,,將接收到的數(shù)據(jù)存儲到接收 FIFO、DMA 狀態(tài)/控制寄存器,,或者通知數(shù)據(jù)發(fā)射機模塊構建相應的CplD事務包,。
    (4)中斷管理模塊負責中斷信號的產生、清除,、復位,,主要管理了四種類型的中斷:DMA讀中斷請求、DMA讀完成中斷請求,、DMA寫中斷請求和DMA寫完成中斷請求,。其中,DMA中斷讀/寫請求由DDR2控制器給出,,用于通知CPU光纖采集卡中空余的緩沖空間/緩存的數(shù)據(jù)量足以達到一次讀/寫DMA傳輸?shù)拈L度,;DMA讀/寫完成中斷由中斷管理模塊給出,用于通知CPU此次讀/寫DMA傳輸已經完成,。
    一次寫DMA數(shù)據(jù)傳輸?shù)牧鞒倘缦拢?1)DDR2緩存模塊對光纖接收的數(shù)據(jù)進行緩存,,當緩存的數(shù)據(jù)量達到設定的閾值以后向中斷管理模塊發(fā)出DMA寫中斷請求。中斷管理模塊將這個中斷傳遞到endpoint block,,經PCIE鏈路去中斷CPU,,同時寫IntReg寄存器記錄本次中斷的類型。(2)CPU收到中斷后發(fā)起一個存儲器讀事務,讀取IntReg寄存器的相應位,。經過判斷是DMA寫中斷請求以后,,向CtrlReg寄存器發(fā)起一個存儲器寫事務來啟動DMA傳輸。同時CPU向IntReg寄存器發(fā)起存儲器寫事務來關閉DMA寫中斷,,打開DMA完成寫中斷,。(3)DMA啟動以后,CPU就不用參與數(shù)據(jù)的傳輸了,,剩下的傳輸工作交給DMA控制器完成,。數(shù)據(jù)的寫DMA傳輸實質上就是DMA控制邏輯不斷地向板卡驅動的DMA緩沖區(qū)發(fā)存儲器寫TLP。每發(fā)送一個TLP,,DMA的傳輸長度值就會減去上次TLP數(shù)據(jù)的長度,,一直減到零為止。(4)當DMA傳輸結束以后,,中斷管理器會向CPU發(fā)送DMA寫完成中斷,,同時再次寫IntReg寄存器記錄本次中斷的類型,。(5)CPU收到并判斷這個中斷后,,會通知應用程序讀取收到的數(shù)據(jù)進行存盤,同時打開DMA寫中斷,,關閉DMA寫完成中斷,,等待下一次的寫DMA傳輸。
3 系統(tǒng)調試與性能測試
    為驗證系統(tǒng)設計的DMA傳輸符合Xilinx的PCI Express endpoint block IP核所規(guī)定的時序以及SATA存儲的性能,,搭建了一個記錄儀存儲測試平臺,。該平臺由信號處理機通過光纖向記錄儀發(fā)送以32 bit字長遞增的數(shù)據(jù)進行存儲。FPGA的硬件邏輯在Xilinx集成開發(fā)環(huán)境ISE11.2下進行,,因此可以使用在線邏輯分析儀ChipScope捕捉到如圖4所示的DMA傳輸時序圖,。


    從圖4可以看出,在trn_sof_n和trn_eof_n的兩個低電平之間就是PCIE總線傳輸?shù)?個TLP,,完全符合endpoint block IP核的時序要求,,驗證了DMA的邏輯設計。
    在完成了數(shù)據(jù)從采集卡DMA傳輸?shù)津寗映绦蚓彌_區(qū)的操作后,,由應用程序完成從驅動中提取數(shù)據(jù)并且進行寫磁盤的操作,。最后通過Matlab程序對存盤數(shù)據(jù)的讀取校驗,驗證了記錄儀所記錄數(shù)據(jù)的正確性,。表2給出了在不同單次DMA長度和單次存盤長度下的平均存盤速率的影響,。

    從表2可以看出,該記錄儀的存儲速率受單次存盤數(shù)據(jù)長度的影響較大,,受單次DMA長度影響相對較小,。其原因是:(1)PCIE的數(shù)據(jù)傳輸速率遠大于數(shù)據(jù)的存盤速率;(2)非實時操作系統(tǒng)軟件開銷較大,對相同大小的數(shù)據(jù)量進行操作的次數(shù)越多,,所花費的時間就越長,。因此,使用時應該盡量增大單次存盤的數(shù)據(jù)長度,,以提高記錄儀的存儲性能,。
    本文實現(xiàn)了一種基于COM Express架構的新型記錄儀的設計,該設計主要完成了光纖數(shù)據(jù)的高速采集,、與處理器模塊之間的DMA傳輸以及對數(shù)據(jù)的高速存儲,。實際應用表明,該記錄儀與傳統(tǒng)的記錄儀相比較,,在穩(wěn)定性和存儲速率方面都得到了極大的提升,,可以很好地勝任未來聲納數(shù)據(jù)的采集存儲的需要。而且由于COM Express是一種開放的架構,,提供了許多主流的高速接口,,可以靈活地擴展其他的功能模塊,給嵌入式設計也提供了一種新的思路,。
參考文獻
[1] Kontron Corporation.ETXexpress-PC user′s guide.http:// www.kontron.com,,2009.
[2] PEBLY B.COM Express:the next generation computer on module standard.Principal system engineer[M].Radisys Corporation,2005.
[3] 代孝森,,張晉寧,,沈輝.基于PCI Express總線的光纖檢測系統(tǒng)[J].現(xiàn)代雷達,2011(1).
[4] 馬萍,,唐衛(wèi)華,,李緒志.基于PCI Express總線高速采集卡的設計與實現(xiàn)[J].微計算機信息,2008(9).
[5] 劉凱,,徐欣.基于Vertex5的PCI-Express的總線接口設計[J].現(xiàn)代電子技術,,2008(5).

此內容為AET網站原創(chuàng),未經授權禁止轉載,。