精华内容
下载资源
问答
  • USB传输模式(控制传输、批量传输、中断传输、同步传输)介绍    控制传输、批量传输、中断传输、同步传输    USB 有上述四种传输类型。枚举期间外设告诉主机每个端点支持哪种传输类型。    USB设备驱动向...
    USB传输模式(控制传输、批量传输、中断传输、同步传输)介绍
     
     控制传输、批量传输、中断传输、同步传输
     
     USB 有上述四种传输类型。枚举期间外设告诉主机每个端点支持哪种传输类型。
     
     USB设备驱动向USB控制器驱动请求的每次传输被称为一个事务(Transaction),
     
     事务有四种类型:Bulk Transaction、Control Transaction、Interrupt Transaction和Isochronous Transaction。
     
     数据包包含部分:
     
     每次事务都会分解成若干个数据包在USB总线上传输。每次传输必须历经两个或三个部分,第一部分——USB控制器向USB设备发出命令,
     
     第二部分——USB控制器和USB设备之间传递读写请求,其方向主要看第一部分的命令是读还是写,第二部分有时候可以没有。
     
     第三部分——握手信号。
     
     批量(Bulk)传输事务
     
     作用:主要应用在数据大量数据传输和接受数据上同时又没有带宽和间隔时间要求的情况下;
     
     特点:要求保证传输。打印机和扫描仪属于这种类型这种类型的设备
     
     适合于传输非常慢和大量被延迟的传输,可以等到所有其它类型的数据的传输完成之后再传输和接收数据。
     
     批量数据传输分三个阶段:
     
     第一部分——令牌阶段。
     
     Host端发出一个Bulk的令牌请求。
     
     如果令牌是IN请求 ,则是从Device到Host的请求;
     
     如果令牌是OUT请求,则是从Host到Device端的请求。
     
     第二部分——传送数据的阶段。
     
     根据先前请求的令牌的类型,数据传输有可能是IN方向,也有可能是OUT方向。传输数据的时候用DATA0和DATA1令牌携带着数据交替传送。
     
     数据传输格式DATA1和DATA0,这两个是重复数据,确保在1数据丢失时0可以补上,不至于数据丢失。
     第三部分——握手阶段。
     
     如果数据是IN 方向,握手信号应该是Host端发出;
     
     如果数据是OUT方向,握手信号应该是Device端发出。
     
     握手信号可以为ACK, 表示正常响应,
     
     NAK, 表示没有正确传送。
     
     STALL,表示出现主机不可预知的错误。
     
     如图所示。
     
     
     
     图Bulk传输
     
     
     
     图 Bulk传输时的令牌
     
      控制(Control)传输
     
     作用:USB系统软件用来主要进行查询配置和给USB设备发送通用的命令;
     
     特点:控制传输是双向传输,数据量通常较小;数据传送是无损性的。
     
     数据宽度:控制传输方式可以包括8、16、32和64字节的数据,这依赖于设备和传输速度。
     
     控制传输典型地用在主计算机和USB外设之间的端点0(EP0)之间的传输
     
     控制传输也分为三个阶段,即令牌阶段、数据传送阶段、握手阶段,如下图所示。
     
     
     
     
     
     图 控制传输事务
     
      中断(Interrupt)传输事务
     
     作用:主要用于定时查询设备是否有中断数据要传输;
     
     特点:设备的端点模式器的结构决定了它的查询频率从1到255ms之间。
     
     典型的应用在少量的分散的不可预测数据的传输键盘操纵杆和鼠标就属于这一类型
     
     (数据量很小)
     
     中断方式传输是单向的并且对于host 来说只有输入(IN)的方式
     在中断事务中,也分为三个阶段,即令牌阶段、数据传输阶段、握手阶段,如下图所示。
     
     
     
     
     中断传输事务
     
      同步(Isochronous)传输事务
     
     作用:用于时间严格并具有较强容错性的流数据传输,或者用于要求恒定的数据传输率的即时应用中。例如执行即时通话的网络电话。
     
     特点:保证传输的同步性。保证每秒有固定的传输量。
     
     (与Bulk传输不同)同步传输允许有一定的误码率。(这样符合视频会议等传输的需求,因为视频会议首先要保证实时性,在一定条件下,允许有一定的误码率。)
     同步传输事务有只有两个阶段,即令牌阶段、数据阶段,因为不关心数据的正确性,故没有握手阶段,
     如下图所示:
     
     
     图 同步传输事务
    0
    展开全文
  • USB四种传输模式

    千次阅读 2017-11-03 18:53:43
    USB四种传输模式USB插入USB总线时,USB控制器会自动为该USB设备分配一个数字来标示这个设备。另外,在设备的每个端点都有一个数字来表明这个端点。 USB设备驱动向USB控制器驱动请求的每次传输被称为一个事务...

    转自:http://blog.csdn.net/liuxd3000/article/details/8672250

    USB四种传输模式

    当USB插入USB总线时,USB控制器会自动为该USB设备分配一个数字来标示这个设备。另外,在设备的每个端点都有一个数字来表明这个端点。
    USB设备驱动向USB控制器驱动请求的每次传输被称为一个事务(Transaction),事务有四种类型,分别是Bulk Transaction、Control Transaction、Interrupt Transaction和Isochronous Transaction。每次事务都会分解成若干个数据包在USB总线上传输。每次传输必须历经两个或三个部分,第一部分是USB控制器向USB设备发出命令,第二部分是USB控制器和USB设备之间传递读写请求,其方向主要看第一部分的命令是读还是写,第二部分有时候可以没有。第三部分是握手信号。以下针对这四种传输,分别进行讲解。

    1.Bulk传输事务

    顾名思义,改种事务传输主要是大块的数据,传送这种事务的管道叫做Bulk管道。这种事务传输的时候分为三部分,如图17-10所示。第一部分是Host端发出一个Bulk的令牌请求,如果令牌是IN请求则是从Device到Host的请求,如果是OUT令牌,则是从Host到Device端的请求。
    第二部分是传送数据的阶段,根据先前请求的令牌的类型,数据传输有可能是IN方向,也有可能是OUT方向。传输数据的时候用DATA0和DATA1令牌携带着数据交替传送。

    第三部分是握手信号。如果数据是IN方向,握手信号应该是Host端发出,如果是OUT方向,握手信号应该是Device端发出。握手信号可以为ACK,表示正常响应,也可以是NAK表示没有正确传送。STALL表示出现主机不可预知的错误。
    在第二部分,即传输数据包的时候,数据传送由DATA0和DATA1数据包交替发送。数据传输格式DATA1和DATA0,这两个是重复数据,确保在1数据丢失时0可以补上,不至于数据丢失。如图17-11所示。

     
    (点击查看大图)图17-10  Bulk传输
     
    图17-11  Bulk传输时的令牌

    2.控制传输事务

    控制传输是负责向USB设置一些控制信息,传送这种事务的管道是控制管道。在每个USB设备中都会有控制管道,也就是说控制管道在USB设备中是必须的。控制传输也分为三个阶段,即令牌阶段、数据传送阶段、握手阶段,如图17-12所示。

     
    图17-12  控制传输事务

    3.中断传输事务

    在USB设备中,有种处理机制类似于PCI中断的机制,这就是中断事务。中断事务的数据量很小,一般用于通知Host某个事件的来临,例如USB鼠标,鼠标移动或者鼠标单击等操作都会通过中断管道来向Host传送事件。在中断事务中,也分为三个阶段,即令牌阶段、数据传输阶段、握手阶段,如图17-13所示。

     
    (点击查看大图)图17-13  中断传输事务

    4.同步传输事务

    USB设备中还有一种事务叫同步传输事务,这种事务能保证传输的同步性。例如,在USB摄像头中传输视频数据的时候会采用这种事务,这种事务能保证每秒有固定的传输量,但与Bulk传输不同,它允许有一定的误码率,这样符合视频会议等传输的需求,因为视频会议首先要保证实时性,在一定条件下,允许有一定的误码率。同步传输事务有只有两个阶段,即令牌阶段、数据阶段,因为不关心数据的正确性,故没有握手阶段,如图17-14所示。

     
    图17-14  同步传输事务
    展开全文
  • USB驱动开发之USB四种传输模式

    千次阅读 2017-12-05 16:27:13
    2.3. USB四种传输模式 2.3.1. 批量传输 批量传输是一种可靠的单向传输,但延迟没有保证,它尽量利用可以利用的带宽来完成传输,适合数据量比较大的传输。低速USB设备不支持批量传输,高速批量端点的最大包长度为...

    2.3.       USB四种传输模式

    2.3.1.  批量传输

    批量传输是一种可靠的单向传输,但延迟没有保证,它尽量利用可以利用的带宽来完成传输,适合数据量比较大的传输。低速USB设备不支持批量传输,高速批量端点的最大包长度为512,全速批量端点的最大包长度可以为8、16、32、64。

    图2-3-0为批量事务图,其中一个方框表示一个Packet,灰色的包表示主机发出的包,白色的包表示Device 发出的包。批量传输是可靠的传输,需要握手包来表明传输的结果。若数据量比较大,将采用多次批量事务传输来完成全部数据的传输,传输过程中数据包的PID DATA0-DATA1-DATA0-…的方式翻转,以保证发送端和接收端的同步。USB 允许连续3 次以下的传输错误,会重试该传输,若成功则将错误次数计数器清零,否则累加该计数器。超过三次后,HOST 认为该端点功能错误(STALL),放弃该端点的传输任务。一次批量传输(Transfer)由1 次到多次批量事务传输(Transaction)组成。

    批量传输在访问USB总线时,相对其他传输类型具有最低的优先级,USB HOST总是优先安排其他类型的传输,当总线带宽有富余时才安排批量传输。高速的批量端点必须支持PING 操作,向主机报告端点的状态,NYET 表示否定应答,没有准备好接收下一个数据包,ACK表示肯定应答,已经准备好接收下一个数据包。

    2.3.2.  控制传输

    控制传输是一种可靠的双向传输,一次控制传输可分为三个阶段。第一阶段为从HOST 到Device 的SETUP 事务传输,这个阶段指定了此次控制传输的请求类型;第二阶段为数据阶段,也有些请求没有数据阶段;第三阶段为状态阶段,通过一次IN/OUT 传输表明请求是否成功完成。

    左图为建立阶段的事务传输流程图。可以看出:与批量传输相比,在流程上并没有多大区别,区别只在于该事务传输发生的端点不一样、支持的最大包长度不一样、优先级不一样等这样一些对用户来说透明的东西。建立阶段过后,可能会有数据阶段,这个阶段将会通过一次或多次控制传输事务,完成数据的传输。同样也会采用PID 翻转的机制。建立阶段,Device 只能返回ACK 包,或者不返回任何包。

    最后是状态阶段,通过一次方向与前一次相反的控制事务传输来表明传输的成功与否。如果成功会返回一个长度为0 的数据包,否则返回NAK 或STALL。整个控制传输如图2-3-1所示。

    控制传输通过控制管道在应用软件和Device 的控制端点之间进行,控制传输过程中传输的数据是有格式定义的,USB 设备或主机可根据格式定义解析获得的数据含义。其他三种传输类型都没有格式定义。

     

    控制传输对于最大包长度有固定的要求。对于高速设备该值为64Byte;对于低速设备该值为8;全速设备可以是8 或16 或32 或64个字节。

    控制传输在访问总线时也受到一些限制,如:

    n    高速端点的控制传输不能占用超过20%的微帧,全速和低速的则不能超过10%。

    n    在一帧内如果有多余的未用时间,并且没有同步和中断传输,可以用来进行控制输。

    USB 允许连续3 次以下的传输错误,会重试该传输,若成功则将错误次数计数器清零,否则累加该计数器。超过三次后,HOST认为该端点功能错误(STALL),放弃该端点的传输任务。

    2.3.3.  中断传输

    中断传输是一种轮询的传输方式,是一种单向的传输,HOST 通过固定的间隔对中断端点进行查询,若有数据传输或可以接收数据则返回数据或发送数据,否则返回NAK,表示尚未准备好。中断传输的延迟有保证,但并非实时传输,它是一种延迟有限的可靠传输,支持错误重传。对于高速/全速/低速端点,最大包长度分别可以达到1024/64/8 Bytes。高速中断传输不得占用超过80%的微帧时间,全速和低速不得超过90%。

    中断端点的轮询间隔由在端点描述符中定义,全速端点的轮询间隔可以是1~255mS,低速端点为10~255mS,高速端点为(2interval-1)*125uS,其中interval 取1到16 之间的值。

    除高速高带宽中断端点外,一个微帧内仅允许一次中断事务传输,高速高带宽端点最多可以在一个微帧内进行三次中断事务传输,传输高达3072 字节的图2-3-2为中断事务图,从图中可以看出中断传输在流程上除不支持PING 之外,其他的跟批量传输是一样的。他们之间的区别也仅在于事务传输发生的端点不一样、支持的最大包长度不一样、优先级不一样等这样一些对用户来说透明的东西。

    2.3.4.  同步传输

    同步传输是一种实时的、不可靠的传输,不支持错误重发机制。只有高速和全速端点支持同步传输,高速同步端点的最大包长度为1024,低速的为1023。除高速高带宽同步端点外,一个微帧内仅允许一次同步事务传输,高速高带宽端点最多可以在一个微帧内进行三次同步事务传输,传输高达3072 字节的数据。同步传输事务如图2-3-4所示全速同步传输不得占用超过80%的帧时间,高速同步传输不得占用超过90%的微帧时间。同步端点的访问也和中断端点一样,有固定的时间间隔限制。

    2.4.       USB协议层规范

    USB 采用little edian字节顺序,在总线上先传输一个字节的最低有效位,最后传输最高有效位,采用NRZI编码,若遇到连续的6个1 要求进行为填充,即插入一个0。所有的USB 包都由SYNC开始,高速包的SYNC宽度为32bit,全速/低速包的SYNC段度为8bit。实际接收到的SYNC产度由于USB HUB的关系,可能会小于该值。

    USB 数据包的格式:

     

    PID 表征了数据包的类型,分为令牌(Token)、数据(Data)、握手(Handshacke)以及特殊包4 大类,共16 种类型的PID。

    对于令牌包来说,PID 之后是7位的地址和4位的端点号。令牌包没有数据域,以5位的CRC 校验和结束。SOF 是一类特殊的令牌包,PID 后跟的是11位的帧编号。

    对于数据包来说,PID 之后直接跟数据域,数据域的长度为N 字节,数据域后以16 位的CRC 校验和结束。

    握手包仅有PID 域,没有数据也没有校验和。

    分离传输会用到一类特殊的包,Start-Split 和Complete-Split 包,格式如下:

    在Start-Split 和Complete-Split 包中主要指定了此次分离传输所在的HUB 的地址和下行端口编号以及端点类型(控制、中断、批量、同步)。以及此次传输中数据包在整个数据中的位置(第一个包、中间的包、末尾的包)。

    握手包包括ACK,NAK,STALL 以及NYET 四种,其中ACK 表示肯定的应答,成功的数据传输;NAK 表示否定的应答,失败的数据传输,要求重新传输;STALL 表示功能错误或端点被设置了STALL 属性;NYET 表示尚未准备好,要求等待。

    数据在USB 总线上的传输以包为单位,包只能在帧内传输。高速USB总线的帧周期为125uS,全速以及低速USB总线的帧周期为1mS。帧的起始由一个特定的包(SOF 包)表示,帧尾为EOF。EOF 不是一个包,而是一种电平状态,EOF 期间不允许有数据传输。

    2.5.       USB HUB规范

    从功能上来说,HUB 必须支持连接行为、电源管理、设备连接/移除检测、总线错误检测和恢复、高/全/低速设备支持。USB HUB的架构图(图2-4-1)

    USB HUB 自身的工作速度由上行PORT的连接速度决定。从结构上分,USB HUB由HUBRepeater、HUB Controller及Transaction Translator三部分组成。其中HUB Repeater主要负责连接的建立和撤销,即完成上行PORT 和下行PORT 工作在相同速度的连接管理。同时还支持错误的检测与恢复以及设备连接/移除的检测。HUB Controller 负责与HOST 通讯,完成与HOST 的交互(请求的响应)、HUB 的控制及管理。Transaction Translator 主要负责高速的分离传输,并把它们分发到连接了全/低速设备的下行PORT。Routing Logic 负责将下行PORT 连接到HUB Repeater 或者Transaction Translator(以后简称TT)。

    当USB HUB 的上行PORT 连接在全速/低速时,TT 不工作,HUB Repeater 工作在全速/低速模式。当USB HUB 的上行PORT 连接在高速时,TT 工作,HUB Repeater 工作在高速模式。

    展开全文
  • usb四种传输模式

    千次阅读 2016-05-30 09:29:43
    USB四种传输模式USB插入USB总线时,USB控制器会自动为该USB设备分配一个数字来标示这个设备。另外,在设备的每个端点都有一个数字来表明这个端点。 USB设备驱动向USB控制器驱动请求的每次传输被称为一个事务...

    USB四种传输模式

    当USB插入USB总线时,USB控制器会自动为该USB设备分配一个数字来标示这个设备。另外,在设备的每个端点都有一个数字来表明这个端点。
    USB设备驱动向USB控制器驱动请求的每次传输被称为一个事务(Transaction),事务有四种类型,分别是Bulk Transaction、Control Transaction、Interrupt Transaction和Isochronous Transaction。每次事务都会分解成若干个数据包在USB总线上传输。每次传输必须历经两个或三个部分,第一部分是USB控制器向USB设备发出命令,第二部分是USB控制器和USB设备之间传递读写请求,其方向主要看第一部分的命令是读还是写,第二部分有时候可以没有。第三部分是握手信号。以下针对这四种传输,分别进行讲解。

    1.Bulk传输事务

    顾名思义,改种事务传输主要是大块的数据,传送这种事务的管道叫做Bulk管道。这种事务传输的时候分为三部分,如图17-10所示。第一部分是Host端发出一个Bulk的令牌请求,如果令牌是IN请求则是从Device到Host的请求,如果是OUT令牌,则是从Host到Device端的请求。
    第二部分是传送数据的阶段,根据先前请求的令牌的类型,数据传输有可能是IN方向,也有可能是OUT方向。传输数据的时候用DATA0和DATA1令牌携带着数据交替传送。

    第三部分是握手信号。如果数据是IN方向,握手信号应该是Host端发出,如果是OUT方向,握手信号应该是Device端发出。握手信号可以为ACK,表示正常响应,也可以是NAK表示没有正确传送。STALL表示出现主机不可预知的错误。
    在第二部分,即传输数据包的时候,数据传送由DATA0和DATA1数据包交替发送。数据传输格式DATA1和DATA0,这两个是重复数据,确保在1数据丢失时0可以补上,不至于数据丢失。如图17-11所示。

     
    (点击查看大图)图17-10  Bulk传输
     
    图17-11  Bulk传输时的令牌

    2.控制传输事务

    控制传输是负责向USB设置一些控制信息,传送这种事务的管道是控制管道。在每个USB设备中都会有控制管道,也就是说控制管道在USB设备中是必须的。控制传输也分为三个阶段,即令牌阶段、数据传送阶段、握手阶段,如图17-12所示。

     
    图17-12  控制传输事务

    3.中断传输事务

    在USB设备中,有种处理机制类似于PCI中断的机制,这就是中断事务。中断事务的数据量很小,一般用于通知Host某个事件的来临,例如USB鼠标,鼠标移动或者鼠标单击等操作都会通过中断管道来向Host传送事件。在中断事务中,也分为三个阶段,即令牌阶段、数据传输阶段、握手阶段,如图17-13所示。

     
    (点击查看大图)图17-13  中断传输事务

    4.同步传输事务

    USB设备中还有一种事务叫同步传输事务,这种事务能保证传输的同步性。例如,在USB摄像头中传输视频数据的时候会采用这种事务,这种事务能保证每秒有固定的传输量,但与Bulk传输不同,它允许有一定的误码率,这样符合视频会议等传输的需求,因为视频会议首先要保证实时性,在一定条件下,允许有一定的误码率。同步传输事务有只有两个阶段,即令牌阶段、数据阶段,因为不关心数据的正确性,故没有握手阶段,如图17-14所示。

     
    图17-14  同步传输事务

    展开全文
  • USB的四种传输模式

    千次阅读 2017-10-18 15:15:09
    本文内容来自自己看宋老师的驱动详解的... 有道题考的是USB传输模式相关的内容,当时答得不咋地。此文仅作为笔记,方便查阅 哈哈! USB 提供了 4 种传输方式以适应各种设备的需要。 (1)控制(Control)传输方式
  •  做接口开发的工程师最关心的是接口的传输速率,首先给大家分析一下usb1.1 所能够达到的极限速率是多少,usb11理论的速率是12Mbit/s ,12Mbit/s的理论速率并非数据的实际有效传送速率,它包含了协议开销(像各种...
  • 在最初的USB1.0和USB1.1协议规范...但是需要注意的是,USB2.0协议只是USB协议的2.0版本,并不是USB高速传输模式的代名词。在USB2.0协议中,规定了可以支持3种速度模式,分别是低速(Low Speed, 1.5Mbps),全速(Full Spee
  • (1)控制传输模式,控制传输用于在外设初次连接时对器件进行配置;对外设的状态进行实时检测;对控制命令的传送等;也可以在器件配置完成后被客户软件用于其它目的。Endpoint0信道只可以采用控制传送的方式。 银行...
  • USB传输模式有4种,分别是控制传输(Control Transfer)、中断传输(Interrupt Transfer)、批量传输或叫块传输(Bulk Transfer)、实时传输或叫同步传输(Isochronous Transfer)。每种传输方式都有其特点,其...
  • USB的四种传输模式的特点

    千次阅读 2014-02-21 10:28:48
    USB的四种传输模式 (1) 控制传输模式,控制传输用于在外设初次连接时对器件进行配置;对外设的状态进行实时检测;对控制命令的传送等;也可以在器件配置完成后被客户软件用于其它目的。Endpoint 0信道只...
  • 基于SlaveFIFO模式USB数据传输系统
  • usb中的endpoint(端点)和传输模式

    万次阅读 2016-10-30 18:51:42
    主机通过发出器件地址和每次数据传输的端点号,向一个具体端点(FIFO)发送数据。 每个端点的地址为0 到15,一个端点地址对应一个方向。所以,端点2-IN 与端点2-OUT 完全不同。 每个器件有一个默认的双向控制端点0,...
  • USB传输类型

    万次阅读 2012-11-14 21:31:34
    USB传输类型 USB中有四种类型的端点,也就对应四种不同的传输方式,分别是控制传输、中断传输、同步传输和块传输。 1 控制传输 控制传输的读写时序如下: 控制传输总共三个阶段,setup阶段、数据阶段...
  • USB的协议对 USB 的数据传输类型进行了详细的分类,按照传输数据量的大小、传输速率的高低以及对时间的要求,可以分为 4 种传输类型:块传输、中断传输、同步传输和控制传输USB 功能设备和USB 主机程序之间便是...
  • USB学习笔记3:端点与传输模式

    千次阅读 2013-12-10 23:47:36
    主机通过发出器件地址和每次数据传输的端点号,向一个具体端点(FIFO)发送数据。每个端点的地址为0 到15,一个端点地址对应一个方向。所以,端点2-IN 与端点2-OUT 完全不同。 每个器件有一个默认的双向控制端点0,...
  • Slave_FIFO USB数据传输系统设计与实现
  • 在我们使用安卓手机通过数据线连接到pc的时候,如果手机没有开启usb开发者调试模式,pc则无办法成功读到我们的手机,部分APP也无办法正常使用,遇到此种情况我们需要想方设法将手机的usb开发者调试模式开启,如下...
  • usb2.0芯片cy68013,bulk传输slave fifo模式,FPGA控制器代码+配套固件源码,附使用说明书和测试例程,已调试成功,下载即可应用到工程中。
  • USB传输方式的一些总结

    万次阅读 2015-06-24 17:51:44
    USB传输的4种模式: BULK:块数据传输  追求数据完整性,CRC校验,故该种传输方式,虽然可以做大数据的传输,但是并不适合实时传输; Interrupt:中断传输 也是实时传输,对数据准确性有一定保证; ISO:同步...
  • 该项目包含用于实现FT2232H(FT245同步和异步模式)和用于高速USB传输的同步FIFO的文件。 要求: ipython2 ipython notebook cocotb iverilog gource gtkwave 用法: To open ipython notebook, run: ./run.sh...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 35,304
精华内容 14,121
关键字:

如何设置usb传输模式