首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

19.Linux-USB总线驱动分析

, 比如:鼠标的数据是从鼠标传到PC机, 对应的端点称为"中断输入端点" 其中端点0是设备的默认控制端点, 既能输出也能输入,用于USB设备的识别过程 同样linux内核也自带了USB总线驱动程序,框架如下...), xHCI(eXtensible Host Controller Interface):USB3.0(5.0Gbps),采用了9针脚设计,同时也支持USB2.0、1.1等 接下来进入正题,开始分析USB...设备插入后,D+或D-就会被拉高,然后USB主机控制器就会产生一个hub_irq中断. 4.接下来我们直接分析hub_port_connect_change()函数,如何连接端口的 static void...其中usb_bus_type是一个全局变量, 它和我们之前学的platform平台总线相似,属于USB总线, 是Linux中bus的一种....设备时,系统就会获取USB设备的设备、配置、接口、端点的数据,并创建新设备,所以我们的驱动就需要写id_table来匹配该USB设备 USB总线驱动程序大概流程就此结束,未完待续——分析完后下节开始写USB

8.6K91

linux usb端点

前言 端点在实际的USB通讯过程种的具体作用与含义十分重要,但是有些难以理解,自己整理一些知识作为备忘。 (注:1、文中的EP表示Endpoint; 一、端点概念。...端点(Endpoint),是主机与设备之间通讯数据的接收或来源。主机与设备之间通信时最终会总用于设备上的各个端点,它是主机与设备间通信流的一个逻辑终端。...USB设备进行访问。...五、端点与管道 1、管道的概念 管道是主机软件(数据缓存区),和USB设备各各端点之间的数据传输连接,他是两者之间通信流的抽象(实际上数据传输是USB总线接口完成)。...1)、“流”指不具有USB定义格式的数据流,流通道中的数据是流的形式,也就是该数据内容不具有USB要求的结构。

9.9K30
您找到你想要的搜索结果了吗?
是的
没有找到

Android OTG之USB转串口模块通讯

Android OTG之USB转串口模块通讯 微信公众号:CodingAndroid CSDN:http://blog.csdn.net/xinpengfei521 1.背景简介 我们公司开发了一款室内机平板...2.分析及实现思路 智能门锁的控制是通过使用 433射频(不了解的请百度)来进行通讯的; 平板是没法与智能门锁直接进行通讯,但是厂家提供了一个433通讯模块(支持串口); 而平板(支持OTG)是支持USB...3.主要代码实现 3.1初始化USB转串口模块 由于我们选用的是CH340模块,我们先导入ch340的 jar 包,然后在代码中检查手机/平板是否支持USB HOST模式,如果支持我们就初始化通讯时的相关参数...初始化完成之后,我们就可以打开USB进行通讯了,同时初始化完成之后我们需要开启一个读取数据的线程,这样,一旦收到数据或者相应的响应包(一般也叫ACK)我们就可以进行相应的处理了。.../2/6 :) * Function:CH340数据处理工具类 */ public class CH340Util { /** * write data in ch340

3.2K10

USB总线-Linux内核USB3.0设备控制器驱动框架分析(四)

USB控制器作为Device时,称为USB设备控制器,使用UDC(usb device controller)驱动。本节只分析USB控制器作为Device时的驱动框架。...最上层的是Gadget Function驱动,代表了具体设备的驱动,如大容量存储设备驱动(U盘、移动硬盘等)、通讯类设备驱动(USB串口、USB虚拟网卡等)、UAC驱动(USB麦克风、USB声卡等USB...2.Gadget Function驱动 Linux内核的USB Gadget Function驱动都在drivers/usb/gadget/function/目录下,有通讯设备类(Communication...Linux 3.11版本引入了USB Gadget Configfs。在用户层可以通过暴漏出来的API定义USB Gadget设备的任意功能和配置,极大的方便了USB复合设备的配置和使用。...这些函数内部会调用具体的USB设备控制器的UDC驱动。RK3399平台上,就会调用dwc3实现的UDC驱动。至于具体内容,后面章节在分析dwc3的UDC驱动时会详细说明。

9.9K20

USB流量取证分析

USB是 UniversalSerial Bus(通用串行总线)的缩写,是一个外部总线标准,用于规范电脑与外部设备的连接和通讯,例如键盘、鼠标、打印机、磁盘或网络适配器等等。...在Linux中,可以使用lsusb命令,如图所示: ? 我们这里主要演示USB的鼠标流量和键盘流量。Linux下的分析已经比较多了,下面的环境均在Windows下进行。...一、鼠标流量 1.1 特点分析 USB鼠标流量的规则如下所示: ?...1.2 使用Wireshark捕获和分析 要想使用Wireshark进行捕获,需要在安装时勾选上usbpcap工具选项,这样你的Wireshark中会有一个usb接口的选项,点击就可以进行抓包了。...有的鼠标可能协议不是很标准,会导致分析不了。 Wireshark中捕获的USB流量集中在Leftover Capture Data模块,我们可以使用tshark工具来进行提取。

2.9K20

USB passthrough技术分析

前言: USB passthrough让作者疑惑了一番~ 分析: 1,xml 根据libvirt的官方文档:http://libvirt.org/formatdomain.html#elementsHostDevSubsys...libusb的代码,作者简单翻了一下,跑了一下测试代码,看了一下trace,大概意思就是分析/sys/bus/usb/devices目录下的文件/文件夹,进而可以打开usb设备,或者获取usb设备的attr...;在用户态实现usb协议,则可以直接操作硬件。...usb的设备虚拟化,则和其他usb设备一样,guest中对usb设备进行操作,则qemu把对应的操作通过libusb透传给host的usb设备。...后记: 作者对usb协议并不熟悉,关于libusb的解释也未必完全准确。 请教过一个kernel高手的朋友,见我不会usb,还鄙视了我一下~囧

1.9K110

USB总线-Linux内核USB3.0控制器初始化代码分析(三)

只有两个模块都初始化完毕,USB3.0控制器才能正常工作。本节只分析USB驱动早期初始化部分。 2.设备树 下面是USB3.0控制器的设备树节点。...这两部分分开来分析,首先分析rockchip提供的驱动,最后分析synopsys官方的驱动。...模式切换有关,后面分析extcon驱动时详细分析。...初始化驱动分析 3.2.1.数据结构体分析 struct dwc3是USB3.0 OTG控制器的核心数据结构,所有工作都围绕此数据结构展开。...控制器硬件,主要流程如下: (1)获取USB控制器IP的版本,便于后续进行不同的配置,USB控制器不同IP版本之间有差别,将Linux内核版本号写入USB控制器寄存器,以便发现某些版本下的bug (2)

6.3K30

Linux 性能分析工具 nmon for Linux

将数据保存到一个逗号分隔的文件以供分析,并进行长时间数据捕捉 配合使用 nmon Excel 2000 电子表格分析器,该分析器能够加载 nmon 输出文件并自动为你创建几十个图形,你可以基于这些图形研究或填写性能报告...下载源码编译 - 点击 编译 nmon 数据分析 保存好 nmon 数据以后,你可以使用以下几种工具之一来对其进行分析并生成统计图。...下载 nmon Excel 电子表格分析器 这个比较原始工具多年前由 Stephen Atkins 研发 你可以通过性能工具论坛请求支持 Linux 用户可能并不喜欢使用微软电子表格的想法,他们很难自动生成图形...nmon2rrd 一个微软免费工具 这个工具使用 rrdtool 生成所有图形和一个网站 .html 文件 从 nmon for AIX Wiki 下载 nmon2rrd 这个工具支持多台机器的自动分析...,可以通过一个浏览器对分析情况进行查看 现在 - 开源了 nmon for Linux 是一个单一的 5000 行代码的源码文件和单一的 makefile。

6.9K60

USB总线-Linux内核USB3.0设备控制器复合设备之legacy方式分析(八)

USB gadget configfs和legacy相比只是实现复合设备的形式不同而已,设备的功能最终还是要通过function驱动实现。下面以音频复合设备为例,分析g_audio驱动的工作过程。...2.音频复合设备驱动 从前面的分析中可以看出,复合设备驱动围绕usb_composite_driver和usb_composite_dev两个数据结构展开,legacy方式的复合设备驱动也不例外。...(audio_driver); // 注册audio_driver [include/linux/usb/composite.h] #define module_usb_composite_driver...[include/linux/device.h] #define module_driver(__driver, __register, __unregister, ...) \ static int...USB gadget configfs根据名称查找USB设备控制器,而legacy方式只匹配第一个USB设备控制器,无法匹配指定的USB设备控制器。

3.9K40

Linux 性能分析工具汇总

本文档主要是结合Linux 大牛,搜集Linux系统性能优化相关文章整理后的一篇综合性文章,主要是结合博文对涉及到的原理和性能测试的工具展开说明。 背景知识:具备背景知识是分析性能问题时需要了解的。...常用的性能测试工具 熟练并精通了第二部分的性能分析命令工具,引入几个性能测试的工具,介绍之前先简单了解几个性能测试工具: perf_events:一款随 Linux 内核代码一同发布和维护的性能诊断工具...perf-tools:一款基于 perf_events (perf) 和 ftrace 的Linux性能分析调优工具集。Perf-Tools 依赖库少,使用简单。...支持Linux 3.2 及以上内核版本。 bcc(BPF Compiler Collection)::一款使用 eBP F的 perf 性能分析工具。...Linux observability sar | linux性能观测工具 sar(System Activity Reporter系统活动情况报告)是目前LINUX上最为全面的系统性能分析工具之一,

1.2K20

全速USB和高速USB的识别过程分析

1 前言 我们知道USB2.0向下兼容USB1.x,即高速2.0的hub能支持所有的速度类型的设备,而USB1.x的hub不能支持高速设备(High Speed Device)。...图1 全速USB设备的连接 ?...图2 低速USB设备的连接 3 高速USB的识别 USB全速/低速识别相当简单,但USB2.0,USB1.x就一对数据线,不能像全速/低速那样仅依靠数据线上拉电阻位置就能识别USB第三种速度:高速。...至此,高速设备与USB2.0 hub握手完毕,进行后续的480Mbps高速信号通信。 最后附上几幅实际USB高速识别的示波器抓图,图中蓝色信号是D+,黄色信号是D-。...图6 示波器截取的高速USB协商过程3 最后附上一张来自Don Anderson的USB System Architecture里的USB HS接口图: ?

4.1K20

linux下流量分析工具

在日常的运维工作中,我们经常需要去关注网卡流量的使用情况,看是否处于正常的使用范围内,如果入网或者出网有异常升高或者降低,我们都要及早的去发现,来进行评估是否处于异常状态,而去发现这个异常,就需要我们熟悉常用的流量分析查看工具...,例如我们这里要讲的六大工具(不分排名先后) nload iftop bmon sar iptraf dstat 接下来我们分别看下这几个工具的使用方法 nload使用 nload工具是通过读取/proc.../net/dev文件,以获得流量统计信息,nload是一个命令行工具,让用户可以分开来监控入站和出站的流量,它还可以绘制图表以显示入站流量和出站流量,如果我们需要看带宽的总体情况,不需要看每个进程的详细情况...2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 sar -n DEV 3 2 # sar -n DEV 3 2 Linux...内存分页监控: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 # sar -B 10 3 Linux 3.10.0-693.2.2.el7

4.3K40
领券