文獻標識碼: A
文章編號: 0258-7998(2011)12-0029-04
在軍事應用領域,基于通用信號的處理平臺,,通常需要實現(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).