基于DWC2的USB驅(qū)動開發(fā)-0x01開篇介紹與新思DWC2 USB2.0控制器簡介 (qq.com)
DWC2 USB2.0控制器介紹
前言
前面介紹了USB江湖中,硬件協(xié)議分析儀,軟件抓包工具中的各門各派,各路高手。工欲善其事必先利其器,所以至少需要了解其中一個硬件協(xié)議分析儀和一個軟件抓包工具,后面才能比較方便的進(jìn)行USB開發(fā),否則可能會迷失在USB協(xié)議的沼澤里,而難以自拔,此時你可能就會不斷進(jìn)行哲思:”我是誰,我在哪里,我在干嘛,我為什么要搞USB?”; ”軟件問題,硬件問題,還是我的問題?”。
各門各派,江湖大俠都會有自己的獨門絕技和獨門武器,而我們看到各種武俠小說,電視劇中,大俠的長成都是奇遇絕頂高手,然后挑柴,打水,站樁,摸魚(不是屏幕前的摸魚),劃水(不是屏幕前的劃水),一頓輸出,然后鏡頭切換春夏秋冬,從掌動草長鶯飛到劍指秋風(fēng)落葉,從拳擊萬丈瀑布到腳掃千層白雪,招式基本功達(dá)到爐火純青之后,然后就是絕頂高手拿出一本泛黃的小冊子或者來到一處絕壁前傳授內(nèi)功心法,于是功力突飛猛進(jìn),終得大成。終于下山行俠仗義,叱咤江湖,成為一代傳奇。
UBS開發(fā)也是一樣的,尤其是做USB底層比如驅(qū)動開發(fā),那么至少需要購買一個USB硬件協(xié)議分析儀,以便抓取分析協(xié)議的底層信號和數(shù)據(jù)與規(guī)格書對照,這就是前面的基本功練習(xí)。,等協(xié)議熟悉了之后,就可以去USB官網(wǎng)搜索各種規(guī)格書,開發(fā)實際的產(chǎn)品,練習(xí)心法內(nèi)功了,就好比可以進(jìn)入達(dá)摩院的藏書樓去翻閱各種絕學(xué)典籍了。
實踐是檢驗檢驗真理的唯一標(biāo)準(zhǔn),所以我們不從USB復(fù)雜的協(xié)議規(guī)格書入手,一開始就直接學(xué)習(xí)少林武功的七十二絕技是不可取的,就好比鳩摩智最終導(dǎo)致的是走火入魔。最好的方法是基于某個USB的控制器,從零實踐其驅(qū)動開發(fā),先從實踐開始熟悉協(xié)議,打好基礎(chǔ),練好基本功。遇到哪些內(nèi)容或者問題然后理論結(jié)合實踐,參照USB控制器的文檔和USB規(guī)格書的文檔進(jìn)行實踐和理論學(xué)習(xí)。這樣后面才有可能駕馭,切記不能急于求成,只有基本功結(jié)合心法才能提升內(nèi)力和功力。
相信本系列文章應(yīng)該是全網(wǎng)第一部專門詳細(xì)介紹基于DWC2 USB2.0控制器驅(qū)動開發(fā)的文章,慢慢來,希望和大家一起學(xué)習(xí),從實踐出發(fā)最終能成為USB開發(fā)的大俠。
新思的USB2.0 IP介紹
新思的USB 2.0 IP應(yīng)該是業(yè)界使用得最多的IP解決方案了。市面上很多的量產(chǎn)MCU或者M(jìn)PU都是基于新思的IP,比如各種xxx32的單片等。新思官網(wǎng)可以看到一些信息
https://www.synopsys.com/dw/ipdir.php?ds=dwc_usb_2_0_digital_controllers,但是其手冊等不是直接開放,需要注冊,目前個人注冊好像不太行了。
新思的IP有以下特征:
- 靈活的配置選項,以最大限度地提高性能和最小化CPU中斷,后面我們也會詳細(xì)講到其中斷相關(guān)的內(nèi)容,中斷通過一些bit的組合以標(biāo)志不同的狀態(tài),以減少需要進(jìn)行的判斷邏輯。
- 靈活的參數(shù)可以輕松集成到低延遲和高延遲系統(tǒng)中。
- 基于系統(tǒng)要求的USB數(shù)據(jù)傳輸或事務(wù)處理。
- 可配置的數(shù)據(jù)緩沖選項,以微調(diào)性能/面積的權(quán)衡。
- 緩沖區(qū)和描述符預(yù)取使主機吞吐量最大化。
- 固件可選端點配置,支持后處理應(yīng)用程序更改;以及靈活的單芯片設(shè)計適用于多種應(yīng)用,總之一個詞就是”靈活”,但是后面看規(guī)格書也可以知道確實很復(fù)雜,配置參數(shù)選項很多。
- 通過廣泛的約束隨機驗證進(jìn)行測試,確保高質(zhì)量的IP。
- AMBA?高性能總線(AHB)接口可快速集成到基于arm的設(shè)計中。所以你可以看到各種基于ARM尤其是Cortex-M系列的xxx32的MCU基本都是采用的新思的IP方案。
- UTMI+ Level 3可以與兼容的PHY設(shè)備快速集成。
- 高速high -Speed (480mbps)、全速Full-Speed (12mbps)和低速Low- Speed (1.5 Mbps)的操作符合USB OTG補充標(biāo)準(zhǔn)。
- USB 2.0 HS OTG控制器支持外設(shè)或主機模式。
- 也支持高速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的架構(gòu),信號,配置,寄存器等,有百多頁。供IC設(shè)計,驗證工程師,和驅(qū)動工程師查閱。驅(qū)動開發(fā)要頻繁參考其寄存器部分,要做到每一個寄存器的每一個bit的作用都要了解,我們后面就會一步步參考它進(jìn)行驅(qū)動的編寫。當(dāng)然要成為高手肯定要有很好的內(nèi)力修為,這就需要對其架構(gòu)等其他部分也要熟悉,所以其他部分我們后面也會一起慢慢閱讀消化。
后者是編程指導(dǎo),驅(qū)動編寫主要參考這一部分進(jìn)行,也有五百多頁,這個文檔我們后面也會詳細(xì)的閱讀
如果需要這兩個文檔的可以公眾號留言或者加我微信,可以分享給你,僅供分享學(xué)習(xí)之用。
總結(jié)
這一篇是我們正式進(jìn)入USB驅(qū)動開發(fā)的第一篇, 與其他所有的USB書籍或者文章不一樣,我們一開始不直接講USB協(xié)議, 我們先從具體的USB IP入手,從USB的底層驅(qū)動編寫實踐入手再邊實踐邊了解協(xié)議。理論結(jié)合實踐才是好的方式, 心法招式結(jié)合基本功練習(xí)才有可能練成武功的最高境界,否則就會走火入魔。關(guān)于走火入魔的一個很明顯的表現(xiàn)就是,很多USB驅(qū)動開發(fā)工程師或者嵌入式開發(fā)人員,一上來就在群里論壇里問”求救,xxx了是什么問題,怎么解決”,這一看就是基本功都沒練習(xí)直接就練習(xí)少林七十二絕跡的,基本連USB控制器部分的參考手冊數(shù)據(jù)手冊,USB規(guī)格書都沒怎么閱讀過的,肯定做不好,必定走火入魔,迷失在各種問題里,哪怕是成為調(diào)參俠,調(diào)API俠,調(diào)庫俠,復(fù)制粘貼俠最終也可能遇到各種BUG無法解決而終。我們做開發(fā)尤其是嵌入式開發(fā),驅(qū)動開發(fā),一定要基本功練好,對底層基本原理熟悉,并且經(jīng)過親身實踐,理論結(jié)合實踐才能做好,成為USB江湖一代大俠。
-
usb
+關(guān)注
關(guān)注
60文章
7936瀏覽量
264474 -
USB2.0
+關(guān)注
關(guān)注
2文章
186瀏覽量
46087 -
新思
+關(guān)注
關(guān)注
0文章
20瀏覽量
29848 -
USB驅(qū)動
+關(guān)注
關(guān)注
1文章
136瀏覽量
20191 -
DWC2
+關(guān)注
關(guān)注
0文章
35瀏覽量
125
發(fā)布評論請先 登錄
相關(guān)推薦
評論