




已阅读5页,还剩35页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于usb接口存储器设计目录基于usb接口存储器设计1摘要2abstract2第一章绪论31.1 课题来源及意义31.2 国内外研究现状41.3 课题主要研究内容和主要工作5第二章usb总线技术52.1 usb总线的物理连接和电气特征62.1.1设备的连接和速度的检测62.1.2电源72.2 usb总线环境72.2.1 nrzi数据编码72.2.2位填充(bit stuffing)82.2.3同步头(sync pattern)82.3 usb数据流模型92.3.1 usb总线的拓扑结构102.3.2 usb的通信流112.3.3 设备端点(device endpoint)122.3.4 管道132.3.5 帧和微帧132.4 usb数据传输类型132.4.1块传输142.4.2 中断传输142.4.3同步传输152.4.4控制传输152.5 信息包162.5.1 包的格式162.5.2包中域的格式说明182.6系统设置202.6.1 usb设备的安装202.6.2 usb设备的拆卸202.6.3总线枚举(bus enumeration)20第3章 系统的硬件设计213.1 cy7c68013芯片介绍213.1.1 usb简介213.1.2 usb2.0的主要特点213.1.3cy7c68013芯片233.2电路设计263.2.1系统电源及时钟电路设计263.3 sd存储卡283.4 sd卡读写模块设计293.4.1 sd模式303.4.2 spi模式313.5 sd卡的初始化343.6 fat文件系统35第4章 结论与展望374.1 结论374.2展望38参考文献38致谢39摘要在现代工业生产和科学研究中,对数据的存储要求日益提高。现在通用的高速存储器一般是采用pci或isa接口技术,存在着安装麻烦,价格昂贵。基于usb接口的存储器系统提供即插即用的usb接口,使得数据读写的应用变得更广泛、更便捷。通过方便的usb接口与pc机进行数据交换,可以实现对数据的大量存储。本课题重点那就 usb总线的体系结构和特点,包括总线特征、信号环境、传输类型、数据流模型等,并针对传统 pci、isa、epp/ecp等接口的不足,我们提出了一种基于usb2.0接口的存储器(sd卡)扩展实现方案。设计并制作了基于usb接口的sd卡的硬件系统,编写了sd卡spi模式的初始化程序,实现了大容量存储卡的访问:实现了单片机与容量存储卡sd卡之间数据读写操作,大大提高pc机单片机的信息存储量。基于课题的研究内容,本文先对usb总线进行了介绍,然后以设计一种基于usb2.0接口技术的存储器扩展为例,详细地介绍了usb的硬件设计。在硬件设计部分,论文首先介绍了usb2.0接口芯片的性能和特点,然后给出了具体的硬件设计方案。论文详细地介绍了cy7c68013的gpif接口设计。在存储卡系统中应用了usb2.0总线技术不仅实现了数据的读写,而且使系统具有热插拔、即插即用,便携式的特点,达到了预期效果。关键词:usb2.0;存储器;sd卡 ;cy7c68013;gpif abstractwith the development of modem industry production and scienceresearch, the data storage face new challenge。now most of high-speed data acquisition adopt pci or is technique。and they have some defects like as complex;expensive。the data storage system based on usb interface provides a plug-and-play usb interface ,which makes the application of data read and write system become more extensive and convenient。we can stored large quantities of data through the usb interface. this subject discusses the architecture and feature of usb ,including bus attributes, signal environment, data flow model, and so on. after that, it brings forward a design scheme of sd card with usb2.0 interface, which is based upon the defects of traditional industry bus, such as isa, pci. then it designs and realizes the hardware system of the sd card with the usb interface ,compiled the spi mode of sd card initialization procedure ,achieved a large-capacity memory card access: achieved data read and write operation between a single chip with the capacity and sd memory card ,greatly enhanced pc information storage.based on the subject, this paper introduces the usb bus technology at first and then shows the design of memory system, detailed description of the hardware design of usb. in hardware segment, paper introduces the usb2.0 interface chip performance and characteristics, and then given a specific hardware design. the paper introduces the design of gpif of cy7c68013 in detail.the memory system used the usb2.0 technology to read and write data have the attributes of hot-plug-in, plus-and-play, and easy to take,and the anticipated performance has been achieved.key words:usb2.0;memory;sd memory card;cy7c68013;gpif第一章绪论1.1 课题来源及意义随着信息技术的飞速发展,大量的各种各样的数据需要有大容量的存储器来存储。usb是一种新型的计算机总线接口技术。而usb设备的出现,是计算机和外部设备的连接变得十分方便,而且usb能够进行高速传输,使得越来越多的设备都开始采用usb接口来实现。其进行数据的存取,可以提高系统的可靠性,而且系统的抗干扰能力和实时性也可以得到增强。因此本设计利用usb技术的便捷性和可靠性开发一个基于usb接口的高速存储器,方便地将数据高速地在pc机与sd卡之间传输。usb 是 英文universal serial bus的缩写,中文含义是“通用串行总线”。它是一种应用在pc领域的新型接口技术。早在1995年,就已经有pc机带有usb接口了,但由于缺乏软件及硬件设备的支持,这些pc机的usb接口都闲置未用。1998年后,随着微软在windows 98中内置了对usb接口的支持模块,加上usb设备的日渐增多,usb接口才逐步走进了实用阶段.这几 年 , 随着大量支持usb的个人电脑的普及,usb逐步成为pc机的标准接口已经是大势所趋。在主机(host)端,最新推出的pc机几乎100%支持usb;而在外设(device)端,使用usb接口的设备也与日俱增,例如数码相机、扫描仪、游戏杆、磁带和软驱、图像设备、打印机、键盘、鼠标等等。us b设备之所以会被大量应用,主要具有以下优点:(1)可以热插拔。这就让用户在使用外接设备时,不需要重复“关机”再“开机”这样的动作,而是直接在pc开机时,就可以将usb电缆插上使用。(2)携带方便。usb设备大多以“小、轻、薄”见长,对用户来说,同样20g的硬盘,usb硬盘比ide硬盘要轻一半的重量,在想要随身携带大量数据时,当然usb硬盘会是首要之选了。(3) 标准统一。大家常见的是ide接口的硬盘,串口的鼠标键盘,并口的打印机扫描仪,可是有了usb之后,这些应用外设统统可以用同样的标准与pc连接,这时就有了usb硬盘、usb鼠标、usb打印机等等。(4)可以连接多个设备。usb在pc上往往具有多个接口,可以同时连接几个设备,如果接上一个有4个端口的usb hub时,就可以再连上4个usb设备,以此类推,尽可以连下去,将你家的设备都同时连在一台pc上而不会有任何问题(注:最高可连接至127个设备)。1.2 国内外研究现状usb 最初推出的是1.x版本,其总线传输速度较低,有12mbps(全速)和1.5m bps(低速)两种。目前,它主要应用于传统pc外设,如鼠标、键盘、显示器等,移动存储设备如移动硬盘、闪存盘等,以及新兴的消费类电子,如mp3播放器、数码相机、移动电话等。2000年 推出了usb2.0 ,将数据传输速度提高到480mbps,在保持了usbi. 1的优点前提下,保证了向下兼容性,可以完全支持各种usb1.1的产品。不过,如果要使用高速传输,则必须使用与usb2. 0兼容的主机软件与主机控制器,也就是说在主机的操作系统windows2000/xp中安装usb2.0 补丁程序,另外还要安装支持usb2.0 的主机控制器或者pci接口usb2.0 的扩展卡。目前,市场上已有很多公司的主板支持usb2.0, 如intel、技嘉公司的主板。usb 2.0的480mbps的传输速率能完全满足高速音视频数据传输的需要,并且可以对未经压缩的音视频数据进行实时传送。另外,usb2.0 的高传送速率为研发新的、高性能的外设提供了可能。视频会议的摄相机将以更高的带宽进行存取,从而具备了更高的性能。usb 2. 0 扫描仪将会具备和scsi扫描仪和firewire扫描一样的高速度,而价格却会非常低。很多厂商都已经开始开发他们的usb2.0 标准的扫描仪,包括:hewlett packard, microtek, p1ustek和其他一些厂商。usb 2. 0 的存储设备在高速存储方面成为一个新的热门。我们将会在市场上见到高速度的移动存储设备,例如便携刻录机、移动硬盘、闪盘存储器等等,usb2. 0的dvd-ram也会出现。这些器件在使用usb2.0 通信时,要求对外设接口的改变越小越好。外设在附加了usb2.0 性能之后,相应附加的成本应尽可能地小。usbi.1器件和usb2.0 器件都应当在usb2.0 系统中顺利的操作。总之,usb2.0的出现弥补了usb1.1的不足,使得usb的应用范围不断扩大。随着 u sb 设备的迅速增加,设备与设备之间的直接数据传输变得越来越迫切,usb otg (on-the-go)技术应运而生了,它于2001年12月底制定,赋予了设备双重身份,也就是说它既可以作为主机,又可以作为设备,其实质是在设备中增加了一个嵌入式计算机来执行主机任务。这一技术使usb设备摆脱了对pc的依赖,大大扩展了usb的应用范围,结合usb2. 0高速传输技术,将严重威胁到工eee 1394的传统市场。目前,市场上己经有支持这一技术的芯片,如飞利浦公司的通用串行总线(usb)on-the-go (otg)芯片isp1362,它为最新的索尼clip手持设备提供usbotg连接性。索尼clie是业内首个具备usb otg功能的手持产品,可以与其它usb设备实现点到点通信。另外,扬智公司也成功地开发了国内首颗高速usb2.0otg控制芯片.1.3 课题主要研究内容和主要工作本课题主要研究了usb总线技术,包括总线特征,数据传输类型,数据流模型和信息包等,并对usb1.1和usb2.1协议进行了分析和比较。基于usb2.0技术,我们提出了一种基于usb接口的存储器设计方案,设计并制作了基于usb接口的对sd卡进行读写操作的硬件系统,编写usb2.0接口芯片cy7c68013的固件程序,实现了cy7c68013与外设之间的通信。为了实现主机和usb接口能够进行数据通信,我们编写了usb设备驱动程序。第二章usb总线技术为了解决传统pc机在发展过程中所遇到的一些问题,如外设通信端口数量不足,外设连接繁琐、配置困难,数据传输速率低等,compaq, dec,ibm, intel, microsoft, nec和northern telecom七家公司共同研制开发了usb (universal serial bus,即通用串行总线)。usb是一种快速的、方便的、廉价的新一代总线接入技术,其优点如下:(1 ) 成本低。为了把外设连接到pc机上,usb提供了一种低成本的解决方案;(2 ) usb支持热插拔和即插即用;(3 ) 占用的系统资源少(只占用一个irp);无总线竞争;(4 ) 速度快:usb1.1 支持1.5 m bps和12m bps两种传输速率,而usb2.0可达480mbps;(5 ) usb端口支持多个不同设备的串列联接,一个usb口理论上可连接127个usb设备;(6 ) usb事务处理包括错误检测机制,用以确保数据无错误的发送;(7 ) 设备能够直接由usb总线进行供电;(8 )支持四种传输方式:控制传输、中断传输、块传输和同步传输。支持多媒体:usb提供了对电话的两路数据的支持,可支持异步及等时传输,使电话可与pc集成,共享语音邮件及其它特性,而且usb还能传输高保真音频。目前,usb设备的发展如日中天,国内外己推出了几百种usb设备,包括usb集线器、打印机、扫描仪器、存储器、数字音箱、数码相机和调制解调设备等。usb设备在实际应用中己经逐渐取代传统的外设,因此研究usb具有一定的意义。本章将介绍设计usb设备所必须的基本知识。2.1 usb总线的物理连接和电气特征usb数据传输采用四根电缆,其中两根(d+,d_)是用来传送数据的串行通道,另两根(vbus, gnd)是符合标准的电源线,为下游的usb设备提供电源,如图2-1所示。其中,d+,d_是串行数据通信线,它支持两种数据传输速率,对于高速且要求高带宽的外设,usb以全速12mbps或高速480mbps传输数据;对于低速外设,usb则以1.5m bps的传输速率传输数据。usb总线会根据外设情况在不同的传输模式中自动地动态转换。vbus通常+5v电源,gnd是地线。usb总线是基于令牌的总线,类似于令牌环网络或fddi基于令牌的总线。 图2-1 usb电缆2.1.1设备的连接和速度的检测图2-2 低速设备电缆和电阻连接图2-3 高速设备电缆和电阻连接从图上可以看出,高速设备和低速设备的区别在于电缆上行端上的上拉电阻的位置不同。高速设备电缆的下行端上的上拉电阻位于d+线上,而低速设备电缆的下行端上的上拉电阻位于d-线上。usb也是以次来判定连接usb上的设备是高速的还是低速的。2.1.2电源usb的电源主要包括两方面:电源分配:即usb的设备如何通过usb总线获得usb主机提供的能源;电源管理:即通过电源管理系统,usb的系统软件和设备如何与主机协调工作。(1) 电源分配每个usb 单元通过电缆只能提供有限的能源。主机对那种直接相连的usb设备提供电源供其使用,并且每个usb设备都可能有自己的电源。那些完全依靠电缆提供能源的设备称作“总线供能”设备。相反,那些可选择能源来源的设备称作“自供电”设备。而且,集线器也可由与之相连的usb设备提供电源。(2 ) 电源管理usb主机与usb系统有相互独立的电源管理系统。usb的系统软件和主机电源管理系统相互作用,以此来控制挂起、唤醒等系统电源事件。另外,usb设备可以具有usb技术规范所规定的电源管理信息,从而系统软件或类驱动程序可对其进行电源管理。2.2 usb总线环境usb串行数据是用nrzi进行编码的,编码过程是在通过usb数据线进行传输之前进行的.图2-4就是在通过usb数据线段进行的信息传输时包含的步骤。nrzi编码首先由usb代理执行,它负责发送信息。接下来,编码后的数据被放入usb数据线,这是由差分驱动程序完成的。接收器放大传来的差分数据,并把nrzi数据发送到解码器,对数据进行编码和采用差分信号进行传输有助于确保数据的完整性和消除噪声干扰。nrzi编码器 差分驱动器 电缆段 差分接收器 nrzi解码图2-4在usb上采用nrzi编码和差分信号的传输方式2.2.1 nrzi数据编码当usb发送包时采用的是nrzi数据编码。在nrzi数据编码中。“1”表示在电平上无变化,而“0”表示电平有变化,也就是说若数据为1,则nrzi编码不变;若数据为0,则nrzi编码发生改变。图2-5表示数据流及其对应nrzi编码。 0 1 1 0 1 0 1 0 0 0 1 图2-5 nrzi数据编码2.2.2位填充(bit stuffing)usb中差分数据与时钟一起编码传送,位填充是指在连续为1的数据流中插入一个“0”位以引起一个在数据线上允许pll锁定的电气转换。当在usb上发送一个包时,发送设备使用了位填充,如图2-6所示。数据按nrzi编码时,数据流中每6个连续的“1后插入一个“0”,这样使接受器至少每7个位时间有一个逻辑数据转换,以保证数据和时钟的锁定。接收器必须解码nrzi数据,识别填充的位,然后将他们丢弃掉,位填充起始于同步头并贯穿于整个过程,同步头的结束数据“1”将作为序列中的第一位。除eop信号前的最后一位,在一个数据包中的数据都是根据位填充规则进行填充。 图26 位填充2.2.3同步头(sync pattern)同步头位于每个包前,允许接收器同步它们的位恢复时钟,如图2-7所示。同步头等效于7个0后接一个1 (0 x80)的数据结构。 图27 同步头2.3 usb数据流模型 usb设备usb主机usb按照通信服务协议威尔主机和接 设备提供通信服务。图28就是额usb设备和及相连的示意图。 图28 简单的usb主机/设备连接图 通信服务协议按照不同的功能分为功能层、设备层和接口层,这些层的之间的通信模型如图29所示。 图29 usb的多层通信模型 模型中的usb设备、客户软件、usb系统软件额usb主控制器 usb系统的四个执行范围,先对其解释如下:usb设备:一种位于usb电缆末端额硬件,完成一些有用的终端用户功能,如打印、扫描等。usb主控制器(主机端的总线接口):允许usb设备连接到主机的硬件和底层软件。 如图29所示,主机和设备间的连接要求不在一层的试题之间有相互作用。usb总线接口层为主机和设备间提供物理/信号/包的连接。usb设备层的usb系统软件必须具有完成一般usb操作功能。功能层通过一个特定的与功能模块匹配的客户软件层来实现usb设备的功能。每个usb设备层和功能层都没有一个在层内的逻辑通信流,实际上,usb中真正的数据传输是通过usb的总线接口层来完成的。2.3.1 usb总线的拓扑结构usb总线拓扑是指usb设备和主机之间的连接模型,包括usb主机,设备以及他们之间的相互连接。1.usb主机 部分构成:主机控制器、usb系统软件(包括usb驱动程序、主机控制器驱动程及主机软件)和客户软件。usb主机在usb系统中占据控制位置。因其特殊的地位,它对与之连接的设备有着特定的职责,并控制所有usb设备的访问。另外,主机还负责usb的拓扑结构。2.usb设备在终端用户来看,usb设备为主机提供了多种多样的附加功能,如扩展usb口、传输文件等。但对usb主机来说,它与所有usb设备的接口都是一致的,它认为一个usb设备由3个功能模块组成:usb总线接口、usb逻辑设备、功能单元。usb总线接口是usb设备中的串行接口引擎(sie);usb逻辑设备被usb系统软件看作是一个端点的集合;功能单元被客户软件看作是一个接口的集合。其中sie、端点、接口都是usb设备的组成单元。3.usb主机和设备的连接如图2-10所示,usb上的设备经由分层星型拓扑结构与主机进行物理连接。usb连接点由一个称为集线器的usb特殊类提供。这个集线器提供的额外连接点成为端口(port)。主机包含了一个嵌入的集线器,这个集线器我们称之为根集线器。主机通过根集线器给usb备提供一个或多个连接点。提供额外功能给主机的usb设备叫功能块。 多个功能块和一个集线器可被封装在一起,构成一个复合设备。复合设备只有一个设备地址。从主机来看,一个复合设备是一个连接了多个功能块的集线器。 图210 usb物理总线拓扑结构 集线器在高速系统中扮演着重要的角色。它把全速和低速信号环境从高速信号环境中分离出来。如图2-11所示,集线器支持高速的usb设备,同时它也允许usb1. 1的集线器连接到它的端口上,并让该usb1. 1的集线器运行在全速/低速状态下。这个usb2. 0的主机控制器可直接与全速/低速的设备相连。 图211 高速系统中的全速总线 当设备以分层的星型拓扑结构连接到usb上时,主机与每个逻辑设备之间的连接就像是逻辑设备直接连接到集线器端口上一样。对应与图2-10的物理拓扑的逻辑是图2-12所示。 图212 usb总线的逻辑拓扑2.3.2 usb的通信流usb为主机上的软件和usb的功能模块提供了通信服务。根据不同的客户与功能模块之间的不同通信要求,usb设备对数据流有不同的要求。由于允许不同的数据流独立地进入一个usb设备,usb能更好地利用整个总线的资源。每个通信流利用一些总线访问的方式来完成与功能模块之间的通信。每个通信流终止于设备上的一个端点。设备的端点是usb设备的唯一的可标识部分,用来标识每个通信流的方向,它是在主机和设备之间的通信流的信息源或终点。对usb系统来说,usb逻辑设备像是端点的一个集合。端点组合成实现接口的端点组,接口是面对此功能块的。系统软件使用与端点0相关的缺省管道(default pipe)来管理设备。管道(pipe)是描述设备上的端点和主机上的软件之间的联系的一个抽象通道。客户软件要求主机的缓冲器和usb设备上的一个端点之间传送。主机控制器(或依赖于传输方向的usb设备)对数据进行打包后往usb上传送。图2-13,说明了在端点和主机一侧的存储器缓冲区之间的管道是如何存载通信流的。 图213 通信流2.3.3 设备端点(device endpoint)每个 us b逻辑设备由各个独立操作的端点的集合构成。但是每个逻辑设备有一个唯一的地址,它是在设备连接usb的时刻由系统分配的地址.软件可经由一个或几个端点与usb设备进行通信。设备上的每个管道端点有一个唯一的标识 端点号(endpoint number)。设备地址和端点号的组合可以唯一地确定每个端点。端点号不为0的端点在被设置前处于未知状态,不能被主机访问。(1 ) 对0号 端点的要求:所有usb设备都要求有一个端点号为0的特殊端点,主机用该端点来初始化设备和配置逻辑设备。端点0提供对设备配置信息和一般的usb控制、状态信息的访问。端点0支持控制传输,一旦设备被连接和加电,端点0就被配置。(2) 对非0号 端点的要求:设备可以有除0号端点以外的其他端点,这取决于设备的实现。低速设备在0号端点外,只能有2个额外的端点。而高速设备可具有的额外端点数,仅受限于协议的定义(协议中规定,最15个额外的输入端点和最15个额外的输出端点)。除缺省端点0外,其他的端点只有在设备被设置后才可使用,对它们的配置是设备设置过程的一部分。2.3.4 管道一个usb管道是设备上的一个端点和主机上软件之间的联系。体现了主机上缓存和端点间传输数据的能力。有两种不同的且互斥的管道通信格式。(1) 流管道(stream pipe):流管道中的数据是流的形式,也就是说该数据的内容不具有usb要求的结构。数据从流管道的一端流进的顺序与它们从流管道另一端流出时的顺序是一样的,流管道中的通信流总是单方向的。流管道支持同步传输、中断传输和块传输类型。(2 )消息管道(message pipe):消息管道是用请求/数据/状态范例传送数据的管道,通过消息管道的数据是具有某种usb定义的格式的数据流。消息管道与端点的关系同流管道与端点的关系是不同的。首先,主机usb设备发出一个请求;接着,就是数据的传送;最后,是一个状态阶段。为了能够容纳请求/数据/状态的变化,消息管道要求数据有一个格式,此格式保证了命令能够被可靠地传送和确认。消息管道允许双方向的信息流,虽然大多数的通信流是单方向的。特别地 ,缺省控制管道是一个消息管道,用于在主机和usb设备的端点0之间传送控制和状态信息。系统软件用此管道来确定设备标志和配置要求,以及用来配置设备。usb系统软件保证多个请求不会同时发给同一个端点。在某一时刻,一个端点只能为单个信息请求服务。主机上的多个客户软件通过缺省管道能产生请求,但他们以先进先出的顺序被送到端点上。在响应主机事务的数据和状态阶段,端点能控制信息的流动。只有当端点上的当前信息处理完成后,端点才会正常地发送下一个信息。一个设备信息管道在2个方向(in或out标记)要求有一个单一的设备端点号。对于每个方向,usb不允许信息管道与不同的端点号相联系。2.3.5 帧和微帧usb工作在全速/低速状态下时,主机控制器每隔1毫秒发送一帧数据;而工作在高速状态时,主机控制器每隔125微秒就发送一帧数据。一帧(或微帧)数据可包含几种事务。图2-14表示帧和微帧的产生。 图214 帧和微帧的产生2.4 usb数据传输类型usb数据传送类型是从usb系统软件的管理角度来描述的。传送(transfer)是指在客户软件和它的功能模块之间的一个或多个信息传输的总线事务(bus transaction)。传送类型决定于客户软件和它的功能模块之间的数据流的特性。usb定义4种传输类型,以满足在总线上进行不同的数据类型传输的需要。2.4.1块传输块传输用于支持突发的大量的数据,全速模式时以8,16,32或64字节(高速模式时是512字节)的信息包传送。由于对出错的数据自动地进行重发,块数据可确保无误发送。当总线上有空闲时,主机安排块数据包。块数据可用于打印机、扫描仪、调制解调器的数据。块数据流由握手信息包控制。块传输如图2-15所示。 图215 两种块传输:输入和输出2.4.2 中断传输中断方式传输主要用于定时查询设备是否有中断数据要传输。实际上是一种主机定时侦听设备,看看有没有中断的传输方式。设备的端点模式器的结构决定了它的查询频率,从1255ms之间。这种传输方式典型的应用在少量的分散的、不可预测数据的传输。键盘、操纵杆和鼠标就属于这一类型。中断方式传输是单向的并且对于主机来说只有输入的方式。中断传输在高速时的数据载荷可达1023字节;在全速时的载荷量小于64字节;在低速时为8个字节以下。中断数据采用流管道进行传输。中断传输如图2-16所示。 图216 中断传输2.4.3同步传输用于保证时间优先的数据流,如音频和视频数据流,传输的时间对于数据来说是非常重要的必要条件,在全速模式时,一个同步包包含1023字节;在高速模式时,一个同步包包含1024字节。在每一个usb帧中,为同步传输分配了一定usb带宽。为了减少内部的事务操作,同步传输没有握手信号(ack/nak/stall/nyet) ,如图2-i7所示,也不具有重发机制。错误检测受限于16位crc。同步传输不使用数据轮换位机制,在全速模式时,同步数据只使用data0 pid标志;在高速模式时,同步数据使用data0, data1, data2和mdata.在全速模式时,对于每个端点,一帧中只有一个同步包。在高速模式时,对于每个端点,一个微帧中就可以包含多个同步包. 图217 同步传输2.4.4控制传输 控制传输是双向的,数据量通常较小。usb系统软件主要用来进行状态查询、配置和发送命令到设备。由于其重要性,它使用了最广泛usb错误检测协议。控制传输由主机以最有效原则进行。主机为控制传输保留了每一个usb帧的一部分时间。控制传输由两个或三个段组成,如图2-18所示。setup段包括usb控制数据的8个字节。如果需要的话,在可选的data段中还包含更多的数据。status段(或握手)段用于外设向主机报告控制操作的完成情况。 图218 控制传输2.5 信息包信息包是用来执行所有的usb事务处理的机制。进行数据传输时由主机控制器初始化所有的数据,以包的形式传送。包在总线上发送的顺序是先低位后高位(lsb-msb)。包一般由同步域、pid,c rc校验等组成。例如对usb数据包来说,开头是1个字节的同步域,接着是五个字节的包标识(pid。接着是最多1032字节的数据域.最后两字节是crc校验,用于验证数据传输的正确性。包标识域由它自己的冗余检查机制来决定。图2-19给出了usb数据包的图示。关于每一个包的类型的细节在下面部分将加以描述。 图219 数据包格式2.5.1 包的格式这一节对令牌、数据和握手包的完整格式分别进行了说明。图中的各个域是按照在总线上发送的顺序从左到右安排的。1、命令包(token packet)令牌包由pid域、地址域、端点域和crc域组成,它只能由主机发出.其格式如图2-20所示。其中地址域和端点域唯一确定了某个设备上的某一个端点。 图220 命令包2、帧开始包(start-of-frame packet)主机在低速时每10ms,全速时每1.oo ms士0.00 05ms,在高速时每125土0.06 25 us 发送一个帧开始(sof)包。每个sof后可紧接着一个(微) 帧。接收到sof令牌的功能块不会返回确认包。帧开始(sof)包由pid域、帧号域和5比特的crc检查域组成,如下图2-21所示。 图221 帧开始格式包3、数据包(data packet)数据包由包标识域、0-1023字节长度的数据域和16比特的crc检查域组成,如下图2-22所示。 图222 数据包格式4、握手包(handshake packet)握手包用来表示一个transaction的完成状态。它的格式最简单,只由一个8比特的pid域组成。5.特殊类型包pre格式的包由主机发送。在一个usb的系统中,主机首先发送一个pre包,如果存在不同速率的设备,则不同于总线速度的设备就会响应一个pre包,从而主机会忽略该设备。2.5.2包中域的格式说明1、同步序列(sync)同步序列由8个位组成,由7个连续的逻辑值0开始,结束为逻辑值1。由于0用差分数据线上的电平跳变来编码,所以这7个0在每一位开始的时候都建立一个电平跳变,这就提供了一个时钟,用来同步。同步性序列还通知usb接收器马上要有一个信息包被发送,这个信息包紧跟在这8位同步序列之后。2.包标识(pid)包标识域紧跟在每个usb包的同步域后,如图2-25所示,低4位表示包类型域,高4位为低4位的补码作为校验域。图223 pid格式主机或功能模块将收到包标识域取补,如果其值不等于接收到的校验域,则它将不接受整个包。此时,包接收器将忽略包中的其余部分。表2-1列出pid类型定义及描述。表2-1 pid类型3.地址域(address fields)设备上的端点用设备地址域(function address field)和端点域(end point field)两个域来确定。设备地址域由7个比特组成,共有128个,如下图2-26所示。在复位和上电时,功能块地址的缺省值为0,然后主机必须在设备枚举过程中给设备的每个功能块分配一个唯一的地址。地址为0的功能块是保留的缺省地址,不能分配给其它的用户。故共有附加127个设备。端点域由4个比特组成,用于确定设备上的端点号,如图2-27所示。 图226 设备地址域 图227 端点域4.帧号域(frame number)帧号域长度为11比特,逐帧加1,到达7ffh后清0。主机在每帧的开始发一个帧开始(sof)令牌,帧号域是其中的一个域。5.数据域(data field)数据域的长度可以是0-1023字节,它必须是字节的整数。图2-28所示为多字节的数据域格式,每个字节内的数据位首先从lsb移出。 图228 数据域格式6、循环冗余校验(crc)发送一个给定包的usb代理要计算一个5位或16位的crc,这取决于它的类型。数据包使用16位的crc,而别的信息包则使用5位的crc.crc的产生和检验仅仅用于信息包的具体数据,包的id也有自己的校验位。7、信息包的结束(eop)每个信息包的结束都由发送方发出一个信号来表示,具体方法是把两条差分数据线上的电压降低,并且这个低电压将持续两个位(在高速模式下是一个字节)的传输时间,而且后接一个位的空闲时间。当接收方检测到两条差分数据线都是低电平,并且持续了一个字节的时间时,接收方就认为所接收信息包已经结束了。2.6系统设置由于 usb 支持热插拔和即插即用,所以系统软件在物理的总线布局上必须支持这种动态变化。2.6.1 usb设备的安装usb设备可直接与主机的根集线器连接,也可以经过usb集线器与主机相连。集线器有一个状态指示器,指明在其某个端点上的usb设备是否被安装或拆除,主机将所有的集线器排成队列以取回其状态指示。在usb设备安装后,主机为usb设备建立了控制通道,通过控制通道激活该usb设备的端点,并对每个设备指定唯一的usb地址。另外 ,主 机还要检测这种新装的usb设备是集线器还是功能部件。如果安装的usb设备是集线器,并且usb设备连在其端口上,那么上述过程对每个usb设备的安装都要做一遍。如果安装的设备是功能部件,那么主机中关于该设备的软件将因设备的连接而被引发。2.6.2 usb设备的拆卸当usb设备从集线器的端口拆除后,集线器关闭该端口,并且向主机报告该设备己不存在,usb的系统软件对此removal事件进行处理。如果去除的是usb设备上的集线器,usb的系统软件将对集线器及其连接的所有usb设备进行removal处理。2.6.3总线枚举(bus enumeration)总线枚举指的是对插入的设备进行识别,并分配给它一个唯一的地址;当设备被拔出时,对它进行removal处理。由于usb允许设备在任何时候被插入系统或从系统拔出,对于usb系统软件来说,总线枚举是一项在任何时刻都可以发生的动作(on going activity).usb2.0 要求高速设备必须能在全速模式下枚举。事实上,所有的高速设备都是在全速模式下枚举的。只有当主机usb设备都同意在高速模式下时,usb设备才会转到高速模式下运行。当连接到一个支持全速模式的usb主机时,usb设备会枚举为一个全速设备。当连接到一个支持高速的主机时,usb设备会枚举为一个高速设备并自动地转换到高速模式运行。 第3章 系统的硬件设计本章将结合具体芯片,介绍一种基于usb接口的存储器设计,存储器采用sd卡,通过usb接口对sd卡进行数据读写。本存储器设计目标如下:用户通过主机端(pc机)的应用软件下载usb固件代码,并向sd卡发出读写命令。sd卡收到命令后,对接收来的数据进行存取或者把sd卡中已经存储的数据发送到主机上。本设计中选用fx2系列的芯片cy7c68013作为usb接口芯片,采用普通的sd卡作为存储器,两个芯片之间的通信采用可编程的fx2的gpif接口来实现。概述起来本系统的硬件组成主要包括以下几个部分:(1)用cy7c68013实现usb接口最小系统;(2)cy7c68013与sd卡之间通过gpif接口进行高速数据传输实现电路;(3)电源管理电路。下面将对电路的主要芯片和以上三部分的核心路逐一介绍。3.1 cy7c68013芯片介绍3.1.1 usb简介目前,usb芯片大致分成5大类型:(1) pc端或主机端的usb控制器;(2) 集线器芯片;(3) 特定的接口转换芯片,如usb转rs232或ata/atapi等;(4) 单独运作的usb接口芯片;(5) 内含usb单元的微处理器(mpu)。前两种是属于pc主机板与芯片制造商所开发的领域,不大适合用户来开发usb外围设备。因此,对于一般usb接口的开发者而言,可以经过后面的两种途径加以切入与学习。usb接口芯片,即是仅包含usb的串行接口引擎(sie).fifo内存、收发器以及电压调整器等的芯片。这类接口芯片实现时采用微处理器+usb收发芯片的办法,如微处理器十美国国家半导体公司(national semiconductor)的usbn9602芯片。它的优点是灵活性大,可以根据要求来选择微处理器,但是开发较复杂。内含usb单元的微处理器的usb芯片,这是一种专为针对某种特殊目的所开发的专用usb微处理器,而一般的usb微处理器内包含了通用型的cpu或mpu.比如cypress公司的ez-usb系列的an2100系列、fx系列和fx2系列的usb芯片,motorola的mc68hcoxxxx系列等。由于处理器和usb收发器集成在一起,它的优点是电路实现简单,性能优良,开发周期短等。本节就cypress公司的fx2系列的cy7c68013芯片来介绍usb接口的开发过程。3.1.2 usb2.0的主要特点usb协议的2.0版本于2000年4月推出。支持以下3种速度模式:低速模式(low speed) 1.5mb/s全速模式(full speed) 12mb/s高速模式(high speed) 480mb/sus b2 .0 协议支持现存的所有usb设备,也就是说可以把usb1.1 设备插入支持usb2.0 的pc机的usb接口,并且usb2.0 在电气上兼容usb1.1的连接线。1.数据包usb传输的数据包的类型用称之为packet ids( pids)的特定代码来定义。usb包中共有4种pid类型,如表3-1所列。表中黑体字表示usb2. 0增加的类型。表3- 1 usb2.0的数据包类型 pid类型 pid名称 令牌 in, out, sof, setup 数据 data0,data1,data2,mdata 握手 ack,nak,stall,nyet 特殊类型 pre,err,split,pingping:在全速模式时,每个out传输发送out数据包,考虑到外设处于“忙”状态而不能接收数据。针对这种浪费带宽的情况。在高速模式时,对块传输和控制传输的out端点推荐使用新的pid类型“ping。主机先对out端点发出一个较短的“ping”令牌,访问搁浅外设是否 数据空间存放out的数据包。仅仅当外部设备回答“ack”时,主机才发送较长的out数据包。如图3-1所示,表示在返回nak的out传输和返回nak的ping传输的比较。out传输浪费了高达530bytes的总线时间和2个包内延迟。然而,ping传输使用4bytes的总线时间和1个包内延迟。 图3-1 ping事物和out事物当主机向设备端点发出ping包,有三种可能的返回结果:(1) nak:表示端点没有足够的空间存放具有最大的数据包包长的数据。(2)ack:表明端点有足够的空间存放数据。(3)nyet:表明目标设备无误地接收到了out数据,但是没有足够的空间存放下一个具有最大的数据包的数据,此时主机继续向覆盖端点发送ping。stall:表示未知错误,外设未能理解主机发出的设备请求,这可能是外设端出错,也可能是主机访问并存在的资源.usb协议提供了从stall状态恢复的方法。2.帧结构usb主机每毫秒向所有的usb设备发送1个sof包(start of frame ),以此来提供时间基准。sof包括1个自增的11位帧序号。fx2随时可以从寄存器中读出这个范围在02047的帧序号。在高速模式下,每个1毫秒帧被分成8个125微秒的微帧,每个微帧也是从sof包开始。帧序号还是每个毫秒自增1次,所以每个sof包包含了相同帧号。为了区别每个微帧,fx2提供1个只读的微帧计数器。fx2能在收到sof包时产生1个中断请求,即在全速模式下1ms/次,高速模式下125微秒/次。由于usb2. 0在每个微帧中最大可传输13个块传输包,而每个微帧长固定为125微秒/次,所以其最大传输速率为:512*13*8*1000=53.248mb/s,即约为(426mb/s).3.传输类型 为了适用480 mb/s的高速数据传输,usb协议扩大了各种传输类型数据包长度,与usb1.1的对照如表3-2所示。 传输类型 最大的包长 usb1.1 usb2.0控制传输 8,16,32,64 64 块传输 8,16,32,64 512 中断传输 1-64 1-1024 同步传输1-1023 1-1024表3-2 usb2.0与usb1.1数据包长度的对照4.高速模式和全速模式的检测usb2. 0规范要求高速设备必须能在全速模式下枚举。每个高速设备都在全速模式下开始枚举过程。当与主机达成“chirp”协议后设备再切换到高速工作模式下。fx2能自动检测高速主机,并切换到高速模式下。3.1.3 cy7c68013芯片1.cy7c68013的优点 设计中,我们选用的usb接口芯片是ez-usb fx2系列的cy7c68013芯片。该芯片是针对usb2. 0的,而且和usb1. 1兼容,它支持两种传输速率:全速(fu11_speed) 12mbps和高速(high speed) 480mbps,它不支持低速(low speed) 1. 5mbps.该芯片包括带8. 5kb片上ram的高速8051单片机、4kb fifo存储器以及通用可编程接口(gpif)、串行接口引擎(sie)和usb2. 0收发器,无需外加芯片即可完成高速usb传输,性价比较高。另外,cy7c68013提供了设备的“软”解决方案,使得设备可以无限制的配置和升级。开发包提供的硬件和软件已经为开发者做了大量开发工作,开发者只需在特定的地方加入自己的功能相关的代码即可,开发极为方便。2.芯片的结构该芯片的内部结构如图3-2所以。 图3-2 cy7c68013的内部结构图cy7c68013内部集成了一个增强的8051内核,它既与标准的8051兼容,又有诸多的改进:最高工作频率48mhz,一个指令周期只需4个时钟周期,比标准的8051平均提高了2. 5倍;2个uarts端口;3个定时/记数器;扩展的中断系统及其更多i/0口等。cy7c68013内部集成的usb2. 0的sie能完成大部分usb2.0.协议的处理工作,减少了用户对繁杂的usb协议的处理。另外,用户在开发时,可以利用gpif和fifo方式实现与高速外围设
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 闸板阀维修施工方案
- 围墙护栏基础施工方案
- 2025年中考语文一轮复习:古诗词阅读核心考点解读
- 施工方案自己写吗
- 码头岸电施工方案
- 鹰潭护坡施工方案
- 2025年境外分子测试试题及答案
- 6年级下册语文第10课
- 荆州古建施工方案公司
- codebert在编程领域的使用
- 土壤颗粒分析-比重计法
- 解热镇痛抗炎药和抗痛风药专家讲座
- 人教版三年级下册《道德与法治》电子教案
- 试讲评分标准
- 《网红现象的研究背景、意义及文献综述(2100字)》
- 管接头注塑模具设计开题报告
- 最新-驾驶员职业心理和生理健康知识二-课件
- 既有住宅加装电梯业主意愿征集表
- 加氢装置催化剂硫化方案
- 危险源及危险源辨识教材课件
- 核电厂概率安全评价概述课件
评论
0/150
提交评论