>
首页 » 技术文章 » 用CPLD实现DSP与PLX9054之间的连接

用CPLD实现DSP与PLX9054之间的连接

作者:■ 解放军信息工程大学信息工程学院 李松 汪洋 葛临东  时间:2005-04-26 23:35  来源:本站原创

摘 要:本文介绍了利用CPLD实现DSP芯片TMS320C6711b和PCI桥芯片PLX9054之间的高速数据传输,并给出了相应的系统设计原理图和性能分析。
关键词:PCI总线;HPI;local bus
引言
CPLD为设计任务从最简单的PAL综合设计到先进的实时硬件现场升级提供了全套的解决方法。本文讨论如何使用Xilinx公司的CPLD器件XC9500LV实现PLX9054的局部总线 (local bus)和DSP的HPI口之间的实时通信。采用这种设计可以以单字或DMA方式完成主机与DSP之间的高速数据传输,传输速率达到16Mb/s。可以应用于实时的图形、图像及动画处理场合。

设计需求
local bus接口要求
PLX9054是PCI接口专用主从器件,包括通信、网络、磁盘控制、多媒体等高性能接口功能。PLX9054可以以多种方式实现从pci总线端到局部总线端的数据转移,如直接传输,DMA控制传输等。pci总线和局部总线之间以6个可编程FIFO连接,可实现突发并行传输。通过串行EEPROM或PCI主控设备对PLX9054内部的配置寄存器进行设置,简化框图如图1所示。通过配置EEPROM,设置PLX9054作为PCI总线的从设备,工作在C模式下(数据、地址总线非复用),局部总线数据宽度为16bit,并使能外部设备就绪信号READY,禁止无限爆发操作(屏蔽BTERM bit)。
局部总线端的读、写时序基本相同,如图2所示。以写周期为例说明。首先,PLX9054通过置LHOLD信号有效来申请局部总线的主控权,在收到局部总线仲裁的响应信号LHOLDA之后,PLX9054成为局部总线的主控。随后置ADS#信号为低,使得地址总线信号LA[31:2]、字节使能信号LBE[3:0]和读写选择信号LW/R#进入有效状态。一个LCLK周期之后,PLX9054停止驱动ADS#。这时,地址总线LA[31:2]上的地址信号将保持有效,直至数据线上的数据有效,并保持一个LCLK周期。数据线LD[15:0]上的数据信号由READY#驱动,在读、写操作周期,READY#分别表示局部总线设备已经准备好发送或者接收数据。BLAST#信号由PLX9054提供,BLAST#信号为低,表示一次传输的最后一个字节,BLAST#的上升沿标志一次数据传输完成。一个LCLK周期之后,PLX9054拉低LHOLD,放弃对局部总线的主控权。局部总线仲裁响应PLX9054的LHOLD信号,拉低LHOLDA,收回局部总线主控权,这时的局部总线置于闲置状态。这里,PLX9054作为局部总线主控权的唯一申请者,只要提出总线申请,局部总线仲裁就立即响应该申请。
HPI设计要求
HPI是一种数据宽度为16bit的并行端口,通过HPI,主机可以直接对CPU的存储器空间进行操作。HPI内部加入了两个8级深度的读写缓冲,可以执行地址自增的读写操作,提高了读写操作的吞吐量。HPI为内部CPU提供了标准32bit的数据接口,而它为外部主机提供了一个经济的16bit接口,所以对外部主机而言,每次读写必须执行成对的16bit操作。
HPI内部有3个寄存器,分别是控制寄存器(HPIC),地址寄存器(HPIA)和数据寄存器(HPID)。这3个寄存器可以直接被主机访问,主机每执行一次对CPU内部存储空间的访问,都必须先对控制寄存器和地址寄存器写入相应的值,然后才能对数据寄存器进行读写操作。HPI的外部接口由数据总线HD[15:0]以及一部分用于描述和控制HPI的控制信号组成,这些控制信号包括:
HCNTL[1:0]:控制HPI的操作类型。
HHWIL:半字确认输入,“0”,“1”分别表示一次字传输的第一个半字和第二个半字。
HR/W#:读/写选择。
HRDY#:就绪状态标志。
HINT#:中断标志,DSP向主机提中断。
HAS#:区别地址/数据复用总线的数据与地址。
HDS1#,HDS2#,HCS#:数据选通输入,共同作用产生一个HPI内部选通信号HSTROBE#:
HSTROBE# = [NOT(HDS1# XOR HDS2#)] OR HCS#。
对于一个写HPI的操作,首先使能HCS#,变化HDS1#或HDS2#,使得HSTROBE#信号产生一个下降沿。HPI这个下降沿采样控制信号HCNTL[1:0]、HHWIL和HR/W#,使能HCS#的同时,扇出HRDY#。主机进入等待状态,直到HRDY#产生下降沿,表明HPID已清空,可以接收新的数据。这时HSTROBE#产生一个上升沿,采样HD[15:0]上的数据送入HPID,完成第一个半字的写入。对于第二个半字的写入,由于32bit的HPID已经清空,可以直接写入数据,不会出现未准备好的情况,所以HRDY#一直保持为低。与第一个字节的写入相同,在HSTROBE#的下降沿采样控制信号,HSTROBE#的上升沿采样数据总线HD[15:0]的数据送入HPID,完成一个32bit的写入操作。
对于读HPI的操作,当HCS#变成有效,在主机不采用地址自增方式从HPID执行读操作时(case1),HPI会向内部地址产生硬件送一个读请求。HCS#的下降沿使得HRDY#变为高电平,直到内部地址产生硬件将请求的数据装载进HPID,HRDY#变为有效状态。数据线上的数据为读出的数据,该数据保持有效,直到HSTROBE#上升沿采样数据后的10ns左右。在第二次读操作开始时,数据已经出现在HPID上了,因此,第二个半字的读操作将不会遇到未准备好的情况。在HPID以地址自增的方式进行读操作时,HCS#在整个多个字节的传输过程中始终保持有效,一旦完成现在的读操作,下一地址的数据马上被取出。因此,完成现在读操作的第二个半字的传输之后(在HSTROBE#的第二个上升沿),由HSTROBE#的下降沿(通过变化HDS1#或者HDS2#来产生)扇出HRDY#信号,用于指示HPI正忙于数据的预读取。

设计实现
CPLD的功能是要完成局部总线端和HPI端口之间控制信号和数据总线的连接,并保证数据传输的可靠性。通过以上对局部总线和HPI的读写时序的分析得知,一些关键信号,例如HCS#、READY#和HRDY#的时序设计很重要,整个CPLD设计的主要任务也是围绕这几个信号的设计展开的。
由HCS#、HDS1#和HDS2#共同作用产生的HPI口内部信号HSTROBE#的上升沿和下降沿直接控制着送入HPI端口的数据信号和控制信号,并且HSTROBE#变化的速率决定了数据传输的速率,因此它是一个非常关键的信号。这里,HCS#信号作为字节传输标志信号,在一次数据传输的过程中始终保持有效。数据传输结束之后,将HCS#拉高,从而控制HRDY#信号恢复到初始状态,为下一次读写操作做好准备。HDS1#或者HDS2#中的一个固定接高电平,变化另外一个来控制HSTROBE#产生上升沿和下降沿。这里将HDS1#固定接高电平,由ADS#和HRDY#信号产生逻辑来控制HDS2#信号。当HRDY#处于无效状态,即HPI端口未准备就绪时,HDS2#信号不变,不采样任何信号;当HRDY#有效时,HCS2#信号同ADS#信号保持一致,在ADS#的下降沿采样控制信号,上升沿采样数据信号。另外,在一次传输开始之前和结束之后,HDS2#都要保持为高电平。
其他一些控制信号,如高低字节标志信号HHWIL是随着HSTROBE#的上升沿的出现不断产生0和1的交替变化,所以用HDS2#作时钟输入的两分频电路来产生HHWIL。局部总线申请应答信号LHOLDA由LHOLD信号经一个LCLK的延迟后输出产生。HCNTL[0:1]接两根地址线,由上层驱动程序来控制对HPI内部不同寄存器的访问,LW/R接反相器来产生HW/R信号。原理如图3所示。

结语
本文提供的这种设计方法经过实际运行检验,可以保证PLX9054和DSP之间的可靠连接,且逻辑关系简单,数据线可完全独立于CPLD之外直接连接,从而有效地节约成本,具有较强的实用价值和经济价值。■

参考文献
1.PLX9054 data book version2.1. PLX January 2000
2.TMS320C6711/B/C data book . TI Febeuary 1999
3.TMS320C6000 Peripherals Reference Guide. TI February 2001

相关推荐

基于PCI总线模块的多通道串行数据采集系统设计

数据采集  PCI总线  FPGA  2010-12-07

Bus/总线布线时如何做到等长

Bus  总线  等长  2010-06-09

研华在e-Bus智能公交系统的移动数据终端解决方案

研华  e-Bus  Intel  车载终端  2010-06-03

Supermicro树立服务器每瓦性能比及高性价比新标准

PM-Bus  Supermicro  服务器  2009-04-01

用汇编实现I2C总线协议

汇编  I2C  BUS  I/O  2008-11-26

数字音频接口和数字音频格式

在线研讨会
焦点