- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
HPI接口在TI SOC的应用
ALE:存在于地址,数据线复用的主机上用来指示地址信号周期,这种总线复用的主机很少见,所以通常将ALE固定上拉处理,只用HSTROBE采样控制信号。
BE:Byte Enable信号,这个信号只出现在32位的C6000 DSP上。因为应用当中通常都是对整个32-bit字进行访问,所以直接做上拉使能处理。
3.HPI寄存器地址映射
HPI口提供给主机端访问的寄存器只有4个,通过HCNTL[1:0]选择。
表1. HPI寄存器访问选择
由于在复用模式下数据线通常只有寄存器宽度的一半,所以一个完整的数据访问由高低半字两次访问组成,由HWIL信号控制,HWIL信号必须是先低后高。通常将HWIL和HCNTL[1:0]接在主机的地址线上,将4个寄存器映射为主机端的8个内存单元,下表中的地址线连接方法将8半字寄存器映射到主机的8个连续的内存单元。这里的地址线是用来选择HPI的寄存器,与非复用模式下的地址线直接访问DSP的内存空间是完全不同的作用。
表2. HPI寄存器地址映射
4. HPI寄存器功能说明
HPIC (HPI Control Register)
HPI控制寄存器HPIC的位图如表3所示,C6000系列DSP的HPI寄存器是32位的,也只有低16位有效,与C5000系列DSP的HPIC寄存器定义的功能保持一致。不同版本的HPI接口的HPIC位定义的主要不同之处在于软件握手HRDY位的有无,其它位名称可能存在细小差异,但功能定义都是一样的。
表3. HPI Control Register
主机在对HPI进行访问前可以通过HPIC配置字节序(HWOB)和地址寄存器模式(DUALHPIA)。默认的配置为HWOB=0,即先访问高半;DUALHPIA=0,即单地址寄存器模式,读和写操作使用同一个HPIA;通常都采用默认的HPIC寄存器配置。
HWOB与硬件信号HWIL是没有联系的,HWIL信号必须保证先低后高分别访问两个半字单元。至于先访问一个字当中的高或低半字,是由HWOB控制的。
HPIA (HPI Address Register)
物理上存在HPIAR,HPIAW两个地址寄存器。HPIAR是读操作地址寄存器;HPIAW是写操作地址寄存器。由HPIC的DUALHPIA位来决定是采用双地址寄存器模式还是单地址寄存器模式。如果采用双地址寄存器模式,在对HPIA操作之前,通过设置HPIC的HPISEL位选择下一个要访问的HPIA.通常为了简化在读写操作转换时对HPIC的操作,选用单地址寄存器模式。
HPIA的地址信息在不同系列DSP上有所不同:
在C5000上,数据空间,I/O空间只能按16位字寻址,程序空间按字节寻址。HPI的DMA访问属于I/O空间,HPIA的值代表16位字地址。如主机端要访问DSP内存字节地址0x100, 则要往HPIA写的地址值是0x80.在用HPI启动时,要注意DSP代码是按字节地址链接的,即代码段的地址是字节地址,主机端要将代码段的地址信息除以2再送到HPIA.
在C64上,HPIA的值代表字节地址,但是HPI访问的数据是32位的,所以HPI会忽略HPIA地址值的低两位。
在C64+的DSP上,HPIA代表32位字地址,HPI会将字地址左移两位转换成字节地址,主机若要访问DSP字节地址0x100,则要赋值HPIA为0x40.
HPID (HPI Data Register)
主机通过HPI对DSP的内存访问是间接访问,主机只能访问HPID,HPID与DSP内存之间是通过HPI专属的DMA进行数据搬运的。如图3所示。
图3. HPI读写数据流
1 2 3 4 5