开发者社区> hopegrace> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

36、USB设备驱动

简介: USB(Universal Serial Bus)串行通用总线,支持即插即用,也称之为菊链(daisy chaining),因为在一条线缆上可以最多链接127个设备;速度传输速率可达4Mb/s~12Mb/s。
+关注继续查看

    USBUniversal Serial Bus)串行通用总线,支持即插即用,也称之为菊链(daisy chaining,因为在一条线缆上可以最多链接127个设备;速度传输速率可达4Mb/s~12Mb/sUSB采用级联方式。<?xml:namespace prefix = o />

1USB连接拓扑结构

1USB host控制器;host控制器其实也就是一个PCI设备,挂载在PCI总线上。

2USB HubUSB设备。

我们可以将USB设备理解也一个USB Host连接多个逻辑设备。

wps_clip_image-15952

wps_clip_image-6718

2USB通信流程

USB的连接模式是HostDevice的连接模式,所有的请求都是由HostDevice发出。

wps_clip_image-2148

SWsoftware

    每个USB设备都会有多个管道。对于USB设备驱动程序员,主要工作在USB设备层。

对于每个USB设备,都有一个或者多个的接口,每个接口(Interface)有多个端点(Endpoints,每个端点通过管道(Pipes)USB Host控制器连接。每个USB设备都会有一个特殊的端点,Endpoint0,它负责传输设备的描述信息,同时也负责传输PC与设备之间的控制信息。

wps_clip_image-17363

USB设备驱动向USB控制器驱动请求请求的每次传输被称为一个事务,事务有四种类型,Bulk Transaction,Control Transaction,Interrupt Transaction,Isochronous Transaction。每次事务都会分解成若干个数据包在USB总线上传输。每次传输必须经历两个或三个部分;第一部分,USB控制器向USB设备发出命令,第二部分是USB控制器和USB设备之间传递读写请求,是可选的,第三部分是握手信号。

如下为Bulk Transaction的示意图:

wps_clip_image-7376

wps_clip_image-22829

其它参见[1]

3、关于Windows 下的USB驱动

常用usbviewBusHound来观察和分析USB设备。关于USB设备请求,设备描述符,配置描述符,接口描述符,端点描述符,及USB具体实例,可以参见[1]

USB驱动程序的主要功能就是设置这些USB令牌,和获取USB设备描述符。USB驱动程序将这些请求最终转化为USB请求包(URB),然后发往USB总线驱动程序。

[1] Windows驱动开发详解,张帆

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
《嵌入式设备驱动开发精解》——导读
本书的编写主要是针对从事嵌入式软件开发人员。本书的内容主要涵盖ARM CPU以及各种常用外部设备驱动开发的方方面面,包括各种硬件接口、硬件接口协议说明以及各种外设的使用及调试方法,特别是对于开发调试过程中可能遇到的各种问题以及如何解决这些问题进行了讨论,同时包括但不限于软件方面的调试方法与硬件方面的调试方法等。
755 0
删除设备和驱动器中软件图标
都不记得哪年开始盛行起网盘来了:当时还不需要手机验证注册,当时免费的空间很少很小,当时流行华为、155等网盘;而如今,各大网盘纷纷关闭,前几个月我存储了很多文件资料的360也开始关闭了,国内网盘要走到终点了。
836 0
USB设备的Bulk模式驱动程序设计
USB设备的Bulk模式驱动程序设计     引言   通用串行总线(USB)是一种串行接口,具有自动配置能力和良好的兼容性,从而简化了计算机与外设的连接,被计算机外设硬件制造商广泛采纳。
870 0
+关注
698
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载