0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

USB的四大传输方式介绍

电子设计 来源:电子设计 作者:电子设计 2022-02-09 14:37 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

来源:公众号【鱼鹰谈单片机
作者:鱼鹰Osprey
ID :emOsprey

我们知道,传输事务解决了主机、设备之间交互一次数据的问题,但是有些端点是需要进行多次双向传输或者多次单向传输的,同时因为设备的功能不同,所需要的带宽和传输特性也不同,那么就需要一个更上层的机制解决以上问题,四大传输应运而生。

控制传输(Control Transfers)、中断传输(Interrupt Transfers)、批量传输(Bulk Transfers)、同步传输(Isochronous Transfers)称之为四大传输。
接下来我们看看这些传输各自的特点,同时了解一下这些传输方式在生活中的应用。

控制传输

一种可靠的双向传输,所有USB设备必须支持的一种传输方式,该传输一般发生在端点0 中,用于USB的枚举、配置(也可能进行其他数据传输)等阶段。而我们接下来需要详细介绍的传输方式就是它。

当设备插入主机后,主机通过端点 0 (还记得前面说它是双向端点吗)进行控制传输,通过一系列的数据交互,主机可以了解设备有多少个接口,有多少可用的端点等各种设备信息。

你的设备能否被主机(电脑)正确识别,完全取决于控制传输能否正常进行,这是 USB 学习中最先遇到的拦路虎,也是很多人望而却步的一个地方,但是希望大家通过鱼鹰的介绍能够真正掌握它。

在带宽(所谓带宽,可以认为主机对USB总线进行分时数据传输,比如1秒中使用100毫秒用于控制传输)使用上,高速端点的控制传输不能占用 20 %的微帧(125 us 一个微帧),全速和低速不能超过 10 %(1 ms 一帧

在控制传输中,为了实现完整的一次控制传输,一般由三个阶段组成:

建立阶段、数据阶段(该阶段可能没有,由建立阶段的数据决定)、状态阶段,每一个阶段都由传输事务组成,即存在三个数据包的传输。

我们可以具体看看上面最简单的无数据阶段控制传输(其他传输类似):

100052997-107830-2.png

这里需要特别注意的是,建立阶段一定是DATA0 数据包,之后如果有数据阶段,将进行翻转,变成 DATA1,并且在每次正确数据传输后都会进行一次翻转,这个机制用于保证数据被正确接收,而不是发送方发送的重复数据包(如果对方没有正确接收数据,DATAx不会翻转

在状态阶段,一律使用 DATA 1进行回复,状态阶段的数据包中的数据为空,也就是说不携带任何数据。

同时,根据建立阶段中的数据要求不同,比如要求发送数据或者接收数据,将使用相反的 IN 或 OUT 令牌完成状态阶段,比如建立阶段主机要求发送 15 字节到设备中,那么数据阶段将先使用 OUT 令牌发送数据,之后在状态阶段主机将使用相反的 IN 令牌获得空数据包。

因为传输时,可能需要多次传输事务才能完成数据阶段,那么如何判断对方数据传输已经完成,从而让主机不再发送IN或OUT令牌包传输数据呢?

有两种可能:

如果传输的数据大小刚好是端点支持数据大小的整数倍,比如一个端点最大数据包长度为64字节,如果传输128字节,就需要在最后发送一个空数据包。

而如果要传输127字节,那么因为最后一个包不是满负载(只有63字节),所以也将认为数据传输完成。

100052997-107831-3.png

也就是说,最后一个数据包一定不是满载的,前面的数据包一定是满载的。这代表了数据阶段的结束。

当完成了以上几个阶段,一次控制传输才算完成。

正因为控制传输的情况比较复杂,所以学习起来也比较麻烦。

中断传输

中断传输时一种可靠的单向传输方式,采用定时轮询的方式收发数据,每次主机对中断端点查询时,如果设备有数据传输,则返回数据,否则NAK,表示未准备好。

同理,如果是主机发送数据,如果设备没有准备好接收,也将使用 NAK 回复。

如果需要双向传输,必须使用 IN 和 OUT 两个端点。

中断传输的延迟有保证,也就是说,可以在有限的延迟中完成传输,并且支持错误重传(在下一个周期进行重传),所以它是可靠的。因为可能产生错误重传,所以中断传输也会采用 PID 翻转的机制保证收发端数据的同步。

中断传输一般用于对延迟要求比较严格,同时数据量较小,比如我们常见的键盘、鼠标就是采用中断传输方式。

当你的鼠标、键盘插入电脑后,电脑在枚举配置成功后,就会按照描述符中的查询时间定时发送 IN 令牌包,获取所需的数据,如果设备没有数据发送,则回复 NAK。

对于全速端点,中断传输的间隔在 1 ms 到 255 ms 之间,对于低速端点,间隔时间限制在10ms到255ms之间, 对于高速端点,间隔为2^bInterval-1×125us, bInterval的值在1到16之间。

CMSIS-DAP 调试器使用的就是中断传输,全速模式下1 ms 64 字节一包数据,所以最大传输速率是64 K,速率不是很高,如果使用高速,可以达到125 us 1024 字节,还有一种高速高带宽的中断端点,125 us 微帧内可以进行三次中断传输,即125 us 内可传输 3072 字节。

100052997-107832-4.png

(注意上图未画出握手包)

批量传输

批量传输是一种可靠的单向传输,但是和中断传输不同,传输延迟没有保证,它会尽可能的利用可以利用的带宽完成传输(说白了,就是个捡漏的),适合数据量比较大的传输。
当然如果说总线上只有批量传输,那么延迟也是能保证的,毕竟没人和它竞争带宽。

现实中,U盘就是采用批量传输,因为它对时间延迟不是那么严格,只要可靠的完成大量数据的传输即可。

低速设备不支持批量传输,高速设备批量最大包长度为512字节,全速批量可以为 8、16、32、64,选择余地比较大。

因为会错误重传,所以需要 PID 的翻转机制,即按照 DATA0 – DATA1 – DATA0 – DATA1……的方式翻转,允许 3 次以下的传输错误,超过三次,主机将认为端点功能错误 (STALL),放弃该端点的传输,需要主机使用控制传输恢复该端点的功能。

注意上面的 STALL 回复,这个代表端点错误,一旦回复该 STALL,如果没有主机干预,设备将一直使用 STALL 回复,说明该端点不支持该功能或者产生了错误。

同步传输

这种传输是四大传输中唯一不可靠的传输方式,但是好处就是可以保证带宽,并且没有延迟,而且因为是不可靠的传输,所以没有握手包,也不支持 PID 翻转,主机在安排这些传输事务时,同步传输拥有最高的优先级。

高速同步端点最大包长度为 1024,全速为 1023。

高速端点在一个微帧内仅允许一次同步传输事务,而高速高带宽的同步端点可以在一个微帧内传输三次,即3072 Byte / 125us。

在现实中,这种传输用于摄像头、USB音响等,因为它们对实时性要求比较高,但是可以容忍错误(摄像头偶尔出现了一帧有错误的画面,没多大关系,因为下一帧画面马上就会传过来

100052997-107834-6.png

在前面的介绍中,一直都有帧、微帧的身影,那么它是什么?

我们知道,令牌包中有一种特殊的包,称之为 SOF (start of frame)包,格式如下:

100052997-107835-7.png

CRC校验为 5 bit,和 11 bit 的帧号刚好凑成 16 bit 两个字节。

高速设备中每过 125 us 发出一个微帧,全速每过 1 ms 发出一帧,之后才会开始数据传输。

主机在每个帧(微帧)的开始传输一个SOF,每次帧号加 1,当达到 0x7FF 时,将清零重新开始计数。

看图理解 SOF 和其他传输的关系:

CRC校验为 5 bit,和 11 bit 的帧号刚好凑成 16 bit 两个字节。

看上图可以了解到,每过一定时间(1 ms或者 125 us),主机发出 SOF 包,接下来进行传输事务(四大传输中的一种),每一个传输事务中又包含了三个数据包(我们可以认为SOF就是 USB 总线中的时钟信号

通过上图,我们就可以理解帧、传输、传输事务、包之间的关系了。

再用另一个图看看四大传输之间的关系:

100052997-107837-9.png

可以看到,假如总线中有四类数据需要传输,那么主机将在每帧开始发送SOF包,然后优先安排同步传输,之后安排中断传输,其次是控制传输,最后才是批量传输(大容量传输),所以说批量传输是专业捡漏的。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_42876465/article/details/108250959

审核编辑:何安

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • usb
    usb
    +关注

    关注

    60

    文章

    8480

    浏览量

    286044
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    技术干货 | 锂电池保护芯片工作原理详解:四大机制守护电池安全

    锂电池为何“娇贵”?保护芯片如何24小时防止过充、过放和短路?本文深入浅出解析锂电池保护IC的四大核心职责与技术原理。
    的头像 发表于 03-20 10:54 614次阅读
    技术干货 | 锂电池保护芯片工作原理详解:<b class='flag-5'>四大</b>机制守护电池安全

    汽车连接器的四大基本结构组件解析

    在汽车工业迅猛发展的当下,汽车上的各类功能件与零部件持续朝着智能化、精细化以及高可靠性的方向迈进。这一趋势不仅对汽车连接器的结构设计、外观设计提出了更为严苛的标准,在材料选用上也要求更高,使得汽车连接器的型号日益丰富多样。下面为您详细介绍汽车连接器的四大基本结构组件。
    的头像 发表于 03-09 09:09 263次阅读

    是德示波器DSOX1202A与电脑的种连接方式及操作步骤详解

    是德科技(Keysight)DSOX1202A示波器作为高精度电子测量设备,广泛应用于电子工程、通信测试与自动化调试场景。为实现数据实时采集、波形分析与远程控制,用户需通过USB、LAN、GPIB或串口将示波器与电脑互联。本文将结合官方指南与实操经验,系统介绍
    的头像 发表于 01-13 17:48 1901次阅读
    是德示波器DSOX1202A与电脑的<b class='flag-5'>四</b>种连接<b class='flag-5'>方式</b>及操作步骤详解

    TUSB8041A端口USB 3.1 1代集线器的技术剖析与应用

    (TI)的TUSB8041A端口USB 3.1 1代集线器,从特性、应用、设计要点等多个方面进行详细介绍。 文件下载: tusb8041a.pdf 一、TUSB8041A特性概览 1.1 端口与连接特性
    的头像 发表于 12-18 15:20 534次阅读

    TMUXHS221LV:USB 2.0 高速信号传输的理想之选

    TMUXHS221LV:USB 2.0 高速信号传输的理想之选 在电子设备的设计中,高速信号的传输和处理一直是工程师们关注的重点。今天,我们要介绍一款由德州仪器(TI)推出的高速双向
    的头像 发表于 12-16 10:45 451次阅读

    Amphenol SOCAPEX USB3 FTV放大器:突破USB3信号传输距离限制

    Amphenol SOCAPEX USB3 FTV放大器:突破USB3信号传输距离限制 在电子设备的连接与数据传输领域,USB接口一直扮演着
    的头像 发表于 12-11 11:15 536次阅读

    光纤的四大基础分类体系

    光纤作为现代通信的“神经脉络”,其分类体系如同精密的机械结构般严谨。根据国际电信联盟(ITU-T)标准及行业实践,光纤主要从个维度进行科学划分: 一、按传输模式分类:单模与多模的“独行侠
    的头像 发表于 11-03 11:02 951次阅读

    和而泰发布四大自研核心技术平台

    从智能家电到工业机器人,从新能源汽车到低空经济,和而泰的四大技术平台正在重新定义智能设备的"生命系统"。
    的头像 发表于 10-13 16:08 1465次阅读

    触觉智能RK3576开发板OpenHarmony开源鸿蒙系统USB控制传输功能示例

    本文介绍OpenHarmony开源鸿蒙系统的USB控制传输功能实现及相关代码示例,基于触觉智能RK3576开发板PurplePiOH2演示。OpenHarmony的USB通信
    的头像 发表于 09-30 16:31 1836次阅读
    触觉智能RK3576开发板OpenHarmony开源鸿蒙系统<b class='flag-5'>USB</b>控制<b class='flag-5'>传输</b>功能示例

    汇川技术四大架构重磅发布

    2025 汇川技术爆品发布会上,FA、运控、传动、机器人四大 IPMT 主任携覆盖 “设计 - 制造 - 传动 - 执行” 的全栈架构登场,为中国制造业智能化转型破局。这不是简单产品升级,而是重构智能制造底层逻辑的革命。
    的头像 发表于 09-02 15:54 4994次阅读
    汇川技术<b class='flag-5'>四大</b>架构重磅发布

    空气是如何“钻空子”的?压铸件气密检测泄漏的四大元凶

    压铸件泄漏是制造业常见质量难题,看似偶然,实则是设计、工艺、材料、检测四大环节的“漏洞”共同导致。空气通过这些薄弱点侵入产品,引发质量事故。下面深度剖析四大元凶,并提供实战解决方案。1.设计缺陷隐形
    的头像 发表于 08-29 15:39 1428次阅读
    空气是如何“钻空子”的?压铸件气密检测泄漏的<b class='flag-5'>四大</b>元凶

    基于FPGA的USB数据传输

    你也许会有疑问,明明有这么多通信方式和数据传输(SPI、I2C、UART、以太网)为什么偏偏使用USB呢?
    的头像 发表于 08-06 14:47 5086次阅读
    基于FPGA的<b class='flag-5'>USB</b>数据<b class='flag-5'>传输</b>

    芯片制造的四大工艺介绍

    这一篇文章介绍几种芯片加工工艺,在Fab里常见的加工工艺有种类型,分别是图形化技术(光刻)、掺杂技术、镀膜技术和刻蚀技术。
    的头像 发表于 07-16 13:52 4375次阅读
    芯片制造的<b class='flag-5'>四大</b>工艺<b class='flag-5'>介绍</b>

    振弦式应变计两种数据传输方式介绍

    着数据采集的效率与可靠性。下面给大家介绍振弦式应变计两种数据传输方式。一、有线传输:稳定可靠的传统方案有线传输是振弦式应变计最传统的数据
    的头像 发表于 07-15 13:38 777次阅读
    振弦式应变计两种数据<b class='flag-5'>传输</b><b class='flag-5'>方式</b><b class='flag-5'>介绍</b>

    JAE USB Type-C连接器产品概述

    USB Type-C接口不仅实现了形状的统一,还能灵活支持多种通信规格。此外,电力传输是您应该记住的一项USB功能。随着USB标准的修订,这项电力
    的头像 发表于 07-11 09:42 1286次阅读
    JAE <b class='flag-5'>USB</b> Type-C连接器产品概述