【USB笔记】USB2.0 不同传输类型下的理论最大速率
USB笔记 USB2.0 不同传输类型下的理论最大速率
USB2.0协议中定义了三种速率,低速(low speed),全速(full speed),高速(high speed)。
最大速率如下:
最大速率(bps) | |
---|---|
低速(low speed) | 1.5Mb/s |
全速(full speed) | 12Mb/s |
高速(high speed) | 480Mb/s |
USB传输的实际数据传输速率是要小于总线速率的,因为实际数据传输速率受到了以下几种情况的影响:
通信协议的开销:传输的过程中需要进行位识别、同步和错误检查等,同时根据传输类型的不同,还要进行不同的开销。
USB带宽的分配:USB协议根据不同的传输类型,会为其分配不同大小的带宽,然后根据总线实际的繁忙程度,不同传输类型会得到的带宽是不同的,且会实时变化的。
软件影响
例如USB控制器程序,总线驱动程序,设备驱动程序等各种软件程序,这些程序的实现方式不同,都会对实际传输速率产生影响。
硬件影响
硬件上,例如USB控制器实际支持的传输速率,CPU的处理速率,还有USB线材等都会对实际传输速率产生影响。
环境影响
环境上,例如在电磁干扰很强的环境下,会导致传输出现错误,进而导致重传等,都会对实际传输速率产生影响。
其他因素
所以,USB传输的实际数据传输速率是要小于总线速率的,并且难以准确的确定速率。
下面要描述计算的USB最大速率,是基于上述的第一点来进行讨论的,具体就是指不考虑任何外部影响,在总线空闲时不同速率模式下的不同传输类型的理论最大速率。因为是非常理论的速率,所以实际情况下是难以达到的。
首先先看一下各种传输类型的带宽分配方式。
各种传输类型的带宽分配方式
传输类型 | 带宽分配情况 |
---|---|
控制传输(Control Transfer) |
为低速和全速非周期传输保留10% 为高速非周期传输保留20% |
批量传输(Bulk Transfer) | 根据总线上的带宽情况进行分配 |
中断传输(Interrupt Transfer) |
要求低速/全速端点的任意帧为周期传输分配不超过90% 要求高速端点的任意帧为周期传输分配不超过80% |
等时传输(Isochronous Transfer) |
要求全速端点的任意帧为周期传输分配不超过90% 要求高速端点的任意帧为周期传输分配不超过80% |
高速high speed
USB高速状态(high speed)下总线的理论最大传输速率为480 Mb/s(即60 MB/s)。
对于高速high speed的情况下,各种传输类型的带宽分配如下:
传输类型 | 最大带宽分配 | 最大速率/(MB/s) |
---|---|---|
控制传输(Control Transfer) | 100% | 60 |
中断传输(Interrupt Transfer) | 80% | 48 |
批量传输(Bulk Transfer) | 100% | 60 |
等时传输(Isochronous Transfer) | 80% | 48 |
从Table High-speed Control Transfer Limits中可以看到,控制传输最大传输速率是每包数据64个字节,每微帧最大传输次数31,最大传输速率15.872MB/s。
从Table High-speed Interrupt Transaction Limits可以看到,中断传输最大传输速率是每包数据512个字节,每微帧最大传输次数13,最大传输速率53.248MB/s,但是中断传输最大只能分配80%的带宽,所以只能按80%的带宽重新计算,会发现每包数据256个字节,每微帧最大传输次数23,这时候的传输速率最高,最大传输速率47.104MB/s,带宽78.5%。然后对于USB设备端来说,每个微帧的最大传输次数为3,所以对于USB设备端来说,最大传输速率的计算方式不同,在不考虑高带宽端点(high-bandwidth endpoint)的情况下,最大传输速率计算变为,每包数据1024个字节,每微帧最大传输次数3,最大传输速率24.576MB/s,对于高带宽端点(high-bandwidth endpoint)来说,最大传输速率计算变为,每包数据2048个字节,每微帧最大传输次数2,最大传输速率32.768MB/s。
从Table High-speed Bulk Transaction Limits可以看到,批量传输最大传输速率是每包数据512个字节,每微帧最大传输次数13,最大传输速率53.248MB/s。
从Table High-speed Isochronous Transaction Limits可以看到,等时传输最大传输速率是每包数据1024个字节,每微帧最大传输次数7,最大传输速率57.344MB/s,但是等时传输最大只能分配80%的带宽,所以只能按80%的带宽重新计算,会发现每包数据256个字节,每微帧最大传输次数23,这时候的传输速率最高,最大传输速率47.104MB/s,带宽78.5%。然后对于USB设备端来说,每个微帧的最大传输次数为3,所以对于USB设备端来说,最大传输速率的计算方式不同,在不考虑高带宽端点(high-bandwidth endpoint)的情况下,最大传输速率计算变为,每包数据1024个字节,每微帧最大传输次数3,最大传输速率24.576MB/s,对于高带宽端点(high-bandwidth endpoint)来说,最大传输速率计算变为,每包数据2048个字节,每微帧最大传输次数2,最大传输速率32.768MB/s。
总结如下:
对于USB主机端各种传输类型的理论最大速率:
传输类型 | 数据有效载荷(Data Payload)/Byte | 最大传输次数(Max Transfers)/每微帧(Microframe) | 最大速率(Max Bandwidth)/(MB/s) |
---|---|---|---|
控制传输 | 64 | 31 | 15.872 |
中断传输 | 512 | 23 | 47.104 |
批量传输 | 512 | 13 | 53.248 |
等时传输 | 512 | 23 | 47.104 |
对于USB设备端各种传输类型的理论最大速率:
传输类型 | 数据有效载荷(Data Payload)/Byte | 最大传输次数(Max Transfers)/每微帧(Microframe) | 最大速率/(MB/s) |
---|---|---|---|
控制传输 | 64 | 31 | 15.872 |
中断传输 | 1024 | 3 | 24.576 |
批量传输 | 512 | 13 | 53.248 |
等时传输 | 1024 | 3 | 24.576 |
全速full speed
USB全速状态(full speed)下总线的理论最大传输速率为12 Mb/s(即1.5 MB/s)。
对于全速full speed的情况下,各种传输类型的带宽分配如下:
传输类型 | 最大带宽分配 | 最大速率/(MB/s) |
---|---|---|
控制传输 | 100% | 1.5 |
中断传输 | 90% | 1.35 |
批量传输 | 100% | 1.5 |
等时传输 | 90% | 1.35 |
从Table Full-speed Control Transfer Limits中可以看到,控制传输最大传输速率是每包数据64个字节,每帧最大传输次数13,最大传输速率0.832MB/s。
从Table Full-speed Interrupt Transaction Limits可以看到,中断传输最大传输速率是每包数据64个字节,每帧最大传输次数19,最大传输速率1.216MB/s,使用带宽81.07%,小于90%。对于USB设备端来说,每帧的最大传输次数为1,所以最大传输速率为0.064MB/s。
从Table Full-speed Bulk Transaction Limits中可以看到,批量传输最大传输速率是每包数据64个字节,每帧最大传输次数19,最大传输速率1.216MB/s。
从Table Full-speed Isochronous Transaction Limits可以看到,等时传输最大传输速率是每包数据64/128/256个字节,每帧最大传输次数20/10/5,最大传输速率1.28MB/s,使用带宽85.33%,小于90%。对于USB设备端来说,每帧的最大传输次数为1,所以最大传输速率计算变为,每包数据1023个字节,每帧最大传输次数1,最大传输速率1.023MB/s。
总结如下
对于USB主机端:
传输类型 | 数据有效载荷/Byte | 最大传输次数/每帧(Frame) | 最大速率/(MB/s) |
---|---|---|---|
控制传输 | 64 | 13 | 0.832 |
中断传输 | 64 | 19 | 1.216 |
批量传输 | 64 | 19 | 1.216 |
等时传输 | 64/128/256 | 20/10/5 | 1.28 |
对于USB设备端:
传输类型 | 数据有效载荷/Byte | 最大传输次数/每帧(Frame) | 最大速率/(MB/s) |
---|---|---|---|
控制传输 | 64 | 13 | 0.832 |
中断传输 | 64 | 1 | 0.064 |
批量传输 | 64 | 19 | 1.216 |
等时传输 | 1023 | 1 | 1.023 |
低速low speed
USB低速状态(low speed)下总线的理论最大传输速率为1.5 Mb/s(即0.1875MB/s)。
对于低速low speed的情况下,各种传输类型的带宽分配如下:
传输类型 | 最大带宽分配 | 最大速率/(MB/s) |
---|---|---|
控制传输 | 100% | 0.1875 |
中断传输 | 90% | 0.16875 |
从Table Low-speed Control Transfer Limits中可以看到,控制传输最大传输速率是每包数据8个字节,每帧最大传输次数3,最大传输速率0.024MB/s。
从Table Low-speed Interrupt Transaction Limits可以看到,中断传输最大传输速率是每包数据8个字节,每帧最大传输次数6,最大传输速率0.048MB/s,使用带宽25.6%,小于90%。对于USB设备端来说,每帧的最大传输次数为1,所以最大传输速率为0.008MB/s。
总结如下
对于USB主机端:
传输类型 | 数据有效载荷/Byte | 最大传输次数/每帧(Frame) | 最大速率/(MB/s) |
---|---|---|---|
控制传输 | 8 | 3 | 0.024 |
中断传输 | 8 | 6 | 0.048 |
对于USB设备端:
传输类型 | 数据有效载荷/Byte | 最大传输次数/每帧(Frame) | 最大速率/(MB/s) |
---|---|---|---|
控制传输 | 8 | 3 | 0.024 |
中断传输 | 8 | 1 | 0.008 |
小结
可以看到,上述所有的最大速率计算都是非常理论化的,是基于USB2.0协议,在总线完全空闲的情况下,并且只进行单一传输类型下,不考虑任何外部影响的情况下的最大传输速率。
由于水平有限,上述的最大传输速率计算可能有误,请谨慎参考。
[参考资料]
Universal Serial Bus Specification Revision 2.0
USB2.0与OTG规范及开发指南
USB Complete, 5th Edition
USB开发大全
本文链接:https://blog.csdn.net/u012028275/article/details/122018056
【USB笔记】USB2.0 不同传输类型下的理论最大速率相关推荐
- USB一致性测试-USB2.0测试
USB一致性测试-USB2.0测试 泰克 USB Tx 和 Rx 软件解决方案可满足负责设计基于 USB 3.1 C 型.USB 3.1 和 USB 2.0 的系统(符合 USB-IF 测试标准)的工 ...
- USB2.0电气层信号的表示及速率的识别过程
USB2.0电气层信号的表示及速率的识别过程 本文为个人学习中的笔记整理,可能存在一些错误或描述不准确的地方,欢迎大家指正,共同学习. 1.USB的一些基本概念 1.1 概念1:host和device ...
- USB 之一 USB2.0 规范详解 第一部分
注意 对于物理特性仅做简单说明 主要是针对 USB 2.0 规范的前八章.后续见 第二部分 关于USB 2.0 在USB官方网站( http://www.usb.org/ )包含了我们必需的所有的 ...
- USB和USB2.0万能驱动
<USB万能驱动下载>下载(点击下载) <USB2.0万能驱动下载>下载(点击下载) USB设备的万能驱动,很多人的usb设备因为太多或没有不能正常使用设备.所以我就从网络上把 ...
- linux pci 扩展usb,PCI USB卡 USB2.0卡 PCI扩展卡 PCI转4USB口 VIA转换卡USB扩展卡
产品名称:USB2.0 PCI扩展卡 4口 PCI USB扩展卡 USB转PCI卡 主芯片:VIA芯片 产品介绍: 1.数据传输率可达1.5/12/480Mbps 2.符合OHCI 1.0a标准 3. ...
- 通用串行总线USB接口——USB2.0通信协议总结(USB通信机制、描述符、数据包类型、传输类型)
[系列专栏]:博主结合工作实践输出的,解决实际问题的专栏,朋友们看过来! <QT开发实战> <嵌入式通用开发实战> <从0到1学习嵌入式Linux开发>
- 【USB笔记】 USB2.0 包格式 握手包Handshake Packets
USB笔记 USB2.0 包格式Packet Formats 握手包Handshake Packets 说明 介绍的是USB 2.0协议中包格式(Packet Formats)的握手包(Handsha ...
- 【USB笔记】 USB1.0与USB1.1差异概述
USB笔记 USB1.0与USB1.1差异概述 为什么写这个 之前打算整理一下不同的USB协议的差异,由于对于这些协议之间的区别不是太了解,就直接通过搜索引擎进行查找.然后看某度百科,某度知道,某乎, ...
- 一文读懂USB TypeC与USB-PD。TypeC引脚定义-24P 16P 6P,CC1、CC2的作用,USB-PD介绍,USB2.0/3.0接口类型一览
USB TypeC & USB-PD & USB接口类型 24P USB-TypeC 引脚定义 母头/母座 公头/插头 引脚功能定义 引脚功能分布情况 16/12P USB-TypeC ...
最新文章
- Linux界面自动化测试框架不完全汇总
- Centos 7 修改主机名
- Visual Basic 15语言新特性
- 关闭C#主窗体弹出是否关闭对话框
- “妈,你当年咋看上我爸的?”网友晒爸妈结婚照,笑抽了!
- Bzoj 4422: [Cerc2015]Cow Confinement(线段树+扫描线)
- github创建maven项目过程
- 兄弟9055cdn硒鼓清零_dcp—9020cdn硒鼓怎么清零
- JAVA常见命名规范
- Spark 基础 —— sc.broadcast
- 使用EntityFramework连接 Mysql
- DNS Server 的设置使用
- 在vue中实现picker样式_vue mint-ui学习笔记之picker的使用
- Linux命令之打包tar
- js防止双击事件触发单击事件
- XUI Android原生的UI框架的配置指南
- 22:紧急措施http://noi.openjudge.cn/ch0107/22/
- 单片机入门(预备知识)-适合初学者
- python pandas csv 写文件_Pandas读写CSV文件的方法介绍(附代码)
- Machine Learning Algorithms Study Notes(4)—无监督学习(unsupervised learning)
热门文章
- html怎么把设置按钮居中显示图片,html如何设置图片居中
- 局域网IP地址的分配、管理和设置(图)
- Pano2VR如何制作全景图?全景图如何添加热点?
- C# .Framework生成条形码
- 机器学习笔记之玻尔兹曼机(一)基本介绍
- i7 1165g7核显相当于什么显卡
- USB协议详解第0讲(系列博文介绍)
- abb机器人示教器io信号关联_如何在示教器上配置ABB机器人的输入/输出信号?(多图)...
- AI英雄 | 八问机器学习泰斗Jordan教授:AI其实并不神奇
- 要不要考PMP项目管理培训?