usb协议7.1.7.7 Resume

来源:互联网 发布:学python用什么软件 编辑:程序博客网 时间:2024/05/22 11:32
7.1.7.7 Resume
If a device is in the Suspend state, its operation is resumed when any non-idle signaling is received on its
upstream facing port. Additionally, the device can signal the system to resume operation if its remote wakeup
capability has been enabled by the USB System Software. Resume signaling is used by the host or a device to
bring a suspended bus segment back to the active condition. Hubs play an important role in the propagation and
generation of resume signaling. The following description is an outline of a general global resume sequence. A
complete description of the resume sequence, the special cases caused by selective suspend, and the role of the
hub are given in Section 11.9.


The host may signal resume (TDRSMDN) at any time. It must send the resume signaling for at least 20 ms and
then end the resume signaling in one of two ways, depending on the speed at which its port was operating when
it was suspended. If the port was in low-/full-speed when suspended, the resume signaling must be ended with a
standard, low-speed EOP (two low-speed bit times of SE0 followed by a J). If the port was operating in highspeed
when it was suspended, the resume signaling must be ended with a transition to the high-speed idle state.


The 20 ms of resume signaling ensures that all devices in the network that are enabled to see the resume are
awakened. The connectivity established by the resume signaling is torn down by the End of Resume, which
prepares the hubs for normal operation. After resuming the bus, the host must begin sending bus traffic (at least
the SOF token) within 3 ms of the start of the idle state to keep the system from going back into the Suspend
state.


A device with remote wakeup capability may not generate resume signaling unless the bus has been
continuously in the Idle state for 5 ms (TWTRSM). This allows the hubs to get into their Suspend state and
prepare for propagating resume signaling. The remote wakeup device must hold the resume signaling for at
least 1 ms but for no more than 15 ms (TDRSMUP). At the end of this period, the device stops driving the bus
(puts its drivers into the high-impedance state and does not drive the bus to the J state).


If the hub upstream of a remote wakeup device is suspended, it will propagate the resume signaling to its
upstream facing port and to all of its enabled downstream facing ports, including the port that originally signaled
the resume. When a hub is propagating resume signaling from a downstream device, it may transition from the
idle state to K with a risetime faster than is normally allowed. The hub must begin this rebroadcast (TURSM) of
the resume signaling within 1 ms of receiving the original resume. The resume signal will propagate in this
manner upstream until it reaches the host or a non-suspended hub (refer to Section 11.9), which will reflect the
resume downstream and take control of resume timing. This hub is termed the controlling hub. Intermediate
hubs (hubs between the resume initiator and the controlling hub) drive resume (TDRSMUP) on their upstream
facing port for at least 1 ms during which time they also continue to drive resume on enabled downstream facing
ports. An intermediate hub will stop driving resume on the upstream facing port and reverse the direction of
connectivity from upstream to downstream within 15 ms after first asserting resume on its upstream facing port.
When all intermediate hubs have reversed connectivity, resume is being driven from the controlling hub through
all intermediate hubs and to all enabled ports. The controlling hub must rebroadcast the resume signaling within
1 ms (TURSM) and ensures that resume is signaled for at least 20 ms (TDRSMDN). The hub may then begin
normal operation by terminating the resume process as described above.


The USB System Software must provide a 10 ms resume recovery time (TRSMRCY) during which it will not
attempt to access any device connected to the affected (just-activated) bus segment.


Port connects and disconnects can also cause a hub to send a resume signal and awaken the system. These
events will cause a hub to send a resume signal only if the hub has been enabled as a remote-wakeup source.
Refer to Section 11.4.4 for more details.


Refer to Section 7.2.3 for a description of power control during suspend and resume.


If the hub port and device were operating in high-speed prior to suspend, they are required to "remember" that
they were previously operating in high-speed, and they must transition back to high-speed operation, without
arbitration, within two low-speed bit times of the K to SE0 transition. The inactivity timers must be started two
low-speed bit times after the K to SE0 transition. Note that the transition from SE0 to J which would normally
occur at the end of full-speed resume signaling is omitted if the link was operating in high-speed at the time
when it was suspended.


It is required that the host begin sending SOF’s in time to prevent the high-speed tree from suspending.


原文156页-157页

另外的是lpc2378的用户手册(10211)中的13章

9.4 Remote wake-up

The USB device contrller supports software initiated remote wake-up. Remote wake-up involves resume signaling on 
the USB bus initiated from the device.This is done by clearing the SUS bit in the SIE Set Device Status register.
Before writing into the register, all the clocks to the device contraller have to be enabled using the USBClkCtrl
register. 

但是实际上,不好使,没有remote wake-up,不知道是怎么回事。按照原理来说,下位机给出remote wakeup信号,host

应该是有反应,当然协议的最后一句说的是high-speed。huozhe是下位机没有信号产生,那就郁闷了,lpc2378不会骗人吧。

原创粉丝点击