《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于WISHBONE總線的雙向PCI高速傳輸接口設計
基于WISHBONE總線的雙向PCI高速傳輸接口設計
2016年電子技術應用第8期
梁 燁1,簡獻忠1,肖兒良1,姜冠祥2,蔡留美2,鄭照平2
1.上海理工大學 光電信息與計算機工程學院,上海200093;2.上海雄博精密儀器股份有限公司,上海200444
摘要: 針對目前設計的PCI卡存在傳輸速度慢、復雜度高和購買PCI核價格昂貴的問題,提出了一種基于WISHBONE總線的PCI接口雙向傳輸設計的新方案。系統采用開源的WISHBONE總線的PCI接口的IP核,設計了基于Xilinx Aritx-7系列FPGA芯片的PCI接口卡,該卡兼容5 V和3.3 V電平;采用DMA(直接內存存取)方式進行高速數據傳輸。實驗表明,設計的PCI接口運行在主模式時,數據傳輸速率可達65×32 Mb/s,傳輸速率明顯提升,且數據傳輸準確穩定, 達到了設計目的,為高速PCI接口設計提供了一種新的思路。
中圖分類號: TP311.1
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2016.08.018
中文引用格式: 梁燁,簡獻忠,肖兒良,等. 基于WISHBONE總線的雙向PCI高速傳輸接口設計[J].電子技術應用,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],能同時滿足高數據傳輸和高功率輸出,是中頻數據采集與處理模塊的理想總線接口[2]。PCI 局部總線不受制于處理器,為中央處理器及高速外圍設備提供了一座橋梁[3],用戶可將高速外設通過局部總線直接掛接到 CPU總線上,使其與之匹配,從而打破了數據傳輸的瓶頸,使高性能 CPU 的功能得以充分發揮。

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

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

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

1 PCI總線與PCI-WISHBONE橋核

  1.1 PCI總線

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

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

  1.2 PCI-WISHBONE橋核

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

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

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

圖像 001.png

圖1  PCI主單元結構

圖像 002.png

圖2  PCI從單元結構

2 PCI高速傳輸接口設計

  2.1 硬件架構設計

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

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

圖像 003.png

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

  2.2 PCI-WISHBONE橋核主模式傳輸設計

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

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

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

  (2)啟用PCI主操作和響應內存與I/O空間的從操作。

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

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

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

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

  2.3 DMA雙向傳輸狀態機優化設計

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

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

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

圖像 005.png

圖4  主模塊狀態機示意圖

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

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

3 實驗驗證

  PCI傳輸系統程序主要包括模擬源和PCI傳輸模塊,均使用Xilinx公司的ISE14.4軟件進行開發,硬件仿真軟件ISIM進行仿真。數據處理方面可將16位的模擬源數據(img_in[15:0])與累加的內存地址進行拼接處理后分別送入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傳輸接口設計FPGA資源使用率如表1所示,寄存器、查找表使用率皆在1%~2%之間,被占用的Slice總數約占總數5%左右,而觸發器使用數量為1 713,約占總數的34%。

圖像 007.png

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

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

圖像 006.png

圖5  PCI系統框架圖

4 結論

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

  參考文獻

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

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

  [3] 蘇治國.PCI總線接口芯片PCI9052及其應用[J].世界產品與技術,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實現PCI總線目標接口[J].測控技術,2002(1):45-47.

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

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

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

  


此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 成人在免费观看视频国产 | 美女伊人网 | 在线免费视频a | 精品无码久久久久久久动漫 | 免费妞干网| 国产亚洲精品仙踪林在线播放 | 不卡在线一区 | 国产精品1区 2区 3区 | 香蕉视频在线观看网站 | 国产一区二区在线观看视频 | 99精品国产在这里白浆 | 欧美日韩亚洲色图 | 免费人成年短视频在线观看网站 | 日本综合久久 | 国产r67194吃奶视频 | 欧美另类tv | 手机国产日韩高清免费看片 | 日韩亚洲一区中文字幕在线 | 久草新免费 | 8x成人永久在线观看视频 | 欧美日韩中文国产一区二区三区 | 欧美一区二区三区在线播放 | 动漫成年美女黄漫网站在线看 | 最近中文字幕高清字幕 | 久久精品高清 | 婷婷免费视频 | 欧美极度另类极品 | 91短视频testflight | 国产农村精品一级毛片视频 | 日本三级网站在线观看 | 在线免费观看污视频 | 国产黄色的视频 | 五月天精品视频播放在线观看 | 午夜想想爱午夜剧场 | 婷婷精品进入 | 黄色三级国产 | 小明永久免费看aⅴ片 | 国产精品视频第一页 | 国产毛片毛片精品天天看 | 黄色毛片视频网站 | 中文字幕不卡一区 |