HPI主机接口在多处理器系统中的应用
2009-02-04
作者:张 弓 张景涛
摘 要: HPI是德州仪器公司在新一代、高性能DSP芯片上配置的与主机进行通信的主机接口。它可以实现与主机之间并行、高速的数据交换,构成多机系统。介绍了HPI在某多处理器系统中的应用,分析了构成多机系统的硬件要求以及HPI的优越性,详细介绍了HPI的特点及实现方法。
关键词: DSP 多处理器 HPI(主机接口) 主机通信
HPI是德州仪器(TI)公司在新一代、高性能DSP芯片上配置的与主机进行通信的主机接口。它与主机之间能实现并行、高速的数据传输。在目前TI流行的DSP芯片中都配有HPI接口。
在传统的单片机与主机进行接口时,需要外扩必要的硬件电路。当单片机需要与主机共享RAM时,需在片外扩展RAM及触发、锁存等芯片,然后主机通过DMA方式访问该扩展RAM,这样一来主机可以随机或整块地访问、共享RAM。另外,在片外至少需要扩展一片锁存器使得单片机可以中断主机。TI的TMS320C5402 HPI接口将以上功能集成到DSP内部,使其与主机的连接变得非常简单。而且由于HPI是集成到片内的,主机可以达到很高的访问速度,满足了数字信号处理中高速度的要求。本文介绍了TI公司TMS320C5402芯片中的HPI接口在构成某型雷达多处理机系统中的应用,分析了HPI的优越性以及构成多机系统的硬件要求,详细地介绍了HPI的特点及实现方法。
1 HPI主机接口构成
TMS320C5402芯片的HPI接口分为HPI8(8位主机接口)和HPI16(16位主机接口)两种,其应用方式大同小异,限于篇幅本文主要介绍HPI8。HPI8实际上是一个8位的并行端口,主机通过它可以直接访问DSP片内的一段RAM。在早期的DSP中,这段公用的RAM是一段2K字的双口RAM(对于TMSVC5402则可以访问所有的片内RAM)。当主机和DSP同时访问同一地址时,主机优先。由于TI的DSP芯片都是16位的,而HPI8只有8根数据线,所以数据的传输必须以字节为单位。在DSP与主机传送数据时,HPI能自动地将外部接口传来的连续的8位数组合成16位数后传送给主机。
HPI主要由以下五个部分组成:
·HPI存储器(DARAM)。HPI RAM主要用于DSP与主机之间传送数据,也可以用作通用的双寻址数据RAM或程序RAM。
·HPI地址寄存器(HPIA)。它只能由主机对其直接访问。该寄存器中存放着当前寻址的HPI存储单元的地址。
·HPI数据锁存器(HPID)。它也只能由主机对其直接访问。如果当前进行读操作,则HPID中存放的是要从HPI存储器中读出的数据;如果当前进行写操作,则HPID中存放的是将要写到HPI存储器的数据。
·HPI控制寄存器(HPIC)。DSP和主机都能对它直接访问。
·HPI控制逻辑。用于处理HPI与主机之间的接口信号。
HPI控制寄存器(HPIC)对HPI的工作模式进行控制,HPIC必须在进行HPI访问前由主机初始化。当主机要随机访问HPI RAM时,必须先发送一个地址到HPIA(HPI地址寄存器),然后访问该地址所指向的RAM单元。当主机需要连续访问一段HPI RAM时,则需要发送该段首地址到HPIA,然后以地址自增的方式访问。这时候主机每访问完一个存储单元后HPIA自动指向下一个单元。主机可以通过置位HPIC中的DSPINT位来中断DSP芯片,DSP芯片也可以通过置位HPIC中的HINT位来中断主机,此时HPI的引脚被置位低电平,从而向主机发出中断请求。主机可以通过置位来屏蔽此中断。HPI的数据、控制引脚都是专用的,它保证了HPI和DSP操作的并行性。HPI的引脚在无主机访问时呈高阻态,因此可以直接挂在主机数据总线上,使得硬件电路特别简单。
HPI引脚由以下几部分组成:
(1)HD0~HD7:双向并行三态数据总线。当不传送数据HD0~HD7均处于高阻态。
(2)HPI片选信号。作为HPI的使能输入端,在每次寻址期间必须为低电平,而在两次寻址之间也可以停留在低电平。
(3)地址选通信号,此信号用于主机的数据线和地址线复用的情况。当不用时此信号应接高。
(4)HBIL:字节识别信号,用于识别主机传送过来的是第一个字节还是第二个字节。当HBIL=0时为第一个字节,HBIL=1时为第二个字节。
(5)HCNTL0、HCNTL1:主机控制信号,用来选择主机所要寻址的寄存器。当HCNTL1/HENTL0为00时,表明主机访问HPIC;当为01时,表明主机访问用HPIA指向的HPID,每读一次,HPIA事后增加1,每写一次,HPIA事先增加1;当为10时,表明主机访问HPIA;当为11时,表明主机访问HPID,而HPIA不受影响。
(6)数据选通信号,在主机寻址HPI周期内控制数据的传送。
(7)HPI中断输出信号,受HPIC中的HINT位控制。
(8)HRDY:HPI准备好端。高电平表示HPI已准备好执行一次数据传送;低电平表示HPI正忙于完成当前事务,用于连接高速主机。
(9)HPI读写信号。高电平表示主机要读HPI,低电平表示写HPI。
(10)HPIENA:HPI允许信号,若系统选中HPI则将它连到高电平,否则悬空或接低电平。
主机访问HPI的一个字包括两个步骤:首先访问第一个字节,此时HBIL为0;然后访问第二个字节,此时HBIL为1;这两步组成一个访问单元。这个访问单元不可被拆开或颠倒,不管当前访问的是HPIA、HPIC还是HPID。
HPI有两种工作方式:
·共用寻址方式(SAM),这是常用的操作方式。在SAM方式下,主机和DSP都能寻址HPI存储器,异步工作的主机的寻址可以在HPI内部得到同步。如果DSP与主机的周期发生冲突,主机有优先权。
·仅主机寻址方式(HOM)。在HOM方式下,只能让主机寻址HPI存储器,DSP则处于复位状态或所有内部和外部时钟都停止的IDLE2空转状态(最小功耗状态);
HPI支持DSP与主机之间数据的高速传输。在SAM工作方式,若HPI每5个时钟周期传送一个字节,主机的运行频率可达(fdsp×n)/5。其中fdsp是DSP的时钟频率,n是主机进行一次外部寻址所需的周期数,通常n为3(或4)。假定DSP的运行频率为100MHz,主机的时钟频率可达60(或80)MHz,且不需插入等待周期。而在HOM方式下,主机可以更快的速度工作,且与DSP的时钟频率无关。
2 应用系统及结果
滑窗算法是数字信号处理中一种常用的基本算法,在通信、雷达、电子对抗、参数估计、信号识别中有着广泛的应用。但滑窗算法一般是遍历性的算法,其运算量大,在实时处理中受到限制。随着DSP技术的发展,高速DSP芯片的出现,使滑窗算法的实际应用得以扩大。本文利用两片TI公司的高速DSP芯片TMS320C5402,应用其HPI接口并行实现多重滑窗算法,满足了某雷达系统解模糊的实时需要。系统由两片TMS320C5402完成所有的数字信号处理算法,主要是多重滑窗算法。根据实际系统的需要,将多重滑窗算法处理分布在两片TMS320C5402上,利用其HPI接口完成多处理机之间的快速数据交换,构成多机并行处理系统,完成多重滑窗算法的多机并行处理。整个系统的基本框图如图1所示。
HPI在双处理器中的应用原理图如图2所示。在本方案中,而HRDY悬空。由上面的分析可以很容易地得到HPI操作控制线占用的I/O端口,详细的分配情况见表1。
当对HPIC进行访问时(将一个十六位的数据送到HPIC中),首先将低八位数据送到端口地址为0h的I/O空间,然后将高八位送到端口地址为020h的I/O空间。HPID、HPIA的访问方式与之相同。下面是HPI接口初始化程序的部分代码;
PORTW *AR0,0h
LD *AR0,-8,a
STL A,*AR0
PORTW *AR0,020h
·代码说明: AR0中存放的是要发送数据的地址,这一段程序将一个16位的数据送到HPIC中。
参照上述步骤可以方便地通过HPI将DSP与FPGA、DSP和单片机等其它主机相连,限于篇幅,这里仅给出FPGA与DSP相连时FPGA的逻辑信号,如图3所示。
大量仿真与实测数据表明,各项指标均满足设计要求。该系统已在某雷达系统中获得应用。
参考文献
1 TMS320C54x User’s Guide.Texas Instrument,1999.10
2 张雄伟,曹铁勇.DSP芯片的原理与开发应用.北京:电子工业出版社,2000.9
3 TMS320C54x DSP Reference Set Volume 5: Enhenced Peripherals (literature number SPRU302).From:http://www.ti.com/