18video性欧美19sex,欧美高清videosddfsexhd,性少妇videosexfreexxx片中国,激情五月激情综合五月看花,亚洲人成网77777色在线播放

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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(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)自公眾號(hào)歡迎關(guān)注

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

一.前言

上一篇我們?cè)敿?xì)介紹了USB枚舉的第一步,連接檢測(cè)。那么第二步是干什么呢? 相信做過嵌入式開發(fā)尤其做過驅(qū)動(dòng)開發(fā)的都會(huì)想到-復(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ù)位一般都需要評(píng)估不能這么直接簡(jiǎn)單粗暴。

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

二.USB的復(fù)位

2.1復(fù)位信號(hào)

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

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

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

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

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

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

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

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

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

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

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

對(duì)于根集線器這里還有個(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),則可以將該信號(hào)視為復(fù)位信號(hào)。復(fù)位須在復(fù)位信號(hào)結(jié)束之前生效。注意這里是復(fù)位信號(hào)結(jié)束之前就生效。(實(shí)際這里還可能導(dǎo)致隱蔽的BUG,我這里有一個(gè)精彩的案例分析,高速設(shè)備總是枚舉為全速設(shè)備的問題,神奇的是在復(fù)位中段服務(wù)函數(shù)中加個(gè)打印就好了,后面會(huì)分享)

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

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

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

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

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

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

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

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

如果是從suspend狀態(tài)復(fù)位,則必須在SE0開始后的2.5uS(TFILTSE0)以上時(shí)間后進(jìn)行高速速度檢測(cè)握手,為什么這里沒有最長(zhǎng)時(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è)備對(duì)總線狀態(tài)進(jìn)行采樣,并在開始恢復(fù)至全速后檢查SE0(復(fù)位而非掛起)、不小于100μs且不大于875μs(TWTRSTHS)。如果檢測(cè)到SE0(復(fù)位),則設(shè)備開始高速檢測(cè)握手。

注意

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

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

如下圖是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ù)位不會(huì)影響SftDiscon位的狀態(tài),所以load程序后SftDiscon保持之前的拉高狀態(tài),DWC2控制器復(fù)位也不會(huì)影響

直到相關(guān)UTMI時(shí)鐘復(fù)位,如下代碼執(zhí)行對(duì)應(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,如下代碼處,對(duì)應(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就檢測(cè)到了復(fù)位(如下圖所示,圖中標(biāo)尺部分,后面的藍(lán)色的高DM的高是設(shè)備發(fā)出的Chirp K高速握手信號(hào)),進(jìn)行了后續(xù)的高速握手,所以覆蓋了主機(jī)發(fā)送的復(fù)位信號(hào),所以看不到復(fù)位10mS的持續(xù)時(shí)間。

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

三.總結(jié)

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

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

    關(guān)注

    60

    文章

    8327

    瀏覽量

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

    關(guān)注

    0

    文章

    179

    瀏覽量

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

    關(guān)注

    0

    文章

    8

    瀏覽量

    5415
  • 復(fù)位信號(hào)
    +關(guān)注

    關(guān)注

    0

    文章

    70

    瀏覽量

    6709
  • DWC2
    +關(guān)注

    關(guān)注

    0

    文章

    35

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    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)檢測(cè)到設(shè)備虛擬網(wǎng)卡,僅需幾個(gè)命令即可實(shí)現(xiàn)TCP/IP over USB,讓上網(wǎng)變得高效便捷,新手
    的頭像 發(fā)表于 08-04 15:46 ?739次閱讀
    <b class='flag-5'>USB</b>上網(wǎng)實(shí)戰(zhàn)教程:RNDIS<b class='flag-5'>驅(qū)動(dòng)</b>一鍵配置!

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

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

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

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

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

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

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

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

    USB串口驅(qū)動(dòng)

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

    什么是 USB 3.2?

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

    新思 DWC2 的參考手冊(cè)從哪里可以下載

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

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

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

    USB驅(qū)動(dòng)問題:設(shè)備無法識(shí)別的全面指南!

    今天我把USB驅(qū)動(dòng)問題,關(guān)于設(shè)備無法識(shí)別方面做一個(gè)全面指南供大家參考。連接USB無法識(shí)別模組設(shè)備,是不是驅(qū)動(dòng)問題?今天就一起來聊聊如何排查解決。
    的頭像 發(fā)表于 11-26 12:35 ?1754次閱讀
    <b class='flag-5'>USB</b><b class='flag-5'>驅(qū)動(dòng)</b>問題:設(shè)備無法識(shí)別的全面指南!

    基于RT-Thread的usb設(shè)備msc驅(qū)動(dòng)測(cè)試

    msc驅(qū)動(dòng)簡(jiǎn)介:USBMSC(MassStorageClass)是一種USB設(shè)備類別,用于在計(jì)算機(jī)和外部存儲(chǔ)設(shè)備之間進(jìn)行數(shù)據(jù)傳輸。USBMSC允許外部存儲(chǔ)設(shè)備(如閃存驅(qū)動(dòng)器、硬盤驅(qū)動(dòng)
    的頭像 發(fā)表于 11-12 01:07 ?1314次閱讀
    基于RT-Thread的<b class='flag-5'>usb</b>設(shè)備msc<b class='flag-5'>驅(qū)動(dòng)</b>測(cè)試

    瑞芯微RK3568 USB驅(qū)動(dòng)

    瑞芯微RK3568 USB驅(qū)動(dòng)程序
    發(fā)表于 11-11 14:18 ?18次下載

    USB-C 快充技術(shù)原理詳解

    簡(jiǎn)介 USB-C,全稱USB Type-C,是一種由USB開發(fā)者論壇(USB-IF)發(fā)布的USB
    的頭像 發(fā)表于 11-05 11:49 ?3636次閱讀