當前位置:首頁 > 通信技術(shù) > 通信技術(shù)
[導讀] 現(xiàn)代測控系統(tǒng)和通信領域?qū)?shù)據(jù)傳輸速率的要求越來越高。相比PC 中其他技術(shù)的發(fā)展,總線技術(shù)的發(fā)展顯得相對緩慢,總線性能已經(jīng)成為制約系統(tǒng)性能發(fā)揮的瓶頸。傳統(tǒng)的ISA, EISA 總線等已無法適應高速數(shù)據(jù)傳輸?shù)囊螅琍

 現(xiàn)代測控系統(tǒng)和通信領域?qū)?shù)據(jù)傳輸速率的要求越來越高。相比PC 中其他技術(shù)的發(fā)展,總線技術(shù)的發(fā)展顯得相對緩慢,總線性能已經(jīng)成為制約系統(tǒng)性能發(fā)揮的瓶頸。傳統(tǒng)的ISA, EISA 總線等已無法適應高速數(shù)據(jù)傳輸?shù)囊?,PCI 總線技術(shù)雖然經(jīng)過了不斷的修正和發(fā)展,但是由于它固有的缺陷,使其應用領域受到限制。PCI Express 總線以其優(yōu)異的性能和低廉的造價引起了業(yè)界的廣泛關注,具有廣闊的應用前景。本文介紹PCI Express 總線接口的設計方法,,并實現(xiàn)一個基于IP核的PCI Express 總線接口。

1 PCI Express 總線簡介

PCI Express 總線是Intel 公司于1997 年提出的第3 代I/O 技術(shù),是種全新的串行總線技術(shù)。與PCI 總線相比,PCI Express 總線具有以下特點:

(1)在數(shù)據(jù)傳輸模式上,PCI Express 總線采用雙工串行傳輸模式,一條PCI Express 通道由2 對LVDS 差分線對組成:

一對負責發(fā)送,另一對負責接收,單向數(shù)據(jù)傳輸速率為2.5 Gb/s。

(2)具有很好的靈活性,一個PCI Express 物理連接可以根據(jù)實際需要配置成×1,×2,×4,×8,×16,×32 個并行的數(shù)據(jù)通

道,滿足不同設備之間通信帶寬的要求。

(3)在軟件層與PCI 總線完全兼容,原有PCI 總線的驅(qū)動程序可以完全移植到PCI Express 總線架構(gòu)的系統(tǒng)中。

(4)串行連接采用自同步時鐘技術(shù),時鐘內(nèi)嵌于串行數(shù)據(jù)的8 bit/10 bit 編碼中,可實現(xiàn)數(shù)據(jù)傳輸率的自適應調(diào)整。

PCI Express 協(xié)議定義了3 層結(jié)構(gòu):物理層,數(shù)據(jù)鏈路層和事務層。每個層次按照協(xié)議中規(guī)定的內(nèi)容,完成相應的數(shù)據(jù)處理功能。

2 PCI Express 接口設計方法

PCI Express 總線的接口的設計方法大體有2 種:使用專用接口芯片或者使用可以實現(xiàn)PCI Express 物理接口的可編程器件。

專用接口芯片實現(xiàn)了 PCI Express 總線的物理層、數(shù)據(jù)鏈路層和事務層的控制邏輯。例如,PEX 8311 是PLX 公司推出的第1 款本地總線到PCI Express×1 的橋接芯片,符合PCI Express 1.0 規(guī)范,支持自動極性反轉(zhuǎn)、CRC 校驗、鏈路設備電源管理,具有直接主模式、直接從模式、DMA 和數(shù)據(jù)預取等功能。

使用 PEX 8311 實現(xiàn)PCI Express 接口,用戶僅需實現(xiàn)相對簡單的本地總線接口即可,降低了開發(fā)難度。但是這種方法受限于專用接口芯片的性能,用戶無法根據(jù)自身的需求提升接口的性能。

可編程器件設計方案的基本思想是由 FPGA 實現(xiàn)PCI Express 的上層電路,利用Philip 公司或TI 公司提供的PHY(物理層)器件實現(xiàn)物理層接口,通常需要購買Xilinx 公司或Altera 公司提供的IP 核與PHY 器件配合使用。在有些FPGA 產(chǎn)品中,集成有PCI Express 接口的硬核模塊,可以采用相應的產(chǎn)品實現(xiàn)PCI Express 接口的功能。例如,Xilinx 公司Virtex-5 LXT/SXT/FXT/TXT 系列FPGA 器件中,集成有PCI Express 硬核端點模塊,能夠自動完成數(shù)據(jù)鏈路層和物理層的數(shù)據(jù)處理功能。采用這種方法,用戶只需要設計處理事務層數(shù)據(jù)包的邏輯電路即可。還可以根據(jù)自己的需求,設計具有特殊功能的電路結(jié)構(gòu),發(fā)揮接口的性能,但是這種方法的開發(fā)難度較大,開發(fā)周期相對較長。

3 PCI Express 接口實現(xiàn)

本設計采用 Xilinx 公司Virtex-5 系列xc5vlx30t 芯片,使用該芯片內(nèi)部的PCI Express Endpoint 硬核端點模塊,設計了處理事務層數(shù)據(jù)的邏輯電路,實現(xiàn)了計算機內(nèi)存與用戶邏輯之間數(shù)據(jù)的正確傳輸。其中,控制狀態(tài)機的設計和DMA 控制器的設計是重點、難點,下面詳細介紹具體的實現(xiàn)過程。

3.1 接口電路的設計

在接口電路中,PCI Express 物理層和數(shù)據(jù)鏈路層的電路采用Xilinx 公司的PCI Express Endpoint Block plus v1.5 硬核端點模塊實現(xiàn),能夠有效完成接口物理層和數(shù)據(jù)鏈路層的數(shù)據(jù)處理功能,提供給上層一個事務層數(shù)據(jù)接口。

上層電路主要由 5 部分電路構(gòu)成,分別是核配置與輔助控制模塊、數(shù)據(jù)發(fā)送控制器、數(shù)據(jù)接收控制器、數(shù)據(jù)輸入FIFO和數(shù)據(jù)輸出FIFO,如圖1 所示,最終提供給用戶FIFO 類型的用戶邏輯接口。

圖 1 PCI Express 接口電路結(jié)構(gòu)

核配置與輔助控制模塊與硬核端點模塊緊密聯(lián)系,完成硬核端點模塊中通道寬度、時鐘頻率、設備號、版本號、存儲空間類型與大小等一系列可控制參數(shù)的配置與一些基本功能的控制。

硬核端點模塊提供的事務層數(shù)據(jù)接口為 64 bit 的數(shù)據(jù)發(fā)送接口和64 bit 的數(shù)據(jù)接收接口以及控制數(shù)據(jù)發(fā)送和接收的一系列控制信號接口。數(shù)據(jù)接收控制器將收到的事務層包進行解析,根據(jù)數(shù)據(jù)包的類型進行相應的處理。數(shù)據(jù)發(fā)送控制器用于將所要發(fā)送的數(shù)據(jù)按照事務層包的格式進行封裝后,發(fā)送到硬核端點模塊。

數(shù)據(jù)輸入 FIFO 和數(shù)據(jù)輸出FIFO 共同構(gòu)成了數(shù)據(jù)通道,均為雙端口FIFO,用于連接PCI Express 接口和用戶邏輯。數(shù)據(jù)輸入FIFO 用于保存從接口收到的數(shù)據(jù);用戶邏輯電路輸出的數(shù)據(jù)保存到數(shù)據(jù)輸出FIFO 中后發(fā)送到接口電路。

3.2 控制狀態(tài)機的設計

數(shù)據(jù)發(fā)送控制器和數(shù)據(jù)接收控制器負責事務層數(shù)據(jù)的封裝和解析工作,是本設計中的關鍵電路模塊。這兩個模塊均采用有限狀態(tài)機方式進行設計,下面詳細介紹這2 個模塊狀態(tài)機的設計。

接收控制器從硬核端點模塊中收到事務層包(TLP),根據(jù)TLP 的格式,第56 bit~第62 bit 為表示數(shù)據(jù)包類型的標志位。按照標志位中的信息,對TLP 的內(nèi)容進行解析,進行相應的數(shù)據(jù)操作。所設計的狀態(tài)機的狀態(tài)轉(zhuǎn)換圖如圖2 所示,各個狀態(tài)的說明如表1 所示。

圖2 接收控制器狀態(tài)機

系統(tǒng)復位后,接收控制器狀態(tài)機處于空閑狀態(tài),等待接收數(shù)據(jù)包,收到TLP 后跳轉(zhuǎn)到相應的狀態(tài)進行存儲器或者I/O的讀寫操作。在操作過程中,對存儲器或者I/O 的狀態(tài)進行監(jiān)控,如果目標設備沒有準備好,則進入等待狀態(tài)直到目標設備就緒。在存儲器或者I/O 的讀寫操作完成后,狀態(tài)機又返回空閑狀態(tài)。在各個狀態(tài)中接收控制器產(chǎn)生相應的控制信號完成數(shù)據(jù)的寫入以及對發(fā)送控制器的操作。

與接收控制器狀態(tài)機相比,發(fā)送控制器狀態(tài)機相對簡單,只有3 個狀態(tài),狀態(tài)轉(zhuǎn)換圖見圖3,各個狀態(tài)的說明見表2。

系統(tǒng)復位后,發(fā)送控制器狀態(tài)機處于復位狀態(tài)。當從接收控制器收到發(fā)送數(shù)據(jù)的命令后,如果需要發(fā)送的是一個載荷數(shù)據(jù),則將從存儲器或者I/O 中取出的載荷數(shù)據(jù)填充到TLP中的相應位置后發(fā)送到端點模塊;如果需要發(fā)送的只是一個響應或者標志信息,則直接封裝成一個TLP 發(fā)送到端點模塊。

3.3 DMA 控制器的設計

由于串行總線結(jié)構(gòu)與傳統(tǒng)的并行總線結(jié)構(gòu)不同,因此存儲器的讀寫操作都是以數(shù)據(jù)包的形式傳輸。普通的讀寫操作一次最多只能進行64 bit 數(shù)據(jù)的讀寫,使得總線多數(shù)時間處于等待狀態(tài),嚴重影響了PCI Express 總線的數(shù)據(jù)傳輸速率。本文設計出相應的DMA 控制器,實現(xiàn)了DMA 方式的數(shù)據(jù)傳輸。

DMA 控制器的主要電路結(jié)構(gòu)為14 個與DMA 操作相關的寄存器,通過對這些控制寄存器的讀寫,設定DMA 方式數(shù)據(jù)讀寫操作的地址范圍和數(shù)據(jù)大小,完成DMA 數(shù)據(jù)讀寫操作。這些寄存器的定義和功能描述如表3 所示。

在設計了上述14 個DMA 控制寄存器后,接收控制器和發(fā)送控制器的狀態(tài)機也要進行相應的調(diào)整,以適應DMA 操作的需要。在接收控制器狀態(tài)機中加入了2 個狀態(tài),分別用于接收數(shù)據(jù)傳輸過程中的第1 個DMA 數(shù)據(jù)包和剩余的DMA數(shù)據(jù)包。在發(fā)送控制器狀態(tài)機中也加入了2 個狀態(tài),分別用于發(fā)送數(shù)據(jù)傳輸過程中的第1 個DMA 數(shù)據(jù)包和剩余的DMA數(shù)據(jù)包。為了達到盡可能高的數(shù)據(jù)傳輸速率,在接收和發(fā)送過程中都使用了64 bit 數(shù)據(jù)傳輸模式。

在設計了如上所述的 DMA 控制器后,PCI Express 總線接口就可以用DMA 方式進行數(shù)據(jù)的讀寫操作。進行DMA 讀/寫操作的具體過程如下:(1)寫中斷控制寄存器,打開中斷;(2)寫讀/寫地址寄存器,設置讀/寫數(shù)據(jù)的起始地址;(3)寫讀/寫包長度寄存器,設置讀/寫數(shù)據(jù)包的大小;(4)寫讀/寫包數(shù)量寄存器,設置讀/寫數(shù)據(jù)包的數(shù)量;(5)寫控制寄存器,啟動DMA 讀/寫操作;(6)等待中斷服務寄存器發(fā)出中斷;(7)收到中斷,讀中斷服務寄存器;(8)寫中斷控制寄存器,關閉中斷。

4 仿真與性能測試

使用 Verilog 語言編寫代碼實現(xiàn)本設計,使用Modelsim SE 6.2g 對該設計進行功能仿真。從數(shù)據(jù)寫入FIFO 的仿真波形圖中可以看到,未采用DMA 方式時,每次只能夠?qū)⒁粋€數(shù)據(jù)寫入到FIFO 中,在2 次寫操作之間存在較長的等待時

間;采用DMA 方式時,可以根據(jù)用戶的設置連續(xù)寫入多個數(shù)據(jù),消除了2 次操作之間的等待時間,大大提高了數(shù)據(jù)傳輸速率。

自行設計了采用Xilinx 公司xc5vlx30t 芯片的PCI Express×4 接口數(shù)據(jù)傳輸卡;使用Xilinx 公司的ISE 9.2 對設計代碼進行綜合和布局布線, 生成配置文件, 下載到xc5vlx30t 芯片中;使用DELL Precision 690 工作站,在Windows 環(huán)境下編寫測試程序?qū)?shù)據(jù)傳輸卡PCI Express 接口數(shù)據(jù)傳輸?shù)乃俾蔬M行測試。

采用多種數(shù)據(jù)量對 PCI Express 接口進行DMA 方式讀數(shù)據(jù)測試,得到的結(jié)果如圖4 所示,硬件層數(shù)據(jù)傳輸速率穩(wěn)定在840 Mb/s。

圖4 實際測試讀數(shù)據(jù)速率

采用多種數(shù)據(jù)量對 PCI Express 接口進行DMA 方式寫數(shù)據(jù)測試,得到的結(jié)果如圖5 所示,硬件層數(shù)據(jù)傳輸速率穩(wěn)定在720 Mb/s。

圖5 實際測試寫數(shù)據(jù)速率

從圖 4、圖5 可以看出,DMA 控制器有效減少了數(shù)據(jù)傳輸過程中的等待時間,大幅度地提高了數(shù)據(jù)傳輸速率,發(fā)揮了PCI Express 總線的優(yōu)越性能。

5 結(jié)束語

本文采用基于 Xilinx 公司硬IP 核的方法設計實現(xiàn)了PCI Express 總線接口及數(shù)據(jù)的傳輸。對于DMA 控制器的設計,能提高數(shù)據(jù)傳輸?shù)乃俾?,使PCI Express 總線的性能得到充分發(fā)揮。

本站聲明: 本文章由作者或相關機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術(shù)
關閉
關閉