基于USB2.0总线的TMS320VC5402 HPI自举的实现方案
HPI口是C54x DSP系列芯片内部的并行接口部件,用于与其他总线或CPU主机之间进行连接通信,主机是HPI口的主控者,通过专用地址和数据寄存器、HPI控制寄存器以及外部数据和接口控制信号与HPI口通信。
USB接口具有即插即用,速度快(最高可达480Mbps)等特点,可成为PC机的外围设备扩展中应用日益广泛的接口标准,基于USB总线对DSP实现HPI自举,可以降低成本,也便于DSP与PC机的高速数据通信,鉴于此种考虑,本文介绍一种利用USB2.0接口控制芯片(CY7C68013-56PVC)实现TMS320VC5402自举的实现方案。
USB2.0芯片及其GPIF简介
本方案采用的USB2.0接口控制芯片是Cvpress公司的CY7C6801356PVC,该系列芯片是世界上第一款支持USB2.0的集成微控制器芯片,它集成有USB2.0收发器、智能串行接口引擎(SIE)、增强的8051微处理器,通用可编程接口(GPIF)、片上RAM和FIFO存储器.该系列芯片的智能引擎也支持USB1.1协议,因此,它具有很好兼容性。
CY7C68013与外设有主/从两种接口方式:可编程接口GPIF和Slave FIFO,可编程接口GPIF是一个微状态机,可由软件编写读写控制时序,也可以作为USB FIFO的主控制器与DSP进行无缝连接,GPIF可工作在自动模式,USB总线和GPIF接口域直接进行数据传输,无需8051内核直接参入,以此解决USB2.0高速传输的"瓶颈"问题,GPIF与8051内核关系如图1所示。
硬件设计原理
自举从本质上说就是DSP上电后,在Bootloader引导下,获取应用程序并开始运行的过程,TMS320VC5402上电以后,当MP/MC为低电平时,系统将从片内ROM的OFF80H开始执行,此处的跳转指令使程序跳转至BootLoader程序入口处(OF800H处)。Bootloader程序先清除IFR,并设置HPI入口点(0x7F)的值为0,置HINT为低,再检测INT2是否置位,如置位则进行HIP自举,具过程如图2所示。
DSP复位之后,如检测到HPI自举方式有效,就可以进行HPI自举引导,基于USB总线的HPI自举,就是在Bootloader引导下,通过USB接口控制芯片把程序数据由主机(PC)写入DSP内部RAM(DARAM)并使DSP开始运行的过程,该自举过程分为三个步骤:一是写HPIC,以设置HPI控制参数;二是写HPIA,设置访问DSP的首地址;三是通过HPID下载程序。
首先,推动EZ-USB Control Panel下载CY7C68013的固件程序。当重枚举结束,驱动程序(ezusb.sis)重新安装成功后,在Control Panel中通过发送请求的方式由端点0向HPIC发送两个相同的8位控制字,而当HPIC初始化完成之后,再通过端点0设置欲下载程序段到DSP中的首地址HPIA.HPIC、HPIA设置好之后,就可以通过端点2下载DSP程序代码段,程序代码段需要分段下载,实际上,CY7C68013通过端点2把数据写入HPID,然后,DSP按照HPIA指定的地址,由DMA自动将HPID中的数据写到RAM,接口控制时序可由GPIF软件编程控制,程序数据分段下载完毕之后,再将程序的入口地址通过端点0写入0x7F处,在主机下载程序的过程中,DSP将一直检测0x7F是否为0,如不为0,即判定DSP已由主机进行了HPI自举加载,并按照该值跳转PC指针,以开始运行,进而完成HPI自举。
硬件电路
本设计用CY7C68013-56PVC与TMS320VC5402的HPI口相连接,接口选择GPIF模式,硬件电路如图3所示,该方案中,HCNTL[1:0]与GPIF的低位地址线PA3、PA2相连,以选择需要访问的HPI的HPIA、HPIC,HPID寄存器,CTL0接至HR/W,可作为读写控制信号,HDS1与输出信号线CTL1相连,以作为HPI访问的选通信号,HBIL与输出信号线CTL2相连,已用于识别传输的是第一个字节还是第二个字节,HRDY接输入信号线RDY0.用于通过主机查询HPI口的状态,HINT、INT2与INT0连接,可确保HPI自举有效,HCS接GND,可使HPI片选信号有效,HPIENA接高电平时,HPI使能,HAS、HDS2接高电平时,信号线禁用。数据线PD[7:0]与HD[7:0]相连,可在控制时序作用下传输一切数据信号。HPI接口控制时序由CTL0、CTL1、CTL2引脚输出,在自举过程中,系统将关闭CY7C68013所有的中断,若要通过中断实现数据通信的握手,可以在自举完毕打开CY7C68013的中断。
CY7C68013的具体配置为:启用GPIF接口控制数据传输,GPIF
USB2 0总线 TMS320VC5402 HPI自举 相关文章:
- 利用FPGA实现外设通信接口之: 典型实例-USB 2.0接口的设计与实现(06-05)
- 利用FPGA实现外设通信接口之:利用FPGA实现USB 2.0通信接口(06-05)
- 基于总线的嵌入式高速图像通信系统设计(12-21)
- 基于USB 2.0数据采集系统的程序设计(12-21)
- USB2.0接口全接触(12-14)
- 如何轻松地将USB 2.0变为USB Type-C(12-13)