usb 驱动
usb 驱动学习总结:

usb 采用分层的拓扑结构,金字塔型,最多是7层。
usb 是主从结构,主和主或者从和从之间不能交换数据。理论上一个usb主控制器最多可接127个设备,协议规定每个usb设备具有一个7bit的地址,范围是[0,127], 0地址是保留给为初始化的设备用的。
一个完整的USB数据传输过程如下:
下行:
USB主控制器发出命令和数据 -》 根hub -》子hub或者usb 设备。
上行:
设备接收到数据,处理返回数据和信息 -》 上一层hub -》上一层hub...-》主控制器。
hub 集线器可以扩展出更多的usb接口,但是是不能扩展出更多的带宽。
Usb2.0 插头:

USB-A: 指向主控制器,上行方向。
USB-B: 指向设备和hub, 下行方向。
usb3.0 插头:
上图是标准的usb3.0 A接口。
micro的接口,这里不记录,需要的时候查阅。
可以看到usb 主要有四根线, VBUS, D+, D-, GND.
可以看到GND和VBUS比D-,D+要长一些,这是专门为热插拔而设计的硬件结构。
当插入时:
先接通GND和VBUS ,然后接通数据线。
拔下时:
先断开数据线,再断开GND和VBUS
这就保证了在插拔时,不会出现有数据信号而无电源的情况.如果数据数据线早于电源线接通,则可能会让芯片I/O引脚电压比电源电压高,从而进入芯片闩锁-latch up 现象, 一旦进入这个状态,轻则不能工作,重则芯片过流,过热烧毁。要解除latch up现象,必须断开电源,重新上电。
usb信号线的颜色: VBUS:红色 D-:白色 D+:绿色 GND:黑色
参考文献:
http://www.totalphase.com/support/articles/200472426#s1.1
usb 驱动的更多相关文章
- usb驱动开发24之接口驱动
从第一节我们已经知道,usb_generic_driver在自己的生命线里,以一己之力将设备的各个接口送给了linux的设备模型,让usb总线的match函数,也就是usb_device_match, ...
- Linux内核USB驱动【转】
本文转载自:http://www.360doc.com/content/12/0321/14/8363527_196286673.shtml 注意,该文件是2.4的内核的驱动源文件,并不保证在2.6内 ...
- USB驱动开发大全【转】
本文转载自:http://www.360doc.com/content/12/0504/19/8363527_208666082.shtml 编写USB驱动程序步骤:1所有usb驱动都必须创建主要结构 ...
- usb驱动开发15之设备生命线
总算是进入了HCD的片儿区,既然来到一个片区,怎么都要去拜会一下山头几个大哥吧.,先回忆一些我们怎么到这里的?给你列举一个调用函数过程usb_control_msg->usb_internal_ ...
- usb驱动开发14之设备生命线
直接看代码吧. /*-------------------------------------------------------------------*/ /** * usb_submit_urb ...
- usb驱动开发12之设备生命线
函数usb_control_msg完成一些初始化后调用了usb_internal_control_msg之后就free urb.剩下的活,全部留给usb_internal_control_msg去做了 ...
- usb驱动开发10之usb_device_match
在第五节我们说过会专门分析函数usb_device_match,以体现模型的重要性.同时,我们还是要守信用的. 再贴一遍代码,看代码就要不厌其烦. static int usb_device_matc ...
- usb驱动开发5之总线设备与接口
Linux设备模型中的总线落实在USB子系统里就是usb_bus_type,它在usb_init的函数bus_register(&usb_bus_type)里注册.usb_bus_type定义 ...
- usb驱动开发1之学习准备
此系列是http://blog.csdn.net/fudan_abc/博文的整理,同时加入了自己的理解.很敬佩fudan_abc的文章,仔细学习和分析受益很多.注:fundan_abc所分析linux ...
- Linux USB驱动
linux usb 驱动详解 一 http://blog.163.com/cl2006ky@126/blog/static/87195173201131245557340/ USB设备驱动开发-USB ...
随机推荐
- Searching in a rotated and sorted array
Given a sorted array that has been rotated serveral times. Write code to find an element in this arr ...
- uva 701
参考了一下http://hi.baidu.com/renxl51/item/e80b688f9f54aadd5e0ec1de 给一个数字x,求最小的正整数e,使得pow(2,e) == x*pow(1 ...
- 深入浅出 ES6:ES6 与 Babel / Broccoli 的联用
深入浅出 ES6指的是添加在 ECMASript 标准第六版中的 JavaScript 编程语言的新特性,简称为 ES6. 虽然 ES6 刚刚到来,但是人们已经开始谈论 ES7 了,它未来的样子,以及 ...
- POJ 2318 TOYS && POJ 2398 Toy Storage(几何)
2318 TOYS 2398 Toy Storage 题意 : 给你n块板的坐标,m个玩具的具体坐标,2318中板是有序的,而2398无序需要自己排序,2318要求输出的是每个区间内的玩具数,而231 ...
- 数据库存储安全之(MD5+盐)加密
一般系统数据库密码加密方式: MD5后存入数据库 SHA1 Hash后存入数据库 缺点:黑客可以通过密码暴力破解获取密码信息,具体做法是将常用密码进行Hash后做成一个字典, 破解的时候,只需要查字典 ...
- java事务管理(二)
数据库事务和Spring事务是一般面试都会被提到,很多朋友写惯了代码,很少花时间去整理归纳这些东西,结果本来会的东西,居然吞吞吐吐答不上来. 下面是我收集到一些关于Spring事务的问题,希望能帮助大 ...
- eclipse myeclipse zend studio 中去掉双引号中的斜体
去windows/preferences 菜单里,选Web/JSP Files/Editor/Syntax Coloring 在右边选Attribute Values ,把Italic的钩去掉就好了.
- Android 启动过程总结
SystemServer的启动 frameworks/base/services/java/com/android/server/SystemServer.java: run() 其中调用Activi ...
- poj 1924 Paths on a Grid(组合数学)
题目:http://poj.org/problem?id=1942 题意:给定一个矩形网格的长m和高n,其中m和n都是unsigned int32类型,一格代表一个单位,就是一步,求从左下角到右上角有 ...
- 设置一个POJO的某个属性的默认值
//月利率private BigDecimal monthRate=new BigDecimal(0);