1 / 27

’C5000 HPI 接口的使用

专题. ’C5000 HPI 接口的使用. 主讲人:李玉柏 DSP 技术中心 1998.10.1. C54x 的 HPI 接口. 在 C54X 系列中,只有 542 , 545 , 548 和 549 提供了标准 8 位 HPI 接口。 C54XX 系列都提供了 8 位或 16 位的增强 HPI 接口。 外部主机或主处理器可以通过 HPI 接口读写 C54X 的片内 RAM ,从而大大提高数据交换的能力。. 标准与增强 8 位 HPI 接口区别. 标准 HPI 接口中外部主机只能访问固定位置的 2K 大小的片内 RAM ,而增强 HPI 接口可以访问整个内部 RAM 。

kinsey
Download Presentation

’C5000 HPI 接口的使用

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 专题 ’C5000 HPI接口的使用 主讲人:李玉柏 DSP技术中心 1998.10.1

  2. C54x的HPI接口 • 在C54X系列中,只有542,545,548和549提供了标准8位HPI接口。 • C54XX系列都提供了8位或16位的增强HPI接口。 • 外部主机或主处理器可以通过HPI接口读写C54X的片内RAM,从而大大提高数据交换的能力。

  3. 标准与增强8位HPI接口区别 • 标准HPI接口中外部主机只能访问固定位置的2K大小的片内RAM,而增强HPI接口可以访问整个内部RAM。 • 增强8位HPI只有同步模式,而标准8位HPI有异步模式,即可以在DSP的时钟CLOCK不工作时访问内部RAM。 • 在增强模式中主机和C54X都能访问RAM,而标准模式中,可以实现RAM的选择访问。

  4. 增强16位HPI的特点 • 可以完成8位HPI通讯。 • 用复用和非复用的两种模式。 • 复用模式与8位HPI相似,使用HPIA(2种)、HPID、HPIC访问和控制HPI。 • 非复用模式可以直接使用地址线选择片内RAM,不再使用HPIA和HPID寄存器。从而提供访问速度。

  5. ‘C542HPI的接口设计 • 主机利用HPI访问‘C54X的片内RAM,实际上是通过读写HPI的数据和地址寄存器来实现的。 • ‘C542的HPI为8位,所以一个内存单元必须通过两次HPI读写来完成。 • HPI有两种工作模式:RAM共享和主机访问模式。

  6. ‘C542HPI的接口设计 • 在RAM共享模式中,主机和‘C54X都可以访问HPI的共享内存。对‘C542而言,HPI的共享内存大小为2K字,地址从0x1000到0x17ff。 • 使用该模式,HPI支持的最高传输速度为CLKOUT/5每字节。 • 增强模式HPI只有共享模式。

  7. ‘C542HPI的接口设计 • 如果是主机访问模式,那么只有主机才能访问’C54X的片内RAM。例如在RESET=0或IDLE2状态中,主机仍然能访问片内RAM,利用这一点可以实现‘C54X的HPI BOOTLOADER。 • 增强型HPI接口无此功能,所以VC5402不能在RESET时写入RAM。

  8. ’C542的HPI与PC的接口示意图

  9. HPI接口的数据、控制线 • HPI的数据线HD0-HD7通过缓冲隔离BUF与PC机的数据线D0-D7相连。HCNTL0/1和HBIL为控制信号线,HDS1/2、HAS、HCS为HPI的选通控制线,HR/W为读写控制信号线,HRDY为HPI准备就绪信号线。HINT为HPI中断信号线。 • 非复用HPI还提供地址线HA0-HAn

  10. HPI接口连接例子 • HCNTL0/1信号线用来选择主机将要读写的是HPI的哪个寄存器,它们由PC控制字(占用地址单元0xd000:0x104)的D14和D13位决定。当D14和D13为00是,表示主机可以访问HPI的控制寄存器HPIC;01和11表示主机可以访问数据寄存器,当D14=1,D13=0时,表示主机可以访问HPI的地址寄存器。

  11. HPI接口控制信号 • HBIL为比特传输控制位,由PC控制字的D5位决定。当HBIL(即D5)=0时,表示当前传输的是一个‘C54X内存单元(16位)的第一个字节(第一个8位),HBIL为高时表示传输第二个字节。而这两个8位哪个是高8位,哪个是低8位,不是由该信号控制,而是由HPIC中的BOB位确定。

  12. HPI接口控制信号 • 在HPI的选通控制信号中,HCS为片选信号,HAS为地址锁存信号,HDS1/2为读写或数据始能信号。 可以将它们简化,仅使用HCS和HDS2,其它接为高电平。图中,PC机通过内存单元0xd000:0x100来访问HPI。所以HPI的选通信号由PC的地址译码信号产生。

  13. HPI接口控制信号 • HR/W为HPI的读写控制信号,高电平为读操作,低电平为写操作。 • HRDY为HPI的输出信号,高电平表示HPI准备就绪,HINT也是一个输出信号,由HPIC中的HINT比特位确定,HPI可以利用该引脚中断主机。 • 另外,引脚HPIENA为高电平表示允许HPI接口工作,若要使用HPI,该引脚必须接高电平。

  14. HPI的控制寄存器

  15. HPI控制寄存器HPIC • PC主机读HPI控制寄存器HPIC PC主机写HPI控制寄存器HPIC

  16. HPI控制寄存器HPIC • ‘C54X读取HPIC ‘C54X写HPIC

  17. HPI控制寄存器HPIC • BOB位:该比特位只能由主机读写,‘C54X无法访问。如果BOB=1,表示HPI的16位传输中的第一个8位字节是低8位;BOB=0,表示第一个8位字节为高8位。该比特位必须在读写数据和地址寄存器之前设置。 • DSPINT位:该比特位只能由主机写,并且‘C54X和主机都无法读取。当主机将1写到该比特位时,将产生一个中断到‘C54X。如果IMR寄存器中的HPINT位(D9)被设置为1,DSP将响应该中断,执行相应的中断服务程序。

  18. HPI控制寄存器HPIC • HINT位:该比特位主机和C54X都可以读写。该比特决定了‘C54X引脚HINT的状态。 • ‘C54X可以利用该信号发送中断到主机。当‘C54X在复位状态时,HINT比特位为0,对应的HINT脚为高电平。当‘C54X将该比特位设置为1时,HINT脚将变为低电平。 • 注意,当主机和‘C54X读取该比特位时,它将反映HINT引脚的状态,0表示高电平,1表示低电平。 • 另外,该比特位只能由‘C54X设置,由主机清除。主机将1写到该比特位,将清除HINT位,即HINT位为0。

  19. HPI地址寄存器的修改 • 当主机通过HPI接口的数据寄存器HPID读写‘C54X的片内RAM时,可以选择地址自动或不自动增加模式。 • 对于自动增加模式,读和写对应不同的增加方式。如果主机是读操作,那么HPIA在读完后自动加1;如果是写操作,那么HPIA将在写之前自动加1。 • 例如,如果HPIA的值为0FFh,这时主机对HPI的数据寄存器HPID进行写入操作(使用地址自动加模式),那么修改的将是HPI RAM的100h。

  20. 通过HPI接口访问片内RAM • 先设置HCNTL1和HCNTL0为0,选择将要对HPIC进行操作。然后将HPIC的值写入HPI。注意HPIC的高8位和低8位是一样的。(注意BOB的设置!) • 若将HPIC=0,即将BOB设置为0,那么在以后读写HPIA和HPID时一定是高8位在前,低8位在后。 • 注意,8位HPI通过两次操作读写数据 !

  21. 通过HPI接口访问片内RAM • 设置地址寄存器HPIA。先设置HCNTL1=1&HCNTL0=0,选择将要对HPIA进行操作。然后将要访问的‘C54X片内RAM的地址写入HPI。一定是高8位先写,低8位后写(对应BOB=0)。

  22. 通过HPI接口访问片内RAM • 读写‘C54X的片内RAM。先设置HCNTL1/0,选择将要对数据锁存器HPID进行操作。如果设置HCNTL1=0&HCNTL0=1,表示使用地址自动增加模式;如果设置HCNTL0=HCNTL1=1时,表示不使用地址自动增加模式,这时完成读写操作后,地址寄存器HPIA将不会变。

  23. HPI接口中断的使用 • 通过HPI接口,主机和‘C54X之间可以相互发送中断请求:主机通过HPIC寄存器的DSPINT位中断‘C54X,而‘C54X可以通过HPIC寄存器的HINT位发送中断请求到主机。

  24. 主机发送中断到‘C54X • 当主机将1写入到HPI控制寄存器HPIC的DSPINT比特位时,‘C54X将产生一个中断请求。 • 在‘C54X中,该中断位于中断屏蔽寄存器IMR和中断标志寄存器IFR的D9位,其中断入口地址位于中断向量表中64h。 • 如果IMR中该比特位为1,同时INTM标志为0允许中断请求时,‘C54X将响应并口中断,程序将跳转到中断向量表的64h,开始执行中断服务程序。 • 本实验中,学生可以使用C语言将1写入DSPINT位,然后查看IFR寄存器,检查是否产生中断请求。

  25. ‘C54X发送中断到主机 • 当‘C54X将1写入HPIC的HINT比特位时,HINT引脚变为低电平,主机可以利用该引脚接收‘C54X发生的中断信号。 • 无论是主机或‘C54X都可以通过读取HPIC来判断HINT引脚的状态。读出的HINT比特位为0,表示该引脚为高电平;1表示该引脚为低电平。 • HPIC中的HINT比特位只能通过主机清除,即主机写1到HPIC的HINT位后,外部引脚HINT的状态变回到高电平(这时再读取HPIC,HINT位为0)。

  26. 通过HPI完成BOOT LOADER • ‘C54X的BOOTLOADER是芯片在出厂时由生产厂家写入的一段ROM程序。该程序的启动地址正是‘C54X复位后的起始地址0FF80h。 • 用户可以利用BOOTLOADER方便地将自己的代码程序传送到指定的地方,并开始执行。 • BOOTLOADER有多种工作方式,通过HPI完成BOOTLOADER是其中的一种。HPI模式需要外部引脚连接配合,即需要将引脚HINT与引脚INT2相连,参见前面连接图。

  27. 利用HPI实现BOOTLOADER • ‘C54X复位后,BOOTLOADER程序将HPIC的DSPINT位置1,于是HINT引脚和INT2引脚变为低电平,然后BOOTLOADER程序通过判断IFR的D2位(即有无INT2中断)以确定是否为HPI启动。 • 若使用C542,则从1000h开始执行。 • 若使用VC5402,从7Fh单元提供地址开始执行。

More Related