摘 要:介绍了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所示。
HPI是8位的数据总线接口,由于C5402是16位的,所以与主机通信的数据都是由两个连续的字节组成,并且由HBIL引脚指示正在传输的是第一个还是第二个字节。主机使用HCNTL0/1指定所访问的是HPI控制寄存器HPIC或HPI数据寄存器HPID或HPI地址寄存器HPLA,也可以用地址启动增加的方式访问数据寄存器HPID,具体方式如表2所示。
2 系统的硬件设计方案
整个硬件系统由DSP、EPM7128S、TPS73HD301、SST39VF400A等组成。DSP的主要任务是将经放大和解调后的无线电修正通道视频信号接收下来,再通过译码等处理后送给主控机。其原理如图1所示。
C5402采用低电压工作,其内核电压为1.8V、1/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的优点是基于E2PBOM原理,可以通过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所示。
在DSP的初始化程序中,一般对HPIC进行了初始化后就无需再对HPI操作了,其余的工作就完全由主机完成。通过HPI接口,主机和C54x之间可以相互发送中断请求。主机通过HPIC寄存器的DSPINT位中断C54x,而C54x通过HPIC寄存器的HINT位发中断请求到主机。无论是主机或 C54x都可以通过读取HPIC来判断HINT引脚的状态,但是HPIC中的HINT位只能由主机清除。
HPID寄存器具有可供选择的自动地址自增特性,它为读/写连续的存储区提供了便利。自增模式下连续传送数据,每访问存储器一次,HPIA寄存器地址就自动增加。由于主机无需在每次访问存储器时修改HPIA值,从而提高了系统性能。当HCNTLO=1且HCNTL1=0时选择自增模式。需要注意的是,如果采用了扩展的片内RAM,要保证正确的自增操作,HPIC寄存器中的XHPIA位必需设置为1。
当使用地址自增模式时,读操作后HPIA寄存器地址加1;写操作前,HPIA寄存器地址加1。因此,如果对给定地址使用自增模式下写操作时,HPIA 寄存器应初始化为起始地址减1。地址自增会影响HPIA的16位,在使用扩展片内RAM(C5410除外)时,地址自增也影响扩展地址。如果 HPIA=FFFFh,那么下次读/写时将HPI地址改变为o10000h。由于C5410的地址自增不会影响扩展HPI寻址,因此在上面的操作中,如果使用C5410,将使C5410地址改变为000000。
HPI口的应用极大地方便了PC/104总线与DSP系统的数据交换,使在线修改DSP存储器的数据成为可能。该方案灵活、简单,适用于任何含有HPI接口的DSP应用系统,从而为开发人员提供了一种全新的数据共享/传输方案。
参考文献
[1]TMS320C54x DSP Reference Set,Volume 1:CPU and Peripherals.Texas Instrument Inc., 1999
[2]TMS320C5402 Fixed—Point Digital Signal Proces Sor.Texas Instrument Inc., 2000
[3]TMS320C54x DSP Reference Set, Volume 5: Enhanced Peripherals.Texas Instrument Inc.,l999
[4]MAX 7000 Programmable Logic Device Family Data Sheet. Altera,November 2001, ver.6.3
[5]张雄伟,曹铁勇.DSP芯片的原理与开发应用(第2版).北京:电子工业出版社,2001
[6]戴明帧,周建江.TMS320C54x DSP结构、原理及应用.北京:北京航空航天大学出版社,2001