CY7C68013芯片的USB接口固件设计_第1页
CY7C68013芯片的USB接口固件设计_第2页
CY7C68013芯片的USB接口固件设计_第3页
CY7C68013芯片的USB接口固件设计_第4页
CY7C68013芯片的USB接口固件设计_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

精品文档CY7C68013芯片的USB接口固件设计来源:单片机及嵌入式系统应用 作者:北京交通大学 李强 伍坚 姚冬苹 USB接口(Universal Serial Bus)是一种通用的高速串行接口。它最主要的特点是高速传输特性,可以很好地解决海量数据在嵌入式系统与PC机之间的互传问题;同时USB接口还具有热插拔、速度快(具有3种数据传输模式,即低速、全速、高速;最快可达480 Mbps)和扩展性好(最多可以连接127个USB设备)等特点,从而使得USB接口得到了广泛的应用。 1 USB芯片CY7C68013介绍 CY7C68013属于Cypress公司的FX2系列产品,是Cypress公司生产的第一款USB20芯片。 CYTC68013是一个带增强型MCS51内核和USB接口的单片机,完全遵从USB2O协议,可提供高达480 Mbps的传输率;内部集成PLL(锁相环),最高可使5l内核工作在48MHz;对外提供两个串口,可以方便地与外部通信;片内拥有8 KB的RAM,可完全满足系统每次传输数据的需要,无需再外接RAM。由于芯片内部没有ROM,一旦USB设备断开与PC的连接,程序代码将无法保存,需要每次在PC机接入USB设备后,重新下载。另外,CY7C68013支持一种“E2PROM引导方式”,即先将固件下载到片外E2PROM中,当每次USB设备通电后,FX2自动将片外E2PROM中的程序读入芯片中。 CY7C68013与外设有主从两种接口方式:可编程接口GPIF和Slave FIFO。可编程接口GPIF是主机方式,可以通过软件编写读写控制时序,灵活方便,几乎可以与所有816位接口的控制器、存储器和总线实现无缝连接。Slave FTFO是从机方式,外部控制器可以像对待普通FIFO一样对芯片内的多个缓冲区进行读写;S1ave FIFO方式也可以灵活配置,以适应不同的需要。2 硬件设计思想 USB数据传输流程如图l所示。 工作流程可分为两个部分:芯片初始化部分和数据传输部分。2.1 芯片初始化部分 本部分是适用于任何USB传输过程中的芯片初始化部分。当USB接口接入PC后,首先进行PC的设备搜索,从USB端获得设备的VIDPID,以及USB芯片的工作方式;然后PC机通过得到的VIDPID获取设备的驱动,保证设备的工作。与此同时,USB芯片上电开始,MCU开始从E2PROM中获取MCU的工作状态、采用的工作模式、数据传输方式、所用到传输方式端点的大小以及传输方向,并对接口器件进行相应芯片寄存器的初始化。实现内容因具体芯片而异,因此确定接口器件后再说明寄存器初始化的方法。22 数据传输部分 不同器件相接实现方式不同,在此以CY7C68013与DSP6416 HPI接口数据传输实现为例,介绍数据传输流程。 首先,简单地介绍一下DSP611 6 HPI接口。HPI是一个并行端口,通过HPI可以直接访问DSP的存储空间,也可以通过DMAEDMA控制器实现对DSP存储空间的访问。HPI口可以提供1632位的数据接口,通过主机或者CPU访问HPI控制寄存器(HPIC)来确定HPI接口的数据带宽。 确定了DSPHPI作为USB的接口器件,DSPHPI接口的初始化如下:对于DSP,为了满足数据的正常传输,需要对HPIC寄存器进行设置,即设置字长,初始化时假设DSP向主机发送中断和Ready信号。因为没有用到HPT的地址线,因此不需要设置HPIA寄存器。此时DSP已经做好了接收或发送数据的准备。 为了满足与HPI接口读写时序的无缝连接,此处采用了GPIF传输模式。流程如下: 当数据PC端发送时,USB收发机将收到的信号发送给CY7C68013,USB芯片接收到数据后先存放在端点寄存器里,等到数据放满数据缓存区时,USB芯片启动GPIF,将数据送入DSP。当DSP接收到数据后会对HPIC控制器进行设置,发送给USB中断信号,提示收到数据包,即完成1次PCDSP传输。 当数据从DSP端发送时,HPIC寄存器发送中断至USB芯片,USB芯片做好接收数据的准备;然后HPI将数据送入USB芯片,等数据缓存区放满l024字节后,将数据通过USB发送至PC机接收端。3 硬件电路的设计与实现 如前所述,接口电路方面USB为了满足HPI接口的读写时序采用GPIF方式。3.1 CY7C68013与HPI接口电路 CY7C68013与HPT接口电路原理图如图2所示。 这里需要说明的有如下几点: HHWIL主要用来区分第1个第2个Halfword的传输,且仅在半宁传输时出现。由于主机没有数据线和地址线复用的情况,因此在这里将HAS置高电平。 HDSl、HDS2作为数据选通信号,主要用于主机寻址HPI周期内控制数据传输,在本次工作中没有用到,而为了调试方便,保留了HDSl和HDS2,通过高低电平控制它们的变化。由于HDSl、HDS2和HCS在片内是组合为一个低有效的HSTROBE信号,其组成关系如下: HSTROBE=NOT(HDSl XOR HDS2)OR HCS所以HDSl置低电平,HDS2置高电平,利用HCS的信号变化控制HPI读写初始化。 HCNTL1:O主要用来控制当前访问的是HPI的哪个寄存器。在HP1初始化时完成HPIC寄存器的控制信息。HPID寄存器主要实现数据传输时数据的读取写入。此处没有用到HPI的地址操作,因此HPIA作为地址寄存器不需要送入控制信息。 HD15:O对应于PB7:o、PD7:0接口,由于为半字传输方式,因此在这里需要将HD5置低电平,以满足芯片复位时HD5为低电平。3.2 固件调试部分 固件程序流程图如图3所示。(1)初始化部分 该部分用来确定整个过程采用的方式,确定端点的传输方式、方向和缓存区的大小,设置HPI接口的HPIC寄存器以及设备的枚举。本设计采用的是GPIF传输方式,端点选择的是批量传输。采用的端点是EP2和EP6。EP2传输方向为OUT,缓存区大小为1024字节;EP6传输方向为IN,缓存区大小为l024字节;通过对HPIC的操作确定HPI的工作方式以及HPID的数据传输方式。编写GPIF数据中断函数和USB设备描述符。(2)GPIF波形部分 GPIF波形采用Cypress公司提供的GPIF Designer来实现。GPIF Designer通过简单形象的界面解决了复杂程序表示的GPIF时序设计问题。与DSP HPI接口相符合的读、写时序如图4和图5所示。(3)中断产生时GPIF数据传输 在程序中实现每当缓存区数据达到l024字节或为最后一包数据时,自动进

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论