0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于协议转换芯片PCI9054与FPGA实现PCI通信接口的设计

电子设计 来源:微计算机信息 作者:江勇 2021-05-19 09:50 次阅读

1 引言

PCI,外设组件互连标准(Peripheral Component Interconnection)是一种由Intel公司1991年推出的用于定义局部总线的标准,自规范推出,得到网络通信,数据采集处理,工业控制等多行业的广泛应用,并出现PCI-E。CPCI,PXI等多个扩展改良版本。PCI总线支持其即插即用,中断共享,高速数据传输等功能,有着广阔的市场前景。

本文介绍了目前使用美国PLX公司生产的协议转换芯片PCI9054,用verilog HDL在FPGA中产生相应的控制信号.完成对数据的快速读写,从而实现了与PCI总线的高速数据通讯。本系统可扩展,适用于其他PCI设备系统,具有实用价值。

2 系统实现

本系统主要由PCI9054与FPGA构成,系统结构图以及信号连接如图1所示。可以根据实际需要,利用FPGA的可编程性,实现预定功能,如与单片机DSP处理器的不同速率间接高速通信等。协议转换芯片PCI9054作用就是为本地处理器和主机之间架起一座通信的桥梁。

图1 系统总体结构

1) PCI9054硬件实现

PCI9054是美国PCI公司生产的先进的PCI总线接口芯片,它满足PCI V2.2协议,支持32位33MHz时钟PCI总线,特别适用于PCI总线外设产品的开发。PCI9054局部总线有三种工作模式:M模式、C模式和J模式,可方便地与多种微处理器连接。PCI9054的工作方式可利用模式选择引脚(MODEO,MODE 1)加以选择。

M模式是专为Motorola公司的MCU设计的工作模式,其主要应用于电信领域。C模式是一种类似于单片机的工作方式,通过片内逻辑控制,将PCI的地址线和数据线分开,很方便地为本地工作时序提供各种工作方式,对于这种工作方式,设计者只需要关注PCI9054的Local端的时序控制时序,就可以很方便的利用PCI9054实现PCI接口电路设计。J模式是地址总线和数据总线没有分开,严格仿效PCI总线的时序,只是为时序控制增加了很多的控制信号。数据传输模式有三种:直接主模式,直接主模式就是本地处理器(如伺服控制卡上的DSP)访问PCI总线上的I/O接口和计算机的内存资源,由本地处理器发起整个数据传输。直接从模式,直接从模式就是主机作为主控设备发起对本地总线上资源的访问.包括对本地处理器的控制和对本地端存储器的访问。DMA模式,DMA模式支持PCI总线与本地总线之间的高效突发。

2) PCI9054硬件连接电路(如图2所示):

图2 PCI9054硬件连接电路图

3) PCI9054与PCI插槽信号连接

PCI9054与PCI插槽间的连接信号线,这些信号线包括地址数据复用信号AD[31:0],总线命令信号C/BE[3:0]和PCI协议控制信号PAR,FRAME#,IRDY#,TRDY#,STOP#,IDSEL,DEVSEL#等,电路连接中将彼此对应的信号线连接在一起即可。在PCI总线信号中.除了RST#。INTA#-INTD#之外,其他所有的信号都在始终上升沿被采样。每个信号都

有相对于时钟前沿建立和保持时间。在此期间,不允许有信号的跳动。该时间一过,信号的变化就无关紧要了。这种建立和保持时间对于不同的信号其情形是不同的。对于AD[31:0],PAR和IDSEL来说,只有在一定的十种边沿上才有上述时间的要求。对于LOCK#,IRDY#,TRDY#.FRAME#,DEVSEL#,STOP#,ⅢeQ#,GNT#,SERR#和PERR#这些信号在每个时钟前沿都有建立和保持时间。对于C/BE[3:0]#在传输总线命令是,要在FRAME#第一次建立时对应的时钟边沿上遵守建立和保持时间的关系。若传输字节使能信号时,要在完成一个地址期或数据期之后的每一个时钟边沿保证相应的建立和保持时间。

4) PCI9054与EEPROM接口

各种接口芯片都需要外接串行EEPROM芯片来加载配置数据.对于串行EEPROM芯片,需要根据接口芯片数据手册中给出的生产厂家及型号选择。这里选择FM93LC56。PCI9054提供4个管脚与串行EEPROM相连接,他们分别是EEDI,EEDO,EESK,EECS,对应于FM93LC56的DI,DO,SkCS这四个管脚,这4对管脚直接相连就可以,另外93Lc56的VCC管脚需要接+5V电源,GND接地。因为需要对串行EEPROM进行写操作,串行EEPROM应处于可编程而且非保护状态,所以PE接高电平而PRE接低电平。FM93LC56的技术手册规定两个管脚上拉和下拉的电阻应为10K左右。

5) PCI9054与LOCAL Bus端连接

LHOLD:申请使用本地总线,输出信号;LHOLDA:对LHOLD应答,输入信号;ADS:新的总线访问有效地址的开始,在总线访问first clock设置时,输出信号;BLAST:表示为总线访问的last transfer,输出信号;LW/R#:高电平表示读操作,低电平表示写操作,输出信号;LA:地址线;LD:数据线;READY:表示总线上读数据有效或写数据完成,用以连接PCI9054等待状态产生器,输入信号。

3 VeHiog HDL软件实现

FPGA内部在PCI9054本地总线LOCAL Bus基础之上进行设计;FPGA片内RAM或FIFO可以在QUARTUSII环境下利用利用工具MegaWizard Plug_In Manager调用功能模块生成。单双口、存储容量、数据总线的宽度以及同步或异步自行定制。为与MCU或DSP等处理器通信,要设计RAM访问仲裁模块。决定某一时刻对RAM访问的主方;PCI9054支持单周期、突发和DMA传输,在FPGA内部要设计本地端总线控制模块,实现局部总线的状态控制,同时产生FPGA片内RAM的读写时序及地址信号。

PCI9054支持单周期、突发传输和DMA传输,因此在状态机设计中不仅要满足单周期传输的时序。还要兼顾突发和DMA传输时序。依据FCl9054的datasheet以及PCI总线协议,其状态转换图如图3所示:

图3 PCI9054状态转换图

状态机是控制单元的主体,接受外部信号以及数据单元产生的信号,产生控制信号序列。状态机的关键是如何把一个实际的时序逻辑关系,抽象成一个时序逻辑函数。根据状态转换图.采用3个always语句.即对应三个进程来完成Moore状态机。一个用于状态机的同步时序部分,在本地时钟clk的上升沿到来时.将nextstate状态赋给currentstate;个用于描述状态转换;另一个用于描述输出的组合逻辑。在这里重点阐述状态转换进程,其Verilog HDL代码简略如下所示:

always @ (lads,lblast)

begin case(currentstate)

S0:if(! lads)

nextstate《=S1;

else

nexbtate《=S0;

S1:if(! lblast)

nextstate《=S2;

else

nextstate《=S4;

S2: nextstate《=S3:

S3:if(! lads)

nextstate《=Sl;

else

nextstate《=S0;

S4:nextatate《=S5;

S5:if(blast)

nextstate《=S5;

else

nextstate《=S6;

S6:if(! lads)

nextstate《=S1;

else

nexmmte《=S0;

endcase

end

输出组合逻辑进程如下所示:

always @(currentstate)

case(currentstate)

SO:begin lready《=1‘b1;

ram_wr《=1’b0:

ram_rd《=1‘b0;

end

。..。..

endcase

图4 利用QUARTUSⅡ仿真生成的State Machine图(可与图3对应)

图5 PCI9054 LOCAL Bus单周期传输时序图

4 结论

利用DriverStdio开发PCI9054的驱动程序,实现主机对FPGA内部RAM的读写,利用示波器检测ads,blast信号,在8位数据总线的情况下,实现数据传输率可以达到26.8Mbyte/s,接近PCI的极限传输速率(图4、5所示)。本设计已经应用,经实际运行,传输速度快,数据正确,稳定可靠,经过扩展,同时可应用于其它需要与PCI数据总线接口的设备当中,可缩短PCI设备的开发周期,提高工作效率。

本文创新点:利用PCI9054设计的PCI高速通信接口,采用了FPGA内部RAM间接缓冲技术,可以与DSP,MCU等微处理器高速通信,扩展性强,适用于可应用于其它需要与PCI数据总线接口的设备当中。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1602

    文章

    21309

    浏览量

    593128
  • 芯片
    +关注

    关注

    447

    文章

    47769

    浏览量

    409071
  • 接口
    +关注

    关注

    33

    文章

    7635

    浏览量

    148453
收藏 人收藏

    评论

    相关推荐

    PCI总线接口芯片9054及其应用

    、AMCC S5933,PLX 公司的PLX9054、PLX9080 等,通过专用芯片可以实现完整的PCI主控模块和目标模块的功能,将复杂的PCI
    发表于 10-09 11:23

    各种PCI接口芯片

    新人想选用PCI接口芯片,查了一下,有好多种:PCI2040、PCI9052、PCI9054
    发表于 12-05 18:16

    PCI9054驱动

    哪位大神有用FPGA控制PCI9054驱动的相关资料,谢谢啦。
    发表于 05-22 15:25

    PCI9054驱动开发

    哪位大神有用FPGA控制PCI9054驱动的相关资料,谢谢啦
    发表于 05-24 16:14

    PCI总线接口芯片9054及其应用

    PCI总线接口的开发提供了一种简洁的方法,设计者只需设计出本地总线接口控制电路,即可实现PCI总线的高速数据传输。图3是应用
    发表于 12-05 10:12

    采用专用接口电路PCI9054实现ARINC429总线接口板设计

    协议器件HS3282完成发送数据缓存和串并转换(接收时串行转换为并行,发送时并行转换为串行),HS3182作为3282的驱动器完成差分信号转换
    发表于 04-26 07:00

    基于FPGAPCI9054的LVDS数据通信卡的设计

    数据通信中应用广泛。DDS频率合成技术通过频率控制字、相位控制字及参考时钟的控制来实现输出信号的调频调相,并且输出信号具有频率转换快、频率分辨率高和相位噪声低等优点。综合上述特点,设计运用PC
    发表于 07-18 06:35

    PCI9054 pdf datasheet

    PCI9054 p
    发表于 10-13 11:13 681次下载

    PCI9054芯片接口设计中若干问题的深入研究

    PCI9054芯片是目前主流的PCI总线接口芯片之一。从厂家提供的开发资料以及公开发表的论文来看,有相当多的内容都过于简单,甚至有不合理或错
    发表于 07-19 16:07 52次下载

    基于PCI9054接口

       PCI9054是PLX公司生产的桥接PCI总线与本地总线的接口器件。在PCI9054的结构性能、数据传输模式及总线工作方式等特性的基础上,给出以
    发表于 07-21 16:18 75次下载

    PCI总线接口芯片PCI9054及其应用

    PCI总线接口芯片PCI9054及其应用PCI9054是PLX公司推出的一种PCI主模式桥
    发表于 10-09 11:18 7696次阅读
    <b class='flag-5'>PCI</b>总线<b class='flag-5'>接口</b><b class='flag-5'>芯片</b><b class='flag-5'>PCI9054</b>及其应用

    基于PCI9054的数据转换模块设计

    为了实现把软件仿真的数据通过PCI总线DMA传输、处理后转换成高速视频串行数据流(LVDS数据流),设计出了基于PCI9054的数据转换模块
    发表于 01-14 17:32 50次下载
    基于<b class='flag-5'>PCI9054</b>的数据<b class='flag-5'>转换</b>模块设计

    PCI 总线接口芯片9054及其应用

    PCI9054是PLX公司推出的一种PCI主模式桥芯片。本文主要介绍了它的特性、功能及应用,说明了以PCI9054作为接口
    发表于 05-14 18:10 95次下载
    <b class='flag-5'>PCI</b> 总线<b class='flag-5'>接口</b><b class='flag-5'>芯片</b><b class='flag-5'>9054</b>及其应用

    基于PCI9054PCI接口数据通信系统

    本文首先介绍了 PCI 总线 接口芯片 PCI9054 的性能,并从PCI9054 接口设计、寄
    发表于 06-02 18:20 105次下载
    基于<b class='flag-5'>PCI9054</b>的<b class='flag-5'>PCI</b><b class='flag-5'>接口</b>数据<b class='flag-5'>通信</b>系统

    PCI9054在高速数据采集系统中的应用

    本文介绍了PCI总线接口芯片PCI9054的性能、总线操作及其DMA数据传输方式,并且通过它在高速数据采集系统中的应用实例,阐述了PCI9054
    发表于 07-18 15:32 64次下载