新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于MPC8260處理器和FPGA的DMA接口設(shè)計(jì)

        基于MPC8260處理器和FPGA的DMA接口設(shè)計(jì)

        作者: 時(shí)間:2010-02-06 來源:網(wǎng)絡(luò) 收藏

          1.2 CP命令控制的IDMA傳輸

          的IDMA還可以通過向CP命令寄存器中寫入START_IDMA命令進(jìn)行內(nèi)部觸發(fā)。每次啟動(dòng)傳輸以后PowerPC內(nèi)核就被釋放,傳輸?shù)脑吹刂贰⒛康牡刂泛蛡鬏敂?shù)據(jù)長度等參數(shù)由CP按照在IDMA通道初始化的信息控制執(zhí)行。每次傳輸?shù)淖畲箝L度為4 GB。

          相比握手信號(hào)控制的IDMA傳輸,在這種方式下,PowerPC內(nèi)核除了需要初始化IDMA通道以外還要以命令的形式啟動(dòng)每一次的傳輸,所以要占用多一些的內(nèi)核資源。不過,在一次傳輸啟動(dòng)之后最多可以傳輸4 GB的數(shù)據(jù),所以只要每次傳輸?shù)臄?shù)據(jù)長度比較長,內(nèi)核寫一個(gè)寄存器的額外開銷就完全可以忽略不計(jì)。同時(shí),由于內(nèi)部命令觸發(fā)方式不需要握手信號(hào),不需要頻繁地每幾個(gè)字節(jié)就競(jìng)爭(zhēng)一次總線控制權(quán),所以這種方式的傳輸效率更高、傳輸速度更快。內(nèi)部命令觸發(fā)方式是以空間換時(shí)間——用前端大的緩沖區(qū)來換取傳輸速度的提升。

          考慮到主控板上軟硬件系統(tǒng)的瓶頸都在于總線帶寬,而存儲(chǔ)資源相對(duì)比較豐富,所以選擇CP命令控制的IDMA傳輸作為數(shù)據(jù)流從到SDRAM的傳輸方式。

          2 DMA傳輸方案設(shè)計(jì)

          間的數(shù)據(jù)傳輸接口設(shè)計(jì)如圖3所示。圖中左側(cè),通過16位數(shù)據(jù)線、10位地址線、2根中斷請(qǐng)求線和一些讀寫控制信號(hào)線連接到右側(cè)的。MPC8260通過64位數(shù)據(jù)線與本地內(nèi)存SDRAM相連。

        IDMA傳輸設(shè)計(jì)框圖

        圖3 IDMA傳輸設(shè)計(jì)框圖

          FPGA內(nèi)部分配有兩個(gè)大的存儲(chǔ)空間,用于輪流緩沖從數(shù)據(jù)源接收到的數(shù)據(jù)。任何一個(gè)緩沖區(qū)收滿后,繼續(xù)接收的數(shù)據(jù)保存到下一個(gè)緩沖區(qū),同時(shí)以中斷的方式觸發(fā)MPC8260啟動(dòng)相應(yīng)的IDMA通道把數(shù)據(jù)傳到SDRAM中。IDMA控制、數(shù)據(jù)同步和錯(cuò)誤處理都由MPC8260完成,F(xiàn)PGA只負(fù)責(zé)收發(fā)數(shù)據(jù)和觸發(fā)中斷。下面分別介紹二者的程序設(shè)計(jì)。

          2.1 MPC8260程序設(shè)計(jì)

          MPC8260內(nèi)部的程序處理流程如圖4所示。MPC8260預(yù)先初始化兩個(gè)IDMA通道:通道的源地址和傳輸數(shù)據(jù)長度等信息與FPGA中的緩沖區(qū)一一對(duì)應(yīng)。當(dāng)收到FPGA的中斷信號(hào)之后,如果此時(shí)對(duì)應(yīng)的IDMA通道空閑,則在中斷處理程序中發(fā)出CP命令開始接收數(shù)據(jù),同時(shí)將對(duì)應(yīng)的IDMA通道置忙狀態(tài);否則,在FPGA中可能發(fā)生了未讀取的數(shù)據(jù)被覆蓋的情況,MPC8260進(jìn)入錯(cuò)誤處理程序。在數(shù)據(jù)傳輸結(jié)束時(shí)由DMA控制器發(fā)送CPM內(nèi)部中斷到內(nèi)核,在中斷處理程序中一方面要恢復(fù)IDMA通道的參數(shù)設(shè)置,另一方面要把該IDMA通道置閑狀態(tài)等待下一次傳輸?shù)拈_始。

          MPC8260程序的核心部分是IDMA通道設(shè)置和中斷處理。

        MPC8260傳輸處理流程

        圖4 MPC8260傳輸處理流程

          2.1.1 IDMA通道設(shè)置

          與一般的DMA通道設(shè)置一樣,IDMA通道設(shè)置的主要參數(shù)包括:源地址、目的地址和傳輸數(shù)據(jù)長度。除此之外,MPC8260的 IDMA通道設(shè)置還包括通道模式、緩沖區(qū)和中斷配置等,所涉及的寄存器比較多,配置比較復(fù)雜。IDMA通道設(shè)置的邏輯結(jié)構(gòu)如圖5所示。

        IDMA通道設(shè)置的邏輯結(jié)構(gòu)框圖

        圖5 IDMA通道設(shè)置的邏輯結(jié)構(gòu)框圖

        linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


        關(guān)鍵詞: FPGA MPC8260 嵌入式 DMA接口

        評(píng)論


        相關(guān)推薦

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

        關(guān)閉
        主站蜘蛛池模板: 德化县| 永安市| 四会市| 宜章县| 通渭县| 威宁| 古浪县| 永平县| 江安县| 贵州省| 舞钢市| 大田县| 中牟县| 吉林市| 阿瓦提县| 仪陇县| 丰镇市| 纳雍县| 博野县| 永福县| 崇文区| 奉化市| 三台县| 观塘区| 抚顺县| 无为县| 阳新县| 灌阳县| 楚雄市| 乐至县| 广安市| 湘潭市| 青川县| 莒南县| 崇州市| 繁昌县| 河间市| 金昌市| 谷城县| 洛浦县| 信宜市|