国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于PCI Express總線的高速光纖接口卡的設計與實現(xiàn)

2011-07-02 10:48:14李佩玥章明朝隋永新楊懷江
電子技術應用 2011年5期
關鍵詞:板卡寄存器中斷

陳 雪 ,李佩玥 ,章明朝 ,隋永新 ,楊懷江

(1.中國科學院長春光學精密機械與物理研究所,吉林 長春130033;2.中國科學院研究生院,北京100039)

在遠程實時控制、高速數(shù)據(jù)交換、高速光纖組網(wǎng)等領域,如何實現(xiàn)數(shù)據(jù)的高速實時采集和遠程傳輸已經(jīng)成為關鍵問題。目前的解決方案大都基于PCI總線,并利用電纜進行遠程傳輸。這種方式的共享總線,可達到的理論極限速率為133 Mb/s,遠不能滿足需求。而且在遠距離傳輸時損耗高,抗電磁干擾性低,信息容易被竊取。

與PCI總線相比,第三代高性能I/O總線——PCI Express(以下簡稱PCI-E)總線在總線結構上采取了根本性的變革。一是由并行總線變?yōu)榇锌偩€,二是采用點到點的互連。PCI-E總線×1通路數(shù)據(jù)傳輸率達0.5 Gb/s,32通路時可高達可達到16 Gb/s,大大高于目前任何一種總線,可以滿足當前及將來一段時期高速設備的帶寬需求。同時,由于總線變成鏈路,PCI-E引腳數(shù)大大減少,平均帶寬大幅提升[1]。

與電纜等其他通信介質相比,光纖通信具有傳輸速度快、損耗低、容量大、占用帶寬低、抗電磁干擾的優(yōu)點,非常適合于遠程高速數(shù)據(jù)傳輸。

由此,本文提出了基于PCI Express總線的高速光纖通信方式。在分析PCI Express協(xié)議、LocalLink協(xié)議和Aurora協(xié)議的基礎上,使用Virtex 5 XC5VLX50T FPGA進行接口卡的硬件設計,實現(xiàn)了PCI-E的DMA控制和光纖遠程傳輸,滿足了大容量數(shù)據(jù)的高速實時傳輸需求。

1 系統(tǒng)框圖

高速光纖接口卡主要分為PCI-E金手指、FPGA、光模塊、配置 PROM、時鐘管理、電源管理6個模塊,如圖1。

當主機通過板卡向外發(fā)送數(shù)據(jù)時,數(shù)據(jù)經(jīng)PCI-E插槽傳給FPGA的PCI-E差分接收端,并經(jīng)DMA控制后,被大量取出,放入發(fā)送FIFO中進行緩存。在發(fā)送FIFO控制邏輯下,F(xiàn)IFO數(shù)據(jù)被轉化為16 bit的LocalLink格式傳給 Aurora IP(Intelligence Property)核。Aurora IP 核通過GTP差分發(fā)送端將數(shù)據(jù)傳送給光模塊。數(shù)據(jù)經(jīng)過光模塊的電光轉化后,由光纖傳出板卡。主機通過板卡接收外界數(shù)據(jù)的過程與上述過程基本相反,如圖1。

FPGA是板卡的核心器件。在此選用Xilinx公司Virtex-5系列XC5VLX50T芯片。FPGA負責實現(xiàn)板卡的主要邏輯,包括:(1)PCI Express的物理層、數(shù)據(jù)鏈路層、事務層的實現(xiàn);(2)PCI Express的 DMA控制;(3)控制發(fā)送、接收緩沖;(4)LocalLink鏈路接口;(5)利用 Aurora協(xié)議實現(xiàn)光纖接口。

LocalLink接口是一種點對點的高效同步連接協(xié)議,可以連接用戶設計與系統(tǒng)級Xilinx IP核。在PCI-E高速板卡的設計中,Xilinx提供的Aurora核和PCI-E核均采用LocalLink接口與用戶邏輯進行通信[2]。

2 系統(tǒng)實現(xiàn)

2.1 PCI-E接口實現(xiàn)

以往PCI-E的實現(xiàn)主要使用專用接口芯片(如PEX-8311)或使用FPGA編程實現(xiàn)PCI-E各層。第一種方法利用接口芯片實現(xiàn)物理層、數(shù)據(jù)鏈路層和事務層的邏輯控制,但使用芯片多、成本高。第二種方法具有靈活的可編程性,但是開發(fā)難度比較大,開發(fā)周期長。因此,Xilinx為PCI-E設計提供了第三種快速高效的解決方案,即利用Virtex-5芯片內嵌的Rocket I/O模塊、硬核端點PCI-E模塊及可選的軟核IP,大大降低了PCI-E的開發(fā)難度。

板卡設計中,使用IP核Endpoint Block Plus for PCI Express,并配置其為×4 PCI-E通路,傳統(tǒng) INTx中斷,僅使用BAR0區(qū)用作程序中的控制寄存器區(qū)。該IP核與PCI Express V1.1規(guī)范完全兼容,達到2.5 Gb/s的線速率, 支持×1、×4、×8多種通路, 支持 32vector的 MSI中斷,且具有時鐘補償、自動時鐘恢復、8B/10B編碼、流控等多種功能[3]。

2.2 PCI-E高速DMA控制

PCI Express端點有PIO和DMA兩種數(shù)據(jù)傳輸方式。PIO方式是由CPU通過根復合器發(fā)起的讀寫操作,由于需要CPU的發(fā)起,所以速度和效率不是很高。DMA方式直接對內存進行讀寫,由本地PCI Express端點發(fā)出,其效率比PIO模式高出很多倍。DMA傳輸?shù)幕玖鞒倘鐖D2。

圖2 PCI-E DMA發(fā)送、接收數(shù)據(jù)過程圖

當主機通過板卡向外發(fā)送數(shù)據(jù)時,主機的PCI Express端口向板卡寫大量數(shù)據(jù)。如圖2(a)所示,可分為以下幾步:

①主機向板卡發(fā)送MWR(存儲器寫)TLP(事務層包),依次寫入要發(fā)送數(shù)據(jù)的地址、總長度len_sum,及控制寄存器的發(fā)送開始位,從而啟動DMA發(fā)送。

②板卡根據(jù)①中的地址和總長度,發(fā)送MRD(存儲器讀)請求,申請讀取長度為len_temp的有效數(shù)據(jù)。注意讀請求申請的長度len_temp不得大于主機PCI-E設備控制寄存器中Max Read Request Size所設定的長度,否則將不會返回正確長度的CPLD(帶有數(shù)據(jù)的完成)。

圖1 板卡系統(tǒng)框圖

③主機返回len_temp長度的CPLD。重復過程②和③,直至板卡總共收到len_sum長度的數(shù)據(jù),DMA過程完成,置位中斷標志寄存器的XMIT_COMP標志位。

④主機發(fā)送MRD,讀取中斷標志寄存器的值。

⑤板卡收到讀取中斷標志寄存器的請求后,返回中斷標志寄存器的值,并立即將中斷標志寄存器清0。

當主機通過板卡接收外界數(shù)據(jù)時,主機的PCI–E端口從板卡讀大量數(shù)據(jù)。如圖2(b)所示,可分為以下幾步:

①主機向板卡發(fā)送MWR,依次寫入主機中準備存放數(shù)據(jù)的地址、控制寄存器的接收開始位,從而啟動DMA傳輸。

②當接收FIFO中收到不少于某一定量的數(shù)據(jù)后,板卡通過多個MRD將這些數(shù)據(jù)寫入主機,完成一個包的DMA傳輸。注意每次寫請求的長度不得大于主機PCI-E設備控制寄存器中Max Payload所設定的長度,否則將不能完整寫入數(shù)據(jù)。

重復②直至寫入MAX_PACK_COUNT個包或超時時間到達,置位中斷標志寄存器的RECV_COMP位,并將收到包的總個數(shù)保存到接收包個數(shù)寄存器。

③主機發(fā)送存儲器讀請求,讀取中斷標志寄存器。

④板卡收到讀取中斷標志寄存器的請求后,返回中斷標志寄存器的值,并立即將中斷標志寄存器清0。

⑤主機發(fā)送存儲器讀請求,讀取接收包個數(shù)寄存器的值。

⑥板卡返回CPLD,攜帶數(shù)據(jù)為接收包的個數(shù)。

DMA控制邏輯的組成如圖3所示。

接收狀態(tài)機負責根據(jù)板卡從主機接收到的TLP包類型進行相應的處理,并將欲發(fā)送給光纖的數(shù)據(jù)存入發(fā)送FIFO。根據(jù)圖2可見,接收狀態(tài)機需要處理的事務包括 MWR、MRD、CPLD。

發(fā)送狀態(tài)機負責從接收FIFO中取數(shù)據(jù),并根據(jù)DMA控制的狀態(tài),發(fā)送相應的TLP包給主機。根據(jù)圖2可見,接收狀態(tài)機需要處理的事務包括MWR、MRD、CPLD。

中斷處理可以產生MSI或INTx兩種模式的中斷[1]。具體模式可以通過配置MSI控制寄存器的值來選擇。板卡中定義的中斷有XMIT_COMP、RECV_COMP。板卡收到主機的讀中斷請求后,要及時清除中斷標志,以防止中斷再次誤觸發(fā)。主機根據(jù)讀取到的中斷標志寄存器的值進入相應的中斷處理程序進行處理。

錯誤處理可以將DMA控制模塊中產生的錯誤匯報給 PCI-E IP核,包括非轉發(fā) UR(Unexpected Request)錯誤、轉發(fā)UR錯誤、超時錯誤等。

發(fā)送FIFO及接收FIFO均為異步FIFO,除進行數(shù)據(jù)緩存外,還完成了數(shù)據(jù)寬度32 bit和16 bit之間的相互轉化及時鐘域的變化。

2.3 光纖通道實現(xiàn)

光纖通道通過Aurora協(xié)議實現(xiàn)。Aurora協(xié)議是一種可升級、小型鏈路層協(xié)議,可以用來進行點到點的串行鏈路數(shù)據(jù)傳輸,同時消除了其他串行協(xié)議的資源不足、效率低等問題。Aurora是一個開放的協(xié)議,可以在包括FPGA、ASIC、ASSP在內的任何硅器件技術中實現(xiàn)。Aurora支持光纖、TCP/IP、以太網(wǎng)等高層協(xié)議[4]。

在Xilinx的FPGA器件中,可以通過IP核GTP Aurora實現(xiàn)。其不僅定義了Aurora協(xié)議的物理接口,而且定義了包結構、數(shù)據(jù)提取和流量控制等。IP核生成文件中包含有效鏈路的初始化程序、發(fā)生過量錯誤的鏈路相關程序、嵌入其他協(xié)議包的推薦程序等。

在本文的高速光纖網(wǎng)卡設計中,采用125 MHz參考時鐘,進行1通道帶流量控制的全雙工幀接口通信,可達到1.25 Gb/s線速率。

3 軟件仿真和性能測試

在板卡的開發(fā)設計過程中,對其進行了軟件仿真及實際性能測試。

軟件仿真中,利用Modelsim前仿真功能,對設計的正確性進行驗證;利用其后仿真功能,分析布局布線對設計的影響。仿真時,將Xilinx提供的下行端口(Downstream port model)測試平臺與自己的設計相連。下行端口模型的用途是模擬主機PCI-E端口,為生成下行 PCI Express TLP流量提供源機制,以驅動客戶設計,同時提供目標機制,以在仿真環(huán)境中接收來自客戶設計的上行 PCI Express TLP[5]。后仿真中,發(fā)現(xiàn)布局布線會對功能有一定的影響。對關鍵路徑進行修改后得到的最終發(fā)送和接收的DMA仿真波形如圖4和圖5所示。由圖可見,設計實現(xiàn)了預期的功能,且通過DMA,有效提高了PCI-E的數(shù)據(jù)速率。

實際性能測試中,將插有Agilent 1310 nm雙向單模SFP光模塊(極限速率1.25 Gb/s)的兩塊高速光纖網(wǎng)卡分別插入兩臺服務器Dell Power Edge R310的PCI-E插槽中,并使用chipscope對關鍵信號進行邏輯分析。通過連續(xù)發(fā)送大批量數(shù)據(jù),對板卡進行性能測試。測試結果表明,板卡可以穩(wěn)定地達到700 Mb/s的通信速率,滿足設計要求。

圖4 發(fā)送DMA仿真波形

圖5 接收DMA仿真波形

板卡的速度瓶頸主要在于光纖接口。若要提高板卡速率,可以使用更高速的光模塊或使用多個光纖鏈路。

經(jīng)過測試,該接口卡可以實現(xiàn)數(shù)據(jù)的高速、實時、穩(wěn)定傳輸。該光纖接口卡在高速數(shù)據(jù)遠程采集、遠程實時控制、高速數(shù)據(jù)交換、高速光纖網(wǎng)絡通信等領域,將有廣闊的應用前景。

[1]馬鳴錦,朱劍冰,何紅旗,等.PCI、PCI-X和 PCI Express的原理及體系結構[M].北京:清華大學出版社,2007.

[2]Xilinx.LocalLink Interface Specification SP006.July 25,2005.

[3]Xilinx.Endpoint Block Plus v1.9 for PCI Express DS551.2008(9),19.

[4]田耘,胡斌,徐文波.Xilinx ISE Design Suite 10.x FPGA開發(fā)指南——DSP、嵌入式與高速設計篇[M].北京:人民郵電出版社,2008.

[5]Xilinx.LogiCORE IP Endpoint Block Plus v1.9 for PCI Express User Guide UG341.2008(9),19.

猜你喜歡
板卡寄存器中斷
Lite寄存器模型的設計與實現(xiàn)
計算機應用(2020年5期)2020-06-07 07:06:44
基于PCI9054的多總線通信板卡的研制
測控技術(2018年3期)2018-11-25 09:45:46
基于FPGA的多通道模擬量采集/輸出PCI板卡的研制
測控技術(2018年12期)2018-11-25 09:37:42
跟蹤導練(二)(5)
千里移防,衛(wèi)勤保障不中斷
解放軍健康(2017年5期)2017-08-01 06:27:44
分簇結構向量寄存器分配策略研究*
一種基于光纖數(shù)據(jù)傳輸?shù)亩喟蹇ㄜ浖绦驘龑懠夹g
一種通用模擬量及開關量信號采集板卡的設計
AT89C51與中斷有關的寄存器功能表解
FPGA內嵌PowerPC的中斷響應分析
微處理機(2012年4期)2012-06-13 11:32:24
大连市| 石河子市| 黑河市| 九江市| 牡丹江市| 平度市| 永修县| 水城县| 广东省| 右玉县| 重庆市| 南平市| 锦屏县| 齐齐哈尔市| 永寿县| 莫力| 韶关市| 格尔木市| 通河县| 泰安市| 瑞安市| 德昌县| 百色市| 石城县| 丹东市| 探索| 拉萨市| 囊谦县| 革吉县| 湖北省| 军事| 刚察县| 建始县| 凤台县| 买车| 金堂县| 无锡市| 长沙县| 苍溪县| 神池县| 静安区|