日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

usb 进入suspend_USB的挂起和唤醒 (Suspend and Resume)

發(fā)布時(shí)間:2025/3/19 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 usb 进入suspend_USB的挂起和唤醒 (Suspend and Resume) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

USB協(xié)議的第9章講到USB可見設(shè)備狀態(tài)[Universal Serial Bus Specification, Section 9.1.1, Pg 239],分為連接(Attached),上電(Powered),默認(rèn)(Default),地址(Address),配置(Configured)和掛起(Suspended)6個(gè)狀態(tài)。所謂可見,即USB系統(tǒng)和主機(jī)可見的狀態(tài),其他狀態(tài)屬于USB設(shè)備內(nèi)部而不可見。其中有關(guān)電源的,大致可分下面三類:

1. 連接狀態(tài)(Attached):設(shè)備連接,但未提供電源。

2. 上電狀態(tài)(Powered):設(shè)備被復(fù)位(Reset),或者說處于地址、配置狀態(tài)。(參見USB枚舉過程,USB Specification, page 241)

3. 掛起狀態(tài)(Suspended):3 ms未見總線活動(dòng)而處于省電狀態(tài),設(shè)備不可用,但仍然保持原有的USB地址和配置。

設(shè)備的掛起

我們知道,在USB系統(tǒng)中,正常狀態(tài)下hub或root hub會(huì)一直周期性地發(fā)送SOF包(Start Of Frame,全速USB每1ms發(fā)送一個(gè),高速USB則是125μs發(fā)送一個(gè))。根據(jù)USB協(xié)議,如果USB線上一直處于空閑(Idle)狀態(tài)超過3ms,設(shè)備應(yīng)該把它當(dāng)作一個(gè)掛起(Suspended)信號(hào),要求設(shè)備在10ms內(nèi)進(jìn)入掛起狀態(tài),并把設(shè)備所需的電流大小降到規(guī)定的值(對(duì)于low-power設(shè)備,要求是500 μA,而對(duì)于high-power或支持遠(yuǎn)程喚醒(remote wakeup)功能的設(shè)備是2.5mA【Section 7.2.3, Pg176】)。在掛起狀態(tài)中,設(shè)備必須繼續(xù)向數(shù)據(jù)項(xiàng)D+/D-的上拉電阻提供電壓以維持Idle狀態(tài)。而對(duì)于USB2.0高速設(shè)備,還有些額外的要求:

1. 高速設(shè)備在收到掛起信號(hào)(3ms空閑)后,應(yīng)在0.125ms內(nèi)切換到全速狀態(tài),也就是說要把終端電阻移除,并在D+數(shù)據(jù)線上重新掛上1.5k上拉電阻。

2. 設(shè)備在隨后的100-875μs內(nèi)檢測(cè)數(shù)據(jù)線上的狀態(tài)。如果該狀態(tài)是一個(gè)Full speed J,那么說明host發(fā)下來的是一個(gè)掛起信號(hào);如果此時(shí)該狀態(tài)是SE0,說明是host drive數(shù)據(jù)線D+到0,這是一個(gè)復(fù)位信號(hào)(復(fù)位信號(hào)會(huì)持續(xù)至少10ms時(shí)間)。

要注意的是高速設(shè)備在掛起狀態(tài)時(shí)處于高速模式,只是所用的是全速信號(hào)。一旦從掛起狀態(tài)恢復(fù)回來,會(huì)馬上進(jìn)入高速工作狀態(tài)而無需進(jìn)行復(fù)位操作。

如上圖所示,Host在a點(diǎn)停止發(fā)送SOF,系統(tǒng)處于SE0狀態(tài),b點(diǎn)是3ms時(shí)間點(diǎn),之后的125μs內(nèi),設(shè)備移除終端電阻,并掛上1.5k上拉。此時(shí)如host發(fā)送的是suspend信號(hào),那它就不會(huì)不drive D+數(shù)據(jù)線,導(dǎo)致D+被設(shè)備拉高,形成一個(gè)Full Speed J狀態(tài)。在c點(diǎn)之后100-875μs內(nèi)設(shè)備檢測(cè)此時(shí)host行為,發(fā)現(xiàn)是suspend信號(hào),設(shè)備內(nèi)部進(jìn)入低功耗的掛起(suspend)狀態(tài)。(假如hsot發(fā)送的是復(fù)位信號(hào),那么當(dāng)設(shè)備在c點(diǎn)掛1.5k電阻之后,由于host對(duì)D+線的drive作用,D+線無法被拉高,仍然處于SE0狀態(tài),設(shè)備在c點(diǎn)之后的檢測(cè),發(fā)現(xiàn)的還是SE0狀態(tài),等到10ms后就可判斷這是一個(gè)復(fù)位信號(hào),進(jìn)行設(shè)備復(fù)位操作。)

設(shè)備的喚醒

設(shè)備處于掛起狀態(tài)時(shí),任何總線上的活動(dòng)(非空閑信號(hào))都可以把設(shè)備喚醒/恢復(fù),從而退出低功耗模式。(同樣,設(shè)備也可以換醒host,比如電腦待機(jī)時(shí)通過USB鍵盤來換醒主機(jī),這種功能稱之為“遠(yuǎn)程喚醒”(remote wakeup),不在本文的討論范圍內(nèi)。)

因?yàn)樵O(shè)備掛起時(shí)處于全速信號(hào),在當(dāng)host需要把將設(shè)備退出suspend狀態(tài)時(shí),需要先發(fā)送一個(gè)持續(xù)時(shí)間超過20ms的Fulll Speed K狀態(tài)。設(shè)備看到K狀態(tài)結(jié)束的1.3us內(nèi)醒過來,而host需要在3ms內(nèi)發(fā)送uSOF信號(hào)以維持正常的高速信號(hào)模式,否則設(shè)備又將進(jìn)入suspend。如下圖所示:

本網(wǎng)站轉(zhuǎn)載的所有的文章、圖片、音頻視頻文件等資料的版權(quán)歸版權(quán)所有人所有,本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如果本網(wǎng)所選內(nèi)容的文章作者及編輯認(rèn)為其作品不宜公開自由傳播,或不應(yīng)無償使用,請(qǐng)及時(shí)通過電子郵件或電話通知我們,以迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。

與50位技術(shù)專家面對(duì)面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的usb 进入suspend_USB的挂起和唤醒 (Suspend and Resume)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。