当前位置: 首页 > news >正文

浅谈 USB Bulk 深入浅出 (3) - USB Bulk 装置传输的注意事项

来源:大大通 
作者:冷氣團

1 USB Bulk 是什么

USB 是即插即用使用差动信号的装置界面,是以 端点 ( Endpoint ),做为传输装置的输出入端,透过不同的端点 ( Endpoint ) 和模式,来进行与装置的沟通,USB Bulk 就是USB 四种传输模式之一的批量资料传输 ( Bulk ) 的端点传输 ( 注1 )

2 USB Bulk 装置传输的注意事项

如果不想自已写 Windows 的 driver ,可以使用 目前 Windows 已有内建 driver 的 BULK 装置,例如 USB to com port 的  USBCDC ,或是需要 File system 的 Mass storage ,一般称为USB 随身碟 ( U 盘 )

使用 USB Mass storage ,则 Device  就会形成一个虚拟的 USB Disk ,在传输档案的过程,就是从电脑端利用此 USB Disk 与 Device 的 USB Endpoint 来做 Bulk 传输使用,但是 此种方式有可能传送或接收时,资料来不及给或 check sum 不对时,会将此次 sector 在传完全部资料后再重新传送一次,且会在最后的 FAT 表资料之前。可以从 每次的 offset 来做判断,是否是重复送的资料,如果是要以后来的资料为准。

若是没有重传的流程来说,是先传送  FAT 表内容,档头,档案资料,档尾,再传送 FAT 表内容,其中 档头,档案资料,档尾 的偏移值是连续的。 

若是以有重传的流程来说,是先传送  FAT 表内容,档头,档案资料,档尾,再重传所需的资料 ( 可能是档头,档案资料,档尾 ) ,再传送 FAT表内容,从 debug message 来看 ,由偏移值 0x0b 的档头开始有认到 BM 开头的 BMP file至偏移值 0xab 的最后资料传完之后,接着再将资料有问题 ( 都传 0 ,来不及给资料 ),或是 电脑认为没有传递成功 ,会再一次重新传输,从例子上偏移值是 0x4b ,0x5b,0x6b,0x7b 有 4 个段落都需要重新传输。 ( 如图 2.1~2.2 )

 

图2.1

 

图2.2

由一些测试之后发现,使用 USB Mass storage 的缺点是 : 因为不用写 driver ,是直接使用 windows driver,所以整体的行为会被 Windows driver 受限,如传输的速度,资料错误重送的机制,还会受到系统整体是否忙碌,而影响到传输,反正会影响到一般 USB 硬盘传输行为的,在模拟的 USB Mass storage 都会遇到。

3 参考资料

注1 : 作者: USB ORG ( Compaq ,Hewlett-Packard ,Intel ,Lucent,Microsoft,NEC,Philips );  出处 : 

https://www.usb.org/document-library/usb-20-specification

登录大大通,了解更多详情,解锁1500+完整应用方案,更有大联大700+FAE在线答疑解惑!

http://www.lryc.cn/news/259489.html

相关文章:

  • c语言结构体调用格式与对齐
  • 服务器常用命令介绍和负载监控的工具插件推荐
  • linux 防火墙systemctl (个人笔记)
  • 处理器中store指令的处理
  • 杨辉三角形-第11届蓝桥杯选拔赛Python真题精选
  • 我们一起做过的SPA——Nuxt.js介绍
  • java导出word使用模版与自定义联合出击解决复杂表格!
  • GO设计模式——9、过滤器模式(结构型)
  • fastadmin 导出
  • 六、CM4树莓派USBRS转485串口通讯
  • c++知识总结
  • python-爬取壁纸
  • 第31期 | GPTSecurity周报
  • 湖仓一体架构理论与实践汇总
  • Redission从入门到入门
  • PHP对接企业微信
  • 【原创】录剪视频的折腾之路
  • 【BI】FineBI功能学习路径-20231211
  • pytorch之torch.utils.data学习
  • Spring Boot 3中一套可以直接用于生产环境的Log4J2日志配置
  • iOS按钮控件UIButton使用
  • 小程序开发实战案例之三 | 小程序底部导航栏如何设置
  • Android : 序列化 JSON简单应用
  • Java小案例-RocketMQ的11种消息类型,你知道几种?(普通消息和批量消息)
  • 前端小技巧: 设计一个简版前端统计 SDK
  • DevOps搭建(十一)-Jenkins容器内部使用Docker详解
  • 用户访问认证
  • 前端知识(七)———HTTPS:保护网络通信安全的关键
  • element-ui按钮el-button,点击之后恢复之前的颜色
  • Excel: Python 如何干掉 VBA 系列 乙