现在位置: 首页 > USB编程
2013-12-09 16:50 工业·编程 ⁄ 共 1369字 暂无评论
    当USB插入USB总线时,USB控制器会自动为该USB设备分配一个数字来标示这个设备。另外,在设备的每个端点都有一个数字来表明这个端点。 USB设备驱动向USB控制器驱动请求的每次传输被称为一个事务(Transaction),事务有四种类型,分别是Bulk Transaction、Control Transaction、Interrupt Transaction和Isochronous Transaction。每次事务都会分解成若干个数据包在USB总线上传输。每次传输必须历经两个或三...
阅读全文

USB is implemented in terms of software drivers (which I don't discuss here) and hardware. The hardware divides into host controllers, hubs, and functions: The host controller connects a tree of USB devices to a host (computer, console, and so on). Multiple host controllers can be present. Each host controller anchors one device tree. A hub is a device with multiple ports, into which are p...
阅读全文
2013-12-08 18:41 工业·编程 ⁄ 共 3509字 暂无评论
How can my application detect when my device is attached or removed? To find out when a device has been attached or removed, catch the WM_DEVICECHANGE messege with the parameter DBT_DEVNODES_CHANGED. Then use SetupDi_ functions to find out what device was attached or removed. A Usenet post on the subject is USB Device Insertion/Removal Event Notification. Also see my example code. How can my ap...
阅读全文
Host controllers ---> Usb root hub ---> usb functions(devices) 基本步骤:     1)打开HCD%X     2) 得到上面的USB root hub     3) 遍历usb root hub上连接的usb 设备。获取信息     4)如果有多个usb口,循环前3步。 下面介绍通讯用的几个IOCTL: 1)USB_HCD_DRIVERKEY_NAME ,用于获取USB设备驱动在注册表中的键名。相应的一个结构体是: typedef struc...
阅读全文
对于USB编程,其中一个函数叫做: BOOL WINAPI DeviceIoControl(   __in          HANDLE hDevice,   __in          DWORD dwIoControlCode,   __in          LPVOID lpInBuffer,   __in          DWO...
阅读全文
2013-12-08 18:32 工业·编程 ⁄ 共 386字 暂无评论
USB编程的第一个步骤就是寻找你插入的USB设备.为了找到你的USB设备,首先要知道你的USB设备的GUID.一种类型的USB设备的GUID是这个类型唯一的。 使用下列的几个函数变可以找到你的USB的设备名字:     SetupDiGetClassDevs()     SetupDiEnumDeviceInfo()    SetupDiGetDeviceRegistryProperty()     SetupDiEnumDeviceInterfaces()     SetupDiGetDeviceI...
阅读全文
一、概述 当前计算机的USB口已很普遍,USB2.0理论传输速率最高为480Mbps,即60MB/s,USB3.0理论传输速率最高为5Gbps,即625MB/S。目前USB口主要用于U盘、USB硬盘、USB键盘、USB鼠标、USB摄像头、USB光驱等。 其实,增加一条USB联机线(也有叫USB联网线、共享线、互联线、对拷线、对联线)利用USB口还可实现很多基于USB口的光驱共享、数据共享、网络共享、联网、键鼠共享、剪贴板共享、档案共享、USB点对点通讯、USB点对多点通...
阅读全文
2013-12-08 17:11 工业·编程 ⁄ 共 1036字 暂无评论
现在USB设备却很多,因此对USB设备的查找与读写就必不可少了。但是能找到关于USB读写的资料很少。这里使用VC++示范了一些获得USB的信息的方法。 一、枚举USB设备     通过枚举USB控制器->枚举此控制器上的USB HUB->枚举HUB的各个端口->获得设备信息。 枚举控制器: wsprintf(HCName, "////.//HCD%d", HCNum); hHCDev = CreateFile(HCName,GENERIC_WRITE,FILE_SHARE_WRITE, NULL,OPEN_E...
阅读全文
2013-12-08 16:58 工业·编程 ⁄ 共 7699字 暂无评论
    学习USB,一本好的教材是少不了的,我以前看过了很多关于USB的书,但是大部分的书都看得不明不白,原因是编者没有从初学者的角度来考虑问题,这里要推荐的书是由马伟编著的《计算机USB系统原理及其主/从机设计》,书中非常系统地向读者展示了USB的原理体系。     在进入学习之前,先认识一下USB的重要关键字,这些关键字也是在以下的学习里面将出现的字眼: 1、端点:位于USB设备或主机上的...
阅读全文
2013-12-08 16:39 工业·编程 ⁄ 共 6918字 暂无评论
    usb作为一种串行接口,应用日益广泛。如同每个工程设计人员必须掌握I2C,RS232这些接口一样,我们也必须掌握usb.但是usb的接口协议实在有点费解,linux uhci驱动作者之一Alan Stern曾经就说过“The USB documentation is downright evil. Most    of it is just crap, written by a committee. You're better off ignoring most of it ”。 本文将从整体上介绍usb协议,包括usb host ,usb hub,u...
阅读全文