usb学习笔记

1 学习链接

Linux USB 3.0驱动分析(一)—— USB设备基础概念 - luoyuna - 博客园

https://zhuanlan.zhihu.com/p/683251257

https://zhuanlan.zhihu.com/p/558716468

USB鼠标驱动开发流程-优快云博客

USB设备在Linux系统中的识别和加载过程-电子发烧友网

USB协议架构及驱动架构

 USB驱动框架分析1_usb storage 驱动框架-优快云博客

USB 2.0 协议专栏之 USB 2.0 连接与枚举(二)_usb枚举-优快云博客

usb枚举过程分析之hub_events_hub的枚举流程-优快云博客

https://naotu.baidu.com/file/07b78a1dda9615278029e01a42bdaa32

2 别人的调试记录:

STM32 USB Mass Storage 例程调试笔记 - irwin0112 - 博客园

调试记录-USB异常断开调试_idvendor=2ecc idproduct=3001-优快云博客

USB 设备常见问题_usb枚举失败-优快云博客

usb拓扑图:

Compound Device和composite device的区别:

USB复合设备(Compound Device):就是指将Hub和连接在Hub上的设备封装到一起所组成的设备,每个设备都会分配一个设备地址。如图Compound Device。

USB组合设备(USB composite device):所示在USB系统中,除了Compound Device,还有Composite Device概念,是指具有多个接口且接口间相互独立的USB设备。一个USB组合设备只有一个设备地址,可以将不同的功能与不同的接口对应,来开发多功能USB设备,即组合设备采用一个USB控制芯片,同时联接不同的USB设备(或芯片),主机可同时与这些USB设备通信。

usb设备驱动和usb接口驱动的区别:

USB设备驱动(usb device driver)就只有一个,即usb_generice_driver这个对象,所有USB设备都要绑定到usb_generic_driver上,它的使命可以概括为:为USB设备选择一个合适的配置,让设备进入configured状态。

·USB驱动(usb driver)就是USB设备的接口驱动程序,比如adb驱动程序,u盘驱动程序,鼠标驱动程序等等。

驱动代码中,for_devices = 1的是usb设备驱动,for_devices = 0的是usb接口驱动。

控制传输固定使用端点0 ,枚举过程使用大量的控制传输,可参考后文中枚举过程的实际报文。控制传输为了保证配置数据的传输的有效性,使用了指令再确认机制

BULK传输的速率取决于主机IN 或OUT事务的间隔,系统占用率高,IN或OUT事务间隔可能就变大,系统占用率小,IN或OUT事务间隔可能减小。

BULK传输速率不确定是因为IN或OUT事务是在其他任务空闲时发出,而中断传输的IN或OUT事务则是定时发出,定时周期取决于设备端点的配置

同步传输综合了BULK传输的整体速率,以及中断传输的实时性,但是去掉了事务的应答,不具备错误重发机制,多用于音视频传输允许少量错误失真地方。

设备将自身的配置信息保存在本地 ,主机在检测到设备接入时 ,通过端点0获取设备配置信息,然后根据配置信息,使用配置的模式以及配置的数据端点通信 ,这个过程称为USB枚举 ,枚举所获取的配置称为USB描述符

  1. USB Host Controller Driver (HCD): 这是运行在主机端(例如一台 PC)上的驱动程序,负责与连接到该主机的各种 USB 设备进行通信。HCD 会处理主机和设备之间的数据传输。

  2. USB Device Driver: 这是在主机操作系统上运行的驱动程序,用于支持特定类型的 USB 设备(如键盘、鼠标、存储设备等)。这些驱动程序通常与特定的 USB 类(class)相关联,比如 HID (Human Interface Device) 类、Mass Storage 类等。

  3. USB Gadget Driver: 这是在嵌入式系统或任何作为 USB 设备工作的系统中运行的驱动程序。gadget 驱动程序定义了设备的行为,包括设备可以提供的功能(例如大容量存储、网络接口等)。

  4. USB Device Controller (UDC) Driver: UDC 驱动程序控制实际的硬件控制器,这个控制器负责执行 USB 协议并处理底层的数据传输。UDC 驱动程序提供了对硬件寄存器的访问,并且通常需要与 gadget 驱动程序协同工作来实现完整的 USB 设备功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值