關(guān) 閉

新聞中心

EEPW首頁 > 工控自動化 > 設(shè)計應(yīng)用 > 可適應(yīng)多種時序情況的DMA控制器設(shè)計

可適應(yīng)多種時序情況的DMA控制器設(shè)計

作者: 時間:2011-03-18 來源:網(wǎng)絡(luò) 收藏

2.2.2 multiple block read
在該圖像協(xié)處理器中每次multiple block read要從卡讀出10個block數(shù)據(jù)并將其全部寫入存儲器當(dāng)中。當(dāng)處于初始狀態(tài)(狀態(tài)0)的狀態(tài)機發(fā)現(xiàn)dma_req為1且dma_write信號為1時,即明確SD卡將開始寫操作,其將依次進入狀態(tài)1、狀態(tài)2、狀態(tài)3、狀態(tài)4。在狀態(tài)1中,DMA狀態(tài)機會向SD卡發(fā)出dma_ack信號,由于存儲器讀存在延時,SD卡將在此后的第二個時鐘上升沿(即DMA狀態(tài)機在狀態(tài)3時)送出dma_wdata。DMA控制器將dma_wdata暫存一個時鐘周期后,會在狀態(tài)4和狀態(tài)5中把此32位數(shù)據(jù)依次寫入DMA存儲器,dma_memory_addr也將在這兩個狀態(tài)分別加1。在狀態(tài)7中,DMA控制器也將做2個判斷,首先會判斷dma_cnt和dma_num是否相等,若相等說明本次multipleblock read的全部5 120字節(jié)數(shù)據(jù)已經(jīng)寫入DMA存儲器中,DMA狀態(tài)機將回到狀態(tài)0等待下一次DMA操作指令;若不相等,則判斷dma_req是否為1,如果為1則意味著繼續(xù)做本次DMA寫操作,DMA狀態(tài)機也將回到狀態(tài)1,開始下一個32位數(shù)據(jù)的寫入;如果dma_req為0則說明SD卡控制器讀卡的速度較慢,暫時還沒有新的32位數(shù)據(jù)要寫入,DMA狀態(tài)機也將在狀態(tài)7處于等待狀態(tài),直至dma_req再次為1,狀態(tài)機才回到狀態(tài)1,開始寫入下一個32位的數(shù)據(jù)。最后當(dāng)DMA控制器在狀態(tài)7時發(fā)現(xiàn)dma_cnt和dma_num相等,意味這本次DMA操作已經(jīng)完成,SD卡控制器也將向基帶芯片發(fā)出中斷信號,基帶芯片響應(yīng)該中斷后將從DMA存儲器中讀取此5 120字節(jié)數(shù)據(jù)。其寫狀態(tài)流程圖如圖3所示。

本文引用地址:http://www.butianyuan.cn/article/162296.htm

2.JPG



3 仿真結(jié)果
該DMA控制器的核心即為文章第2部分中所述的DMA狀態(tài)機,現(xiàn)將multiple block read和multiple block write的幾個關(guān)鍵的仿真波形顯示如下,dma_now_st則為DMA狀態(tài)機的狀態(tài)變量。

3.jpg


圖4(a)所示為一次DMA讀剛剛開始時,DMA狀態(tài)機翻轉(zhuǎn)。在dma_req為1后,狀態(tài)機dma_now_st則依次進入各個狀態(tài)。在dma_now_st為狀態(tài)4時,讀出了DMA存儲器的地址0中的數(shù)據(jù)16'h4739,在dma_now-st為狀態(tài)5時,讀出了DMA存儲器的地址1中的數(shù)據(jù)16'hlf0b,之后在dma_now_st為狀態(tài)6時,此32位數(shù)據(jù)在dma_rdata端口被送出;
圖4(b)所示的是在一次DMA讀中,SD卡控制器寫卡速度較慢,其暫停DMA讀操作的。在DMA控制器送出地址12'h394和12'h395中的數(shù)據(jù)后,SD卡控制器發(fā)現(xiàn)DMA讀的速度較快,有可能覆蓋還未寫入卡的數(shù)據(jù),所以把dma_req拉低,暫停DMA讀;
圖4(c)所示的是一次DMA讀的結(jié)尾,此時DMA存儲器已經(jīng)讀完了地址0~12'h9ff中的所有5 120個字節(jié)的數(shù)據(jù),dma_now_st在狀態(tài)7中監(jiān)測到dma_cnt已經(jīng)等于dma_num,所以狀態(tài)機回到初始狀態(tài)0。

5.jpg


圖5(a)所示為在一次DMA寫剛剛開始時,DMA狀態(tài)機dma_now_st的工作情況。從圖上可清楚看到當(dāng)dma_now_st處于狀態(tài)4和狀態(tài)5時,DMA控制器將dma_wdata端口數(shù)據(jù)寫入DMA存儲器的地址0和地址1中。
圖5(b)所示為在做DMA寫時,SD卡控制器讀卡速度較慢的情況。當(dāng)SD卡控制器在dma_now_st為狀態(tài)1時送出32位數(shù)據(jù)32'hb944da21后,其發(fā)現(xiàn)已不能在DMA狀態(tài)機的下一個狀態(tài)1時送出新的32位數(shù)據(jù),所以SD卡控制器將dma_req拉低。
圖5(c)所示為一次DMA寫的結(jié)尾,SD卡控制器送出最后一個32位數(shù)據(jù)32'hf83dea95后,已經(jīng)讀出了所有5 120字節(jié)的數(shù)據(jù),所以將dma_req拉低。dma_now-st也在向DMA存儲器的地址12'h9fe和12'h9ff寫完最后兩個16位數(shù)據(jù)后,回到初始狀態(tài)狀態(tài)0,至此一次CMD18命令操作完成。

4 結(jié)束語
隨著消費者對視覺效果的要求越來越高,也必然要求各種移動終端設(shè)備的圖像系統(tǒng)功能越來越豐富,性能越來越高,因此圖像協(xié)處理器的也變得更加重要。在此背景下,處于基帶芯片和SD卡控制器之間的DMA控制器部分將面臨更復(fù)雜的工作環(huán)境和更高的性能要求。這里所述的DMA狀態(tài)機能夠靈活基帶芯片操作可能被打斷、基帶芯片寫DMA存儲器可能與DMA讀相沖突等信號情況,起到了很好的協(xié)調(diào)基帶芯片和SD卡控制器速度的作用,并使基帶芯片和SD卡控制器能夠盡量并行工作,使操作SD卡的速度達到210 kB/s,在實際工作中取得了很好的效果。


上一頁 1 2 3 下一頁

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉