[信息与通信][毕业设计]基于USB的高速数据采集卡的设计_第1页
[信息与通信][毕业设计]基于USB的高速数据采集卡的设计_第2页
[信息与通信][毕业设计]基于USB的高速数据采集卡的设计_第3页
[信息与通信][毕业设计]基于USB的高速数据采集卡的设计_第4页
[信息与通信][毕业设计]基于USB的高速数据采集卡的设计_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

1、第一章 绪论1.1 课题背景随着数字化的广泛应用,数据采集也越来越重要,传统的外设与主机的通信口一般采用isa、pci、c pci、1394等标准,基于这些接口的产品,安装麻烦,价格昂贵,并受计算机插槽数量、地址中断资源限制,且可扩展性差,usb的出现,很好地解决了以上问题。 usb作为一种新型的串口通信标准,具有较高的传输速率,可扩展性好,采用总线供电,使用灵活。它共有4种传输模式:控制传输、同步传输、中断传输、批量传输,以适应不同设备的需要。信息技术与电子技术的迅猛发展,使得计算机和外围设备也得到飞速发展和应用。过去人们单纯追求计算机与外设之间的传输速度,现在纠错能力和操作安装的简易性也成

2、为人们关注的目标。usb通讯技术的出现,使高传输速度、强纠错能力、易扩展性、方便的即插即用,有机的结合在一起。usb设备需要依据usb协议进行数据的解包与打包,底层硬件设备与操作系统之间需要以驱动程序为桥梁。驱动程序以wdm为模型,以ddk为开发工具,以irp为消息传播载体,来实现与windows系统底层核心机制相交互的功能。1.2课题的提出尽管rs232是一种十分成熟且应用广泛的通讯方式,但是随着控制系统的日益复杂,所要采集的量也会越来越多。因此寻求一种高速、安全、方便的通讯形式是十分必要的。usb技术虽然出现的时间并不长,但是由于它的种种优点,被越来越多的厂商和用户所接受,出现了usb打印

3、机、摄像头等产品。尽管目前usb接口的应用主要集中在电脑的周边外设,但是usb产品进入工控领域将是必然的趋势。采用cypress公司的cy7c68013芯片和89c51单片机设计的基于usb总线的数据采集系统,具有可靠性高、数据不丢失、抗干扰性强、便于数据传输和处理等优点,可在信号测试、信号采集场合广泛使用。所以本课题的研究是具有一定的现实意义和经济意义的。1.3 usb简介通用串行总线(universal serial bus,简称usb)是康柏、微软、ibm, dec等公司为了解传统总线的不足推出的一种新型串行总线接口规范, 自1995年在comdex上亮相以来至今己广泛地为各pc厂家所支

4、持。现在生产的pc机几乎都配备了,usb接口,microsoft的windows98, nt以及macos, linux, freebsd等流行操作系统都增加了对usb的支持。usb的主要特点如下:1. 速度快。 usb 有全速和低速两种方式,主模式为全速模式,速率为12mbps,从而使一些要求高速数据的外设,如:高速硬盘、摄像头等,都能统一到同一个总线框架下。另外为了适应一些不需要很大吞吐量但是有很高实时性要求的设备,如鼠标、键盘、游戏杆等,usb还提供低速方式,速率为1.5mbps。如表1-1所示。新推出的usb2.0协议提供最高达480mbps的数据传输速率可以适应各种不同类型的外设。表

5、1-1 usb使用分类表性能应用特性低速 ·交互设备·10-20kb/s键盘、鼠标、游戏棒低价格、热插拔、易用性中速·电话、音频、压缩视频·500kb/s-10mb/sisbn、pbx、pots低价格、易用性、动态插拔、限定带宽和延迟高速·音频、磁盘·25-500mb/s音频、磁盘高带宽、限定延迟、易用性2. 支持热插拔和即插即用。 所有的usb 设备可以随时的插入和拔离系统,usb 主机能够动态的识别设备的状态,并自动给接入的设备分配地址和配置参数,添加、删除设备完全不用关闭计算机,也不必像过去那样需要手动跳线和拨码开关来设置新的外

6、设。3. 易于扩展。usb使用的是一种易于扩展的树状结构,通过使用usb hub扩展可连接多达127个外设。标准usb电缆长度为3米(低速为5米)。通过hub或中继器可以使外设距离达到30米。4. 使用灵活。 usb共有4种传输模式:控制传输(control),步传输(synchronization)、中断传输(interrupt)、批量传输(bulk),适应不同设备的需要。5. 能够采用总线供电。 普通使用串口、并口的设备都需要单独的供电系统,而usb设备则不需要,因为usb接口提供了内置电源e usb电源能向低压设备提供最大5v, 500ma 的电源,从而降低了这些设备的成本并提高了性价比

7、。6. 实现成本低。 usb对系统与pc的集成进行了优化,适合于开发低成本的外设。本文设计的基于usb总线的数据采集系统正是充分地利用了usb 总线的上述优点,从而有效地解决了传统数据采集系统的缺陷。很方便地就能够实现低成本、高可靠性、实时的数据采集,适用于对瞬态信号进行采集和处理。1.4主要工作本论文所设计的数据采集系统是在单片机89c51控制下进行数据采集,并通过cypress公司的ez-usb fx2单片机 cy7c68013上传给pc机进行分析、显示和存盘。该系统用传统的usb总线取代了rs232串行总线,通过对usb协议和设备构架的充分理解,对以单片机89c51和usb接口芯片cy7

8、c68013为主的数据采集系统进行了硬件设计和软件编程,并在此设计的基础上给出相应的原理图。硬件设计主要解决的是cy7c68013与单片机的接口电路的设计。软件设计可分为三部分:一是充分了解d12的主要功能特点,为满足cy7c68013在usb上的最大传输速率而编写固件程序,用c51语言编写:二是在充分了解wdm驱动程序的基础上编写usb的设备驱动程序;三是编写出界面友好、具有强大的数据处理和分析能力的应用程序。第二章 usb协议2.1体系概述 usb体系一般分为三部分:usb主机(usb host), usb集线器(usbhub), usb设备(usb device). usb是一种层状的星

9、形拓扑,其根部是主控制器,usb器件直接与根部接口连接实现其功能。若多个器件同时需要连到主控制器上,只需用集线器(hub)来扩展。如下图所示(图中的node代表usb设备): 图2-1 usb体系图 图2-1 usb体系图 usb主机可以看作是一个硬件、固件和软件的结合体,是usb通信的中心。它控制和分时连接各个器件,是唯一可利用系统资源的部件。主机功能如下: .检测usb设备的安装和拆卸; .管理在主机和usb设备之间的控制流; .管理在主机和usb设备之间的数据流; .收集状态和动作信息; .提供能量给连接的usb设备。 主机上usb的系统软件管理usb设备和主机上该设备软件之间的相互作用

10、,usb系统软件与设备软件间有五种相互作用方式: .设备编号和设置; .同步数据传输; .异步数据传输; .电源管理; .设备和总线管理信息。只要可能,usb系统软件就会使用目前的主机软件接口来管理上述几种方式。 usb集线器,可让不同性质的设备连接在usb上,连接点称作端口。每个集线器将一个连接点转化成许多的连接点。并且该体系结构支持多个集线器的连接。每个集线器的上游端口向主机方向进行连接。每个集线器的下游端口允许连接另外的集线器或功能部件,集线器可检测每个下游端口的设备的安装或拆卸,并可对下游端口的设备分配能源,每个下游端口都具有独立的能力,不论高速或低速设备均可连接。集线器可将低速和高速

11、端口的信号分开。 一个集线器包括两部分:集线控制器(controller)和集线放大器(repeater).集线放大器是一种在上游端口和下游端口之间的协议控制开关,而且硬件上支持复位、挂起、唤醒的信号。集线控制器提供了接口寄存器用于与主机之间的通信,而且集线控制器允许主机对其特定状态和控制命令进行设置,并监视和控制其端口。 usb设备是带有usb接口并可以完成特定功能的外设,它通过usb总线进行发送接收数据和控制信息,用一根电缆连接在集线器的某个端口上。一个物理单元中可以有多个功能部件和一个内置集线器,并利用一根usb电缆,这通常被称为复合设备,即一个集线器连向主机,并有一个或多个不可拆卸的u

12、sb设备连在其上。 每个us b设备都包含设置信息,来描述该设备的性能和所需资源。主机要在功能部件使用前对其进行设置。设置信息包括usb带宽分配,选择设备的设置信息等。目前usb设备是usb总线中发展最快的部分,常见usb外设有:鼠标或光笔、键盘等。2.2 usb的互连一个usb系统主要被定义为三个部分: ·usb的互连; ·usb的设备; ·usb的主机。 usb的互连是指usb设备与主机之间进行连接和通信的操作,主要包括以下几方面: ·总线的拓扑结构:usb设备与主机之间的各种连接方式; ·内部层次关系:根据性能叠置,usb的任务被分配到系

13、统的每一个层次; ·数据流模式:描述了数据在系统中通过usb从产生方到使用方的流动方式; ·usb的调度:usb提供了一个共享的连接。对可以使用的连接进行了调度以支持同步数据传输,并且避免的优先级判别的开销。总线拓朴结构包括四个重要的组成部分。 ·主机和设备:usb系统的基础组成部分。 ·物理拓朴结构:描述usb系统中的各组成部分是如何连接起来的。 ·逻辑拓朴结构:描述usb系统中各种组成部分的地位和作用,以及描述从主机和设备的角度观察到的usb系统。 ·客户软件层与应用层的关系:描述从客户软件层看到的应用层的情况,以及从应用层看到的

14、客户软件层的情况。usb 系统中的设备与主机的连接方式采用的是星形连接,如图2-1。复合设备设备设备 设备设备设备设备主机hubhub根hub 图21 usb物理总线的拓扑图中的hub是一类特殊的usb设备,它是一组usb的连接点,主机中有一个被嵌入的hub叫根hub(root hub)。主机通过根hub提供若干个连接点。为了防止环状连接,采用星形连接来体现层次性,如图4-5。这种连接的形状很像一棵树。 用于提供具体功能的设备叫应用设备。许多不同功能的设备放在一起被看作一个整体,叫包。例如,键盘和轨迹球可以被视作一个整体,在它的内部,提供具体功能的设备被永久地接到hub上,而这个hub被接到u

15、sb上。所有这些设备及这个hub被看作一个复合设备,而这个hub又被看作这个复合设备的内部hub。在主机看来,这个复合设备和一个带着若干设备的单独hub是一样的。图中也标出了一个复合设备。总线逻辑拓朴结构。在物理结构上,设备通过hub连到主机上。但在逻辑上,主机是直接与各个逻辑设备通信的,就好像它们是直接被连到主机上一样。这个逻辑关系如图2-2所示。与之对应的物理结构就是图2-1中的结构。hub也是逻辑设备,但在图2-2中,为了简化起见,未被画出,虽然usb系统中的工作都是从逻辑角度来看待的,但主机必须对物理结构有个了解。例如,在处理hub被移去的情况时,当一个hub被移出,通过它与主机相连的

16、设备也应一起被移去,这是由其物理结构决定的。逻辑设备逻辑设备逻辑设备主机图2-2 usb逻辑总线的拓扑客户软件层与应用层的关系 usb系统的物理上、逻辑上的拓朴结构反映了总线的共享性。操纵usb应用设备的客户软件只关心设备上与它相关的接口,客户软件必须通过usb软件编程接口来操纵应用设备。这与另一些总线如pcl,elsa,pcmua等不同,这些总线是直接访问内存或i/o的。在运行中,客户软件必须独立于usb上的其它设备。这样,设备和客户软件的设计者就可以只关心该设备与主机硬件的相互作用和主机软件的相互作用的细节问题。图2-3说明了在图2-2的逻辑结构下,一个设备设计者看到的客户软件与相应应用的

17、关系的视图。客户软件应用客户软件应用客户软件应用图2-3客户软件和应用间的关系2.3 usb的主机2.3.1 usb主机概述图2-4展示了usb通信模型之间基本的信息流与互连关系:客户usb系统主机控制器功能部件usb设备usb总线接口逻辑的信息流实际的信息流 图2-4 通信模型层次关系图 由图2-4可见,主机与设备都被划分成不同的层次。主机上垂直的箭头是实际的信息流。设备上对应的接口是基于不同实现的。在主机与设备之间的所有通信最终都是通过usb的电缆进行,然而,在上层的水平层之间存在逻辑的主机-设备信息流。主机上的客户软件和设备功能部件之间的通信是基于实际的应用需求及设备所能提供的能力。客户

18、软件与功能部件之间的透明通信的要求,决定主机和设备下层部件的功能以及它们的界面(interface),图2-5描述了从主机角度看到的它与设备的连接。通道,代表相应层之间连接的抽象usb系统 硬件定义 客户(管理界面) 硬件定义irps配置信息usb驱动器主机软件 主机控制器驱动主机控制器sie通道组(到某一接口)标准通道(到缺省端口地址)usb电缆 图2-5 主机通信图主机在整个usb系统中是唯一的,它包括如下几个层次。 ·usb总线接口 ·usb系统(usb system) ·usb客户(client) 其中,usb总线接口处理电气及协议层的互连。从互连的角度看

19、,usb设备和usb主机都提供类似的usb总线接口,如串行接口引擎。由于主机在usb系统中的特殊性,usb主机上的总线接口还必须具备主机控制器的功能,主机控制器具有一个内集成的集线器(根集线器)提供与usb电缆的连接。usb系统使用主机控制器来管理主机与usb设备的数据传输。usb系统与主机控制器之间的界面基于主机控制器的硬件特性。usb系统层相对于主机控制器而言,处理的是以客户观点见到的数据传输及客户与设备的交互。这包括附加的usb信息,比如协议头。usb系统还必须管理usb的系统资源,以使得客户的访问成为可能。 usb系统有三个主要组成部份: ·主机控制器驱动 ·usb

20、驱动 ·主机软件 主机控制器驱动的存在,方便地将各种不同的主机控制器实现映射到usb系统,客户可以不必知道设备到底接在哪个主机控制器上就能同设备进行通信。usb驱动提供了基本的面向客户的主机界面。在hcd与usb之间的接口称为主机控制器驱动接口(host controller driver interface hcdi)。这层接口不能被客户直接访问,所以也不是由usb具体来完成的。一个典型的hcdi是由支撑各种不同主机控制器的操作系统来定义的。 usbd提供i/o请求包(i/o request packets)形式的数据传输,以某一特定通道来传输数据。另外,usbd为它的客户提供一个

21、容易被支配及配置的抽象的设备。作为这种抽象的一部份,usbd拥有标准通道对设备进行一些标准的控制。这标准通道实现了usbd与抽象设备之间的逻辑通信。(见图2-5) 在有些操作系统中,提供了额外的非usb系统软件以支持设备的配置及设备驱动程序的加载。在这样的操作系统中,设备驱动程序应使用提供的主机软件接口而不是直接访问usbdi。客户层描述的是直接与usb设备进行交互所需要的软件包。当所有的设备都已连上系统时,这些客户就可以直接通设备进行通信。一个客户不能直接访问设备的硬件。总而言之,主机可提供如下的功能: ·检测usb设备的连接与断开。 ·管理主机与设备之间的标准控制流。

22、·管理主机与设备之间的数据流。 ·收集状态及一些活动的统计数字。·控制主机控制器与usb设备的电气接口,包括提供有限的能源。2.3.2 usb驱动(usbd) usbd提供了供操作系统组件特别是设备驱动程序访问设备的一组接口。这些操作系统组件只能通过usbd来访问usb。usbd的具体实现基于不同的操作系统。一个usbd可以访问一个或多个hcd,而一个hcd可能与一个或多个主机控制器相连。某些操作系统可能允许对usbd的初始化进行一些设置。从客户的观点来看,与客户进行通信的usbd管理着所有连接着的usb设备。1. usbd概况 usbd的客户直接命令设备或从通道

23、直接输入和输出数据流。usbd为客户提供两组工具。命令工具和通道工具。 命令工具允许客户配置和控制usbd操作同时配置及控制usb设备。命令工具提供了对设备标准通道的所有访问。 通道工具允许usbd客户管理特定设备的数据和控制数据的传输。通道工具不允客户直接访问设备的标准通道。图2-6给出了usbd的总体框架。 服务 通道接口 命令接口信息和流通道配置管理设备数据访问总线设备管理能量控制主机控制器驱动主机控制器驱动主机控制器主机控制器图2-6 usb 驱动结构(1) usbd初始化 具体的usbd初始化工作是与操作系统有关的。当usb系统初始化时,usb的管理信息被创建,其中包括缺省地址设备及

24、它的标准通道。当一个设备连上usb时,它响应特殊的缺省地址,直到他的唯一地址由主机给出。为了让usb系统能与新的设备进行通信,设备在刚连上总线时,设备的却省地址必须是可用的。在设备的初始化期间,设备的缺省地址被修改成一个唯一的地址。(2) usbd通道使用通道是设备与主机的逻辑连结。一个通道由且仅由一个客户所拥有。虽然通道的基本属性不因通道的拥有者而改变,但在两类不同客户所拥有的通道之间还存在一定的差异:·标准通道 他们由usbd拥有和管理。·其他的通道 它们由usbd的客户拥有和管理。 虽然标准通道经常用于完成一些客户通过命令接口所传递的请求,但是它们不能由客户直接访问的

25、。(3) usbd服务功能 usbd提供如下种类的服务: ·通过命令工具配置设备 ·通过命令工具及通道工具提供传输服务 ·事件通知 ·状态报告及错误恢复2. usbd命令工具功能 usbd命令工具允许客户访问设备。通常,这些命令允许客户以读写形式访问某个设备数据及控制部份。客户要做的仅是提供设备的标识码和相关数据缓冲区或空缓冲区指针。 usbd命令传输时并不需要usb设备是已被配置好。usbd提供的设备配置设施大部分使用是用命令传输。下面的是有关命令工具提供的功能:(1)接口状态控制 usbd客户必须能够设置具体的接口。接口状态的改变使得所有与该接口相连

26、的通道都进入新的状态。另外接口的所有通道都能够被重新设置或废弃。(2)通道状态控制 usbd通道状态由两部份组成 ·主机状态。 ·反映的端口状态。 通道状态值总是包含上述两部份。usbd的客户管理由usbd报告通道状态,且客户能够与端口交互以改变它状态。(3)获取描述码 usbd提供取得标准设备描述符,设备配置描述符,字串描述符和设备类或者厂商定义的描述符的功能。(4)取得当前配置参数 usbd提供取得任何设备当前配置参数的描述符的功能。如果设备没有被配置,则不返回描述符。当客户请求为设备设置特定的参数时也返回当前配置的描述符。返回的配置信息中包括如下一些内容: ·

27、;所有存放在设备上的配置描述符,包括接口的所有其他可替换配置。 ·返回接口的当前的配置的描述符。 ·接口当前配置中的某一端口(一个接口可能具有多个端口)的通道句柄。·接口当前配置中的某一端口的最大允许包长。另外,对于任一通道,usbdi必须提供返回该通道的当前正使用的最大包长的值的机制。(5)增加设备 usbdi必须提供某种机制以便于当增加新的设备的时候,集成器驱动器能通知usbd并能取得该新usb设备的usbd标识。usbd的任务包括分配设备地址并且为设备准备使用的标准通道。(6)设备断开 usbdi必须提供某种机制以便于集线器控制器通知usbd特定的设备已断开

28、。(7)管理状态 usbdi必须提供取得和清除设备或接口或通道上与设备有关的状态的功能。(8)向设备发送与设备类有关的命令 usbd的客户,特别是特定类的和自适应的驱动器使用usbd提供的该种机制向设备送出一个或多个设备类命令。(9)向设备发送特殊的厂商定义的命令 客户使用usbdi提供的该种机制向设备送出一到多个厂商定义的命令。(10)更改接口配置 usbdi必须提供更改特定接口配置的机制。修改了配置后,接口的新通道句柄替换了旧的通道句柄。在上述的请求执行的过程中,接口必须是空闲的。(11)创建设备配置 配置软件向usbd提出进行设备配置的请求时提供一个包含配置信息的数据缓冲区。usbd根据

29、提供的配置信息为设备端口请求资源。如果所有的资源请求都得到满足,usbd设置设备配置参数,并且返回当前设备所有活跃态接口句柄和与该接口中的某一端口相连的通道句柄。接口的设置可使用缺省参数。(12)设置描述符 对于支持该项行为的设备,usbdi允许升级设备上的描述符或者增加新的描述符。3. usbd通道设施usbd的通道设施使客户与设备之间高速的低附加信息的数据传输成为可能。数据传输的高性能是通过将usbd的一部份通道管理任务转交给客户来实现的。所以通道设施比usbd命令设施所提供的数据传输服务更直接。通道设施不允许访问设备的标准通道。 只有在usb及设备的配置都顺利完成后,客户才有可能进行us

30、bd的通道传输。当设备被配置的时候usbd根据配置参数为设备的所有通道请求资源。当特定的接口或通道空闲的时候,客户可以更改配置。 客户为输出的通道提供一个满的数据缓冲区,并且在请求完成以后取得传输状态信息。客户可以根据返回的状态信息判断传输是否顺利完成。 客户为输入通道提供空的数据缓冲区,并且在请求完成以后得到一个具有数据的缓冲区及传输的状态信息。客户可根据该状态信息判断传输数据的数量及质量。根据所支持的数据传输类型,usbd共有四种通道类型:控制传输、同步数据传输、中断传输、块传输。2.4 usb设备usb设备可被划分三层: ·底层是传送和接收数据包的总线接口 ·中间层处

31、理总线接口与不同端点之间的数据路由端节点是数据的终结提供处或使用处,它可被看作数据源或数据接收端(sink)·最上层的功能由串行总线设备提供,比如鼠标,或isdn接口。2.4.1 usb设备状态usb设备有若干可能的状态,其中一些对于usb与主机(host)来说是外置的,而另外一些对usb设备来说是内置的,表2-1描述的就是这些外置状态之间的转化关系。表2-1外呈(可见)的设备状态连接加电缺省编址配置挂起说 明不_ _设备尚未连接至接口.其他特性无关是不_ _设备已连接至接口,但未加电. 其他特性无关.是是不_ _设备已连接至接口,并且已加电.但尚未被复位.是是是不_设备已连接至接口

32、,已加电. 并被复位.但尚未分配地址.设备在缺省地址处可寻址.是是是是不_ 设备已连接至接口,已加电. 并被复位.且分配了唯一地址.尚未被配置.是是是是是不设备已连接至接口,已加电. 并被复位.且分配了唯一地址,并被配置.设备功能可被使用.是是_是设备在至少3毫秒以内探测不到总线活动,自动进如挂起.设备功能不可用.2.4.2 通用usb设备操作所有的usb 设备支持通用的操作集,下面简要地描述这些操1. 动态插接与拔开 usb设备必须在任意时刻允许被插接与拔开。提供连接点或端口的集线器应当负责汇报端口的状态改变情况。 当主机探测到连接操作后,会使得所连的集线器端口生效,设备也会因此而复位,一个

33、被复位了的usb设备有如下特性: ·对缺省usb地址发生响应 ·没有被配置 ·初始状态不是挂起 当设备从一个集线器端口移去时,集线器会使得原来连接的端口失效,并且通知主机设备已移去。2. 地址分配 当usb设备连接以后,由主机负责给此设备分配一个唯一的地址,这个操作是在设备复位及端口使能操作以后。3. 配置 usb设备在正常被使用以前,必须被配置,由主机负责配置设备。主机一般会从usb设备获取配置信息后再准定此设备有哪些功能。 作为配置操作的一部分,主机会设置设备的配置值,并且,如果必要的话会选择合适的接口的备选设置。 只须一个简单配置,一个设备可能支持多重接口。

34、一个接口是一组端结点集合,它们代表了设备向主机提供的单一的功能或特性,用来与这组相关端结点通信的协议以及接口内各端结点的目的可以作为一个设备类的一部分或者由厂商制定具体定义。 另外,一个配置中的结口可能有备选设置。这些备选设置会重定义相关端结点的数目或特性。如果是这样的话,设备必须支持getinterface(接口请求)与set interface(接口设置)请求,来汇报及选择指定的接口的设备选设置。4. 数据传送 数据可能以四种方式在usb设备端结点与主机之间传送。四种传送方式参见第五章。在不同设置下,一个终端结点可能被用于不同的传输方式,但一旦设置选定,传送方式就选定了。5. 电源管理 u

35、sb总线电源是一个有限的资源,在设备标识阶段,主机估测电源的需求。如果电源的需求量超过usb总线所能提供的电量,主机软件则不能选择那个配置。 usb设备应将电源需求量限制在一个单元以下,直到被配置。中止(挂起)的设备,不管是否已经配置过了,应将总线耗电降到第7章定义的标准以下。视接到设备的端口电源负载能力而定,usb设备在配置了以后可从vbus汲取达5个单元的电量。远程唤醒能力参许一个被挂起的usb设备发达信号给处于挂起状态的主机。这个信号会使得主机醒来,处理触发事件。usb设备通过配置描述来向主机汇报其远程唤醒的能力。usb设备的远程唤醒能力应能被禁止的。6. 请求处理 除setaddres

36、s( )请求以外,在安装完成返回ack信号以后,设备就开始处理请求。在某一状态成功结束以前,设备应当“完成”对请求的处理。许多请求费时较多,像这样的请求,该设备类应定义一个方法而不是等待交换状态信息阶段的结束来表示该操作已经完成。像这样的操作有:集线器端口的复位至少需10ms来完成。当端口复位产生时,setportfeature(port-reset)请求就结束了。当端口状态改变并表明此端口已经生效时,一个信号就会产生表明复位信号已经结束。这种技术可以防止当主机知道某一个请求费时较长的情况一直探测此请求是否已完成。7. 请求错误如果一设备收到一个请求,它或是在设备中无定义,或是不适用于当前设置

37、,或是数值不对,这时就会产生一个请求错误。设备在下一个数据传输阶段或状态交换阶段返回一个表明错误的stall pid信号,一般在下一个数据传输返回更好,这样可减少不必要的总线活动。2.4.3 usb设备请求所有的usb设备在“设备的缺省控制通道”处对主机的请求发出响应。这些请求是通过使用控制传输来达到的,请求及请求的参数通过setup包发向设备,由主机负责设置setup包内的每个域的值。每个setup包有8个字节。见表2-2。表2-2 setup数据包的格式 偏移量 域 大小 值 描述0bmrequesttype1位图请求特征:d7: 传输方向0=主机至设备1=设备至主机d6.5: 种类0=标

38、准1=类2=厂商3=保留d4.0: 接受者0=设备1=接口2=端点3=其他4.31=保留1brequest1值具体请求2wvalue2值字长域,根据不同的请求含义改变.4windex2索引或偏移字长域,根据不同的请求含义改变.典型用于传送索引或偏移.6wlength2如有数据传送阶段,此为数据字节数.2.5 usb的物理层usb的物理接口包括电气特性和机械特性。usb通过一个四线电缆来传输信号与电源如图2-7所示。图2-7 usb电缆定义其中d+和d-是一对差模的信号线而vbus和gnd则提供了5v的电源它可以给一些设备(包括hub)供电当然要有一定的条件限制。usb1.1提供了两种数据传输率

39、一种是12mb的高速模式,另一种是1.5mb的低速模式,这两种模式可以同时存在于一个usb系统中。而引入低速模式主要是为了降低要求不高的设备的成本,比如鼠标、键盘等等。usb信号线在高速模式下必须使用带有屏蔽的双绞线,而且最长不能超过5m。而在低速模式时中可以使用不带屏蔽或不是双绞的线,但最长不能超过30m。这主要是由于信号衰减的限制,为了提供信号电压保证以及与终端负载相匹配,在电缆的每一端都使用了不平衡的终端负载,这种终端负载也保证了能够检测外设与端口的连接或分离,并且可以区分高速与低速设备。所有的设备都有上行的接口,上行和下行的接头是不能互换的,这保证了不会有非法的连接出现。插头与插座有两

40、个系列分别为a和b系列,a用于基本固定的外围设备,而系列b用于经常拔插的设备,这两个系列是不能互换的。2.6 usb 数据流从逻辑上讲usb数据的传输是通过管道进行的。图2-6描述了usb数据传输的过程。usb系统软件通过缺省管道(与端点0相对应)管理设备,设备驱动程序通过其它的管道来管理设备的功能接口。实际的数据传输过程是这样的:设备驱动程序通过对usbd接口(usb driver interface)的调用发出输入输出请求(irp i/o request packet);usb驱动程序接到请求后,调用hcd接口(host controller driver interface),将irp转

41、化为usb的传输,一个irp可以包含一个或多个usb传输;然后hcd将usb传输分解为总线操作,由主控制器以包的形式发出。需要注意的是所有的数据传输都是由主机开始的,任何外设都无权开始一个传输。irp是由操作系统定义的,而usb传输与总线操作是usb规范定义的。为了进一步说明usb传输,我们引出帧(frame)的概念。帧:usb总线将1ms定义为一帧,每帧以一个sof包为起始,在这1ms里,usb进行一系列的总线操作。引入帧的概念主要是为了支持与时间有关的总线操作。为了满足不同外设和用户的要求,usb 提供了四种传输方式:控制传输、同步传输、中断传输、批传输。它们在数据格式、传输方向、数据包容

42、量限制、总线访问限制等方面有着各自不同的特征。控制传输(control transfer)1. 通常用于配置/命令/状态等情形;2. 其中的设置操作(setup)和状态操作(status)的数据包,具有usb定义的结构,因此控制传输只能通过消息管道进行;3. 支持双向传输; 主机 连接 物理设备接口x应用接口的集合 client sw管理一个接口 到一个接 口的通道 束 与接口 无 缓冲 没有usb 有关 usb格式 格式 端点0usb逻辑设备端点的集合usb system sw管理设备 到0号端点的 缺省通道usb设备 usb usb帧格式 接口 的数据 事务 主机控制器 事务 usb帧格式

43、 每个端 usb帧 sieusb总线接口 的数据 点的数 结构的 据 数据 usbsie 主机 usb线路 机械的,通道:两个水平实体之间连接 电气的, 的抽象。 数据传递机制 被传递的数据图2-8 usb数据流4. 对于高速设备允许数据包最大容量为8,16,32或64字节,对于低速设备只有8 字节一种选择;5. 端点不能指定总线访问的频率和占用总线的时间,usb系统软件会做出限制;6. 具有数据传输保证,在必要时可以重试。同步传输(isochronous transfer)1. 是一种周期的连续的传输方式,通常用于与时间有密切关系的信息的传输;2. 数据没有usb 定义的结构数据流管道;3.

44、 单向传输,如果一个外设需要双向传输,则必须使用另一个端点;4. 只能用于高速设备,数据包的最大容量可以从0到1023个字节;5. 具有带宽保证,并且保持数据传输的速率恒定,每个同步管道每帧传输一个数据包;6. 没有数据重发机制要求,具有一定的容错性;7. 与中断方式一起占用总线的时间不得超过一帧的90%。中断传输(interrupt transfer)1. 用于非周期的自然发生的数据量很小的信息的传输,如键盘、鼠标等;2. 数据没有usb 定义的结构数据流管道;3. 只有输入这一种传输方式,即外设到主机;4. 对于高速设备允许数据包,最大容量为小于或等于64字节,对于低速设备只能小于或等于8

45、字节;5. 具有最大服务周期保证,即在规定时间内保证有一次数据传输;6. 与同步方式一起占用总线的时间不得超过一帧的90%;7. 具有数据传输保证,在必要时可以重试。批传输(bulk transfer)1. 用于大量的对时间没有要求的数据传输;2. 数据没有usb 定义的结构数据流管道;3. 单向传输,如果一个外设需要双向传输,则必须使用另一个端点;4. 只能用于高速设备,允许数据包最大容量为8,16,32或64字节;5. 没有带宽的保证,只要有总线空闲就允许传输数据,优先级小,于控制传输;6. 具有数据传输保证,在必要时可以重试,以保证数据的准确性。图2-7 描述了输入输出请求irp传输与操

46、作之间的关系。一个同步传送是一个或多个in/out方向的数据事务。irp数据流类型irp事务事务事务所有的传送都是由一个或多个事务组成。一个irp又可由一个或多个传送组成。控制传送irpsetup事务数据事务status事务额外的控制传送控制传送首先是一个out方向的setup事务,然后是多个in方向或out方向的数据事务,最后是一个与数据反向的status事务。中断传送irp事务事务一个中断传送是一个或多个in/out方向的数据事务。同步传送irp事务事务事务批传送事务事务事务一个批传送是一个或多个in/out方向的数据事务。图2-7 usb 数据传输第三章 数据采集系统的固件设计3.1 固

47、件的开发环境keil c51是美国keil software公司出品的51系列兼容单片机c语言软件开发系统,与汇编相比,c语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。keil c51软件提供丰富的库函数和功能强大的集成开发调试工具,全windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到keil c51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。keil c51的工具包中,uvision是c51 for windows的集成开发环境(ide),可以完成编辑、编译、连接、调试、仿真等整

48、个开发流程。开发人员可用ide本身或其它编辑器编辑c或汇编源文件。然后分别由c51及a51编译器编译生成目标文件(.obj)。目标文件可由lib51创建生成库文件,也可以与库文件一起经l51连接定位生成绝对目标文件(.abs)。abs文件由oh51转换成标准的hex文件,以供调试器dscope51或tscope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如eprom中。3.2 采用fx2的固件设计3.2.1 固件编程的主要工作固件是fireware的对应中文词,它实际上是单片机的程序文件,其编写语言可以采用c语言或是汇编语言.它的操作方式与硬件联系紧

49、密,包括usb设备的连接usb协议、中断处理等,它不是单纯的软件,而是软件和硬件的结合,开发者需要对端口、中断和硬件结构非常熟悉。固件程序一般放入mcu中,当把设备连接到主机上时,上位机可以发现新设备,然后建立连接。因此,编写固件程序的一个最主要的目的就时让windows可以检测和识别设备。usb固件程序程序由三部分组成:初始化单片机和所有的外围电路;主循环部分,其任务是可以中断的;中断服务程序,其任务是对时间敏感的,必须马上执行。根据usb协议,任何传输都是由主机开始的。单片机作它的前台工作,等待中断。主机首先要发令牌包给usb设备,fx2接收到令牌包后就给单片机发中断。单片机进入中断服务程

50、序,首先读fx2的中断寄存器,判断usb令牌包的类型,然后执行相应的操作。在usb单片机程序中,要完成对各种令牌包的响应,其中比较难处理的是setup包,主要是端口0的编程。单片机与fx2的通信主要是靠单片机给fx2发命令和数据来实现的。fx2的命令字分为三种:初始化命令字、数据流命令字和通用命令字。fx2数据手册给出了各种命令的代码和地址。单片机先给fx2的命令地址发命令,根据不同命令的要求再发送或读出不同的数据。因此,可以将每种命令做成函数,用函数实现各个命令,以后直接调用函数即可。第四章usb数据采集系统的硬件设计系统的模拟开关、a/d转换器均采用传统的设计方法,在此不多做介绍。本章主要

51、介绍usb接口的设计,这是本系统设计的重点部分。4.1 usb接口方案usb接口设计中有三种芯片选择方案:第一种方案是选用设计成标准usb控制器的低层芯片,例如cypress公司的cy7c63xxx系列,这类芯片是完全按照usb协议设计的,另一种方案是采用具备usb通信功能的单片机,例如intel/cypress的8x931, cypress的ez-usb,这些单片机采用开发者熟悉的结构和指令集,处理能力强,构成系统的电路简单,调试方便,是目前常用的一种方案。第三种方案是采用连接到一般微控制器的接口芯片,例如philps的pdiusbd i 1 / 12 , national半导体公司的usb

52、n960x等,它可用一般的单片机开发系统进行开发。另外由于采用一般单片机,熟悉单片机的开发人员可以很快的开始一个项目。根据本系统的设计要求和实际情况,在设计中选择了第一种方案。4.2usb接口的硬件设计4.2.1 ez-usb fx2单片机cy7c68013的特性介绍cypress semiconductor公司的ezusb fx2是世界上第一款集成usb2.0的微处理器,它集成了usb2.0收发器、sie(串行接口引擎)、增强的8051微控制器和可编程的外围接口。fx2这种独创性结构可使数据传输率达到56mbytes/s,即usb2.0允许的最大带宽。在fx2中,智能sie可以硬件处理许多u

53、sb1.1和usb2.0协议,从而减少了开发时间和确保了usb的兼容性。gpif(general programmable interface)和主/从端点fifo(8位或16位数据总线)为ata、utopia、epp、pcmcia和dsp等提供了简单和无缝连接接口。2 ezusb fx2结构    cy7c68013结构图如图1所示。它有三种封装形式:56ssop,100tqfp和128tqfp。cy7c68013集成了以下特性:     usb2.0收发器、sie(串行接口引擎)和增强性8051微处理器;     软件运行:8051程序从内部ram开始运行,可以借助下列几种方式进行程序装载:(1)       通过usb下载;(2)       从eeprom中装载;(3)       通过外部存储器设备。     四个可编程bulk/interrupt/isochron

温馨提示

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

最新文档

评论

0/150

提交评论