0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

USB电气信号复位与设备速率识别

麦辣鸡腿堡 来源:嵌入式Linux系统开发 作者:嵌入式Linux系统开 2023-07-20 10:05 次阅读

复位

从状态切换图上看,一个 USB 设备连接后,它将会被供电,然后被复位。当软件出错时,我们也可以发出复位信号重新驱动设备。

那么,USB Hub 端口或 USB 控制器端口如何发出复位信号?发出 SE0 信号,并维持至少 10ms。

USB 设备看到 Reset 信号后,需要准备接收“SetAddress()”请求;如果它不能回应这个请求,就是“不能识别的设备”。

设备速率识别

低速/全速

Hub 端口的 D+、D- 都有 15K 的下拉电阻,平时为低电平。全速设备内部的D+ 有 1.5K 的上拉电阻,低速设备内部的 D- 有 1.5K
的上拉电阻,连接到 Hub 后会导致 Hub 的 D+ 或 D- 电平变化,Hub 根据变化的引脚分辨接进来的是全速设备还是低速设备。

图片

高速

高速设备必定兼容全速模式,所以高速设备内部 D+ 也有 1.5K 的上拉电阻,只不过这个电阻是可以断开的:工作于高速模式时要断开它。

高速设备首先作为全速设备被识别出来,然后 Hub 如何确定它是否支持高速模式?

Hub 端口如何监测一个新插入的 USB 设备能否工作于高速模式?流程如下:

对于低速设备,Hub 端口不会监测它能否工作于高速模式。低速设备不能兼容高速模式。

Hub 端口发出 SE0 信号,这就是复位信号

USB 设备监测到 SE0 信号后,会发出“a high-speed detection
handshake”信号表示自己能支持高速模式,这可以细分为一下 3 种情景

如果 USB 设备原来处于“suspend”状态,它检测到 SE0 信号后,就发出“a high-speed detection
handshake”信号

如果 USB 设备原来处于“non-suspend”状态,并且处于全速模式,它检测到 SE0 信号后,就发出“a high-speed
detection handshake”信号。这个情景,就是一个设备刚插到 Hub 端口时的情况,它一开始工作于全速模式。

如果 USB 设备原来处于“non-suspend”状态,并且处于高速模式,它会切换回到全速模式(重新连接D+的上拉电阻),然后发出“a
high-speed detection handshake”信号

“a high-speed detection handshake”信号,就是“高速设备监测握手信号”,既然是握手信号,自然是有来有回:

USB 设备维持 D+ 的上拉电阻,发出“Chirp K ”信号,表示自己能支持高速模式

如果 Hub 没监测到“Chirp K ”信号,它就知道这个设备不支持高速模式

如果 Hub 监测到“Chirp K ”信号后,如果 Hub 能支持高速模式,就发出一系列的“Chirp K”、“Chirp J”信号,这是用来通知
USB 设备:Hub 也能支持高速模式。发出一系列的“Chirp K”、“Chirp J”信号后,Hub 继续维持 SE0 信号直到 10ms。

USB 设备发出“Chirp K ”信号后,就等待 Hub 回应一系列的“Chirp K”、“Chirp J”信号

收到一系列的“Chirp K”、“Chirp J”信号:USB 设备端口 D+ 的上拉电阻,使能高速模式

没有收到一系列的“Chirp K”、“Chirp J”信号:USB 设备转入全速模式

图片

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • usb
    usb
    +关注

    关注

    60

    文章

    7945

    浏览量

    264600
  • 信号
    +关注

    关注

    11

    文章

    2791

    浏览量

    76754
  • hub
    hub
    +关注

    关注

    1

    文章

    115

    浏览量

    41712
收藏 人收藏

    评论

    相关推荐

    USB电气特性

    ;    周玉军  USB(Universal Serial Bus,即通用串行总线)的电气特性主要是对信号的发送及电压分布情况
    发表于 06-17 10:34

    实现USB电气隔离的技术难点

    这样做的结果就使得USB的改进(除了速度改进)余地很小、特别是电气隔离的改进非常困难。USB口的电气隔离技术改进的难点就在于缺少USB的方向
    发表于 01-14 14:25

    请问USB自动识别芯片RH7901是怎样自动识别充电设备的?

    本帖最后由 一只耳朵怪 于 2018-5-22 14:19 编辑 USB自动识别芯片RH7901RH7902 怎样自动识别充电设备的?***彭SRH7901 RH7902是
    发表于 05-22 14:15

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

    USB识别根据规范,全速(Full Speed)和低速(Low Speed)很好区分,因为在设备端有一个1.5k的上拉电阻,当设备插入hub或上电(固定线缆的
    发表于 08-16 15:08

    STM32F103无法识别USB设备的原因是什么?

    线,上位机显示无法识别USB设备,并且一直无法识别。  困惑:  1、为什么上电会先显示无法识别,但过后会
    发表于 06-23 14:40

    WCHISPTool工具USB下载程序时识别不到设备是为什么?

    昨天晚上我下载了一个程序,能正常跑起来,中间也不知道发生了什么,想重新下载程序的时候。PB22接地,然后上电,电脑上的WCHISPTOOL始终识别不出USB设备列表。毫无反应。按复位
    发表于 05-20 07:04

    USB设备无法识别怎么办

    USB设备无法识别怎么办   当你想用闪存或移动硬盘来和电脑交换数据时,但插上USB口时你却发现系统居然无法识别
    发表于 04-19 13:03 1.1w次阅读

    Xilinx复位信号设计原则

    复位信号设计的原则是尽量不包含不需要的复位信号,如果需要,考虑使用局部复位和同步复位
    发表于 10-27 10:09 1909次阅读
    Xilinx<b class='flag-5'>复位</b><b class='flag-5'>信号</b>设计原则

    通过命令行控制树莓配4B的USB口电源以实现USB设备复位操作

    关键词:树莓派 4B USB复位 USB控制 电源控制 uhubctl USB设备复位 4G
    发表于 01-06 14:31 5次下载
    通过命令行控制树莓配4B的<b class='flag-5'>USB</b>口电源以实现<b class='flag-5'>USB</b><b class='flag-5'>设备</b>的<b class='flag-5'>复位</b>操作

    MPSoC设计中USB Phy的复位信号

    在Xilinx的ZCU102和ZCU106单板设计中,使用了管脚PS_MODE1作为外部USB Phy的复位信号。在MPSoC的文档ug1085和ug1087中,关于PS_MODE1的信息比较少。下面是更详细的描述。
    的头像 发表于 08-02 09:38 2604次阅读
    MPSoC设计中<b class='flag-5'>USB</b> Phy的<b class='flag-5'>复位</b><b class='flag-5'>信号</b>

    USB电气信号介绍

    USB 2.0协议支持3种速率:低速(Low Speed,1.5Mbps)、全速(Full Speed, 12Mbps)、高速(High Speed, 480Mbps)。
    的头像 发表于 05-08 09:14 4245次阅读
    <b class='flag-5'>USB</b><b class='flag-5'>电气</b><b class='flag-5'>信号</b>介绍

    USB3.0接口的传输速率是多少?

    480Mbps的传输速率可能不快,更何况没有USB2.0设备能做到理论上的最高速率。但USB3.0接口的另一个问题是:编码规则选用8/10的
    的头像 发表于 11-23 09:48 8520次阅读
    <b class='flag-5'>USB</b>3.0接口的传输<b class='flag-5'>速率</b>是多少?

    STM32 USB复位机制、挂起机制及其唤醒机制详解

    主机可以对USB设备进行复位,主要是主机在和设备通讯之前会发送Reset信号设备设置到默认的未
    的头像 发表于 07-17 15:40 2823次阅读
    STM32 <b class='flag-5'>USB</b><b class='flag-5'>复位</b>机制、挂起机制及其唤醒机制详解

    电脑无法识别usb设备怎么解决

    Android系统插上USB连接到电脑,提示"无法识别USB设备"
    的头像 发表于 10-10 16:20 4437次阅读
    电脑无法<b class='flag-5'>识别</b>的<b class='flag-5'>usb</b><b class='flag-5'>设备</b>怎么解决

    USB驱动问题:设备无法识别的全面指南!

    今天我把USB驱动问题,关于设备无法识别方面做一个全面指南供大家参考。连接USB无法识别模组设备
    的头像 发表于 11-26 12:35 366次阅读
    <b class='flag-5'>USB</b>驱动问题:<b class='flag-5'>设备</b>无法<b class='flag-5'>识别</b>的全面指南!