本节只分析USB控制器作为Device时的驱动框架。 USB控制器作为Device时,驱动框架可分为5层。最上层的是Gadget Function驱动,代表了具体设备的驱动,如大容量存储设备驱动(U盘、移动硬盘等)、通讯类设备驱动(USB串口、USB虚拟网卡等)、UAC驱动(USB麦克风、USB声卡等USB音频类设备)。接下来是Gadget
在linux系统中,usb驱动可以从两个角度去观察,一个是主机侧,一个是设备侧。linux usb 驱动的总体框架如下图所示: 从主机侧看usb驱动可分为四层:usb主机控制器硬件底层、usb主机控制器驱动、usb核心和usb设备驱动。 在主机侧要实现的驱动主要分为两类:usb主机控制器驱动和usb设备驱动。主机控制器驱动负责控制插入其...
Linux USB驱动框架是Linux操作系统中用于管理USB设备的软件组件,它允许操作系统识别、管理和控制USB设备。该框架包括主机端和设备端的驱动程序,以及相关的通信协议和硬件接口。以下是关于Linux USB驱动框架的基础概念、优势、类型、应用场景以及常见问题和解决方法。 基础概念 USB设备:包括U盘、键盘、鼠标等,通过USB接口连...
这里需要强调下USB设备使用的是USB总线,window或Linux内核中都会自带usb总线驱动,所以接上USB设备后,主机能够立刻检测到,提醒需要安装设备驱动是指安装USB设备驱动。 USB设备驱动使用USB总线,所以很多操作由USB总线驱动帮我们完成了,我们只需要的按照总线、设备、驱动框架来实现USB设备的驱动既可。USB设备数据的读写操作由...
USB控制器作为Host时,称为USB主机控制器,使用USB主机控制器驱动。USB控制器作为Device时,称为USB设备控制器,使用UDC(usb device controller)驱动。本节只分析USB控制器作为Device时的驱动框架。 USB控制器作为Device时,驱动框架可分为5层。最上层的是Gadget Function驱动,代表了具体设备的驱动,如大容量存储设备驱动(...
1.3 USB驱动程序框架 1.3.1 基本数据结构 usb-skel设备使用自定义结构usb_skel记录设备驱动用到的所有描述符,该结构定义如下: 1.3.2 驱动程序初始化和注销 同其他所有的Linux设备驱动程序一样,usb-skel驱动使用module_init()宏初始化函数,使用module_exit()宏注销函数。usb-skel驱动的初始化函数usb_skel_init()函...
1、USB驱动引入 USB(全称 Universal Serial Bus,通用串行总线),已经成为PC及嵌入式设备中最常用、最便捷的通信接口。Linux USB子系统较为庞大,本文主要对Linux系统下的USB总线驱动框架进行概述,重点的细节待后续文章展开。 首先来看一个现象,插入USB设备后linux系统打印如下日志: ...
1、USB驱动引入 USB(全称 Universal Serial Bus,通用串行总线),已经成为PC及嵌入式设备中最常用、最便捷的通信接口。Linux USB子系统较为庞大,本文主要对Linux系统下的USB总线驱动框架进行概述,重点的细节待后续文章展开。 首先来看一个现象,插入USB设备后linux系统打印如下日志: ...
一、linux 下的usb驱动框架 在linux系统中,usb驱动可以从两个角度去观察,一个是主机侧,一个是设备侧。linux usb 驱动的总体框架如下图所示: 从主机侧看usb驱动可分为四层:usb主机控制器硬件底层、usb主机控制器驱动、usb核心和usb设备驱动。 在主机侧要实现的驱动主要分为两类:usb主机控制器驱动和usb设备驱动...