USB上必须将数据组织成 事务 才能够进行传输。事务常有两个或三个包。令牌包用于启动一个事务,由主机发送;数据包传送数据,方向由令牌包确定;握手包常是数据接收方发送的,用于表示接收数据的状态。USB协议规定了4种传输类型:批量传输,同步传输,中断传输,控制传输。

① 批量传输
这是总线状态图,从上向下看表示了依次出现在总线上的数据。
②中断传输
中断传输是一种保证查询频率的传输。中断端点在其端点描述符中应该明确其中断查询间隔,主机在读取此数据后,应保证在小于该查询间隔的时间里进行一次传输。
③同步传输
用于数据量大,实时性要求较高的场合,但对数据的正确性要求有所降低。从其传输方式也可以看出,数据传出后不要求有应答包,不保证数据的正确性。


 ④控制传输

控制传输包括三个阶段:建立阶段、数据阶段(可选)、状态阶段。
下图是建立阶段的流程。建立阶段是一个输出事务,但是与上文中的传输不同。设备端要么返回ACK保证接收正确,要么不返回,表示接收错误。
数据阶段和状态阶段都与批量传输是一样的。数据阶段是可以选择的,有些控制传输没有数据阶段。下图是典型的控制传输的实例。

注意:

①一个端点只能工作在一个传输模式下,如控制端点只工作在控制传输下;批量端点只工作在批量传输下。
②端点0是每个USB设备必须具备的控制端点。
③USB设备的端点描述符中定义了该端点可以传输的最大包长度,传输过程不能违背这一定义。

28.USB的传输类型的更多相关文章

  1. 嵌入式Linux驱动学习之路(二十)USB设备驱动

    USB在接入系统的时候,以0的设备ID和主机通信,然后由主机为其分配新的ID. 在主机端,D+和D-都是下拉接地的.而设备端的D-接上拉时,表明此设备为高速设备:12M/s. D+接上拉时则是全速设备 ...

  2. linux驱动之USB驱动程序

    1. USB是主从结构的 所有的USB传输,都是从USB主机这方发起:USB设备没有"主动"通知USB主机的能力. 例子:USB鼠标滑动一下立刻产生数据,但是它没有能力通知PC机来 ...

  3. USB鼠标按键驱动

    现象:把USB设备接到PC 1. 右下角弹出"发现android phone" 2. 跳出一个对话框,提示你安装驱动程序 问1. 既然还没有"驱动程序",为何能 ...

  4. 【转】USB协议架构及驱动架构

    1. USB协议 1.1 USB主机系统 在USB主机系统中,通过根集线器与外部USB从机设备相连的处理芯片,称为USB主机控制器.USB主机控制器包含硬件.软件和固件一部分. 1.2 USB设备系统 ...

  5. 驱动07.USB驱动程序

    1 了解USB识别的过程 eg:在Windows系统下的一个现象:把手机的USB设备接到PC 1. 右下角弹出"发现android phone" 2. 跳出一个对话框,提示你安装驱 ...

  6. liunx驱动----USB驱动

    现象:把usb设备接入电脑 1.Windows发现设备 2.跳出一个对话框提示安装驱动程序 问1:既然没有驱动程序,为什么了够知道是什么驱动了?? 答1:Windows里面已经有了usb总线驱动程序, ...

  7. Linux驱动之USB总线驱动程序框架简析

    通用串行总线(USB)是主机和外围设备之间的一种连接.USB总线规范有1.1版和2.0版,当然现在已经有了3.0版本.USB1.1支持两种传输速度:低速为1.5Mbps,高速为12Mbps.USB2. ...

  8. ROS-RouterOS hAP ac2+usb 4G上网卡+小米新推的无线上网卡是绝配

    月租9元.每日缴1元.上网不限量 Model Tested RouterOS version Format Passthrough support TechnologiesZTE MF823 v6.8 ...

  9. USB设备驱动程序学习笔记(一)

    现象:把USB设备接到PC1. 右下角弹出"发现android phone"2. 跳出一个对话框,提示你安装驱动程序 问1. 既然还没有"驱动程序",为何能知道 ...

随机推荐

  1. WF4 常用类<第二篇>

    一.WorkflowInvoker 常用方法如下: 方法 说明 BeginInvoke() 使用指定的 AsyncCallback 和用户提供的状态以异步方式调用工作流 EndInvoke() 返回使 ...

  2. c++ string 转GUID及反转

    #include "stdafx.h" #include <string> #include <windows.h> using namespace std ...

  3. Muzei Live Wallpaper壁纸应用安卓源码项目

    这个刚刚在安卓教程网那里看到的,这个是Muzei Live Wallpaper壁纸应用源码,这是已经在Playstore上线了的android壁纸应用,点击壁纸界面可以磨砂透明效果以及一般背景效果之间 ...

  4. 在CentOS下安装WebBench进行web 性能测试

    Webbench是有名的网站压力测试工具 编译安装:1. wget http://www.sfr-fresh.com/unix/privat/webbench-1.5.tar.gz2. tar zxv ...

  5. Print a PeopleSoft Page with JavaScript

    1.  You will need a Long character field to hold the HTML string. You can use the delivered field HT ...

  6. JavaScript的闭包是什么意思以及作用和应用场景

    JavaScript闭包 1.什么是闭包 百度百科对于闭包的解释是:闭包是指可以包含自由(未绑定到特定对象)变量的代码块:这些变量不是在这个代码块内或者任何全局上下文中定义的,而是在定义代码块的环境中 ...

  7. luigi学习2-在hadoop上运行Top Artists

    一.AggregateArtistsHadoop class AggregateArtistsHadoop(luigi.contrib.hadoop.JobTask): date_interval = ...

  8. PHP入门基础(一)——标记风格、注释、表单获取、字符串类型、变量解析

    PHP标记风格: //XML风格//推荐的标记风格,可以在XML文档中使用 <?php echo '<p>XML Style</p>'; ?> //简短风格——需启 ...

  9. Google搜索镜像

    From:http://www.cnblogs.com/killerlegend/p/3783744.html Date:2014.6.12 By KillerLegend Google 搜索:htt ...

  10. ASP.NET MVC5学习笔记之Controller执行ControllerDescriptor和ActionDescriptor

    一. ControllerDescriptor说明 ControllerDescriptor是一个抽象类,它定义的接口代码如下: public abstract class ControllerDes ...