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