广告

原创 我做的OO的usb鼠标

2009-5-16 20:59 3192 0 1 分类: MCU/ 嵌入式

  五一放假在家没事,逛到了END圈圈的USB专区,小组公告的那段话很实在。原来做的项目都是通过串口通讯,看来有时间还是要学习一下USB。


  这段时间看了一下协议和其他的一些资料,还只是一个模糊的认识,就先按照圈圈的那个USB鼠标的例子做了一个,电路和程序都没变,就是把晶振换成了11.0592M的,同时相应把config.h 上的Fclk换过来。确认无误后,插入电脑的USB接口,居然一次成功。


6e6e13b9-2c19-4c00-aa84-0998e8dcf1c3.jpg


下面是通过USBTrace得到的一些数据,希望能给和我一样的初学者有所帮助。


点击看大图


port 1 : USB 人体学输入设备


Hardware ID: USB\Vid_8888&Pid_0002&Rev_0100
Setup Class: HIDClass
Class GUID: {745A17A0-74D3-11D0-B6FE-00A0C90F57DA}
PDO Name: \Device\USBPDO-5
Service Name: HidUsb



Connection Information
ConnectionIndex: 0x1
CurrentConfigurationValue: 0x1
LowSpeed: FALSE
DeviceIsHub: FALSE
DeviceAddress: 0x2
NumberOfOpenPipes: 0x2
ConnectionStatus: DeviceConnected


Pipe #0


Endpoint Descriptor
bLength: 0x7
bEndpointAddress: 0x82 [IN]
bmAttributes: 0x3 (USB_ENDPOINT_TYPE_INTERRUPT)
wMaxPacketSize: 0x40
bInterval: 0xA


Pipe #1


Endpoint Descriptor
bLength: 0x7
bEndpointAddress: 0x2 [OUT]
bmAttributes: 0x3 (USB_ENDPOINT_TYPE_INTERRUPT)
wMaxPacketSize: 0x40
bInterval: 0xA


Device Descriptor
bLength: 0x12
bcdUSB: 0x110
bDeviceClass: 0x0
bDeviceSubClass: 0x0
bDeviceProtocol: 0x0
bMaxPacketSize0: 0x10
idVendor: 0x8888
idProduct: 0x2
bcdDevice: 0x100
iManufacturer: 0x1
iProduct: 0x2
iSerialNumber: 0x3
bNumConfigurations: 0x1



Configuration Descriptor
bLength: 0x9
bDescriptorType: USB_CONFIGURATION_DESCRIPTOR_TYPE
wTotalLength: 0x29
bNumInterfaces: 0x1
iConfiguration: 0x0
bmAttributes: 0xA0 ( Bus_Powered Remote_Wakeup )
MaxPower: 0xC8


Interface Descriptor
bLength: 0x9
bInterfaceNumber: 0x0
bAlternateSetting: 0x0
bNumEndpoints: 0x2
bInterfaceClass: 0x3 (Human Interface Device)
bInterfaceSubClass: 0x1 (Boot Interface)
bInterfaceProtocol: 0x2 (Mouse)
iInterface: 0x0


Endpoint Descriptor
bLength: 0x7
bEndpointAddress: 0x82 [IN]
bmAttributes: 0x3 (USB_ENDPOINT_TYPE_INTERRUPT)
wMaxPacketSize: 0x40
bInterval: 0xA


Endpoint Descriptor
bLength: 0x7
bEndpointAddress: 0x2 [OUT]
bmAttributes: 0x3 (USB_ENDPOINT_TYPE_INTERRUPT)
wMaxPacketSize: 0x40
bInterval: 0xA


有了一个初步的认识,再回过头来还是要好好领会一下协议、体会一下程序。


在这里感谢USB专区、感谢圈圈!

广告

文章评论 1条评论)

登录后参与讨论

cllu 2009-5-16 21:41

好强啊
相关推荐阅读
haoran_flying 2009-05-20 20:45
Mega16+CH375硬件测试程序
前几天在做usbd12调试时不小心把12V电压接到5V上去了,烧了几个片子,D12也挂了,由天手头上没有D12了,再说手工焊接也挺麻烦的,上次买D12时顺便带了CH375。因为这一直都是用的AVR的片...
haoran_flying 2009-05-15 16:58
USB协议深入分析_字符串描述符(转载)
原载于:http://blog.csdn.net/caimouse/archive/2007/04/25/1584778.aspx上一次说到把配置描述符返回给主控器那里了,现在接着下来,就会收到主控器...
haoran_flying 2009-05-15 16:56
USB协议深入分析_配置(转载)
原载于:http://blog.csdn.net/caimouse/archive/2007/04/23/1575676.aspx前面已经介绍设置USB的设备地址,接着下来是做什么呢?其实有了设备地址...
haoran_flying 2009-05-15 16:55
USB协议深入分析_设置USB地址(转载)
原载于:http://blog.csdn.net/caimouse/archive/2007/04/18/1568991.aspx前面已经解释主控器怎么样发送设备描述符下来,然后设备返回相应的设备描述...
haoran_flying 2009-05-15 16:53
USB协议深入分析_返回设备描述符(转载)
原载于:http://blog.csdn.net/caimouse/archive/2007/04/12/1561959.aspx 回应设备描述符上一次已经介绍怎么样收到主控器的获取设备描述符的数据,...
我要评论
1
0
广告