USB --- 电平信号和 suspend

USB电平信号

USB采用的是D+和D-两根信号线的差分信号进行数据传输。对于不同速度的的USB设备,其规定的差分信号线上 J、K 等状态的电平也会不同,下表则列出了在低速、全速、高速下 USB 状态对应的电平信号。

image

全速USB设备的挂起Suspend

USB是主从设备。所有命令都是由主机发起,设备端响应。在正常的情况下,USB主机会定时发送SOF包,对于全速设备是1ms,高速设备SOF包音隔为125us。若 USB 线上一直处于 Idle 状态超过 3ms,设备则认为这是一个挂起信号,设备需要在 10ms 内进入挂起状态.

挂起

USB 设备挂起时,可以停止设备的时钟,以进入低功耗模式。在挂起状态中,设备仍需继续向 D+/D- 的上拉电阻提供电压以保持 Idle 状态。

HS 协商前先以 FS J 态接入,所以HS device准备就绪但是没插入host时,device UDC会打印:

soc:msb250x-udc 1f284200.msb250x-udc-p0: <USB>[GADGET] PULL_UP
soc:msb250x-udc 1f284200.msb250x-udc-p0: <USB>[LINK] Suspend

 

全速 USB 的 Resume 唤醒

在设备处于 Suspend 的状态下,若需要将设备退出 Suspend 状态,主机 host 需要向设备发送持续时间超过 20ms 的 Resume 信号,并且以 EOP 信号结尾,设备将在 Resume 信号结束后醒过来。在设备醒过来后,host 需要在 3ms 内发送 SOF 信号,以维持正常的通信模式,避免设备重新进入 Suspend 状态。

image

全速 USB 的远程唤醒

对于普通的 Resume 唤醒,是由主机 host 唤醒 USB 设备,但同样,设备也可以唤醒主机 host,例如电脑休眠时,可以通过 USB 键盘唤醒主机,这种功能称为远程唤醒。

使用远程唤醒功能,需要 USB 设备支持远程唤醒功能,并且在配置描述符的设置中,将 USB 设备支持远程唤醒能力报告给主机。

通过 USB 设备远程唤醒主机时,USB 设备会生成一个 1ms-15ms 的 Resume 信号,host 在 1ms 内捕获到该信号,并且主机控制器对唤醒操作进行接管,继续产生 Resume 信号直到 20ms,并以 EOP 信号结尾。完成对设备的唤醒。

 

posted @ 2025-12-17 18:25  流水灯  阅读(199)  评论(0)    收藏  举报