關於ARM7的USB傳輸 |
答題得分者是:derrenbol1
|
lkap
一般會員 發表:2 回覆:21 積分:4 註冊:2005-10-03 發送簡訊給我 |
|
derrenbol1
中階會員 發表:5 回覆:113 積分:93 註冊:2004-12-09 發送簡訊給我 |
|
lkap
一般會員 發表:2 回覆:21 積分:4 註冊:2005-10-03 發送簡訊給我 |
|
derrenbol1
中階會員 發表:5 回覆:113 積分:93 註冊:2004-12-09 發送簡訊給我 |
|
lkap
一般會員 發表:2 回覆:21 積分:4 註冊:2005-10-03 發送簡訊給我 |
|
derrenbol1
中階會員 發表:5 回覆:113 積分:93 註冊:2004-12-09 發送簡訊給我 |
|
lkap
一般會員 發表:2 回覆:21 積分:4 註冊:2005-10-03 發送簡訊給我 |
|
derrenbol1
中階會員 發表:5 回覆:113 積分:93 註冊:2004-12-09 發送簡訊給我 |
|
lkap
一般會員 發表:2 回覆:21 積分:4 註冊:2005-10-03 發送簡訊給我 |
|
lkap
一般會員 發表:2 回覆:21 積分:4 註冊:2005-10-03 發送簡訊給我 |
我只看到我DEVICE設定的東西
Device Descriptor:
bcdUSB: 0x0110
bDeviceClass: 0x00
bDeviceSubClass: 0x00
bDeviceProtocol: 0x00
bMaxPacketSize0: 0x08 (8)
idVendor: 0x1234
idProduct: 0x5678
bcdDevice: 0x0001
iManufacturer: 0x01
iProduct: 0x02
iSerialNumber: 0x00
bNumConfigurations: 0x01 ConnectionStatus: DeviceConnected
Current Config Value: 0x00
Device Bus Speed: Full
Device Address: 0x01
Open Pipes: 0 Configuration Descriptor:
wTotalLength: 0x0022
bNumInterfaces: 0x01
bConfigurationValue: 0x01
iConfiguration: 0x00
bmAttributes: 0xA0 (Bus Powered Remote Wakeup)
MaxPower: 0x32 (100 Ma) Interface Descriptor:
bInterfaceNumber: 0x00
bAlternateSetting: 0x00
bNumEndpoints: 0x01
bInterfaceClass: 0x03
bInterfaceSubClass: 0x00
bInterfaceProtocol: 0x00
iInterface: 0x00 HID Descriptor:
bcdHID: 0x1001
bCountryCode: 0x00
bNumDescriptors: 0x01
bDescriptorType: 0x22
wDescriptorLength: 0x0032 Endpoint Descriptor:
bEndpointAddress: 0x82
Transfer Type: Interrupt
wMaxPacketSize: 0x0040 (64)
bInterval: 0x01
|
ryuhuang
一般會員 發表:0 回覆:7 積分:1 註冊:2004-03-31 發送簡訊給我 |
你可以參考一些USBIO的Descriptor, USBIO也是使HID這個Class, 只是在HID Report Descriptor是使用Vendor Define的方法來做, 而不是使用Keybaord or Mouse, 這樣子做的好處是, 你可以使用Win32 API來Access你的USBIO Device, 使用OpenFile, ReadFile, WriteFile, 這些API Fucntion來對你的USB Device做存取的動作。 以下是我自己在做USBIO的Descriptor, for FullSpeed by Keil C
code USB_DEVICE_DESCRIPTOR DeviceDescriptorFS = { sizeof(USB_DEVICE_DESCRIPTOR), // bLength DEVICE_DESCRIPTOR, // bDescriptorType SWAP(USB_VERSION_FS), // bcdUSB HighSpeed 0x00, // bDeviceClass 0x00, // bDeviceSubClass 0x00, // bDeviceProtocol 0x40, // bMaxPacketSize0 SWAP(VID), // idVendor SWAP(PID), // idProduct SWAP(0x0100), // bcdDevice STR_INDEX_MANUFACTURER, // iManufacturer STR_INDEX_PRODUCT, // iProduct STR_INDEX_SERIALNUMBER, // iSerialNumber 0x01 // bNumConfigurations }; code USB_CONFIGURATION_DESCRIPTOR ConfigDescriptorFS = { sizeof(USB_CONFIGURATION_DESCRIPTOR), // bLength CONFIGURATION_DESCRIPTOR, // bDescriptorType SWAP(CONFIG_DESCRIPTOR_LENGTH), // wTotalLength 1, // bNumInterfaces CONFIGURATION_VALUE, // bConfigurationValue STR_INDEX_CONFIGURATION, // iConfiguration 0xa0, // bmAttributes 0x32 // MaxPower }; code USB_INTERFACE_DESCRIPTOR HIDInterfaceDescriptorFS = { sizeof(USB_INTERFACE_DESCRIPTOR), // bLength INTERFACE_DESCRIPTOR, // bDescriptorType 0, // bInterfaceNumber INTERFACE_ALTERNATE_SETTING, // bAlternateSetting 0x01, // bNumEndPoints 0x03, // bInterfaceClass 0x00, // bInterfaceSubClass 0x00, // bInterfaceProtocol STR_INDEX_INTERFACE // iInterface }; code USB_HID_DESCRIPTOR HIDDescriptorFS= { sizeof(USB_HID_DESCRIPTOR), // bLength HID_DESCRIPTOR, // bDescriptorType SWAP(0x0110), // bcdHID; 0x00, // bCountryCode; 0x01, // bNumDescriptors; 0x22, // bDescriptorType; SWAP(0x0034) // wDescriptorlength; }; code USB_ENDPOINT_DESCRIPTOR InterruptDescriptorFS = { sizeof(USB_ENDPOINT_DESCRIPTOR),// bLength ENDPOINT_DESCRIPTOR, // bDescriptorType 0x83, // bEndpointAddress 0x03, // bmAttributes SWAP(0x0006), // bMaxPacketSize 0x0a // bInterval }; code char HIDReportDescriptor[]= { 0x06, 0xa0, 0xff, // Usage Page (Vendor defined) FFA0 0x09, 0x01, // Usage (Vendor defined) 0xa1, 0x01, // Collection (Application) 0x09, 0x02, // Usage (Vendor defined) 0xa1, 0x00, // Collection (Physical) 0x06, 0xa1, 0xff, // Usage Page (Vendor defined) // Input Report 0x09, 0x03, // usage - vendor defined 0x09, 0x04, // usage - vendor defined 0x15, 0x80, // Logical Minimum (-128) 0x25, 0x7f, // Logical Maximum (127) 0x35, 0x00, // Physical Minimum (0) 0x45, 0xff, // Physical Maximum (255) 0x75, 0x08, // Report Size (8) (bits) 0x95, 0x02, // Report Count (2) (fields) 0x81, 0x02, // Input (Data, Variable, Absolute) // Output Report 0x09, 0x05, // usage - vendor defined 0x09, 0x06, // usage - vendor defined 0x15, 0x80, // Logical Minimum (-128) 0x25, 0x7f, // Logical Maximum (127) 0x35, 0x00, // Physical Minimum (0) 0x45, 0xff, // Physical Maximum (255) 0x75, 0x08, // Report Size (8) (bits) 0x95, 0x02, // Report Count (2) (fields) 0x91, 0x02, // Output (Data, Variable, Absolute) 0xc0, // End Collection 0xc0 // End Collection }; |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |