女人荫蒂被添全过程13种图片,亚洲+欧美+在线,欧洲精品无码一区二区三区 ,在厨房拨开内裤进入毛片

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

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

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

基于DWC2的USB驅(qū)動開發(fā)-0x03 DWC2 USB2.0 IP 架構(gòu)介紹之接口和協(xié)議時序

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

掃碼添加小助手

加入工程師交流群

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

基于DWC2的USB驅(qū)動開發(fā)-0x03 DWC2 USB2.0 IP 架構(gòu)介紹之接口和協(xié)議時序 (qq.com)

前言

這部分以一些典型的傳輸為例,介紹控制器的處理過程。這部分內(nèi)容比較重要,對于時序的理解有助于軟件編寫,尤其了解整個過程的先后順序,邏輯,比如什么時候產(chǎn)生中斷,什么時候硬件做什么,什么時候軟件做什么,這些都是驅(qū)動編寫需要了解的。可以慢慢,細細品,后面編寫軟件調(diào)試過程還會結(jié)合寄存器狀態(tài),結(jié)合調(diào)試過程不斷加深理解。

控制寫

如下以設備模式,DMA操作方式,16位utmi接口,SetAddress的Setup階段為例

image.png

注意以上5個關鍵過程

  1. 軟件使能OUT端口,設置好DMA,準備好接收數(shù)據(jù)。
  2. HOST發(fā)送Setup包過來,控制器收到并且硬件自動回復ACK。
  3. 控制器通過DMA將Setup包的內(nèi)容搬運到系統(tǒng)memory。
  4. 然后控制器自動設置NAK位,NAK所有的IN和OUT端點,不再接收令牌包。

這里硬件自動NAK進行流控, 為什么這里要硬件自動NAK呢,這是為了避免持續(xù)的setup導致異常,因為由軟件中斷服務中再進行NAK比較慢,所以必須硬件做。所以驅(qū)動編寫一定要知道哪些是硬件做的哪些需要軟件做。

  1. 產(chǎn)生接收setup中斷, 軟件讀出setup內(nèi)容進行解析,然后清除NAK位,重新使能端口進行接收。

如下是狀態(tài)階段

SetAddress沒有數(shù)據(jù)階段,前面的Setup數(shù)據(jù)流是HOST->DEV,所以狀態(tài)階段數(shù)據(jù)流是DEV->HOST,即HOST過來IN請求數(shù)據(jù),DEV返回0長包。

image.png

  1. 軟件使能IN端點,配置DMA發(fā)送0長包。
  2. 控制器認為此時數(shù)據(jù)還未就緒所以NAK主機的IN請求。
  3. 控制器產(chǎn)生發(fā)送空中斷。
  4. HOST繼續(xù)IN請求,此時控制器準備好了數(shù)據(jù),所以返回了0長包。
  5. 控制器產(chǎn)生發(fā)送完中斷,即0長包發(fā)送完通知軟件處理。

以上幾點一些個人理解暫時不確定:

為什么1已經(jīng)使能了IN端點,配置好DMA了,2時間點在1的后面為什么還是NAK,這里應該是軟件DMA配置好,使能IN端點了,但是DMA還沒將0長數(shù)據(jù)包更新到TxFIFO(雖然0長包不需要復制負載數(shù)據(jù)但是還是有包頭包尾CRC等需要準備),所以此時還沒有數(shù)據(jù)可以發(fā)送到USB總線上去所以是NAK

3這里產(chǎn)生發(fā)送空中斷指的是緩沖區(qū)空,而不是指的總線數(shù)據(jù)發(fā)送完,所謂的緩沖區(qū)空即軟件可以繼續(xù)配置下一個DMA準備下一個DMA搬運了。此時數(shù)據(jù)已經(jīng)就緒到TxFIFO隨時都可以發(fā)送到USB總線了。

所以4這里 HOST再來IN請求時控制器就可以返回0長包了

然后5這里就產(chǎn)生發(fā)送完中斷(這里應該是真正的總線上數(shù)據(jù)發(fā)送完)。

所以什么時候產(chǎn)生什么中斷是編程需要了解的非常重要。

設備模式BULK OUT

這里順便提一下USB中的IN和OUT是以HOST的角度去說的。

比如IN指的是數(shù)據(jù)DEV->HOST

OUT指的是數(shù)據(jù)HOST->DEV。

不管是設備端還是主機端都是這個角度說的。

如下以包長為1的BULK OUT傳輸,DMA模式為例

image.png

  1. 軟件設置好DMA,使能OUT端點.
  2. HOST發(fā)送一個1字節(jié)長的BULK OUT包,控制器因為已經(jīng)就緒接收,所以ACK該包,接收的數(shù)據(jù)在接收緩沖區(qū)。
  3. 控制器通過DMA將接收緩沖區(qū)的數(shù)據(jù)搬運到系統(tǒng)memory。
  4. 控制器產(chǎn)生接收完成中斷。中斷中就可以對數(shù)據(jù)進行處理。

設備模式BULK IN

如下以包長為1的BULK IN傳輸,DMA模式為例。

image.png

  1. 此時發(fā)送FIFO中沒有數(shù)據(jù),所以HOST來IN請求時,控制器返回NAK
  2. 控制器產(chǎn)生TXFIFO空中斷,表示TXFIFO中沒有數(shù)據(jù)了,可以準備發(fā)送數(shù)據(jù)了。
  3. 軟件配置好DMA和使能IN端點。
  4. 控制器通過DMA將數(shù)據(jù)從系統(tǒng)memory搬運到TXFIFO中。在完成搬運前都是NAK主機的IN。
  5. 完成數(shù)據(jù)搬運到FIFO,F(xiàn)IFO中有數(shù)據(jù)了,此時HOST再來IN,則控制器將緩沖區(qū)的數(shù)據(jù)發(fā)送到USB總線上去。
  6. 控制器產(chǎn)生發(fā)送完中斷。

設備模式Interrupt OUT

以下以設備模式,DMA操作,中斷OUT傳輸252字節(jié)數(shù)據(jù)。和BULK OUT類似。

image.png

  1. 軟件配置好DMA和使能OUT端點。
  2. 控制器接收HOST發(fā)送的數(shù)據(jù)到接收緩沖區(qū),并ACK。
  3. 控制器通過DMA將接收緩沖區(qū)的數(shù)據(jù)搬運到系統(tǒng)memory。
  4. 產(chǎn)生接收完成中斷。軟件可以處理數(shù)據(jù)了。

設備模式Isochronous IN

以下以設備模式DMA方式的ISO IN傳輸為例

image.png

image.png

  1. SOF令牌,ISO的傳輸以SOF微幀為單位進行。
  2. 控制器產(chǎn)生SOF中斷。
  3. 軟件設置好DMA使能IN端點。
  4. IN端點使能后,控制器開始通過DMA將系統(tǒng)memory的數(shù)據(jù)搬運到發(fā)送FIFO中去。
  5. 下一個SOF到來并產(chǎn)生SOF中斷
  6. 本次SOF的HSOT的IN請求,設備的FIFO中已經(jīng)準備好數(shù)據(jù)所以可以發(fā)送到總線上去給HOST。
  7. 產(chǎn)生發(fā)送完中斷。

主機模式 Isochronous IN

以下以主機模式DMA方式的ISO IN傳輸為例

應用程序必須在傳輸之前安排一個(微)幀的傳輸。

image.png

image.png

  1. 控制器產(chǎn)生SOF中斷。
  2. 軟件配置好通道信息以準備接收下一個微幀的數(shù)據(jù)。
  3. 下一個SOF中斷。
  4. 控制發(fā)送IN請求并接收設備返回的數(shù)據(jù)。
  5. 控制器將接收到的數(shù)據(jù)通過DMA搬運到系統(tǒng)memory中。
  6. 控制器產(chǎn)生接收完成中斷。

主機模式Slave操作方式Bulk Out傳輸

以主機模式 Slave操作方式 Bulk Out傳輸1個字節(jié)數(shù)據(jù)為例。

Slave模式需要CPU通過AHB總線去寫數(shù)據(jù)到發(fā)送FIFO,而不是DMA自動搬運。

image.png

  1. 控制初始化配置好BULK OUT的通道。
  2. 軟件將數(shù)據(jù)寫入TXFIFO中。
  3. 控制器發(fā)送TXFIFO中的數(shù)據(jù)。
  4. 發(fā)送完產(chǎn)生中斷。

總結(jié)

以上以各種典型的傳輸時序圖為例介紹了控制器的處理過程,把這部分放在開始寫代碼之前也是為了先有一個大概的整體了解,才能確定程序的框架流程如何設計。

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

    關注

    114

    文章

    17034

    瀏覽量

    183413
  • 寄存器
    +關注

    關注

    31

    文章

    5428

    瀏覽量

    123802
  • 接口
    +關注

    關注

    33

    文章

    8970

    瀏覽量

    153401
  • usb
    usb
    +關注

    關注

    60

    文章

    8153

    瀏覽量

    271536
  • 驅(qū)動開發(fā)

    關注

    0

    文章

    133

    瀏覽量

    12272
  • DWC2
    +關注

    關注

    0

    文章

    35

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    基于DWC2USB驅(qū)動開發(fā)-0x01開篇介紹與新思DWC2 USB2.0控制器簡介

    本文轉(zhuǎn)自公眾號,歡迎關注 基于DWC2USB驅(qū)動開發(fā)-0x01開篇介紹與新思
    的頭像 發(fā)表于 05-08 18:10 ?5525次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅(qū)動</b><b class='flag-5'>開發(fā)</b>-<b class='flag-5'>0x</b>01開篇<b class='flag-5'>介紹</b>與新思<b class='flag-5'>DWC2</b> <b class='flag-5'>USB2.0</b>控制器簡介

    基于DWC2USB驅(qū)動開發(fā)-0x02 DWC2 USB2.0 IP功能特征介紹

    DWC2即新思(Synopsys )的DesignWare? Cores USB 2.0 HiSpeed On-The-Go (OTG)控制器IP,被大量使用。從linux的內(nèi)核源碼
    的頭像 發(fā)表于 05-09 10:09 ?1.2w次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅(qū)動</b><b class='flag-5'>開發(fā)</b>-<b class='flag-5'>0x</b>02 <b class='flag-5'>DWC2</b> <b class='flag-5'>USB2.0</b> <b class='flag-5'>IP</b>功能特征<b class='flag-5'>介紹</b>

    基于DWC2USB驅(qū)動開發(fā)-0x04 DWC2 USB2.0 IP 架構(gòu)介紹

    這一篇先對IP架構(gòu)進行一些介紹,內(nèi)容比較多所以重點關注和軟件相關的內(nèi)容。后續(xù)編程具體涉及時,可能再返回過來詳讀某一個部分。
    的頭像 發(fā)表于 05-12 12:50 ?5293次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅(qū)動</b><b class='flag-5'>開發(fā)</b>-<b class='flag-5'>0x</b>04 <b class='flag-5'>DWC2</b> <b class='flag-5'>USB2.0</b> <b class='flag-5'>IP</b> <b class='flag-5'>架構(gòu)</b><b class='flag-5'>介紹</b>

    基于DWC2USB驅(qū)動開發(fā)-0x07 DWC2 USB2.0 IP 配置參數(shù)

    混淆,IP的配置參數(shù)固定之后就不能改了,就決定了IP所具有的能力。對于軟件開發(fā)者來說也要了解其具體的配置,因為只有知道當前IP的配置,知道支持哪些功能,哪些是軟件可以配置的哪些是硬件固
    的頭像 發(fā)表于 05-17 09:49 ?3127次閱讀

    基于DWC2USB驅(qū)動開發(fā)-IAD描述符詳解

    本文轉(zhuǎn)自公眾號,歡迎關注 基于DWC2USB驅(qū)動開發(fā)-IAD描述符詳解 (qq.com) 一.? 前言 IAD描述符用于一個設備功能關聯(lián)多個接口
    的頭像 發(fā)表于 06-27 08:45 ?44.2w次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅(qū)動</b><b class='flag-5'>開發(fā)</b>-IAD描述符詳解

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

    本文轉(zhuǎn)自公眾號歡迎關注 基于DWC2USB驅(qū)動開發(fā)-USB復位詳解 (qq.com) 一.前言 ? ? ? ? ?上一篇我們詳細
    的頭像 發(fā)表于 07-07 11:18 ?10.9w次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅(qū)動</b><b class='flag-5'>開發(fā)</b>-<b class='flag-5'>USB</b>復位詳解

    基于DWC2USB驅(qū)動開發(fā)-USB連接詳解

    本文轉(zhuǎn)自公眾號,歡迎關注 基于DWC2USB驅(qū)動開發(fā)-USB連接詳解 (qq.com) 一.前言 ? 之前一直在閱讀手冊,規(guī)格書,練習招式
    的頭像 發(fā)表于 07-07 08:46 ?4452次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅(qū)動</b><b class='flag-5'>開發(fā)</b>-<b class='flag-5'>USB</b>連接詳解

    基于DWC2USB驅(qū)動開發(fā)-高速設備枚舉為全速設備問題案例分析

    本文轉(zhuǎn)自公眾號,歡迎關注 基于DWC2USB驅(qū)動開發(fā)-高速設備枚舉為全速設備問題案例分析 (qq.com) 一.前言 ? 本文分享一個高速設備被枚舉為全速的問題。 ? ? 高速設備速
    的頭像 發(fā)表于 07-10 17:12 ?1980次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅(qū)動</b><b class='flag-5'>開發(fā)</b>-高速設備枚舉為全速設備問題案例分析

    基于DWC2USB驅(qū)動開發(fā)-設備類驅(qū)動框架

    本文轉(zhuǎn)自公眾號,歡迎關注 基于DWC2USB驅(qū)動開發(fā)-設備類驅(qū)動框架 (qq.com) 一.前言 從軟件頂層,從數(shù)據(jù)流的角度來看
    的頭像 發(fā)表于 07-16 15:56 ?1749次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅(qū)動</b><b class='flag-5'>開發(fā)</b>-設備類<b class='flag-5'>驅(qū)動</b>框架

    基于DWC2USB驅(qū)動開發(fā)-發(fā)送相關的寄存器DMA寄存器詳解

    本文轉(zhuǎn)自公眾號,歡迎關注 基于DWC2USB驅(qū)動開發(fā)-發(fā)送相關的寄存器DMA寄存器詳解 (qq.com) 前言 如下寄存器DIEPxxx,對應IN端點,和發(fā)送數(shù)據(jù)相關,這一篇先
    的頭像 發(fā)表于 07-16 16:42 ?2198次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅(qū)動</b><b class='flag-5'>開發(fā)</b>-發(fā)送相關的寄存器DMA寄存器詳解

    基于DWC2USB驅(qū)動開發(fā)-數(shù)據(jù)不能發(fā)送問題分析案例

    本文轉(zhuǎn)自公眾號歡迎關注 基于DWC2USB驅(qū)動開發(fā)-數(shù)據(jù)不能發(fā)送問題分析案例 (qq.com) ? 一.前言 ? ? ? ?對于驅(qū)動
    的頭像 發(fā)表于 08-08 09:43 ?3259次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅(qū)動</b><b class='flag-5'>開發(fā)</b>-數(shù)據(jù)不能發(fā)送問題分析案例

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

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

    RK3399平臺上USB控制器和PHY的連接方式和配置說明

    USB2.0 OTG對應的控制器是DWC2USB2.0 OTG使用的是Synopsys 方案,即使用DWC2控制器同時實現(xiàn)Host和Device功能,
    發(fā)表于 05-12 17:46

    如何對基于hal庫的DWC2 USB IP進行調(diào)試呢

    背景之前適配 DWC2 USB IP 的時候,主要是基于 st 的 hal 庫來走的,當時我就對他們的 hal 庫代碼不滿,只是無奈,迫于時間就沒重構(gòu),果不其然,usb bug 一堆,
    發(fā)表于 06-14 15:23

    基于DWC2USB驅(qū)動開發(fā)-抽絲剝繭再論切換到狀態(tài)階段標志DOEPINTn.StsPhseRcvd

    本文轉(zhuǎn)自公眾號系列文章,歡迎關注 基于DWC2USB驅(qū)動開發(fā)-USB包詳解 (qq.com) 一.前言 前面我們對SETUP完成標志DOE
    的頭像 發(fā)表于 07-24 18:04 ?2406次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅(qū)動</b><b class='flag-5'>開發(fā)</b>-抽絲剝繭再論切換到狀態(tài)階段標志DOEPINTn.StsPhseRcvd
    主站蜘蛛池模板: 彰武县| 大悟县| 碌曲县| 班玛县| 读书| 剑河县| 岗巴县| 长垣县| 吉首市| 林西县| 商都县| 奉贤区| 潍坊市| 勃利县| 康保县| 阿拉尔市| 恩施市| 阿拉善盟| 阿城市| 白银市| 上饶市| 台江县| 遂溪县| 巨野县| 深泽县| 台南县| 平南县| 汝阳县| 井冈山市| 常山县| 肥乡县| 保康县| 商河县| 新田县| 北票市| 广河县| 高青县| 绍兴市| 鹤峰县| 临洮县| 和林格尔县|