《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于WISHBONE總線的雙向PCI高速傳輸接口設(shè)計
基于WISHBONE總線的雙向PCI高速傳輸接口設(shè)計
2016年電子技術(shù)應(yīng)用第8期
梁 燁1,,簡獻忠1,肖兒良1,,姜冠祥2,,蔡留美2,,鄭照平2
1.上海理工大學(xué) 光電信息與計算機工程學(xué)院,上海200093,;2.上海雄博精密儀器股份有限公司,,上海200444
摘要: 針對目前設(shè)計的PCI卡存在傳輸速度慢、復(fù)雜度高和購買PCI核價格昂貴的問題,,提出了一種基于WISHBONE總線的PCI接口雙向傳輸設(shè)計的新方案,。系統(tǒng)采用開源的WISHBONE總線的PCI接口的IP核,設(shè)計了基于Xilinx Aritx-7系列FPGA芯片的PCI接口卡,,該卡兼容5 V和3.3 V電平,;采用DMA(直接內(nèi)存存取)方式進行高速數(shù)據(jù)傳輸,。實驗表明,,設(shè)計的PCI接口運行在主模式時,數(shù)據(jù)傳輸速率可達65×32 Mb/s,,傳輸速率明顯提升,,且數(shù)據(jù)傳輸準確穩(wěn)定, 達到了設(shè)計目的,,為高速PCI接口設(shè)計提供了一種新的思路,。
中圖分類號: TP311.1
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2016.08.018
中文引用格式: 梁燁,簡獻忠,,肖兒良,等. 基于WISHBONE總線的雙向PCI高速傳輸接口設(shè)計[J].電子技術(shù)應(yīng)用,,2016,,42(8):77-79,83.
英文引用格式: Liang Ye,Jian Xianzhong,,Xiao Erliang,,et al. The bidirectional interface design of PCI high-speed transmission based on WISHBONE bus[J].Application of Electronic Technique,2016,,42(8):77-79,,83.
The bidirectional interface design of PCI high-speed transmission based on WISHBONE bus
Liang Ye1,Jian Xianzhong1,,Xiao Erliang1,,Jiang Guanxiang2,Cai Liumei2,,Zheng Zhaoping2
1.School of Optical-Electrical and Computer Engineering,,University of Shanghai for Sience and Technology, Shanghai 200093,,China,; 2.Shanghai Supore Instruments Co.,Ltd,,Shanghai 200444,,China
Abstract: The PCI existed the problems of low transmission speed, high complexity and PCI Core prices,a new design scheme of PCI bidirectional interface based on WISHBONE bus was presented in this paper. The system architecture used open source called PCI-WISHBONE IP core and implemented a PCI interface card based on Xilinx Artix-7 series FPGA chip, which is compatible with 3.3 V and 5 V voltage and is focused on a method of high speed data transmission using DMA. The experimental results confirm that data transmission rate can reach to 65?鄢32 Mbit/s when the PCI bus is run in the master mode,Transfer rate has been improved significantly with data transmission accuracy and stability. It provides a new sort of methods for the high-speed PCI interface design.
Key words : PCI interfaces;DMA,;high-speed transmission,;WISHBONE Bus

0 引言

  PCI總線是目前推出的一款高性能局部總線[1],能同時滿足高數(shù)據(jù)傳輸和高功率輸出,,是中頻數(shù)據(jù)采集與處理模塊的理想總線接口[2],。PCI 局部總線不受制于處理器,為中央處理器及高速外圍設(shè)備提供了一座橋梁[3],,用戶可將高速外設(shè)通過局部總線直接掛接到 CPU總線上,,使其與之匹配,從而打破了數(shù)據(jù)傳輸?shù)钠款i,,使高性能 CPU 的功能得以充分發(fā)揮,。

  PCI總線接口的設(shè)計思路總體上可分為兩種方法,一是采用專門的接口芯片,,二是采用可編程邏輯器件[4-5],。這兩種方法在不同角度皆有利弊。

  文獻[6]提出專用芯片可以將復(fù)雜的總線接口轉(zhuǎn)換為相對簡單的用戶接口,。用戶可集中精力于應(yīng)用設(shè)計,,而不是調(diào)試PCI接口。但這種方式造成了一定的資源浪費,,缺少靈活性,。為了解決這些弊端,文獻[7]提出采用Xilinx、Altera以及Atmel等公司的可編程邏輯器件IP核實現(xiàn)PCI總線接口,。最常用的IP核是Altera公司的PCI MegaCore和Xilinx公司的PCI LogiCore,,但采取這兩種IP核的費用不菲,且主模式設(shè)計難度較高,,讓大多數(shù)研究人員望而卻步,。文獻[8]論述了PCI主橋的的應(yīng)用和WISHBONE片上總線技術(shù),提出了使用單片機和FPGA架構(gòu)實現(xiàn)基于PCI Bridge核的被動模式的PCI系統(tǒng),。

  本文針對兩種方式的不足,,在文獻[8]的基礎(chǔ)上,針對WISHBONE總線特點及國外開放IP組織Open Cores網(wǎng)站免費提供的開源PCI-WISHBONE橋核,,優(yōu)化該IP核主傳輸模塊狀態(tài)機程序,,僅使用一片可編程邏輯器件嵌入用戶程序,將時鐘頻率提至66 MHz,,首次實現(xiàn)了一種以高速DMA方式傳輸,、主從共模的PCI接口設(shè)計。

1 PCI總線與PCI-WISHBONE橋核

  1.1 PCI總線

  PCI總線是同步傳輸協(xié)議,,所有PCI操作均同步于時鐘,。總線時鐘有33 MHz,、66 MHz兩種頻率,,位寬分為32 bit和64 bit兩種,最大傳輸速率為264 MB,。系統(tǒng)中 PCI總線的最大帶寬可達:66×106×32=2.112 Gb/s,。

  重要的是,PCI可以支持一種名為線性突發(fā)的數(shù)據(jù)傳輸模式,,可確??偩€不斷滿載數(shù)據(jù)。這種線性的或順序的尋址方式,,意味著可以由一個地址起讀寫大量數(shù)據(jù),,然后每次只須將地址自動加1,便可接收數(shù)據(jù)流內(nèi)下一個字節(jié)的數(shù)據(jù),。線性突發(fā)傳輸能更有效地動用總線的頻帶寬傳輸數(shù)據(jù),,減少無謂的尋址操作。同時,,PCI對總線主控及同步操作的支持有助于改善PCI的性能,,即可將任何一個具有處理功能的外圍設(shè)備暫時接管總線,以加速執(zhí)行高吞吐量,、高優(yōu)先次序的任務(wù),。PCI獨特的同步操作功能可確保CPU能與這些總線同步操作,,毋須等待后者完成任務(wù),。

  1.2 PCI-WISHBONE橋核

  PCI-WISHBONE IP核提供了一個PCI總線和WISH-

  BONE總線之間的接口,,兼容PCI 2.2協(xié)議,支持WISHBONE SoC互聯(lián)協(xié)議B版本,。它適用于32位PCI 接口,,包含獨立的主橋、從橋功能模塊,,支持啟動程序與目標命令功能,,例如存儲器讀寫、I/O讀寫,、中斷應(yīng)答等操作,。

  如圖1、圖2所示,,PCI-WISHBONE橋核包括2個單元:PCI 主單元和從單元,,每一個單元都擁有自己的一套功能支持橋接操作。例如圖1,,PCI 主單元與WISHBONE主單元共同處理WISHBONE總線起動的交易,。首先,由WISHBONE從接口發(fā)起信號占用PCI總線,,若PCI總線響應(yīng)成功,,WISHBONE接口將傳輸數(shù)據(jù),地址以及命令經(jīng)由FIFO,,通過PCI接口傳至PC機內(nèi)存空間,。 圖2為PCI從模式機制,主要處理由上位機啟動的事務(wù),,同上述主模式基本一致,,此處不再敘述。

圖像 001.png

圖1  PCI主單元結(jié)構(gòu)

圖像 002.png

圖2  PCI從單元結(jié)構(gòu)

2 PCI高速傳輸接口設(shè)計

  2.1 硬件架構(gòu)設(shè)計

  本文設(shè)計的雙向高速數(shù)據(jù)傳輸系統(tǒng)基于FPGA平臺,,以開源的PCI-WISHBONE軟核為核心搭建串行通信接口平臺,,使其成為PCI總線與用戶邏輯之間的橋梁,避開復(fù)雜的PCI總線協(xié)議,。其采用Xilinx公司的XC7A200T-2FFG1156 主芯片作為硬件核心,,結(jié)合基于WinDriver的驅(qū)動程序,采取規(guī)格為640×512的圖像作為模擬數(shù)據(jù)源,,以乒乓方式輪流讀寫主機內(nèi)存,,實現(xiàn)了高速圖像數(shù)據(jù)的雙向傳輸。

  在硬件方面,,根據(jù)PCI總線規(guī)范2.2版,,當PCI接口引腳M66EN是高電平時,,總線時鐘頻率可控制在33 MHz~66 MHz范圍內(nèi),反之為0~33 MHz,。該模塊設(shè)計原理圖如圖3所示,,用戶可使用跳線帽自由控制PCI總線時鐘頻率。當引腳2與1相接時,,總線時鐘頻率高達66 MHz,。

圖像 003.png

圖3  PCI總線時鐘模塊原理圖

  2.2 PCI-WISHBONE橋核主模式傳輸設(shè)計

  PCI-WISHBONE橋核內(nèi)置功能接口允許用戶端訪問PCI總線,用戶可將其設(shè)計為主模式傳輸方式,,設(shè)計方案如下:

  pci_constants,、bus_commands和pci_user_constants是橋核可外部修改的3個配置文件。用戶可將其設(shè)置成客戶端應(yīng)用(Guest)與主端應(yīng)用(Host),。本文設(shè)計采用Guest模式,,支持PCI總線的主機系統(tǒng)連接。在接通電源時,,該設(shè)備獨立軟件掃描主機系統(tǒng)中任何連接PCI插槽的設(shè)備,,主機系統(tǒng)進行配置周期,PCI橋和連接到主機系統(tǒng)的所有其他PCI設(shè)備在上電復(fù)位后響應(yīng),。下面的步驟必須以正確的順序來執(zhí)行,,以確保適當?shù)腜CI橋的操作:

  (1)配置所有PCI基地址寄存器。

  (2)啟用PCI主操作和響應(yīng)內(nèi)存與I/O空間的從操作,。

  (3)配置合適的PCI配置空間Type00 Header寄存器,。

  (4)前3個步驟完成后,所有的配置寄存器可以在PCI Image0地址范圍內(nèi)使用存儲器讀寫命令進行訪問,。而其它寄存器可配置合適的應(yīng)用,。

  (5)當配置好所有的PCI橋寄存器后,軟件便可以通過PCI從單元訪問從設(shè)備或通過WISHBONE從接口啟用主設(shè)備來訪問PCI總線,。

  PCI-WISHBONE橋核采取中斷機制,,能夠應(yīng)對不同的事件產(chǎn)生中斷,由中斷控制和中斷狀態(tài)寄存器控制中斷請求的產(chǎn)生,。作為Guest橋時,,由PCI總線INTA#引腳產(chǎn)生中斷請求;而作為Host橋時則通過WISHBONE總線上INTA_O引腳發(fā)起中斷,。中斷控制寄存器用于使能/禁止不同來源的中斷,。中斷狀態(tài)寄存器用于確定中斷源,并清除中斷請求,。

  2.3 DMA雙向傳輸狀態(tài)機優(yōu)化設(shè)計

  為了方便測試,,本文使用Verilog語言設(shè)計實現(xiàn)了一種規(guī)格為640×513的圖像數(shù)據(jù)源,該數(shù)據(jù)流以62.5 MHz的同步時鐘發(fā)送,,由幀結(jié)束信號和圖像有效數(shù)據(jù)組成,。其中單副圖像數(shù)據(jù)位寬為16,,以列的形式傳輸,每幀圖像結(jié)尾增加幀結(jié)束信號標志(第513行),。

  為了提高傳輸速率,,驅(qū)動程序需申請兩段可讀寫內(nèi)存塊,將2個內(nèi)存首地址通過從模塊傳遞給FPGA,,保存在寄存器中,。同時,當驅(qū)動程序檢測到PCI卡時,,給予合適的中斷、傳輸命令并及時回饋狀態(tài)信號,,這樣驅(qū)動程序與FPGA完成交互,。

  如圖4所示,根據(jù)傳輸流程定義4種狀態(tài),,分別為開始,,讀操作,寫操作以及重試,。狀態(tài)機上電復(fù)位后處于Start狀態(tài),,數(shù)據(jù)進入PCI后,由狀態(tài)機分辨上位機的命令(Img_en)發(fā)起內(nèi)存讀寫事務(wù),。此時由于PCI的傳輸速率(66 MHz)遠大于圖像速率(62.5 MHz),,需將數(shù)據(jù)暫存于FIFO中,等到上位機允許傳輸并緩存數(shù)據(jù)達到既定數(shù)量時(img_fifo_half),,狀態(tài)機轉(zhuǎn)向讀寫操作狀態(tài),。

圖像 005.png

圖4  主模塊狀態(tài)機示意圖

  在Read/Write狀態(tài)下,對應(yīng)的地址和數(shù)據(jù)將傳給wbm_adr_o 和wbm_dat_o信號線,,傳輸完畢后進入Retry狀態(tài),。當主橋同PCI總線握手后,通過WISHBONE總線回饋給狀態(tài)機信號(wbs_ack_o, wbs_err_o, wbs_rty_o,,分別表示傳輸成功,、錯誤和重試),從而繼續(xù)發(fā)起下一次事務(wù)或重復(fù)本次事務(wù)直至本幅圖像傳輸完畢,。

  當檢測到圖像幀結(jié)束標志時,,預(yù)示著該幅圖像傳輸即將完畢,此時FPGA會產(chǎn)生一個高位信號傳至PCI接口中的INTA#引腳(中斷引腳)通知上位機,。一方面驅(qū)動程序以電平檢測方式分辨出該信號,,迅速清除中斷并讀取內(nèi)存空間,保存數(shù)據(jù)或顯示圖像,;另一方面主模塊切換內(nèi)存首地址,,進行下一幅圖像傳輸,。乒乓傳輸方式的采用,不僅提高了傳輸速率,,更給驅(qū)動程序保留處理時間,。

3 實驗驗證

  PCI傳輸系統(tǒng)程序主要包括模擬源和PCI傳輸模塊,均使用Xilinx公司的ISE14.4軟件進行開發(fā),,硬件仿真軟件ISIM進行仿真,。數(shù)據(jù)處理方面可將16位的模擬源數(shù)據(jù)(img_in[15:0])與累加的內(nèi)存地址進行拼接處理后分別送入PCI主模塊中(wbm_adr_o[31:0]和wbm_dat_o[31:0])。

  Xilinx公司7系列FPGA芯片的基本邏輯單元稱為CLB,,每個CLB包含2個Slices,,每個Slices由8個寄存器(Registers)和4個6輸入的查找表(LUTs)組成。該PCI傳輸接口設(shè)計FPGA資源使用率如表1所示,,寄存器,、查找表使用率皆在1%~2%之間,被占用的Slice總數(shù)約占總數(shù)5%左右,,而觸發(fā)器使用數(shù)量為1 713,,約占總數(shù)的34%。

圖像 007.png

  表1結(jié)果表明,,本設(shè)計能有效降低FPGA內(nèi)部硬件資源使用率,,在各種資源利用之間達到一種平衡,從而最大限度地發(fā)揮器件的功能,。

  系統(tǒng)搭建如圖5所示,,驅(qū)動程序在Windows XP操作系統(tǒng)中實現(xiàn)。由于該項目設(shè)計了單獨的PCB板作為模擬源輸入,,每行數(shù)據(jù)為0000-027F數(shù)據(jù),,經(jīng)過PCI采集后將傳輸結(jié)果以灰度圖像形式展現(xiàn),每行數(shù)據(jù)由黑到白,,與輸入的模擬數(shù)據(jù)源相對應(yīng),。經(jīng)過多次的驗證,該系統(tǒng)PCI時鐘可達66 MHz,,數(shù)據(jù)穩(wěn)定,,符合設(shè)計標準。

圖像 006.png

圖5  PCI系統(tǒng)框架圖

4 結(jié)論

  雙向PCI傳輸接口采用國外網(wǎng)站Open Cores開源的PCI-WISHBONE橋核設(shè)計了DMA雙向高速傳輸接口,,并實現(xiàn)了以FPGA為主處理器,、主機為從處理器的圖像傳輸系統(tǒng)。該接口卡目前已應(yīng)用到三維免模板磨邊機系統(tǒng)中,,進行高速數(shù)據(jù)傳輸,。實驗發(fā)現(xiàn),設(shè)計的PCI接口卡具有傳輸速率高,、配置靈活,、簡便,、可移植性強等特點,滿足項目高速傳輸數(shù)據(jù)的需要,。

  參考文獻

  [1] 田小林.基于FPGA的PCI總線接口設(shè)計[J].今日電子,,2004(6):60-62.

  [2] 楊軍.基于IP CORE的PCI接口設(shè)計及在數(shù)字中頻采集與處理模塊中的應(yīng)用[D].成都:電子科技大學(xué),2009.

  [3] 蘇治國.PCI總線接口芯片PCI9052及其應(yīng)用[J].世界產(chǎn)品與技術(shù),,2002(5):36-37.

  [4] HUANG J.Design of online pipeline ultrasonic data acquisition and storage system based on PCI Bus[C].Applied Mechanics and Materials.Trans Tech Publications,,2014,651:2296-2300.

  [5] Yu Hongsong.Design of general-purpose video image process system based on Compact-PCI bus and FPGA+DSP structure[J].Chinese Journal of Liquid Crystal & Displays,,2015,,30(2).

  [6] 曾哲昱.用CPLD實現(xiàn)PCI總線目標接口[J].測控技術(shù),2002(1):45-47.

  [7] 鄒戧祁.PCI總線的實現(xiàn)方案及其實例[J].電子工程師,,1997(7):7-8.

  [8] 徐江豐.基于WISHBONE片上總線的PCI Bridge核的研究和應(yīng)用[J].電子設(shè)計工程,,2005(4):23-26.

  [9] WISHBONE Soc Architecture Specification , Revision B.1[EB/OL].http://www.silicore.net.

  


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。