测控技术与仪器 毕业论文范文——基于FX2的USB数据传输模块设计_第1页
测控技术与仪器 毕业论文范文——基于FX2的USB数据传输模块设计_第2页
测控技术与仪器 毕业论文范文——基于FX2的USB数据传输模块设计_第3页
测控技术与仪器 毕业论文范文——基于FX2的USB数据传输模块设计_第4页
测控技术与仪器 毕业论文范文——基于FX2的USB数据传输模块设计_第5页
免费预览已结束,剩余48页可下载查看

下载本文档

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

文档简介

基于FX2的USB数据传输模块设计摘 要新型的通用串行总线USB,具有数据传输速度快、兼容性强、安装方便、高带宽、易于扩展等优点,它的不断发展更新直接带来了数据传输过程中速率的不断提升,以及设备之间通信的更加便捷,已逐渐成为现代数据传输的发展趋势,被广泛应用于数据传输、图像采集领域。基于USB的数据传输充分利用USB总线的上述优点,有效解决了传统数据传输的缺陷。本课题的目的是研究FX2 CY7C68013芯片数据传输的基本理论和基本方法,熟悉CY7C68013进行数据传输的基本开发流程。掌握FX2 GPIF模式数据传输特性,以及GPIF波形代码的编辑,以及FIFO的基本理论和工作时序,掌握FPGA相关技术开发流程。实现一种通用的数据传输模块。本系统主要实现步骤如下:首先通过研究USB控制器FX2(CY7C68013)的性能及数据传输方式并给出硬件实现方案,使用CYPRESS 公司提供的 GPIF Designer工具开发 GPIF(通用可编程接口),预先定义好波形描述符,通过FPGA把处理之后的数据写入FIFO,激发 GPIF功能读取FIFO中的数据来实现数据传输。最后制作一个对话框将提取的信息显示出来,达到课题的要求。关键词: FX2 单片机,USB ,GPIF,数据传输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 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 transmission module. The 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 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 transmission 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, 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 transmission1 引言1.1课题的背景随着计算机硬件飞速发展,外围设备日益增多,键盘、鼠标、调制解调器、打印机、扫描仪早已为人所共知,数码相机、MP3随身听接踵而至,在他们的外部出现了各种各样的外设接口:并行口、串行口、键盘口、鼠标口、音频输入输出口、网络接口等等。由于各种外部设备不断增加,计算机所提供用于连接外设的资源也就不能满足,时常因为不能提供更多的接口,而导致各种I/O的冲突,加之各种中低速外设缺少一个双向、低价、即插即用的统一的总线,限制了外部设备的开发。因此,简化外设扩充方法使之方便可行,便成了一个重大的课题。USB就是基于这个目的产生的。提出USB技术的主要原因就是想利用单一的总线技术,来满足多种应用领域的需要。在USB总线上,可以同时支持低速和全速以及高速的数据传输;而且可以支持异步传输和同步传输等传输方式;它还可以同时多达127个外设。可见USB所带来的优越性和方便性。在此背景下,以Intel为首的七家公司Intel、Compaq、Digital 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月又推出了USB2.0版本,将速度提高到480Mb/s,带宽(数据的吞吐速度)增大后,各种外设的功能扩展便显得异常容易。USB2.0扩展了USB的应用范围。1.2本课题国内外的研究现状目前市场上的USB传输模块也很多,比如Philips公司的PDIUSBD12,可是它却支持USB1.1版的规范。有的虽然支持USB2.0协议,可是传输速率却存在很大问题,没有真正体现USB2.0传输速率。有的USB芯片不是单片的解决方案,存在着开发周期长、性价比低等缺点。很多USB芯片都存在着低速MCU、复杂的USB协议、端口FIFO与外界数据交换速度、端口FIFO的大小等缺陷。 随着USB总线技术的应用,以USB在线协议(On The GO,OTG)为背景的嵌入式USB应用也开始讨论,USB2.0协议中提出了USBOTG的概念,为USB的嵌入式控制提供了广阔的前景。USBOTG技术解决了以往USB设备不能脱离PC机而运行的矛盾,使之很快普遍应用起来。OTG技术是在没有主机(Host)的情况下,实现从设备间的数据传送。主要应用于各种不同的设备或移动设备间的联接和数据交换。特别是掌上电脑、移动电话、消费类设备。改善如数码照相机、摄像机、打印机等设备在多种不同制式连接器的存储卡间数据交换的不便。例如数码相机可直接连接到打印机上,通过OTG技术连接两台设备的USB口将拍出的相片立即打印出来。也可以将数码照相机的数据,通过OTG发送到有USB接口的移动硬盘上,这样就方便用户的操作。目前投入USBOTG相关IC研发的IC设计厂商主要有ST-Ericsson(源自原飞利浦半导体部门NXP公司的USB业务部分)、SMSC、CYPRESS等欧美厂商以及巨盛、扬智等台湾厂商。此外,Menior GraPhics以及Synopsys等EDA工具厂商也推出了IP,以及相应VIP。以供SoC芯片厂商选择集成进自己的设计中。IPST-Ericsson公司目前有完整的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控制器接口直接对接;端口2及3只能配置为主控制器U接口与USB外设连接。ISPI761为了简化设计,使用了EHCI+内部集线器的方来实现同时支持高速和全速USB连接。但是其成本偏高,对于一些基本的应用来说是不适合的。1.3本课题未来的发展方向 随着计算机硬件飞速发展以及人们生活的各种需求,无线USB技术随之产生,USB开发者论坛的主席兼英特尔公司技术策略官Jeff Ravencraft表示,无线USB技术将帮助用户在使用个人电脑连接打印机、数码相机、音乐播放器和外置磁盘驱动器等设备时,从纷繁复杂的电缆连线中解放出来。无线USB标准的数据传输速率与目前的有线USB 2.0标准是一样的,均为每秒480M,两者的区别在于无线USB要求在个人电脑或外设中装备无线收发装置以代替电缆连线。 随着USB技术发展,英特尔公司(Intel)和业界领先的公司一起携手组建了USB3.0推广组,旨在开发速度超过当今10倍的超高效USB互联技术。该技术是由英特尔,以及惠普(HP)、NEC、NXP半导体以及德州仪器(Texas Instruments)等公司共同开发的,应用领域包括个人计算机、消费及移动类产品的快速同步即时传输。随着数字媒体的日益普及以及传输文件的不断增大甚至超过25GB,快速同步即时传输已经成为必要的性能需求。 USB 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-IF) 。该组织将与硬件厂商合作,共同开发支持USB 3.0标准的新硬件,不过实际产品上市还要等一段时间。测量仪器大厂泰克(Tektronix)在上个月第一家宣布了用于USB 3.0的测试工具,可以帮助开发人员验证新规范与硬件设计之间的兼容性。预计支持新规范的商用控制器将在不久的将来会在各种消费电子产品中广泛应用。1.4本USB数据传输模块所要研究的内容本课题设计的USB数据传输模块是一种基于EZ-USB FX2单片机的通用数据传输模块,讨论了USB控制器EZ-USB FX2(CY7C68013)的性能及传输方式并给出了该系统的硬件实现方案。通过使用Cypress公司提供的GPIF Designer工具开发GPIF(通用可编程接口),预先定义好波形描述符,通过激发GPIF功能来实现数据传输。本课题主要研究CY7C68013的硬件接口设计及其GPIF功能。系统主要由FIFO CY7C4255、FPGA、内置MCU的USB接口芯片和主机四部分组成。其中USB接口控制器采用Cypress公司的CY7C68013,FPGA采用Altera公司的EP2C5T144C8,以及外部FIFO。这样,在任何一种数据采集系统中,经采集系统处理后的数据由FPGA转换处理之后都可以先存放到FIFO中,然后CY7C68013验证该FIFO的满、半满、空等状态,同时CY7C68013也可以产生一些使能、复位信号给FIFO来控制FIFO的读写。通过GPIF产生的控制波形来控制FIFO中的数据传输,这样就可以实现与PC主机的通信。2 USB体系结构2.1 USB物理接口USB数据线的结构比较简单,每根数据线中有四根独立的导线,按功能定义如下: 图2.1 实际接口和抽象USB电缆模型上左图是USB数据线与PC端连接的插头,1脚VCC是供电脚(5V),2脚和3脚是数据脚D+/D-,4脚是参考地,符合规范的USB数据线也严格遵循颜色的区分,USB电缆通常用带屏蔽的双绞线。它存在多种传输速度:高速,全速,低速。因而在不同传输速率下电路结构也就不同。比如低速模式需要更少的EMI保护。在手机USB中,为节省USB结构空间结构下行端口又增加了一种mini接口,在USB OTG中使用的是5根线,比标准的USB多了一根身份识别(ID)线。USB使用的是差分传输模式,有两根数据线,分别是D+和D-。而在实际手机主板上目前贴片的USB 插座也是5脚的,主要将音频信号,充电等多种手机工作方式进行复用,其中的一个Pin对于USB数据线是悬空的。在高速USB2.0为防信号失真和电磁干扰,数据线一般有编织成网状的金属线和银白色的金属箔组成的屏蔽层线短数据线粗。USB的设备都有上行的接口。上行和下行的接头是不能互换的,这确保了不会有非法的连接出现。插头和插座有两个系列分别为A和B系列。A用于基本固定的外围设备,而B系列用于经常拔插的设备。由于USB是支持热插拔的,因此它在接头的设计上也有相应的措施。USB插头的地引脚和电源引脚比较长,而两个数据引脚则比较短,这样在插入到插座中时,首先接通电源和地,然后再接通两个数据线,保证电源在数据线之前接通,防止闩锁效应。下图为各个实例模型: 图2.2 mini USB(A型)、mini USB (B型)、USB (B型)、USB (A型)、USB (A型)USB协议通过软件对电源进行配置,主要包括两方面作用: (1)电源分配:USB的设备如何通过USB分配得到由主计算机提供的能源; (2)电源管理:通过电源管理系统管理USB的系统软件和设备如何与主机协调工作。2.2 USB总线USB是一种电缆总线,支持在主机和各式各样的即插即用的外设之间进行数据传输。由主机预定的标准的协议使各种设备分享USB带宽,当其它设备和主机在运行时,总线允许添加、设置、使用以及拆除外设。一个USB系统主要被定义为三个部分:USB的互连;USB的设备;USB的主机。USB互连连接了USB设备和USB主机,USB的物理连接是有层次性的星型结构。每个网络集线器是在星型的中心,每条线段是点点连接。从主机到集线器或其功能部件,或从集线器到集线器或其功能部件。在USB系统中,只有一个主机。USB和主机系统的接口称作主机控制器,主机控制器可由硬件、固件和软件综合实现,主要控制整个系统上信号的传输通信。根集线器是由主机系统整合的,用以提供更多的连接点,同时协调纠错总线上信息传输。2.3 USB设备识别过程USB设备可以随时的安装和拆卸,因此,系统在物理的总线布局上必须支持这种动态变化。所有的USB设备都是通过端口接在USB上,网络集线器知道这些指定的USB设备,集线器有一个状态指示器指明在其某个端口上,USB设备是否被安装或拆除了,主机将所有的集线器排成队列以取回其状态指示。在USB设备安装后,主机须通过默认的控制管道对其进行枚举,完成获得其设备描述、进行地址分配、获得其配置描述符、进行配置等操作方可正常使用。USB设备的即插即用特性即依赖于此。通过控制通道激活该端口并以预设的地址值给USB设备。主机对每个设备指定唯一的USB地址,并检测这种新装的USB设备是集线器还是功能部件。主机为USB设备建立了控制通道,使用指定的USB的地址和零号端口。如果安装的USB设备是集线器,并且 USB 设备连在其端口上,那么上述过程对每个USB设备的安装都要做一遍。如果安装的设备是功能部件,那么主机中关于该设备的软件将因设备的连接而被引发。当USB设备从集线器的端口拆除后,集线器关闭该端口,并且向主机报告该设备已不存在。USB的系统软件将准确进行处理,如果去除的USB设备上集线器,USB的系统软件将对集线器反连在其上的所有设备进行处理。而总线标号就是对连接在总线上的设备指定唯一的地址的一种动作,因此USB允许USB设备在任何时刻从 USB 上安装或拆卸,所以总线标号是USB的系统软件始终要作的动作,而且总线标号还包括对拆除设备的检测和处理。2.4 USB传输系统分层USB2.0接口是一个传输速率可以达到480Mb/s的串行接口,由不同类型的外围设备共享这个接口总线。USB总线是由主机(host)控制的,在整个USB系统中只允许有一个主机。一个主机最多可通过USB总线控制127个外设(peripheral),每个外设由主机分配唯一的地址来标识。USB主机是整个总线的主控者,掌握所有的控制权。它负责随时发现总线上新加入的USB设备,为其分配相应的系统资源。总线上的通信都由主机来发起。USB里的通信都是是基于令牌的,当主机要跟设备进行数据通信时,首先向设备发送一个含有设备地址和端点号的令牌包以启动事务处理。这时总线上符合该地址的设备将接收这个包,并且按照令牌包的内容进行相应的操作。在终端用户看来,USB系统就是USB设备和主机间的简单连接,但对开发人员来说,这种连接可被分为如图2.3所示的三个逻辑层:功能层、USB设备层和USB总线接口层。每一层都由主机和USB设备的不同功能模块组成。主机的每一个层次通过相应的逻辑通道和外设的相应层次连接起来。2.4.1 USB 主机USB主机的三个功能模块中,客户软件负责和USB设备的功能单元进行通信,以实现其特定功能。客户软件与功能单元间的通信必须经过USB系统软件和USB总线接口模块才能实现。客户软件包括USB设备驱动程序和界面应用程序两部分,其中USB设备驱动程序直接和USB系统软件通信。 互连 主机 USB设备 功能单元 客户软件 逻辑通信流功能层 逻辑通信流USB系统软件 USB设备层客户软件实际通信流USB总线接口层客户软件 USB总线接口 图2.3 USB传输系统分层USB系统软件负责对USB逻辑设备进行配置和与之通信,并管理客户软件发起的数据传输。它一般包括USB总线驱动程序、USB主机控制器驱动程序和非USB主机软件三部分,通常由操作系统和主机控制器制造者提供。在一个USB设备使用前,USB总线驱动程序对其进行一些初始化操作。当USB总线驱动程序接收到USB设备驱动程序发来的I/O请求包时,会把这些I/O请求中的数据重新进行组织,使它们具有USB特定格式-事务处理。USB主机控制器驱动程序(HCD)的存在,使得客户软件在进行数据传输时不必知道USB主控制器硬件的具体实现细节,HCD负责把USB总线驱动程序建立的事务处理安排在USB总线上,以建立一系列的事务处理列表。USB总线接口包括主控制器和根集线器两部分。主控制器负责读取HCD建立的事务处理列表,并将它们安排在一系列长度为1ms的帧(全速传输)或125us的微帧(高速传输)中,发送到USB总线上。它们都以SOF令牌包开始,以EOF状态结束(如图2.4)。SOF是在每帧/微帧中传输的第一个信息包,在其后的剩余帧/微帧时间里,USB主控制器可以安排传输任何其他事务处理。根集线器是一个USB系统中的连接起点,被集成在USB主控制器的内部。 微帧N-1 125us 微帧N 125us 微帧N+1 125us SOF SOF SOF SOF EOF EOF EOF 图2.4 USB高速传输中的微帧结构图2.4.2 USB设备一个USB设备由USB总线接口、USB逻辑设备和功能单元三个功能模块组成。其中USB总线接口是USB设备中的串行接口引擎(SIE);USB逻辑设备被USB系统软件看作是一个端点的集合;功能单元被客户软件看作是一个接口的集合。为了正确描述USB设备的特性,USB提出了设备构架的概念。设备构架认为USB设备是由一些配置、接口和端点组成的,即一个USB设备可以含有一个或多个配置,在每个配置中可含有一个或多个接口,在每个接口中可含有若干个端点。其中,配置和接口是对USB设备功能的抽象,实际的数据传输由端点来完成,在使用USB设备前,必须指明其采用哪个配置和接口。USB设备使用各种描述符来说明其设备构架,包括设备描述符、配置描述符、接口描述符、端点描述符和字符串描述符,它们通常被保存在USB接口芯片的固件中。2.5 USB链路结构USB链路中的最小的传输数据结构为字段。若干个字段构成了数据包,数据包则构成了事务处理。若干个事务处理汇集成一个数据帧。他们之间的相对关系如下图2.5所示。 USB帧 SOF SOF 事务处理 SETUP 数据包ACK 事务处理ACK数据包DATA数据包IN数据包 CRCDDATAAPID 图2.5 USB数据流结构2.5.1 字段的类型及其结构同步字段(SYNC):所有的包都从同步(SYNC)字段开始的(如图2.6)。同步字段是产生最大的边缘转换密度的编码序列。输入电路用它将输入数据和本地时钟对齐。在全速和低速模式下SYNC字段为8位,高速模式下为32位。包标示符(PID):所有USB包的同步字段后都紧跟着包标识符(PID)。包标识符(PID)由4位的包类型字段和其后的4位的校验字段构成。包标识符的校验字段通过对包类型字段的二进制编码的求反得到。地址字段:功能部件地址(ADDR)字段用于区分同一总线上不同的功能部件,至于是数据包的发出地还是目的地,则取决于PID的值。端点字段:4位的端点(ENDP)字段是对地址寻址的补充。在功能部件需要一个以上端口进行传输时,使用不同的端点来区分同一设备的不同端口可以实现更灵活的寻址。除了规定必须有0端点之外,端点个数由设备根据实现的功能自行确定。所有的功能部件都必须在端点0提供一个控制管道作为缺省控制管道。用功能设备地址场和端点场可以对功能设备的端点寻址。帧号码字段:帧号字段是一个11位的字段,主机每发一帧就将其内容加一。帧号字段达到其最大值7FFH时归零重新开始计数。帧号码字段主要存在于SOF标记中。数据字段:数据包大小随着传送类型而变化,可以在0到1023字节之间变动。每个数据的最低位(LSB)在前。CRC字段:为保证数据传输的可靠性,USB在令牌包和数据包中都使用了循环冗余校验(CRC)。它可以正确的识别出信息包中的一位或两位错误。CRC检验失败表示在其所在的信息包中发生了数据传输错误。这时接收方将忽略该信息包。CRC是在发送方进行位填充之前产生的,这要求接收方必须在去除填充位之后,再对CRC字段进行译码。SYNCPIDDATACRCEOP图2.6 USB数据包结构图EOP字段:全称为End Of Packet(包结束标志)。在全速和低速中E0P为2个码元周期的SE0。在高速中为5字节的01111111 11111111 11111111 11111111 11111111或10000000 00000000 00000000 00000000 00000000序列。2.5.2包的类型及其结构令牌包(token):令牌包由标明是IN、OUT、PING还是SETUP的包类型PID字段(如表2.1)、地址和端点字段、CRC字段以及EOP字段组成。IN包定义了一个从功能设备到主机的数据处理。OUT和SETUP包定义了从主机到功能设备的数据处理操作。PING令牌包用于高速传输中的快速握手。令牌包在地址字段后有一个对地址和端点字段进行校验的5位CRC码。CRC校验不包括PID字段,因为PID的编码方式本身就具备了自校验功能。令牌包最后的字段是EOP标志。帧开始(SOF)是用于时钟同步的特殊字令牌包。该令牌包由主机以每1ms(全速总表2.1 PID及包类型PID类型PID名对应包机制令牌SOF高速传输中帧开始包由主机以每125us一次的标称速率进行发送,SOF PID后紧跟11位帧号码,其中低三位代表小帧号码。SETUP在主机到功能设备的控制管道SETUP处理中使用。SETUP令牌还具有初始化主机和功能设备位序列的作用。OUT在主机到功能设备的处理中使用IN在功能设备到主机的处理中使用PING高速批量传输支持PING协议机制,此机制允许设备告知主机控制器是否有足够的端点空间提供下一个OUT处理使用。空间足够返回ACK,不足返回NAK握手包或者NYET握手包。数据DATA0USB采用DATAO和DATA1轮流切换发出,更新数据触发位的方法实现数据发送器和接收器之间的数据序列同步,从而保证处理的握手阶段能被发送器和接收器正确解释。接收器的位序列只在接收器能接收数据,并且接收数据PID正确的无误数据包时触发;发送器的位序列只在数据发送器接收到一个有效的ACK握手包时触发。DATA1同上握手ACK在数据场没有位填充或CRC错误,而且PID也被正确接收,或者设备支持SETUP包所设置。NAK功能设备不能从主机接收数据,或者功能设备没有数据发送到主机。STALL能设备不能发送或接收数据,或者不支持控制管道的请求。NYET设备能接收当前数据,但端点缓冲区已没有空间存放下一个数据包时返回。线)一次或每125us(高速总线)一次的标称速率进行发送。SOF包包含一个指出包类型的PID场,后面紧接一个11位的帧序号字段。该序号每隔1ms都会自动加1,加到7FFh后开始循环。数据包:数据包由PID,至少0个字节数据的数据段和CRC构成。有4种类型的数据包,根据不同的PID:DATA0、DATA1、DATA2和MDATA来识别。其中DATAO、DATA1是用于实现数据触发同步(Data Toggle Synchronization)的一对包。DATA2用于高速同步传输。MDATA主要在分离处理中使用。因为数据包长度一般比令牌包长,所以对其数据字段使用了2字节的CRC16校验码进行校验。接收端在收到数据后进行CRC校验,如果设备对主机发送的数据校验结果有误将不会返回任何握手信号,而是直接丢弃等待主机超时重传。主机如果对设备发来的数据校验结果有误将重新开始本次事务处理。握手包:握手包只有一个PID字段。用于报告一次事务处理的结果。ACK表示正确接收或能够响应;NAK表示不能接收;STALL表示不支持控制管道的请求;NYET表示数据能接收但是已经没有足够空间进行下一次传输。2.5.3端点类型USB总线最基本的通讯模式是令牌一数据一握手,这是由USB2.0总线的半双工特性所决定的。USB定义了4种端点类型:控制传输、同步传输、中断传输和批量传输。不同的端点进行的传输事务处理是不同的。(1) 控制传输:控制传输是突发的、非周期的、由主机软件发起的请求/响应通信,用于命令/状态操作。由以下几个部分组成:建立总线处理,负责由主机向功能设备发送请求信息;零或多个数据处理,负责按建立处理指出的方向发送数据;一个状态处理,负责从功能设备向主机返回状态信息,当端点成功处理完请求的操作后,状态处理返回“成功”。(如图2.7)每个USB设备都要求将默认的控制管道作为消息管道,这条管道由USB系统软件使用,提供对USB设备的配置、状态和控制信息的访问。功能设备能根据自己的应用需要为额外的控制管道提供端点。控制传输为主机访问设备的各种描述符提供了传输机制。控制传输的端点指明了端点可以从总线接收或向总线发送的数据负载的最大有效长度。全速设备允许的最大控制传输数据有效负载长度是8字节、16字节、32字节或64字节;高速设备是64字节。令牌包令牌包DATAA0CRCSetup DataAACKKENDPADDRCRC5SETUP数据包 SETUP阶段令牌包令牌包CRC5ENDPINADDRACKPayload DataDDATATA1CRCRC16数据包数据阶段(可选)CRCDDATA令牌包令牌包ENDPADDROUTCRC5ACK数据包 状态阶段图2.7 控制传输结构(2)同步传输:同步传输是主机与设备之间周期的、连续的通信,用于传输时间延迟敏感型的数据。同步传输可以在有限的延时中保证对USB带宽的访问,只要向管道提供了数据,它就能保证管道的数据速率恒定。在因错误使传输失败的情况下,不再重新发送数据。同步管道是一个单向的流管道,端点描述符能识别出给定同步管道的通信流是流入还是流出主机,如果设备要求有双向的同步通信流,必须使用两条同步管道,每条管道负责一个方向的传输。USB将全速同步端点的最大数据有效负载限制为1023字节,高速端点允许最大1024字节的数据有效负载。批量IN传输批量OUT传输3 基于FX2的USB数据传输模块的总体设计图 2.8 USB批量传输结构(3) 批量传输:批量传输用于非周期大型包的突发通信,用于可以使用任何可用的带宽,而且可以延时直到带宽可用的数据传输(图2.8)。批量传输类型的管道有以下的特性:在有可用带宽的基础上访问USB;在由于总线错误偶然出现传输故障的情况下重试传输;保证数据的传输,但不保证带宽或延时。批量传输是一种流管道,因此对于给定的管道总是有通信流流入或流出主机,如果设备要求双向的批量通信流,必须在每个传输方向上都使用一条批量管道。全速批量端点的数据有效负载最大值只能是8字节、16字节、32字节或64字节,高速端点的最大值是512字节。批量传输是实现存储类USB设备的主要工作方式。(4)中断传输:中断传输用于低频的、但要求处理延时小的通信,用于传输不需要经常发送或接收的数据。中断传输保证管道有最大的服务周期;在因总线错误造成偶然传输失败的情况下,传输将在下一个周期重试。中断管道是一个单向的流管道,端点描述符能识别出给定同步管道的通信流是流入还是流出主机。全速中断端点允许的中断数据最大有效负载小于等于64字节,高速中断端点允许的最大数据有效负载高达1024字节。3系统硬件电路设计3.1 系统总体设计本数据传输模块是基于Cypress公司的FX2系列的CY7C68013作为主控制器实现的,具体系统组成框图如图3.1所示,该系统共包括四大部分:USB接口电路模块、外部FIFO电路模块、FPGA从控制器模块,现对各部分接口电路说明如下:USB接口电路部分: USB接口芯片选用美国Cypress公司的CY7C68013接口芯片,其配置芯片选用型号为AT24LC64的EEPROM,存储容量为8K字节,该EEPROM中存储了一个缺省的固件程序,采用I2C总线与USB芯片相连,当系统上电时,固件程序可以直接从EEPROM中下载到CY7C68013。FPGA接口电路部分:选用ALTERA公司的Cyclone II器件EP2C5T144C8。FPGA配置芯片我们选用EPCS4,EPCS4是容量为4Mbits的Flash存储芯片,具有在系统编程(ISP)能力,可多次擦除。该配置芯片用来存储硬件描述信息,掉电之后保存配置信息,在下次系统上电时,FPGA能自动装载EPCS4中描述的硬件电路。 FPGA控 制 逻 辑PC机机USB控制器 EN RESETFIFO 数据USB接口 数据usb总线 控制写时钟 EEPROM图3.1 系统总体设计框图外部FIFO电路模块:外部FIFO主要是用来接收外部数据的,主要起到高速数据缓冲作用,比如在一个数据采集系统中,微控制器等把数据采集到之后输入到FIFO,然后通过CY7C68013读取FIFO CY7C4255的数据,传送到上位机。这样就可以解决外部数据流动速度和USB传输速度之间的冲突。3.2 USB芯片的选择及其特性在进行USB设备开发之前,首先根据具体设计要求选择合适的USB接口芯片。USB接口芯片要完成功能设备和USB主机间的数据传输,能够解析USB协议,进行传输数据的编码和解码等。USB接口芯片从组成机构上可以分为两种:没有内置MCU的芯片和有内置MCU的芯片,由于本设计是基于FX2的芯片,即就是带有内置MCU的芯片。FX2系列芯片是美国CYPRESS公司开发的一款具有增强型51内核的USB单片解决方案。在选择芯片时,我们综合了数据传输速度、程序/数据存储器容量、性价比、系统功耗、芯片封装、电源要求以及技术文档是否全面等方面的因索。在本设计中,考虑到传输速度高、开发资料齐全、体积小、功耗低等因素,选择了Cypress公司的SSOP封装的USB接口芯片CY7C68013A。它属于Cypress公司的FX2系列的芯片。3.2.1 CY7C68013特点Cypress公司的EZ-USB FXZ系列是世界上第一个集成了USB2.0协议的微处理器,它提供了对USB2.0的完整解决方案,同时向下兼容USB1.1规范。它支持全速传输和高速传输,可使用同步传输、批量传输、控制传输和中断传输4种USB传输方式。其中56脚的功耗最低。它主要包括USB2.0收发器、增强型8051微控制器、串行接口引擎 SIE(Serial Interface Engine)、4Kb的FIFO存储器、8.5KB的RAM、I/O口、地址总线、数据总线和通用可编程接口(GPIF) 。如图3.2所示。该USB芯片具有以下特性:(l) 集成标准8051内核,且具有下列增强特性:可达到48MHz时钟;每条指令占四个时钟周期;两个UARTs;三个定时/计数器;扩展的中断系统;两个数据指针。(2) 芯片内部有一个智能串行接口引擎(SIE)和一个USB2.0收发器负责完成诸如串行数据的编解码、差错控制、位填充等与USB协议有关的功能。(3) 软件运行:8051程序从内部RAM开始运行,可以借助下列几种方式进行程序装载:通过USB下载;从EEPROM中装载;通过外部存储器设备。(4) 通用可编程接口(GPIF):GPIF是FX2一项重要技术。它提供了一个可编程控制的接口时序,使得无需附加外部逻辑,就能实现与外围芯片的连接。在运行中不需要CPU的干预,仅通过一些寄存器和中断与增强型8051内核通信。图3.2 FX2的框架图(5) 四个可编程端点:CY7C68013共有7个输入输出端口:EP0、EP1IN、EP1OUT、EP2、EP4、EP6和EP8,其中EP2、EP4、EP6、EP8分别可以被配置为批量/中断/同步传输模式,传输方向均可配置为出/入。(6) 可编程缓冲区深度:端点EP2、EP6的缓冲区大小可编程为512或1024字节,缓冲区深度可编程为2/3/4倍大小:端点EP4、EP8的缓冲区固定为512字节大小,深度为2倍。采用不同的配置方式,能实现特定带宽、速率要求的数据传输。3.2.2 CY7C68013量子FIFO结构对于EZ-USB FX2系列的芯片,需要微处理器(增强型8051)参与端点FIF0s与外围电路之间的数据传输,如图3.3所示,由于增强型8051本身的工作频率的较低,这限制了传输速率的进一步提高。虽然这种限制在12Mb/s的全速模式并不明显,但当速率提升至480Mb/s的高速模式时,微处理器必将成为整个系统的带宽瓶颈。为解决这一矛盾,EZ-USB FX2提供了被称为“量子FIFO”的架构,这种架构中的应用环境和USB接口直接共享FIFO,微控制器能够以FIFO或者RAM的方式访问这些共享FIFO,但不参与数据传输,如图3.4所示。这种模式使得USB高速模式的带宽问题迎刃而解。外围电路微处理器USB端点FIFOs图3.3 FX系列 USB数据传输模式微控制器USBRAM/FIFOS端点端点应用环境 图3.4 FX2系列的USB数据传输模式3.2.3 CY7C68013端点缓冲区图3.5 FX2端点缓冲区设置 图3.5给出了USB高速传输时端点缓冲的结构,FX2定义了7个端点,EPO、EP1IN和EP1OUT分别占用一个64字节的缓冲区,这三个端点必须由FX2固件程序访问。EP0是双向的控制端点用,即可输入也可输出。EP1IN、EP1OUT支持同步、批量和中断传输。EP2、EP4、EP6和EP8分别可配置为输入或输出端点,它们可进行大容量,高带宽的数据传输,可同外围电路直接进行高速传输而不需要微控制器的干预。FX2的端点配置很灵活。用户可根据实际需要,将EP2、EP4、EP6、EP8配置成双重、三重或四重缓存。双缓冲是指USB可以读或写一个数据包的同时而另一个数据包(同一个端点内另一个缓冲存储器中的)可供外部接口操作;三重缓冲加了第三个数据包存储器,可供USB和外部接口的任何一方使用;四重缓冲增加了第四个数据包存储器。当读、写双方速度相似的情况下,多缓冲的结构可以改善带宽,使突发数据传输趋于平稳,减少双方的等待时间。3.2.4 CY7C68013存储器FX2存储器只要RAM,没有ROM,所以程序和数据都只能放在RAM中,RAM包括内部RAM和外部RAM,内部RAM与8051的内部RAM功能一样,外部RAM则是FX2将传统的8051部分外扩RAM放到芯片内部,用来存放数据和程序,程序掉电易丢失,需要重新装载。(l)内部数据RAM:CY7C68013的内部数据RAM被分成三个不同的区域:低(LOW)128、高 (Upper)128和特殊功能寄存器(SFR)空间。低128和高128是通用RAM,SFR包括CY7C680l3控制和状态寄存器。(2)外部程序存储器和数据存储器:CY7C680l3有8K片上RAM(称为“主RAM”),位于0X0000-0X1FFF,作为程序和数据存储区;512字节Serateh RAM(称为“临时RAM”),位于0XE000-0XE1FF,用作数据存储,尽管Serateh RAM从物理上来说位于片内,但是通过估计可以把它作为外部RAM一样来寻址。CY7C68013保留7.5K(0XE200-0XFFFF)的数据地址空间,用于控制和状态寄存器和端点缓冲区。3.2.5 CY7C68013接口模式EZ-USB FX2可配置3种不同的接口模式:Ports(端口模式)、GPIF Master(可编程接口模式)和 Slave FIFO(主从模式) 。(l)ports模式:I/O引脚都可作为8051的通用I/O口;(2)GPIF模式:GPIF模式中将PORTB和PORTD作为16位数据线,这16数据线可与FX2的EP2、EP4、EP6、EP8四个端点FIFO相连接。GPIF的控制号的产生是通过读写控制波形软件的编程来实现的。产生的控制信号与其它元件连。GPIF可选择使用内部时钟或是外部时钟,传输速率鼓大可达96MB/S。GPIF配置的灵活性使得它可以对一任何8/16bit的存储器、控制器等进行数据的主动读写。(3)Slave FIFO模式:即从机方式,在该种方式下,外部控制器可像普通FIFO一样对FX2的多层缓冲FIFO进行读写。FX2的 Slave FIFO工作方式可设为同步或异步;工作时钟可选为内部产生或外部输入;其它控制信号也可灵活地设置为高电平有效或低电平有效。3.3 CY7C68013硬件电路设计3.3.1电源模块设计由于USB接口本身带有四根线:VCC、GND、D+、D-,当我们把USB接口插入计算机的时候就会输入电压,但是此时的电压时+5V的(图3.6),因此我们需要电平转换电路,把+5V的电压转换成+3.3V,这里我们选用LT1763CS8-3.3芯片进行转换。LT1763CS8系列是一块固定输出1.5V、 2.5V、 2.85V、3V、3.3V、5V的正稳压集成电路。它可应用于电池充电、便携式掌上笔记本电脑、磁驱动、便携式消费类装置、 便携式仪器、 SMPS站及计算机系统接口终端中作稳压电源。具有以下特点:1、输出电流为500mA 2、三端可调或固定输出1.5V,2.5V,2.85V,3V,3.3V,和5V 3、负载调整率和电压调整率小 4、可组成逻辑控制的电子切断电路 5、含过热、过流保护利用LT1763CS8-3.3将+5V电压转换成+3.3V 具体电路图如图3.7所示: 图 3.6 USB物理接口图3.7 +5到+3.3V的电压转换电路3.3.2时钟复位电路设计CY7C68013的复位引脚是RESET#,输入引脚 RESET# 会在触发时复位 FX2。而且为低电平有效。因此本课题设计的复位电路如下:图3.8复位电路图3.9 USB系统时钟电路 3.3.3 外部存储器EEPROM电路设计CY7C68013没有内部ROM,程序在掉电之后就会消失,再次使用之前必须重新装载程序,因此本课题在外部加了EEPROM,它主要用来存储产品标识码PID、厂家标识码VID和设备标识码DID,以及USB固件程序,当EZ-USB FXZ上电并脱离复位状态后,其就会检查芯片的I2C总线上是否连接有串行EEPROM,如果没有检查到EEPROM,它就利用存储在FX2芯片内部的各种描述符FX2和 VID(Vendor ID)、 PID(Product ID)、DID(Device ID)。如果存在EEPROM,且首字节值为0XC2,它将从该EEPROM中读取VID、PID和DID的值,而各种USB描述符仍由FX2芯片内部提供,程序等可以通过计算机下载。若首字节值为0XC2,VID、PID、NID、各种USB描述符及其8051固件代码都由EEPROM提供。AT24LC64是微芯科技公司的一款64 Kbit的电可擦除PROM的。具有如下特点:(1)2线串行接口总线,完全兼容I2C接口;(2)供电电压范围为2.5-5.5V;(3) 可以作为一个串行ROM的操作;(4) 1,000,000擦除/写周期;(5)低功耗;图3.10 AT24LC64如图3.9所示,A0、A1、A2分别是芯片的地址输入端,VSS、VCC是电源;SCL、SDA分别是串行接口输入时钟、串行接口数据输入;WP是写数据保护端;具体硬件电路图如图3.11所示:图3.11 EEPROM接口电路图3.3.4 外部FIFO电路设计FIFO是英文First In First Out 的缩写,是一种先进先出的数据缓存器,它与普通存储器的区别是没有外部读写地址线,这样使用起来非常简单,但缺点就是只能顺序写入数据,顺序的读出数据,其数据地址由内部读写指针自动加1完成,不能像普通存储器那样可以由地址线决定读取或写入某个指定的地址。有同步FIFO和异步FIFO之分,使用时按FIFO是否需要同一时钟还是不同时钟来决定。FIFO一般用于不同时钟域之间的数据传输,比如FIFO的一端时AD数据采集,另一端时计算机的PCI总线,假设其AD采集的速率为16位 100K SPS,那么每秒的数据量为100K16bit=1.6Mbps,PCI总线的速度为33MHz,总线宽度32bit,最大传输速率为1056Mbps,两个不同的时钟域间就可以采用FIFO来作为数据缓冲。另外对于不同宽度的数据接口也可以用FIFO,例如单片机位8位数据输出,而DSP可能是16位数据输入,在单片机与DSP连接时就可以使用FIFO来达到数据匹配的目的。综合FIFO的类

温馨提示

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

评论

0/150

提交评论