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

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

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

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

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

掃碼添加小助手

加入工程師交流群

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

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

一.前言

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

這一篇我們就來詳細講講USB的復位,老規(guī)矩理論結合實踐,先看規(guī)格書的說明再寫驅(qū)動實測。

二.USB的復位

2.1復位信號

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

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

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ā)送要求嚴格一些,因為要考慮信號傳輸?shù)脑肼暩蓴_等因素,預留一些裕度。

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

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

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

對于根集線器這里還有個要求就是非連續(xù)的復位要有3mS以上的間隔(TRHRSI),復位持續(xù)周期50mS(TDRSTR)以上(因為USB拓撲最大有5個集線器)

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

2.2復位過程

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

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

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

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

2.主機(HUB驅(qū)動信號SE0以產(chǎn)生復位信號。

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

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

速度的檢測后面會單獨再講。

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

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

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

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

注意

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

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

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

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

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

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

直到相關UTMI時鐘復位,如下代碼執(zhí)行對應到(2)前面的DP拉低,此時UTMI等復位應該是導致了PHY的相關狀態(tài)復位。

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

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

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

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

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

三.總結

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

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

    關注

    60

    文章

    8369

    瀏覽量

    281488
  • 復位
    +關注

    關注

    0

    文章

    179

    瀏覽量

    24961
  • USB驅(qū)動器

    關注

    0

    文章

    8

    瀏覽量

    5421
  • 復位信號
    +關注

    關注

    0

    文章

    70

    瀏覽量

    6746
  • DWC2
    +關注

    關注

    0

    文章

    35

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    USB設計操作指南:硬件關鍵與LuatOS API開發(fā)技巧!

    本文以Air780EPM系列低功耗模組為實例,分享USB接口硬件設計的要點以及LuatOS高效開發(fā)API的助力作用。旨在指導開發(fā)者在設計中規(guī)避常見陷阱,高效構建穩(wěn)定可靠的USB應用。
    的頭像 發(fā)表于 11-11 18:29 ?90次閱讀
    <b class='flag-5'>USB</b>設計操作指南:硬件關鍵與LuatOS API<b class='flag-5'>開發(fā)</b>技巧!

    cherry usb不進中斷是怎么回事?

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

    觸覺智能RK3576開發(fā)板OpenHarmony開源鴻蒙系統(tǒng)USB控制傳輸功能示例

    本文介紹OpenHarmony開源鴻蒙系統(tǒng)的USB控制傳輸功能實現(xiàn)及相關代碼示例,基于觸覺智能RK3576開發(fā)板PurplePiOH2演示。OpenHarmony的USB通信介紹實現(xiàn)
    的頭像 發(fā)表于 09-30 16:31 ?1195次閱讀
    觸覺智能RK3576<b class='flag-5'>開發(fā)</b>板OpenHarmony開源鴻蒙系統(tǒng)<b class='flag-5'>USB</b>控制傳輸功能示例

    Texas Instruments USB-TO-GPIO2接口適配器技術解析

    Texas Instruments USB-TO-GPIO2 USB接口適配器評估模塊 (EVM) 可通過標準type-A轉(zhuǎn)mini-B USB電纜作為主機PC和一個或多個目標設備之間的接口適配器或
    的頭像 發(fā)表于 09-10 15:47 ?637次閱讀

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

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

    調(diào)用完成USB復位API之后,通過USB發(fā)送指令,USB設備報錯,是什么原因?qū)е碌模?/a>

    調(diào)用完成復位指令之后,我通過USB OUT發(fā)送指令下去,顯示錯誤。請問這個問題出現(xiàn)在哪里??
    發(fā)表于 07-24 07:38

    stm32哪個系列芯片支持2USB,主設備,且usb可以支持標準的uvc協(xié)議,哪里可以下載usb開發(fā)庫?

    stm32哪個系列芯片支持2USB,主設備,且usb可以支持標準的uvc協(xié)議,哪里可以下載usb開發(fā)
    發(fā)表于 04-27 08:16

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

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

    第三方的DLP3010-LC開發(fā)USB轉(zhuǎn)I2C失敗怎么解決?

    我們從第三方光機廠商購買了DLP3010-LC開發(fā)板,該開發(fā)板對外只有I2C接口,需要自己購買了USB轉(zhuǎn)I2C模塊,于是我們購買了TI推薦
    發(fā)表于 02-28 06:51

    USB串口驅(qū)動

    USB串口驅(qū)動
    發(fā)表于 02-10 13:49 ?3次下載

    國產(chǎn)USB對拷線方案

    的高速數(shù)據(jù)通信,支持文件同步、系統(tǒng)克隆等操作。 2. 技術規(guī)格 2.1 接口類型 物理接口 :USB-A Male to USB-A Male(傳統(tǒng)PC) / USB-C to
    的頭像 發(fā)表于 02-10 09:10 ?3515次閱讀
    國產(chǎn)<b class='flag-5'>USB</b>對拷線方案

    什么是 USB 3.2?

    什么是USB3.2?USB3.2是一種USB(通用串行總線)標準,它建立在之前的USB3.0和USB3.1標準之上。它的
    的頭像 發(fā)表于 01-24 11:39 ?1.1w次閱讀
    什么是 <b class='flag-5'>USB</b> 3.2?

    新思 DWC2 的參考手冊從哪里可以下載

    最近在學習STM32F4 USB驅(qū)動,有看到 dwc2驅(qū)動的代碼,但是沒有手冊用來參考,ST手冊上寄存器不全,從網(wǎng)上看到有下面兩個手冊,但是一直找不到下載的資源 《DesignWar
    發(fā)表于 01-22 11:32

    USB音頻過濾器驅(qū)動程序安裝

    電子發(fā)燒友網(wǎng)站提供《USB音頻過濾器驅(qū)動程序安裝.pdf》資料免費下載
    發(fā)表于 12-19 14:28 ?0次下載
    <b class='flag-5'>USB</b>音頻過濾器<b class='flag-5'>驅(qū)動</b>程序安裝