USB接口芯片PDIUSBD12与单片机AT89C51通信系统.docx

上传人:小飞机 文档编号:2032943 上传时间:2023-01-02 格式:DOCX 页数:52 大小:210.44KB
返回 下载 相关 举报
USB接口芯片PDIUSBD12与单片机AT89C51通信系统.docx_第1页
第1页 / 共52页
USB接口芯片PDIUSBD12与单片机AT89C51通信系统.docx_第2页
第2页 / 共52页
USB接口芯片PDIUSBD12与单片机AT89C51通信系统.docx_第3页
第3页 / 共52页
USB接口芯片PDIUSBD12与单片机AT89C51通信系统.docx_第4页
第4页 / 共52页
USB接口芯片PDIUSBD12与单片机AT89C51通信系统.docx_第5页
第5页 / 共52页
点击查看更多>>
资源描述

《USB接口芯片PDIUSBD12与单片机AT89C51通信系统.docx》由会员分享,可在线阅读,更多相关《USB接口芯片PDIUSBD12与单片机AT89C51通信系统.docx(52页珍藏版)》请在三一办公上搜索。

1、USB接口芯片PDIUSBD12与单片机AT89C51通信系统目录文摘1英文文摘11 绪论1.1 课题背景1.2 课题的提出1.3 USB简介1.4 主要工作2 USB1.1协议2.1 USB的互连2.2 USB的主机2.2.1 USB主机概述2.2.2 USB驱动(USBD)2.3USB设备2.3.1 USB设备状态2.3.2 通用USB设备操作2.3.3 USB设备请求2.4 USB的物理层2.5 USB数据流3 数据采集系统的固件设计3.1 固件的开发环境3.2 采用PDIUSBD12的固件设计3.2.1 固件要完成的主要工作3.2.2 PDIUSBD12芯片特点3.2.3 PDIUSB

2、D12固件程序的编写3.3 固件的文件结构3.4 固件的编程实现3.4.1 底层函数3.4.2 命令接口3.4.3 中断服务程序ISR.C3.4.4 主循环MAINLOOP.C4 USB设备驱动程序设计4.1 Windows2000驱动程序4.2 WDM驱动程序结构模型4.2.1 USB设备驱动程序层次结构4.2.2设备对象4.2.3标准总线驱动程序和类驱动程序4.2.4 WDM驱动程序的结构4.3 USB驱动的开发环境4.3.1 驱动的开发工具4.3.2 驱动开发环境的安装与设置4.4 驱动程序的实现4.4.1 驱动入口4.4.2数据传输控制5 USB设备应用程序设计5.1 Win32 AP

3、I简介5.2动态链接库5.3 MFC的应用程序开发5.4设备应用程序与WDM的通信5.4.1 Win32应用程序对WDM的通信5.4.2 WDM对Win32应用程序的通信5.5 应用程序的实现6 数据采集系统的硬件设计6.1 硬件系统的结构6.2 接口芯片选择6. 接口硬件设计6.3.1 A/D与单片机接口电路6.3.2 PDIUSBDI2与单片机接口电路1 绪论1.1 课题背景随着数字化的广泛应用,数据采集也越来越重要,传统的外设与主机的通信口一般采用ISA、PCI、C PCI、1394等标准,基于这些接口的产品,安装麻烦,价格昂贵,并受计算机插槽数量、地址中断资源限制,且可扩展性差,USB

4、的出现,很好地解决了以上问题。 USB作为一种新型的串口通信标准,具有较高的传输速率,可扩展性好,采用总线供电,使用灵活。它共有4种传输模式:控制传输、同步传输、中断传输、批量传输,以适应不同设备的需要。信息技术与电子技术的迅猛发展,使得计算机和外围设备也得到飞速发展和应用。过去人们单纯追求计算机与外设之间的传输速度,现在纠错能力和操作安装的简易性也成为人们关注的目标。USB通讯技术的出现,使高传输速度、强纠错能力、易扩展性、方便的即插即用,有机的结合在一起。USB设备需要依据USB协议进行数据的解包与打包,底层硬件设备与操作系统之间需要以驱动程序为桥梁。驱动程序以WDM为模型,以DDK为开发

5、工具,以IRP为消息传播载体,来实现与Windows系统底层核心机制相交互的功能。1.2课题的提出尽管RS232是一种十分成熟且应用广泛的通讯方式,但是随着控制系统的日益复杂,所要采集的量也会越来越多。因此寻求一种高速、安全、方便的通讯形式是十分必要的。USB技术虽然出现的时间并不长,但是由于它的种种优点,被越来越多的厂商和用户所接受,出现了USB打印机、摄像头等产品。尽管目前USB接口的应用主要集中在电脑的周边外设,但是USB产品进入工控领域将是必然的趋势。采用PDIUSBD12芯片和89C51单片机设计的基于USB总线的数据采集系统,具有可靠性高、数据不丢失、抗干扰性强、便于数据传输和处理

6、等优点,可在信号测试、信号采集场合广泛使用。所以本课题的研究是具有一定的现实意义和经济意义的。1.3 USB简介通用串行总线(Universal Serial Bus,简称USB)是康柏、微软、IBM, DEC等公司为了解传统总线的不足推出的一种新型串行总线接口规范, 自1995年在Comdex上亮相以来至今己广泛地为各PC厂家所支持。现在生产的PC机几乎都配备了,USB接口,Microsoft的windows98, NT以及MacOS, Linux, FreeBSD等流行操作系统都增加了对USB的支持。USB的主要特点如下:1. 速度快。 USB 有全速和低速两种方式,主模式为全速模式,速率

7、为12Mbps,从而使一些要求高速数据的外设,如:高速硬盘、摄像头等,都能统一到同一个总线框架下。另外为了适应一些不需要很大吞吐量但是有很高实时性要求的设备,如鼠标、键盘、游戏杆等,USB还提供低速方式,速率为1.5Mbps。如表1-1所示。新推出的USB2.0协议提供最高达480Mbps的数据传输速率可以适应各种不同类型的外设。表1-1 USB使用分类表性能应用特性低速 交互设备10-20kb/s键盘、鼠标、游戏棒低价格、热插拔、易用性中速电话、音频、压缩视频500kb/s-10Mb/sISBN、PBX、POTS低价格、易用性、动态插拔、限定带宽和延迟高速音频、磁盘25-500Mb/s音频、

8、磁盘高带宽、限定延迟、易用性2. 支持热插拔和即插即用。 所有的USB 设备可以随时的插入和拔离系统,USB 主机能够动态的识别设备的状态,并自动给接入的设备分配地址和配置参数,添加、删除设备完全不用关闭计算机,也不必像过去那样需要手动跳线和拨码开关来设置新的外设。3. 易于扩展。USB使用的是一种易于扩展的树状结构,通过使用USB Hub扩展可连接多达127个外设。标准USB电缆长度为3米(低速为5米)。通过Hub或中继器可以使外设距离达到30米。4. 使用灵活。 USB共有4种传输模式:控制传输(control),步传输(synchronization)、中断传输(interrupt)、批

9、量传输(bulk),适应不同设备的需要。5. 能够采用总线供电。 普通使用串口、并口的设备都需要单独的供电系统,而USB设备则不需要,因为USB接口提供了内置电源e USB电源能向低压设备提供最大5V, 500mA 的电源,从而降低了这些设备的成本并提高了性价比。6. 实现成本低。 USB对系统与PC的集成进行了优化,适合于开发低成本的外设。本文设计的基于USB总线的数据采集系统正是充分地利用了USB 总线的上述优点,从而有效地解决了传统数据采集系统的缺陷。很方便地就能够实现低成本、高可靠性、实时的数据采集,适用于对瞬态信号进行采集和处理。1.4主要工作本论文所设计的数据采集系统是在单片机89

10、051控制下进行数据采集,并通过PHILIPS公司的USB接口芯片PDIUSBDI2上传给PC机进行分析、显示和存盘。该系统用传统的USB总线取代了RS232串行总线,通过对USB协议和设备构架的充分理解,对以单片机89C51和USB接口芯片D12为主的数据采集系统进行了硬件设计和软件编程,并在此设计的基础上给出相应的原理图。硬件设计主要解决的是D12与单片机的接口电路的设计。软件设计可分为三部分:一是充分了解D12的主要功能特点,为满足D12在USB上的最大传输速率而编写固件程序,用C51语言编写:二是在充分了解WDM驱动程序的基础上编写USB的设备驱动程序;三是编写出界面友好、具有强大的数

11、据处理和分析能力的应用程序。2 USB1.1协议2.1 USB的互连一个USB系统主要被定义为三个部分: USB的互连; USB的设备; USB的主机。 USB的互连是指USB设备与主机之间进行连接和通信的操作,主要包括以下几方面: 总线的拓扑结构:USB设备与主机之间的各种连接方式; 内部层次关系:根据性能叠置,USB的任务被分配到系统的每一个层次; 数据流模式:描述了数据在系统中通过USB从产生方到使用方的流动方式; USB的调度:USB提供了一个共享的连接。对可以使用的连接进行了调度以支持同步数据传输,并且避免的优先级判别的开销。总线拓朴结构包括四个重要的组成部分。 主机和设备:USB系

12、统的基础组成部分。 物理拓朴结构:描述USB系统中的各组成部分是如何连接起来的。 逻辑拓朴结构:描述USB系统中各种组成部分的地位和作用,以及描述从主机和设备的角度观察到的USB系统。 客户软件层与应用层的关系:描述从客户软件层看到的应用层的情况,以及从应用层看到的客户软件层的情况。USB 系统中的设备与主机的连接方式采用的是星形连接,如图2-1。复合设备设备设备 设备设备设备设备主机HUBHUB根HUB 图21 USB物理总线的拓扑图中的Hub是一类特殊的USB设备,它是一组USB的连接点,主机中有一个被嵌入的Hub叫根Hub(root Hub)。主机通过根Hub提供若干个连接点。为了防止环

13、状连接,采用星形连接来体现层次性,如图4-5。这种连接的形状很像一棵树。 用于提供具体功能的设备叫应用设备。许多不同功能的设备放在一起被看作一个整体,叫包。例如,键盘和轨迹球可以被视作一个整体,在它的内部,提供具体功能的设备被永久地接到Hub上,而这个Hub被接到USB上。所有这些设备及这个Hub被看作一个复合设备,而这个Hub又被看作这个复合设备的内部Hub。在主机看来,这个复合设备和一个带着若干设备的单独Hub是一样的。图中也标出了一个复合设备。总线逻辑拓朴结构。在物理结构上,设备通过Hub连到主机上。但在逻辑上,主机是直接与各个逻辑设备通信的,就好像它们是直接被连到主机上一样。这个逻辑关

14、系如图2-2所示。与之对应的物理结构就是图2-1中的结构。Hub也是逻辑设备,但在图2-2中,为了简化起见,未被画出,虽然USB系统中的工作都是从逻辑角度来看待的,但主机必须对物理结构有个了解。例如,在处理Hub被移去的情况时,当一个Hub被移出,通过它与主机相连的设备也应一起被移去,这是由其物理结构决定的。逻辑设备逻辑设备逻辑设备主机图2-2 USB逻辑总线的拓扑三.客户软件层与应用层的关系 USB系统的物理上、逻辑上的拓朴结构反映了总线的共享性。操纵USB应用设备的客户软件只关心设备上与它相关的接口,客户软件必须通过USB软件编程接口来操纵应用设备。这与另一些总线如PCL,ELSA,PCM

15、UA等不同,这些总线是直接访问内存或I/O的。在运行中,客户软件必须独立于USB上的其它设备。这样,设备和客户软件的设计者就可以只关心该设备与主机硬件的相互作用和主机软件的相互作用的细节问题。图2-3说明了在图2-2的逻辑结构下,一个设备设计者看到的客户软件与相应应用的关系的视图。客户软件应用客户软件应用客户软件应用图2-3客户软件和应用间的关系2.2 USB的主机2.2.1 USB主机概述图2-4展示了USB通信模型之间基本的信息流与互连关系:客户USB系统主机控制器功能部件USB设备USB总线接口逻辑的信息流实际的信息流 图2-4 通信模型层次关系图 由图2-4可见,主机与设备都被划分成不

16、同的层次。主机上垂直的箭头是实际的信息流。设备上对应的接口是基于不同实现的。在主机与设备之间的所有通信最终都是通过USB的电缆进行,然而,在上层的水平层之间存在逻辑的主机-设备信息流。主机上的客户软件和设备功能部件之间的通信是基于实际的应用需求及设备所能提供的能力。客户软件与功能部件之间的透明通信的要求,决定主机和设备下层部件的功能以及它们的界面(interface),图2-5描述了从主机角度看到的它与设备的连接。通道,代表相应层之间连接的抽象USB系统 硬件定义 客户(管理界面) 硬件定义IRPS配置信息USB驱动器主机软件 主机控制器驱动主机控制器SIE通道组(到某一接口)标准通道(到缺省

17、端口地址)USB电缆 图2-5 主机通信图主机在整个USB系统中是唯一的,它包括如下几个层次。 USB总线接口 USB系统(USB System) USB客户(Client) 其中,USB总线接口处理电气及协议层的互连。从互连的角度看,USB设备和USB主机都提供类似的USB总线接口,如串行接口引擎。由于主机在USB系统中的特殊性,USB主机上的总线接口还必须具备主机控制器的功能,主机控制器具有一个内集成的集线器(根集线器)提供与USB电缆的连接。USB系统使用主机控制器来管理主机与USB设备的数据传输。USB系统与主机控制器之间的界面基于主机控制器的硬件特性。USB系统层相对于主机控制器而言

18、,处理的是以客户观点见到的数据传输及客户与设备的交互。这包括附加的USB信息,比如协议头。USB系统还必须管理USB的系统资源,以使得客户的访问成为可能。 USB系统有三个主要组成部份: 主机控制器驱动 USB驱动 主机软件 主机控制器驱动的存在,方便地将各种不同的主机控制器实现映射到USB系统,客户可以不必知道设备到底接在哪个主机控制器上就能同设备进行通信。USB驱动提供了基本的面向客户的主机界面。在HCD与USB之间的接口称为主机控制器驱动接口(Host Controller Driver Interface HCDI)。这层接口不能被客户直接访问,所以也不是由USB具体来完成的。一个典型

19、的HCDI是由支撑各种不同主机控制器的操作系统来定义的。 USBD提供I/O请求包(I/O Request Packets)形式的数据传输,以某一特定通道来传输数据。另外,USBD为它的客户提供一个容易被支配及配置的抽象的设备。作为这种抽象的一部份,USBD拥有标准通道对设备进行一些标准的控制。这标准通道实现了USBD与抽象设备之间的逻辑通信。(见图2-5) 在有些操作系统中,提供了额外的非USB系统软件以支持设备的配置及设备驱动程序的加载。在这样的操作系统中,设备驱动程序应使用提供的主机软件接口而不是直接访问USBDI。客户层描述的是直接与USB设备进行交互所需要的软件包。当所有的设备都已连

20、上系统时,这些客户就可以直接通设备进行通信。一个客户不能直接访问设备的硬件。总而言之,主机可提供如下的功能: 检测USB设备的连接与断开。 管理主机与设备之间的标准控制流。 管理主机与设备之间的数据流。 收集状态及一些活动的统计数字。控制主机控制器与USB设备的电气接口,包括提供有限的能源。2.2.2 USB驱动(USBD) USBD提供了供操作系统组件特别是设备驱动程序访问设备的一组接口。这些操作系统组件只能通过USBD来访问USB。USBD的具体实现基于不同的操作系统。一个USBD可以访问一个或多个HCD,而一个HCD可能与一个或多个主机控制器相连。某些操作系统可能允许对USBD的初始化进

21、行一些设置。从客户的观点来看,与客户进行通信的USBD管理着所有连接着的USB设备。1. USBD概况 USBD的客户直接命令设备或从通道直接输入和输出数据流。USBD为客户提供两组工具。命令工具和通道工具。 命令工具允许客户配置和控制USBD操作同时配置及控制USB设备。命令工具提供了对设备标准通道的所有访问。 通道工具允许USBD客户管理特定设备的数据和控制数据的传输。通道工具不允客户直接访问设备的标准通道。 服务 通道接口 命令接口信息和流通道配置管理设备数据访问总线设备管理能量控制主机控制器驱动主机控制器驱动主机控制器主机控制器图2-6给出了USBD的总体框架。图2-6 USB 驱动结

22、构(1) USBD初始化 具体的USBD初始化工作是与操作系统有关的。当USB系统初始化时,USB的管理信息被创建,其中包括缺省地址设备及它的标准通道。当一个设备连上USB时,它响应特殊的缺省地址,直到他的唯一地址由主机给出。为了让USB系统能与新的设备进行通信,设备在刚连上总线时,设备的却省地址必须是可用的。在设备的初始化期间,设备的缺省地址被修改成一个唯一的地址。(2) USBD通道使用通道是设备与主机的逻辑连结。一个通道由且仅由一个客户所拥有。虽然通道的基本属性不因通道的拥有者而改变,但在两类不同客户所拥有的通道之间还存在一定的差异:标准通道 他们由USBD拥有和管理。其他的通道 它们由

23、USBD的客户拥有和管理。 虽然标准通道经常用于完成一些客户通过命令接口所传递的请求,但是它们不能由客户直接访问的。(3) USBD服务功能 USBD提供如下种类的服务: 通过命令工具配置设备 通过命令工具及通道工具提供传输服务 事件通知 状态报告及错误恢复2. USBD命令工具功能 USBD命令工具允许客户访问设备。通常,这些命令允许客户以读写形式访问某个设备数据及控制部份。客户要做的仅是提供设备的标识码和相关数据缓冲区或空缓冲区指针。 USBD命令传输时并不需要USB设备是已被配置好。USBD提供的设备配置设施大部分使用是用命令传输。下面的是有关命令工具提供的功能:(1)接口状态控制 US

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

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

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

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

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

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

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

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

32、这组相关端结点通信的协议以及接口内各端结点的目的可以作为一个设备类的一部分或者由厂商制定具体定义。 另外,一个配置中的结口可能有备选设置。这些备选设置会重定义相关端结点的数目或特性。如果是这样的话,设备必须支持GetInterface(接口请求)与Set Interface(接口设置)请求,来汇报及选择指定的接口的设备选设置。4. 数据传送 数据可能以四种方式在USB设备端结点与主机之间传送。四种传送方式参见第五章。在不同设置下,一个终端结点可能被用于不同的传输方式,但一旦设置选定,传送方式就选定了。5. 电源管理 USB总线电源是一个有限的资源,在设备标识阶段,主机估测电源的需求。如果电源的

33、需求量超过USB总线所能提供的电量,主机软件则不能选择那个配置。 USB设备应将电源需求量限制在一个单元以下,直到被配置。中止(挂起)的设备,不管是否已经配置过了,应将总线耗电降到第7章定义的标准以下。视接到设备的端口电源负载能力而定,USB设备在配置了以后可从VBus汲取达5个单元的电量。远程唤醒能力参许一个被挂起的USB设备发达信号给处于挂起状态的主机。这个信号会使得主机醒来,处理触发事件。USB设备通过配置描述来向主机汇报其远程唤醒的能力。USB设备的远程唤醒能力应能被禁止的。6. 请求处理 除SetAddress( )请求以外,在安装完成返回ACK信号以后,设备就开始处理请求。在某一状

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

35、阶段返回一个表明错误的STALL PID信号,一般在下一个数据传输返回更好,这样可减少不必要的总线活动。2.3.3 USB设备请求所有的USB设备在“设备的缺省控制通道”处对主机的请求发出响应。这些请求是通过使用控制传输来达到的,请求及请求的参数通过Setup包发向设备,由主机负责设置Setup包内的每个域的值。每个Setup包有8个字节。见表2-2。表2-2 Setup数据包的格式 偏移量 域 大小 值 描述0bmRequestType1位图请求特征:D7: 传输方向0=主机至设备1=设备至主机D6.5: 种类0=标准1=类2=厂商3=保留D4.0: 接受者0=设备1=接口2=端点3=其他4

36、.31=保留1bRequest1值具体请求2wValue2值字长域,根据不同的请求含义改变.4wIndex2索引或偏移字长域,根据不同的请求含义改变.典型用于传送索引或偏移.6wLength2如有数据传送阶段,此为数据字节数.2.4 USB的物理层USB的物理接口包括电气特性和机械特性。USB通过一个四线电缆来传输信号与电源如图2-7所示。图2-7 USB电缆定义其中D+和D-是一对差模的信号线而VBus和GND则提供了5V的电源它可以给一些设备(包括Hub)供电当然要有一定的条件限制。USB1.1提供了两种数据传输率一种是12Mb的高速模式,另一种是1.5Mb的低速模式,这两种模式可以同时存

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

38、,这两个系列是不能互换的。2.5 USB 数据流从逻辑上讲USB数据的传输是通过管道进行的。图2-6描述了USB数据传输的过程。USB系统软件通过缺省管道(与端点0相对应)管理设备,设备驱动程序通过其它的管道来管理设备的功能接口。实际的数据传输过程是这样的:设备驱动程序通过对USBD接口(USB driver interface)的调用发出输入输出请求(IRP I/O Request Packet);USB驱动程序接到请求后,调用HCD接口(host controller driver interface),将IRP转化为USB的传输,一个IRP可以包含一个或多个USB传输;然后HCD将USB

39、传输分解为总线操作,由主控制器以包的形式发出。需要注意的是所有的数据传输都是由主机开始的,任何外设都无权开始一个传输。IRP是由操作系统定义的,而USB传输与总线操作是USB规范定义的。为了进一步说明USB传输,我们引出帧(frame)的概念。帧:USB总线将1ms定义为一帧,每帧以一个SOF包为起始,在这1ms里,USB进行一系列的总线操作。引入帧的概念主要是为了支持与时间有关的总线操作。为了满足不同外设和用户的要求,USB 提供了四种传输方式:控制传输、同步传输、中断传输、批传输。它们在数据格式、传输方向、数据包容量限制、总线访问限制等方面有着各自不同的特征。控制传输(Control Tr

40、ansfer)1. 通常用于配置/命令/状态等情形;2. 其中的设置操作(setup)和状态操作(status)的数据包,具有USB定义的结构,因此控制传输只能通过消息管道进行;3. 支持双向传输; 主机 连接 物理设备接口X应用接口的集合 Client SW管理一个接口 到一个接 口的通道 束 与接口 无 缓冲 没有USB 有关 USB格式 格式 端点0USB逻辑设备端点的集合USB System SW管理设备 到0号端点的 缺省通道USB设备(第9章) USB USB帧格式 接口 的数据 事务 主机控制器 事务 USB帧格式 每个端 USB帧 SIEUSB总线接口 的数据 点的数 结构的

41、据 数据 USBSIE 主机(第10章) USB线路 机械的,通道:两个水平实体之间连接 电气的, 的抽象。 数据传递机制 被传递的数据图2-8 USB数据流4. 对于高速设备允许数据包最大容量为8,16,32或64字节,对于低速设备只有8 字节一种选择;5. 端点不能指定总线访问的频率和占用总线的时间,USB系统软件会做出限制;6. 具有数据传输保证,在必要时可以重试。同步传输(Isochronous Transfer)1. 是一种周期的连续的传输方式,通常用于与时间有密切关系的信息的传输;2. 数据没有USB 定义的结构数据流管道;3. 单向传输,如果一个外设需要双向传输,则必须使用另一个端点;4. 只能用于高速设备,数据包的最大容量可以从0到1023个字节;5. 具有带宽保证,并且保持数据传输的速率恒定,每个同步管道每帧传输

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号