USB的整体架构

240阅读 0评论2023-11-20 lawrencekang
分类:LINUX

如下是Linux的USB架构图:



对于一个USB设备,如下图:


每个USB设备包括多个Interface;每个Interface包括多个EndPoint。
每个USB Endpoint

   1)控制传输(Control Transfer) 双向 端点0 ;通过交互,了解设备有多少个接口、多少个端点等信息;
   2)中断传输(Interrupt Transfer) 单向 ;主机采取定时轮询的方式
   3)  批量传输(块传输)(Bulk Transfer)单向
   4)实时传输(同步传输、等时传输)(Isochronous Transfer)单向 , 不可靠
USB Core 会处理USB Endpoint 的驱动;

USB 主控器驱动功能:(USB 主控器驱动一般由厂商实现)
1、  解析和维护URB
2、  负责不同USB传输类型的调度工作
3、  负责USB 数据的实际传输工作
4、  实现虚拟根Hub的功能;

"USB 接口":
  是逻辑上的 USB 设备
,编写的 usb_driver 驱动程序,支持的是"USB 接口"。
  • 1: USB 控制器或 Hub 识别出 USB 设备后,会创建、注册 usb_device
  • 2: usb_device 被"drivers\usb\core\generic.c" 驱动认领后,会选择、设置某个配置
  • 3: 这个配置下面的接口,都会分配、设置、注册一个 usb_interface
  • 4: 左边的 usb_driver 和右边的 usb_interface 如果匹配,则调用 usb_driver.probe
关系如下:







上一篇:Windows 整体框架
下一篇:Camera的结构介绍