<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
關(guān) 閉

新聞中心

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

可適應多種時(shí)序情況的DMA控制器設計

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

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

本文引用地址:http://dyxdggzs.com/article/162296.htm

2.JPG



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

3.jpg


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

5.jpg


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

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


上一頁(yè) 1 2 3 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>