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