HPI有两种工作模式:
(1)共用访问模式(SAM)。此状态下MSP430和DSP都可以访问HPI存储器,如果二者的读取周期发生了冲突,主机(MSP430)有优先权。
(2)仅主机访问模式(HOM)。在此模式下只有主机(MSP430)可以访问HPI存储器,DSP处于复位状态或最小功耗状态。
其中8位数据总线(HD0~HD7)负责与主机交换信息,因为TMS320VC5402接口为16位,所以主机与DSP之间数据传输由2个连续的字节组成。由HBIL引脚指示正在传输的是高8位还是低8位。主机通过HCNTL0和HCNTL1指定所访问的寄存器是控制寄存器HPIC、地址寄存器HPIA还是数据寄存器HPID。HPIA寄存器还可以被设置为自动增寻址方式,以提高对连续地址访问操作的效率。HCS是片选信号,在主机访问HPI时必须保持为低。HAS是地址选通信号,一般用作地址锁存或不用(接高电平)。HR/W为读写选通信号,用来确定数据传输的方向。和
是数据选通信号,用于在主机访问周期控制数据的传输。当没有使用
信号,并且HCS信号处于低电平时,
或
可用于对HBIL、HCNTL0/1和HR/W信号的采样。因为HDS1和HDS2内部互斥,所以不能同时将
和
置低。硬件连接示意图如图3所示。
1.4 外置存储器设计
为了增强系统的扩展性及扩展DSP存储空间,特增加了外置FLASH和SRAM,并由CPLD控制二者与DSP之间的时序关系。图4为外接存储器系统的硬件框图。
CPLD配备了JTAG接口,便于程序烧录和日后修改。由于CPLD的时序严格,并且速度快、易编程,非常适于用作接口逻辑控制芯片。本设计采用了Alreta公司的EPM7032S芯片,利用DSP的MSTRB和R/W控制SRAM和FLASH的OE与WE的选通,A15、DS和XF控制FLASH的选通,PS和A19控制SRAM的选通。
VHDL语言描述如下:
OE<=‘0’when (mstrb=‘0’and rw=‘1’) else‘1’;
WE<=‘0’when (mstrb=‘0’and rw=‘0’) else‘1’;
CE(sram)<=‘0’ when(ps=‘0’and A19=‘0’) else ‘1’;
CE(flash)<=‘0’ when(ps=‘0’and xf=‘0’ and a19= ‘1’) or (ds=‘0 and xf=‘1 and a19=‘0’) else‘1’;
为了减少每次开机时的工作量,将处理程序(自适应LMS算法)烧入了FLASH中,并在系统复位时由编写的Bootloader自动将外部FLASH中的程序写入DSP内部的DRAM中,采用了在线烧制的方式。具体实现方式不再给出。编写时要注意复位时内部RAM的映射问题,因为复位时DSP自动将OVLY置1[3],将内部的RAM映射到所有数据空间的每一页的0080~3fff中,所以实际编写Bootloader时程序写入数据空间的起始地址应当为4000。
复位后FLASH映射到数据空间的0000~ffff,SRAM映射到程序空间的0000~ffff上,待烧录完成后,由通用IO引脚XF控制映射到程序空间的80000~bffff。数据空间由内部和外部RAM独占。