USB 驱动开发
文章平均质量分 77
snps dwc3 usb驱动开发
驱动探索者
分享在SOC芯片设计中,各个模块的软件驱动开发
包括USB PCIE 等
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Intel D415 RGB + 深度 立体摄像头
realsense网址,开发者中心github地址。原创 2025-10-06 19:42:32 · 1323 阅读 · 0 评论 -
USB 2.0 简介
USB 是一种支持热插拔的高速串行传输总线,它使用差分信号来传输数据,最高速度可达 480Mb/S。USB 支持“总线供电”和“自供电”两种供电模式。在总线供电模式下,设备最多可以获得 500mA 的电流。USB2.0 被设计成为向下兼容的模式,当有全速( USB 1.1)或者低速( USB 1.0)设备连接到高速( USB 2.0)主机时,主机可以通过分离传输来支持它们。一条 USB 总线上,可达到的最高传输速度等级由该总线上最慢的“设备”决定,该设备包括主机、 HUB 以及 USB 功能设备。原创 2025-08-16 17:03:58 · 1478 阅读 · 0 评论 -
USB suspend resume 浅析
属于SelectorwValue = 1Host 通过来允许或禁止设备在 suspend 状态下主动发起远程唤醒 (Remote Wakeup)。引入于,并在 USB 3.0 继续沿用。属于Selector。原创 2025-08-16 12:01:22 · 1015 阅读 · 0 评论 -
USB type-C 多功能复用
原创 2025-08-16 09:50:34 · 300 阅读 · 0 评论 -
USB PD 简介
原创 2025-08-16 09:32:15 · 208 阅读 · 0 评论 -
USB type-C 图解
USB CC 通道模式大全。原创 2025-08-16 09:26:49 · 436 阅读 · 0 评论 -
USB Fastboot 简介
根据命令,主机或客户端发送指定大小的数据,短包始终可接受,零长度包将被忽略。全速模式最大包大小为 64 字节,高速模式为 512 字节,超高速模式为 1024 字节。→ 请求的命令失败,剩余 60 字节(如果有)为失败原因文本,终止。主机发送一条命令(ASCII 字符串),单包不超过 64 字节。客户端再发送一个不超过 64 字节的包,前 4 个字节为。客户端返回一个不超过 64 字节的包,前 4 个字节为。→ 命令已准备好数据传输,包长为 12 字节,格式为。原创 2025-08-15 09:04:49 · 1196 阅读 · 0 评论 -
USB ADB 简介
然后,服务器会与所有正在运行的设备建立连接,它通过扫描 5555 到 5585 之间(该范围供前 16 个模拟器使用)的奇数号端口查找模拟器,服务器一旦发现 adb 守护程序 (adbd),便会与相应的端口建立连接,请注意,每个模拟器都使用一对按顺序排列的端口(用于控制台连接的偶数号端口和用于 adb 连接的奇数号端口)例如。总结:ADB是一个强大且灵活的工具,通过掌握其基本原理和使用方法,开发者可以更高效地进行Android开发与调试。连接设备:通过USB将Android设备连接到电脑。原创 2025-08-15 08:52:12 · 1328 阅读 · 0 评论 -
USB gadget 源码剖析
UDC驱动的接口都定义在drivers/usb/gadget/udc/core.c文件中。USB Function驱动通过调用这些接口匹配及访问USB设备控制器,而底层USB控制器驱动要实现这些接口定义的功能。下面分析一下主要的UDC驱动接口调用流程。上面总结了常用的UDC驱动接口,这些接口大多数可被Function驱动直接调用,少部分经过封装被Function驱动调用。通过分析这些接口的调用流程,对认识USB控制器内部的工作流程有很大的帮助。转载 2025-08-15 08:07:20 · 261 阅读 · 0 评论 -
USB 3.0 link command 定义
USB链路层的包比较难进入大家的关注,今天把都揪出来认识一遍:n:Header Sequence Number(头部序列号)当满足以下所有条件时,接收端端口会发送 LGOOD_n:接收到的头部包(Header Packet)结构有效,接收端能够识别。CRC-5 和 CRC-16 校验均有效。接收到的头部包中的 Header Sequence Number 与接收端预期的 Rx Header Sequence Number 匹配。接收端有可用的 Rx Header Buffer 来存储接收到的头部包。如果接收原创 2025-08-14 22:09:23 · 1054 阅读 · 0 评论 -
USB 3.0 协议层 包定义
主机只有在根端口链路已处于 U0 状态时,才会在该链路上发送 ITP,且仅主机可以发起 ITP 发送。跨越从主机到设备的所有直接连接链路。是下行方向数据包中的一个 20 位字段,集线器利用它将每个数据包路由到指定的下行端口。ITP 不携带地址或路由信息,由集线器多播到所有处于 U0 状态并已完成端口配置的下行端口。如果设备接收到一个在链路控制字中延迟标志(DL)置位的 ITP,则其时间戳值可能存在显著误差,设备可忽略该时间戳。跨越从主机到设备的所有直接连接链路,用于控制数据包的传输流、配置设备和集线器等。原创 2025-08-14 21:52:43 · 983 阅读 · 0 评论 -
USB 3.0 LTSSM 状态机
整个链路训练过程由LTSSM管理,涉及到多个状态和子状态,主要是从RX.Detect到Polling.Idle等,最终进入USB 3.0的正常工作状态U0,这个过程确保了USB 3.0设备间的可靠通信和高效数据传输。请注意,在Polling.Active状态下,面向下游(DS)的端口和面向上游(US)的端口的要求略有不同。在Polling.Idle子状态中,链路伙伴解码在Polling.Configuration子状态中接收到的TS2,并确定下一个LTSSM状态应该是U0、环回还是热重启。原创 2025-08-14 20:48:29 · 1259 阅读 · 0 评论 -
USB bus device driver 软件简介
今天来介绍一下linux的设备模型,并且导出usb的设备模型软件简介有点类似基类与派生类的关系。原创 2025-08-14 09:10:23 · 602 阅读 · 0 评论 -
USB gadget 全功能脚本
在野火鲁班猫的教材中有一个存在于/usr/bin/usbdevice的配置脚本刚好我自己也写过很多操作configfs的脚本,但是这里的功能比较全,于是详细分析并且分享一下。原创 2025-08-14 08:37:25 · 1107 阅读 · 0 评论 -
USB 2.0 3.0 插拔 ftrace 详解
鲁班猫第一次登场:用来测试usb的插拔造成的event学习。原创 2025-08-12 22:51:52 · 645 阅读 · 0 评论 -
USB 标准请求
设备返回如是否自供电(Self-Powered)、是否支持远程唤醒(Remote Wakeup)等状态位。指定描述符类型(设备、配置、字符串等)和索引,主机用它来读取设备的各种描述信息。:常用于清除端点的暂停状态(端点从STALL恢复正常),或者禁用远程唤醒功能。:主机可以通过此请求切换接口端点的工作模式,比如改变视频流的分辨率或帧率。作用:描述各种 USB 事件(如复位、挂起、恢复)对设备状态的影响。:设备根据此请求激活对应配置的接口和端点,完成设备初始化。:请求设备返回指定类型的描述符数据。原创 2025-08-11 23:21:36 · 766 阅读 · 0 评论 -
USB 基本描述符
本篇文章带大家学习usb的各种标准描述符,可能有些枯燥,但是熟悉了之后就了解了这些信息是如何构建出usb的四通八达的设备使用的,你可以理解描述符就是设备的简历,供host来查阅,相当于之前在dts里面配置的node信息跑到设备本身上了,这样才能实现热拔插的效果,当然,每个类专属的描述符这里暂时没有篇幅介绍。原创 2025-08-11 22:51:24 · 1169 阅读 · 0 评论 -
USB 设备百科
音频类设备(USB Audio Class, UAC),包括声卡、USB 麦克风、USB 耳机、DAC 等。参考视频:https://youtu.be/iR2hYpq0KI0?:通讯设备类控制接口,常用于调制解调器、网络适配器等,配合 CDC-Data(0x0A)一起使用。:图像设备类,支持 PTP(图片传输协议)、MTP(媒体传输协议)等。:外置声卡、USB 麦克风、USB 耳机、会议麦、乐器接口。:视频类设备(UVC),包括摄像头、视频采集卡,通常免驱。原创 2025-08-11 20:41:22 · 2513 阅读 · 0 评论 -
UVC USB摄像头简介
完整描述符: Video record重复占用会打印错误 调整摄像头参数列出所有可调参数拍照pythonc原创 2025-07-29 08:57:48 · 469 阅读 · 0 评论 -
usb test使用指南
它是内核提供的USB 设备驱动 + 用户态工具配套组成的一整套验证机制,适合用于测试 USB 设备接口传输可靠性、性能、错误恢复等。内核模块 驱动层:drivers/usb/misc/usbtest.c,它会绑定到某些符合条件的 USB 设备上(比如 test device、loopback device)如果你没专用硬件,也可以在 Linux 上配置 gadget(比如通过 g_zero、g_ncm、g_loopback)来创建符合要求的设备,从而配合 usbtest 做测试。原创 2025-06-23 10:55:02 · 1018 阅读 · 0 评论
分享