精华内容
下载资源
问答
  • USB传输有四种传输类型使用的事务类型各不相同。其中批量传输、同步传输每次传输需要一个或多个事务,中断传输每次传输只需要一个事务,控制传输包括三个过程(建立过程、数据过程、状态过程),建立过程和状态过程...

    USB 数据传输方式分类及带宽占用率对比


    USB传输有四种传输类型使用的事务类型各不相同。其中批量传输、同步传输每次传输需要一个或多个事务,中断传输每次传输只需要一个事务,控制传输包括三个过程(建立过程、数据过程、状态过程),建立过程和状态过程分别需要一个事务,数据过程则可能包含0个多个事务。

    控制传输

    • 突发性、非周期性、主机软件发起的请求/响应通信,通常用于命令/状态操作。
      控制传输包括控制读传输、控制写传输、无数据的控制传输,主机在枚举设备的时候,首先进行插入检测,检测完毕之后,设备采用0号端点,以默认地址和主机进行控制传输来进行数据交互,进行传输的通道叫做控制管道。

    同步传输

    • 同步传输事务有只有两个阶段,即令牌阶段、数据阶段,因为不关心数据的正确性,故没有握手阶段。
      主机和设备之间的定期、连续通信,通常使用有关时间的信息。此传输类型还保留了封装在数据。然而,这并不意味着此类数据的交付需求总是时间紧迫的。
      同步传输使用同步事务(Isochronous Transactions)来传输数据。同步传输用在数据量大、对实时性要求高的场合,例如音频设备、视屏设备等,这些设备对数据延时敏感。
      这种事务能保证传输的同步性。例如在USB摄像头中传输视频数据的时候会采用这种事务,这种事务能保证每秒有固定的数量传输带宽,但与Bulk传输不同,同步允许有一定的误码率,这样符合视频会议等传输的需求,因为视频会议首先要保证实时性,在一定条件下,允许有一定的误码率。

    中断传输

    • 低频、有限制的延迟通信。
      中断传输是使用中断事务(Interrupt Transactions)来传输数据的。中断传输是一种可以保证主机查询频率的传输。中断端点在端点描述符中要报告主机对此端点的查询时间,主机会保证在小于这个时间间隔的范围内安排一次传输,比如HOST主机1ms内向鼠标设备请求一次数据。

    批量传输

    • 非周期性、大数据包突发性通信,通常用于任何可用带宽,也可以延迟到带宽可用为止。
      批量传输是使用批量事务(Bulk Transactions)来传输数据。批量传输分为批量读传输和批量写传输两种。批量读使用批量输入事务,批量写使用批量输出事务。批量传输通常在数据量大、对数据的实时性要求不高的场合,例如USB打印机、扫描仪、大容量存储设备等。

    USB数据传输方式对比
    通过上面知道,USB分为四种数据传输方式。这四种传输不同传输速率的有效带宽、最大数据包长度、传输错误管理、事务组成等的不同。
    但每种传输类型确定通信流的各种特性,包括:

    • USB规定的数据格式
    • 通信流方向
    • 数据包大小限制
    • 总线权限限制
    • 延迟限制
    • 所需数据序列
    • 错误处理
      在这里插入图片描述
    展开全文
  • USB数据传输

    2021-03-23 08:54:48
    USB系统中,正常状态下根集线器或集线器会一直周期性地发送SOF包,高速USB 总线的帧周期为125us,全速以及低速 USB 总线的帧周期为 1ms。如果USB线上一直处于空闲(Idle)状态超过3ms,设备应该把它当作一个挂起...

    在USB系统中,正常状态下根集线器或集线器会一直周期性地发送SOF包,高速USB 总线的帧周期为125us,全速以及低速 USB 总线的帧周期为 1ms。如果USB线上一直处于空闲(Idle)状态超过3ms,设备应该把它当作一个挂起(Suspended)信号,要求设备在10ms内进入挂起状态,并把设备所需的电流大小降到规定的值。设备处于挂起状态时,任何总线上的活动(非空闲信号)都可以把设备唤醒/恢复,从而退出低功耗模式。主机需要继续周期性地发送SOF包,否则设备又将进入suspend。

     

     

    包结构

    USB是以包为单位进行传输的,包只能在帧内传输。一个包包含多个域,不同的包包含不同的域,但都是以同步域(SYNC)开始,紧跟着包标识符(PID),最终以包结束符(EOP)结束。

    同步域:表示包要开始传输了,同时可以用来同步主机和设备的时钟。对于低速设备和全速设备,同步域使用的是00000001b;对于高速设备,同步域使用的是31个0后面跟1个1。

    包标识符:表示数据包类型。总共8bit,bit0~3表示PID值,bit4~7为PID的取反,用来校验PID。如上图PID为0101,表示SOF包。

    包结束符:表示数据包结束。

     

     

    包类型

    USB协议规定了四类包:令牌包(token)、数据包(data)、握手包(handshake)和特殊包(special)。

    令牌包:用来启动一次传输。由于USB是主从结构,一个USB主机可以对应多个设备,因此每次开启传输之前必须先使用令牌包和目标设备进行握手,告知设备本次传输的功能是什么、由谁来响应。

    令牌包有4种:输出(OUT)、输入(IN)、建立(SETUP)和帧起始(SOF)

    • 输出:通知某设备的某端点,主机将要输出一个数据包,请准备查收。
    • 输入:通知某设备的某端点,准备向主机输入一个数据包,请准备发送。
    • 建立:通知某设备的某端点(只能是端点0),主机将要输出一个数据包(只能是DATA0),该数据包是一个请求,请准备查收。
    • 帧起始:USB周期性发送帧起始包,全速设备每毫秒产生一个帧。USB主机会对当前帧号进行计数,通过SOF包发送帧号。

    数据包:用来传输数据。主机和设备都会维护自己的一个数据包类型切换机制,以解决握手包被损坏的情形:当数据包成功发送或者接收时,数据包类型切换。如果对方下一次使用的数据包类型跟自己不一致,则说明它刚刚已经成功接收到数据包;如果对方下一次使用的数据包类型跟自己一致,则说明刚刚的数据包没有发送成功,这是上一次的重试操作。

    握手包:用来表示一个传输是否被对方确认。

    • ACK:表示正确接收数据。
    • NAK:没有数据返回,或数据正确接收但没有足够空间容纳。主机接收到NAK后,会在合适时机重传。
    • STALL:设备无法执行这个请求,或端点已经被挂起。
    • NYET:本次数据已经正确接收,但没有足够空间来接收下一次数据。

     

     

    事务

    由于USB是主从结构,每一次交互都必须由主机发起,这样的过程称为一次事务:

    1. 主机通过令牌包发起。
    2. 数据包传送数据(可选)。
    3. 最后由接收者通过握手包确认。

     

     

    传输

    USB协议规定了4种传输类型:批量传输、等时传输、中断传输和控制传输。传输由一个或多个事务组成,其中批量传输、等时传输和中断传输都是一个事务;控制传输包括三个事务。

    批量传输:批量传输没有规定数据包中数据的意义和结构,具体的数据结构要由设备自己定义。通常用在数据量大、对数据的实时性要求不高的场合。批量传输分为:批量输出传输和批量输入传输。

    1. 批量输出传输:由OUT令牌包发起的一次事务。
    2. 批量输入传输:由IN令牌包发起的一次事务。

    中断传输:中断传输是一种保证查询频率的传输。主机保证在不大于某个时间间隔内安排一次传输事务。中断传输通常用在数据量不大,但是对时间要求严格的设备中。

    等时传输:等时传输用在数据量大、对实时性要求高的场合。等时传输过程中,主机不断安排传输事务。出现数据错误的时候不进行重传,因此也就没有应答包。

    控制传输:控制传输分为三个过程,建立过程、数据过程(可选)和状态过程。

    1. 建立过程:由SETUP令牌包发起的一次事务(只能发给端点0,只能使用DATA0)。
    2. 数据过程:数据过程是可选的,可以没有、包含一个或多个事务。数据过程第一个数据包必须是DATA1包,然后每次正确传输一个数据包后就在DATA0和DATA1之间交替。
    3. 状态过程:状态过程的传输方向和数据过程是相反的,状态过程只使用DATA1包。

     

     

    端点

    每个USB设备都有一个唯一的设备地址,设备地址是设备连接上主机时由主机分配的,主机主要依靠这个设备地址对USB设备进行访问。但是在设备内部地址会被分的更细,设备会分出一些端点来,每个端点在设备都会有唯一的端点号,这个端点号是设计设备时给定的。

    1. 端点号:一个设备最多可以包含16个端点,端点号为0-15。(每个USB设备必须要有端点0)
    2. 方向:其中每个端点地址对应一个方向。(端点0是双向的,既可以给主机发送数据,也可以从主机接收数据)
    3. 属性:一个具体的端点只能工作在一种传输模式下。例如:控制端点、批量端点、中断端点、等时端点。(控制端点0,作为对设备枚举和对设备进行基本的控制功能)

    控制端点:低速模式下,固定最大包长为8字节;全速模式下,可选8、16、32、64字节为最大包长;高速模式下,固定最大包长为64字节。

    等时端点:低速模式下,不支持等时传输;全速模式下,最大包长上限为1023字节;高速模式下,最大包长上限为1024字节;。

    中断端点:低速模式下,最大包长上限为8字节;全速模式下,最大包长上限为64字节;高速模式下,最大包长上限为1024字节。

    批量端点:低速模式下,不支持批量传输;全速模式下,可选8、16、32、64字节为最大包长;高速模式下,固定最大包长为512字节。

     

    展开全文
  • Hugh 于2020/12/14更新 电脑数据传输摘要您可以连接两台计算机、笔记型计算机,使用USB传输线快速传输资料。此页介绍了两种受欢迎且最省力的方式在PC之间传输文件。使用USB传输线或U盘进行PC传输,您更喜欢哪种取决...

    Hugh 于

    2020/12/14更新 电脑数据传输

    摘要

    您可以连接两台计算机、笔记型计算机,使用USB传输线快速传输资料。此页介绍了两种受欢迎且最省力的方式在PC之间传输文件。

    使用USB传输线或U盘进行PC传输,您更喜欢哪种

    取决于是否要使用资料传输软件,通常有两种方式可以连接两台计算机进行资料、文件、系统和程序的传输。

    一种是用USB传输线连接计算机,另一种是依赖专业的Windows简单传输软件,且无须使用传输线。例如,计算机传输软件  易我电脑迁移— 此软件支援通过网络或外接USB硬盘进行两端甚至多端资料传输。

    接下来,我们将详细介绍使用USB传输线或U盘进行PC到PC文件传输的过程。

    如何使用USB传输线将文件从计算机传输到另一台计算机

    下图为USB传输线,您可以使用它连接两台计算机,把线的两端插入计算机的USB接口。现在,让我们学习基本步骤。

    6425aff2ed78b4c6f22fb58b8dfd4ae5.png

    步骤1:启动两台PC,等待完成启动。

    步骤2:现在,拿出USB传输线。将线的一端插入计算机1的USB接口,另一端插入计算机2的USB接口。等到两台计算机都能辨识USB传输线。此动作应会启动安装精灵。

    步骤3:通过选择「USB Super link adapter」选择安装类型。点选「下一步」。

    步骤4:从「模式」下拉选单中选择「High-Speed Data Bridge」。

    步骤5:点选开始选单,选择「执行...」类型「devmgmt.msc」不带上下括号,按下Enter键。

    步骤6:点击小加号展开「系统装置」。检查以确保您的USB传输线被列为「Hi-Speed USB Bridge Cable」。传输线名称可能根据不同的制造商而稍微不同。

    步骤7:将与USB传输线一起的安装磁碟插入CD/DVD-ROM磁碟机。按照提示安装资料传输软件。重复此步骤,让另一台计算机安装相同的软件。

    步骤8:在两台计算机启动程序。您应该看到一个有两栏的视窗。左边显示您的计算机,右边显示远程计算机或您想要传输资料的新计算机。

    步骤9:根据您的喜好选择磁碟机/分割区。将要传输的资料夹和文件拖曳到所需位置。传输完成后中断传输线连接。

    如何使用U盘在计算机之间传输文件

    现在似乎很多人手边都没有USB传输线。相反,大多数人都人手一个USB,但不能同时在两台计算机上使用同个移动盘。为了节省时间和精力,想要快速在计算机之间传输文件,那就下载易我电脑迁移轻松完成传输工作。

    下载

     适用于 Windows 10/8/7/Vista/XP

    开始之前:在两台计算机上安装易我电脑迁移。将U盘插入源计算机。

    步骤1: 从源计算机建立所需文件的镜像到USB

    1. 在源PC上执行易我电脑迁移。进入「镜像传输」部分,点选「开始」。

    73af959d3898f217bac2ba75d53540f7.png

    2. 选择「创建镜像文件」>「创建」。

    a54ca221eb29664f11cc51d697858f50.png

    3. 设定镜像名称,点选「浏览」按钮选择您的USB以保存镜像。然后,点选「确认」继续。

    23d7aebc9f45d89b37ca6872109ea208.png

    4. 在「文件」部分,点选「编辑」选择文件,点选「完成」确认。然后点选「创建」传输所选的文件。

    610ac48dffa6e6b5dae150caaa10fc62.png

    传输完成后,点选「确认」。安全退出U盘并将其连接到目标PC。到步骤2,使用USB将镜像文件传输到新PC上。

    步骤2:

    1. 打开软件,点选「镜像传输」>「开始」>「从镜像文件恢复」>「恢复」。

    8e3de0e3d481d087631d3381c100b240.png

    2. 点选「浏览」找到U盘中的镜像文件。然后,选择「恢复」继续。

    e28b031d44f267d019a381d5eb13bd0c.png

    3. 选择「文件」>「恢复」。

    或点选「编辑」选择要传输的文件,点选编辑图标设定恢复镜像的位置>「完成」>「恢复」。

    8538094ca7b3e2ba03a0354478071532.png

    4. 传输完成后,点选「确认」退出。

    17c5605e450c03caf1fc53da3dda9bc2.png

    下载

     适用于 Windows 10/8/7/Vista/XP

    展开全文
  • USB 传输方式(中断)

    2021-11-04 15:10:26
    中断传输一般用于小批量的和非连续的数据传输,通俗的来说就是用于数据量小的数据不连续的但实时性高的场合的一种传输方式,主要应用于人机交互设备(HID)中的USB鼠标和USB键盘等。 USB中断传输和我们传统意义上的...


    中断传输一般用于小批量的和非连续的数据传输,通俗的来说就是用于数据量小的数据不连续的但实时性高的场合的一种传输方式,主要应用于人机交互设备(HID)中的USB鼠标和USB键盘等。

    USB中断传输和我们传统意义上的中断不一样。它不是由设备主动地发起一个中断请求,主机响应再操作,而是由主机保证在不大于某个时间间隔内按排的一次传输,所以USB的中断实际意义是实时查询操作,即USB的中断传输是主机在一定的时间不断地主动轮询设备检查其是否有数据需要传输,对此有3个重要参数需要在端点描述符中进行配置:

    • 传输类型
    • 每次传输的最大数据包大小
    • 轮循时间间隔

    中断端点需指定一个范围在1-255毫秒内的询查周期。主机保留足够的带宽以确保在指定频率上直接向中断端点发出IN或OUT事务。

    中断传输的特点

    • 高速设备和低速设备均可使用中断传输。
      全速模式最大包长上限为64个字节;
      低速模式最大最大包长上限为8个字节。
    • 高速模式的最大包长上限为1024个字节;中断传输端点要指定其可以在超高速总线上接受或传输的最大数据包负载大小。对于支持突发大小大于 1 的中断端点,唯一允许的最大的数据包负载大小为 1024 字节;对于突发大小等于 1 的中断端点,最大的数据包负载大小可以在 1 到 1024 之间任意大小。中断端点的最大突发大小是 3。

    中断传输事务

    USB中断数据流传输包括IN传输和OUT传输,分别对应于数据的读和写,其也分为3个阶段,分别为为令牌阶段、数据段和握手段。

    中断传输和批量传输的结构基本一致,只只是中断传输没有ping和nyet两种包。

    • 当主机准备接收中断时,其发送IN令牌包,USB设备响应并返回DATAx数据包,NAK或STALL握手包。
    • 当主机发送中断数据时,其发送OUT令牌包和DATAx数据包,而USB设备将向其返回ACK、NAK和STALL握手包。
      在这里插入图片描述

    令牌段:

    • 主机发出令牌包,寻址从机。

    数据段:

    • 从机如果接收令牌包出错,无响应;
    • 从机端点不存在,回送STALL;
    • 从机端点数据未准备好,回送NAK;
    • 从机端点数据准备好,回送数据包。

    握手段:

    • 主机如果接收数据包出错,无响应;
    • 主机如果接收数据包正确,回送ACK。
      在这里插入图片描述
    展开全文
  • USB 同步、等时传输方式同步传输的应用场合同步传输的特点同步传输的事务USB同步/等时传输方式抓包分析读数据 等时传输也有“同步传输”的叫法,一般用于要求数据连续、实时且数据量大的场合,其对传输延时十分敏感...
  • 你是'll need to do it all using some native C code interfacing with the USB device using USBFS. The big issue comes from the lack of documentation of linux'的usbfs . 基本上一切都必须通过ioc...
  • USB插拔数据控制传输

    2021-04-13 17:01:17
    USB Mass Storage中的BBB协议、SCSI协议的命令块传输传输USB插拔数据 1. 控制传输部分 第二周->三、Bus Hound抓包学习->2. USB插拔数据->控制传输、 2. 数据传输部分 参考文档和资料 USB Mass ...
  • 本文作为Linux USB Gadget驱动的第一篇,先介绍下如gadget驱动做简单的数据传输,顺便分析下udc驱动,以便于后面的上层驱动出现问题更好的定位问题。 1、注册function 内核为了层次分明的描述一个复合设备(在同...
  • 产品更新非常快,随着电脑硬盘标配容量逐渐趋于以T为电脑,电脑游戏软件越来越大,逐渐以G为单位,导致目前主流的USB 2.0接口传输速度已经无法满足喜欢拷贝大容量数据用户的需求了,拥有更高传输速度的USB3.0接口...
  • 我有一个桌面java应用程序,也是一个...所以我需要用简单的USB线传输数据,没有互联网连接/ WiFi /蓝牙/ adb.我找到两个可以在Windows上运行的Java MTP库来解决我的问题,以及android的USB Host / accesory功能:> ...
  • Python与STM32传输数据,由于我的开发板上没有USB3300,只能用全速,我要尽量增加带宽(设置为64Byte包和Bulk模式)。 环境: 系统:Ubuntu20.04 IDE:STM32CubeIDE 测试过的芯片:STM32F103C8T6,STM32F407ZET6 ...
  • USB 传输方式(控制)

    2021-11-04 14:23:49
    这里写自定义目录标题USB 控制传输方式控制传输的特点控制传输的过程建立过程数据过程(可选)状态过程建立过程控制传输示例图USB控制读USB控制写USB无数据控制写USB控制传输抓包分析读数据-USB控制传输抓包分析写...
  • USB的四种传输之一同步传输,用于数据实时性比较高,数据量较大但数据的完整性不是很严格的场合。 由于时间是同步传输的关键部分,因此USB设计者了解这些不同实体在USB中如何处理时间是很重要的。 在大部分的通讯...
  • RNDIS和ECM的热插拔问题最近修复了一波RNDIS 和 ECM的热插拔通信异常问题,添加了通过menuconfig配置RNDIS delay linkup的配置...当存在通信链接时 热插拔 eth_tx线程大几率会死等传输完成的信号量通知,导致LWIP...
  • 嘿,我已经尝试了一段时间了,但是我什么都没有我正在尝试从USB设备获取字节,这...有没有办法一遍又一遍地进行USB传输,直到没有更多数据进入?因为传入的数据量可以是8字节到几MB回复用户387184这样的事情可以传输大...
  • USB中断传输丢失数据

    2021-03-05 12:22:54
    因为几天我处理混乱的USB问题 .... 主要应用基于3个任务:主任务(UI),USB接收任务和USB传输任务 . USB的任务有单独的队列来插入接收数据(接收器)或获取来自主任务的发送(发送者)数据 . 我试图嗅探通过...
  • 在电脑和外部设备之间传输数据是一项常见的任务,照片,视频,重要文件,数据备份,它们时常会被来来...提升USB驱动的性能Windows的默认USB驱动使用“快速移除”数据传输策略,它会关闭写入缓存,导致数据传输变慢...
  • 它为客户端驱动和主机控制器驱动提供了主要数据结构和接口函数,主要有四类功能:客户端驱动管理,USB设备的配置和管理,主机控制器的管理,协议控制命令集和数据传输的管理。具体代码主要集中在 linux/drivers/usb...
  • 使用libusb api从java中的usb设备读取数据。我能够将数据写入设备但我无法从设备读取数据。我可以读取第一个数据组(大小:1个字节)但是当我想读取第二个数据组(大小:2个字节)时我得到超时错误(USB错误7:控制传输...
  • 三:传输过程的实现说到传输过程,我们必须要从URB开始说起,这个结构的就好比是网络子系统中的skb,好比是I/O中的bio.USB系统的信息传输就是打成URB结构,然后再过行传送的.URB的全称叫USB request block.下面从它的接口...
  • 批量传输和同步传输类似,是使用批量事务(Bulk Transactions)来传输数据。批量读使用批量输入事务,批量写使用批量输出事务。批量传输通常在数据量大、对数据的实时性要求不高的场合,例如USB打印机、扫描仪、大...
  • 您似乎认为该传感器...在由于协议是结构化的,通过逐行读取传感器的数据,可以大大简化代码。以下是一些帮助您开始的方法:import timedef parse_info_line(line):# implement to your own likinglogical_channel...
  • USB协议介绍二 传输

    2021-02-01 13:50:11
    在 HCI 之下,实际传输的数据包称为 Packet,每次上层 USB 传输都会涉及到 2-3 次底层的 Packet 传输,分别是: Token Packet: 总是由主机发起,指示一次新的传输或者事件 In: 告诉 USB 设备,主机我想要读点信息 Out...
  • 串行接口 (Serial Interface) 是指数据一位一位地顺序传送,其特点是通信线路简单,只要一对传输线就可以实现双向通信(可以直接利用电话线作为传输线),从而大大降低了成本,特别适用于远距离通信,但传送速度较慢。...
  • 小新Air15的右侧有两个usb接口,两个都能传送数据,其中上方的能给外部供电。 问题:在外接usb网口转换器时,发现插上没反应。 解决方案:进设备管理器,将有问题的驱动卸载,然后重启电脑即可 ...
  • 具备切换 Data Role 功能,既不耽误USB2.0数据传输,又不影响手机充电功能,并针对各大手机品牌的 USB-C 兼容性进行了特别优化,适合于手机音频转接器应用场景。 LDR6028产品规格书 采用SOP8封装,更适用于小尺寸...
  • 我正在Python中使用PyUSB,因为我将不得不监听USB端口以从电子卡中检索数据.目前,我必须通过读取连接到Raspberry-Pi的小键盘(USB连接)的直接输入来训练自己.当然,我不想读取键入的字符串,例如,我希望获得ASCII码.我...
  • 目录 1.前言 2.中断传输的结构 3.抓包分析 3.1中断读传输抓包分析 ...中断传输用于哪些频率不高,但是对周期有一定要求的数据传输。具有保证的带宽,并能在下一个周期对先前错误的传输进行重传。
  • 前面讲过USB一个传输由多个事务组成,一个事务由多个包实体组成。传输又分为控制传输、同步传输、批量传输、中断传输四种,上一节我们讲了控制传输,今天我们主要讲解同步传输。 同步传输用在数据量大、对实时性...
  • 使用android linux shell上的programm可以看到这些数据 .我的目标是在我的应用程序中查看这些数据,之后通过服务将这些数据传递给其他应用程序 .所以我的问题是:我可以“打开”从我的Android应用程序到USB端口的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 71,290
精华内容 28,516
关键字:

usb使用什么方式传输数据