Chinaunix首页 | 论坛 | 博客
  • 博客访问: 530539
  • 博文数量: 237
  • 博客积分: 2175
  • 博客等级: 大尉
  • 技术积分: 2563
  • 用 户 组: 普通用户
  • 注册时间: 2007-04-05 22:02
个人简介

目前在一家公司担任软件总监,主要涉及智能手机,笔记本电脑的开发

文章分类

全部博文(237)

文章存档

2024年(18)

2023年(68)

2022年(13)

2021年(7)

2020年(11)

2019年(3)

2018年(10)

2017年(8)

2012年(7)

2011年(4)

2010年(32)

2009年(41)

2008年(6)

2007年(9)

分类: LINUX

2023-11-20 12:04:38

如下是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
关系如下:







阅读(176) | 评论(0) | 转发(0) |
0

上一篇:Windows 整体框架

下一篇:Camera的结构介绍

给主人留下些什么吧!~~