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

时间: 2024-08-04 12:51:18

usb 驱动的相关文章

USB 驱动架构浅析

1.USB简介 USB,即Universal Serial Bus(通用串行总线)的缩写,是一个外部总线标准,用于规范电脑与外部设备的连接和通讯.USB接口支持设备的即插即用和热插拔功能.USB是在1994年底由英特尔.康柏.IBM等多家公司联合提出的.USB版本经历了多年的发展,现已经发展为3.1版本,成为当今PC中的标准扩展接口.当前主要采用USB2.0和USB3.0接口,USB各版本间能很好的兼容. USB采用四线电缆,其中两根是用来传送数据的串行通道,另两根为设备提供电源,对于任何已经成

AM335x(TQ335x)学习笔记——USB驱动移植

对于AM335x来讲,TI维护的USB驱动已经非常完善了,本文称之为移植,实际上仅仅是配置内核选项使能USB HOST/OTG功能.废话少说,直接动手开启AM335x的USB驱动配置项. Step1. 配置内核支持USB 默认的配置项没有配置USB相关的选项,但是DTS已经配置好了,我们不需要对DTS作任何修改,详细的内核配置项如下: Device Drivers ---> [*] USB support ---> [*] OTG support <*> EHCI HCD (USB

关于FL2440开发板USB驱动安装 成功用于WIN7 64位

前几天,在飞凌淘宝官店购置了一块FL2440开发板进行学习,购置时没有留意FL2440的USB驱动不支持win7 64位. 在到货后进行测试才发现其USB驱动不支持win7驱动,为了能使用这个DNW,我在VirtualBox下安装了xp虚拟机,但是在安装驱动时无法从虚拟机中加载设置进行驱动安装. 我便上网寻找支持64位USB下载驱动,发现网上有一个驱动可安装USB驱动"Supervivi USB Transfer Tool" 在按照安装驱动教程使用成功安装驱动,使用了这个驱动后便能在V

大话USB驱动之USB键盘

转载请注明出处:http://blog.csdn.net/ruoyunliufeng/article/details/25040049 一.总体框图 二.驱动代码 /*************************************************************** *版权所有 (C)2014, *文件名称:linux键盘驱动 *内容摘要:用另一种方式改写linux键盘驱动 *其它说明: *当前版本:V1.2 *作 者: 若云流风 *完成日期:2014.5.6 *修改记

Linux USB驱动

linux usb 驱动详解 一 http://blog.163.com/[email protected]/blog/static/87195173201131245557340/ USB设备驱动开发-USB Gadget Driver(一) http://blog.chinaunix.net/uid-14518381-id-3904999.html

大话USB驱动之总线驱动程序

总线驱动是不用改的,内核都帮我们做好了,为了了解整个USB驱动的体系,我们来分析一下总线驱动程序. 一.总线框图 总线的图画的已经非常清楚了,这篇博客我们分析的是左边的程序,在下篇我们想通过USB键盘这一实际例子来讲解. 二.程序实现 1. 由于代码太多且关系复杂这里只列出调用的函数(没有写参数).从插入USB设备,到调用USB设备驱动程序,这一过程. hub_irq() //当我们接上USB的时候,由于硬件上会产生一个高电平,所以主机控制器会产生中断  kick_khubd() //唤醒线程

Linux USB驱动程序设计

1. USB发展史 USB(Universal Serial Bus ),通用串行总线,是一种外部总线标准,用于规范电脑与外部设备的连接和通讯. USB是在1994年底由英特尔.康柏.IBM.Microsoft等多家公司联合提出的,自1996年推出后,已成功替代串口和并口,成为当今个人电脑和大量智能设备的必配接口之一. ?USB 1.0出现在1996年的,速度只有1.5Mb/s1998年升级为USB 1.1,速度也提升到12Mb/s,称之为"full speed" ?USB 2.0规范

Linux USB 驱动开发(三)—— 编写USB 驱动程序

前面学习了USB驱动的一些基础概念与重要的数据结构,那么究竟如何编写一个USB 驱动程序呢?编写与一个USB设备驱动程序的方法和其他总线驱动方式类似,驱动程序把驱动程序对象注册到USB子系统中,稍后再使用制造商和设备标识来判断是否安装了硬件.当然,这些制造商和设备标识需要我们编写进USB 驱动程序中. USB 驱动程序依然遵循设备模型 -- 总线.设备.驱动.和I2C 总线设备驱动编写一样,所有的USB驱动程序都必须创建的主要结构体是 struct usb_driver,它们向USB 核心代码描

[国嵌攻略][164][USB驱动程序设计]

USB驱动模型 1.USB host controller driver(主控器驱动):为USB主控制器提供驱动程序 2.USB core(USB核心):连接USB主控制器驱动和USB设备驱动 3.USB client driver:为USB外部设备提供驱动程序 USB设备模型 device(设备)->config(配置)->interface(接口)->endpoint(端点),构成了USB设备的四个层次.一个usb driver(驱动)对应的是一个interface(接口).一个接口