USB定义了4中传输类型

控制传输:可靠的、非周期的、由主机软件发起的请求或者回应的传输,通常用于命令事物和状态事物。

同步传输:在主机与设备之间的周期性的、连续的通信,一般用于传输与时间相关的信息。这种类型保留了将时间概念包含于数据总的能力。但这并不意味着传输这样的数据的时间总是很重要,基传输并不一定很紧急。

中断传输:小规模数据的、低速的、固定延迟的传输。

批量传输:非周期的、打包的、可靠地传输。一般用于传输那些可以利用任何带宽,以及在没有可用带宽时,可以容忍等待的数据。

控制传输:

控制传输允许访问一个设备的不同部分。控制传输用于支持在客户软件和他的应用之间关于设置信息、命令信息、状态信息的传输。控制传输由以下几个事物组成:

a.建立联系,把请求信息从主机传到他的应用设备;

b.零个或多个数据传输事物,按照a事物中致命的方向传输数据;

c.状态信息回传,将状态信息从应用设备传到主机。

Setup包的数据格式属于一个命令集,这个集合能保证主机和设备之间正常通信。这个格式允许一些销售商对设备命令进行扩展。Setup包后的数据应具有USB定义的格式,除非这个数据是销售商提供的信息,回传的状态信息荏苒具有USB定义的格式。

控制传输使用的是消息通道上的双向信息流。所以,一旦一个控制通道被确认之后,这个通道就试用了具有某个端点号的两个端点,两个断电,一个输入,一个输出。

控制传输的端点决定了他所能接收或发送的最大数据静净负荷区长度。Setup后的所有数据包都要遵守这个约定,这个约定是针对这些数据包中的数据净负荷区的,不包括包中的协议要求的额外信息。

对于缺省控制通道的最大数据区长度,USB系统软件要从设备描述器的头8个字节中读出,设备将这8个字节放在一个包中发出,其中7个字节包含了缺省通道的wMaxPackSize。对其他的控制端点来说,USB系统软件在他们被设置后,获得此长度,然后USB系统软件就会保证数据净负荷区不会超长。另外,主机总是认为数据净负荷区的最大长度至少为8.

当端点做了两件事时,可以认为控制传输的数据阶段接收:

已经传了由Setup阶段指定的数据量

传了一个数据包,它的长度为零火他的数据区长度小于最大长度。

数据阶段结束后,主机控制器进入状态阶段,而不是开始另一个数据传输。如果他不这样做,端点会认为通道脱线而中止通道。如果主机在状态阶段收到一个大于最大长度的数据区,那么请求这次传输的IRP将被中止。

控制传输主要用于发送和接收与USB设备的配置信息有关的数据,如设置设备地址、读取设备描述符等。USB协议采用了差错控制和重试机制来保证控制数据传输的正确性,还使用 DataToggl讯制来确保整个传输过程中,主机与设备同
步。
所有USB设备都必须支持控制传输,并且都将端点0构成的管道作为缺省控制管道。当设备首次连接到主机上时,就使用缺省控制管道传输USB设备的确认信息、状态信息以及控制信息。控制传输的优先级最高。控制传输至少有两个事务阶段:建立阶段和状态阶段,在两者之间可能存在数据阶段。建立阶段,建立事务向外设的控制端点传输信息,PID是SETUP,数据的
PID使用DATAO。收到建立的外设必须接受,并向主机发送ACK信号;如果数据被损坏则将其丢掉,不返回ACK信号。
控制传输如果存在数据阶段的话,所有的数据阶段的事务必须有相同的方向,在数据阶段中要发送的数据大小和方向在建立阶段给出。控制传输的状态阶段是序列中的最后一个操作,并且其传输的方向总是与数据流的方向相反,其PID总是DATAI。控制传输使用的是消息怜道式是双向信息流,一旦确认了一个控制管道之后,该管道就使用端点号相同的输入端点和输出端点,该端点也就决定了它所能接收或发送的最大数据净负荷区,即数据包中所能加载的数据大小。
批量传输
批量传输的数据是流,主要是利用USB总线的空闲带宽进行数据传输的,可以在不确定的时间内传输大量数据,适合于数据量大,而对时间和传输速率要求不高的场合。批量传输时,有数据错误检查机制,如果数据包传输过程出错,则会重新发出数据包。在一个空闲的总线中,批量传输是速度最快的传输类型。只有全速与高速设备,才支持批量传输。通常打印机、扫描仪、USB硬盘、电子盘等设备都使用批量传输模式。
中断传输
由于USB不支持硬件的中断,所以必须靠PC主机周期性地轮询,以便获知是否有设备需要传送数据给PC。由此可知道,中断传输仅是一种轮询的过程,而非过去我们所认知的中断功能。而轮询的周期非常的重要,因为如果太低的话,数据可能会流失掉,但反之太高的话,则又会占去太多的总线带宽。对于全速装置(12Mbps)而言,端点可以设定Ilns至255ms之间的轮询间隔。因此,换算可得全速装置的最快轮询速度为IKHz。另外对于低速设备而言,仅能设定10ms至255ms的轮询间隔,如果因为错误而发生传送失败的话,可以在下一个轮询期间重新再传送一次。
应用这种传输类型的有键盘,摇杆或鼠标等称之为人机接口装置(HID)。其中,键盘是一个很好的应用例,当按键被按下后,可以经由PC主机的轮询将小量的数据传回给主机,进而了解到哪个按键刚被按下。
同步传输
同步传输提供了确定的带宽和间隔时间(latency)。它被用于时间要求严格并具有较强容错性的数据流传输,或者要求恒定数据传送率的即时应用中。同步数据要求确定的带宽值和确定的最大传送次数。对于同步传送来说,即时的数据传递比完美的精度和数据的完整性更重要一些。应用这类型的传输装置有:USB麦克风、喇叭等装置,如此可以确保播放的频率不会被扭曲。

USB的四种传输类型相关推荐

  1. USB实现隔离的四种方法分析-方法四最好: 数字隔离器 USB隔离芯片ADuM3160、ADuM4160

    USB实现隔离的四种方法分析 目前在办公室和家庭中使用的标准信息处理设备-个人电脑 (PC),使用通用串行总线(U S B) 与大多数外设进行通讯.标准化.低成本 及软件和开发工具的支持已使个人电脑成 ...

  2. 一些计算机u口无法使用的原因,USB设备无法使用故障四种排除方法

    当你想用闪存或移动硬盘来和电脑交换数据时,但插上USB口时你却发现系统居然无法识别出USB设备,这是什么原因造成的呢?其实这样的现象我们时常见到,接下来介绍一下简单的处理方法. 一.在排除USB存储设 ...

  3. 绕过安卓SSL验证证书的四种方式

    在此之前,移动端应用程序会直接忽略掉所有的SSL错误,并允许攻击者拦截和修改自己的通信流量.但是现在,很多热门应用程序至少会检查证书链是否是一个有效可信任的证书机构(CA)颁发的. 作为一名渗透测试人 ...

  4. 51单片机下载完程序后不亮_程序如何下载到单片机中?单片机常用的四种烧写程序方式介绍...

    单片机是一种可编程控制器,搭好硬件电路后,可以利用程序实现很多非常复杂的逻辑功能,与纯硬件电路相比,简化了硬件外围的设计.方便了逻辑的设计.丰富了逻辑的输出.不同厂家的单片机需要不同编程IDE来实现编 ...

  5. 神舟笔记本触摸板驱动_关闭笔记本触摸板的四种方法

    从某种意义上说,触摸板的使用,能够帮助我们解放一部分的工作.但是很多时候,我们都会用不到触摸板,因为我们还是会使用鼠标更多.这时,触摸板的存在就会显得有点碍事,因为我们会出现误触的情况.这时,我们就要 ...

  6. 电脑键盘下划线怎么打_电脑键盘失灵怎么办?你应该学会的四种方法

    电脑键盘失灵怎么办?现在很多网友在使用电脑办公的时候都会遇到电脑键盘失灵的问题,其实电脑键盘失灵的问题是可大可小的. 但如果是正在办公的话,那电脑键盘失灵可就会造成非常大的麻烦,连正在办公的操作都难以 ...

  7. 安卓投屏大师_还不会把手机投屏到电脑?教你四种方法,柯达带你直播玩的更溜...

    现在很多人都喜欢把手机的内容投屏到电脑上,毕竟手机小小的屏幕看着确实不够满足.特别是一些喜欢做直播的朋友,就会需要把手机投屏到电脑上来完成手游直播.可是却有很多朋友表示不知道如何操作才能够实现,今天小 ...

  8. win10无线投屏_手机投屏到电脑竟如此简单?四种方法教你把手机画面声音同时传到电脑...

    怎么把手机画面投到电脑上?手机投屏直播用什么投屏软件?在日常生活中很多人喜欢把手机投屏到电脑上,要么是因为手机屏幕太小,要么是想通过手机投屏到电脑的方式进行直播.其实手机投屏到电脑的方式远远不止一种, ...

  9. 计算机启动的四种方式,电脑有几种开机方式

    如果有人问你,你的电脑怎么开机?回答不外乎是:"直接按电脑机箱上的电源开关按钮不就得了".这当然是最简单的方法.不过,其实打开电脑还有许多方法,下面笔者就给大家介绍四种神奇的电脑开 ...

最新文章

  1. 程序员必看 c++笔试题汇总
  2. 初探Object Pascal的类(三)
  3. Java 洛谷 P1321 单词覆盖还原
  4. 浅谈 Kubernetes Scheduling-Framework 插件的实现
  5. java资源争夺_所有满足类似需求,争夺同类资源的组织和个人统称为(   )。...
  6. 进阶攻略|前端最全的框架总结
  7. LeetCode 363. 矩形区域不超过 K 的最大数值和(DP+set二分查找)
  8. 《TableStore最佳实践:GEO索引打造店铺搜索系统》
  9. 安装scws需要安装php吗,Linux 安装SCWS-1.2.3 安装说明(包括php扩展)
  10. 解决Spring+Quartz无法自动注入bean问题
  11. matlab2c使用c++实现matlab函数系列教程-range函数
  12. mediasoup server 启动失败排查
  13. 华为交换机eth口作用_华为交换机 eth-trunk
  14. 「SDUDOC」个人总结报告
  15. 图像处理3D 人体模型
  16. 计算机应用模块等级考试大纲,计算机等级考试大纲最新.doc
  17. proxmox VE备份优化手记--两次优化,大幅度提高性能
  18. 计算机机器视觉原理之全连接神经网络1
  19. Node.js篇01-安装与配置,基本使用,服务器,项目搭建,调试
  20. VUE组件通讯——父子互传、互调

热门文章

  1. latex 1图加标题_数学公式编辑工具——LaTeX简介
  2. 高职计算机文化基础考试试题,计算机文化基础期末试题(高职)新.doc
  3. minio数据迁移-mc
  4. vb语言中怎样编码窗体中所有字体加粗_VB窗口属性中文对照表
  5. 7-50 输出华氏-摄氏温度转换表 (15 分)
  6. python图片表格提取算法_python识别并提取表格中的文字--Apple的学习笔记
  7. 显示连接adms服务器断开,ADMS20常见问题及解答.doc
  8. INRIA DataSet数据集label转换为VOC2007数据集形式
  9. 如何利用qq群来推广网站 经验分享
  10. wget 命令 简单使用