Using USB-DFU Protocol

DFU Device Descriptor
Offset	Field 	Size	Value 	Descripton
0 	bLength 	1 	12h 	Size of this descriptor,in bytes.
1 	bDescriptorType 	1 	01h 	DEVICE descriptor type.
2 	bcdUSB 	2 	0100h 	USB specification release number in binary coded decimal.
4 	bDeviceClass 	1 	00h 	See interface.
5 	bDeviceSubClass 	1 	00h 	See interface
6 	bDeviceProtocol 	1 	00h 	See interface.
7 	bMaxPacketSize0 	1 	8,16,32,64	Maximum packet size for endpoint.
8 	idVendor 	2 	ID 	Vendor ID. Assigned by the USB-IF.
10 	idProduct 	2 	ID 	Product ID. Assigned by manufacturer.
12 	bcdDevice 	2 	BCD 	Device release number in binary coded decimal.
14 	iManufacturer 	1 	index 	index of string descriptor.
15 	iProduct 	1 	index 	index of string descriptor.
16 	iSerialNumber 	1 	index 	index of string descriptor.
17 	bNumConfigurations	1 	01h 	One configuration only for DFU.
DFU Interface Descriptor
Offset	Field 	Size	Value 	Descripton
0 	bLength 	1 	09h 	Size of this descriptor,in bytes.
1 	bDescriptorType 	1 	04h 	INTERFACE descriptor type.
2 	bInterfaceNumber 	1 	Number	Number of this interface.
3 	bAlternateSetting 	1 	00h 	Alternate setting. Must be zero.
4 	bNumEndpoints 	1 	00h 	Only the control pipe is used.
5 	bInterfaceClass 	1 	FEh 	Application Specific Class Code.
6 	bInterfaceSubClass	1 	01h 	Device Firmware Upgrade Code.
7 	bInterfaceProtocol	1 	01h 	Runtime protocol.
8 	iInterface 	1 	index 	Index of string descriptor for this interface.
DFU Functional Descriptor
Offset	Field 	Size	Value 	Descripton
0 	bLength 	1 	09h 	Size of this descriptor,in bytes.
1 	bDescriptorType	1 	21h 	DFU FUNCTIONAL descriptor type.
2 	bmAttributes 	1 	Bit mask	DFU attributes
Bit 7……4: reserved
Bit 3: device will perform a bus detach-attach sequence when it receives a DFU_DETACH request. The host must not issue a USB Reset. (bitWillDetach)
0 = no
1 = yes
Bit 2: device is able to communicate via USB afeter Manifestation phase.(bitManifestationTolerant)
0 = no, must see bus reset
1 = yes
Bit1: upload capable(bitCanUpload)
0 = no
1 = yes
Bit0: download capable(bitCanDnload)
0 = no
1 = yes
3 	wDetachTimeOut 	2 	Number 	Time,in milliseconds, that the device will wait after receipt of the DFU_DETACH request. if this time elapses without a USB reaset, then the device will terminate the Reconfiguration phase and revert back to normal operation . This repreents the maximum time that the device can wait(depending on its timers, etc.).The host may specify a shorter timeout in the DFU_DETACH request.
5 	wTransferSize 	2 	Number 	Maximum number of bytes that the device can accept per control-write transaction.
7 	bcdDFUVersion 	2 	BCD 	Numeric expression identifying the version of the DFU Specification release.
DFU Mode Interface Descriptor
Offset	Field 	Size	Value 	Descripton
0 	bLength 	1 	09h 	Size of this descriptor,in bytes.
1 	bDescriptorType 	1 	04h 	INTERFACE descriptor type.
2 	bInterfaceNumber 	1 	Number	Number of this interface.
3 	bAlternateSetting 	1 	00h 	Alternate setting. Must be zero.
4 	bNumEndpoints 	1 	00h 	Only the control pipe is used.
5 	bInterfaceClass 	1 	FEh 	Application Specific Class Code.
6 	bInterfaceSubClass	1 	01h 	Device Firmware Upgrade Code.
7 	bInterfaceProtocol	1 	02h 	DFU mode protocol.
8 	iInterface 	1 	index 	Index of string descriptor for this interface.