毕业设计USB接口设计Word格式文档下载.docx

上传人:b****6 文档编号:21644416 上传时间:2023-01-31 格式:DOCX 页数:33 大小:38.81KB
下载 相关 举报
毕业设计USB接口设计Word格式文档下载.docx_第1页
第1页 / 共33页
毕业设计USB接口设计Word格式文档下载.docx_第2页
第2页 / 共33页
毕业设计USB接口设计Word格式文档下载.docx_第3页
第3页 / 共33页
毕业设计USB接口设计Word格式文档下载.docx_第4页
第4页 / 共33页
毕业设计USB接口设计Word格式文档下载.docx_第5页
第5页 / 共33页
点击查看更多>>
下载资源
资源描述

毕业设计USB接口设计Word格式文档下载.docx

《毕业设计USB接口设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《毕业设计USB接口设计Word格式文档下载.docx(33页珍藏版)》请在冰豆网上搜索。

毕业设计USB接口设计Word格式文档下载.docx

此USB手写系统采用汉王公司的传感器获得笔画信息传给68HC05JB4

经过整理后通过USB总线发送到PC再由自行编写的驱动程序接收最终转给汉

王公司的文字识别软件识别

第二章USB总线协议

USBUniversalSerialBus总线协议是以Intel为主并有CompaqMicrosoftIBMDECNorthernTelecom以及日本NEC等共七家公司共同制定的串行接口标

准1994年11月制定了第一个草案1996年2月公布了USB规范版本1.0USB可把

多达127个外设同时联到你的系统上所有的外设通过协议来共享USB的带宽其

12Mbps的带宽对于键盘鼠标等低中速外设是完全足够的注在1999年2月发

布的USB规范版本2.0草案中已建议将12Mbps的带宽提升到120-240MbpsUSB

允许外设在主机和其它外设工作时进行连接配置使用及移除即所谓的即插

即用Plug&

Play同时USB总线的应用可以清除PC上过多的I/O端口而以一个

串行通道取代使PC与外设之间的连接更容易

以下简单介绍USB总线的结构原理以使读者对USB有大致的了解如果需

要了解其协议细节请查阅USB总线规范这可以从www.usb.org下载

2.1总线拓扑结构

USB总线的物理连接是一种分层的菊花链结构集线器(hub)是每个星形结构

的中心PC机就是主机和根Hub用户可以将外设或附加的Hub与之相连这些附

加的Hub可以连接另外的外设以及下层HubUSB支持最多5个Hub层以及127个外

设图2.1描述了USB的物理拓扑结构从中可以看出每一段的连接都是点对点的

图2.1USB总线拓扑

2.2USB的物理层

USB的物理接口包括电气特性和机械特性

USB通过一个四线电缆来传输信号与电源如图2.2所示

图2.2USB电缆定义

其中D+和D-是一对差模的信号线而VBus和GND则提供了5V的电源它可

以给一些设备(包括Hub)供电当然要有一定的条件限制

USB提供了两种数据传输率一种是12Mb的高速(fullspeed)模式另一种是

1.5Mb的低速模式这两种模式可以同时存在于一个USB系统中而引入低速模式

主要是为了降低要求不高的设备的成本比如鼠标键盘等等

USB信号线在高速模式下必须使用带有屏蔽的双绞线而且最长不能超过5m

而在低速模式时中可以使用不带屏蔽或不是双绞的线但最长不能超过3m这主

要是由于信号衰减的限制为了提供信号电压保证以及与终端负载相匹配在

电缆的每一端都使用了不平衡的终端负载这种终端负载也保证了能够检测外设

与端口的连接或分离并且可以区分高速与低速设备

所有的设备都有上行的接口上行和下行的接头是不能互换的这保证了不会

有非法的连接出现插头与插座有两个系列分别为A和B系列A用于基本固定

的外围设备而系列B用于经常拔插的设备这两个系列是不能互换的

2.3USB设备

USB设备包括Hub和功能设备而功能设备又可以细分为定位设备字符设备

等等为了进一步叙述我们给出端点(endpoint)和管道(pipe)的概念

端点每一个USB设备在主机看来就是一个端点的集合主机只能通过端点

与设备进行通讯以使用设备的功能每个端点实际上就是一个一定大小的数据

缓冲区这些端点在设备出厂时就已定义好在USB系统中每一个端点都有唯

一的地址这是由设备地址和端点号给出的每个端点都有一定的特性其中包

括传输方式总线访问频率带宽端点号数据包的最大容量等等端点必

须在设备配置后才能生效(端点0除外)

端点0通常为控制端点用于设备初始化参数等端点12等一般用作数据端

点存放主机与设备间往来的数据

管道一个USB管道是驱动程序的一个数据缓冲区与一个外设端点的连接

它代表了一种在两者之间移动数据的能力一旦设备被配置管道就存在了管

道有两种类型数据流管道其中的数据没有USB定义的结构与消息管道其

中的数据必须有USB定义的结构管道只是一个逻辑上的概念

所有的设备必须支持端点0以作为设备的控制管道通过控制管道可以获取完

全描述USB设备的信息包括设备类型电源管理配置端点描述等等只

要设备连接到USB上并且上电端点0就可以被访问与之对应的控制管道就存在

一个USB设备可以分为三个层图2.3最底层是总线接口用来发送与接收

包中间层处理总线接口与不同的端点之间的数据流通一个端点是数据最终的

使用者或提供者它可以看作数据的源或接收端最上层就是USB设备所提供的

功能比如鼠标或键盘等

实际数据流

Logicalcommunicationsflow

逻辑数据流

图2.3USB设备结构层次

2.3.1Hub

Hub在USB结构中是一个关键它提供了附加的USB节点这些节点被称为端

口Hub可以检测出每一个下行端口的状态并且可以给下端的设备提供电源图

2.4是一个典型的Hub

图2.4典型的USB集线器Hub

2.3.2即插即用

USB设备可以即插即用但在可以使用之前必须对设备进行配置一旦设备

连接到某一个USB的节点上USB就会产生一系列的操作来完成对设备的配置

这种操作被称为总线枚举过程

1.设备所连接的Hub检测出端口上有设备连接通过状态变化管道向主机报告

2.主机通过询问Hub以获取确切的信息

3.主机这时知道设备连接到哪个端口上于是向这个端口发出复位命令

4.Hub发出的复位信号结束后端口被打开Hub向设备提供100mA的电源

这时设备上电所有的寄存器复位并且以缺省地址0以及端点0响应命令

5.主机通过缺省地址与端点0进行通讯赋予设备一个独一的地址并且读取

设备的配置信息

6.最后主机对设备进行配置,该设备就可以使用了

当该设备被移走时Hub依然要报告主机并且关闭端口一旦主机接到设备

移走的报告就会改写当前结构信息

2.3.3设备的电源

USB设备的电源可以由USB总线供给也可以自备电源一个USB设备可以具

有这两种供电方式但同一时刻只能由一种方式供电这两种供电方式是可以切

换的

2.3.4设备的挂起

为了节电当设备在指定的时间内没有总线传输USB设备自动进入挂起状态

如果设备所接的Hub的端口被禁止了设备也将进入挂起状态(称之为选择挂起)

当然主机也可以进入挂起状态

USB设备当总线活动时就会离开挂起状态一个设备也可以通过电信号来远

程唤醒进入挂起状态的主机这个能力是可选的如果一个设备具有这个能力

主机有能力禁止或允许使用这种能力

2.4USB主机

USB主机在USB系统中处于中心地位并且对USB及其连接的设备有着特殊的

责任主机控制着所有对USB的访问一个外设只有主机允许才有权力访问总线

主机同时也监测着USB的结构

USB主机包括三层如图2.5设备驱动程序USB系统软件USB主控制器

(主机的总线接口)另外还有两个软件接口USB驱动USBD接口主机控

制驱动(HCD)接口

ClientSWUSBHostControllerHostUSBSystemSWActualcommunicationsflow

图2.5USB主机结构层次

2.5USB数据流

图2.6描述了USB数据传输的过程

SIESIEHostControllerUSBBusInterfaceUSBBusInterfaceUSBSystemSWmanagesdevicesUSBLogicalDeviceacollectionofendpointsInterconnectPhysicalDeviceHostUSBWireBuffersTransfersTransactionsDataPerEndpointInterfaceSpecificFunctionacollectionofinterfacesDefaultPipetoEndpointZeroPipeBundletoaninterfacePipe,representsconnectionabstraction

betweentwohorizontalentitiesDatatransportmechanism(

USB-relevantformatoftransporteddataNoUSBFormatUSBFramedDataUSBFramedDataUSBFramedDataNoUSBFormatInterfacexEndpointZeroClientSWmanagesaninterfaceMechanical,

Electrical,

ProtocolUSBDevice

USBHost

图2.6USB数据流

从逻辑上讲USB数据的传输是通过管道进行的USB系统软件通过缺省管道

(与端点0相对应)管理设备设备驱动程序通过其它的管道来管理设备的功能接口

实际的数据传输过程是这样的设备驱动程序通过对USBD接口(USBdriver

interface)的调用发出输入输出请求(IRPI/ORequestPacket)USB驱动程序接到请

求后调用HCD接口(hostcontrollerdriverinterface)将IRP转化为USB的传输

(transfer)一个IRP可以包含一个或多个USB传输;

然后HCD将USB传输分解为总

线操作(transaction)由主控制器以包(packet)的形式发出需要注意的是所有的

数据传输都是由主机开始的任何外设都无权开始一个传输

IRP是由操作系统定义的而USB传输与总线操作是USB规范定义的为了进

一步说明USB传输我们引出帧frame的概念

帧USB总线将1ms定义为一帧每帧以一个SOF包为起始在这1ms里USB

进行一系列的总线操作引入帧的概念主要是为了支持与时间有关的总线操作

为了满足不同外设和用户的要求USB提供了四种传输方式控制传输同

步传输中断传输批传输它们在数据格式传输方向数据包容量限制总

线访问限制等方面有着各自不同的特征:

控制传输(ControlTransfer

1通常用于配置/命令/状态等情形

2其中的设置操作setup和状态操作status的数据包具有USB

定义的结构因此控制传输只能通过消息管道进行

3支持双向传输

4对于高速设备允许数据包最大容量为81632或64字节对

于低速设备只有8字节一种选择

5端点不能指定总线访问的频率和占用总线的时间USB系统软件

会做出限制

6具有数据传输保证在必要时可以重试

同步传输(IsochronousTransfer)

1是一种周期的连续的传输方式通常用于与时间有密切关系的

信息的传输

2数据没有USB定义的结构数据流管道

3单向传输如果一个外设需要双向传输则必须使用另一个端点

4只能用于高速设备数据包的最大容量可以从0到1023个字节

5具有带宽保证并且保持数据传输的速率恒定每个同步管道每

帧传输一个数据包

6没有数据重发机制要求具有一定的容错性

7与中断方式一起占用总线的时间不得超过一帧的90%

中断传输(InterruptTransfer)

1用于非周期的自然发生的数据量很小的信息的传输如键盘

鼠标等

3只有输入这一种传输方式即外设到主机

4对于高速设备允许数据包最大容量为小于或等于64字节对于

低速设备只能小于或等于8字节

5具有最大服务周期保证即在规定时间内保证有一次数据传输

6与同步方式一起占用总线的时间不得超过一帧的90%

7具有数据传输保证在必要时可以重试

批传输(BulkTransfer)

1用于大量的对时间没有要求的数据传输

4只能用于高速设备允许数据包最大容量为81632或64字节

5没有带宽的保证只要有总线空闲就允许传输数据优先级小

于控制传输

6具有数据传输保证在必要时可以重试,以保证数据的准确性

图2.7描述了输入输出请求IRP传输transfer与操作transaction之

间的关系数据传输的具体格式详见2.6.3

DataFlowTypesControlTransferInterruptTransferIsochronousTransferBulkTransferAcontroltransferisanOUTSetuptransactionfollowedbymultipleINorOUTDatatransactionsfollowedbyone“oppositeofdatadirection”StatusTransaction.

OneormoreINDataTransactions.

OneormoreIN/OUTDataTransactions.

IRPTransactionTransactionTransactionAlltransfersarecomposedofoneormoretransactions.AndanIRPcorrespondstooneormoretransfers.

IRPSetupTransactionDataTransactionIRPINTransactionINTransactionIRPTransactionTransactionTransactionIRPTransactionTransactionTransactionStatusTransactionAdditionalControlTransfers

图2.7USB数据传输

2.6USB总线协议

所有总线操作都可以归结为三种包的传输任何操作都是从主机开始的主机

以预先排好的时序发出一个描述操作类型方向外设地址以及端点号(这将在

以下部分给予解释)的包我们称之为令牌包(TokenPacket)然后在令牌中指定的

数据发送者发出一个数据包或者指出它没有数据可以传输而数据的目的地一般

要以一个确认包(HandshakePacket)作出响应以表明传输是否成功

2.6.1域的类型

同步域(SYNCfield)所有的包都起始于SYNC域它被用于本地时钟与输入

信号的同步并且在长度上定义为8位SYNC的最后两位作为一个记号表明PID域

(标识域)的开始在以后的叙述中SYNC域将被省去

标识域(PacketIdentifierField)对于每个包PID都是紧跟着SYNC的PID

指明了包的类型及其格式主机和所有的外设都必须对接收到的PID域进行解码

如果出现错误或者解码为未定义的值那么这个包就会被接收者忽略如果外设

接收到一个PID它所指明的操作类型或者方向不被支持外设将不作出响应

地址域(AddressField)外设端点都是由地址域指明的它包括两个子域

外设地址和外设端点外设必须解读这两个域其中有任何一个不匹配这个令

牌就会被忽略

外设地址域(ADDR)指定了外设它根据PID所说明的令牌的类型指明了外

设是数据包的发送者或接收者ADDR共6位因此最多可以有127个地址一旦外

设被复位或上电外设的地址被缺省为0这时必须在主机枚举过程中被赋予一个

独一的地址而0地址只能用于缺省值而不能分配作一般的地址

端点域(ENDP)有4位它使设备可以拥有几个子通道所有的设备必须支持一

个控制端点0(endpoint0)低速的设备最多支持2个端点0和一个附加端点高速

设备可以支持最多16个端点

帧号域(FrameNumberField)这是一个11位的域指明了目前帧的排号每

过一帧(1ms)这个域的值加1到达最大值XFF后返回0这个域只存在于每帧开始

时的SOF令牌中SOF令牌在下面将详细介绍

数据域(DataField):

范围是01023字节而且必须是整数个字节

CRC校验包括令牌校验和数据校验

2.6.2包的类型

令牌包(TokenPacked)

其中包括IN(输入)OUT(输出)SETUP(设置)和SOF(StartofFrame帧

起始)四种类型其中INOUTSETUP的格式如图2.8所示

ADDRPID8bits7bitsENDP4bitsCRC55bits

图2.8INOUTSETUP数据格式

对于OUT和SETUP来说ADDR和ENDP中所指明的端点将接收到主机发出的

数据包而对IN来说所指定的端点将输出一个数据包

Token和SOF在三个字节的时间内以一个EOP(EndofPacket)结束如果一个包

被解码为Token包但是并没有在3个字节时间内以EOP结束它就会被看作非法或被

忽略

对于SOF包它的格式如图2.9所示主机以一定的速率(1ms0.05一次)发送

SOF包SOF不引起任何操作

FrameNumberPID8bits11bitsCRC55bits

图2.9SOF数据格式

数据包包括Data0和Data1两种类型这两种包的定义是为了支持数据触发

同步数据包包含了PIDDATA和CRC三个域图2.10

PIDCRC1616bitsDATA0-1023bytes8bits

图2.10DATA数据格式

应答包(HandshakePacket)仅包含一个PID域图2.11Handshake用来报

告数据传输的状态只有支持流控制的传输类型控制中断和批传输才能返

回Handshake

PID8bits

图2.11PID数据格式

Handshake包有三种类型

(1)确认包ACK表明数据接收成功

(2)无效包NAK指出设备暂时不能传送或接收数据但无需主机介入可以

解释成设备忙

(3)出错包STALL指出设备不能传送或接收数据但需要主机介入才能恢复

NAK和STALL不能由主机发出

特殊包Special:

PID名称为PREpreamble,用于低速操作的情形详见

6.5

2.6.3总线操作的格式

批操作bulktransaction:

批操作包括令牌数据应答三个阶段如图2.12所示对于输入操作如

果设备不能返回数据那么必须发出NAK或STALL包对于输出如果设备不

能接收数据也要返回NAK或STALL

TokenDataFunctionHostINOUTIdleDATA0/

DATA1ACKDATA0/

DATA1IdleACKNAKSTALLIdleSTALLNAK

图2.12批操作流程

图2.13描述了批操作的读写过程以及序列位(sequencebit)和数据包PID的使

用详见2.6.3

OUT(0)OUT(0/1)

IN(0)IN

(1)IN(0/1)

DATA1...

...

DATA0DATA0DATA1DATA0/1DATA0/1OUT

(1)BulkWriteBulkRead

图2.13批操作读写过程

控制操作(controltransaction):

控制操作controltransfer主要包括两个操作阶段transactionstage:

设置

和状态图2.14给出了设置操作的细节如果数据没有正确接收那么设备就会

忽略它而且不返回应答包

FunctionHostIdleDATA0ACK

SETUPIdleTokenDataHandshake

图2.14控制操作流程

下面是控制操作的详细描述图2.15其中我们要注意数据包PID的使用

SETUP(0)OUT

(1)OUT(0/1)

IN(0)IN(0/1)

SetupStageDataStageControlWrite

StatusStageDATA0DATA0...

DATA1DATA1DATA1IN

(1)

OUT

(1)

DATA0DATA0/1DATA0/1OUT(0)

IN

(1)ControlReadDATA0DATA1SETUP(0)

IN

(1)No-dataControlDATA0DATA1SETUP(0)

SetupStage

StatusStage

图2.15控制操作读写过程

中断操作(interrupttransaction):

中断操作只有输入这一个方向具体格式与批操作的输入情形类似图2.16

DeviceHostTokenHandshakeIdleDataINIdleACKDATA0/

DATA1NAKId

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

当前位置:首页 > 教学研究 > 教学计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1