如果某个设计满足指定 USB 设备类别的要求,则该 USB 设备必须具备的其他描述符信息都将包含在设备描述符结构中。附录 A 包含一个 PSoC USB 的全功能设备描述符的示例。...例如,USB 2.0 设备拥有 0x0200 值,USB 1.1 设备拥有 0x0110 值。通常,主机将使用 bcdUSB 以确定需要加载的 USB 驱动器。...支持 LPM 特性的所有 USB 2.0 设备都需要使用 USB 2.0 的扩展描述符来报告其 LPM 能力。USB 2.0 扩展描述符是BOS 描述符的一部分。...更多有关 BOS描述符和 USB 2.0 版本的扩展描述符的信息,请参考 USB 3.1 规范中第 9.6.2 章的内容。 10.8 使用多个 USB 描述符 各个 USB 设备只有一个设备描述符。...具有多种接口的 USB 设备(能够执行不同功能)被称为复合设备。USB 头戴式音频耳机便是一个复合设备示例。这种音频耳机包括一个带有两个接口的 USB 设备。
一系列相互独立的端点在一起构成了USB逻辑设备,在系统结构中,位于下方红色方框内: 二、端点的分类 每个USB设备都有一个唯一的设备地址,设备地址是设备连接上主机时由主机分配的,主机主要依靠这个设备地址对...USB设备进行访问。...五、端点与管道 1、管道的概念 管道是主机软件(数据缓存区),和USB设备各各端点之间的数据传输连接,他是两者之间通信流的抽象(实际上数据传输是USB总线接口完成)。...1)、“流”指不具有USB定义格式的数据流,流通道中的数据是流的形式,也就是该数据内容不具有USB要求的结构。...2)、“消息”指具有某种USB定义格式的数据流。消息通道与端点的关系同流通道与端点的关系是不同的。
8、USB端点 根据 USB 规范,设备端点是 USB 设备中一个独特的可寻址部分,它作为主机和设备间通信流的信息源或库。USB 枚举和配置一节介绍了设备向默认地址做出响应的步骤。...USB 类设备可对端点数量设定更严格的限制。例如,低速人机界面设备(HID)设计的端点可能不超过两个 — 通常有一个 IN 端点和一个 OUT 端点。数据端点本身具有双向特性。...USB 规范中对实际的计算公式进行了解释,这些计算由 USB 硬件进行,这样可确保能够发出正确的响应。数据操作的接收方对数据进行 CRC 检查。如果两者匹配,那么接收方将发出一个 ACK。...USB 规范定义了四种端点,并根据类型以及所支持的设备速度限制了数据包的尺寸。根据设计要求,开发者使用端点描述符指出端点类型以及数据包最大尺寸。...它们是USB 设备的最通用传输类型。因为用于批量传输的带宽并不是固定的,该传输的传送时间也是可变的。传送时间取决于总线上的可用带宽,由于该因素,便不能预期实际的传送时间。
9、通讯协议 从时间角度来看,USB 通信由一系列帧构成。每一帧都有一个帧开始(SOF),随后是一个或多个数据操作。每一个数据操作都由一系列数据包构成。...USB数据数据包 在每一个数据数据包成功传输后,主机和设备将对数据切换进行相应的更新。数据切换的优点在于它可作为附加的错误检测方法。...下图显示了一个 USB 传输中的数据切换示例。在该图以及本应用笔记的所有其他图中,白色框表示来自主机 的传输,黑色框则表示来自设备的传输。 ?...每一种 USB 速度都有不同的握手数据包响应选项。所支持的类型由 USB 速度决定: ACK:确认数据操作成功完成。(LS/FS/HS) NAK:否定确认。...9.2数据传输类型 USB 数据传输是指主机和设备之间的数据传输方式。一共有三种不同的数据传输类型,它们经常使用不同名称来代表相同的概念。这三种不同的数据传输类型具体如下。
2、USB2.0的特点 2.1、什么是USB2.0 USB-IF组织在2000年4月27日提出了USB2.0总线协议规范。...2.2 USB2.0的引脚定义 USB2.0采用了一排共四个针脚的设计 USB-A公头为例,如下图所示: 结构图如下图所示: 3、USB3.0的特点 3.1、USB3.0介绍 USB-IF组织在2008...3. 2、USB3.0的引脚定义 USB3.0采用的是两排共9个针脚的设计, 结构图如下图所示: 4、USB.2.0和USB3.0的区别 4.1 外观方面 USB2.0通常是白色或黑色,而USB3.0...4.2 USB插口引脚方面 USB2.0采用4针脚设计,而USB3.0则采取9针脚设计,相比而言USB3.0功能更强大。...4.3 USB公口的外观方面 USB3.0接口部分标记会有“SS”样式,而USB2.0则只标记普通的USB通用标识。
Linux 内核源码:include\linux\usb.h Linux 内核源码:drivers\hid\usbhid\usbmouse.c 1....BUS/DEV/DRV 模型 "USB 接口"是逻辑上的 USB 设备,编写的 usb_driver 驱动程序,支持的是"USB 接口": USB 控制器或 Hub 识别出 USB 设备后,会创建、...注册 usb_device usb_device 被"drivers\usb\core\generic.c" 驱动认领后,会选择、设置某个配置 这个配置下面的接口,都会分配、设置、注册一个 usb_interface...左边的 usb_driver 和右边的 usb_interface 如果匹配,则调用 usb_driver.probe 2....接口函数 在 USB 设备驱动程序中,能使用的 USB 函数都在这个头文件里:include\linux\usb.h。
1.3 适用范围 表 1-1: 适用产品列表 内核版本 驱动文件 Linux-4.9 drivers/usb/* Linux-5.4 drivers/usb/* 2 模块介绍 2.1 模块功能介绍...standby 模式,需注意如下: 1、IC 支持远程唤醒; 2、若条件 1 满足,相关硬件部分需严格按照《硬件设计文档》设计; 3、若条件 1、2 满足,额外添加属性 “wakeup-source;...USB 总线采用树形结构,在一条总线上只能有唯一的主机设备。Linux 内核从主机和设备两个角度观察 USB 总线结构。...图 2-11: linux-4.x usb gadget 配置选择 2.6.2 linux-4.x/linux-5.4 USB Gadget 配置流程 Linux-4.x/Linux-5.4 使用 configfs...• 若硬件有多个 USB 口,尝试同样条件下测试其他 USB 口的主机功能是否正常。
《QT开发实战》 《嵌入式通用开发实战》 《从0到1学习嵌入式Linux开发》
FPGA和USB3.0通信-硬件的测试 本次演示用的是USB3.0芯片-CYPRESS CYUSB3014(下称 FX3),该芯片是标准的USB3.0 PHY,可以大大简化使用USB通信时FPGA的设计...硬件测试 经过前面几期的介绍,我们基本了解及准备好所需要的环境,接下来我们就需要在应用之前先测试一下我们的硬件,主要包括:loopback传输测试、数据吞吐量测试、Streamer功能测试。...此时在工程目录下会生成一个Debug的文件夹,文件夹下面就生成了我们需要的固件,如下: 接下来,根据自己的硬件选择从USB引导。 插上USB,就可以在设备管理器上看到FX3设备。...LoopBack硬件测试 在上一节基础上,单击打开Cypress USB BulkLoopExample。...FPGA和USB3.0通信-USB3.0协议介绍 FPGA和USB3.0通信-USB3.0 PHY介绍 FPGA和USB3.0通信-FX3硬件设计简谈 FPGA和USB3.0通信-SDK的安装
插入一个 U 盘的时候,可以在右下角找到安全删除硬件图标,点击就可以删除此硬件。...如果此时插入的是一个无线网卡,也就是 USB 无线 wifi 设备,此时如果逗比点了弹出 802.11 设备那么就不能再使用无线上网了 如果我是一个硬件供应商,如何让我的设备不会显示弹出安全删除硬件弹出选项...我不是做硬件的,对硬件懂的很少,以下是我找到的文档,如果有说错的,欢迎小伙伴告诉我 从 Using the USB Removable Capability for Device Container...从 Overview of the Removable Device Capability可以知道一个 USB 设备是需要声明自己支持 Removable 的才可以在右下角使用安全删除硬件弹出选项 The...硬件回复的消息请看 DEVICE_CAPABILITIES (wdm.h) 在 PnP 询问USB设备,此时USB设备返回 DEVICE_CAPABILITIES 里面可以设置 Removable 项说明此设备支持移除
测试机器的硬件信息: 查看CPU信息(型号) # cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c 8 Intel(R)...# dmidecode | grep 'Processor Information' 查看内 存信息 # cat /proc/meminfo # uname -a Linux euis1...2.6.9-55.ELsmp #1 SMP Fri Apr 20 17:03:35 EDT 2007 i686 i686 i386 GNU/Linux (查看当前操作系统内核信息) # cat.../etc/issue | grep Linux Red Hat Enterprise Linux AS release 4 (Nahant Update 5) (查看当前操作系统发行版信息) 查看机器型号
自微软在Windows 98中加入对USB接口的支持后,USB接口才推广开来,USB设备也日渐增多,如数码相机、摄像头、扫描仪、游戏杆、打印机、键盘、鼠标等等,其中应用最广的就是摄像头和U盘了。...标准统一 大家常见的是IDE接口的硬盘,串口的鼠标键盘,并口的打印机扫描仪,可是有了USB之后,这些应用外设统统可以用同样的标准与个人电脑连接,这时就有了USB硬盘、USB鼠标、USB打印机等等。...,驱动程序把驱动程序对象注册到USB子系统中,稍后再使用制造商和设备标识来判断是否安装了硬件。.../usb.h> 4.2 USB设备注册框架示例 #include #include #include //定义...#include #include #include #include
通过扫描以下目录获取物理节点所有 USB 设备: /sys/bus/usb/devices/usb* /sys/bus/usb/devices/usb*/$busnum-* 从该文件系统收集某一个设备的主要信息如下..."level": 1, "manufacturer": "QEMU", "port": 0, "prodid": "0001", "product": "QEMU USB...: 产品 serial: USB 硬件设备序列号 ,例如 0000:00:01.2 定位方法# 定位某一个 USB 设备的方法有两种: busnum + devnum idVendor + idProduct...设备类bDeviceClass、bDeviceSubClass、bDeviceProtocol By USB 中文网 USB设备描述符中的idVendor、idProduct和bcdDevice By...USB 中文网 USB 硬件设备的序列号 By IBM 注:本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。
# 查看计算机名 # lspci -tv # 列出所有PCI设备(yum install pciutils) # lsusb -tv # 列出所有USB
在上一章分析完USB总线驱动程序后, 接下来开始写一个USB驱动: 本节目的: 将USB鼠标的左键当作L按键,将USB鼠标的右键当作S按键,中键当作回车按键 参考/drivers/hid/usbhid/...: usb_deregister(struct usb_driver *driver); 注册一个usb_driver驱动,然后内核会通过usb_driver的成员.id_table函数匹配一次USB设备...释放input_device 3.5在出口函数中 1)通过usb_deregister ()函数注销usb_driver结构体 4.代码如下: #include #include... #include #include #include #include... static struct input_dev *myusb_mouse_dev; //input_dev static char *myusb_mouse_buf
[ 0.513302] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002 [ 0.513303] usb usb1...Controller [ 0.513304] usb usb1: Manufacturer: Linux 3.10.0-327.el7.x86_64 xhci-hcd [ 0.513305...] usb usb1: SerialNumber: 0000:00:14.0 [ 0.518700] usb usb2: New USB device found, idVendor=1d6b,...0.518702] usb usb2: Product: xHCI Host Controller [ 0.518702] usb usb2: Manufacturer: Linux 3.10.0...] usb 1-4: New USB device found, idVendor=413c, idProduct=301a [ 1.040348] usb 1-4: New USB device
在实际项目中,需要定期检测设备状态,可能是PC上USB接口的问题,检测不了多久就会出现设备检测不到的情况,这可不行啊,总得想办法不是。...为了让以后遇到这个问题的小伙伴能在百度搜索中找到解决方案,我决心写这篇文章,希望能帮到需要的人,入正题: devcon可以用来检验驱动是否被正确安装,在这里我们可以使用devcon rescan命令来实现“扫描检测硬件改动
Linux3.11版本引入了基于configfs的usb gadget configfs。.../bcdDevice # USB 1.1: 0x0110 # USB 2.0: 0x0200, USB 2.1: 0x0210, USB 2.5: 0x0250 # USB 3.0: 0x0300...(gadget_strings, gadget_info); [include/linux/usb/gadget_configfs.h] #define USB_CONFIG_STRINGS_LANG(...主要的工作流程为: 分配一个config_usb_cfg1结构体,该结构体包含了usb_configuration结构体,保存了该USB设备的配置信息。 设置USB设备的配置描述符的某些选项。...调用UDC驱动接口usb_udc_connect_control连接USB主机控制器,这样USB主机就能识别并枚举USB设备。
使用方法:在linux环境下执行如下shell脚本,即可在/usr/bin下面生成脚本scanportDDCW. scanportDDCW使用说明:直接执行该脚本显示本机开发的端口,scanportDDCW...主机 扫描主机开发的端口 代码如下: #!
领取专属 10元无门槛券
手把手带您无忧上云