《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應(yīng)用 > 基于COM Express架構(gòu)的數(shù)據(jù)記錄儀的設(shè)計與實現(xiàn)
基于COM Express架構(gòu)的數(shù)據(jù)記錄儀的設(shè)計與實現(xiàn)
來源:電子技術(shù)應(yīng)用2011年第12期
王 維1,2,蔣景宏1,2,劉 垚1,2,蔡惠智1,2
1.中國科學(xué)院聲學(xué)研究所,北京100190; 2.北京中科海訊數(shù)字信號處理技術(shù)有限公司,北京100107
摘要: 為實現(xiàn)聲納數(shù)據(jù)的海量實時存儲,提出一種基于COM Express架構(gòu)的數(shù)據(jù)記錄儀的設(shè)計與實現(xiàn)方法。該記錄儀在COM Express載板上集成了ETXexpress處理器模塊、光纖數(shù)據(jù)采集子卡,以及由4個500 GB硬盤組成的RAID0存儲陣列。應(yīng)用結(jié)果表明,該記錄儀可以達(dá)到80 MB/s以上的實時存儲速率,很好地勝任了聲納數(shù)據(jù)的存儲任務(wù)。
中圖分類號: TP216+.2
文獻(xiàn)標(biāo)識碼: 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


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

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

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

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

2.2 光纖接口設(shè)計

 


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

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

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


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

    從表2可以看出,該記錄儀的存儲速率受單次存盤數(shù)據(jù)長度的影響較大,受單次DMA長度影響相對較小。其原因是:(1)PCIE的數(shù)據(jù)傳輸速率遠(yuǎn)大于數(shù)據(jù)的存盤速率;(2)非實時操作系統(tǒng)軟件開銷較大,對相同大小的數(shù)據(jù)量進(jìn)行操作的次數(shù)越多,所花費的時間就越長。因此,使用時應(yīng)該盡量增大單次存盤的數(shù)據(jù)長度,以提高記錄儀的存儲性能。
    本文實現(xiàn)了一種基于COM Express架構(gòu)的新型記錄儀的設(shè)計,該設(shè)計主要完成了光纖數(shù)據(jù)的高速采集、與處理器模塊之間的DMA傳輸以及對數(shù)據(jù)的高速存儲。實際應(yīng)用表明,該記錄儀與傳統(tǒng)的記錄儀相比較,在穩(wěn)定性和存儲速率方面都得到了極大的提升,可以很好地勝任未來聲納數(shù)據(jù)的采集存儲的需要。而且由于COM Express是一種開放的架構(gòu),提供了許多主流的高速接口,可以靈活地擴(kuò)展其他的功能模塊,給嵌入式設(shè)計也提供了一種新的思路。
參考文獻(xiàn)
[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)代雷達(dá),2011(1).
[4] 馬萍,唐衛(wèi)華,李緒志.基于PCI Express總線高速采集卡的設(shè)計與實現(xiàn)[J].微計算機(jī)信息,2008(9).
[5] 劉凱,徐欣.基于Vertex5的PCI-Express的總線接口設(shè)計[J].現(xiàn)代電子技術(shù),2008(5).

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。