ARM系統(tǒng)中DMA方式在數(shù)據(jù)采集中的應(yīng)用
1 引言
ARM作為一種16/32位高性能、低成本、低功耗的嵌入式RISC微處理器。普遍應(yīng)用于工業(yè)控制、消費(fèi)類電子產(chǎn)品、通信系統(tǒng)、無線系統(tǒng)等產(chǎn)品。大多數(shù)ARM微控制器都集成了DMA控制器。且直接內(nèi)存存取(DMA)作為一種獨(dú)立于CPU的后臺(tái)批量數(shù)據(jù)傳輸技術(shù),以其快速、高效的特點(diǎn)在數(shù)據(jù)采集領(lǐng)域得到了廣泛的應(yīng)用。本文以三星公司的S3C2410為例,介紹了其內(nèi)部DMA控制器的特點(diǎn)和使用方法.以S3C2410和FPGA為核心結(jié)合DMA技術(shù)設(shè)計(jì)了CCD相機(jī)采集系統(tǒng),并且給出Linux操作系統(tǒng)下DMA設(shè)備驅(qū)動(dòng)程序的設(shè)計(jì)方法。
2 DMA工作過程簡(jiǎn)介
S3C2410是基于ARM920T內(nèi)核的RISC微處理器.主頻可達(dá)203 MHz,適用于信息家電、手持設(shè)備、移動(dòng)終端等領(lǐng)域。S3C2410可提供4個(gè)DMA通道.用于系統(tǒng)總線內(nèi)部或與外圍總線之間的數(shù)據(jù)交換?,F(xiàn)以外部DMA請(qǐng)求為例簡(jiǎn)要介紹DMA的工作過程。圖1所示為DMA基本工作時(shí)序。
圖1 DMA基本工作時(shí)序圖
當(dāng)需要進(jìn)行DMA操作時(shí),外部DMA請(qǐng)求引腳XnXDREQ置為低電平。此時(shí)DMA控制器向CPU發(fā)出占用總線的請(qǐng)求,當(dāng)總線請(qǐng)求成功后,XnXDACK引腳變?yōu)榈碗娖剑硎綜PU已經(jīng)將總線使用權(quán)交給DMA控制器,可以進(jìn)行數(shù)據(jù)傳輸。當(dāng)數(shù)據(jù)傳輸完成后應(yīng)答信號(hào)XnXDACK置為高電平,通知CPU完成一次DMA操作。
S3C2410提供了3種不同的DMA操作模式,分別是單服務(wù)命令模式、單服務(wù)握手模式和全服務(wù)握手模式。在利用DMA進(jìn)行數(shù)據(jù)傳輸前必須對(duì)其相關(guān)寄存器進(jìn)行設(shè)置。主要有:源地址寄存器、目的地址寄存器和各自的控制寄存器,以及配置DMA模式的控制寄存器等。
3 采集系統(tǒng)硬件設(shè)計(jì)
根據(jù)DMA的特點(diǎn),設(shè)計(jì)了基于ARM和FPGA的CCD相機(jī)采集系統(tǒng)。系統(tǒng)結(jié)構(gòu)如圖2所示。
FPGA選用Altera公司的Cyclone系列器件EP1C6T144C8,可為CCD相機(jī)提供工作所需的驅(qū)動(dòng)時(shí)序.同時(shí)接收經(jīng)模數(shù)轉(zhuǎn)換的CCD輸出圖像數(shù)據(jù)。S3C2410通過DMA方式從FPGA內(nèi)部采集數(shù)據(jù),通過數(shù)據(jù)線、DMA信號(hào)線、片選信號(hào)和輸出時(shí)鐘線與FPGA相連。
評(píng)論