HPI
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的引脚HINT被置位低电平,从而向主机发出中断请求。主机可以通过置位HINT来屏蔽此中断。HPI的数据、控制引脚都是专用的,它保证了HPI和DSP操作的并行性。HPI的引脚在无主机访问时呈高阻态,因此可以直接挂在主机数据总线上,使得硬件电路特别简单。
HPI引脚由以下几部分组成:
(1)HD0~HD7:双向并行三态数据总线。当不传送数据(HDSx或HCS=1)或EMU1/OFF=0时,HD0~HD7均处于高阻态。
(2)HCS:HPI片选信号。作为HPI的使能输入端,在每次寻址期间必须为低电平,而在两次寻址之间也可以停留在低电平。
(3)HAS:地址选通信号,此信号用于主机的数据线和地址线复用的情况。当不用时此信号应接高。
(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)HDS1、HDS2:数据选通信号,在主机寻址HPI周期内控制数据的传送。
(7)HINT:HPI中断输出信号,受HPIC中的HINT位控制。
(8)HRDY:HPI准备好端。高电平表示HPI已准备好执行一次数据传送;低电平表示HPI正忙于完成当前事务,用于连续高速主机。
(9)HR/W: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的时钟频率无关。
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的引脚HINT被置位低电平,从而向主机发出中断请求。主机可以通过置位HINT来屏蔽此中断。HPI的数据、控制引脚都是专用的,它保证了HPI和DSP操作的并行性。HPI的引脚在无主机访问时呈高阻态,因此可以直接挂在主机数据总线上,使得硬件电路特别简单。
HPI引脚由以下几部分组成:
(1)HD0~HD7:双向并行三态数据总线。当不传送数据(HDSx或HCS=1)或EMU1/OFF=0时,HD0~HD7均处于高阻态。
(2)HCS:HPI片选信号。作为HPI的使能输入端,在每次寻址期间必须为低电平,而在两次寻址之间也可以停留在低电平。
(3)HAS:地址选通信号,此信号用于主机的数据线和地址线复用的情况。当不用时此信号应接高。
(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)HDS1、HDS2:数据选通信号,在主机寻址HPI周期内控制数据的传送。
(7)HINT:HPI中断输出信号,受HPIC中的HINT位控制。
(8)HRDY:HPI准备好端。高电平表示HPI已准备好执行一次数据传送;低电平表示HPI正忙于完成当前事务,用于连续高速主机。
(9)HR/W: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的时钟频率无关。