基于DSP与PC机的PCI总线高速数据传输
扫描二维码
随时随地手机看文章
TMS320C6713是TI公司在TMS320C6711的基础上推出的C6000系列新一代浮点DSP芯片,它是目前为止C6000系列DSP芯片中性能最高的一种。TMS320C6713可在255MHz的时钟频率下实现1800MIPS/1350MFLOPS的定点和浮点运算,因而可极大地满足通信、雷达、数字电视等高科技领域对信号处理实时性的要求。同时其主机口(HPI)可灵活地和PCI总线控制器相连接。而PC机则可通过PCI总线控制器直接访问TMS320C6713的存储空间和外围设备,从而实现PC机与TMS320C6713之间的高速数据传输。
在TMS320C6713 DSP与PC机实现高速数据传输的方案中,可选用PLX公司的PCI9052作为两者之间的接口;同时选用PLX公司的NM93CS46作为加载PCI9052配置信息的串行EEPROM;而用TI公司的SN74CBTD3384作为 PCI9052与TMS320C6713HPI之间的电平转换芯片。
1 TMS320C6713的HPI简介
1.1 TMS320C6713 HPI的接口信号
TMS320C6713的HPI是一个16位宽的并行端口。主机(上位机)掌管着该端口的主控权,可通过HPI直接访问TMS320C6713的存储空间和外围设备。表1给出了TMS320C6713HPI接口信号的基本特征。下面对它们的具体工作方式进行说明:
HD[15:0]:可以用作数据和地址的共用总线,通过HD[15:0]传送的数据包括控制寄存器的设置值、初始化的访问地址以及要传输的数据。
HCNTL[1:0]:用于控制当前访问的是HPI的哪一个寄存器,该信号同时还提供了一个对HPI数据寄存器(HPID)进行地址自增的访问方式。在该方式下,主机会连续地访问一个线性存储区域,而无需反复向HPIA写入需要的地址。表2给出了HCNTL[1:0]控制信号的功能。
HHWIL信号:用于表明并区分HD[15:0]上传输的是32位数据中的高16位还是低16位。由于TMS320C6713芯片结构决定了它与主机间所有的数据交换都是32位,而HPI端口为16位,所以每次数据访问都需要进行两次存取,而由HPI自动将HD[15:0]上连续的两个16位数据合成32位,当然,也可以用其进行反向分解。
HAS信号:用于复用地址数据总线的主机。它可使HCNTL、HHWIL和HR/W信号在一个存取周期中快速地实现状态转换。对于地址数据复用的总线来说,也可以为数据/地址的切换留出更多的时间。
HCS、HDS1和HDS2信号:这三种信号可在片内组合为一个低有效的HSTROBE信号,如图1所示。其作用是,在读取时,在HSTROBE信号的下降沿锁存输入的HPI控制信号,包括HHWIL、HR/W和HC-NTL[1:0];而在写入时,其下降沿和读取时作用相同,其上升沿则锁存写入的数据。
HRDY信号:用于表明HPI是否已准备好传输数据,其作用是在接口时序上插入等待状态。如果前一次HPI的访问尚未完成,那么当前访问的第一个半字的存取需要等待,此时,HPI会置HRDY信号为高。
表1 HPI接口信号描述
信 号 管 脚 号 管 脚 数 信 号 功 能
HD[15:1] 从低到高依次为147、152、155、154、156、159、161、164、165、166、167、168、172、173、174 16 数据/地址总线
HCNTL[1:0] 从低到高依次是146、144 2 HPI访问类型控制
HHWIL 139 1 确认半字(16位)输入
HAS 135 1 对复用地址数据总线的主机区分地址和数据
HR/W 143 1 读/写选择
HCS 145 1 输入数据选通
HDS1/HDS2 从低到高依次是152、151 2 输入数据选通
HRDY 140 1 访问HPI状态准备好
HINT 139 1 向主机发出的中断信号
表2 HCNTL[1:0]控制信号的功能
HCNTL1 HCNTL0 功 能
0 0 主机可以对HPI的控制寄存器HPIC进行读写
0 1 主机可以对HPI地址寄存器HPIA的进行读写
1 0 主机可以对HPID的数据寄存器进行读写操作,此时HPIA采用以字为单位的地址自增方式
1 1 主机可以对HPID的数据寄存器进行读写操作,但此时HPIA不受影响
1.2 TMS320C6713 HPI的控制寄存器
在TMS320C6713 HPI中,可利用三个寄存器来完成主设备和CPU的通信,它们是HPI数据寄存器(HPID)、HPI地址寄存器(HPIA)和HPI控制寄存器(HPIC)。主机可对这三个寄存器进行读写,而CPU只能对HPIC进行访问。HPID中存放的是主机从存储空间中读取的数据,或者是主机向TMS320C6713的存储空间中写入的数据。HPIA中存放的是主机访问TMS320C6713存储空间的地址,其最低两位固定为零。HPIC中存放的是TMS320C6713的控制信息,其高16位和低16位内容相同。
主机对HPI进行访问的次序为:初始化HPIC、初始化HPIA、从HPID寄存器中读取或向其写入数据。在初始化HPIC时,HWOB位的设置是关键,它决定着高16位与低16位的传输次序。
2 PCI9052与TMS320C6713HPI的接口
PCI9052是PLX公司继PCI9050之后推出的用于低成本适配器的总线目标接口芯片。它支持PCI2.1协议规范,在33MHz的总线时钟频率下,其峰值传输速度可达132MB/s,因而可大大改善数据传输中的瓶颈问题。同时它还具有方便灵活的开发特点,正是这些特点使其在PCI从模式接口卡的设计中得到了广泛的应用。
表3给出了PCI9052与TMS320C6713HPI接口信号的基本特征。下面是对它们具体工作方式的一些说明:
LAD[31:0]:利用该信号可通过设置LASIBRD局部地址空间总线区域描述寄存器的总线宽度位来调整总线宽度,当LASIBRD[23:22]=00时,采用LAD[7:0]8位宽度,当LASIBRD[23:22]=01时,采用LAD[15:0](16位),当LASIBRD[23:22]=10时,采用LAD[31:0](32位)。
LBE[3:0]字节使能信号是在总线宽度的基础上编码的。对于32位总线,LBE[3:0]表示哪一个字节被选中:LBE0对应[7:0],LBE1对应[15:8],LBE2对应[23:16],LBE3对应[31:24];而对于16位总线,LBE0对应[7:0],LBE1对应地址的第1位,LBE2不用,LBE3对应[15:8];对于8位总线,LBE0对应地址的第0位,LBE1对应地址的第1位,LBE2和LBE3不用。
CS1和CS2分别带有与之对应的片选基地址寄存器(CSIBASE)。CSIBASE?0?为片选使能位,其中CSIBASE[27:1]为片选空间位。从片选空间位的第1位向第27位扫描时,遇到第1个“1”即决定了片选空间的大小,其余位则为片选空间的基地址。
LINT1和LINT2可通过中断控制/状态寄存器INCSR的中断使能位INCSR[6]进行使能,同时可设置其它相关信息。
表3 PCI9052与TMS320C6713的接口信号描述
信 号 管 脚 号 管脚数 信 号 功 能
LAD[31:0] 从低到高依次为91、90、89、88、87、86、85、84、83、82、79、78、77、76、75、74、73、72、71、70、69、62、61、60、59、58、57、56、55、54、53、52 32 数据总线
LW/R 127 1 为“1”时写,为“0”时读
LA[27:1] 从低到高依次是92、93、94、95、96、97、98、100、101、102、105、106、107、108、109、110、111、112、113、114、115、116、117、118、119、122 27 地址总线,传输28位线性地址的高26位
LBE[3:0] 从低到高依次是46、47、48、49 4 字节使能信号,表示当前总线传输中哪一个字节被选中
LRDY 128 1 在局部总线读数据或可接受写数据
ADS 123 1 表明可用地址和一次新的总线存取的起始
CS1、CS2 130、131 2 片选信号
RD 126 1 通用写
WR 125 1 通用读
LINT1,LINT2 137、136 2 局部中断输入
3 与 PC的高速数据传输
TMS320C6713HPI与PCI9052的具体连线如图2所示。
实际上,在具体电路设计时,整个方案的实现除了需要TMS320C6713和PCI9052外,还需要有SN74CBTD3384和NM93CS46。由于TMS320C6713的I/O是在3.3V电压下工作,而PCI9052在5V电压下工作,所以TMS320C6713与PCI9052之间必须采用SN74CBTD3384进行电平转换。SN74CBTD3384是TI公司生产的10位总线转换器,它的输入、输出引脚一一对应,并分别排列在芯片的两侧封装。图2中共选用了三片SN74CBTD3384。NM93CS46是PLX公司生产的串行EEPROM存储器,用于加载PCI9052配置信息。其中按一定顺序存放着设备号(DID)、供应商代号(VID)、子设备号(SDID)、子供应商代号(SVID)、PCI总线与局部总线之间的地址空间映射关系、片选地址、控制位、状态位及其它杂项配置等。上电时,PCI总线的RST信号有效,同时PCI9052输出局部复位信号LRESET,并检查NM93CS46是否有效。若有效,且第一个16位字不是FFFFh,那么PCI9050将根据串行EEPROM的值来设置内部寄存器,否则采用默认值。
考虑到TMS320C6713HPI与PCI9052间的时序配合问题,通常在连线过程中,还必须注意下列几个问题:
(1)由于PC机中数据与地址总线是复用的,所以PCI9052的MODE引脚应接地,而PCI9052中局部数据与地址总线是非复用的,所以TMS320C6713的HAS引脚应接高电平。
(2)由于 TMS320C6713的HR/W信号与PCI9052的W/ R信号极性相反,因此必须通过非门进行连接。
(3)由于TMS320C6713与PCI9052分别工作在不同的时钟频率下,所以TMS320C6713的HRDY信号输出必须通过D触发器的同步后才能送入逻辑电路,以供PCI9052的LRDY信号使用。
(4)LRDY信号的逻辑表达式为:LRDY=RD.WR+(CS1+ADS+HRDY),因此,只有RD或WR有效,且CS、ADS、HRDY也有效时,LRDY才能有效。
另外,要保证TMS320C6713 HPI与PCI9052的稳定协调工作,除了要设计合理的硬件电路外?还必须对PCI9052的内部寄存器进行准确配置。关于PCI9052内部寄存器的具体配置方法,可以参考PLX公司的用户手册,这里不再赘述。
笔者已将该方案应用于某电力系统精确故障定位及录波装置中。其中,由TMS320C6713 DSP芯片构成的高速数据采集卡用来控制电力系统中各电参数的采集、存储与故障判断。当其HPI被设置为带地址自增的读方式时,可在一次故障记录结束后,由PC机将存储在TMS320C6713外扩SDRAM中的大量数据一次性读入。读入的数据可用来计算故障发生的精确位置,分析系统中各电参数的变化情况,同时记录各继电保护装置的动作情况。
4 结束语
该方案不仅有效地解决了TMS320C6713 DSP芯片与PC机间数据传输的瓶颈问题,而且简化了硬件设计。同时由于它支持即插即用技术。因此,由DSP构成的高速数据采集卡具有良好的可移植性。