USB2.0物理层的电信号
+ -

USB2.0 D+和D-的idle空闲态(静止态)

2021-11-12 本文链接为:http://www.usbzh.com/article/detail-669.html ,欢迎转载,转载请附上本文链接。
  • 高速模式由于是电流驱动,并且已经将D+上拉电阻拿掉,故其空闲态是D+-均为0
  • 全速模式下是电平驱动,由于D+上拉电阻存在,故D+为高电平,D-为低电平
  • 低速模式下是电平驱动,由于D-的上拉电阻存在,故D-为高电平,D+为低电平

USB2.0设备的波形由D+和D-两根数据线构成,根据是否驱动,差分数据线在数据传输过程中表现为静止态,差分态, 单端态和全高速设备协商高速设备中间的Chirp J和Chirp K态。

静止态即空闲态,是USB信号线在没有任何驱动的情况下的状态。

  • 低速和全速的空闲态(低速:D-为1,D+为0,此为J状态; 全速:D-为0,D+为1,此为K状态)
    低速全速的空闲态
  • 高速的空闲态D+和D-为0,此时为SE0状态。

在USB主机端的数据线D+和D-都有一个15K的下拉电阻,而USB设备端的上行端口的D+或D-有一个1.5K的上拉电阻,当设备连接的时候,由于数据线还没有驱动,这时会使D+或D-由于上拉电阻的作用,使用D+或D-上有一个高于2.8V的电压,而另一根线由于没有上拉电阻的存在,在主机端被下拉电阻拉地,所以为0V电压。这种状态称作静止态。

  • 全速和高速设备在D+上有一个1.5K的上拉电阻
  • 低速速设备在D-上有一个1.5K的上拉电阻
5*15/(1.5+15)=4.5V

全速设备的静态信号

全速设备的静态信号

低速设备的静态信号

低速设备的静态信号

高速设备的静态信号

设备进入高速工作态时,必须先进入全速态。高速设备使用的是电流驱动,这使得USB的数据线在没有信号的状态下,D+和D-都会为低电平。
高速设备的静态信号

总结

静止态即空闲态信号线在没有任何驱动情况下的状态。
低速由于是电压驱动,且D-会被上拉,所以其自由态是D-为1,D+为0
全速由于是电压驱动,且D+会被上拉,所以其自由态是D+为1,D-为0
高速由于是电流驱动,无驱动时,D+和D-都为0

这类设备启动时首先会模拟成一个全速设备。进入高速模式后,它会断开内部的 1.5kΩ 上拉电阻,改用更复杂的电流驱动方式。在没有数据传输时,电流源关闭,D+ 和 D- 都被端接到地,因此呈现 SE0(双低电平)状态
而全速低速是不会断开上拉电阻的

本文链接为:http://www.usbzh.com/article/detail-669.html ,欢迎转载,转载请附上本文链接。

HID人机交互QQ群:564808376    UAC音频QQ群:218581009    UVC相机QQ群:331552032    BOT&UASP大容量存储QQ群:258159197    STC-USB单片机QQ群:315457461    USB技术交流QQ群2:580684376    USB技术交流QQ群:952873936     USB技术交流3:1031974172

0 篇笔记 写笔记

HID 设置空闲SetIdle
SetIdle用于设置HID设备空闲速率。键盘、鼠标等 HID 设备需要根据主机要求调整报告频率节省 USB 带宽或降低功耗默认情况下,空闲速率为0。SetIdle是一个非必要请求。bmRequestType(1):0x21bRequest(1): SET_IDLE,值为0A.wValue......
HID 获取空闲请求GetIdle
GetIdle用于获取HID设备空闲速率。空闲速率是指当HID设备没有数据报告时,主机限制中断输入端点的报告间隔时间。默认情况下,空闲速率为0。GetIdle是一个非必要请求。详见:USB请求bmRequestType(1):0xa1bRequest(1): GET_IDLE,值为02.wVa......
HID设备SET_IDLE时遇到c0000004
下午,USB中文网技术交流群里的一个同学,说他的HID设备时好时不好的,有时会花很长的时间才能枚举成功。没有抓包,没的截图…我是一顿乱扯,从硬件电路到各种抓包方法….晚上11点,这位同学发来了BUSHOUND抓的包,打开一看:Device Length Phase Data ......
USB2.0 D+和D-的idle空闲态(静止态)
高速模式由于是电流驱动,并且已经将D+上拉电阻拿掉,故其空闲态是D+-均为0全速模式下是电平驱动,由于D+上拉电阻存在,故D+为高电平,D-为低电平低速模式下是电平驱动,由于D-的上拉电阻存在,故D-为高电平,D+为低电平USB2.0设备的波形由D+和D-两根数据线构成,根据是否驱动,差分数据线......
HID协议SET_IDLE请求的解释说明
SET_IDLE请求会使HID设备相关的中断管道(端点)停止定时上报报告数据,直到有新的事件(有效数据)或直到的SET_IDLE时才继续上报报告数据。在SET_IDLE的时间周期内,如果没有变化的情况下,由设备周期性地返回NAK。关于SET_IDLE的功能讨论HID设备以中断的方向进行上报数据给方......
Windows HID设备SET_IDLE请求的寂寞操作
在HID规范中SET_IDLE请求用于节省USB带宽的,使用这个请求可以设置HID设备空闲速率。不过我们一般抓包的内容是这样的: CTL 21 0a 00 00 00 00 00 00 SET IDLE这样的 CTL 21 0......
HID传输 SetIdle传输
SetIdle传输由Setup事务和IN事务组成。SETUP事务SETUP令牌包DATA0ACKIN事务IN令牌包DATA1(无数据)ACK 通过USB总线分析仪抓包:......
USB3 逻辑空闲Logical Idle
USB3 的 Logical Idle(逻辑空闲)数据模式(即 D0.0 加扰数据)并不是一个在特定时刻发送的单一信号,而是在链路处于 U0 活动状态却没有实际数据或链路管理包需要发送时,持续在链路上传输的一种数据模式。USB 3.x SuperSpeed 链路在最高速的 U0 状态下是时刻保持活......
关注公众号
  • HID人机交互
  • Linux&USB
  • UAC音频
  • CDC
  • TYPE-C
  • USB规范
  • USB大容量存储
  • USB百科
  • USB周边
  • UVC摄像头
  • Windows系统USB
  • USB资源
  • 音视频博客
  • 取消
    感谢您的支持,我会继续努力的!
    扫码支持
    扫码打赏,你说多少就多少

    打开支付宝扫一扫,即可进行扫码打赏哦

    您的支持,是我们前进的动力!