新聞中心

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

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

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

  引言

  在基于軟件無線電的某無線通信信號偵收平臺的設(shè)計(jì)中,天線接收到的信號經(jīng)過變頻器處理和A/D變換之后,經(jīng)過高速通道把采集的信號送入主控板進(jìn)行數(shù)據(jù)分發(fā)處理。系統(tǒng)的結(jié)構(gòu)框圖如圖1所示。

主控板的系統(tǒng)結(jié)構(gòu)框圖

圖1 主控板的系統(tǒng)結(jié)構(gòu)框圖

  主控板的硬件核心是微處理器,負(fù)責(zé)系統(tǒng)軟件的加載、數(shù)據(jù)的分發(fā)以及與外界命令控制的交互。軟件上,采用高性能的VxWorks實(shí)時(shí)操作系統(tǒng)。從天線接收到的射頻信號經(jīng)過變頻和A/D變換之后作為數(shù)據(jù)源連接到,對接收到的數(shù)據(jù)進(jìn)行中頻變換和信道估計(jì)等預(yù)處理后,在CPU的控制下將數(shù)據(jù)傳輸?shù)奖镜貎?nèi)存,最后CPU對數(shù)據(jù)打包后進(jìn)行快速分發(fā)。因此,將40~50 Mbps的高速數(shù)據(jù)流從傳給CPU成為系統(tǒng)設(shè)計(jì)的一個(gè)關(guān)鍵。

  如果每傳遞一個(gè)字節(jié)的數(shù)據(jù)都需要CPU的介入,那么不論是采用中斷驅(qū)動(dòng)還是采用程序查詢的方式,數(shù)據(jù)傳輸速率都會很低,無法滿足系統(tǒng)需求。DMA(直接存儲器存?。┖鸵话愕某绦蚩刂苽魉头绞较啾染哂袛?shù)據(jù)傳送速度高、I/O響應(yīng)時(shí)間短和CPU額外開銷小的優(yōu)點(diǎn),因此,選擇DMA的傳輸模式,使FPGA中的數(shù)據(jù)不經(jīng)過CPU內(nèi)部寄存器的中轉(zhuǎn)而直接存放到本地內(nèi)存。支持多種DMA實(shí)現(xiàn)方式,分別適用于不同數(shù)據(jù)傳輸源/目的設(shè)備、不同傳輸數(shù)據(jù)塊大小和存儲模式的需要,因此需要根據(jù)主控板的系統(tǒng)特點(diǎn)設(shè)計(jì)出合適的DMA傳輸接口。

  1 的 DMA系統(tǒng)結(jié)構(gòu)

CPM原理框圖

圖2 CPM原理框圖

  MPC8260是Freescale公司主要針對數(shù)據(jù)通信領(lǐng)域而設(shè)計(jì)的一種PowerPC微處理器,具有雙核結(jié)構(gòu):1個(gè)高性能的MPC603e 64位RISC微處理器內(nèi)核和1個(gè)專為通信設(shè)計(jì)的32位RISC通信處理模塊(Communication Processor Module,CPM)。CPM能夠分擔(dān)PowerPC內(nèi)核大部分的外圍通信任務(wù),其中就包含兩個(gè)DMA控制器,即串行直接存儲器存取通道(Serial Direct Memory Access,SDMA),所以這種雙處理器的體系結(jié)構(gòu)比單處理器具有更強(qiáng)的通信控制功能。CPM的原理框圖如圖2所示。除了PowerPC內(nèi)核和CPM之外,MPC8260還包含一個(gè)靈活的系統(tǒng)接口單元(System Interface Unit,SIU)主要用于控制與外部總線的接口。

  圖2中, CPM內(nèi)除了SDMA模塊以外,還包括通信控制器(Communications Processor,CP)、雙口RAM和一些串行外圍設(shè)備的控制接口等。SDMA和60x總線、本地總線相連,并且可以直接訪問CPM內(nèi)部的雙口RAM。CP利用這兩個(gè)SDMA為每個(gè)外圍串行控制器提供了兩個(gè)虛擬SDMA通道:一個(gè)用于輸入,一個(gè)用于輸出。同時(shí),CPM還用這2個(gè)物理的SDMA通道模擬4個(gè)可編程控制的、獨(dú)立的DMA (Independent DMA,IDMA)通道,用于存儲器—存儲器及外設(shè)—存儲器之間的數(shù)據(jù)傳輸。

  主控板上的FPGA和SDRAM都是掛接在MPC8260的60x總線上的,所以只能利用IDMA來實(shí)現(xiàn)二者之間的DMA傳輸。根據(jù)傳輸啟動(dòng)的觸發(fā)方式不同,IDMA可分為握手信號控制的IDMA傳輸和CP命令控制的IDMA傳輸兩種。下面分別介紹兩種方式的特點(diǎn)。

  1.1 握手信號控制的IDMA傳輸

  握手信號控制的IDMA傳輸主要用于外設(shè)和內(nèi)存之間的數(shù)據(jù)傳輸。每個(gè)IDMA通道都有3個(gè)握手信號用于傳輸握手控制:DMA請求信號DREQ[1~4]、DMA應(yīng)答信號DACK[1~4]和DMA結(jié)束信號DONE[1~4]。

  在這種方式下,PowerPC內(nèi)核只需要參與IDMA通道初始化,之后的傳輸過程全部由CP按照通道參數(shù)設(shè)置和握手信號控制數(shù)據(jù)的收發(fā),在最大程度上釋放內(nèi)核。握手信號控制的缺點(diǎn)在于:① SDRAM中的數(shù)據(jù)和MPC8260的數(shù)據(jù)同步比較復(fù)雜。② 每次發(fā)出請求信號后都要進(jìn)行總線仲裁,并且在得到總線使用權(quán)之后一次只能夠傳輸外設(shè)端口大小或者32位的數(shù)據(jù),總線利用率低。③ 握手控制邏輯和時(shí)序比較復(fù)雜,加重了FPGA內(nèi)部控制邏輯設(shè)計(jì)的負(fù)擔(dān)。

  雖然這種傳輸方式基本上不占用內(nèi)核資源,但是由于總線帶寬有限且利用率較低,所以在連續(xù)高速的通信條件下會造成內(nèi)核長時(shí)間得不到總線使用權(quán)而一直處于等待狀態(tài)。因此,握手信號控制的IDMA一般只適用于由外設(shè)發(fā)起的、數(shù)據(jù)不是太頻繁的傳輸使用。

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

上一頁 1 2 3 下一頁

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

評論


相關(guān)推薦

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

關(guān)閉