端点:网络
端点位于USB 外设内部,全部通讯数据的来源或目的都基于这些端点,是一个可寻址的FIFO。spa
每一个USB 外设有一个惟一的地址,可能包含最多十六个端点。主机经过发出器件地址和每次数据传输的端点号,向一个具体端点(FIFO)发送数据。视频
每一个端点的地址为0 到15,一个端点地址对应一个方向。因此,端点2-IN 与端点2-OUT 彻底不一样。 每一个器件有一个默认的双向控制端点0,所以不存在端点0-IN 和端点0-OUT。事务
USB四种传输模式同步
控制传输、批量传输、中断传输、同步传输io
USB 有上述四种传输类型。枚举期间外设告诉主机每一个端点支持哪一种传输类型。软件
USB设备驱动向USB控制器驱动请求的每次传输被称为一个事务(Transaction),配置
事务有四种类型:Bulk Transaction、Control Transaction、Interrupt Transaction和Isochronous Transaction。请求
数据包包含部分:im
每次事务都会分解成若干个数据包在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设备发送通用的命令;
特色:控制传输是双向传输,数据量一般较小;数据传送是无损性的。
数据宽度:控制传输方式能够包括八、1六、32和64字节的数据,这依赖于设备和传输速度。
控制传输典型地用在主计算机和USB外设之间的端点0(EP0)之间的传输
控制传输也分为三个阶段,即令牌阶段、数据传送阶段、握手阶段,以下图所示。
图 控制传输事务
中断(Interrupt)传输事务
做用:主要用于定时查询设备是否有中断数据要传输;
特色:设备的端点模式器的结构决定了它的查询频率从1到255ms之间。
典型的应用在少许的分散的不可预测数据的传输键盘操纵杆和鼠标就属于这一类型
(数据量很小)
中断方式传输是单向的而且对于host 来讲只有输入(IN)的方式
在中断事务中,也分为三个阶段,即令牌阶段、数据传输阶段、握手阶段,以下图所示。
中断传输事务
同步(Isochronous)传输事务
做用:用于时间严格并具备较强容错性的流数据传输,或者用于要求恒定的数据传输率的即时应用中。例如执行即时通话的网络电话。
特色:保证传输的同步性。保证每秒有固定的传输量。
(与Bulk传输不一样)同步传输容许有必定的误码率。(这样符合视频会议等传输的需求,由于视频会议首先要保证明时性,在必定条件下,容许有必定的误码率。)
同步传输事务有只有两个阶段,即令牌阶段、数据阶段,由于不关心数据的正确性,故没有握手阶段,
以下图所示:
图 同步传输事务