21ic问答首页 - 为什么USB拷文件速度总是远低于理论值?
相关问题
- AT32F437 USB OTG功能?1 回答
- HC32L072 的usb在官网上没找到,小华的FAE能否分享一下 。谢谢4 回答
- 使用GD32F427芯片 USB功能开发遇到的问题0 回答
- GD32F470ZG外部flash模拟U盘,每次插拔都要重新格式化?2 回答
- GD32E507ZET6的USB CDC ACM移植到GD32E505ZET6上请求设备描述符失败5 回答
- 华大HC32F4A0的USB驱动移植+FATFS文件系统0 回答
- GD32C103的USBFS是否支持两个EP同时收发0 回答
- GD32E503VEt6可以进**读写但是无法挂载FATFS1 回答
- 求指教,请问NUC220VE3AN可以读写USB随身碟吗?5 回答
- 工业相机传输图片问题8 回答
本周活跃用户
- 1guijial511回答 3 次
- 2shszwqs回答 2 次
- 3nokiagx回答 2 次
- 4zero115回答 2 次
- 5Jacquetry回答 2 次
- 6muyichuan2012回答 2 次
- 7问天少年回答 2 次
- 8呐咯密密回答 1 次
赞0
评论
2021-01-25
赞0
评论
2020-12-13
赞1
评论
2020-12-02
赞0
对于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盘规范的原因,大多数操作系统要求定期检查U盘状态(是否是alive的),这个请求叫做test unit ready(各个OS都有,大家就不要吵了,U盘规范上的)。
同时传输512字节(一个扇区的数据)要包括命令标识,命令号,LBN(逻辑块地址)以及乱七八糟一堆堆的东西,一个扇区大概需要将近600字节的数据。同时主机端还要给予相应的回应。
至于前面有人说bulk传输不会占满带宽,这也不是完全对的,确实USB传输分为interrupt传输,bulk传输,ISO传输,但是只有interrupt预留了很少,ISO会保留30%左右,但当没有ISO传输存在的时候,bulk是可以占掉这一部分的。
评论
2020-12-01
您需要登录后才可以回复 登录 | 注册