USB通用串行总线_第1页
USB通用串行总线_第2页
USB通用串行总线_第3页
USB通用串行总线_第4页
USB通用串行总线_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

1、-. z第7章USB通用串行总线7.1概述7.1.1 USB开展过程通用串行总线USBUniversal Serial Bus由paq、IBM 、Intel、Microsoft、NEC等公司于1994年联合提出。1996年发布USB1.0标准1998年发布USB1.1标准两种传输速度:1.5Mdbs低速、12Mdbs全速热拔插和即插即用最多可同时连接127台设备1999年发布USB2.0标准1最高传输速度达480Mdbs高速,是USB1.1的40倍 2向下兼容USU1.17.1.2 USB的设计目标及特点设计准则:1易于扩大2协议灵活3支持音频/视频等实时数据的传输4提供价格低廉的标准接口US

2、B的特点:1速度快2设备安装和配置容易3易于扩展4使用灵活5可总线供电6本钱低7.1.3 USB的接口特性 1.USB的输出. 差分驱动,支持半双工方式. 电缆阻抗围: 76.5 103.5. 驱动器输出阻抗匹配电阻:28 44. 所有USB设备的上游端口,按设备的最高速定义。 2.USB的接收. 差分接收7.1.4 USB信号的定义包开场数据线从闲置状态跳变到K态包完毕SE0态保持2位的传输时间后之后,保持1位传输时间的J态。SE0态保持2位的传输时间后之后,保持1位传输时间的J态。断开SE0 保持SE0态持续2.5us以上SE0 保持SE0态持续2.5us以上连接闲置状态持续时间2ms闲置

3、状态持续时间2.5us复位D+和D-2.8v的持续时间 10msD+和D-0.3v的持续时间 2.5us7.1.5 数据的编码与解码NRZI的编码方法不需独立的时钟信号和数据一起发送,电平跳变代表0,没有电平跳变代表1。在数据被编码前,在数据流中每6个连续的1后插入1个0,从而强迫NRZI码发生变化,接收端必须去掉这个插入的0。 位填充和NRZI编码如果接收端连续接收到7个逻辑1,则认为发生了位填充错误。7.2USB系统构造7.2.1 USB总线的拓扑构造. 阶梯式星型拓扑构造HD DDDDHOST层1层2层3层4USB的物理连接 USB的逻辑连接 . 管道:HOST软件与USB设备端口间的数

4、据传输通道。. 一个USB设备可有多个管道;设备的一个端口可建立一个输入管道和一个输出管道。. 各管道之间相互独立。7.2.2 USB主机一个USB系统只有一个主机,主机的USB接口称为USB控制器。USB控制器无论对主机还是USB设备,都必须具备如下的主要功能:1. 帧产生USB系统采用帧同步传输。. 控制器将总线时间化分为帧,每帧持续时间:1ms. 每1ms都以SOFStart Of-Frame令牌开场,标识新的一帧开场。在SOF之后,总线处于工作状态,主机与USB设备开场传输数据,传输完成,进入帧完毕间隔区EOF,总线处于空闲状态。等待下一帧的开场。. SOF以播送的方式,发到所有的全速

5、设备,每隔1ms发送一次。. 在帧完毕间隔区EOF间,所有的传输都被制止或暂停。. 高速微帧的持续时间为125us,每1ms可产生8个微帧SOF令牌。 EOF间隔 SOF SOF SOF 帧N-1 帧 N 帧 N+1 1ms 1ms 125us2. 传输过失控制. 超时错。目标端口没有反响。. 协议错。位插入错出现连续7个1,无效握手包,错误的包标志等。. 数据丧失错或无效传输错。传输时间超过EOF1ms、CRC校验等对于批传输、命令传输和中断传输,上述各类型的错误出现3次后,终止传输。同步传输则不受此限制。3. 状态处理控制器负责管理和报告USB系统的各种状态,状态处理器负责对状态信息做处理

6、,使主机控制器与设备之间的状态保持一致。4. 串行化与反串行化. 输出数据。主机控制器将协议信息与原始数据信息转换为串行数据流。. 输入数据。主机控制器将串行数据流复原为协议信息与原始数据信息。. 串行接口引擎STE负责传输过程中的串行化与反串行化工作。5. 数据处理. 主机控制器负责处理主机输入/输出数据的请求。. 数据传输的格式取决于系统的具体实现,并符合USB协议的要求。 站在用户的角度,主机控制器具有的功能:. 检测USB设备的插入和拔出。. 管理主机与设备的数据流。. 对设备进展必要的控制。. 收集/处理各种状态信息。. 给设备供电。7.2.3 USB设备USB设备分为两类:USB集

7、线器HUB、USB设备1. USB集线器. 上游端口. 下游端口. USB 集线器由控制器和中继器组成。 . 控制器负责与主机接口,接收主机发来的命令和数据。 . 中继器负责上游端口与下游端口之间的联接状态。可由硬件产生复位、休眠和恢复信号。2. USB功能设备. 具备*一特定应用功能的设备,通过USB接口连接USB主机并收/发数据和控制信息。. 每一设备都必须由自己的配置信息对设备功能的描述、设备的属性、资源要求等,主机根据设备提供的配置信息对设备进展配置和定位驱动软件。. 端点。USB主机与USB设备的逻辑连接点。. 接口。一组相关的端点组成一个接口。. 配置。一种配置,可以包含多个接口。

8、而一个功能设备可以有多种配置。. 设备插入时,USB主机通过默认端口读取设备的描述符,选取一种配置枚举。7.2.4 USB的通信模型USB设备. USB 总线接口层底层物理接口,通过电缆与USB主机相连,是USB设备收/发数据的接口。. USB 设备层是USB协议栈的主体。它处理总线接口与不同端点之间的数据。实现USB的各种根本行为。. 功能层实现USB设备的特定功能。USB主机. USB主控制器与根集线器集成在PC机的主板上,是USB主机与USB设备之间的物理连接点,实现USB主机与USB设备之间的数据收/发。主控制器负责数据的转换、存储和传输。根HUB提供USB的接口,其下游端口可直接与U

9、SB设备相连。根集线器控制USB端口的电源,激活和制止端口,识别与端口相连的设备,设置和报告与每个端口相连的状态事件. USB系统软件主要由USB核心驱动程序USBD与USB主控制器驱动程序HCD组成。USBD被捆绑在操作系统之中,负责解释来自用户软件USB设备类驱动程序的命令,并将其分解为一系列的USB事务后。发送给与USB主控制器。HCD负责最底层的驱动任务,控制和管理硬件,负责将核心驱动程序传送来的USB事务传给主控制器芯片。. 客户软件与USB设备类驱动程序USB设备类驱动程序USB用户驱动软件,将用户的USB命令发送给USB系统软件,同时初始化存缓冲区,用于存储所有USB通信中的数据

10、。客户软件是用户与USB系统之间的一个界面,主要完成用户对USB的控制,以及实时地进展一些数据交换。对于USB系统而言,客户软件不是必需的。7.3USB的数据模型7.3.1 端点EndPoint. 端点在USB设备中唯一可寻址的局部。在USB系统中,每个端点都有唯一的地址由设备地址和端点号确定。. 在硬件上,端点是一个有一定深度的FIFO数据缓冲区。. 一个USB设备有一组相互独立的端点,主机通过端点与USB设备进行通信。. 端点的根本特性:端点号、通信方向、带宽和端点支持的包的大小等。. 端点0用于控制传输系统默认,其他端点必须经系统配置后,才能使用。7.3.2 管道Pipe. 系统配置后,

11、主机与端点之间的数据传输通道成为称为管道。. 管道表达了主机与设备端点之间的数据传输能力。数据流管道. 通过流管道的数据USB没有定义格式。按先进先出的原则单向流经管道。. 流管道支持同步传输、中断传输和批传输。消息管道. 消息管道要求通过它的信息具有规定的格式。. 消息管道可以是单向的,业可以是双向的控制管道。7.3.3 USB的通信数据流IRPUSB格式 帧格式拆帧7.4 USB协议层 USB总线传输以包为根本单位,每个USB包由多个字段域组成。所有数据发送时都从低位开场向高位发送7.4.1 包字段格式1. 同步字段8位 8位 7位 4位 5位SYNC PID ADDRENDP CRC.

12、不同类型的USB包都以同步字段开场。. 同步字段编码10000000b,按照发送规则实际发送顺序为00000001b2标识字段. PID指明包的类型。 LSB MSBPID0PID1PID2PID3PID0*PID1*PID2*PID3* PID PID的反码3地址字段 8位 8位 7位 4位 5位SYNC PID ADDRENDP CRCADDR0ADDR1ADDR2ADDR3ADDR4ADDR5ADDR6Endp0Endp1Endp2Endp3. 端口字段只对IN、OUT、SETUP令牌PID有效。. 功能设备除端口0外,其他端口的多少由设备决定。. 低速设备最多允许由3个端口,高速设备最

13、多允许有16个端口。4帧号字段 8位 8位 11位 5位SYNC PIDFRAME NUMBERCRC. 帧号计数到达7FFH时清05数据字段 LSB MSBD7D0D1D2D3D4D5D6D7D06CRC校验字段. 对令牌包和数据包中非PID字段进展校验。. 令牌包的CRC校验字为5位. 数据包的CRC校验字为16位7.4.2 包格式包的一般格式: 8位 8位 n位 5位或16位SYNCPID包特定信息CRCSYNC:同步序列,数据为00000001。PID: 包标识,发送从低位到高位。1令牌包 8位 8位 7位 4位 5位SYNC PID ADDRENDP CRC2帧开场包SOF 8位 8

14、位 11位 5位SYNC PIDSOFFRAME NUMBERCRC3数据包 8位 8位 01023位 16位 SYNC PID DATA CRC USB1.1数据包格式 8位 8位 08192位 16位 SYNC PID DATA CRCUSB2.0数据包格式4握手包8位 8位 SYNC PID 握手包的格式确认包ACK. PID被正确接收. 没有发生数据位错误. 没有发生数据字段的CRC校验错误等。ACK一般由接收数据的一方发出。无效包NAK. 主机发出OUT命令后,设备无法接收数据. 接到主机IN命令后,设备没有数据发给主机NAK只能由设备发出。错误包STALL. 设备无法发送数据. 设

15、备无法接收数据. 不支持*一控制管道的命令。STALL只能由设备发出。7.4.3 事务与传输类型USB的传输Transfer,是USB面向用户的、最高级的数据构造。USB定义了四种数据传输的类型:控制传输、中断传输、块批量传输和同步传输。1事务与传输类型Transaction每个传输由多个事务组成。每个事务又由多个包组成。事务分为3种类型:IN、OUT和SETUP,任何一种传输均由这3种类型的事务组成。事务事务事务令牌包数据包握手包SYNC PID 附加信息 CRC传输传输传输控制传输控制传输由三个阶段组成,其中每一阶段都包含由一笔事务:. 设置阶段空闲SETUPDATA0 ACK令牌数据握手

16、空闲DATA0包为一特定构造的数据,8个字节长度,包含主机发给设备的各种命令,如果命令需要设备读写数据则在数据阶段换数据。否则不进入下一阶段。. 可选数据阶段空闲 INDATA1/DATA0NAKSTALLACK OUTDATA1/DATA0ACKNAKSTALL令牌数据空闲空闲数据错误数据错误握手. 状态阶段控制传输的特点:. 使用系统默认的管道端点0. 双向传输。. 数据包的有效负载:低速设备为8字节,全速设备8,16,32和64个字节可选。. USB在每一帧的时间,都分配10%的带宽给控制传输。块传输. 单向传输。. 全速设备才能使用块批量传输方式。. 数据包的有效负载:8,16,32和

17、64个字节可选。. 当数据事务的数据包小于有效负载时,认为该包为最后一个数据事务。. 带宽分配是逢空插入,系统不会为块批量传输预留带宽。 INDATA0/DATA1NAKSTALLACK OUTDATA0/DATA1ACKNAKSTALL令牌数据空闲空闲数据错误数据错误空闲握手 丧失ACK的处理 00 1 0 1 11 00 0 10 1 11 0 0DATA0DATA0DATA1ACKACKACK7.4.6 中断传输. 单向传输。. 主机对按中断传输配置的端口,进展周期性的轮询。. 按中断传输方式配置的端口,要指定轮询周期的大小和有效数据负载。. 全速设备:周期在1 255ms,有效数据负载

18、在8,16,32和64个字节可选。 低速设备:周期在10 255ms,有效数据负载8个字节。. 带宽不大于总带宽的90%。. 传输构造与块传输一样。7.4.7 同步传输. 单向传输。. 对数据的准确性不要求,且数据量大。. 没有握手阶段,不存在错误重传。. 最大有效数据负载为11023个字节。. 低速设备不支持。 OUTDATA0 IN令牌数据空闲DATA0空闲7.5USB传输管理7.5.1 USB信息转换过程客户软件USB驱动器主机控制器 驱动器 事务表事务i .事务i+n主机控制器USBUSBD界面HCD界面IRP传输事务包1客户软件. 客户将自己的I/O传输请求IRP通过OS指定的界面发

19、给USB驱动器接口。. 如果客户提交的IRP完成,应用层软件就可在数据缓冲区中取得所要的数据。2USB驱动器USBD. USBD确认OS的设备设置请求,并为该请求建立一个相应类型的通道。. 将IRP分割成假设干的事务。 3主机控制驱动器HCD. 跟踪IRP,确保USB的带宽和帧的最大时间不突破。. HCD将事务参加事务表4事务表. 只能被HCD和HC5主机控制器HC. 事务表,按帧组织数据打包并通过SIE传输数据。. 控制与管理事务的状态,并以报告的形式传递给HCD。7.5.2事务的跟踪. HC对包进展跟踪。. IRP对事务进展跟踪。. HC可以自由选择如何传输事务。事务0事务1事务2事务0事

20、务1事务2IRP1IRP2帧1帧2令牌 1-0令牌2-0令牌(2-1)令牌(1-1)7.5.3低速事务. 所有传输到低速设备的下行包都需要前同步信号PRE开场。. 低速下行包的SYNC和PRE以全速发送。. PRE只对HUB有效。. 主机在PID之后,在低速数据包传输之前要延迟4个全速位时间。在此时间,HUB为低速传输做好准备。. 低速HUB的端口缓冲区在下行低速包完毕时EOP关闭,直到下一个PRE出现后,再次翻开。 令牌:SYNCPIDPREHUB setupSYNCPIDADDRENDPEOP 数据:SYNCPIDPREHUB setupSYNCPIDDATAEOP 握手:SYNCPIDPREHUB setupSYNCP

温馨提示

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

评论

0/150

提交评论