U盘工作原理及维修方法Word下载.docx

上传人:b****7 文档编号:22742798 上传时间:2023-02-05 格式:DOCX 页数:31 大小:37.12KB
下载 相关 举报
U盘工作原理及维修方法Word下载.docx_第1页
第1页 / 共31页
U盘工作原理及维修方法Word下载.docx_第2页
第2页 / 共31页
U盘工作原理及维修方法Word下载.docx_第3页
第3页 / 共31页
U盘工作原理及维修方法Word下载.docx_第4页
第4页 / 共31页
U盘工作原理及维修方法Word下载.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

U盘工作原理及维修方法Word下载.docx

《U盘工作原理及维修方法Word下载.docx》由会员分享,可在线阅读,更多相关《U盘工作原理及维修方法Word下载.docx(31页珍藏版)》请在冰豆网上搜索。

U盘工作原理及维修方法Word下载.docx

主要是指USB总线上的传输方法与存储介质的操作命令。

  海量存储设备只支持一个接口,即数据接口,此接口有三个端点Bulkinput,Bulkoutput,中断端点

  这种设备的接口采用SCSI-2的直接存取设备协议,USB设备上的介质使用与SCSI-2以相同的逻辑块方式寻址

  二、Bulk-Only传输协议

  当一个U盘插入主机以后,主机会要求USB设备传回它们的描述符,当主机得到这些描述符后,即完成了设备的配置。

识别出USB设备是一个支持Bulk-Only传输协议的海量存储设备。

这时应可进行Bulk-Only传输方式。

在此方式下USB与设备之间的数据传输都是通过Bulk-In和Bulk-Out来实现的。

  在这种传输方式下,有三种类型数据在USB和设备传送,它们是命令块包(CBW),命令执行状态包(CSW)和普通数据包。

CBW是主机发往设备的命令。

格式如下:

  其中dCBWSignature的值为43425355h,表示当前发送的是一个CBW。

  DCBWTag:

以后再讲。

  DCBWDataTransferLength:

表示这次CBW要传送数据长度。

  BmCBWFlags:

表示本次CBW是读数据还是写数所

  BBWCBLength:

表示命令的长度。

  CBWCB:

表示本次命令内容。

也即是SCSI命令。

  当设备从主机收到CBW块以后,它会把SCSI命令从CBW中分离出来,然后根据要求执行,执行的结果又以CSW的形式发给主机。

  CSW的格式如下:

  其中dCSWSignature的值为53425355h,表示当前发送的是一个CSW。

  DCSWTag:

必须和CBW中dCBWTag一样。

  DCSWDataResidue:

还要传送的数据。

  BCSWStatue:

命令执行状态,命令正确执行时,为0。

  三、SCSI命令集

  在Bulk-Only的命令块包(CBW)中,有一段CBECB内容,它就是SCSI命令块描述符。

其内容如下

  OperationCode:

是SCSI命令操作代码。

  LogicalBlock

  Address:

逻辑块地址,对U盘而言应是扇区。

前面已经讲过:

通用海量存储设备是一个基于块/扇区存储的设备,因此在SCSI中要提供这个参数是很显然的。

  transferlength:

为要传送的扇区数

  SCSI中直接存取类型的存储介质的传输命令有很多,如:

  INQUIRY:

其操作码为12H

  TestUnitReady:

其操作码为00H

  FormatUnit:

其操作码为04H

  .......

  这里以INQUIRY命令为例:

  INQUIRY命令描述符如下:

  INQUIRY的结果是

  至于其他SCSI命令,请用户查阅相关文档。

  USB主机:

硬件与软件

  USB的互连支持数据在USB主机与USB设备之间的流动。

这一章主要讲述为了简化主机上的客户软件(Softwareclient)与设备的功能部件(function)之间的通信而必须的主机接口(hostinterface)。

在本章中所涉及的具体实现部份并不是必要的,这些实现部份是作为例子来阐述在响应USB设备请求时的主机系统的行为。

只要USB设备并不感觉到主机行为的改变,USB主机完全可以提供一个不同的软件系统实现方法。

  10.1USB主机概况

  10.1.1概论

  图10-1展示了USB通信模型之间基本的信息流与互连关系:

  逻辑的信息流实际的信息流

  图10-1通信模型层次关系图

  由图10-1可见,主机与设备都被划分成不同的层次。

主机上垂直的箭头是实际的信息流。

设备上对应的接口是基于不同实现的。

在主机与设备之间的所有通信最终都是通过USB的电缆进行,然而,在上层的水平层之间存在逻辑的主机-设备信息流。

主机上的客户软件和设备功能部件之间的通信是基于实际的应用需求及设备所能提供的能力。

  客户软件与功能部件之间的透明通信的要求,决定主机和设备下层部件的功能以及它们的界面(interface)

  这一章从主机的角度来描述上述的通信模型,图10-2描述了从主机角度看到的它与设备的连接。

  主机在整个USB系统中是唯一的,它包括如下几个层次。

  ·

USB总线接口

USB系统(USBSystem)

USB客户(Client)

  其中,USB总线接口处理电气及协议层的互连(详见第7章及第8章)。

从互连的角度看,USB设备和USB主机都提供类似的USB总线接口,如串行接口引擎(SerialInterfaceEngineSIE)。

由于主机在USB系统中的特殊性,USB主机上的总线接口还必须具备主机控制器的功能(HostController),主机控制器具有一个内集成的集线器(根集线器)提供与USB电缆的连接。

  USB系统(USBSystem)使用主机控制器来管理主机与USB设备的数据传输。

USB系统与主机控制器之间的界面基于主机控制器的硬件特性。

USB系统层相对于主机控制器而言,处理的是以客户观点见到的数据传输及客户与设备的交互。

这包括附加的USB信息,比如协议头(ProtocolWrappers)。

USB系统还必须管理USB的系统资源,以使得客户的访问成为可能。

  通道组(到某一接口)

  IRPS配置信息

  标准通道(到缺省端口地址)

  硬件定义

  USB电缆

  通道,代表相应层之间连接的抽象

  图10-2主机通信图

  USB系统有三个主要组成部份:

主机控制器驱动(HostControllerDriver)

USB驱动(USBDriver)

主机软件(hostsoftware)

  主机控制器驱动的存在,方便地将各种不同的主机控制器实现映射到USB系统,客户可以不必知道设备到底接在哪个主机控制器上就能同设备进行通信。

USB驱动提供了基本的面向客户的主机界面。

在HCD与USB之间的接口称为主机控制器驱动接口(HostControllerDriverInterfaceHCDI)。

这层接口不能被客户直接访问,所以也不是由USB具体来完成的。

一个典型的HCDI是由支撑各种不同主机控制器的操作系统来定义的。

  USBD提供I/O请求包(I/ORequestPackets)形式的数据传输,以某一特定通道来传输数据。

另外,USBD为它的客户提供一个容易被支配及配置的抽象的设备。

作为这种抽象的一部份,USBD拥有标准通道(参见第5章及第9章)对设备进行一些标准的控制。

这标准通道实现了USBD与抽象设备之间的逻辑通信。

(见图10-2)

  在有些操作系统中,提供了额外的非USB系统软件以支持设备的配置及设备驱动程序的加载。

在这样的操作系统中,设备驱动程序应使用提供的主机软件接口而不是直接访问USBDI。

  客户层描述的是直接与USB设备进行交互所需要的软件包。

当所有的设备都已连上系统时,这些客户就可以直接通设备进行通信。

一个客户不能直接访问设备的硬件。

  该言之,主机可提供如下的功能

检测USB设备的连接与断开。

管理主机与设备之间的标准控制流。

管理主机与设备之间的数据流。

收集状态及一些活动的统计数字。

控制主机控制器与USB设备的电气接口,包括提供有限的能源。

  在下面的章节中,我们将较细的阐述USBDI所能提供的功能。

对于特定的主机平台与操作系统下的实现接口请参照相关的操作系统手册。

  所有的集线器都通过状态改变通道报告它的状态的改变,其中包括设备的连上与断开等。

USBD的一类特殊客户即:

集线器驱动器拥有这些状态改变通道,接收这些状态的改变。

对于像设备连结这种状态改变,集线器驱动器将加载设备的驱动程序。

在有些系统中,这种集线器驱动程序是操作系统提供的主机软件的一部份,它用来管理设备。

  10.1.2控制机构

  控制信号可通过带内信号(in-band-singling)及带外信号(out-of-bard-signaling)两种方式在主机与设备之间传输。

带内信号将控制信息及数据信息混在一起用同一通道传输,以至于主机根本就没有觉察到。

而外带信号是通过单独的通道进行传输。

  任何一个已连接的设备都有一个标准的信息通道,即标准通道。

这个主机与设备之间的逻辑的连接用于传输USB的标准控制信息,比如对设备的配置信息等。

这些标准通道为USB的设备提供了标准的接口,它也可以用来进行基于特定设备而不同的通信,这些通信由拥有所有这些通道的USBD作媒介。

  一些特定的设备可能允许使用额外的信息通道来传输特定设备的控制信息。

这些额外的信息通道与标准通道使用同样的协议,但是传递的信息是基于特定的设备的,也不是由USB具体标准化的。

  USBD支持和它的客户共享使用标准通道,它还提供给客户与设备相连的其它控制通道的访问。

  10.1.3数据流

  主机控制器在主机与USB设备之间传递数据。

这些数据被看作连续的字节流。

USB支持4种形式的数据传输

控制传输。

同步传输。

中断传输。

块传输。

  有关于传输方式的额外信息请参见第5章

  每个设备具有一到多个界面以用于客户与设备之间的数据传输。

每个接口由一到多个在客户及设备端点之间独立传输的通道组成。

USBD根据主机软件的请求来初始化这些通道和接口。

当这些配置请求提出后,主机控制器将基于主机软件所提供的参数来提供服务。

  每个通道基于数据传输模式和请求的有如下几个特性:

数据传输的频率。

数据是以恒定速率提供还是随机出现的。

在数据传输前可延迟的时间。

在传输过程中数据的丢失是否是具有灾难性。

  USB设备的端口描述了与之相连接的通道的特性。

USB设备端口的特性的具体描述可参照第9章。

  10.1.4收集状态及活动统计数据

  作为普通的为所有主机与设备之间的控制流与数据流服务的USB系统与主机控制器,一直处于随时接收状态变化及活动信息的状态,以使软件能及时接收并处理这些状态的变化。

这里并不具体讲述需要被跟踪的状态信息及这些状态信息的特殊的格式。

  10.1.5电气接口因素

  主机为连在集线器上的USB设备提供能量。

一个集线器口所能提供的能量具体值在第七章有详细说明。

  10.2主机控制器功能

  在所有的实现中,主机控制器都必须提供基本相同的功能。

主机控制器对主机及设备来讲都必须满足一定的要求。

下面是主机控制器所提供的功能的概况。

每种功能在下面的小节中还有具体的说明。

  1状态处理(StateHandling)作为主机的一部份,主机控制器报告及管理它的状态。

  2串行化与反串行化对于从主机输出的数据,主机控制器将协议及数据信息从它原始形状转换为字位流。

而对于主机接收的数据主机控制器进行反向操作。

  3帧产生(FrameGeneration)主机控制器以每1ms为单位产生SOF标志包。

  4数据处理主机控制器处理从主机输入输出数据的请求。

  5协议引擎主机控制器支持USB具体规定的协议

  6传输差错控制所有的主机控制器在发现和处理已定义的错误时展现相似的行为。

7远程唤醒所有的主机控制器都应具有将总线置于挂起状态及在远程唤醒事件下重新启动的能力。

  8集线器集线器提供了标准的将多个USB设备连到主机控制器的功能。

  9主机系统接口主机控制器在主机系统控制器之间建立一个高速的数据通道。

  下面的各节将对上面提到的各功能进行详细的讨论。

  10.2.1状态处理

  主机控制器具有一系列USB系统管理的状态。

另外,主机控制器为下面两个与USB有关的部份提供接口。

状态改变传播

根集线器

  根集线器提供与其它USB设备一样的标准状态给集线器驱动器。

有关USB状态与其它之间的相互关系的详细讨论请参照第7章。

  主机控制器的总的状态与根集线器及总体的USB密不可分。

任何一个对设备来说可见的状态的改变都应反映设备状态的相应改变。

从而保证主机控制器与设备之间的状态是一致的。

  USB设备通过使用恢复信号请求唤醒,使设备回利已配置的状态。

主机控制器本身也可以通过同样的方法产生一个恢复事件。

主机控制器通过使用该实现系统的某种机制来通知主机的其它部份已产生了一个恢复事件。

  10.2.2串行化与反串行化

  通过物理上的传输是以字位流的形式出现的。

不管是作为主机的一部份,还是作为设备的一部份,串行接口引擎(STE)处理USB传输过程中的串行化与文串行化工作。

在主机上,串行接口引擎是主机控制器的一部份。

  10.2.3帧产生

  主机控制器有义务将USB时间划分为以1ms为单位的帧。

主机控制器以每1ms间隙产生SOF(Start-of-Frame)标识以示新的一帧的开始(如图10-3)。

SOF标识是一帧的开始部份,在SOF标识之后主机控制器在该帧的余下时间内传输其它的东西。

当主机控制器处于正常工作状态时,SOF标识必须以1ms为间隙连续的发送而不管其它的总线活动。

当总线控制器处于不给总线提供能量的状态时,它不能产生SOF标识。

当总线控制器不产生SOF标识时,它处于一种节能方式。

  EOF间隙(FRAMEN-1)FRAMENFRAMEN+1

  图10-3帧产生

  SOF标识具有取得总线的最高的优先权。

集线器中的babblecircuit在EOF期间停止任何传输任务,为SOF标识的传输提供一条空闲的总线。

  主机控制器必须允许USB每帧的时间长度相差±

1bit的时间(参见10.5.3.3.4节)。

主机控制器维持着一个当前帧的序号。

  帧序号具有以下各方面的作用

用于将两帧唯一的区别开

在每帧的结尾处加1

对于它的后继帧有效

  主机在每一个SOF标识中传输当前帧号的低11位。

当接到主机控制器的请求时,主机返回请求发生时刻的帧序号。

虽然主机控制器自身并不要求维持一个超过11位的帧序号,但是主机返回的帧序号至少是32位的,。

  主机控制器在EOF期间要停止一切传输操作。

当EOF间隙产生时,所有原定在刚才那帧上传输的事务暂停。

如果主机控制器在执行传输的时候出现了EOF,主机控制器中止该项传输请求。

  10.2.4数据处理

  主机控制器接收来自USB系统的数据并将其传送给USB设备或从USB设备接收数据送给USB系统。

USB系统和主机控制器之间进行数据传输时的具体格式是基于具体的实现系统的,同时也要符合第5章所讲述的传输协议要求。

  10.2.5协议引擎

  主机控制器管理着USB协议层的接口。

在输出的数据中插入适当的协议信息,并且它将解释并去除输入数据中的协议信息。

  10.2.6传输差错控制

  主机控制器必须能够发现如下的几种从主机的角度定义的错误:

超时错。

该类错误发生在目标端口没有相应的反应或传输系统被严重损坏以至于目标端口根本就没有收到信息。

数据丢失或无效传输。

主机控制器发送或接收到较应该传输的数据包为短的数据包。

例如,一项传输超出了EOF,或缺少可使用的资源,或数据包CRC校验出错.

协议错

  --无效的握手PID,例如形式错误或不恰当的握手包。

  --错误的包标志。

  --位插入错。

  对批传输,命令传输,中断传输,主机必须维持一个错误统计记录。

这些错误是由上述各种情况产生的,而不是由于端口不响应一个请求而产生的。

错误统计记录反映了传输过程中出现的错误的次数。

如果错误统计记录值达到三,则主机终止传输。

如果传输是由于过多的传输错而被中止的话,则最后一次出现的错误将被简要的说明。

每个同步传输事务仅进行一次,而不管结果,所以对于这种传输来说是没有被维持的错误记录。

  10.2.7远程唤醒

  如果USB系统希望将总线置于挂起状态,它将请求主机控制器终止任何形式的传输,包括SOF。

这使得所有的USB设备进入一种挂起状态。

在这种状态下,USB系统可以使能主机控制器响应总线唤醒事件。

这使得主机控制器能响应总线的唤醒信号,重启主机系统。

  10.2.8根集线器

  根集线器提供主机控制器与一个或多个USB设备的连接。

除了主机控制器及根集线器之间的硬件软件接口是由具体的硬件实现来定义的外,根集线器提供与其它的集线器一样的功能(参见11章)。

  10.2.8.1端口复位(PortResets)

  7.1.7.3节讲述了集线器为了保证每一个下行恢复请求都供给一个长时间的下行复位,所必须具备的条件,根集线器应能提供一个至少为50ms的复位时间。

如果复位时间是由硬件控制的,并且硬件能提供的复位时间小于50ms,则USB系统可以产生连续的几个复位信号以产生足够长时间的复位。

  10.2.9主机系统接口

  主机控制器提供一条高速的读出与写入系统内存的总线接口。

内存与USB电缆的物理数据的交换是在主机控制器的控制下自动进行的。

当数据缓冲区需要允满或清空时,主机控制器通知USB系统。

  10.3软件功能概论

  HCD与USBD提供了基于不同抽象层次的软件界面。

它们以一定的方式协同工作以实现USB系统的功能(见图10-2)。

对USB系统的功能主要表现在对USBDI所能提供的功能上。

USBD与HCD之间任务的划分没有具体的定义,但是HCDI必须要具备的一项功能就是它必须支持多种主机控制器的不同实现。

  HCD提供了抽象的主机控制器,且对主机控制器所见到的USB系统的数据传输进行了抽象。

USBD提供一个抽象的设备,且对USBD客户和USB设备功能部件之间的数据传输进行抽象。

总之,USB系统简化了USBD客户与USB设备之间的数据传输过程,并且作为对USB设备的面向USB的接口进行控制的人口。

作为简化数据传输功能的一部份,USB系统提供缓冲区管理功能,并且允许根据客户及设备功能部件的需求进行实时数据传输。

  USBDI的提供的功能将在下面将具体的阐述。

这些功能的具体实现将在相关的操作系统中关于HCDI及USBDI的部份找到。

通过USBDI实现数据传输所经历的过程将在下面得到简述。

  10.3.1设备配置

  不同的操作系统环境使用不同的软件及不同的事件序列来配置设备:

在这里,我们讲述USB系统层时,并不以某个特定的实现系统为模板。

但是USB系统的具体实现系统必须实现某一些基本的功能。

在有些操作系统中由主机软件(hostsoftware)实现这些功能,而在其它的一些操作系统中,由USB系统层实现该项功能。

  USBD有一类特殊的客户,称作集线器驱动器。

集线器驱动器充当设备从特定的集线器连接与断开的清算中心(clearinghouse)。

当集线器控制器接到有设备连接与断开的信息时,它会激活其它的主机软件或其它的USBD客户配置该设备或对这些信号作出其它的反应。

上述的模型是下面讨论的基础,见图10-4

  当一个设备连上某集线器的时候,集线器驱动器从集线器那儿收到一条表明集线器状态改变的消息。

集线器驱动器使用集线器提供的信息,向USBD请求设备的标志码(identifier)。

USBD为该设备建立标准的通道,并且返回该设备的身份码。

现在该设备可以被配置和使用。

对于任何一个设备,在使用之前必须要完成如下三项配置工作:

  控制信息流可选信息流

  图10-4设备配置信息流程图

  1.设备配置:

这包括设置设备的所有参数,为设备分配所有可见的USB主机资源。

USB还允许以后更改设备的部分配置参数。

一旦设备配置完以后,以设备的观点来看,它已是可用的。

  2.USB配置为了真正的创建客户可用的USBD通道,额外的对设备不可见的USB信息要由客户具体化。

这些信息被称为通道策略,它描述了客户将如何使用该通道,其中包括一个I/O请求包容许的最大数据量,客户的最大服务间隙,客户的标识码等等。

  3.功能配置当设备配置与USB配置完成后,从USB的观点来看,该通道是完全可用的。

然而在客户真正使用通道之前,或许额外的供应商定义的(vendor)或有关设备类(class-specific)配置需要进行。

这些配置是客户与设备之间的私事,它并不由USBD来进行标准化。

  下面的段落描述了客户配置与USB配置需要完成的工作。

  配置软件完成具体的配置工作。

具体的配置软件将基于特定的操作系统实现而有所不同,但一般它包括以下几个部份。

集线器驱动器

其它主机软件

设备驱动程序

  配置软件首先读取设备的描述符,然后对于每一种可能的配置请求该配置的描述信息。

配置软件使用提供的信息加载特定的客户,比如设备驱动程序,由它与设备进行初始的交互。

配置软件可能要从设备驱动程序那儿输入一些信息,然后为设备选择一种配置方案。

设备配置过程设置好设备的所有端口,并且返回一组用于USBD客户传输数据的接口。

一个接口是为某个客

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

当前位置:首页 > 高等教育 > 文学

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

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