Linux USB驱动分析(一)

本文介绍了Linux环境下USB驱动的工作原理,从USB设备的硬件连接到软件层次结构进行了详细阐述。首先,USB设备通过D-和D+线路的上拉电阻与PC通信,接着,概述了USB的树形拓扑结构,包括主机控制器、USB驱动框架和设备控制器的角色。最后,详细讨论了USB设备的逻辑单元,如配置、接口、设置和端点,并解析了相关的描述符信息。
摘要由CSDN通过智能技术生成

一、USB设备发现

PC的USB口内部,D-和D+接有15K的下拉电阻,未接USB设备时为低电平,USB设备的USB口内部,D-或D+接有1.5K的上拉电阻;它一接入PC,就会把PC USB口的D-或D+拉高,从硬件的角度(电平由低变高)通知PC有新设备接入。下面的全速设备和低速设备区别在于上拉电阻接在D+还是D-端。在usb device端,这时就有高速低速设备的区别了,高速设备:d+ 接一个1.5kohm的上拉电阻,d-不接;低速设备则相反。

二、USB层次简介

 USB采用树形拓扑结构,主机侧和设备侧的USB控制器分别称为主机控制器和USB设备控制器,每条总线上只有一个主机控制器,负责协调主机和设备之间的通信。而设备不能主动向主机发送任何消息。所以,我们在分析USB驱动框架时,不妨从两个角去看,一是主机侧;一是设备侧。

从主机测看:

处于最底层的是USB主机控制器,其上为USB主机控制器驱动,然后是USB和核心层,处理USB核心事务,最上面为USB设备驱动,如:插入主机的U盘,鼠标,键盘等USB设备。要实现的USB驱动包含两类:USB主机控制器驱动和USB设备驱动。Linux内核中的USB核心负责驱动控制器和设备驱动的以及USB协议的管理。

从设备侧看:

USB驱动包含:USB设备控制器、UDC驱动、Gadget Function API 、Gadget Function 驱动。USB驱动直接访问底层一硬件。

三、USB设备逻辑单元

如图所示,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值