微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > MCU和DSP > HPI接口在TI SOC的应用详解

HPI接口在TI SOC的应用详解

时间:08-04 来源:唐超伦 —— TI 通用数字信号处理系统技术支持 点击:

WIL 和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 所示。

\

HPID 的访问分为自增模式和非自增模式。在自增模式下,访问HPID 后,HPIA 会自动增加指向下一个字地址,在连续访问时,自增模式因为减少了主机对HPIA 的操作,可以增加HPI 数据访问的吞吐率。非自增模式下访问HPID 后,HPIA 的值保持不变,主机需要更新HPIA 来访问下一个地址。

在写操作时,主机把数据写到HPID,HPI 将第二个半字的数据通过HSTROBE 的上升沿锁存到HPID 后,将HRDY 置为忙状态,并启动HPI DMA 将HPID 的内容搬到HPIA 所指向的内存单元,然后清除HRDY 指示可以进行下一次操作。

在读操作时,在第一个HSTROBE 的下降沿,HPI 采样到HR/W为读命令,则将HRDY 置为忙状态,启动HPIDMA 将HPIA 指向的内存单元的数据搬到HPID,清除HRDY 忙状态,主机端方可结束总线访问周期,锁存数据线上的有效数据。

5. HPI 操作流程

主机对HPI 的一次总线访问周期为分三个阶段:主机发起访问,HPI 响应,主机结束访问周期。

A. 主机发起访问:即对HPI 寄存器的读,或者写命令。主机送出的硬件信号为HSTROBE(由HCS, HDS1/2产生),HR/W,HCNTL0/1,HWIL,以及HD[0:n]。HPI 在HSTROBE 的下降沿采样控制信号HR/W,HCNTL0/1,HWIL 判断主机的操作命令。

B. HPI 响应:HPI 在HSTROBE 的下降沿采样控制信号,根据控制信号做出相应的响应。如果是写(HR/W为低)命令,则在HSTROBE 的上升沿将数据线上的信号锁存到HCNTL0/1 和HWIL 指向的寄存器。如果是读命令(HR/W 为高),如果是读HPIC,或者HPIA 寄存器,HPI 将寄存器的值直接送到数据总线上;如果读HPID,HPI 先将HRDY 置为忙状态,HPI DMA 将数据从HPIA 指向的内存单元读到HPID,再送到数据线上,并清除HRDY 忙状态,在读HPID 后半字时,数据从寄存器直接送到数据总线上,不会出现HRDY 信号忙状态。

C. 主机结束访问周期:对于写操作,主机将数据送出后,只要满足芯片手册中HPI 对HCS 的最小宽度要求,即可结束访问周期。对于读HPID 操作,

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top