摘要
本文从总体上介绍HPI(Host Peripheral Interface)接口的工作模式,与上位主机的连接方式,主机访问的操作流程;归纳了应用当中常见问题,并提供了分析解决办法。
简介
HPI 接口是TI 为处理器之间直接互连通讯定义的一种异步接口,大多数TI DSP 芯片上都有HPI 接口。HPI 接口是从(Slave)端口,接在主机的扩展内存总线上,DSP 不能通过HPI 向主机(Host)的访问,只能被主机读写。两个DSP 的HPI 接口之间不能通讯。两个DSP 之间互连,可以将一个DSP(从)的HPI 接到另一个DSP(主)的扩展内存接口(EMIF)上[1]。
1. HPI工作模式
不同系列DSP 上的HPI 接口版本有所不同,区别体现在DSP 对HPI 的控制上,如C6727 上的UHPI 可通过寄存器使能与关闭HPI 接口,对主机访问DSP 内存空间的控制,以及对HPI 接口信号的功能复用上。但从主机访问的角度,HPI 的工作模式分为:复用模式(MulTIplexed-Mode)和非复用模式(Non-mulTIplexed-Mode)。
复用模式下没有地址线,主机访问DSP 的地址信息是以数据方式送到HPIA(HPI 地址寄存)。从硬件信号的角度,地址,数据信号是由同一组数据线传递,所以称为复用模式。
非复用模式的数据线与地址线是分开的,与内存接口连接相似。非复用模式不需要操作HPIA 寄存器,主机访问的地址信息通过地址总线直接送给HPI。
所有的HPI 接口都支持复用模式,但不是所有芯片的HPI 接口都支持非复用模式(参考相应的芯片手册确定是否支持)。除了有无HPIA 的操作区别外,两种模式的操作没有区别。因为非复用模式的操作是复用模式操作的子集,为方便起见,本文以复用模式展开讨论。
2. HPI硬件信号连接
HPI 接口复用模式连线如图1 所示,根据在应用当中的必要性分为:必要的,和可选的两组信号。可选的信号
以虚线表示。
l 数据线HD[0:n]:在复用模式下,数据线的宽度一般为CPU 位宽的一半,一个HPI 访问分为高低半字的两次访问,如C5000 是16-bit CPU,HPI 数据线为8 位,C6000 是32-bit CPU,其HPI 数据线为16 位。C64x 系列的HPI 支持32 位,在32 位模式下一个HPI 访问不需要分为高低半字两次访问组成一个完整的访问。
l HCNTL0/1,HWIL:HCNTL0/1 选择要访问的HPI 寄存器,HWIL 控制访问寄存器的高低半字,必须先高后低。一个寄存器的高低半字的两次访问一定要连续完成,中间不能插入其它的HPI 操作。只有HPIC 可以只访问半个字。
l HR/W:指示对HPI 寄存器进行读,还是写操作。如果主机的读,写信号是分开的,可以利用其中一个信号,但要注意做上拉或下拉处理以控制其在三态时的电平。
l HCS,HDS1/2:这三个信号根据图2 的逻辑产生内部HSTROBE 信号,其逻辑关系是要求HDS1 和HDS2信号相反,HCS 低有效。HSTROB 下降沿的时间点反应的是三个信号中最后跳变的信号。HPI 在HSTROB的下降沿采样控制信号HR/W,HCNTL0/1,HWIL 以判断主机要对哪个寄存器进行读,或者写操作命令。
注意控制信号在HSTROBE 的下降沿之前需要最少5ns 的setup 稳定时间,而HDS1/2 和HCS 到HSTROBE信号内部门电路的延时是皮秒级的,所以控制信号的setup 时间需要外部时序保证。
图2 HSTROBE信号产生逻辑
l HRDY:HPI 的输出信号,指示当前操作状态,用做硬件流量控制握手信号。
l HINT:通过HPI,主机与DSP 之间可以互发中断。HINT 是HPI 送给主机的中断信号,DSP 对HPIC[HINT]位写1,HINT 信号线上送出高电平信号,主机可利用此信号做为中断信号输入。DSP 不能清除HPIC[HINT]状态,主机在响应中断后,需要对HPIC[HINT]位写1 清除状态,DSP 才能再次对HPIC[HINT]置位发中断。主机通过写HPIC[DSPINT]置1 给DSP 产生中断,DSP 在响应中断后,需要对HPIC[DSPINT]写1 清除状态,主机才能继续操作HPIC[DSPINT]给DSP 发中断。通过HPI 传输数据,结合互发中断做为软件层的握手信号,可有效提高通讯的效率与灵活性。
l ALE:存在于地址,数据线复用的主机上用来指示地址信号周期,这种总线复用的主机很少见,所以通常将ALE 固定上拉处理,只用HSTROBE 采样控制信号。
l BE:Byte Enable 信号,这个信号只出现在32 位的C6000 DSP 上。因为应用当中通常都是对整个32-bit 字进行访问,所以直接做上拉使能处理。