为什么USB拷文件速度总是远低于理论值? 比如: USB 高速2.0 , 速度才20多M最多。理论是: 480Mbps/8 = 60MB 
共7条
1/1 1 跳转至页
有点好奇,为何USB拷文件速度总是远低于理论值?
首先实际速度肯定低于理论速度,比如百兆以太网,能到10MB/s的速度就不错了,但是为什么USB差距这么大,主要是USB传输的无用包实在是太多了。
对于USB2.0,480Mbps是指总线的频率,也就说,总线信号每秒最多能传输这么多bit,这些信号包括控制信号和数据信号,现在来看看那数据信号都有什么:
每125us就有一个micro frame(微帧),每1ms还有一个frame,在USB规范里叫SOF,类似于一种同步信号。
标准USB传输过程:
in/out token,data0/1,ack,真正有效的数据就在data0/1里,如果一个data包放不下,那么会放到多个data里。
传输之前,对于2.0设备还要发起一个ping请求,确认设备是活着的。
USB不是一个全双工设备,通常的行为是这样:总线空闲,主机端请求数据,总线空闲,设备回应,总线空闲,主机准备接受数据,总线开始传输,传输完成总线空闲,主机检查数据无误,给设备回应说数据传输正常结束(不需要重传)。
由于U盘规范的原因,大多数操作系统要求定期检查U盘状态(是否是alive的),这个请求叫做test unit ready(各个OS都有,大家就不要吵了,U盘规范上的)。
同时传输512字节(一个扇区的数据)要包括命令标识,命令号,LBN(逻辑块地址)以及乱七八糟一堆堆的东西,一个扇区大概需要将近600字节的数据。同时主机端还要给予相应的回应。
至于前面有人说bulk传输不会占满带宽,这也不是完全对的,确实USB传输分为interrupt传输,bulk传输,ISO传输,但是只有interrupt预留了很少,ISO会保留30%左右,但当没有ISO传输存在的时候,bulk是可以占掉这一部分的。
共7条
1/1 1 跳转至页
回复
| 有奖活动 | |
|---|---|
| 硬核工程师专属补给计划——填盲盒 | |
| “我踩过的那些坑”主题活动——第002期 | |
| 【EEPW电子工程师创研计划】技术变现通道已开启~ | |
| 发原创文章 【每月瓜分千元赏金 凭实力攒钱买好礼~】 | |
| 【EEPW在线】E起听工程师的声音! | |
| 高校联络员开始招募啦!有惊喜!! | |
| 【工程师专属福利】每天30秒,积分轻松拿!EEPW宠粉打卡计划启动! | |
| 送您一块开发板,2025年“我要开发板活动”又开始了! | |
我要赚赏金打赏帖 |
|
|---|---|
| Chaos-nano:专为低资源单片机设计的轻量级协作式异步操作系统(ATMEGA328P轻量级操作系统)—— 详细介绍被打赏¥16元 | |
| FPGA配置被打赏¥10元 | |
| Chaos-nano协作式异步操作系统:赋能MicrochipAVR8位单片机的革新之路被打赏¥15元 | |
| 基于esp32开发时串口工具的注意点被打赏¥24元 | |
| 基于FireBeetle2ESP32-C5开发板的舵机控制被打赏¥20元 | |
| 【分享开发笔记,赚取电动螺丝刀】MAX78000开发板制作的电子相册被打赏¥32元 | |
| 基于FireBeetle2ESP32-C5开发板的超声波测距及显示被打赏¥21元 | |
| FireBeetle2ESP32-C5上RTC电子时钟的实现被打赏¥25元 | |
| 【分享开发笔记,赚取电动螺丝刀】MAX78000开发板读取SD卡被打赏¥23元 | |
| 【S32K3XX】Standby RAM 重启后数据异常问题调查被打赏¥38元 | |

我要赚赏金
