chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于DWC2的USB驅(qū)動(dòng)開發(fā)-USB復(fù)位詳解

嵌入式USB開發(fā) ? 來源:嵌入式Lee ? 作者:嵌入式Lee ? 2023-07-07 11:18 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本文轉(zhuǎn)自公眾號歡迎關(guān)注

基于DWC2的USB驅(qū)動(dòng)開發(fā)-USB復(fù)位詳解 (qq.com)

一.前言

上一篇我們詳細(xì)介紹了USB枚舉的第一步,連接檢測。那么第二步是干什么呢? 相信做過嵌入式開發(fā)尤其做過驅(qū)動(dòng)開發(fā)的都會想到-復(fù)位,基本上所有的外設(shè)模塊在開始都需要進(jìn)行復(fù)位操作,以達(dá)到一個(gè)默認(rèn)的狀態(tài),USB也不例外。一方面初始化時(shí)復(fù)位以達(dá)到默認(rèn)狀態(tài),一方面在異常時(shí)復(fù)位以恢復(fù)。話說復(fù)位可以解決99%的問題就是這么來的,如果還不能解決那就斷電復(fù)位,相信這是很多人解決問題的第一板斧,且不說是不是最優(yōu)選擇,至少這樣一般都有效,當(dāng)然可靠性考慮是否能直接復(fù)位一般都需要評估不能這么直接簡單粗暴。

這一篇我們就來詳細(xì)講講USB的復(fù)位,老規(guī)矩理論結(jié)合實(shí)踐,先看規(guī)格書的說明再寫驅(qū)動(dòng)實(shí)測。

二.USB的復(fù)位

2.1復(fù)位信號

首先,復(fù)位信號到底是什么樣的呢?調(diào)試外設(shè)時(shí)序的時(shí)候一般都會關(guān)注,復(fù)位一般用一組特殊的狀態(tài)時(shí)序來表示,USB也一樣。

我們看到USB2.0規(guī)格書中對復(fù)位信號的描述如下

b18e5432-1c5f-11ee-9c1d-dac502259ad0.png

對于發(fā)送端要求D+和D-小于VOL(max)持續(xù)10mS以上,VOL(max)的值為0.3V,如下

b1bacbd4-1c5f-11ee-9c1d-dac502259ad0.png

而對于接收端要求D+和D-小于VIL(max)持續(xù)10mS以上,VIL(max)值為0.8V

b1cca16a-1c5f-11ee-9c1d-dac502259ad0.png

可以看到VIL(max)比VOL(max)是要大的,這是對發(fā)送要求嚴(yán)格一些,因?yàn)橐紤]信號傳輸?shù)脑肼暩蓴_等因素,預(yù)留一些裕度。

上述10ms的參數(shù)實(shí)際有個(gè)名字叫(TDRST),規(guī)格書中要求如下

b1e05246-1c5f-11ee-9c1d-dac502259ad0.png

而一般要求接收端在D+和D-小于VIL(max)持續(xù)2.5uS以上就應(yīng)該檢測到復(fù)位,這個(gè)時(shí)間記住,我們可能會遇到臨界情況在這個(gè)值附近可能出現(xiàn)不穩(wěn)定的情況,調(diào)試時(shí)留個(gè)心眼,一旦出現(xiàn)這種很可能就是疑難雜癥,但是現(xiàn)在留個(gè)心眼以后就可能想起來確認(rèn)這里。

對于根集線器這里還有個(gè)要求就是非連續(xù)的復(fù)位要有3mS以上的間隔(TRHRSI),復(fù)位持續(xù)周期50mS(TDRSTR)以上(因?yàn)閁SB拓?fù)渥畲笥?個(gè)集線器)

b1fc778c-1c5f-11ee-9c1d-dac502259ad0.png

2.2復(fù)位過程

參考USB2.0的規(guī)格書《7.1.7.5 Reset Signaling》

在低速/全速模式下運(yùn)行的設(shè)備,如果其面向上游的端口上出現(xiàn)SE0超過2.5μs(TDETRST),則可以將該信號視為復(fù)位信號。復(fù)位須在復(fù)位信號結(jié)束之前生效。注意這里是復(fù)位信號結(jié)束之前就生效。(實(shí)際這里還可能導(dǎo)致隱蔽的BUG,我這里有一個(gè)精彩的案例分析,高速設(shè)備總是枚舉為全速設(shè)備的問題,神奇的是在復(fù)位中段服務(wù)函數(shù)中加個(gè)打印就好了,后面會分享)

b20fb68a-1c5f-11ee-9c1d-dac502259ad0.png

1.主機(jī)(HUB)檢測到設(shè)備連接,通過DP還是DM拉高區(qū)分是低速還是全速/高速。

2.主機(jī)(HUB驅(qū)動(dòng)信號SE0以產(chǎn)生復(fù)位信號。

3.設(shè)備檢測到SE0持續(xù)2.5uS(TFILTSE0)以上檢測到復(fù)位,產(chǎn)生復(fù)位中斷。

對于低速設(shè)備完成復(fù)位,對于全速和高速設(shè)備后面繼續(xù)進(jìn)行高速設(shè)備的檢測。

速度的檢測后面會單獨(dú)再講。

如果是從non-suspended全速狀態(tài)復(fù)位則必須在SE0

開始后的2.5uS(TFILTSE0)~3.0 ms(TWTRSTFS)時(shí)間內(nèi)進(jìn)行后續(xù)的高速速度檢測握手。

如果是從suspend狀態(tài)復(fù)位,則必須在SE0開始后的2.5uS(TFILTSE0)以上時(shí)間后進(jìn)行高速速度檢測握手,為什么這里沒有最長時(shí)間3.0 ms(TWTRSTFS)的限制了呢,因?yàn)閽炱饡r(shí)時(shí)鐘是停止的重啟時(shí)鐘需要時(shí)間,所以這里不限制上限時(shí)間。

如果是從non-suspended高速狀態(tài)復(fù)位,則設(shè)備在恢復(fù)到全速之前必須等待不少于3.0ms且不多于3.125ms(TWTREV)。通過移除高速端接電阻并重新連接D+上拉電阻器,可實(shí)現(xiàn)全速恢復(fù)。該設(shè)備對總線狀態(tài)進(jìn)行采樣,并在開始恢復(fù)至全速后檢查SE0(復(fù)位而非掛起)、不小于100μs且不大于875μs(TWTRSTHS)。如果檢測到SE0(復(fù)位),則設(shè)備開始高速檢測握手。

注意

設(shè)備必須能夠在復(fù)位恢復(fù)時(shí)間10 ms(TRSTRCY)后接受SetAddress()請求,這個(gè)時(shí)間也是一個(gè)調(diào)試經(jīng)驗(yàn),如果不能枚舉可以檢查設(shè)備的響應(yīng)時(shí)間是否過長。

由于面向下游的端口在復(fù)位期間不會處于傳輸狀態(tài),因此高速Chirp信號不會引發(fā)斷開連接檢測。

如下圖是DWC2驅(qū)動(dòng)的復(fù)位波形,黃色為DP,高速模式。

b22b27f8-1c5f-11ee-9c1d-dac502259ad0.png

通過仿真器GDB load程序重新運(yùn)行,而不是直接上電運(yùn)行,如果是后者則沒有(1)這個(gè)狀態(tài)此時(shí)默認(rèn)是沒有拉高的。

DWC2控制器的軟件復(fù)位不會影響SftDiscon位的狀態(tài),所以load程序后SftDiscon保持之前的拉高狀態(tài),DWC2控制器復(fù)位也不會影響

直到相關(guān)UTMI時(shí)鐘復(fù)位,如下代碼執(zhí)行對應(yīng)到(2)前面的DP拉低,此時(shí)UTMI等復(fù)位應(yīng)該是導(dǎo)致了PHY的相關(guān)狀態(tài)復(fù)位。

b24e5bd8-1c5f-11ee-9c1d-dac502259ad0.png

然后是軟件設(shè)置SftDiscon位為0,拉高DP,如下代碼處,對應(yīng)(2)處的拉高

b283e24e-1c5f-11ee-9c1d-dac502259ad0.png

然后DP拉高100mS之后(3),主機(jī)發(fā)送復(fù)位(4),這里看到復(fù)位時(shí)間非常短,這是因?yàn)樵O(shè)備2.5uS以上,實(shí)際是8uS就檢測到了復(fù)位(如下圖所示,圖中標(biāo)尺部分,后面的藍(lán)色的高DM的高是設(shè)備發(fā)出的Chirp K高速握手信號),進(jìn)行了后續(xù)的高速握手,所以覆蓋了主機(jī)發(fā)送的復(fù)位信號,所以看不到復(fù)位10mS的持續(xù)時(shí)間。

b2ad1344-1c5f-11ee-9c1d-dac502259ad0.png

三.總結(jié)

復(fù)位的信號很簡單,但是承接的是連接檢測到后續(xù)的高速速度握手,時(shí)序非常重要,尤其是有個(gè)參數(shù)2.5uS,檢測到復(fù)位信號持續(xù)2.5uS即檢測到復(fù)位,而不需要等復(fù)位信號移除即不需要等10mS,所以會出現(xiàn)主機(jī)在驅(qū)動(dòng)復(fù)位,設(shè)備已經(jīng)檢測到復(fù)位開始后續(xù)的高速握手,從波形上看就看不到復(fù)位信號持續(xù)10mS了,而這也可能導(dǎo)致一些性能不達(dá)標(biāo)的主機(jī),高速握手失敗,這個(gè)后面單獨(dú)講案例分析。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • usb
    usb
    +關(guān)注

    關(guān)注

    60

    文章

    8440

    瀏覽量

    284542
  • 復(fù)位
    +關(guān)注

    關(guān)注

    0

    文章

    179

    瀏覽量

    25048
  • USB驅(qū)動(dòng)器
    +關(guān)注

    關(guān)注

    0

    文章

    8

    瀏覽量

    5438
  • 復(fù)位信號
    +關(guān)注

    關(guān)注

    0

    文章

    70

    瀏覽量

    6817
  • DWC2
    +關(guān)注

    關(guān)注

    0

    文章

    35

    瀏覽量

    375
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    MAX1823系列:一款具備故障抑制和自動(dòng)復(fù)位功能的雙路USB開關(guān)

    MAX1823系列:一款具備故障抑制和自動(dòng)復(fù)位功能的雙路USB開關(guān) 在現(xiàn)代電子設(shè)備中,USB接口的使用非常普遍,對于USB開關(guān)的性能和穩(wěn)定性也提出了更高的要求。今天我們要深入了解的是M
    的頭像 發(fā)表于 02-11 14:45 ?166次閱讀

    MAX1940:具備自動(dòng)復(fù)位和故障消隱功能的三重USB開關(guān)

    MAX1940:具備自動(dòng)復(fù)位和故障消隱功能的三重USB開關(guān) 在電子設(shè)備的設(shè)計(jì)中,USB接口的應(yīng)用極為廣泛,而USB開關(guān)的性能對于保障設(shè)備的穩(wěn)定運(yùn)行至關(guān)重要。今天,我們就來詳細(xì)探討一下M
    的頭像 發(fā)表于 02-11 14:35 ?166次閱讀

    高速USB信號切換的利器:TS3USB221詳解

    高速USB信號切換的利器:TS3USB221詳解 在電子設(shè)備設(shè)計(jì)領(lǐng)域,高速信號的切換與傳輸一直是工程師們關(guān)注的重點(diǎn)。特別是在USB接口廣泛應(yīng)用的今天,如何高效、穩(wěn)定地切換
    的頭像 發(fā)表于 01-14 16:05 ?268次閱讀

    高速USB 2.0信號開關(guān)TS3USB31的設(shè)計(jì)與應(yīng)用詳解

    高速USB 2.0信號開關(guān)TS3USB31的設(shè)計(jì)與應(yīng)用詳解 在當(dāng)今的電子產(chǎn)品設(shè)計(jì)中,高速信號傳輸?shù)姆€(wěn)定性和可靠性至關(guān)重要。特別是在USB接口的應(yīng)用中,一款優(yōu)秀的信號開關(guān)能夠大大提升系統(tǒng)
    的頭像 發(fā)表于 01-14 15:55 ?232次閱讀

    USB驅(qū)動(dòng)安裝全攻略#人工智能 #嵌入式開發(fā) #電子愛好者

    usb
    廣州靈眸科技有限公司
    發(fā)布于 :2026年01月13日 09:46:49

    瑞芯微(EASY EAI)RV1126B USB使用

    1.USB硬件資源介紹1.1兩種USB模式EASYEAINano-TB開發(fā)板支持2USB工作模式:默認(rèn)模式:
    的頭像 發(fā)表于 01-01 09:30 ?4307次閱讀
    瑞芯微(EASY EAI)RV1126B <b class='flag-5'>USB</b>使用

    高速USB 2.0信號隔離切換利器:TS3USB31詳解

    高速USB 2.0信號隔離切換利器:TS3USB31詳解 在電子電路的設(shè)計(jì)中,信號的高效切換與隔離是至關(guān)重要的環(huán)節(jié)。尤其是在處理高速USB 2.0信號時(shí),需要一款性能卓越的開關(guān)來確保信
    的頭像 發(fā)表于 12-26 14:30 ?280次閱讀

    深度解析PTN3222:1端口eUSB2USB2驅(qū)動(dòng)器的卓越性能

    深度解析PTN3222:1端口eUSB2USB2驅(qū)動(dòng)器的卓越性能 在當(dāng)今的電子世界中,接口技術(shù)的不斷發(fā)展對數(shù)據(jù)傳輸?shù)姆€(wěn)定性和高效性提出了更高要求。NXP的PTN3222作為一款1端口eUSB
    的頭像 發(fā)表于 12-24 17:20 ?719次閱讀

    EZ-USB? FX2G3 DVK快速上手:開啟硬件開發(fā)新體驗(yàn)

    EZ-USB? FX2G3 DVK快速上手:開啟硬件開發(fā)新體驗(yàn) 作為電子工程師,我們在日常工作中經(jīng)常會接觸到各種開發(fā)套件,今天就來和大家分享一下EZ-
    的頭像 發(fā)表于 12-18 11:40 ?514次閱讀

    TUSB1104:USB 3.2 x2 線性轉(zhuǎn)接驅(qū)動(dòng)器的卓越之選

    TUSB1104:USB 3.2 x2 線性轉(zhuǎn)接驅(qū)動(dòng)器的卓越之選 在當(dāng)今高速數(shù)據(jù)傳輸?shù)臅r(shí)代,USB 技術(shù)不斷發(fā)展,對數(shù)據(jù)傳輸速率和穩(wěn)定性的要求也越來越高。TUSB1104 作為一款專為
    的頭像 發(fā)表于 12-16 15:30 ?340次閱讀

    構(gòu)建可靠USB應(yīng)用:硬件設(shè)計(jì)要點(diǎn)與LuatOS開發(fā)技巧!

    實(shí)現(xiàn)穩(wěn)定可靠的USB通信,既依賴于嚴(yán)謹(jǐn)?shù)挠布娐吩O(shè)計(jì),也離不開高效的軟件開發(fā)支持。本文將從電源管理、信號完整性等硬件角度出發(fā),結(jié)合LuatOS平臺的API使用技巧,為開發(fā)者提供一站式USB
    的頭像 發(fā)表于 12-15 10:46 ?229次閱讀
    構(gòu)建可靠<b class='flag-5'>USB</b>應(yīng)用:硬件設(shè)計(jì)要點(diǎn)與LuatOS<b class='flag-5'>開發(fā)</b>技巧!

    cherry usb不進(jìn)中斷是怎么回事?

    #define USBD_IRQHandlerOTG_HS_IRQHandler #define USBD_BASE(0x40040000UL) #define CONFIG_USBDEV_EP_NUM 6 #define CONFIG_USB_DWC2_RAM_SIZE1280 但是不進(jìn)入
    發(fā)表于 10-09 06:24

    USB上網(wǎng)實(shí)戰(zhàn)教程:RNDIS驅(qū)動(dòng)一鍵配置!

    ?想要通過USB線快速連接網(wǎng)絡(luò)?本文詳解RNDIS驅(qū)動(dòng)的安裝與配置步驟。從Linux系統(tǒng)檢測到設(shè)備虛擬網(wǎng)卡,僅需幾個(gè)命令即可實(shí)現(xiàn)TCP/IP over USB,讓上網(wǎng)變得高效便捷,新手
    的頭像 發(fā)表于 08-04 15:46 ?1583次閱讀
    <b class='flag-5'>USB</b>上網(wǎng)實(shí)戰(zhàn)教程:RNDIS<b class='flag-5'>驅(qū)動(dòng)</b>一鍵配置!

    高速信號抗浪涌“神器”,適用于USB 2.0、USB 3.X(Gen1/Gen2)、HDMI

    usb
    jf_15747056
    發(fā)布于 :2025年07月23日 19:08:12

    基于RK3576開發(fā)板的USB驅(qū)動(dòng)安裝

    在使用芯片的ADB接口(進(jìn)行ADB調(diào)試或者固件燒錄)前需要安裝指定USB驅(qū)動(dòng),請按以下指引執(zhí)行驅(qū)動(dòng)安裝。
    的頭像 發(fā)表于 04-21 17:15 ?1169次閱讀
    基于RK3576<b class='flag-5'>開發(fā)</b>板的<b class='flag-5'>USB</b><b class='flag-5'>驅(qū)動(dòng)</b>安裝