當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式教程
[導(dǎo)讀]基于USB設(shè)備控制器的端點(diǎn)緩沖區(qū)的優(yōu)化設(shè)計(jì)

這里首先簡(jiǎn)要介紹USB中端點(diǎn)的概念,并給出一款異步FIFO的設(shè)計(jì)方案。然后根據(jù)USB四種傳輸類型的特點(diǎn),提出基于該FIFO結(jié)構(gòu)的不同類型的端點(diǎn)緩沖區(qū)的設(shè)計(jì)方案。特別是對(duì)于控制端點(diǎn)提出了一種新型的雙向異步FIFO結(jié)構(gòu),在保證控制傳輸?shù)那疤嵯拢瑴p小了將近1/2的電路面積。最后給出在Synopsys平臺(tái)下電路的VLSL實(shí)現(xiàn)結(jié)果。

USB 2.0規(guī)范將USB接口的傳輸速度提高了40倍。傳輸速度的提升使得USB設(shè)備控制器的設(shè)計(jì)指標(biāo)也隨之提高,雖然協(xié)議中對(duì)于緩沖區(qū)的設(shè)計(jì)要求并沒有本質(zhì)上的改變,但是由于總線帶寬與傳輸速度的提高,各個(gè)芯片供應(yīng)商均推出了自己的緩沖區(qū)設(shè)計(jì)方案。為了提高USB接口的數(shù)據(jù)存取速度,通常使用異步FIFO來(lái)設(shè)計(jì)端點(diǎn)緩沖區(qū)。



1  USB協(xié)議中的端點(diǎn)及實(shí)施方案

1.1 USB設(shè)備的端點(diǎn)

USB主機(jī)和設(shè)備之間傳輸?shù)臄?shù)據(jù)是以信息包的格式來(lái)傳輸?shù)?,可分為令牌包、?shù)據(jù)包、握手包和特殊包。在數(shù)據(jù)包中包括了主機(jī)和設(shè)備通信的數(shù)據(jù)分組。圖1是一個(gè)典型的USB數(shù)據(jù)包的格式。



PID域是為了增加USB通信的健壯性而設(shè)定的數(shù)據(jù)分組的辨識(shí)符;CRC16域是對(duì)數(shù)據(jù)分組進(jìn)行CRC校驗(yàn)的結(jié)果。DATA域是實(shí)際傳送的數(shù)據(jù)內(nèi)容。USB設(shè)備控制器會(huì)將接收到的主機(jī)數(shù)據(jù)包放入指定的端點(diǎn)緩沖區(qū);或者從指定的端點(diǎn)取出待發(fā)送的數(shù)據(jù)組裝成USB信息包發(fā)送到主機(jī)。

由此可見,所謂端點(diǎn)實(shí)際上是主機(jī)與設(shè)備之間通信的來(lái)源或目的,所有的傳輸都要傳送到設(shè)備的端點(diǎn),或是由設(shè)備的端點(diǎn)發(fā)出。一系列相互獨(dú)立的端點(diǎn)在一起就構(gòu)成了USB邏輯設(shè)備。從物理層的角度來(lái)看,端點(diǎn)是一塊存儲(chǔ)器區(qū)域,用以緩沖實(shí)際接收到或待發(fā)送的數(shù)據(jù)包。

USB協(xié)議中定義了四種傳輸類型,分別是控制傳輸、批量傳輸、中斷傳輸和同步傳輸。所有USB設(shè)備控制器都應(yīng)該支持控制傳輸,其他三種傳輸方式根據(jù)不同的應(yīng)用背影而用于不同類型的設(shè)備。按照傳輸類型可將端點(diǎn)分為控制端點(diǎn)、批量端點(diǎn)、中斷端點(diǎn)和同步端點(diǎn)。其中控制端點(diǎn)較為特殊,只有它可以雙向的傳輸數(shù)據(jù),而其他端點(diǎn)只能傳輸單方向的數(shù)據(jù)。

1.2 使用異步FIFO設(shè)計(jì)USB端點(diǎn)

由于USB設(shè)備控制器的緩沖區(qū)空間是對(duì)應(yīng)各個(gè)不同的端點(diǎn)。每個(gè)端點(diǎn)所對(duì)應(yīng)的傳輸方式、傳輸方向也不同。通常控制端點(diǎn)會(huì)連接控制器的MCU單元,而其他類型的端點(diǎn)一般連接設(shè)備端的接口??梢奤SB的端點(diǎn)緩沖區(qū)實(shí)際上是在串行接口引擎時(shí)鐘和設(shè)備時(shí)鐘或MCU時(shí)鐘的兩個(gè)時(shí)鐘域之間傳輸數(shù)據(jù)。而使用異步FIFO來(lái)實(shí)現(xiàn)該結(jié)構(gòu)顯然是一個(gè)不錯(cuò)的選擇。

圖2是本文所采用的異步FIFO的結(jié)構(gòu)框圖。該異步FIFO由一塊雙端口SRAM、寫地址/滿邏輯和讀地址/空邏輯、以及為了消除亞穩(wěn)態(tài)的兩級(jí)同步電路組成。左端口在寫時(shí)鐘下進(jìn)行數(shù)據(jù)的寫入操作;右端口在讀時(shí)鐘下實(shí)現(xiàn)數(shù)據(jù)的讀出操作。



對(duì)于異步FIFO的設(shè)計(jì),產(chǎn)生準(zhǔn)確的空滿標(biāo)準(zhǔn)是設(shè)計(jì)中的核心任務(wù),它與FIFO是否能穩(wěn)定工作息息相關(guān)。寫滿不溢出,讀空不多讀是異步FIFO空滿標(biāo)志判斷的基本原則。傳統(tǒng)的判斷方法是另外設(shè)置一個(gè)狀態(tài)位,作為最高位,其余位作為地址位,當(dāng)讀寫指針的地址位和狀態(tài)位全部吻合時(shí),F(xiàn)IFO處于空狀態(tài);當(dāng)讀寫指針的地址位相同而狀態(tài)位相反,F(xiàn)IFO處于滿狀態(tài)。這種異步FIFO由于是通過(guò)直接比較二進(jìn)制讀寫指針來(lái)判斷滿和空的,在跨時(shí)鐘傳遞時(shí)會(huì)有毛刺產(chǎn)生。下面將介紹一種通過(guò)直接比較格雷碼指針的方法生成FIFO的空滿信號(hào),從而消除了毛刺,提高了電路的穩(wěn)定性。

比如要設(shè)計(jì)一個(gè)深度為8的異步FIFO,需要使用3 b的格雷碼計(jì)數(shù)器對(duì)讀寫指針計(jì)數(shù),與二進(jìn)制類似,還是需要使用一個(gè)狀態(tài)位來(lái)判斷滿和空狀態(tài)。此時(shí)FIFO的格雷碼指針跳變情況如表1所示。



觀察表1可知,當(dāng)讀指針為4’b0011時(shí)(二進(jìn)制為4’b0010),此時(shí)比他多一個(gè)周期所對(duì)應(yīng)的格雷碼為4’b1111(二進(jìn)制為4’b1010)。兩者的高二位恰好相反,但低位完全相同。對(duì)比表1左右兩列可知當(dāng)讀寫指針相差一個(gè)周期即FIFO滿時(shí)對(duì)應(yīng)的格雷碼指針的最高兩位相反,而低位則完全相同;當(dāng)兩者完全相等時(shí)對(duì)應(yīng)為FIFO的空狀態(tài)。圖3給出的是在設(shè)計(jì)的FIFO的深度為8時(shí),在Modelsim中的仿真波形。由圖3可知,當(dāng)FIFO從空到滿時(shí),對(duì)應(yīng)的格雷碼寫指針為4’b1100,而同步后的讀指針為4’b0000;當(dāng)從滿被讀空時(shí),讀指針為4’b1100;由此可見仿真的FIFO的空滿信號(hào)與設(shè)計(jì)一致。

2 基于FIFO結(jié)構(gòu)的優(yōu)化端點(diǎn)設(shè)計(jì)方案

2.1 基于新型FIFO結(jié)構(gòu)設(shè)計(jì)控制端點(diǎn)

上文已經(jīng)論述過(guò)控制端點(diǎn)是一個(gè)雙向傳輸?shù)亩它c(diǎn),但是在同一時(shí)刻只能是單向的數(shù)據(jù)傳輸。該端點(diǎn)主要是用于USB設(shè)備的枚舉過(guò)程,主機(jī)發(fā)送一個(gè)信息包,設(shè)備負(fù)責(zé)回應(yīng)一個(gè)信息包。對(duì)于該端點(diǎn)的設(shè)計(jì)現(xiàn)有的方案都是采用雙FIFO來(lái)實(shí)現(xiàn)雙向傳輸?shù)摹R粋€(gè)FIFO用以接收主機(jī)發(fā)送過(guò)來(lái)的數(shù)據(jù)包;另外一個(gè)FIFO用以向主機(jī)發(fā)送數(shù)據(jù)包。在傳輸數(shù)據(jù)包時(shí)總有一個(gè)FIFO處于空閑狀態(tài),這樣會(huì)造成存儲(chǔ)器資源的浪費(fèi)。為此,本文提出一種新型的異步FIFO結(jié)構(gòu),該結(jié)構(gòu)使用一塊雙端口SRAM來(lái)實(shí)現(xiàn)控制端點(diǎn)的單工雙向傳輸,而傳統(tǒng)的雙FIFO結(jié)構(gòu)需要兩塊SRAM用來(lái)實(shí)現(xiàn)雙向傳輸。由于SRAM占據(jù)了FIFO的大部分面積,在實(shí)現(xiàn)控制傳輸?shù)墓δ芟律儆昧艘粔KSRAM,可以預(yù)見最終的電路實(shí)現(xiàn)面積會(huì)減小將近1/2。

圖4是本文所設(shè)計(jì)的新型異步FIFO結(jié)構(gòu),該FIFO的實(shí)現(xiàn)是基于一塊雙端SRAM。在上文所提到的異步FIFO結(jié)構(gòu)的基礎(chǔ)上增加一套讀寫指針邏輯和滿空判斷標(biāo)志。這個(gè)電路可以看作是原來(lái)電路模塊的復(fù)制,即兩者設(shè)計(jì)完全一致。這兩個(gè)新增的指針模塊用以產(chǎn)生訪問(wèn)SRAM的地址和用以產(chǎn)生滿和空的格雷碼指針。這樣在同一方向?qū)τ赟RAM的訪問(wèn)就會(huì)有兩個(gè)地址,其中一個(gè)是讀地址,另一個(gè)是寫地址。這樣需要設(shè)計(jì)一個(gè)選擇器,用以選擇當(dāng)前訪問(wèn)SRAM的是讀地址或?qū)懙刂?。這個(gè)選擇器的選擇端可以根據(jù)不同方向的讀寫使能信號(hào)來(lái)切換。這是由于在同一時(shí)刻不可能出現(xiàn)一個(gè)方向的讀/寫使能均有效的現(xiàn)象。

對(duì)于圖4的數(shù)據(jù)路徑可簡(jiǎn)介如下,方向0在其寫使能信號(hào)的控制下,往FIFO內(nèi)寫入數(shù)據(jù),寫滿之后方向1控制其讀使能將方向0寫入的數(shù)據(jù)讀出來(lái)。然后方向1控制其寫使能將數(shù)據(jù)寫入雙端口SRAM,方向0負(fù)責(zé)把SRAM內(nèi)的數(shù)據(jù)讀出。

[!--empirenews.page--]
對(duì)于USB的控制端點(diǎn),其接收的最大數(shù)據(jù)包為64 b。故本文設(shè)計(jì)的雙向FIFO使用的sram亦為64 b。使用memory complier生成。圖5是設(shè)計(jì)的雙向FIFO在Modelsim下的仿真波形圖。該波形顯示了方向0寫數(shù)據(jù),方向1讀數(shù)據(jù)和方向1寫數(shù)據(jù),方向0讀數(shù)據(jù)的過(guò)程。



2.2  其他端點(diǎn)的優(yōu)化設(shè)計(jì)

對(duì)于USB設(shè)備控制器的其他端點(diǎn),由于其與控制端點(diǎn)有所不同??刂贫它c(diǎn)是一個(gè)雙向端點(diǎn),而非控制端點(diǎn)單向的傳輸。故對(duì)于非控制端點(diǎn)對(duì)應(yīng)的緩沖區(qū)的容量設(shè)定,應(yīng)使USB的帶寬利用率盡量達(dá)到最高。由于USB規(guī)范中規(guī)定緩沖區(qū)必須有足夠的空間,可以為全(高)速設(shè)備容納一個(gè)時(shí)間片所能傳輸?shù)臄?shù)據(jù)量的兩倍的容量。這樣USB在處理一個(gè)數(shù)據(jù)分組的同時(shí),可以接收下一個(gè)數(shù)據(jù)分組。以此種重疊技術(shù)可以提高總線利用率。如果批量端點(diǎn)的緩沖區(qū)的深度設(shè)計(jì)為1 024 B。就可以得到最大的帶寬利用率。

圖6是其他端點(diǎn)所采用的雙緩沖FIFO方案示意圖。在狀態(tài)1,req0控制訪問(wèn)FIFO0,reql控制訪問(wèn)FIFO1;在狀態(tài)2,req0切換到訪問(wèn)FIFO1,req1切換到訪問(wèn)FIFO0?;陔p緩沖FIFO的設(shè)計(jì)方案可使其他端點(diǎn)的帶寬利用率達(dá)到最高,滿足高速傳輸?shù)男枨蟆?br />


3 電路的ASIC實(shí)現(xiàn)結(jié)果

對(duì)上述設(shè)計(jì)方案采用Verilog硬件描述語(yǔ)言進(jìn)行設(shè)計(jì)。仿真工具為Modelsim SE 6.2b,前仿真通過(guò)后,對(duì)設(shè)計(jì)好的電路使用Design Complier進(jìn)行綜合。綜合所使用的工藝庫(kù)是SMIC 0.18 μm工藝庫(kù)。

對(duì)于控制端點(diǎn),考慮到其主要處在SIE時(shí)鐘和MCU時(shí)鐘之間,對(duì)其所加的時(shí)鐘約束分別為60 MHz和30 MHz;此外還對(duì)傳統(tǒng)的雙緩沖FIFO結(jié)構(gòu)進(jìn)行了綜合,兩者所加約束完全一致。將兩者的電路的綜合結(jié)果對(duì)比如表2所示。



對(duì)比表2可知在保證控制端點(diǎn)功能的前提下,本文所采用的新型FIFO結(jié)構(gòu)比傳統(tǒng)雙FIFO結(jié)構(gòu)在電路的實(shí)現(xiàn)面積方面減小了45.3%。

對(duì)于其他端點(diǎn)所采用的雙緩沖FIFO方案保證了傳輸速度,但卻是以犧牲面積為代價(jià)換來(lái)的。表3給出了批量(Bulk)傳輸端點(diǎn)(兩個(gè)深度為512 B的FIFO)的實(shí)現(xiàn)面積報(bào)告。



4 結(jié)  語(yǔ)

USB設(shè)備控制器端點(diǎn)緩沖區(qū)的性能,直接關(guān)系到總線的帶寬利用率。這里分析了USB的四種傳輸類型并根據(jù)其特點(diǎn)靈活的設(shè)計(jì)了不同的方案,并給出了最終電路的ASIC實(shí)現(xiàn)結(jié)果。特別是針對(duì)控制端點(diǎn)所提出的一種新方案具有一定的通用性,該方案可以應(yīng)用在其他類似場(chǎng)合的設(shè)計(jì)中。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉