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

linux usb端点

五、端点与管道 1、管道的概念 管道是主机软件(数据缓存区),和USB设备各各端点之间的数据传输连接,他是两者之间通信流的抽象(实际上数据传输是USB总线接口完成)。...管道与USB设备中的端点逐个对应,并且各个管道的数据传输是相互独立的。 2、管道的格式分类 管带的通信格式分为两种,一种为流,另一种为消息,这两种通信格式不同且互斥。...1)、“流”指不具有USB定义格式的数据流,流通道中的数据是流的形式,也就是该数据内容不具有USB要求的结构。...数据从流通道一端流进的顺序与它们从流通道另一端流出时的顺序是一样的(先进先出),并且流通道中的通信流总是单向的。 2)、“消息”指具有某种USB定义格式的数据流。...首先,主机向USB设备发出一个请求;接着,就是数据的传送;最后,是一个状态阶段(这部分即一次命令请求的过程)。

9.9K30

Linux USB 设备驱动模型

Linux 内核源码:include\linux\usb.h Linux 内核源码:drivers\hid\usbhid\usbmouse.c 1....接口函数 在 USB 设备驱动程序中,能使用的 USB 函数都在这个头文件里:include\linux\usb.h。...关键就在于需要填充 URB: dev:跟谁传输数据 pipe:跟哪个 pipe 传输数据 buffer:里面存有要发送的数据,或者用来接收要读取的数据 数据长度 回调函数 2.3.1 分配和释放 URB...对于一般的 buffer,在提交 URB 时会临时分配一个 DMA Buffer: 发送数据时:函数内部会先从一般 buffer 中把数据复制到 DMA Buffer,在提交给 USB 控制器 读取数据时...:USB 控制器先把数据传到 DMA Buffer,函数内部在把 DMA Buffer 的数据复制到一般 buffer 中间增加了一次数据的拷贝,效率低 我们可以直接使用 DMA Buffer,函数原型如下

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

    USB数据收发过程

    USB是一种主从通信机制,所有互相连接在一起的设备中只有一个主机,其余的都是从机。从机不能主动发起通信,主机轮流对各从机进行访问。...USB协议比较复杂,这是因为USB的硬件接口线比较少,要完成很多的功能就只能把协议做的复杂。...USB协议里面有个描述符,分为好多个子类(设备描述符、配置描述符、接口描述符、端点描述符、字符串描述符、设备限定符描述符)。这些描述符其实就是一个个数据结构,对应程序里的几个结构体。...表征USB的状态,在主机询问时,将自身的状态汇报给主机。比如: 主机:性别? 从机:男 主机:身高? 从机:180 ...... 从机回答的这些自身属性的就是那些描述符中的数据。...不考虑USB具体的协议的话,数据传输并不复杂,就是主机轮询各个从机数据,传输按照功能等分了四种,分别是控制传输,中断传输,同步传输,批量传输。不同的USB设备使用各种传输进行数据收发。

    25210

    19.Linux-USB总线驱动分析

    例子:USB鼠标滑动一下立刻产生数据,但是它没有能力通知PC机来读数据,只能被动地等得PC机来读。...中断传输不是说我的设备真正发出一个中断,然后主机会来读取数据。它其实是一种轮询的方式来完成数据的通信。USB设备会在设备驱动程序中设置一个参数叫做interval,它是endpoint的一个成员。...实时传输(isochronous)  USB摄像头就是实时传输设备的典型代表,它同样进行大数量的数据传输,数据的准确性无法保证,但是对传输延迟非常敏感,也就是说对实时性要求比较高 USB端点: USB..., 比如:鼠标的数据是从鼠标传到PC机, 对应的端点称为"中断输入端点" 其中端点0是设备的默认控制端点, 既能输出也能输入,用于USB设备的识别过程 同样linux内核也自带了USB总线驱动程序,框架如下...其中usb_bus_type是一个全局变量, 它和我们之前学的platform平台总线相似,属于USB总线, 是Linux中bus的一种.

    8.6K91

    Linux 上如何禁用 USB 存储设备

    为了保护数据不被泄漏,我们使用软件和硬件防火墙来限制外部未经授权的访问,但是数据泄露也可能发生在内部。 为了消除这种可能性,机构会限制和监测访问互联网,同时禁用 USB 存储设备。...在本教程中,我们将讨论三种不同的方法来禁用 Linux 机器上的 USB 存储设备。所有这三种方法都在 CentOS 6&7 机器上通过测试。那么让我们一一讨论这三种方法。...方法 2:删除 USB 驱动 这种方法要求我们将 USB 存储的驱动程序(usb_storage.ko)删掉或者移走,从而达到无法再访问 USB 存储设备的目的。...usb-storage 保存文件并退出。...usb-storage 就在就会被系统阻止加载,但这种方法有一个很大的缺点,即任何特权用户都可以通过执行以下命令来加载 usb-storage 模块, $ sudo modprobe usb-storage

    10K10

    如何用Wireshark捕获USB数据

    事实上通过wireshark,我们可以捕获到usb设备发送给我们主机的数据,这样就可以进一步研究了。...本文中,我们将向大家介绍怎样通过wireshark捕获usb数据,使用的环境如下: l Wireshark 2.0.1(SVN)l Linux kernel 4.1.6 你也可以用其他版本的wireshark...最后是USB Memory,或者说是数据存储。External HDD, thumb drive / flash drive,等都是这一类的。...Bus 003 Device 010代表usb设备正常连接,这点需要记下来。 准备 我们用root权限运行Wireshark捕获USB数据流。但是通常来说我们不建议这么做。...我们需要给用户足够的权限来获取linux中的usb数据流。我们可以用udev来达到我们的目的。我们需要创建一个用户组usbmon,然后把我们的账户添加到这个组中。

    3K70

    制作 Kali 可启动 USB 驱动器 (Linux)

    制作 Kali 可启动 USB 驱动器 (Linux) 我们最喜欢的方式,也是最快的方法,启动和运行 Kali Linux 是从 USB 驱动器“实时”运行它。...驱动器上 它具有潜在的持久性——通过一些额外的努力,您可以将 Kali Linux “实时” USB 驱动器配置为具有持久性存储,因此您收集的数据将在重新启动后保存 为此,我们首先需要创建一个可引导的...USB 驱动器,该驱动器已从 Kali Linux 的 ISO 映像设置。...Kali Linux Live USB 安装程序 此过程的具体细节取决于您是在Windows、Linux还是macOS/OS X系统上执行此操作。...在 Linux (DD) 上创建可引导 Kali USB 驱动器 在 Linux 环境中创建可引导的 Kali Linux USB 驱动器很容易。

    22110
    领券