MEMRORY STICK标准综述
6.1.2
DFU_GETSTATUS请求
主机使用DFU_GETSTATUS请求与设备同步。
设备用一个有效负载数据包来回应DFU_GETSTATUS请求,这个有效负载数据包包含了以下数据:
*bwPollTimeout的目的是允许设备动态的调整主机发送一个获取设备状况信息的请求和发送下一个传输请求的时间。这样设备可以根据它擦除内容,运行程序的需要来改变延迟。
*iString用来说明设备的相应状况。
普天信息技术研究院 机密
第 15 页
MEMRORY STICK标准综述
设备错误状况定义如表
普天信息技术研究院 机密
第 16 页
MEMRORY STICK标准综述
设备状态定义如表
图6.3 使用DFU_GETSTATUS请求的状态变化的示例
普天信息技术研究院 机密
第 17 页
MEMRORY STICK标准综述
6.1.3
DFU_CLRSTATUS Resquest
一旦设备检测到错误并且在回应DFU_GETSTATUS请求时向主机报告这一错误,指出其状态,进入dfuERROR状态。设备在报告错误状态后一直到再接收到DFU_CLRSTATUS请求前不能从dfuERROR状态转变到其他状态。当接收到DFU_CLRSTATUS请求后,设备设置为ok状态,并且切换到dfuIDLE状态。只有这个时候设备才能再转变到其他状态。
图6.4 使用DFU_CLRSTATUS来确认一个错误的状态转变示例
6.1.4
DFU_ABORT请求
DFU_ABORT请求使得主机能够从某些状态中退出,返回到DFU_IDLE状态。设备在接收到这个请求后调整到OK状态。更多的内容请参阅相关状态转变摘要。
图6.5 使用DFU_ABORT来中止一个传输的状态转变示例
普天信息技术研究院 机密
第 18 页
MEMRORY STICK标准综述
6.1.5
DFU_GETSTATE请求
这个请求主要是关于设备的状态。状态报告了设备现有状态。在bState域中的值的规定是同DFU_GETSTATUS中的是一样的。
设备使用包含以下数据的包来回应DFU_GETSTATE请求。
图6.6使用DFU_GETSTATE的状态转变示例
6.2
上传
上传的目的是提供找回备份的可能并且获得一个设备的固件。上传固件的定义是同下载相反的,意思就是上传映像必须对于随后的下载而言是可行的。主机发送DFU_UPLOAD请求直到它以一个短小的帧作为EOF指示来回应。设备负责选择地址范围来上传和合适的格式化固件映像。主机需要附加对于上传映像的DFU后缀。如果主机出于某些原因希望中止传输,它可以通过发送DFU_ABORT请求来执行。
6.2.1
DFU_UPLOAD请求
DFU_UPLOAD请求由主机发出来查看设备的固件。
普天信息技术研究院 机密
第 19 页
USB DEVICE FIRMWARE UPGRADE标准研究-0.1 - 图文



