首页
学习
活动
专区
圈层
工具
发布

【驱动设计的硬件基础】USB

三、硬件时序图:USB 的 "对话规则" USB 设备和电脑的通信,就像两个人打电话 —— 得先约好 "什么时候说话、说什么内容"。这个 "约定" 就是时序,我们用一张图来模拟它们的 "对话"。...(Host),负责发号施令;集线器(Hub)是部门经理,负责管理手下的 "员工"(设备);各种外设是员工,负责具体干活。...整个 USB 系统就是这样一个 "树状组织" 6.1 核心规则:星型拓扑 + 层级限制 USB 的物理连接采用分层星型拓扑,简单说就是: 根节点:电脑主机自带的 "根集线器"(Root Hub),相当于公司总部...但要注意层级限制:从根集线器开始,最多只能接 5 层(比如根→Hub1→Hub2→Hub3→Hub4→设备)。超过 5 层的话,信号会衰减得太厉害,设备可能连不上。...集线器的每个下行端口(接设备的口)也有独立地址,相当于 "部门分机号"。 小知识:为什么最多 127 个设备?

1.3K10

别让 USB 传输速度影响 Android 开发效率

为什么 USB 传输速度很重要 无论 "Delta Push" 是否被启用,总会有数据传输到设备上。...如果用的是模拟器,数据会通过 TCP/IP 进行传输,但是如果用的是真机则会用到 USB,USB 传输速度越快,等待时间越短,程序迭代速度也就越快。...USB 2.0 数据线中有四根线缆。其中两根用于供电,另外两根用于数据传输。 △ 一条 USB 2.0 数据线中含四根线缆 USB 3.X 数据线完全向下兼容。...选择合适的 USB 集线器 最后一个要避免的错误操作就是避免使用较差质量的 USB 集线器产品 —— 它的效果和用错线是一样的。...USB 集线器可以把您所有的设备都串联到一起 (从键盘、鼠标、到开发设备)。但是很多集线器产品都是用于一些轻量级低速设备,比如键盘、鼠标和耳机,这些设备仅需要 USB 2.0连接。

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

    针对 USB 外设的新型注入攻击

    USB 通信 USB系统采用树形拓扑结构,其中根是主机USB控制器,它具有一个嵌入式根集线器,为外围设备提供连接点。...标准(非根)集线器(Hub)最多可连接五个设备,在一条链上扩展 USB 端口的数量,最多支持127个设备。USB 通信由主机进行仲裁,通信数据未加密。...Root Hub 目前的研究主要集中在USB网络树内部层中使用的标准集线器上。根集线器是主机系统上提供第一层连接点的设备,其结构与标准USB集线器有所不同。...由于xHCI规范的指导,根集线器能够有效地管理和控制与其连接的设备,并确保没有跨根集线器端口的下游USB 1.x和2.0流量的广播。...•实验设置:将攻击平台配置为模拟LS模式下的HID鼠标,通过一个易受攻击的公共集线器将目标设备和攻击平台连接到主机,然后将协议分析器放置在集线器的上游连接上。

    1.9K20

    usb协议开发_基于事件驱动的架构

    1.2 USB设备系统 USB设备按功能分为两部分:集线器(Hub)和功能部件。从下图可知,主机通过根集线器连接到各种外围设备(集线器和功能部件)。...usb_submit_urb依据是否连接到根集线器来决定调用urb_enqueue或rh_urb_enqueue函数。 USB从设备通过集线器或根集线器连接到USB主机上。...比如:主机通过根集线器与外界进行数据交互,根集线器通过探测数据线状态的变化来通知USB主机是否有USB外围设备接入。...HCD驱动中,将集线器作为一个设备添加到主机控制器驱动中,然后进行集线器端口的初始化。在USB主机看来,根集线器本身也是USB主机的设备。...4.2 URB传输过程 USB初始化过程中,无论是主机控制器驱动还是根集线器驱动,都是通过URB传输获取设备信息。

    3K30

    基于FPGA的USB接口控制器设计(VHDL)(上)

    USB 接口连接了 USB 设备和 USB 主机,USB 的物理连接是有层次性的星形结构,星形结构的中心是网络集线器。...一块具有 USB 接口的主板通常集成了一个称为根集线器(Root Hub)的部件,它为主机提供一到多个 USB 设备的 USB 扩展接口,我们通常在主板上见到的 USB 接口都是由根集线器提供的。...USB 电缆其中一根是电源线 VBus,一根是地线 GND,其余两根是用于差动信号传输的数据线 D+和 D-。将数据流信号驱动成为差动信号的目的是为了提高信号的抗干扰能力(EMI)。...图 3 USB 电缆物理结构示意图 对于集线器来说,判别所连接的设备是否是高速设备,仅仅只需要检测在设备被初次连接时,D+或 D-上的信号是高或是低即可。...功能设备一般是一种相互无关的设备,如图 1 所示的所有 USB 设备都是功能部件。除了集线器和功能部件,还有一种 USB 设备同时包括了功能部件和集线器,此类设备通常被称为复合设备。 ?

    2.1K30

    USB总线-USB协议简介(一)

    为了解决上述问题,USB总线诞生了。USB总线就好像一条管道,管道里流过的东西只要符合USB协议,至于具体流的是什么东西,USB总线并不关心,可以是自来水,可以是污水,可以是天然气,也可以是石油。...USB OTG线中增加了一根USB ID线,当USB ID线上拉时,处于从机(设备)模式,当USB ID线接地时,处于主机模式。 3.2.总线结构 如下图所示,USB总线呈现出树状的拓扑结构。...树的根节点是USB Host控制器,连接在USB Host控制器上的是USB根集线器(Root Hub)。...USB集线器(Hub)可以将一个USB接口扩展成多个USB接口,扩展出的USB接口又可以通过USB集线器(Hub)扩展,每个USB接口都可以接USB设备。...集线器只能扩展出更多的USB接口,而不能扩展出更多的带宽,所有USB设备共享USB Host控制器的带宽,当有多个USB设备需要较大带宽时,可以考虑将他们接到不同USB Host控制器上的根集线器上,以避免带宽不足

    8.5K31

    USB 设备插入后无法识别,如何排查?

    方法一:检查物理连接步骤:确保USB设备已正确插入计算机的USB端口。尝试更换其他USB端口(如从USB 2.0切换到USB 3.0)。...如果使用了USB扩展坞或集线器,尝试直接将设备连接到主机USB端口。检查USB设备的电源状态(如外接硬盘是否已连接电源适配器)。...方法四:启用或禁用USB控制器步骤:在“设备管理器”中右键单击“通用串行总线控制器”下的USB根集线器或Hub,选择“禁用设备”。等待几秒钟后重新启用设备。测试USB设备是否能被识别。...右键单击“通用串行总线控制器”下的USB根集线器,选择“属性”。切换到“电源管理”选项卡,取消勾选“允许计算机关闭此设备以节约电源”。点击“确定”保存更改。...方法九:检查USB设备本身步骤:将USB设备连接到另一台计算机上,测试是否能正常工作。如果在其他计算机上也无法识别,可能是设备本身故障。

    10.1K30

    【专业技术】如何检测USB是否已经插入?

    首先第一个问题,当我们在电脑中插入了一个U盘,那么电脑是怎么知道有一个U盘插入的呢? 一般usb有4根线,作为数据的D+,D-,以及供电的Vbus和GND。...我们需要知道在集线器的端口上(比如电脑的usb口)分别接了一个15K欧姆的下拉电阻到地。这样,在集线器的端口悬空时,就被这两个下拉电阻拉到了低电平。...而在USB设备端,在D+或者D-上接了1.5K欧姆上拉电阻。对于全速和高速设备, 上拉电阻是接在D+上;而低速设备则是上拉电阻接在D-上。...集线器检测到这个状态后,它就报告给USB主控制器(或者通过它上一层的集线器报告给USB主控制器),这样就检测到设备的插入了。...那么什么是OTG呢,手机本来是作为SLAVE设备的,他怎么知道要切换到HOST设备呢?这就引入了第二个问题:OTG设备是如何检测设备的插入的?

    6.1K50

    带你遨游USB世界

    1、什么是USB USB的全称是Universal Serial Bus,通用串行总线。它的出现主要是为了简化个人计算机与外围设备的连接,增加易用性。...塔顶为USB主控制器和根集线器(Root Hub),下面接USB集线器(Hub),集线器将一个USB口扩展为多个USB口,USB2.0规定集线器的层数最多为6层,理论上一个USB主控制器最多可接127个设备...,因为协议规定USB设备具有一个7 bit的地址(取值范围为0~127,而地址0是保留给未初始化的设备使用的)。...如上图所示,USB Device Driver识别到U盘设备后,还需要将U盘模拟为SCSI(小型计算机系统接口)设备,才能与User Space进行数据传输。...Driver drivers\usb\storage\scsiglue.c //SCSI Driver 5.3.2、U盘mount流程 Linux Kernel将U盘模拟为SCSI设备后,

    3.8K22

    2025年最佳笔记本扩展坞评测:一站式提升工作站效率

    您需要扩展坞还是USB集线器?这是决策前需回答的关键问题。USB集线器可为笔记本扩展有限的接口(例如MacBook Air用户可通过集线器获得HDMI、USB-A等接口),且便于携带。...什么是上行和下行端口?USB端口常标注为上行或下行。下行端口(如PC或笔记本上的端口)数据从源设备向外流动,而上行端口(如USB-C端口)数据和电力反向流动,为笔记本充电。...通过两根USB-C插头连接笔记本(插头置于塑料套管内以适应MacBook Air等常见笔记本,也可分开适配接口间距更大的设备)。...大部分端口仅需一根线缆即可运行,但需两根线才可使用后部两个4K HDMI端口。这两根USB-C线需连接笔记本同一侧(线长不足以绕至左右两侧),购买前请检查设备接口布局。...主题:USB、附件和外设、办公、购物、购买指南、配件、家庭办公室、扩展坞、笔记本更多相关内容:《连接所有设备的最佳USB集线器》《为手机(或手表)充电的最佳无线充电器》《所有设备的最佳便携充电器》《最佳苹果三合一无线充电器

    2.1K10

    基于FPGA的USB接口控制器设计(VHDL)(中)

    USB 总线枚举过程中,USB 设备需要经历后 4 个状态,如图 12 所示。 ? 图 12 USB 设备状态转换图 USB 集线器负责监测设备的连接情况,而 USB 主机会通过集线器轮询地查询设备。...其中USB 主机主要包括 CPU 模块(主机 CPU)、USB 主机控制器模块、USB 根集线器模块以及 USB 电源模块组成;而 USB 设备主要由 CPU 模块(设备 CPU)、USB SIE 模块...(1)主机控制器 USB 主机控制器的功能是实现标准的 USB 主机串口引擎(SIE)和根集线器功能,它们一般通过 PCI 或其他总线和主机 CPU 通信。...该特性为 USB 器件、集线器和 USB 通信状态提供了很方便的指示,作为一个诊断工具对设备的隔离故障是很有用的。...设计的基本要求是通过 FPGA 芯片控制 USB 芯片,实现实验板和 PC 机之间的 USB 接口数据通信,来模拟一个硬件加密设备的功能。

    2.7K20

    【STM32F429】第4章 ThreadX USBX协议栈基础知识

    端口是设备上的 USB 物理连接点。集线器是一个专用设备,允许主机同总线上的多个外设进行通信。与 USB 外设(例如鼠标)具有实际功能不同,集线器设备是透明的,并且作为直通连接使用。...另外,由于集线器的时间限制和电缆传播的延迟,因此最多只能将五个集线器链接在一起。下图显示的是 USB 层次系统的框图,它表示集线器和设备的链接限制。...大家可以看到,随着集线器的链接限制,层次系统也限制为七层。 USB设备分为以下几个类别: Hubs Hubs集线器(USB扩展设备)提供了附加的连接点,并从用户角度简化了USB连接。...Composite Devices 复合设备是实现多种功能并包括嵌入式集线器的物理程序包。复合设备在主机上看起来像是带有一个或多个不可移动USB设备的集线器。...无论是直接连接到根集线器还是通过中间集线器连接,USB设备的工作方式都相同。在该主/从网络中,所有USB设备都可用作可寻址节点。只有主机可以在网络中启动数据传输。

    95810

    USB3.0协议规范中文解读

    超速协议在主机和设备端点(endpoint)之间提供应用数据信息交换。这个通讯关系叫做管道(pipe)。 它是主机导向的协议,意味着主机决定什么时候在主机和设备间进行应用数据传输。...超速USB电源管理: 链路电源管理的关键点是: ·设备向主机发送异步“ready”通知 ·包是有路由路径的,这样就允许不参与数据通讯的链路进入或仍旧停留在低电源状态。...HUB设备: 因为USB3.0向下兼容USB2.0,为支持USB3.0双总线结构,USB3.0 HUB在逻辑上是两个HUB的组合:一个USB2.0 HUB和一个USB3.0 HUB。...连接到上游端口的电源和地线是共享的。 集线器参与到一个端到端的协议中,所承当的工作: ·路由选择输出的包到下游端口。...主机含有几个根下行端口实现超速USB和USB2.0,主机通过这些端口: ·检测USB设备的连接和移除; ·管理主机和设备间的控制流; ·管理主机和设备间的数据流; ·收集状态和活动统计; ·对连接的设备供电

    4.9K00

    【STM32F407】第8章 学习USB协议栈前要了解的基础知识

    端口是设备上的 USB 物理连接点。集线器是一个专用设备,允许主机同总线上的多个外设进行通信。与 USB 外设(例如鼠标)具有实际功能不同,集线器设备是透明的,并且作为直通连接使用。...另外,由于集线器的时间限制和电缆传播的延迟,因此最多只能将五个集线器链接在一起。下图显示的是 USB 层次系统的框图,它表示集线器和设备的链接限制。...大家可以看到,随着集线器的链接限制,层次系统也限制为七层。 USB设备分为以下几个类别: Hubs Hubs集线器(USB扩展设备)提供了附加的连接点,并从用户角度简化了USB连接。...Composite Devices 复合设备是实现多种功能并包括嵌入式集线器的物理程序包。复合设备在主机上看起来像是带有一个或多个不可移动USB设备的集线器。...无论是直接连接到根集线器还是通过中间集线器连接,USB设备的工作方式都相同。在该主/从网络中,所有USB设备都可用作可寻址节点。只有主机可以在网络中启动数据传输。

    1.4K12

    【STM32H7】第4章 ThreadX USBX协议栈基础知识

    端口是设备上的 USB 物理连接点。集线器是一个专用设备,允许主机同总线上的多个外设进行通信。与 USB 外设(例如鼠标)具有实际功能不同,集线器设备是透明的,并且作为直通连接使用。...另外,由于集线器的时间限制和电缆传播的延迟,因此最多只能将五个集线器链接在一起。下图显示的是 USB 层次系统的框图,它表示集线器和设备的链接限制。...大家可以看到,随着集线器的链接限制,层次系统也限制为七层。 USB设备分为以下几个类别: Hubs Hubs集线器(USB扩展设备)提供了附加的连接点,并从用户角度简化了USB连接。...Composite Devices 复合设备是实现多种功能并包括嵌入式集线器的物理程序包。复合设备在主机上看起来像是带有一个或多个不可移动USB设备的集线器。...无论是直接连接到根集线器还是通过中间集线器连接,USB设备的工作方式都相同。在该主/从网络中,所有USB设备都可用作可寻址节点。只有主机可以在网络中启动数据传输。

    1K20

    【STM32H7】第8章 学习USB协议栈前要了解的基础知识

    端口是设备上的 USB 物理连接点。集线器是一个专用设备,允许主机同总线上的多个外设进行通信。与 USB 外设(例如鼠标)具有实际功能不同,集线器设备是透明的,并且作为直通连接使用。...另外,由于集线器的时间限制和电缆传播的延迟,因此最多只能将五个集线器链接在一起。下图显示的是 USB 层次系统的框图,它表示集线器和设备的链接限制。...大家可以看到,随着集线器的链接限制,层次系统也限制为七层。 USB设备分为以下几个类别: Hubs Hubs集线器(USB扩展设备)提供了附加的连接点,并从用户角度简化了USB连接。...Composite Devices 复合设备是实现多种功能并包括嵌入式集线器的物理程序包。复合设备在主机上看起来像是带有一个或多个不可移动USB设备的集线器。...无论是直接连接到根集线器还是通过中间集线器连接,USB设备的工作方式都相同。在该主/从网络中,所有USB设备都可用作可寻址节点。只有主机可以在网络中启动数据传输。

    1.1K20

    【STM32F407】第4章 ThreadX USBX协议栈基础知识

    端口是设备上的 USB 物理连接点。集线器是一个专用设备,允许主机同总线上的多个外设进行通信。与 USB 外设(例如鼠标)具有实际功能不同,集线器设备是透明的,并且作为直通连接使用。...另外,由于集线器的时间限制和电缆传播的延迟,因此最多只能将五个集线器链接在一起。下图显示的是 USB 层次系统的框图,它表示集线器和设备的链接限制。...大家可以看到,随着集线器的链接限制,层次系统也限制为七层。 USB设备分为以下几个类别: Hubs Hubs集线器(USB扩展设备)提供了附加的连接点,并从用户角度简化了USB连接。...Composite Devices 复合设备是实现多种功能并包括嵌入式集线器的物理程序包。复合设备在主机上看起来像是带有一个或多个不可移动USB设备的集线器。...无论是直接连接到根集线器还是通过中间集线器连接,USB设备的工作方式都相同。在该主/从网络中,所有USB设备都可用作可寻址节点。只有主机可以在网络中启动数据传输。

    98520

    【STM32F429】第8章 学习USB协议栈前要了解的基础知识

    端口是设备上的 USB 物理连接点。集线器是一个专用设备,允许主机同总线上的多个外设进行通信。与 USB 外设(例如鼠标)具有实际功能不同,集线器设备是透明的,并且作为直通连接使用。...另外,由于集线器的时间限制和电缆传播的延迟,因此最多只能将五个集线器链接在一起。下图显示的是 USB 层次系统的框图,它表示集线器和设备的链接限制。...大家可以看到,随着集线器的链接限制,层次系统也限制为七层。 USB设备分为以下几个类别: Hubs Hubs集线器(USB扩展设备)提供了附加的连接点,并从用户角度简化了USB连接。...Composite Devices 复合设备是实现多种功能并包括嵌入式集线器的物理程序包。复合设备在主机上看起来像是带有一个或多个不可移动USB设备的集线器。...无论是直接连接到根集线器还是通过中间集线器连接,USB设备的工作方式都相同。在该主/从网络中,所有USB设备都可用作可寻址节点。只有主机可以在网络中启动数据传输。

    2.6K20

    远程调试 Android 设备使用入门

    开发计算机上已安装 USB 驱动程序(如果您使用 Windows)。 确保设备管理器报告正确的 USB 驱动程序 拥有一根可以将您的 Android 设备连接至开发计算机的 USB 电缆。...第 1 步:发现您的 Android 设备 在您的 Android 设备上,选择 Settings > Developer Options > Enable USB Debugging。...image.png 已启用 Discover USB devices 使用一根 USB 电缆将 Android 设备直接连接到您的开发计算机。 请勿使用任何中间 USB 集线器。...image.png 未知的设备,待授权 如果您的设备显示为 Unknown,则在 Android 设备上接受 Allow USB Debugging 权限提示。...您可以通过多种方式与抓屏互动: 将点击转变为点按,在设备上触发适当的触摸事件。 将计算机上的按键发送至设备。 要模拟双指张合手势,请按住 Shift 拖动。

    2.2K30

    原创 Paper | USB设备开发:从入门到实践指南(一)

    接着上一层接入的是USB根集线器(HUB),可以类比为USB扩展坞,作用就是扩展出多个USB接口,但是总带宽还是由USB主机控制器决定的。...比如,在上图USB主机控制器版本是USB3.1,那么上一层的USB根集线器可以扩展出USB3.1及以下的USB口,比如USB2.0口。...图5是该软件的界面: 图5:Bus Hound界面 2 使用树莓派4b作为PC的USB键盘 参考资料 接下来,通过阅读key-mime-pi项目的源代码,发现使用树莓派4b设备模拟一个USB设备是一件非常容易的事情...测试模拟的键盘是104键的键盘,为什么有102+8=110个值?...为什么需要发送一个全为0的数据包,经过研究发现:USB设备发给USB主机的数据包是键盘在告知USB主机键盘当前的状态,一个完整的按键操作是按下按键,然后释放按键。

    4.3K00
    领券