在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

基于DWC2的USB驅動開發-0x01開篇介紹與新思DWC2 USB2.0控制器簡介

嵌入式USB開發 ? 2023-05-08 18:10 ? 次閱讀

本文轉自公眾號,歡迎關注

基于DWC2的USB驅動開發-0x01開篇介紹與新思DWC2 USB2.0控制器簡介 (qq.com)

DWC2 USB2.0控制器介紹

前言

前面介紹了USB江湖中,硬件協議分析儀,軟件抓包工具中的各門各派,各路高手。工欲善其事必先利其器,所以至少需要了解其中一個硬件協議分析儀和一個軟件抓包工具,后面才能比較方便的進行USB開發,否則可能會迷失在USB協議的沼澤里,而難以自拔,此時你可能就會不斷進行哲思:”我是誰,我在哪里,我在干嘛,我為什么要搞USB?”; ”軟件問題,硬件問題,還是我的問題?”。

各門各派,江湖大俠都會有自己的獨門絕技和獨門武器,而我們看到各種武俠小說,電視劇中,大俠的長成都是奇遇絕頂高手,然后挑柴,打水,站樁,摸魚(不是屏幕前的摸魚),劃水(不是屏幕前的劃水),一頓輸出,然后鏡頭切換春夏秋冬,從掌動草長鶯飛到劍指秋風落葉,從拳擊萬丈瀑布到腳掃千層白雪,招式基本功達到爐火純青之后,然后就是絕頂高手拿出一本泛黃的小冊子或者來到一處絕壁前傳授內功心法,于是功力突飛猛進,終得大成。終于下山行俠仗義,叱咤江湖,成為一代傳奇。

UBS開發也是一樣的,尤其是做USB底層比如驅動開發,那么至少需要購買一個USB硬件協議分析儀,以便抓取分析協議的底層信號和數據與規格書對照,這就是前面的基本功練習。,等協議熟悉了之后,就可以去USB官網搜索各種規格書,開發實際的產品,練習心法內功了,就好比可以進入達摩院的藏書樓去翻閱各種絕學典籍了。

實踐是檢驗檢驗真理的唯一標準,所以我們不從USB復雜的協議規格書入手,一開始就直接學習少林武功的七十二絕技是不可取的,就好比鳩摩智最終導致的是走火入魔。最好的方法是基于某個USB的控制器,從零實踐其驅動開發,先從實踐開始熟悉協議,打好基礎,練好基本功。遇到哪些內容或者問題然后理論結合實踐,參照USB控制器的文檔和USB規格書的文檔進行實踐和理論學習。這樣后面才有可能駕馭,切記不能急于求成,只有基本功結合心法才能提升內力和功力。

相信本系列文章應該是全網第一部專門詳細介紹基于DWC2 USB2.0控制器驅動開發的文章,慢慢來,希望和大家一起學習,從實踐出發最終能成為USB開發的大俠。

新思的USB2.0 IP介紹

新思的USB 2.0 IP應該是業界使用得最多的IP解決方案了。市面上很多的量產MCU或者MPU都是基于新思的IP,比如各種xxx32的單片等。新思官網可以看到一些信息

https://www.synopsys.com/dw/ipdir.php?ds=dwc_usb_2_0_digital_controllers,但是其手冊等不是直接開放,需要注冊,目前個人注冊好像不太行了。

新思的IP有以下特征:

  • 靈活的配置選項,以最大限度地提高性能和最小化CPU中斷,后面我們也會詳細講到其中斷相關的內容,中斷通過一些bit的組合以標志不同的狀態,以減少需要進行的判斷邏輯。
  • 靈活的參數可以輕松集成到低延遲和高延遲系統中。
  • 基于系統要求的USB數據傳輸或事務處理。
  • 可配置的數據緩沖選項,以微調性能/面積的權衡。
  • 緩沖區和描述符預取使主機吞吐量最大化。
  • 固件可選端點配置,支持后處理應用程序更改;以及靈活的單芯片設計適用于多種應用,總之一個詞就是”靈活”,但是后面看規格書也可以知道確實很復雜,配置參數選項很多。
  • 通過廣泛的約束隨機驗證進行測試,確保高質量的IP。
  • AMBA?高性能總線(AHB)接口可快速集成到基于arm的設計中。所以你可以看到各種基于ARM尤其是Cortex-M系列的xxx32的MCU基本都是采用的新思的IP方案。
  • UTMI+ Level 3可以與兼容的PHY設備快速集成。
  • 高速high -Speed (480mbps)、全速Full-Speed (12mbps)和低速Low- Speed (1.5 Mbps)的操作符合USB OTG補充標準。
  • USB 2.0 HS OTG控制器支持外設或主機模式。
  • 也支持高速USB EHCI主機控制器。

文檔

新思USB 2.0 IP主要有兩個文檔需要參考

《DesignWare Cores USB 2.0 Hi-Speed On-TheGo (OTG) Data book》

《DesignWare Cores USB 2.0 Hi-Speed On-TheGo (OTG) Programming Guide》

前者是描述IP的架構,信號,配置,寄存器等,有百多頁。供IC設計,驗證工程師,和驅動工程師查閱。驅動開發要頻繁參考其寄存器部分,要做到每一個寄存器的每一個bit的作用都要了解,我們后面就會一步步參考它進行驅動的編寫。當然要成為高手肯定要有很好的內力修為,這就需要對其架構等其他部分也要熟悉,所以其他部分我們后面也會一起慢慢閱讀消化。

pYYBAGRYybCAGZfwABh0bPz6j2I114.png

后者是編程指導,驅動編寫主要參考這一部分進行,也有五百多頁,這個文檔我們后面也會詳細的閱讀

pYYBAGRYybiAYkAaAAwHpyxYzdU397.png

如果需要這兩個文檔的可以公眾號留言或者加我微信,可以分享給你,僅供分享學習之用。

總結

這一篇是我們正式進入USB驅動開發的第一篇, 與其他所有的USB書籍或者文章不一樣,我們一開始不直接講USB協議, 我們先從具體的USB IP入手,從USB的底層驅動編寫實踐入手再邊實踐邊了解協議。理論結合實踐才是好的方式, 心法招式結合基本功練習才有可能練成武功的最高境界,否則就會走火入魔。關于走火入魔的一個很明顯的表現就是,很多USB驅動開發工程師或者嵌入式開發人員,一上來就在群里論壇里問”求救,xxx了是什么問題,怎么解決”,這一看就是基本功都沒練習直接就練習少林七十二絕跡的,基本連USB控制器部分的參考手冊數據手冊,USB規格書都沒怎么閱讀過的,肯定做不好,必定走火入魔,迷失在各種問題里,哪怕是成為調參俠,調API俠,調庫俠,復制粘貼俠最終也可能遇到各種BUG無法解決而終。我們做開發尤其是嵌入式開發,驅動開發,一定要基本功練好,對底層基本原理熟悉,并且經過親身實踐,理論結合實踐才能做好,成為USB江湖一代大俠。

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

    關注

    60

    文章

    7945

    瀏覽量

    264639
  • USB2.0
    +關注

    關注

    2

    文章

    186

    瀏覽量

    46097
  • 新思
    +關注

    關注

    0

    文章

    20

    瀏覽量

    29848
  • USB驅動
    +關注

    關注

    1

    文章

    136

    瀏覽量

    20197
  • DWC2
    +關注

    關注

    0

    文章

    35

    瀏覽量

    131
收藏 人收藏

    評論

    相關推薦

    基于DWC2USB驅動開發-0x06 DWC2 USB2.0 IP 頭文件與寄存的讀寫操作

    上一篇我們介紹控制器的寄存,而驅動的編寫底層無非就是配置各種寄存,所以第一步先要準備寄存
    的頭像 發表于 05-16 14:04 ?2431次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅動</b><b class='flag-5'>開發</b>-<b class='flag-5'>0x</b>06 <b class='flag-5'>DWC2</b> <b class='flag-5'>USB2.0</b> IP 頭文件與寄存<b class='flag-5'>器</b>的讀寫操作

    基于DWC2USB驅動開發-0x02 DWC2 USB2.0 IP功能特征介紹

    DWC2即新(Synopsys )的DesignWare? Cores USB 2.0 HiSpeed On-The-Go (OTG)控制器
    的頭像 發表于 05-09 10:09 ?9420次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅動</b><b class='flag-5'>開發</b>-<b class='flag-5'>0x</b>02 <b class='flag-5'>DWC2</b> <b class='flag-5'>USB2.0</b> IP功能特征<b class='flag-5'>介紹</b>

    基于DWC2USB驅動開發-0x04 DWC2 USB2.0 IP 架構介紹

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

    基于DWC2USB驅動開發-0x07 DWC2 USB2.0 IP 配置參數

    混淆,IP的配置參數固定之后就不能改了,就決定了IP所具有的能力。對于軟件開發者來說也要了解其具體的配置,因為只有知道當前IP的配置,知道支持哪些功能,哪些是軟件可以配置的哪些是硬件固定了無法配置的,等等這些,后面寫驅動才心中有數。 配置相關
    的頭像 發表于 05-17 09:49 ?2303次閱讀

    基于DWC2USB驅動開發-IAD描述符詳解

    本文轉自公眾號,歡迎關注 基于DWC2USB驅動開發-IAD描述符詳解 (qq.com) 一.? 前言 IAD描述符用于一個設備功能關聯多個接口,可以用于實現組合設備。 二.參考文檔
    的頭像 發表于 06-27 08:45 ?14.7w次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅動</b><b class='flag-5'>開發</b>-IAD描述符詳解

    基于DWC2USB驅動開發-USB復位詳解

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

    基于DWC2USB驅動開發-USB連接詳解

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

    基于DWC2USB驅動開發-高速設備枚舉為全速設備問題案例分析

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

    基于DWC2USB驅動開發-設備類驅動框架

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

    基于DWC2USB驅動開發-發送相關的寄存DMA寄存詳解

    本文轉自公眾號,歡迎關注 基于DWC2USB驅動開發-發送相關的寄存DMA寄存詳解 (qq
    的頭像 發表于 07-16 16:42 ?1658次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅動</b><b class='flag-5'>開發</b>-發送相關的寄存<b class='flag-5'>器</b>DMA寄存<b class='flag-5'>器</b>詳解

    基于DWC2USB驅動開發-數據不能發送問題分析案例

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

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

    USB2.0 OTG對應的控制器DWC2USB2.0 OTG使用的是Synopsys 方案,即使用DWC2
    發表于 05-12 17:46

    如何對基于hal庫的DWC2 USB IP進行調試呢

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

    無法讓USB主機正常工作是我做錯了什么嗎?

    bus registered, assigned bus number 3[ 2.986093] dwc2 49000000.usb-otg: irq 51, io mem 0x
    發表于 12-02 06:06

    基于DWC2USB驅動開發-抽絲剝繭再論切換到狀態階段標志DOEPINTn.StsPhseRcvd

    本文轉自公眾號系列文章,歡迎關注 基于DWC2USB驅動開發-USB包詳解 (qq.com) 一.前言 前面我們對SETUP完成標志DOE
    的頭像 發表于 07-24 18:04 ?1597次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅動</b><b class='flag-5'>開發</b>-抽絲剝繭再論切換到狀態階段標志DOEPINTn.StsPhseRcvd
    主站蜘蛛池模板: 在线观看亚洲专3333| www.激情五月| 俺也啪| 一级特黄aaa大片29| 鸥美三级| 亚洲午夜久久久| 欧美激情伊人| 特级毛片免费看| 操美女视频网站| 在线观看网站黄| 性欧美f| 高清国产亚洲va精品| www狠狠| 午夜性爽爽爽| 成 人 免 费 黄 色| 91久久福利国产成人精品| 亚洲国产成人久久| 成人欧美精品久久久久影院| 操久在线| 四虎影院在线免费观看视频| a级毛片免费网站| 57pao成人永久免费视频| 色婷婷六月丁香在线观看| 午夜免费看视频| 免费大片看黄在观看| 噜噜色噜噜色| 爱射综合| 日韩一区二区三区免费| 天天综合在线视频| 热久久国产| 狠狠se| 在线看黄网站| 日本三级hd高清电影| 日韩天天操| 亚洲成a人片在线观看尤物| 成人三级在线观看| 欧美色淫| 欧美日韩性猛交xxxxx免费看| 欧美黑人粗硬大在线看| 伊人久久大香线蕉综合高清| 国产精品资源网|