當(dāng)前位置:首頁 > 智能硬件 > 智能硬件
[導(dǎo)讀]引言  隨著USB2.0規(guī)范的推出,USB總線的最高數(shù)據(jù)傳輸速率可達(dá)到480Mbit/s,這進(jìn)一步延伸了它的使用范圍,越來越多的設(shè)計(jì)者在設(shè)計(jì)嵌入式系統(tǒng)或者計(jì)算機(jī)外圍設(shè)備時(shí)開始采用USB總線進(jìn)行數(shù)據(jù)傳輸,為了保證高的數(shù)據(jù)傳輸

引言

  隨著USB2.0規(guī)范的推出,USB總線的最高數(shù)據(jù)傳輸速率可達(dá)到480Mbit/s,這進(jìn)一步延伸了它的使用范圍,越來越多的設(shè)計(jì)者在設(shè)計(jì)嵌入式系統(tǒng)或者計(jì)算機(jī)外圍設(shè)備時(shí)開始采用USB總線進(jìn)行數(shù)據(jù)傳輸,為了保證高的數(shù)據(jù)傳輸速率,許多USB接口芯片提供了直接存儲(chǔ)器存取(DMA)方式,通過使用DMA方式,能使大量數(shù)據(jù)在計(jì)算機(jī)外圍設(shè)備與USB接口芯片之間直接傳輸,從而保證USB總線上數(shù)據(jù)的吞吐量。本文以Philips公司(現(xiàn)獨(dú)立為NXP公司)的ISP1581USB接口芯片為例,介紹USB接口芯片的DMA傳輸應(yīng)用。
硬件電路設(shè)計(jì)

  ISP1581是USB2.0接口芯片,它有7個(gè)IN端點(diǎn),7個(gè)OUT端點(diǎn)和1個(gè)固定的控制IN/OUT端點(diǎn),內(nèi)部集成8K字節(jié)的多結(jié)構(gòu)FIFO 存儲(chǔ)器,特別是它有一個(gè)靈活的高速DMA接口,大大增加了數(shù)據(jù)的吞吐量,其內(nèi)部DMA組成框圖如圖1所示。

圖1  ISP1581DMA組成框圖

  DMA硬件由DMA接口及DMA控制器組成,通過初始化DMA相關(guān)寄存器及發(fā)送DMA命令可以選擇DMA的工作方式,即兩字節(jié)的通用DMA傳輸或者三字節(jié)的IDE規(guī)范傳輸,本文主要介紹通用DMA的應(yīng)用,通用DMA有兩種工作方式,即主機(jī)DMA(MDMA)和從機(jī)DMA(GDMA)方式,MDMA時(shí)芯片內(nèi)的DMA控制器作為主控方,由它產(chǎn)生DMA傳輸需要的控制時(shí)序,GDMA時(shí),需要在外部單獨(dú)設(shè)計(jì)一個(gè)DMA控制器(外設(shè)DMA控制器)并作為主控方,并由它產(chǎn)生傳輸所需控制時(shí)序。由于DMA控制器和USB 內(nèi)核使用的是同一個(gè)FIFO(內(nèi)部RAM),所以DMA 控制器接收到DMA命令后,可直接控制數(shù)據(jù)從內(nèi)部RAM傳送到外部DMA設(shè)備或從外部DMA設(shè)備傳送到內(nèi)部RAM。圖1中各信號(hào)的含意如下:

D0~D15:DMA傳輸數(shù)據(jù)線,雙向。
DREQ:DMA請求信號(hào),GDMA時(shí)輸出,MDMA時(shí)輸入。
DACK:DMA應(yīng)答信號(hào),GDMA時(shí)輸入,MDMA時(shí)輸出。
DIOR:DMA讀信號(hào),GDMA時(shí)輸入,MDMA時(shí)輸出。
DIOW:DMA寫信號(hào),GDMA時(shí)輸入,MDMA時(shí)輸出。
EOT:GDMA傳送終止信號(hào),輸入,主要用在GDMA方式。

  其它信號(hào)主要用在IDE規(guī)范傳輸中,在此不作介紹。由于GDMA方式數(shù)據(jù)傳輸速度更高且使用靈活,所以下面主要介紹GDMA的應(yīng)用。

圖2  DMA從機(jī)方式應(yīng)用原理框圖

  圖2是GDMA應(yīng)用框圖,是某自動(dòng)測試設(shè)備數(shù)字I/O板的一部分,圖中 ISP1581外接單片機(jī)(AT89C55)作為控制器,單片機(jī)同時(shí)也是該板的控制核心,存儲(chǔ)器選用256K×18bit雙口RAM(IDT70V631),ISP1581采用GDMA方式讀寫該雙口RAM,外設(shè)DMA控制器在可編程器件FPGA中實(shí)現(xiàn)。

  系統(tǒng)的工作過程是:當(dāng)主控計(jì)算機(jī)需要和數(shù)字I/O板大批量交換數(shù)據(jù)時(shí),向ISP1581發(fā)出批量傳輸命令,批量傳輸命令中包含了數(shù)據(jù)的傳輸方向,數(shù)據(jù)個(gè)數(shù)等信息,ISP1581接收到命令后,通過中斷方式通知單片機(jī)中的固件讀取該命令,固件完成對DMA的初始化,如選擇DMA端點(diǎn),初始化DMA計(jì)數(shù)器,發(fā)送DMA命令等,ISP1581內(nèi)部的DMA控制器在準(zhǔn)備好后,將發(fā)出DREQ信號(hào)給外設(shè)DMA控制器,外設(shè)DMA控制器接收到DREQ信號(hào)后,做好數(shù)據(jù)傳輸準(zhǔn)備,回應(yīng)一個(gè)DACK信號(hào),然后產(chǎn)生DIOR或者DIOW完成DMA傳輸。

  外設(shè)DMA控制器是在FPGA中完成設(shè)計(jì)的,要正確設(shè)計(jì)GDMA控制器必需了解GDMA模式的工作時(shí)序(見圖3)。圖中已經(jīng)初始化DREQ高有效,DACK低有效,DIOR和DIOW低有效,Tcy1為DMA讀寫周期,最快為12.8MHz,本設(shè)計(jì)使用10MHz。Tsu3為DIOR/DIOW有效前的DACK建立時(shí)間,最小可以為0。

圖3 GDMA從機(jī)模式時(shí)序

  外設(shè)DMA控制器電路設(shè)計(jì)如圖4所示,當(dāng)固件對ISP1581完成初始化并發(fā)出DMA傳輸命令后,ISP1581內(nèi)部的DMA控制器在準(zhǔn)備好傳輸后發(fā)出DREQ信號(hào)(高電平),對該信號(hào)反相后可作為DACK信號(hào)(低電平),圖中R/信號(hào)為DMA讀寫控制信號(hào),可以由固件控制產(chǎn)生,該信號(hào)和DACK及10MHz時(shí)鐘信號(hào)相或后產(chǎn)生DIOR及DIOW信號(hào)。例如GDMA工作于寫方式,數(shù)據(jù)從ISP1581內(nèi)部RAM傳送到外部雙口RAM,控制器在接收到有效的DREQ信號(hào)后,經(jīng)過反相,作為DACK信號(hào)回應(yīng)ISP1581的DMA控制器,這時(shí)候固件通過控制R/W為高,該信號(hào)反相后與DACK及10MHz時(shí)鐘相或產(chǎn)生DIOR,控制數(shù)據(jù)從內(nèi)部RAM傳送到外部雙口RAM。雙口RAM的控制信號(hào)及地址產(chǎn)生電路設(shè)計(jì)較為簡單,可以結(jié)合DIOR及DIOW信號(hào)來產(chǎn)生。

圖4  DMA控制電路圖

軟件設(shè)計(jì)

  USB固件中實(shí)現(xiàn)DMA傳輸?shù)南嚓P(guān)程序包括初始化程序及傳輸控制程序,其信息處理流程如圖5所示。

  首先對DMA進(jìn)行初始化,即設(shè)置一系列相關(guān)寄存器:DMA配置寄存器、DMA硬件寄存器、DMA中斷使能寄存器、DMA中斷源寄存器、DMA端點(diǎn)寄存器、DMA傳輸計(jì)數(shù)器寄存器、DMA命令寄存器等,初始化程序如下:

void DMA_Init(void)
{
//GDMA
D14_Cntrl_Reg.D14_D MA_COMMAND=0x11; //DMA復(fù)位
//設(shè)置DMA配置寄存器
//GDMA,16bit數(shù)據(jù),DIOR/DIOW有效,允許DMA計(jì)數(shù)器,DREQ一直保持到傳完數(shù)據(jù)
D14_Cntrl_Reg.D14_GDMA _CONFIG.VALUE=0x01;
D14_Cntrl_Reg.D14_UDM A_CONFIG.VALUE=0;
//設(shè)置DMA硬件寄存器
//DIOR/DIOW低電平有效,DREQ高電平有效,DACK低有效,GDMA從機(jī)方式,EOT低有效,正常數(shù)據(jù)
D14_Cntrl_Reg.D14_DMA _HARDWARE.VALUE=0x04;
//設(shè)置DMA中斷使能寄存器
//DMA傳輸計(jì)數(shù)器為零中斷,檢測到一個(gè)外部或者內(nèi)部EOT中斷
D14_Cntrl_Reg.D14_DMA_INT_E NABLE.VALUE=0x000d;
}

  初始化完成后,接收PC機(jī)發(fā)來的DMA傳輸命令,該命令包含了數(shù)據(jù)的傳輸方向,數(shù)據(jù)個(gè)數(shù)等信息,然后設(shè)置DMA傳輸標(biāo)志,主程序在檢測到該標(biāo)志后,調(diào)用DMA傳輸子程序,在該子程序中,根據(jù)DMA傳輸方向情況分別進(jìn)行DMA讀寫處理,在發(fā)出DMA讀或者寫命令前還需要對DMA端點(diǎn)寄存器、DMA傳輸計(jì)數(shù)器寄存器進(jìn)行初始化,完成這些工作后,ISP1581DMA控制器將向外設(shè)DMA控制器發(fā)送DMA傳輸請求信號(hào)DREQ,外設(shè)在準(zhǔn)備好傳輸后,返回應(yīng)答信號(hào)DACK,然后啟動(dòng)外設(shè)DMA控制器開始DMA傳輸,一次DMA傳輸最大1024個(gè)字節(jié),一次是否傳輸完成通過檢測DMA中斷寄存器的標(biāo)志位DMA_XFER_OK及EXT_EOT進(jìn)行判斷,DMA_XFER_OK為1,表明DMA傳輸結(jié)束,EXT_EOT是強(qiáng)行結(jié)束GDMA傳輸?shù)耐獠啃盘?hào),本設(shè)計(jì)沒有使用,已經(jīng)固定接為高電平(無效狀態(tài)),如果需要傳輸?shù)臄?shù)據(jù)大于1024字節(jié),則需要多次傳輸才能完成,在傳輸完成后清除DMA傳輸標(biāo)志。

圖5  GDMA固件信息處理流程圖

結(jié)語

  通過采用DMA傳輸方式,USB在傳輸不大于1024字節(jié)數(shù)據(jù)時(shí)傳輸速度達(dá)到10M字/秒,但當(dāng)需要傳輸?shù)臄?shù)據(jù)遠(yuǎn)大于1024字節(jié)時(shí),由于DMA傳輸需要固件支持,實(shí)際的傳輸速度有所下降,設(shè)計(jì)中可以通過提高單片機(jī)的工作時(shí)鐘來改善USB的傳輸速度。本設(shè)計(jì)已經(jīng)成功應(yīng)用到某測試設(shè)備中,提高了系統(tǒng)的數(shù)據(jù)傳輸速度,達(dá)到設(shè)計(jì)要求。

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

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

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

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

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

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

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

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

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

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

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

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

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

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

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

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

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

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