`
wuhuizhong
  • 浏览: 686617 次
  • 性别: Icon_minigender_1
  • 来自: 中山
社区版块
存档分类
最新评论

USB 设备、USB 驱动、USB 应用程序

阅读更多

USB 设备、USB 驱动、USB 应用程序

1.USB 设备硬件部分
  a.这个硬件的标识是用的 Vender ID 和 Product ID, 即“厂家标识”和“产品标识”
  b.这个硬件规定了各个 End Point (端点) 的性质, 读/写 及 类型 (Control/Interrupt/Bulk/Isochronous)
  c.这个硬件的固件里面有 DeviceIoControl 的实现部分, 规定了这个函数的具体参数和动作

2.USB 设备驱动
 ①硬件接口
  a.需要识别 Vender ID 和 Product ID
  b.对每个 EndPoint 的每个 I/O 分配一个 Pipe, 并且起一个名字作为软件接口
  c.做 DeviceIoControl 的接口
 ②软件接口
  a.GUID, 驱动程序的标识, 每个驱动程序使用不同的 GUID, GUID 是识别驱动的, 与硬件无关 (驱动程序升级版本 GUID 不能修改)
  b.硬件接口里面的 b: Pipe 名字是软件接口, 这个 Pipe 名字纯粹由驱动定义的, 和硬件无关, 升级驱动不能改 Pipe 的名字
  c.硬件接口里面的 c 的各个参数也是软件的接口, 这些参数是由硬件带来的, 不是驱动规定的, 当然也可以在驱动里面转义, 隐藏设备的真实情况
 ③这个驱动程序是用 WinDDK 编译的, 可以用文本编辑器或其他开发工具的编辑器编程序代码, 然后调用 WinDDK 编译

3.读写 USB 口的程序
 ①与驱动的接口
  a.利用驱动程序里面的 GUID 找出设备的文件名, 用 CreateFile 函数打开设备。我前面的程序里面的 OpenUsbDevice 就是这个作用
  b.通过 a.得到的设备文件名和驱动程序里面的 Pipe 名打开 Pipe, 访问这个 Pipe 对应的 USB 端点 (读写数据)
  c.使用 a.的 CreateFile 得到的句柄, 通过 DeviceIoControl 实现设备规定的动作
 ②有关需要的资料
  a.Vender ID, Product ID 和 GUID 一般在驱动程序的 .inf 文件里面能看到, 如果找不到就需要和厂家联系
  b.Pipe 的名字是驱动程序规定的, 需要有驱动程序的资料才能知道
  c.DeviceIoControl 的参数需要有驱动程序的资料或者硬件资料才能知道
 ③这个程序一般用 C/C++ 直接编写, 如果使用其他语言(VB/PB等)需要调用 C/C++ 编的 DLL


其他相关内容:

USB 驱动程序可以到注册表里面找到:
"HKEY_LOCAL_MACHINE\\SYSTEM\\ControlSet001\\Enum\\USB\\Vid_厂家标识&

Pid_产品标识\\驱动程序"

里面的 ClassGUID 就是驱动程序的 GUID 标识, 例如 {36FC9E60-C465-11CF-8056-444553540000}
相当于程序的: DEFINE_GUID(USB_DRIVER_GUID, 0x36FC9E60,0xC465,0x11CF,0x80,0x56,0x44,0x45,0x53,0x54,0x00,0x00);
另外在这个注册表键里面还可找到有关设备的其他描述, 例如 DeviceDesc = "USB Mass Storage Device" 等

分享到:
评论

相关推荐

    应用程序调用USB驱动程序

    当我们谈论“应用程序调用USB驱动程序”时,这意味着应用程序需要通过驱动程序来操作USB设备,如打印机、鼠标、键盘、存储设备等。以下是关于这一主题的详细解释: 1. **USB驱动程序的作用**:USB驱动程序是操作...

    USB设备的Bulk模式驱动程序设计

    USB设备驱动整体上分为五个核心组成部分:USB应用程序接口、USB设备驱动函数、USB中断服务程序、USB回调接口程序以及USB标准事件处理程序。每一部分都承担着独特的职责,共同协作以确保USB设备与主机之间高效稳定的...

    USB开发大全 (USB设备驱动开发深度解析-宋宝华.pdf usb 中文协议 USB结构体系.pdf 嵌入式Linux的USB驱动程序开发.pdf linux设备驱动开发详解-usb篇.pdf 快速USB学习.doc

    宋宝华.pdf》、《USB中文协议》、《USB结构体系.pdf》、《嵌入式Linux的USB驱动程序开发.pdf》、《linux设备驱动开发详解-usb篇.pdf》以及《快速USB学习.doc》,这些资源全面覆盖了USB开发的基础知识和高级应用。...

    LINUX设备驱动程序之USB驱动程序 .rar

    在Linux操作系统中,设备驱动程序是操作系统内核与硬件设备之间的桥梁,负责处理硬件设备的交互,使得上层的应用程序可以透明地访问硬件资源。USB(Universal Serial Bus)驱动程序则是针对USB设备的特定驱动,它...

    基于USB设备的Linux网络驱动程序开发.pdf

    "基于USB设备的Linux网络驱动程序开发" 本文主要讨论基于USB设备的Linux网络驱动程序的设计和实现方法。该方法充分利用了Linux网络子系统和USB总线提供的支持,在有效降低了程序的复杂性同时,增强了网络驱动程序的...

    USB设备驱动程序.7z

    USB驱动程序的工作原理分为几个层次: 1. **硬件层**:USB设备连接到计算机的USB端口,由物理接口和协议规范定义。USB设备具有特定的设备类,如鼠标、键盘、存储设备或通信设备等。 2. **USB控制器驱动**:这是...

    usb composite device usb驱动程序

    USB驱动程序是操作系统与USB设备之间通信的关键,它负责解析USB设备发送的数据,处理设备请求,并将其转化为操作系统可以理解的形式。 在STM32微控制器上实现USB复合设备驱动程序,需要对USB协议有深入理解,包括...

    怎样写linux下的USB设备驱动程序

    理解USB驱动的框架和内核接口,以及熟悉设备的通讯协议,将有助于编写高效且可靠的驱动程序。 总之,编写Linux下的USB设备驱动程序是一项涉及USB协议、内核编程、设备交互等多方面知识的工作。通过本文的介绍,你...

    USB驱动程序 USB驱动程序 USB驱动程序

    4. 设备冲突:确保没有其他应用程序占用USB资源,或更新所有相关的驱动程序以避免冲突。 在开发或调试USB驱动程序时,通常需要使用一些工具和API,如Windows Driver Kit(WDK)、Device Console(DevCon)、USBView...

    USB Serial Controller驱动程序

    USB Serial Controller驱动程序的工作原理是将USB协议转换为传统的串行通信协议,如RS-232,使得那些设计为使用串行接口的老式设备可以通过USB端口连接到现代计算机上。驱动程序处理USB数据包的封装和解封装,确保...

    USB HID driver 驱动程序

    USB驱动程序允许操作系统识别并控制连接的USB设备,而HID类驱动程序是专门为遵循HID规范的设备设计的。在基于ST开发板的系统中,这样的驱动程序可能需要特别定制,以适应硬件的具体需求。 首先,我们需要理解USB...

    最新万能USB驱动程序

    "最新万能USB驱动程序"通常包含了广泛的驱动支持,旨在解决用户在连接USB设备时遇到的识别问题。 USB驱动程序的工作原理: USB驱动程序由三部分组成:主机控制器驱动、通用串行总线驱动和设备驱动。主机控制器驱动...

    USB2.0转串口驱动程序

    2. **数据转换**:驱动程序将USB协议的数据转换为串行通信协议(如RS-232),反之亦然,使得非USB设备能够通过USB接口与计算机通信。 3. **速度匹配**:驱动程序允许用户调整波特率,以匹配连接设备的最佳通信速度...

    USB转LAN口驱动程序

    标题中的“USB转LAN口驱动程序”指的是将USB接口转换为以太网接口的设备所需的驱动软件。这种设备通常被称为USB有线网卡,因为它们提供了通过USB端口连接到局域网(LAN)的能力。当用户的计算机或笔记本电脑内置的...

    USB-Serial+Controller的驱动程序

    "USB驱动程序"这个文件名很笼统,可能是包含各种USB设备驱动的集合,包括但不限于USB-Serial Controller的驱动。安装这个驱动程序通常意味着更新或安装系统中所有USB设备的驱动,确保所有USB端口都能正常工作,包括...

    "usb-serial controller" USB转串口线驱动程序

    "usb-serial controller" USB转串口线驱动程序是连接USB接口设备与串行通信接口之间的重要桥梁。这种驱动程序允许计算机识别并正确地与基于USB的串口控制器进行通信,比如PL2303,它是一种常见的USB到UART桥接器。在...

    USB转RS485驱动程序

    对于USB转RS485驱动程序,它负责解析来自应用程序的指令,将这些指令转换为适合CP210x芯片的信号,并通过USB接口发送出去。同时,它还接收来自CP210x的RS485网络数据,并将其转化为操作系统可理解的形式。驱动程序的...

    USB设备驱动详解

    USB设备驱动是计算机系统中一个重要的组成部分,它使得操作系统能够识别和管理USB设备,从而实现设备的...开发者需要理解USB协议的各个方面,才能有效地编写和优化驱动程序,确保USB设备在各种应用场景中的良好性能。

Global site tag (gtag.js) - Google Analytics