1、第 1 页 共 53 页基于 FX2 的 USB 数据传输模块设计摘 要新型的通用串行总线 USB,具有数据传输速度快、兼容性强、安装方便、高带宽、易于扩展等优点,它的不断发展更新直接带来了数据传输过程中速率的不断提升,以及设备之间通信的更加便捷,已逐渐成为现代数据传输的发展趋势,被广泛应用于数据传输、图像采集领域。基于 USB 的数据传输充分利用USB 总线的上述优点,有效解决了传统数据传输的缺陷。本课题的目的是研究 FX2 CY7C68013 芯片数据传输的基本理论和基本方法,熟悉 CY7C68013 进行数据传输的基本开发流程。掌握 FX2 GPIF 模式数据传输特性,以及 GPIF 波
2、形代码的编辑,以及 FIFO 的基本理论和工作时序,掌握 FPGA 相关技术开发流程。实现一种通用的数据传输模块。本系统主要实现步骤如下:首先通过研究 USB 控制器 FX2(CY7C68013)的性能及数据传输方式并给出硬件实现方案,使用 CYPRESS 公司提供的 GPIF Designer 工具开发 GPIF(通用可编程接口) ,预先定义好波形描述符,通过FPGA 把处理之后的数据写入 FIFO,激发 GPIF 功能读取 FIFO 中的数据来实现数据传输。最后制作一个对话框将提取的信息显示出来,达到课题的要求。关键词: FX2 单片机,USB ,GPIF,数据传输第 2 页 共 53 页
3、The Design of FX2s USB-based Data Transfer ModuleAbstractThe purpose of this task is to study the FX2 CY7C68013 chip data transmission of the basic theory and basic methods of data transmission are familiar with the basic CY7C68013 development process. Master FX2 GPIF mode data transmission characte
4、ristics, and GPIF waveform code editor, as well as FIFO, basic theory and work timing, master FPGA-related technology development process. To achieve a common data transmission module. The purpose of this task is to study the FX2 CY7C68013 chip data transmission of the basic theory and basic methods
5、 of data transmission are familiar with the basic CY7C68013 development process. Master FX2 GPIF mode data transmission characteristics, and GPIF waveform code editor, as well as FIFO, basic theory and work timing, master FPGA-related technology development process. To achieve a common data transmis
6、sion module. This system achieved the following steps: First, by studying the USB controller FX2 (CY7C68013) performance and data transmission hardware implementation is given, use CYPRESS provided GPIF Designer tool development GPIF (General Programmable Interface), pre-defined waveform descriptor,
7、 followed by FPGA to handle data write FIFO, stimulate GPIF function in data read FIFO for data transmission. Finally create a dialog box will display information extracted, and meets the requirements. Key words: FX2 microcontroller, USB, GPIF, data transmission第 3 页 共 53 页1 引言1.1 课题的背景随 着 计 算 机 硬 件
8、 飞 速 发 展 , 外 围 设 备 日 益 增 多 , 键 盘 、 鼠 标 、 调 制 解 调器 、 打 印 机 、 扫 描 仪 早 已 为 人 所 共 知 , 数 码 相 机 、 MP3 随 身 听 接 踵 而 至 ,在他们的外部出现了各种各样的外设接口:并行口、串行口、键盘口、鼠标口、音频输入输出口、网络接口等等。由于各种外部设备不断增加,计算机所提供用于连接外设的资源也就不能满足,时常因为不能提供更多的接口,而导致各种 I/O 的冲突,加之各种中低速外设缺少一个双向、低价、即插即用的统一的总线,限制了外部设备的开发。因此,简化外设扩充方法使之方便可行,便成了一个重大的课题。U SB 就
9、 是 基 于 这 个 目 的 产 生 的 。提 出 USB 技 术 的 主 要 原 因 就 是 想 利 用 单 一 的 总 线 技 术 , 来 满 足 多 种 应用 领 域 的 需 要 。 在 USB 总 线 上 , 可 以 同 时 支 持 低 速 和 全 速 以 及 高 速 的 数 据传 输 ; 而 且 可 以 支 持 异 步 传 输 和 同 步 传 输 等 传 输 方 式 ; 它 还 可 以 同 时 多 达127 个 外 设 。 可 见 USB 所 带 来 的 优 越 性 和 方 便 性 。 在 此 背 景 下 , 以 Intel为 首 的 七 家 公 司 Intel、 Compaq、 D
10、igital Equipment、 IBM、 Microsoft、 NEC 和 Northem Teleeom 于 1994 年推出了USB,专用于低、中速的计算外设。1996 年 USB1.0 协议公布,但一直到 1997年 Microsoft 公司推出 WIN95/97 之后,USB 才开始进入实用阶段,而且这个版本对 USB 的支持属于外挂式模块。直到 WIN98 推出以后,USB 接口的支持模式才真正的成熟,USB 开始进入了高速发展时期。1998 年 USB1.1 版本推出,规定了两种速度(低速 1.2Mb/s 和高速 12Mb/s)以满足不同需要。2000 年 4 月又推出了 US
11、B2.0 版本,将速度提高到 480Mb/s,带宽(数据的吞吐速度)增大后,各种外设的功能扩展便显得异常容易。USB2.0 扩展了 USB 的应用范围。1.2 本课题国内外的研究现状目前市场上的 USB 传输模块也很多,比如 Philips 公司的 PDIUSBD12,可是它却支持 USB1.1 版的规范。有的虽然支持 USB2.0 协议,可是传输速率却存在第 4 页 共 53 页很大问题,没有真正体现 USB2.0 传输速率。有的 USB 芯片不是单片的解决方案,存在着开发周期长、性价比低等缺点。很多 USB 芯片都存在着低速MCU、复杂的 USB 协议、端口 FIFO 与外界数据交换速度、
12、端口 FIFO 的大小等缺陷。随着 USB 总线技术的应用,以 USB 在线协议(On The GO,OTG)为背景的嵌入式 USB 应用也开始讨论,USB2.0 协议中提出了 USBOTG 的概念,为 USB的嵌入式控制提供了广阔的前景。USBOTG 技术解决了以往 USB 设备不能脱离 PC 机而运行的矛盾,使之很快普遍应用起来。OTG 技术是在没有主机(Host)的情况下,实现从设备间的数据传送。主要应用于各种不同的设备或移动设备间的联接和数据交换。特别是掌上电脑、移动电话、消费类设备。改善如数码照相机、摄像机、打印机等设备在多种不同制式连接器的存储卡间数据交换的不便。例如数码相机可直接
13、连接到打印机上,通过 OTG 技术连接两台设备的 USB 口将拍出的相片立即打印出来。也可以将数码照相机的数据,通过 OTG 发送到有 USB 接口的移动硬盘上,这样就方便用户的操作。目前投入 USBOTG 相关 IC 研发的 IC 设计厂商主要有 ST-Ericsson(源自原飞利浦半导体部门 NXP 公司的 USB 业务部分)、SMSC、CYPRESS 等欧美厂商以及巨盛、扬智等台湾厂商。此外,Menior GraPhics 以及 Synopsys 等 EDA 工具厂商也推出了 IP,以及相应 VIP。以供SoC 芯片厂商选择集成进自己的设计中。IPST-Ericsson 公司目前有完整的
14、 USB OTG 解决方案。其 OTG 控制器主要 ISP1761、ISP1362、ISPll61。具有代表性的 ISPl761 是一款支持 uSB2.0 的单片 USBOTG(On-The-G0)控制器,内部集了EHCIUSB 主控制器、USB 外设控制器及 OTG 控制器。其主控制器及外设控器均支持 USB2.0 准的 480Mb/s 数据传输速率,其 OTG 控制器则符合 USB 标准。ISPI761 有 3 个 USB 接口,端口 1 可以配置为主控制器、外设制器或 OTG 控制器接口,它既可以连接 USB 主控制器又可以连接 USB 外设控器,还可以与其他 OTG 控制器接口直接对接
15、;端口 2 及 3 只能配置为主控制器 U 接口与 USB 外设连接。ISPI761 为了简化设计,使用了 EHCI+内部集线器的方来实现同时支持高速和全速 USB 连接。但是其成本偏高,对于一些基本的应用来说是不适合第 5 页 共 53 页的。1.3 本课题未来的发展方向随着计算机硬件飞速发展以及人们生活的各种需求,无线 USB 技术随之产生,USB 开发者论坛的主席兼英特尔公司技术策略官 Jeff Ravencraft 表示,无线 USB 技术将帮助用户在使用个人电脑连接打印机、数码相机、音乐播放器和外置磁盘驱动器等设备时,从纷繁复杂的电缆连线中解放出来。无线 USB 标准的数据传输速率与
16、目前的有线 USB 2.0 标准是一样的,均为每秒 480M,两者的区别在于无线 USB 要求在个人电脑或外设中装备无线收发装置以代替电缆连线。随着 USB 技术发展,英特尔公司(Intel)和业界领先的公司一起携手组建了 USB3.0 推广组,旨在开发速度超过当今 10 倍的超高效 USB 互联技术。该技术是由英特尔,以及惠普(HP) 、NEC、NXP 半导体以及德州仪器(Texas Instruments)等公司共同开发的,应用领域包括个人计算机、消费及移动类产品的快速同步即时传输。随着数字媒体的日益普及以及传输文件的不断增大甚至超过 25GB,快速同步即时传输已经成为必要的性能需求。 U
17、SB 3.0 具有后向兼容标准,并兼具传统 USB 技术的易用性和即插即用功能。该技术的目标是推出比目前连接水平快 10 倍以上的产品,采用与有线USB 相同的架构。除对 USB 3.0 规格进行优化以实现更低的能耗和更高的协议效率之外,USB 3.0 的端口和线缆能够实现向后兼容,以及支持未来的光纤传输。该组织负责制定的新一代 USB 3.0 标准已经正式完成并公开发布。新规范提供了十倍于 USB 2.0 的传输速度和更高的节能效率,可广泛用于 PC 外围设备和消费电子产品。制定完成的 USB 3.0 标准已经移交给该规范的管理组织USB Implementers Forum(简称 USB-
18、IF) 。该组织将与硬件厂商合作,共同开发支持 USB 3.0 标准的新硬件,不过实际产品上市还要等一段时间。测量仪器大厂泰克(Tektronix)在上个月第一家宣布了用于 USB 3.0 的测试工具,可以帮助开发人员验证新规范与硬件设计之间的兼容性。预计支持新规范的商用控制器将在不久的将来会在各种消费电子产品中广泛应用。1.4 本 USB 数据传输模块所要研究的内容本课题设计的 USB 数据传输模块是一种基于 EZ-USB FX2 单片机的通用第 6 页 共 53 页数据传输模块,讨论了 USB 控制器 EZ-USB FX2(CY7C68013 )的性能及传输方式并给出了该系统的硬件实现方案
19、。通过使用 Cypress 公司提供的 GPIF Designer 工具开发 GPIF(通用可编程接口) ,预先定义好波形描述符,通过激发 GPIF 功能来实现数据传输。本课题主要研究 CY7C68013 的硬件接口设计及其 GPIF 功能。系统主要由 FIFO CY7C4255、FPGA、内置 MCU 的 USB 接口芯片和主机四部分组成。其中 USB 接口控制器采用 Cypress 公 司 的CY7C68013, FPGA 采 用 Altera 公司的 EP2C5T144C8,以及外部 FIFO。这样,在任何一种数据采集系统中,经采集系统处理后的数据由 FPGA 转换处理之后都可以先存放到
20、 FIFO 中,然后 CY7C68013 验证该 FIFO 的满、半满、空等状态,同时 CY7C68013 也可以产生一些使能、复位信号给 FIFO 来控制 FIFO 的读写。通过 GPIF 产生的控制波形来控制 FIFO 中的数据传输,这样就可以实现与 PC 主机的通信。第 7 页 共 53 页2 USB 体系结构2.1 USB 物理接口USB 数据线的结构比较简单,每根数据线中有四根独立的导线,按功能定义如下:图 2.1 实际接口和抽象 USB 电缆模型上左图是 USB 数据线与 PC 端连接的插头,1 脚 VCC 是供电脚(5V) ,2脚和 3 脚是数据脚 D+/D-,4 脚是参考地,符
21、合规范的 USB 数据线也严格遵循颜色的区分,USB 电缆通常用带屏蔽的双绞线。它存在多种传输速度:高速,全速,低速。因而在不同传输速率下电路结构也就不同。比如低速模式需要更少的 EMI 保护。在手机 USB 中,为节省 USB 结构空间结构下行端口又增加了一种 mini 接口,在 USB OTG 中使用的是 5 根线,比标准的 USB 多了一根身份识别(ID)线。USB 使用的是差分传输模式,有两根数据线,分别是 D+和 D-。而在实际手机主板上目前贴片的 USB 插座也是 5 脚的,主要将音频信号,充电等多种手机工作方式进行复用,其中的一个 Pin 对于 USB 数据线是悬空的。在高速US
22、B2.0 为防信号失真和电磁干扰,数据线一般有编织成网状的金属线和银白色的金属箔组成的屏蔽层线短数据线粗。USB 的设备都有上行的接口。上行和下行的接头是不能互换的,这确保了不会有非法的连接出现。插头和插座有两个系列分别为 A 和 B 系列。A 用于基本固定的外围设备,而 B 系列用于经常拔插的设备。由于 USB 是支持热插拔的,因此它在接头的设计上也有相应的措施。USB 插头的地引脚和电源引脚比第 8 页 共 53 页较长,而两个数据引脚则比较短,这样在插入到插座中时,首先接通电源和地,然后再接通两个数据线,保证电源在数据线之前接通,防止闩 锁效应。下图为各个实例模型:图 2.2 mini
23、USB(A 型) 、mini USB (B 型)、USB (B 型) 、USB (A 型)、USB (A 型)USB 协议通过软件对电源进行配置,主要包括两方面作用: (1)电源分配: USB 的设备如何通过 USB 分配得到由主计算机提供的能源; (2)电源管理:通过电源管理系统管理 USB 的系统软件和设备如何与主机协调工作。2.2 USB 总线USB 是一种电缆总线,支持在主机和各式各样的即插即用的外设之间进行数据传输。由主机预定的标准的协议使各种设备分享 USB 带宽,当其它设备和主机在运行时,总线允许添加、设置、使用以及拆除外设。一个 USB 系统主要被定义为三个部分:USB 的互连
24、;USB 的设备;USB 的主机。USB 互连连接了 USB 设备和 USB 主机,USB 的物理连接是有层次性的星型结构。每个网络集线器是在星型的中心,每条线段是点点连接。从主机到集线器或其功能部件,或从集线器到集线器或其功能部件。在 USB 系统中,只有一个主机。USB 和主机系统的接口称作主机控制器,主机控制器可由硬件、固件和软件综合实现,主要控制整个系统上信号的传输通信。根集线器是由主机系统整合的,用以提供更多的连接点,同时协调纠错总线上信息传输。2.3 USB 设备识别过程USB 设备可以随时的安装和拆卸,因此,系统在物理的总线布局上必须支持这种动态变化。所有的 USB 设备都是通过
25、端口接在 USB 上,网络集线器知第 9 页 共 53 页道这些指定的 USB 设备,集线器有一个状态指示器指明在其某个端口上,USB设备是否被安装或拆除了,主机将所有的集线器排成队列以取回其状态指示。在 USB 设备安装后,主机须通过默认的控制管道对其进行枚举,完成获得其设备描述、进行地址分配、获得其配置描述符、进行配置等操作方可正常使用。USB 设备的即插即用特性即依赖于此。通过控制通道激活该端口并以预设的地址值给 USB 设备。主机对每个设备指定唯一的 USB 地址,并检测这种新装的 USB 设备是集线器还是功能部件。主机为 USB 设备建立了控制通道,使用指定的 USB 的地址和零号端
26、口。如果安装的 USB 设备是集线器,并且 USB 设备连在其端口上,那么上述过程对每个 USB 设备的安装都要做一遍。如果安装的设备是功能部件,那么主机中关于该设备的软件将因设备的连接而被引发。当 USB 设备从集线器的端口拆除后,集线器关闭该端口,并且向主机报告该设备已不存在。USB 的系统软件将准确进行处理,如果去除的 USB 设备上集线器,USB 的系统软件将对集线器反连在其上的所有设备进行处理。而总线标号就是对连接在总线上的设备指定唯一的地址的一种动作,因此 USB 允许USB 设备在任何时刻从 USB 上安装或拆卸,所以总线标号是 USB 的系统软件始终要作的动作,而且总线标号还包
27、括对拆除设备的检测和处理。2.4 USB 传输系统分层USB2.0 接口是一个传输速率可以达到 480Mb/s 的串行接口,由不同类型的外围设备共享这个接口总线。USB 总线是由主机(host)控制的,在整个 USB 系统中只允许有一个主机。一个主机最多可通过 USB 总线控制 127 个外设(peripheral),每个外设由主机分配唯一的地址来标识。USB 主机是整个总线的主控者,掌握所有的控制权。它负责随时发现总线上新加入的 USB 设备,为其分配相应的系统资源。总线上的通信都由主机来发起。USB 里的通信都是是基于令牌的,当主机要跟设备进行数据通信时,首先向设备发送一个含有设备地址和端
28、点号的令牌包以启动事务处理。这时总线上符合该地址的设备将接收这个包,并且按照令牌包的内容进行相应的操作。在终端用户看来,USB 系统就是 USB 设备和主机间的简单连接,但对开第 10 页 共 53 页发人员来说,这种连接可被分为如图 2.3 所示的三个逻辑层:功能层、USB 设备层和 USB 总线接口层。每一层都由主机和 USB 设备的不同功能模块组成。主机的每一个层次通过相应的逻辑通道和外设的相应层次连接起来。2.4.1 USB 主机USB 主机的三个功能模块中,客户软件负责和 USB 设备的功能单元进行通信,以实现其特定功能。客户软件与功能单元间的通信必须经过 USB 系统软件和 USB
29、 总线接口模块才能实现。客户软件包括 USB 设备驱动程序和界面应用程序两部分,其中 USB 设备驱动程序直接和 USB 系统软件通信。互连主机 USB 设备逻辑通信流图 2.3 USB 传输系统分层USB 系统软件负责对 USB 逻辑设备进行配置和与之通信,并管理客户软件发起的数据传输。它一般包括 USB 总线驱动程序、USB 主机控制器驱动程序和非 USB 主机软件三部分,通常由操作系统和主机控制器制造者提供。在一个 USB 设备使用前,USB 总线驱动程序对其进行一些初始化操作。当 USB 总客户软件USB 系统软件 USB 总线接口 功能单元 客户软件客户软件逻辑通信流实际通信流功能层USB 设备层USB 总线接口层