關(guān) 閉

新聞中心

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

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

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

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

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

2.JPG



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

3.jpg


圖4(a)所示為一次DMA讀剛剛開始時(shí),DMA狀態(tài)機(jī)翻轉(zhuǎn)。在dma_req為1后,狀態(tài)機(jī)dma_now_st則依次進(jìn)入各個(gè)狀態(tài)。在dma_now_st為狀態(tài)4時(shí),讀出了DMA存儲(chǔ)器的地址0中的數(shù)據(jù)16'h4739,在dma_now-st為狀態(tài)5時(shí),讀出了DMA存儲(chǔ)器的地址1中的數(shù)據(jù)16'hlf0b,之后在dma_now_st為狀態(tài)6時(shí),此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é)尾,此時(shí)DMA存儲(chǔ)器已經(jīng)讀完了地址0~12'h9ff中的所有5 120個(gè)字節(jié)的數(shù)據(jù),dma_now_st在狀態(tài)7中監(jiān)測(cè)到dma_cnt已經(jīng)等于dma_num,所以狀態(tài)機(jī)回到初始狀態(tài)0。

5.jpg


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

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


上一頁 1 2 3 下一頁

評(píng)論


相關(guān)推薦

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

關(guān)閉