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通道.用于系统总线内部或与外围总线之间的数据交换。现以外部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相连。
评论