USB2.0微控制器CY7C68013的GPIF接口设计
发布时间:2008/6/3 0:00:00 访问次数:1002
usb(universal serial bus)是一种通用串行总线,主要用于pc与外围usb设备的互联。近年来,usb接口以其快速、即插即用、使用安装方便等优点逐渐成为现代数据传输的发展趋势。
目前,国内外采用usbl.1和usb2.o两种规范。usbl.1主要用于低速传输要求的场合,支持1.5mb/s和12mb/s两种传输速率;而usb2.o规范则提供高达480mb/s的传输速率。尽管如此,在某些对数据传输速度要求很高的系统中,外围设备与usb接口之间在速度上仍存在着不可忽视的传输瓶颈。
cypress公司生产的usb2.0控制器cy7c68013提供了一种独特的接口方式,即通用可编程接口(gpif)方式。
它与传统接口方式的主要区别有两点:
①在数据传输过程中不需要cpu干涉,使得传输速率明显提高,从而可以充分利用usb2.0的传输带宽;
②由软件设置读/写控制,其控制方式类似于状态机,提高了传输稳定性。因此,本文介绍的基于usb2.0控制器cy7c68013的gpif接口设计,就是充分利用了该芯片这一独特的数据传输接口方式,有效地解决了在传统接口方式下usb2.0设备数据传输速度的局限性,大大提高了数据的传输速率。
1 cy7c68013简介
cy7c68013是cypress公司的ez-usb fx2系列芯片。ez-usb fx2是一款集成usb2.0收发器的微控制器,内部结构如图l所示。该系列芯片集成了usb2.o收发器、串行接口引擎(sie)、带8.5kb片上ram的增强型高速8051单片机、4kb fifo存储器以及通用可编程接口等模块.提供了全面集成的usb解决方案,无需外加芯片即可实现高速usb传输。
fx2系列芯片最主要的特点是可以通过usb2.0的通用可编程接口为特定的应用接口编程。另外,cy7c68013的gpif引擎具有自动传输数据结构的特性,这种特性使得以主/从端点fifo(b/16位数据总线)为ata、utopia、epp、pcmcia、dsp等的外围设备,可以与主机通过cy7c68013无缝、高速地传输数据。另外,cy7c68013内部集成的usb2.o的sif能完成大部分usb2.o协议的处理工作,从而减少了用户对繁杂的usb协议的处理。
2 硬件设计及原理
在gpif接口方式设计中,gpif作为cy7c68013的端点fifo的内部控制器,在这种方式下,cpu不会干涉数据的传输。cy7c68013的gpif接口方式如图2所示。
cy7c68013专门为gpif提供了接口信号(包括16位数据线、输出控制信号ctl、输入控制信号rdy以及地址线adr),这些信号负责完成usb接口芯片与外围设备或器件(如fpga、dsp等)的数据读/写控制和传输。以下为gpif方式下的主要端口功能。
fdo~fdl5(输入/输出):usb主机通过cy7c68013与外部设备进行数据传输的数据线,可以用8位或16位数据线。
ctlo~ctl5(输出):cy7c68013对外部设备进行控制的信号线。
rdy0~rdy5(输入):cy7c68013对外部设备的状态进行检测的信号线。
sda(双向)、scl(输出):e2prom的数据及时钟信号线。
adr0~adr8(输出);gpif为外部设备提供的地址线。
在本设计中,除了重点利用通用可编程接口来实现无缝、高速的传输数据外,还采用了ez-usbfx2提供的一种独特架构,即“量子fifo(quantum fifo)”处理架构。它能较好地解决带宽问题,图3为其数据传输示意图。当usb执行out时,ep2端点被设置为512字节四重fifo(在usb端和外部接口端,都不知道有四重fifo),图4为其数据传输原理图。在usb端看来,只要有1个fifo为“半满”,那么就可以继续发送数据。
当前操作的fifo写“满”时,fx2自动将其转换到外部接口端,排除等候读取;并将usb接口队列中下一个为“空”的fifo转移到usb接口上,供其继续写数据。同时,在外部接口端看来,只要有1个fifo为“半满”,就可以继续读取数据。当前操作的fifo读“空”时,fx2自动将其转换到usb接口端,排除等候写入;并将外部接口队列中下一个为“满”的fifo转移到外部接口上,供其继续读取数据。
3 软件设计及实现
本设计的软件设计包括:固件程序、驱动程序和应用程序设计。其中,固件程序是整个程序设计的核心,它在设备cpu中运行。gpif就是在固件中实现的,因此,只有在该程序运行时,外设才能称之为具有给定功能的外部设备。
usb(universal serial bus)是一种通用串行总线,主要用于pc与外围usb设备的互联。近年来,usb接口以其快速、即插即用、使用安装方便等优点逐渐成为现代数据传输的发展趋势。
目前,国内外采用usbl.1和usb2.o两种规范。usbl.1主要用于低速传输要求的场合,支持1.5mb/s和12mb/s两种传输速率;而usb2.o规范则提供高达480mb/s的传输速率。尽管如此,在某些对数据传输速度要求很高的系统中,外围设备与usb接口之间在速度上仍存在着不可忽视的传输瓶颈。
cypress公司生产的usb2.0控制器cy7c68013提供了一种独特的接口方式,即通用可编程接口(gpif)方式。
它与传统接口方式的主要区别有两点:
①在数据传输过程中不需要cpu干涉,使得传输速率明显提高,从而可以充分利用usb2.0的传输带宽;
②由软件设置读/写控制,其控制方式类似于状态机,提高了传输稳定性。因此,本文介绍的基于usb2.0控制器cy7c68013的gpif接口设计,就是充分利用了该芯片这一独特的数据传输接口方式,有效地解决了在传统接口方式下usb2.0设备数据传输速度的局限性,大大提高了数据的传输速率。
1 cy7c68013简介
cy7c68013是cypress公司的ez-usb fx2系列芯片。ez-usb fx2是一款集成usb2.0收发器的微控制器,内部结构如图l所示。该系列芯片集成了usb2.o收发器、串行接口引擎(sie)、带8.5kb片上ram的增强型高速8051单片机、4kb fifo存储器以及通用可编程接口等模块.提供了全面集成的usb解决方案,无需外加芯片即可实现高速usb传输。
fx2系列芯片最主要的特点是可以通过usb2.0的通用可编程接口为特定的应用接口编程。另外,cy7c68013的gpif引擎具有自动传输数据结构的特性,这种特性使得以主/从端点fifo(b/16位数据总线)为ata、utopia、epp、pcmcia、dsp等的外围设备,可以与主机通过cy7c68013无缝、高速地传输数据。另外,cy7c68013内部集成的usb2.o的sif能完成大部分usb2.o协议的处理工作,从而减少了用户对繁杂的usb协议的处理。
2 硬件设计及原理
在gpif接口方式设计中,gpif作为cy7c68013的端点fifo的内部控制器,在这种方式下,cpu不会干涉数据的传输。cy7c68013的gpif接口方式如图2所示。
cy7c68013专门为gpif提供了接口信号(包括16位数据线、输出控制信号ctl、输入控制信号rdy以及地址线adr),这些信号负责完成usb接口芯片与外围设备或器件(如fpga、dsp等)的数据读/写控制和传输。以下为gpif方式下的主要端口功能。
fdo~fdl5(输入/输出):usb主机通过cy7c68013与外部设备进行数据传输的数据线,可以用8位或16位数据线。
ctlo~ctl5(输出):cy7c68013对外部设备进行控制的信号线。
rdy0~rdy5(输入):cy7c68013对外部设备的状态进行检测的信号线。
sda(双向)、scl(输出):e2prom的数据及时钟信号线。
adr0~adr8(输出);gpif为外部设备提供的地址线。
在本设计中,除了重点利用通用可编程接口来实现无缝、高速的传输数据外,还采用了ez-usbfx2提供的一种独特架构,即“量子fifo(quantum fifo)”处理架构。它能较好地解决带宽问题,图3为其数据传输示意图。当usb执行out时,ep2端点被设置为512字节四重fifo(在usb端和外部接口端,都不知道有四重fifo),图4为其数据传输原理图。在usb端看来,只要有1个fifo为“半满”,那么就可以继续发送数据。
当前操作的fifo写“满”时,fx2自动将其转换到外部接口端,排除等候读取;并将usb接口队列中下一个为“空”的fifo转移到usb接口上,供其继续写数据。同时,在外部接口端看来,只要有1个fifo为“半满”,就可以继续读取数据。当前操作的fifo读“空”时,fx2自动将其转换到usb接口端,排除等候写入;并将外部接口队列中下一个为“满”的fifo转移到外部接口上,供其继续读取数据。
3 软件设计及实现
本设计的软件设计包括:固件程序、驱动程序和应用程序设计。其中,固件程序是整个程序设计的核心,它在设备cpu中运行。gpif就是在固件中实现的,因此,只有在该程序运行时,外设才能称之为具有给定功能的外部设备。