<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>

新聞中心

EEPW首頁(yè) > 模擬技術(shù) > 設計應用 > 適應多種時(shí)序的DMA控制器設計

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

作者: 時(shí)間:2012-03-14 來(lái)源:網(wǎng)絡(luò ) 收藏
斷,從 JPEG_MEM中讀出JPEG格式圖片,存入片外的存儲器中。經(jīng)實(shí)際測試可知,基帶芯片做一次EMI讀取大約需要時(shí)間250 ns,因為EMI數據線(xiàn)寬度為16位,所以在此250 ns內基帶芯片將從JPEG_MEM中讀出2個(gè)字節,這樣讀完所有15 360個(gè)字節需要15 360x250/2=1.92 ms。在基帶芯片讀取JPEG數據之前,其將最后一部分預覽數據讀出并送LCD顯示也需要1 ms左右,至此每幀圖像70 ms的幀消隱時(shí)間在基帶芯片讀完JPEG數據后還剩余70-1-1.92=67.08 ms。

  當基帶芯片讀完JPEG數據后,將立即準備將數據寫(xiě)入SD卡中。其首先將操作文件鏈表,在SD卡上為即將寫(xiě)入的JPEG圖片分配相應空間,并將這些空間的原內容擦除。因為在寫(xiě)卡和擦卡之后,SD卡需要過(guò)一定時(shí)間后才能接受新的命令,所以操作文件鏈表和擦卡比較耗時(shí)間,一般需要15 ms左右。在此之后,為了提高寫(xiě)卡速度,基帶芯片先將一部分數據(如512字節)利用寫(xiě)入存儲器中,這需要的時(shí)間為250 nsx512/2=0.064 ms,然后配置SD卡向SD卡發(fā)出CMD25(multiply block write conlluand)命令?;鶐酒O置每個(gè)CMD25向卡寫(xiě)入10個(gè)block數據。在接收到SD卡發(fā)回的響應后,SD卡將利用接口從 存儲器中讀出圖像數據并同時(shí)將數據寫(xiě)入SD卡中。在SD卡控制器寫(xiě)卡的同時(shí),基帶芯片將剩余的9個(gè)block數據寫(xiě)入DMA存儲器。SD卡的時(shí)鐘頻率為24 MHz,為其工作在4根數據線(xiàn)模式時(shí),其傳送完所有5 120字節的數據只需要42nsx2x5120=0.43 ms。但是基帶芯片寫(xiě)完剩余的9個(gè)block需要250nsx512x9/2=0.576 ms>0.43 ms,所以從基帶芯片寫(xiě)第1個(gè)block開(kāi)始到SD卡控制器把最后一個(gè)block寫(xiě)入SD卡大約需要時(shí)間為 0.064+0.576+0.045=0.685 ms。在此之后,SD卡將進(jìn)入編程狀態(tài)(programming狀態(tài)),這段時(shí)間因卡而異,在實(shí)際調試中使用的卡一般編程狀態(tài)會(huì )持續5 ms左右。至此基帶芯片完成一次5 120字節的寫(xiě)卡需要時(shí)間為:15+0.685+5=20.685ms。如前所述每幅JPEG壓縮后的320x240的圖片大約為15360字節,即30 個(gè)block,所以寫(xiě)完一幅圖片需要的總時(shí)間約為3x20.685=62.055ms,其小于前面計算的67.08ms,所以基帶芯片和SD卡控制器可以在每幀圖像的幀消隱時(shí)間內完成寫(xiě)卡操作。

  2 DMA控制器的實(shí)現

  2.1 DMA控制器接口

  為了更準確地描述該DMA控制器的工作流程,其主要接口信號介紹如下。DMA控制器與3部分邏輯的接口為:基帶芯片的EMI接口、DMA存儲器接口、SD卡控制器。

  1)與基帶芯片的接口 這個(gè)接口中,與該DMA控制器關(guān)系最密切的信號是host_dma_wr,其為基帶芯片送給DMA存儲器的寫(xiě)信號,這個(gè)信號低電平有效。

  2)DMA存儲器接口 dma_memory_addr為DMA存儲器的地址信號。為了能夠保存10個(gè)block的數據,DMA存儲器的容量為2560x16=5120字節,所以dma_memory_addr的位寬為12位;drag_memory_datain為DMA存儲器的數據輸入端口,位寬為16 位;dma_memory_dataout為DMA存儲器的數據輸出端口,位寬為16位;dma_memory_wen為DMA存儲器的寫(xiě)使能信號,低電平有效。

  3)SD卡控制器接口 dma_req是SD卡控制器發(fā)出的DMA請求信號,高電平有效。其為DMA控制器做速度協(xié)調的重要信號,如果其為高則表示SD卡控制器要求與DMA存儲器做DMA傳送;如果該信號被置低,可能存在兩種情況,①可能是本次DMA傳送已經(jīng)完成,②可能是SD卡控制器的讀或寫(xiě)卡速度低于其操作DMA存儲器的速度,所以SD卡控制器暫停DMA操作;dma_write是SD卡控制器發(fā)出的DMA寫(xiě)標志信號。如果其為1表示SD卡控制器在做讀卡操作,并準備將讀出的數據寫(xiě)入DMA存儲器;如果其為0表示SD卡控制器在做寫(xiě)卡操作,并準備從DMA存儲器中讀取數據;dma_ ack是DMA控制器發(fā)給SD卡控制器的應答信號,其相當于DMA傳輸數據的有效信號;dma_rdata是DMA讀模式的數據輸出端口,位寬為32 位;dma_ wdata是DMA寫(xiě)模式的數據輸入端口,位寬為32位。

  2.2 DMA控制器的工作流程

  為了使DMA控制器能更靈活地適應各種操作情況并很好的完成2個(gè)操作源(基帶芯片、SD卡控制器)的速度匹配功能。下面將分別就multi-ple block write命令(CMD25)和multiple block read命令(CMD18)對該狀態(tài)機的工作流程進(jìn)行說(shuō)明。

  先將狀態(tài)機中的幾個(gè)重要變量做如下說(shuō)明:

  dma_num表示在一次多block讀(CMD18)或寫(xiě)(CMD25)操作中,要向卡寫(xiě)入或讀出多少個(gè)字節的數據。在該圖像協(xié)處理器中,每次讀或寫(xiě)卡都要操作10個(gè)block數據,所以dma_num將被設置為5 120;

  dma_in_cnt表示在一次多block寫(xiě)卡操作中,基帶芯片已經(jīng)向DMA存儲器中



關(guān)鍵詞: 時(shí)序 DMA 控制器

評論


相關(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>