基于PSoC5 UDB的DMA傳輸
PSoC5支持24個DMA通道和多達128個事務(wù)描述符(TDs),DMA主控制器對通道的請求按照優(yōu)先級進行仲裁,單個DMA的通道可以傳輸高達64KB的數(shù)據(jù)。DMA通道如圖3所示:
本文引用地址:http://m.butianyuan.cn/article/131359.htm圖3,DMA通道及TDs
2,設(shè)計思路
從圖2可以看出,要訪問SRAM可以通過CPU直接訪問,也可以采用DMA通過Spoke0來訪問。若有外部的并行數(shù)據(jù)(如8bit并行接口)要連續(xù)不斷的寫進SRAM,如圖4所示的應(yīng)用。此時外部數(shù)據(jù)可以通過Spoke1的IO Interface進入PSoC5,也可通過Spoke6的UDB Interface接受后存放在UDB中?! ?/p>
圖4,應(yīng)用需求
本文將介紹通過PSoC5 的UDB 采集數(shù)據(jù)并暫存在datapath的FIFO中, 然后通過DMA搬運到SRAM中的設(shè)計方案。由于外部數(shù)據(jù)是連續(xù)傳輸進PSoC5的,所以在設(shè)計中采用PING-PONG FIFO以保證連續(xù)數(shù)據(jù)不丟失。如下圖5所示采用兩個datapath一共4個FIFO,每個FIFO是4個字節(jié)深度,數(shù)據(jù)將根據(jù)每個FIFO的狀態(tài)依次填入FIFO中,每個FIFO滿之后將啟動DMA將數(shù)據(jù)從FIFO中搬運到SRAM中。系統(tǒng)一開始4 FIFO都為空,OV7670 sensor的數(shù)據(jù)首先存放到FIFO0_0中,填滿4字節(jié)數(shù)據(jù)后FIFO0_0的滿標(biāo)志置1表示FIFO0_0已滿,用該FIFO0_0的滿標(biāo)志觸發(fā)DMA0將數(shù)據(jù)搬運到SRAM中。同時OV7670的數(shù)據(jù)將繼續(xù)暫存到FIFO0_1中,依次類推?! ?/p>
圖5, 數(shù)據(jù)流傳輸示意圖
評論