USB driver linux



USB analyse

当你电脑接入一个USB设备, 电脑会弹出一个USB3.0 或者是apple 驱动,或者是Android 驱动。
问题一:
为什么电脑会弹出这些信息? 第一次安装这些设备,肯定是没有这些驱动的,那为什么知道是apple 或者是android呢?
解答:
因为PC电脑里面,有个USB总线驱动程序,它有能力知道你接入是什么USB设备,但是不知道如何读写设备,
下面就需要安装 设备驱动程序 它有总线驱动去查找,并且安装。

问题二:
电脑上面有3个USB口,PC为什么知道和你通信是对的? 为什么不和另外一个通信?
解答:
很简单,每个设备已经有了自己的设备编号,或者是地址。

问题三:
在没有设备编号之前,那我怎么知道和你通信,第一次大家很关心啊,可不能搞错对象。
解答:
所以大家约定俗称,刚开始USB用设备编号0通信,大家建立关系,并且把新的设备号分给USB,以后就用它通信了。
所以如果有很多USB设备,大家都是要排队在编号0门前,等着分配设备号。

问题四:
我怎么知道,你是USB???? 你给我一个假的USB,我也识别?
解答:
USB首先大家都是4个金属线,并且USB我自己,不能共点,所以一切电源,PC你要给我。
数据线在D+ D-两个线上传输,但是这两个线上接了1.5k的上拉电阻,什么是上拉电阻?很简单,电阻接在电源这边。
一给电,电阻下面就有电压,这样PC内部的D+端口,有平时的低电平拉到高电平。
电平都变高了,你还检测不出来吗?


既然是传输数据嘛,IIC UART都是可以的传输,Nand flash也可以嘛,
Nand Flash有ALE data0-data7数据线,可以根据WE ALE的组合发出命令,在数据data上面传输。 data是可以
双向传输的。IIC也是可以双向,即PC和IIC设备都可以自己发数据,变成主从结构中的主,对方变成次

那USB是如何传递的吗?
USB当然也是主从结构,但是它只能永远是次,不能发数据通知PC,一切必须要等待USB有空闲来读,不能催PC主。

那数据怎么传输?就两根线D+ D-;
传输到什么地址上面呢?这个地址是读,还是写呢?我们都不知道。看端点
在USB内部有个端点的概念,端点0 上面大家都知道的,错了,上面是编号0,等着PC给USB分配新的编号的地方。
端点0是在USB内部,是一个可以读,也可以写的双向端点。它是独一无二的。

我们说"读U盘"、"写U盘",可以细化为:把数据写到U盘的端点1,从U盘的端点2里读出数据
   除了端点0外,每一个端点只支持一个方向的数据传输
   端点0用于控制传输,既能输出也能输入
  
2. USB的传输类型:
a. 控制传输:可靠,时间有保证,比如:USB设备的识别过程
b. 批量传输: 可靠, 时间没有保证, 比如:U盘
c. 中断传输:可靠,实时,比如:USB鼠标
d. 实时传输:不可靠,实时,比如:USB摄像头


 术语里、程序里说的输入(IN)、输出(OUT) "都是" 基于USB主机的立场说的。
 比如鼠标的数据是从鼠标传到PC机, 对应的端点称为"输入端点"
    
USB总线驱动程序分析:
USB总线驱动程序,相当于Nand Flash 和 Nor Flash,有设备的读写函数,但是是什么命令,什么意思。
USB总线驱动程序是不知道的,需要设备驱动程序,来告知如 0X90

6. USB总线驱动程序的作用
a. 识别USB设备
b. 查找并安装对应的设备驱动程序
c. 提供USB读写函数


USB驱动程序框架:

app:  
-------------------------------------------
          USB设备驱动程序      // 知道数据含义
内核 --------------------------------------
          USB总线驱动程序      // 1. 识别, 2. 找到匹配的设备驱动, 3. 提供USB读写函数 (它不知道数据含义)
-------------------------------------------
           USB主机控制器
           UHCI OHCI EHCI
硬件        -----------
              USB设备

UHCI: intel,     低速(1.5Mbps)/全速(12Mbps)
OHCI: microsoft  低速/全速
EHCI:            高速(480Mbps)



USB总线驱动程序相当于USB主机控制器的驱动程序。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值