USB2.0微控制器CY7C68013的GPIF接口设计_第1页
免费预览已结束,剩余1页可下载查看

下载本文档

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

文档简介

1、usb2.0微控制器cy7c68013的gpif接口设计(universal serial bus)是一种通用串行,主要用于pc与外围usb设备的互联。近年来,usb接口以其迅速、即插即用、用法安装便利等优点逐渐成为现代数据传输的进展趋势。目前,国内外采纳usbl1和usb2o两种规范。usbl1主要用于低速传输要求的场合,支持15mbs和12mbs两种传输速率;而usb2o规范则提供高达480mbs的传输速率。尽管如此,在某些对数据传输速度要求很高的系统中,外围设备与usb接口之间在速度上仍存在着不行忽略的传输瓶颈。公司生产的usb20控制器cy7c68013提供了一种独特的接口方式,即通用

2、可编程接口(gpif)方式。它与传统接口方式的主要区分有两点:在数据传输过程中不需要cpu干涉,使得传输速率显然提高,从而可以充分利用usb20的传输带宽;由软件设置读写控制,其控制方式类似于状态机,提高了传输稳定性。因此,本文介绍的基于usb20控制器cy7c68013的gpif接口设计,就是充分利用了该芯片这一独特的数据传输接口方式,有效地解决了在传统接口方式下usb20设备数据传输速度的局限性,大大提高了数据的传输速率。1 cy7c68013简介cy7c68013是cypress公司的ez-usb fx2系列芯片。ez-usb fx2是一款集成usb20的微控制器,内部结构l所示。该系列

3、芯片集成了usb2o收发器、串行接口引擎(sie)、带85kb片上ram的增加型高速8051、4kb fifo存储器以及通用可编程接口等模块提供了全面集成的usb解决计划,无需外加芯片即可实现高速usb传输。fx2系列芯片最主要的特点是可以通过usb20的通用可编程接口为特定的应用接口编程。另外,cy7c68013的gpif引擎具有自动传输数据结构的特性,这种特性使得以主从端点fifo(b/16位数据总线)为ata、utopia、epp、pcmcia、等的外围设备,可以与主机通过cy7c68013无缝、高速地传输数据。另外,cy7c68013内部集成的usb2o的sif能完成大部分usb2o协

4、议的处理工作,从而削减了用户对繁杂的usb协议的处理。2 硬件设计及原理在gpif接口方式设计中,gpif作为cy7c68013的端点fifo的内部控制器,在这种方式下,cpu不会干涉数据的传输。cy7c68013的gpif接口方式2所示。cy7c68013特地为gpif提供了接口信号(包括16位数据线、输出控制信号ctl、输入控制信号rdy以及地址线adr),这些信号负责完成usb接口芯片与外围设备或器件(如、dsp等)的数据读写控制和传输。以下为gpif方式下的主要端口功能。fdofdl5(输入输出):usb主机通过cy7c68013与外部设备举行数据传输的数据线,可以用8位或16位数据线

5、。ctloctl5(输出):cy7c68013对外部设备举行控制的信号线。rdy0rdy5(输入):cy7c68013对外部设备的状态举行检测的信号线。sda(双向)、scl(输出):e2prom的数据准时钟信号线。adr0adr8(输出);gpif为外部设备提供的地址线。在本设计中,除了重点利用通用可编程接口来实现无缝、高速的传输数据外,还采纳了ez-usbfx2提供的一种独特架构,即“量子fifo(quantum fifo)”处理架构。它能较好地解决带宽问题,图3为其数据传输暗示图。当usb执行out时,ep2端点被设置为512字节四重fifo(在usb端和外部接口端,都不知道有四重fif

6、o),图4为其数据传输原理图。在usb端看来,只要有1个fifo为“半满”,那么就可以继续发送数据。当前操作的fifo写“满”时,fx2自动将其转换到外部接口端,排解迎候读取;并将usb接口队列中下一个为“空”的fifo转移到usb接口上,供其继续写数据。同时,在外部接口端看来,只要有1个fifo为“半满”,就可以继续读取数据。当前操作的fifo读“空”时,fx2自动将其转换到usb接口端,排解迎候写入;并将外部接口队列中下一个为“满”的fifo转移到外部接口上,供其继续读取数据。3 软件设计及实现本设计的软件设计包括:固件程序、驱动程序和应用程序设计。其中,固件程序是囫囵程序设计的核心,它在

7、设备cpu中运行。gpif就是在固件中实现的,因此,惟独在该程序运行时,外设才干称之为具有给定功能的外部设备。31 固件设计在gpif高速数据传输中,gpif波形的描述符打算了囫囵数据传输过程的时序。gpif波形描述符通常用cypress公司的gpif工具(gpiftool)举行配置。它是一个可运行于windows平台的应用程序,与fx2的开发包一起发布的。在gpif方式下,全部的读写及控制规律通过cy7c68013的gpif以软件编程的方式实现,且控制规律的变换便利灵便(只需要转变接口的一个配置寄存器的值)。fx2由4个gpif波形描述符控制各个状态,它们分离是gpif waveform o

8、(fiford)、gpif waveform1(fifowr)、gpif waveform 2(snglrd)和gpif wave-form 3(snglwr)。这些波形描述符可以动态地配置给任何一个端点fifo。fx2的固件程序可以把这些描述符配置给4个fifo中的随意一个;配置后,gpif将依据波形描述符产生相应的控制规律和握手信号给外界接口,以满足向fifo读写数据的需要。每个波形描述符包含了7个有效状态(s0s6)和1个空闲状态。在每个有效状态对应的时光段里,经过预先设置,gpif可以完成以下几项工作:驱动(使高或低)或浮接ctl输出,采样或驱动fifo的数据总线,增强gpif地址总线

9、的值和指向当前fifo指针的值,以及启动gpifwf(gpif波形)中断。除此之外,在每个状态下,gpif还可以对几个信号(如rdy输入端、fifo状态标记位、内部rdy标记位和传输计数终止标记位)中的随意两个举行采样,把其中两个信号相“与”、相“或”或者相“异或”,并按照结果跳转到其他随意一个状态或延迟1256个时钟周期,固然也可以按照输入端的信号举行跳转或延迟。fifo读波形配置(fiford)5所示。在状态0时,数据总线上的数据为有效(activate),gpif把数据读到fifo中。在状态1时,gpif产生一个正脉冲信号rdclk(ctl0)给外围设备,表示已经读取了一个数据,同时推断

10、数据是否传输结束。假如还没有,则不断循环状态o和状态l,直到读完全部数据为止;读完全部数据后,不再经过中间其他任何状态,就挺直跳到状态7(idle),表示完成本次数据传输。从图5中町以看出,在两个时钟周期内完成了一个数据(8位或16位)的读取,假如数据为双字节宽,那么传输速率可达48 mbs,从而充分利用了usb20的传输带宽,大大提高了数据传输的速率。3.2 驱动程序设计usb系统驱动程序由3部分组成:usb设备驱动程序、usb总线驱动程序和usb主控制器驱动程序。其中,windows操作系统已经提供了处于驱动程序栈底的usb总线驱动程序和usb主控制器驱动程序;而usb设备驱动程序由设备开

11、发者编写,通过向usb总线驱动程序发送包含urb(usb request block)的irp(io requestpaeket),以实现usb外设之间的信息交换。开发usb设备驱动程序,可采纳numega公司的开发包driver works和mierosoft公司的2000ddk,并以vc+6o作为辅助开发环境来完成。在cypress公司的ez-usbfx2开发包中,提供了完整的cy7c68013驱动程序源代码、控制面板程序及固件的框架,可以大大加快用户开发的进度。用户只需对所带驱动程序稍加修改甚至无需任何修改,再经ddk编译后用法,软件开发者大量的时光主要集中在应用程序和固件的开发上。本设

12、计所用的usb设备驱动程序就是对fx2开发包所带的驱动程序做了一些修改,主要是修改了deviceiocontrol例程,增强了控制数据传输函数、启动和停止ad、复位fifo等。33 应用程序设计用户程序是usb系统与用户的接口,其关键是实现从usb外设读取或发送usb设备哀求、指令和特定量的数据等,并对数据举行一系列处理(如存储、显示等)。在编写用户程序时,首先要建立与外设的衔接,然后才干实施数据的传输。本设计用法的是c+builder6编译环境,在c+builder6环境下通过api函数去调用usb驱动。基本步骤为:首先打开设备的句柄;然后举行读写和控制操作;最后关闭设备句柄。程序中主要用到的两个api函数creatfile()和devicelocontrol()就是通过该句柄实现数据传输的。结语本文具体介绍了基于usb2o控制器cy7c68013的gfif接口软硬件设计计划。该设计充分利用了cy7c68013芯片的通用可编程接

温馨提示

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

评论

0/150

提交评论