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