周曉波,夏 敏,鄒浩杰
(北京交通大學 電子信息工程學院,北京 100044)
高速鐵路列車具有很高的運行速度,其無線通信網(wǎng)絡(luò)需要適應(yīng)高速的移動環(huán)境,支持列車最高速度500 km /h和平均速度350 km /h的運行情況。較高的運行速度會增加無線通信數(shù)據(jù)傳輸?shù)恼`碼率,并且會造成信號的衰落率較高,即信號的變化較快。因此需要快速跟蹤信道參數(shù)的變化,以降低無線傳輸?shù)恼`碼率。
對信道參數(shù)的跟蹤面臨高速數(shù)據(jù)的采集和傳輸問題。目前,國內(nèi)大部分的高性能數(shù)據(jù)采集卡都是基于PCI、CPCI和VME等總線,最高傳輸速率難以超過400 Mit/s。為解決傳統(tǒng)數(shù)據(jù)傳輸?shù)钠款i,提出基于PCI Express接口的高速傳輸系統(tǒng)設(shè)計方案。
經(jīng)簡化的PCI Express系統(tǒng)拓撲結(jié)構(gòu)中包括:根聯(lián)合體、交換器、終端和橋,如圖1。每條虛線均代表兩個PCI-E(PCI Express)設(shè)備之間的一條連接,這種連接稱為鏈路。
(1)根聯(lián)合體用于初始化整個PCI-E結(jié)構(gòu)并配置每條鏈路,將中央處理器(CPU)與交換器、終端和PCI-E to PCI橋這3項功能之中的一個或多個相連接。
(2)交換器用于將數(shù)據(jù)向下游路由并傳送至多個PCI-E端口,以及從每個獨立端口將數(shù)據(jù)向上游路由并傳送至單一的根聯(lián)合體。PCI-E交換器也可以從一個下游端口靈活地向另一個下游端口路由并傳送數(shù)據(jù),不再局限于傳統(tǒng)PCI系統(tǒng)所要求的嚴格的樹形結(jié)構(gòu)。
(3)終端通常駐留在應(yīng)用內(nèi),用于在系統(tǒng)中將應(yīng)用連接到PCI-E網(wǎng)絡(luò)。終端具有請求和完成PCI-E事務(wù)處理的功能。
(4)PCI-E to PCI橋用于將PCI-E與其他PCI總線標準(如PCI/PCI-X)相連接,適用于同時采用了這些體系架構(gòu)和PCI-E的系統(tǒng)。
圖1 PCI Express系統(tǒng)拓撲結(jié)構(gòu)
PCI Express設(shè)備之間為鏈路形式的互連,如圖2。在每個方向上都可以有×1、×2、×4、×8、×16 或×32 個信號對, 這些信號對稱為通道,每條通道在每個方向上的發(fā)送和接收速率為2.5 Gbit/ s。
圖2 PCI Express鏈路結(jié)構(gòu)
數(shù)據(jù)流向如圖3,其中,第2代雙倍數(shù)據(jù)率同步動態(tài)隨機存取存儲器(DDR2 SDRAM)對數(shù)據(jù)(DATA)進行緩存,F(xiàn)PGA主要完成數(shù)據(jù)的處理和傳輸,PC—固態(tài)硬盤/服務(wù)器,主要完成對數(shù)據(jù)的存儲和后期處理。
圖3 數(shù)據(jù)流向
FPGA是在復雜可編程邏輯器件(CPLD)的基礎(chǔ)上發(fā)展起來的新型高性能可編程邏輯器件,集成度很高,可以完成極其復雜的時序與組合邏輯電路功能,適用于高速和高密度的高端數(shù)字邏輯電路設(shè)計領(lǐng)域。高性能的固態(tài)硬盤提供極大的存儲空間或者利用服務(wù)器通過廉價冗余磁盤陣列(RAID)技術(shù)提供近乎無限的存儲空間, 而且使得數(shù)據(jù)存取速率成倍提升, 又有充足的運算資源進行數(shù)據(jù)采集的后期處理。本文主要討論采用PCI Express接口實現(xiàn)將采集的高速數(shù)據(jù)傳輸?shù)焦虘B(tài)硬盤的技術(shù),以及高速數(shù)據(jù)傳輸系統(tǒng)的設(shè)計。
本設(shè)計方案中采用模塊化設(shè)計思想。為提高設(shè)計性能,降低產(chǎn)品開發(fā)成本,縮短設(shè)計周期,采用IP核實現(xiàn)PCI Express協(xié)議和對DDR2 SDRAM的控制。
對設(shè)計方案進行如圖4的模塊劃分。在可編程邏輯器件領(lǐng)域,IP(Intellectual Property)核是指將一些數(shù)字電路中常用但比較復雜的功能模塊,設(shè)計成參數(shù)可修改的模塊,讓其他用戶可以直接調(diào)用這些模塊,從而簡化設(shè)計,縮短開發(fā)周期。
圖4 模塊劃分
2.3.1 DDR2 SDRAM控制器
DDR2 SDRAM控制器是通過行地址選擇(RAS#)、列地址選擇(CAS#)、寫使能(WE#)、時鐘使能(CKE)和芯片選擇(CS#)一組控制信號線組合成控制命令,完成對DDR2 SDRAM的操作,如寫命令、讀命令和空操作、加載模式寄存器、自動刷新、預充電、選擇組激活行等。
2.3.2 PCI Express模塊
PCI Express采用數(shù)據(jù)包方式在系統(tǒng)應(yīng)用層內(nèi)傳輸數(shù)據(jù),并用于數(shù)據(jù)接口與PCI-E設(shè)備的各層之間。應(yīng)用層用于發(fā)起事務(wù)處理,而事務(wù)處理層用于將應(yīng)用程序的請求轉(zhuǎn)換成PCI-E事務(wù)處理包。數(shù)據(jù)鏈路層用于為這個包添加一個序列編號和鏈路循環(huán)冗余校驗碼(LCRC)。數(shù)據(jù)鏈路層還確保了雙向事務(wù)處理能夠正確地得到接收。最終,物理層能夠通過PCI-E鏈路發(fā)送事務(wù)處理。
PCI Express IP核能夠?qū)崿F(xiàn)PCI Express接口協(xié)議中處理層、數(shù)據(jù)鏈路層和物理層的邏輯功能。
2.3.3 發(fā)送層和接送層
發(fā)送層和接送層主要完成對傳輸數(shù)據(jù)的緩沖和處理,實現(xiàn)數(shù)據(jù)的發(fā)送和接收功能。
2.3.4 數(shù)據(jù)緩沖接口模塊
數(shù)據(jù)緩沖接口模塊主要實現(xiàn)與前端接口對接,并對數(shù)據(jù)進行合并或者拆分的處理。檢查在接收層中未完成讀請求緩沖FIFO中是否還有未完成的讀請求命令,如果有則通過DDR2 SDRAM控制器讀取DDR2 SDRAM中的數(shù)據(jù)并將相應(yīng)的命令和數(shù)據(jù)分別寫入命令緩沖FIFO和數(shù)據(jù)緩沖FIFO;在接收層中,通過命令緩沖FIFO和數(shù)據(jù)緩沖FIFO與DDR2 SDRAM控制器進行交互,完成數(shù)據(jù)的讀取和寫入。
2.3.5 DMA控制模塊
DMA控制模塊使得外部設(shè)備可以發(fā)起對存儲器或其他外部設(shè)備進行直接讀和寫的操作,進行數(shù)據(jù)交換,不需要經(jīng)過CPU,減少中間環(huán)節(jié),提高傳輸速度。本設(shè)計方案中,通過設(shè)置接收層中的DMA參數(shù)寄存器,DDR2 SDRAM可以直接對存儲器進行DMA讀和寫操作 。
2.3.6 數(shù)據(jù)緩沖FIFO模塊
數(shù)據(jù)緩沖FIFO模塊主要實現(xiàn)對傳輸數(shù)據(jù)的緩沖以及DDR2 SDRAM和PCI Express IP核之間的跨時鐘域,使得數(shù)據(jù)傳輸同步,不丟失數(shù)據(jù)。
2.3.7 命令緩沖FIFO
命令緩沖FIFO模塊在接收層中將對從PCI Express IP核中接收到的數(shù)據(jù)包分解出的寫請求和完成請求命令進行緩存,在發(fā)送層中對讀請求命令、寫請求命令、完成請求命令進行緩存。
發(fā)送層的PCI Express發(fā)送接口通過命令緩沖FIFO和數(shù)據(jù)緩沖FIFO形成數(shù)據(jù)包送入PCI Express IP核,接收層的PCI Express接收接口則對來自PCI Express IP核的數(shù)據(jù)包進行分解,并將相應(yīng)的命令和數(shù)據(jù)送入未完成讀請求FIFO、命令緩沖FIFO、數(shù)據(jù)緩沖FIFO或者發(fā)送層的DMA控制模塊。
利用Quartus II 聯(lián)合ModelSim對設(shè)計的相應(yīng)模塊及整個方案進行仿真驗證。
發(fā)送層和接收層數(shù)據(jù)時序如圖5和圖6。其中,TLP為數(shù)據(jù)包,H代表數(shù)據(jù)包的頭信息。
圖5 發(fā)送層時序圖
圖6 接收層時序圖
采用PCI Express IP核實現(xiàn)了PCI-E設(shè)備層中的處理層、數(shù)據(jù)鏈路層和物理層的邏輯功能。通過PCI Express IP 核提供的接口信號,實現(xiàn)數(shù)據(jù)的發(fā)送和接收。應(yīng)用層只將數(shù)據(jù)封裝成數(shù)據(jù)包TLP或者對數(shù)據(jù)包TLP進行解析。
從圖5和圖6中可知,發(fā)送層和接收層的數(shù)據(jù)時序符合PCI Express1.0的協(xié)議規(guī)范中對處理層數(shù)據(jù)包TLP格式的要求。
對DDR2 SDRAM控制器、發(fā)送層、接收層、PCI Express IP核整個方案進行仿真與驗證,編譯庫和模塊文件,下載設(shè)計文件,對相關(guān)寄存器進行配置、建立鏈路訓練。在發(fā)送端和接送端截取相關(guān)數(shù)據(jù)信號的時序圖,如圖7和圖8。
圖7 發(fā)送端一幀數(shù)據(jù)
圖8 接收端一幀數(shù)據(jù)
通過圖7和圖8可以看出,除去數(shù)據(jù)包的頭信息和尾信息,發(fā)送端的一幀數(shù)據(jù)和接收端的一幀數(shù)據(jù)相同,因此表明發(fā)送和接收的數(shù)據(jù)一致,保證了數(shù)據(jù)傳輸?shù)耐暾浴?/p>
第三代I/O互連總線PCI Express 是解決數(shù)據(jù)傳輸數(shù)據(jù)瓶頸問題的關(guān)鍵途徑,有著廣泛的應(yīng)用前景。本文設(shè)計并實現(xiàn)了基于PCI Express 接口的高速數(shù)據(jù)傳輸系統(tǒng),采用PCI Express1.0協(xié)議,目前可實現(xiàn)2.5 Gbit/ s的數(shù)據(jù)傳輸速率, 對方案進行改進,理論上可獲得5 Gbit/ s甚至更高的
數(shù)據(jù)傳輸速率。本系統(tǒng)方案已應(yīng)用于高速數(shù)據(jù)采集卡中,且運行穩(wěn)定可靠。
[1]夏宇聞.Verilog數(shù)字系統(tǒng)設(shè)計教程[M].北京:北京航空航天大學出版社,2003.
[2]Ravi Budruk, Don Anderson, Tom Shanley.PCI Express系統(tǒng)體系結(jié)構(gòu)標準教材[M].田玉敏,王 崧,張 波. 北京:電子工業(yè)出版社,2005.
[3]PCI-SIG. PCI ExpresR. 2.0Base Specification Revision 0.9[EB/OL]. http://www.pcisig.com/specifications/pciexpress/.
[4]Altera Corporation.PCI Express to External Memory Reference Design [EB/OL]. http://www.altera.com/support/refdesigns/ip/interface/ref-pciexpress-ddr3-sdram.html? GSA_pos=1&WT.oss_r=1&WT.oss=PCIExp ress to External Memory Reference Design.
[5]Altera Corporation. External Memory Interface Hand-book Volume 3—Section I.DDR and DDR2 SDRAM Controllerswith ALTMEMPHY IP User Guide [EB/OL]. http://www. altera.com/literature/hb/external memory/emi_ip.pdf GSA_pos=1&WT.oss_r=1&WT.oss=External Memory Interface Handbook Volume.
[6]Altera Corporation.PCI Express Compiler User Guide [EB/OL]. http://www.altera.com/literature/ug/ug_pci_express.pdf?GSA_pos=1&WT.oss_r=1&WT.oss=PCI Express Compiler User Guide.