DFU
+ -

DFU 介绍

2022-02-17 2739 0

购买了 USB 设备的用户需要能够在制造商提供的改进版本中升级这些设备的固件。DFU就是完成该任务的机制。任何类型的 USB 设备都可以通过支持本文档中指定的要求来利用此功能。

本文档重点介绍为已在现场部署的设备安装产品增强功能和补丁。固件升级功能的其他潜在用途超出了本文档的范围。

由于设备同时执行 DFU 操作及其正常运行时活动是不切实际的,因此这些正常活动必须在 DFU 操作期间停止。这样做意味着设备必须更改其操作模式;即,打印机在进行固件升级时不是打印机;它是一个 PROM programmer。但是,支持 DFU 的设备无法自行更改其操作模式。需要外部(人工或主机操作系统)干预。

设备的VID、PID 和序列号(见USB设备描述符一节)可用于形成主机操作系统用来唯一标识设备的标识符。 但是,某些操作系统可能使用仅由设备报告的VID和PID来确定要加载哪些驱动程序,而与设备报告的设备类代码无关(Windows更多的是使用USB设备类型生成的兼容ID来安装系统自带的驱动)。主机操作系统通常不期望设备更改类。)因此,为确保仅加载 DFU 驱动程序,考虑在枚举 DFU 描述符集时更改设备的 idProduct 字段。 这确保如果操作系统只是将供应商 ID 和产品 ID 与特定驱动程序匹配,则将加载 DFU 驱动程序。

本文档不尝试指定供应商如何更改设备的产品 ID,只是建议添加一个、设置高位或使用 FFFFh 都是有效的可能性。供应商可以使用他们选择的任何方案。

不过一般的厂商的4位PID,一般高4位为0时为正式产品,当高四位为F时为DFU设备。如某一些设备正常工作时其PID为0x0369,而在DFU模式下设备的PID更改为0xF369。

HID人机交互QQ群:564808376    UAC音频QQ群:218581009    UVC相机QQ群:331552032    BOT&UASP大容量存储QQ群:258159197    STC-USB单片机QQ群:315457461    USB技术交流QQ群2:580684376    USB技术交流QQ群:952873936   

0 篇笔记 写笔记

USB-C/TYPE-C的角色分类及定义
USB总线是一个主从总线,在一条USB总线中,只能有一个USB主机,其余设备都是从机。USB总线中两个设备通过USB总线连接之前,其主从关系是一般是确定的(OGT除外)。如USB的下行端口(DownStreaming Face Port,DFP)一般为主机,而而USB的上行端口(UpStreami......
DFU 术语
缩写英文中文DFUDevice Firmware Upgrade设备固件更新FirmwareExecutable software stored in a write-able, nonvolatile memory on a USB device存储在USB设备上......
DFU 介绍
购买了 USB 设备的用户需要能够在制造商提供的改进版本中升级这些设备的固件。DFU就是完成该任务的机制。任何类型的 USB 设备都可以通过支持本文档中指定的要求来利用此功能。本文档重点介绍为已在现场部署的设备安装产品增强功能和补丁。固件升级功能的其他潜在用途超出了本文档的范围。由于设备同时......
DFU 固件更新过程
完成实现固件升级可以分为4个不同阶段。1.枚举:设备把自身的一些特性告知主机,嵌入在设备正常运行描述符中的一个DFU类接口描述符和相关的函数符能够完成这个目的,并且能够为通过控制管道的类专用的请求提供目标。2.DFU枚举:主机和设备同意开始固件升级,主机向设备发出USB复位,设备发出第二个描述符......
DFU 类特定请求
DFU类特定请求用于完成升级操作。 下表总结了 DFU 类特定的请求。RequestRequest codeRequest descriptionDFU_DETACH0X00请求设备离开DFU模式,进入应用程序DFU_DNLOAD0x01请求Host主机端数据发送......
DFU 运行时接口描述符
因为DFU仅使用控制端点故不存在端点描述符。 这样主机提供了足够的信息来识别设备能够执行固件升级操作。 它还提供了通过默认控制管道启动此类操作的方法。DFU 类接口通常是为每个运行时配置枚举的最后一个接口。但是,并不要求此接口占据任何特定位置。DFU 接口描述符格式偏移字段长度值描......
DFU 运行时功能描述符
运行时DFU功能描述符全称Run-Time DFU Functional Descriptor。描述符对于运行时和 DFU 模式描述符集是相同的运行时DFU 功能描述符格式偏移字段长度值描述0bLength109h描述符的长度,以单字为单位1bDescrip......
DFU 模式配置描述符
DFU模式配置描述符与USB规范描述的标准配置描述符相同,但bNumInterfaces字段必须包值01h。偏移量名称大小说明0bLength1描述符长度(9字节)1bDescriptorType1描述符类型(配置描述符为0x02)2wTotalLe......
DFU 运行时
在正常运行时操作期间,设备会公开其正常的描述符集。但是,在每个支持DFU的运行时配置中插入了以下附加描述符:运行时DFU特定类接口描述符运行时功能描述符运行时描述符集公开设备的正常运行时设备描述符和配置描述符。支持DFU的每个配置的配置描述符的bNumInterfaces字段增加1,以适应运行......
关注公众号
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

您的支持,是我们前进的动力!