|
|
| | -文章搜索 - 最新文章 - | |
基于EPLD技术的PCI总线接口设计 |
| 发布时间:2006年5月11日 点击次数:632 |
| 来源:电子技术应用 作者:长沙国防科技大学ATR-2室(410073)王鲁平 李 飚 |
摘要:分析了PCI总线接口信号及时序,利用ALTERA公司的EPLD器件EPM7128设计和实现了PCI总线接口。 关键词:PCI总线 接口 EPLD器件 AHDL语言 PCI总线自其问世以来,以其诸多优点,在当今的计算机系统中得到了广泛应用,已经成为计算机设备的标准接口。本文在认真分析PCI总线的接口信号和接口时序的基础上,利用EPLD器件设计实现了PCI总线接口。由于EPLD器件支持在线编程, 1 PCI总线概述 局部总线特别是PCI总线的发展,打破了PC数据传送的瓶颈。传统的PC总线结构不能满足图形系统和大型应用程序的要求,所以在此基础上产生和发展了局部总线。它将计算机外设从I/O总线上移下来,使它们更靠近系统处理器,从而提高了处理器和外设之间的传送速度。 从设备的PCI接口至少需要47条信号线,而主控设备的PCI接口至少需要49条信号线,包括数据/地址复用总线、接口控制线、仲裁、总线命令以及系统线等。 PCI总线在进行数据传输时,地址节拍、总线命令在C/BE[0..3]上由主机输出,用于说明当前PCI总线周期需要执行的功能。其命令如表1所示。
2 PCI总线协议和读写时序 PCI总线的传输机制是成组数据猝发传输,每组数据由一个地址脉冲和一个或几个数据脉冲组成。一般基本的PCI传输由三个信号控制: FRAME信号由PCI主控设备驱动,表示总线操作的开始和结束; IRDY信号由PCI主控设备驱动,在读周期表示主控设备准备接收数据,在写周期表示AD[31..0]上数据有效; TRDY信号由PCI从设备驱动,在读周期,表示从设备准备传输数据,在写周期表示从设备准备好接收数据。 当数据有效时,数据源设备需要无条件地设备XRDY有效,一旦主控设备使FRAME有效,中途不能改变FRAME状态,直到TRDY信号无效或数据传送结束。 PCI是地址/数据复用总线,其读操作的时序如图1所示。当进行PCI读传输时,首先FRAME置低,FRAME有效,读传输开始,同时AD[31..0]保持有效地址信号同,C/BE[3..0]保持总线命令。如果总线命令为存储器读(0110),AD[31..0]地址在从设备地址范围内,枞设备置DEVSEL有效,主控设备驱动IRDY,表明主控设备准备好接收数据。为避免总线冲突,接下来的一个周期AD[31..0]既不被主控设备驱动,也不被从设备驱动(该周期成为总线转换周期),此后AD[31..0]上出现数据,C/BE[3..0]变为字节允许信号,主控设备开始检测TRDY信号。如果TRDY信号无效(为高电平),则主控设备自动插入等待周期,如果TRDY信号有效,则总线开始传输数据。在最后一个数据脉冲之后,主控设备将FRAME和IRDY置为无效,表示传输结束。 写传输时,由于地址由主控设备提供,因此不存在总线转换周期。其传输过程与读周期基本类似,只是C/BE[3..0]上的总线命令为存储器写(0111),具体的传输时序如图2所示。 3 PCI总线的接口设备方案 根据以上分析,选用ALTER的总速EPLD器件EPM7128S84来完成PCI总线接口的设计。为简化起见,选用存储器作为从设备,其总体结构如图3所示。 下面将给出用AHDL语言编写的EPLD控制程序以及仿真结果。为简单起见,设定从设备为非即插即用类型的PCI插卡,直接将其地址空间配置为0X50000000~0X5FFFFFFF(或在计算机内不与其他设备冲突的地址),时钟周期选用33MHz,具体的程序如下: SUBDESIGN pci_if ( clkin : input; frame : input; ad[31..0] : input; cbe[3..0] : input; irdy : input; trdy : output; devsel : output; wr : output; cs : output; a[10..0] : output ) count[1..0] : DFF; da[31..0] : DFF; wr1 : node; rd1 : node; sign1 : node; sign2 : node; sign4 : node; sign3 : node; cs1 : node; begin count[1..0].clk=clkin; count[1..0].clrn=!frame; sign1=(count[]= =3); if sign1 then cout[ ].d=count[ ].q; else count[ ].d=count[ ].q+1; end if; sign2=(count[ ]<1)&!frame; sign3=(count[ ]>=2)&(count[ ]<=3); sign4=(count[ ]>=1)&(count[ ]=3); da[31..0].clk=sign2&!frame; da[31..0].d=ad[31..0]; cs1=!da31&da30&!da29&da28; if cs1 then devsel=!sign4; a[10..0]=ad[10..0]; wr1=!cbe3&cbe2&cbe1&cbe0; rd1=!cbe3&cbe2&cbe1&!cbe0; if rd1 &!irdy then trdy=!sign3; !cs=cs1&!frame; wr=rd1&!frame; end if; if wr1&!irdy then trdy=!sign4; !cs=cs1&!frame; !wr=wr1&frame; end if; end if; end ; 仿真结果如图4所示。 |
||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
[另类其他] 相关文章: 通用串行总线(USB)设备的驱动简介:
摘要: 从问题的由来、类驱动程序、通信协议、描述符、驱动开发等对USB的驱动进行分析和讨论,提出USB设备使用操作系统嵌入的通用类驱动程序成为趋势。 关键词: USB 类驱动程序 人工接口设备(HID) Windows驱动程序模型(WDM) ...... 用AT89C2051设计超声波测距仪
DSP与ISA总线PnP卡的接口技术研究
DSP接口技术
SDH接口芯片PM5342及其应用
增强CompactPCI的高可用性超越99.999%
基于SY100E445的4位串行/并行转换器设计
鼠标和键盘PS/2端口滤波器
FIFO用做并行数据延迟线
基于CPLD的VXI总线接口的研制 |
|
|
|