150 likes | 366 Views
主机接口 HPI. DSP 主机接口是一个并口。外部主机或主处理器,可以通过 HPI 接口读写 VC54X 的片内存储器(片内 RAM ),从而大大提高数据交换的能力。这种访问实际上是通过读写 HPI 的数据和地址寄存器来实现的。 本系统中的主机 89C51 通过 16245 和 DSP 的相应引脚进行连接。. HPI-8 结构框图. HPI-8 主要由 5 个部分组成. HPI-8 存储器,整个片内 RAM 都可以作为 HPI-8 存储器,用来在 C54X 和主机间传送数据,也可以用作通用的双寻址数据 RAM 或程序 RAM.
E N D
主机接口HPI • DSP主机接口是一个并口。外部主机或主处理器,可以通过HPI接口读写VC54X的片内存储器(片内RAM),从而大大提高数据交换的能力。这种访问实际上是通过读写HPI的数据和地址寄存器来实现的。 • 本系统中的主机89C51通过16245和DSP的相应引脚进行连接。
HPI-8主要由5个部分组成 • HPI-8存储器,整个片内RAM都可以作为HPI-8存储器,用来在C54X和主机间传送数据,也可以用作通用的双寻址数据RAM或程序RAM. • HPI-8地址寄存器(HPIA),该寄存器只能由主机对其直接访问,寄存器中存放当前寻址HPI-8存储单元地址。 • HPI-8数据锁存器(HPID),只能由主机对其进行访问,当前要进行写操作时,在HPID中存放的是要写HPI-8存储器的数据;当前要进行读操作时,在HPID中存放的是从HPI-8存储器中读出的数据。 • HPI-8逻辑控制单元(HPIC)。主机和C54X都能对它进行直接访问,它映射到C54X的数据空间002CH单元。 • HPI-8逻辑控制。用来处理HPI-8与主机之间的接口信息。
HPI主要接口信号线 • HPI控制线 HCNTL0/1信号线用来选择主机将要读写的是HPI的那个寄存器,他们由PC机控制字的D0和D1位决定。当D0/1为00时,表示主机可以访问HPI的控制寄存器HPIC;01和11表示主机可以访问数据寄存器,只有01模式允许主机在读写数据时地址自动加1,而在11模式下地址寄存器将不会改变。10模式表示主机可以访问HPI的地址寄存器。 HBIL为位传输控制位,由PC机控制字的D2位决定。当D2为0时,表示当前传输的时一个DSP内存单元(16位)的第一个字节,为1时表示传输第二个字节。而这两个字节哪个是高8位哪个是低8位,由HPIC中的BOB位确定。
选通控制线 /HCS:片选信号。作为HPI-8的使能输入端,在每次寻址期间为低电平,在两次寻址期间也可以停留在低电平。 /HAS:地址锁存使能(ALE)或地址选通或不用,地址选通信号。如果主机的地址,数据是一条多路总线,那么/HAS连接到主机的ALE引脚,/HAS的下降沿锁存HBIL,HCNTIL0/1和HR/ W;如果主机的的数据地址是分开的,将/HAS接高电平,此时靠/DSS1,/HDS2或/HCS中最迟的下降沿锁存HBIL,HCNTL0/1和HR/W信号 HCNTL0/1:主机控制信号。用来选择主机要寻址的是HPIA,HPID,还是HPIC寄存器。
HPI-8控制寄存器(HPIC) BOB:字节控制位,该位决定了传送中两个字节的位置,只能由主机读写:BOB=1时,第1个字节为低字节;BOB=0时,第1字节为高字节。该位只能被主机读写,它必须在第一次数据或地址寄存器访问前进行初始化。 SMOD位:主机只能读该位,而DSP可以读写。如果SMOD=1,表示起用共享模式,主机和DSP都可以访问HPI共享的RAM;如果SMOD=0,表示HPI工作在主机访问模式,DSP将无法访问2K的HPI共享RAM.DSP复位时,SMOD设置为0;复位操作完成后,SMOD=1。 DSPINT:主机向C54X发出中断位。该位只能由主机写,主机和C54X读该位时总是读为0。 HINT:C54X向主机发出中断位。该位只能被C54X置位,且只能被主机复位。
XHPIA:扩展总线使能。XHPIA=1时,主机向HPIA寄存器写的值被放到HPI-8地址空间的高n位;XHPIA=0时,主机写往HPIA寄存器的值放到HPIA寄存器中第0~15位。XHPIA:扩展总线使能。XHPIA=1时,主机向HPIA寄存器写的值被放到HPI-8地址空间的高n位;XHPIA=0时,主机写往HPIA寄存器的值放到HPIA寄存器中第0~15位。 HPIENA:HPI使能状态位。该位用来锁存引脚HPIENA的复位值。C54X通过该位判断HPI-8是否使能,该位不受写入的影响也不允许主机访问。
主机可以将HPIC看成一个有相同高低字节值的16b的寄存器。高8b对C54X来说是没用的。主机通过设置HCNTL0/1,可以用2个连续字节访问HPIC寄存器。这两个字节必须有相同的值。对C54X来说,访问HPIC寄存器就是访问数据空间中地址为002CH存储器映射寄存器。主机可以将HPIC看成一个有相同高低字节值的16b的寄存器。高8b对C54X来说是没用的。主机通过设置HCNTL0/1,可以用2个连续字节访问HPIC寄存器。这两个字节必须有相同的值。对C54X来说,访问HPIC寄存器就是访问数据空间中地址为002CH存储器映射寄存器。 • 因为C54X能写HINT位,而主机读HPIC寄存器要两次,如果在两次读之间,HINT位改变,则第1个字节和第2个字节的读的内容就会不同。而主机在向HPIC写时,也要分2个字节,两次写的字节必须相同。
在VC54X中,HPI的共享RAM有2K字,地址在片内的数据空间的1000H到17FFH.如果PMST中设置OVLY位为1。则也可以是程序空间的1000H到17FFH主机通过HPIA寄存器作为地址锁存器来读写相应的VC54X片内RAM。在HPIA中只有低11位有效。当主机通过HPI接口的数据寄存器HPID读写VC54X的片内RAM时,可以选择自动增量模式。注意,读和写对应不同的增加方式。如果主机时读操作,则HPIA在读完后自动加1;如果是写操作,则HPIA在写之前自动加1。在VC54X中,HPI的共享RAM有2K字,地址在片内的数据空间的1000H到17FFH.如果PMST中设置OVLY位为1。则也可以是程序空间的1000H到17FFH主机通过HPIA寄存器作为地址锁存器来读写相应的VC54X片内RAM。在HPIA中只有低11位有效。当主机通过HPI接口的数据寄存器HPID读写VC54X的片内RAM时,可以选择自动增量模式。注意,读和写对应不同的增加方式。如果主机时读操作,则HPIA在读完后自动加1;如果是写操作,则HPIA在写之前自动加1。
HPI和增强性HPI-8的区别: • HPI-8可以把整个片内RAM作为HPI存储器,让主机和C54X访问。而通常的8b主机接口只允许访问指定地址的2K字片内RAM作为HPI存储器。 • HPI-8没有仅主机寻址方式(HOM),主机和C54X都能访问HPI存储器。而在通常的8b主机接口HPI中,在主机方式下,仅能让主机寻址HPI存储器。 • 在HPI-8中,主机的访问总是和C54X的时钟同步。而在通常的8b主机接口HPI中,在HOM方式下,允许主机的异步访问。
HPI-8扩展寻址 • 当DSP器件的片内RAM映射地址范围大于64K字时HPI-8就需要进行地址扩展。主机使用HPIC寄存器中的扩展HPI地址(XHPIA)位来进行扩展寻址。当主机置位XHPIA时,一个代表扩展地址的7b寄存器(HPIA16~HPIA22)就可以代替HPIA寄存器 。要初始化这些扩展地址位,主机必须对HPIA寄存器进行一个写操作,用每个字节的低7b来设定HPIA16~HPIA22。 • 注意:在这个写周期,第1个和第2个字节的值被写入同一个寄存器中,所以如果这两个字节写的值不一样,就用第2个字节的值初始化,第1个字节的值丢弃。 • 扩展位初始化后,主机必须将XHPIA位清0,以恢复访问HPIA寄存器中HPI地址的低16b,也是为了自动增量方式的正确进行。
HPI-8访问过程 • 一次HPI-8传输包括外部传输和内部传输。外部传输是指主机与HPI-8寄存器交换数据,内部传输是指HPI-8逻辑在寄存器和片内RAM之间交换数据。一次外部传输总是2个字节,不管传输类型是设置HPIA,HPIC还是进行数据访问。主机传输第1个字节时会将HBIL拉低,传输第2个字节时在将HBIL拉高。 • 对于每个字节的传输,主机需要控制选通信号/HDS1,/HDS2和/HCS。HPI选通信号的下降沿表示第1或 第2个字节的传输开始,通常也是主机总线的开始,HPI选通信号的上升沿表示第1或第2个字节传输的结束。在第2个字节传输时,这个上升沿表示外部传输的结束和内部传输的开始。