24、Linux-USB子系统开发全解析

Linux-USB子系统开发全解析

1. Linux-USB子系统架构

Linux-USB子系统由多个部分组成,各部分协同工作,为USB设备的正常运行提供支持。以下是该子系统的主要组成部分:
- USB核心 :如同其他驱动子系统的核心层,USB核心是一个代码库,包含供主机控制器驱动(HCD)和客户端驱动使用的例程和结构。它提供了一层间接性,使客户端驱动独立于主机控制器。
- HCD :用于驱动不同的主机控制器。
- 集线器驱动和khubd线程 :根集线器(以及物理集线器)有一个集线器驱动,还有一个辅助内核线程khubd,用于监控连接到集线器的所有端口。检测端口状态变化和配置热插拔设备很耗时,使用辅助线程能更好地完成这些任务。khubd线程默认处于休眠状态,当集线器驱动检测到连接到它的USB端口状态发生变化时,会唤醒khubd。
- USB客户端设备驱动 :负责控制和管理USB客户端设备。
- USB文件系统usbfs :允许从用户空间驱动USB设备。

为了实现端到端的操作,USB子系统会调用其他内核层提供协助。例如,为了支持USB大容量存储设备,USB子系统会与SCSI驱动协同工作;要驱动USB蓝牙键盘,则涉及USB子系统、蓝牙层、输入子系统和tty层。

2. 驱动数据结构

当编写USB客户端驱动时,需要使用几个重要的数据结构。

2.1 usb_device结构

每个设备驱动子

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值