在本讨论中,主机发起的或软件发起的恢复称为恢复事件/操作。总线发起的恢复事件称为唤醒事件。
唤醒事件的类别是:
启用远程唤醒
端口连接断开以及过流事件
PORTSC可将端口设置为挂起模式
当系统软件挂起整个总线时,将USBCMD中run、stop位设为0来关闭主控制器
当唤醒事件发送时,系统软件最终将run、stop位设为1,恢复挂起端口
1.1 端口挂起/恢复
- 系统软件通过在适当的PORTSC挂起位中写入一个1来将各个端口置于挂起模式
- 系统软件可以通过向Force port resume位写入一个1来在一个选择性挂起的端口上发起一个恢复
- 为了确保USB设备正常运行,软件必须在端口显示挂起后等待至少10毫秒
- 软件启动的端口恢复不会影响USBSTS寄存器中的端口变化检测位,如果端口变化中断使能,也不会引起中断
- 当挂起端口上发生唤醒事件时,端口检测到恢复信号,并在100 μsec内将恢复反射到下游。端口的强制端口恢复位设置为1,端口改变检测位在USBSTS寄存器设置为1。如果端口改变中断使能位在USBINTR寄存器是1,主控制器将发出一个硬件中断。
- 恢复事件检测到时,USBSTS中port change detect 设1,中断使能则发出中断,软件通过清除USBSTS中port change detect确认恢复中断。
唤醒事件行为表