首页 » 科学 » 基于WISHBONE总线的双向PCI高速传输接口设计_总线_接口

基于WISHBONE总线的双向PCI高速传输接口设计_总线_接口

admin 2024-11-04 05:05:42 0

扫一扫用手机浏览

文章目录 [+]

(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接口设计供应了一种新的思路。

基于WISHBONE总线的双向PCI高速传输接口设计_总线_接口 科学

PCI接口;DMA;高速传输;WISHBONE总线

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从模式机制,紧张处理由上位机启动的事务,同上述主模式基本同等,此处不再阐述。

图1 PCI主单元构造

图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。

图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),状态机转向读写操作状态。

图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%。

表1结果表明,本设计能有效降落FPGA内部硬件资源利用率,在各种资源利用之间达到一种平衡,从而最大限度地发挥器件的功能。

系统搭建如图5所示,驱动程序在Windows XP操作系统中实现。
由于该项目设计了单独的PCB板作为仿照源输入,每行数据为0000-027F数据,经由PCI采集后将传输结果以灰度图像形式展现,每行数据由黑到白,与输入的仿照数据源相对应。
经由多次的验证,该系统PCI时钟可达66 MHz,数据稳定,符合设计标准。

图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会员年终大福利!

标签:

相关文章

易语言宏的魅力,让编程变得轻松愉快

易语言,作为一种面向中文用户的编程语言,凭借其简单易学、功能强大的特点,深受广大编程爱好者的喜爱。而易语言宏,作为易语言编程的重要...

科学 2025-01-03 阅读0 评论0

易语言导航栏,引领编程新潮流

随着互联网技术的飞速发展,编程已经成为现代社会的必备技能。在众多编程语言中,易语言以其独特的优势备受关注。易语言导航栏作为易语言的...

科学 2025-01-03 阅读0 评论0