学海荡舟手机网

主页 > 实用文摘 > 教育文摘_22 > > 详细内容

PC/104总线与TMS320VC5402 HPI口通信的解决方案_DSP论文

摘要:介绍了ti公司信号处理芯片tms320vc5402 hpi(主机接口)的结构及主要特点,提出了hpi接口与pc/104总线进行通信连接的设计方案。该方案充分利用dsp的hpi接口功能,实现了主机实时读/写dsp任意片内存储单元的内容。

    关键词:dsp hpi pc/104

tms320vc5402(以下简称c5402)是德州仪器公司(ti)推出的性价比极高的定点数字信号处理器(dsp)。采用改进的harvard处理结构和指令流水线操作,计算处理速度很高(100mips),指令周期可达10ns;片内提供16k字的ram,用作程序和数据存储,其最大可扩展寻址空间为1m字;主机接口(hpi)是具有强大功能的智能外设,提供了dsp和外部处理器的通信接口。掌握hpi的原理和使用方法,可以使硬件的设计更加简单灵活。dsp在通过hpi口和主机通信的过程中完全没有软件和硬件开销,由dsp自身的硬件协调冲突,不会打断dsp正常程序的运行。在hpi通信方式下,dsp的片内存储器对外界完全透明,由主机访问hpi的地址和数据寄存器便可完成对dsp片内存储器的读/写。

本文立足于实验经验,以tms320vc5402与pc/104总线为例,介绍基于hpi口的硬件接口及软件实现。

1 tms320vc5402 hpi口简介

主机接口hpi(host port interface)是tms320c5000系列定点芯片内部具有的一种接口部件,主要用于dsp与其它总线或cpu进行连接。ti的c54xx系列都提供了8位或16位的增强型hpi接口,在此以c5402增强型8位hpi接口为例进行详细介绍。

c5402的hpi口由一个8位数据总线和用于设备和控制接口的控制信号线组成,hpi接口通过hpi控制寄存器hpic、地址寄存器hpia、数据寄存器hpid和hpi内存块,实现与主机之间的通信。其主要特点在于接口所需外围硬件很少,很容易与各种主机相连,且仅需要很少甚至不需要外加接口逻辑。引脚功能如表1所示。

表1 hpi引脚的名称及功能

hpi引脚接至主机引脚状 态信号功能
hd0hd7数据总线i/o/zhpi双向并行三态数据总线。
当不传送数据(/hsc或/hdsx=1)或emu1//off=0(切断所有输出)时,hd7(msb)~hd0(lsb)均处于高阻态。
/has地址锁存使能(ale)或地址选通输入信号引脚,不用则接高电平i地址选通输入信号。如果主机的地址和数据是一条多路总线,则/has连到主机的ale引脚;如果主机的地址和数据是分开的,就将/has接高电平。
/hcs地址或控制线i片选信号。作为hpi的使能输入,主机在对hpi访问时信号/hcs要保持低电平。
hbil地址或控制线i字节输入识别信号。hbil为低时读/写第一个字节,为高时读/写第二个字节。hbil和hpi控制寄存器(hpic)中的bob位配合使用。
hcntl0/1地址或控制线i主机控制信号。选择主机所访问的是哪个寄存器:地址寄存器hpia、数据寄存器hpid、控制寄存器hpic。
/hds1/2读/写、数据选通输入信号引脚i数据选通输入。在主机访问期间控制hpi数据的传输。
/hint主机中断输入o/z主机中断输入。由控制寄存器hpic中的hint位控制。当c54x复位时为高电平,emu1//off低电平时为高阻态。
hrdy异步准备好信号引脚o/zhpi接口准备好信号输出。hrdy为高说明hpi准备好数据传送(主机可进行数据传输),为低表示hpi接口忙(主机不可传输数据),正在进行上次传输的内部操作。
hr//w读写选通信号引脚或地址线i读/写选通信号输入端。在主机访问期间控制数据的传输方向。高电平表示主机读hpi,低电平表示写hpi。
hpienavddihpi模块选择输入。信号必须和vdd联系起来,保证选择hpi。如果输入为开或接地,hpi模块将不会被选择。

hpi是8位的数据总线接口,由于c5402是16位的,所以与主机通信的数据都是由两个连续的字节组成,并且由hbil引脚指示正在传输的是第一个还是第二个字节。主机使用hcntl0/1指定所访问的是hpi控制寄存器hpic或hpi数据寄存器hpid或hpi地址寄存器hpia,也可以用地址自动增加的方式访问数据寄存器hpid,具体方式如表2所示。

表2 hcntl0/1功能选择

hntl0hcntl1说      明
00主机可以读写hpi的控制寄存器hpic。
01主机可以读写hpi的数据寄存器hpid。每次读后hpia加1,每次写前hpia加1。
10主机可以读写hpi的地址寄存器hpia。
11主机可以读写hpi的数据寄存器hpid。对hpi口的操作,hpia不受影响。

2 系统的硬件设计方案

整个硬件系统由dsp、epm7128s、tps73hd301、sst39vf400a等组成。dsp的主要任务是将经放大和解调后的无线电修正通道视频信号接收下来,现通过译码等处理后送给主探机。其原理如图1所示。

c5402采用低电压工作,其内核电压为1.8v、i/o管脚电压为3.3v,而pc/104总线工作于5v电压。为了使电路能稳定正常的工作,c5402的数据总线接有一个sn74lvc245a。它是ti公司生产的3.3v和5v电压平相转换的双向缓冲器,可以双电源供电,一边工作在3.3v,一边工作在5v,转换的方向由两个dir管脚控制。它串在数据总线上,既可以为dsp提供驱动5v数字电路的能力,也可以为dsp提供5v信号读入的保护。这样,就不再需要为多个不同外设而考虑总线驱动不够的问题。dsp主机接口和pc/104的连接如图2所示。

主机和dsp可独立地对hpi接口操作,主机和dsp的握手可通过中断方式完成。另外,主机还可以通过hpi接口装载dsp应用程序,接收dsp运行结果或诊断dsp运行状态,为dsp芯片的接口开发提供一种极为方便的途径。hpi-8为8位并行口,提供c54x与外部主机的接口,c54x可通过片内ram与主机设备交换数据。主机与hpi-8的通信是通过专用的地址寄存器和数据寄存器完成的,c54x不能直接读/写,hpi控制寄存器允许主机和c54x进行读/写,包括配置通信协议和控制通信(握手)的比特。

epm7128s用来提供整个系统需要的组合逻辑。它属于max7000系列,是altera公司的基于第二代max结构的cpld。它提供多达5000个可用门和在系统编程,其引脚到引脚延时快达6ns。可以容纳各种各样的独立的组合逻辑和时序逻辑。epm7128s有两个工作电压核电压为5v,i/o工作电压可设为5v或3.3v。设为3.3v时,其输入为5v,而输出为3.3v ttl电平(所有的驱动器均能配置在3.3v和5v,允许用于混合电压系统中)。epm7128s的优点是基于e2prom原理,可以通过jtag口进行在线编程,设计得可将设计内容从pc机上通过下载电缆和jtag口对epm7128s进行任意次修改。在这里使用epm7128s是为电路提供组合逻辑以映射空间。它有多达100个i/o引脚可供编程使用,可以接入ps、is等管脚,方便系统扩展存储空间和外设。

3 软件编程

程序分为两大部分:主程序及中断服务子程序。主程序完成初始化后,等待cc同步脉冲的到来。cc同步信号连到dsp的外部中断上,当脉冲到来时,dsp响应外部中断,脉冲到来一次响应一次中断。中断服务子程序完成随机数的迭代、对比、信号的接收、译码、解密及主控机的数据传输等。主程序流程如图3所示。

c54x和主机都能够访问c54x片内ram。主机存储必须同步于c54x的时钟,以确保片内ram读/写正确。当c54x和主机同时读/写同一存储区域时将产生冲突,这时主机具有优先权,c54x cpu将等待一个c54x时钟周期。

主机访问hpi时,首先完成外部接口部分的操作,即先即始化hpic寄存器,然后初始化hpia寄存器,再从hpid寄存器中读出或写入数据。hpi的3个寄存器如表3所示。

表3 hpi寄存器

名   称地   址

说      明

hpia--hpi地址寄存器,只能由主机读写。该寄存器对应主机访问的c54x的片内地址。
hpic002chhpi控制寄存器,主机和c54x都可以读写。用于对hpi操作的控制与状态位。
hpid--hpi数据寄存器,只能由主机读写。主机读写由hpia指定的c54x片内存储器单元。

在dsp的初始化程序中,一般对hpic进行了初始化后就无需再对hpi操作了,其余的工作就完全由主机完成。通过hpi接口,主机和c54x之间可以相互发送中断请求。主机通过hpic寄存器的dspint位中断c54x,而c54x通过hpic寄存器的hint位发中断请求到主机。无论是主机或c54x都可以通过读取hpic来判断hint引脚的状态,但是hpic中的hint位只能由主机清除。

hpid寄存器具有可供选择的自动地址自增特性,它为读/写连续的存储区提供了便利。自增模式下连接传送数据,每访问存储器一次,hpia寄存器地址就自动增加。由于主机无需在每次访问存储器时修改hpia值,从而提高了系统性能。当hcntl0=1且hcntl1=0时选择自增模式。需要注意的是,如果采用了扩展的片内ram,要保证正确的自增操作,hpic寄存器中的xhpia位必需设置为1。

当使用地址自增模式时,读操作后hpia寄存器地址加1;写操作前,hpia寄存器地址加1。因此,如果对给定地址使用自增模式下写操作时,hpia寄存器应初始化为起始地址减1。地址自增会影响hpia的16位,在使用扩展片内ram(c5410除外)时,地址自增也影响扩展地址。如果hpia=fffh,那么下次读/写时将hpi地址改变为010000h。由于c5410的地址自增不会影响扩展hpi寻址,因此在上面的操作中,如果使用c5410,将使c5410地址改变为000000。

hpi口的应用极大地方便了pc/104总线与dsp系统的数据交换,使在线修改dsp存储器的数据成为可能。该方案灵活、简单,适用于任何含有hpi接口的dsp应用系统,从而为开发人员提供了一种全新的数据共享/传输方案。