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