APP下载

Cortex-M4内核微处理器DMA方式的高速A/D采样

2012-06-25刘贯营赵玉荣

单片机与嵌入式系统应用 2012年7期
关键词:复用器数据格式外设

刘贯营,赵玉荣

(安徽理工大学 电气与信息工程学院,淮南 232001)

刘贯营(硕士研究生),主要从事嵌入式系统开发、智能仪器方向的研究;赵玉荣(硕士研究生),主要从事嵌入式系统方向的研究。

1 MK60N512VMD100微处理器简介

MK60N512VMD100芯片是基于Cortex-M4内核的典型芯片,是飞思卡尔Kinetis系列中集成度最高的芯片。Cortex-M4内核是在Cortex-M3内核的基础上发展起来的,其性能比Cortex-M3提高了20%。Cortex-M4在Cortex-M3的基础上强化了运算能力,增加了浮点运算控制器、DSP和并行计算等。MK60N512VMD100具有丰富的通信接口,主频高达100MHz,32路DMA供外设和存储器使用,大大提高了CPU利用率,具有33路单路和4路差分的16位A/D转换器、2路12位D/A转换器等外设。

2 MK60N512VMD100芯片DMA和ADC介绍

Kinetis系列微处理器都含有DMA,在最小的CPU干预下最高可提供32路DMA供外设和存储器使用,大大提高了CPU的利用率。DMA通道复用器(类似多路选择开关)可以把最多63个DMA请求源和16个DMA通道中的任意一个映射到一起。16路独立可选的DMA通道中,前4路还具有自触发功能。DMA复用器有3种工作模式:禁用模式、普通模式和周期触发模式。本文就介绍用周期触发模式实现高速A/D采样功能。

DMA通道复用器除了提供正常的映射功能外,前4个通道还提供了周期触发功能,由周期性中断定时器(PIT)触发,这种机制能够实现在没有CPU的干预下传输字节、帧或数据包。这种触发功能可用于任何支持DMA传输的外设,最常用的应用包括以下两种情况:

①定期轮询一个特定的总线上的外部设备。例如:一个SPI总线作为源被映射到DMA通道0,一旦设置成功,只要SPI的发送缓冲区是空的就会请求DMA传输,从内存中复制数据到缓存。SPI传输通过此通道上的一个触发器每3μs(举例)自动执行一次。在SPI接收端,SPI和DMA可配置成把接收到的数据传到内存,在无需处理器干预的情况下有效地定期从外部设备读取数据送到内存中。

②利用GPIO端口产生或者采样波形。通过配置DMA将数据传送到一个或多个GPIO端口,可以使用存储在存储器中的表格数据产生复杂的波形。相反,使用DMA从一个或多个GPIO端口读取数据,是可以采样到复杂波形的,并把数据存储到内存中。

MK60N512VMD100芯片的ADC模块具有线性逐次逼近算法与高达16位的分辨率,4路差分16位A/D转换和24路单端外部模拟输入。输出模式有差分16位、13位、11位和9位几种模式,单路支持16位、12位、10位和8位模式,并且输出无符号数右对齐格式。

当应用程序需要连续采样时(每秒6 000个采样点),CPU可能会有相当大的负担。虽然使用可编程延迟模块(PDB)可能会减少一些CPU的负载,但是ADC支持DMA请求功能在高速采样时能获得更高的性能,ADC在转换完成后通过DMA中断请求触发DMA。本文就介绍此种方法。

3 软件设计

3.1 DMA周期触发方式相关寄存器的设置

(1)DMA通道配置寄存器(DMAMUX_CHCFGn)

DMA通道配置寄存器(DMAMUX_CHCFGn)数据格式如图1所示。

图1 DMA通道配置寄存器(DMAMUX_CHCFGn)数据格式

bit7(ENBL):DMA通道使能,设置为0则通道禁用,为1则通道使能。

bit6(TRIG):DMA通道触发使能,设置为0则触发禁用,为1则触发使能。

bit(5:0)(SOURCE):DMA通道源。

(2)ADC状态和控制寄存器2(ADCx_SC2)

ADC状态和控制寄存器2(ADCx_SC2)数据格式如图2所示。

bit7(ADACT):转换状态位,当一个A/D转换开始时ADACT被置位,当一个转换完成或中止时ADACT被清零。

图2 ADC状态和控制寄存器2(ADCx_SC2)数据格式

bit2(DMAEN):设置为0则DMA功能禁用,为1时DMA使能。当一个ADC完成时发出ADCDMA请求。

3.2 具体实现

采用DMA的方式有利于提高系统的实时性和执行效率。当A/D转换完成后产生中断;DMA接收一次数据后,设备地址禁止后移;关闭接收一次数据后,目标内存地址后移。设置DMA循环写入模式,BUF写满后,自动回到初始地址开始传输。

示例代码如下:

4 实验及结论

首先将信号发生器输出的正弦波信号直接连接到示波器,调节波形,并选择适当的峰峰值,然后接到采样模拟信号输入引脚,通过串口在PC机上观察接收到的数据。实验证明,用DMA方式来传输模/数转换的值,提高了读取速度和采样频率,同时降低了CPU的负荷,具有很好的应用价值。

[1]闫建国,孙克怡.STM32中采用DMA实现方波的产生和捕获[J].单片机与嵌入式系统应用,2011(10):67-68,71.

[2]孙彦景.基于ARM处理器的HDLC通信的DMA实现[J].单片机与嵌入式系统应用,2007(8):56-58.

[3]刑丽华,高志鹏,袁德殿.基于散列DMA的高速串口驱动设计[J].单片机与嵌入式系统应用,2010(4):40-42.

[4]Freescale.K60Sub-Family Reference Manual,2011.

猜你喜欢

复用器数据格式外设
基于分束器与双向型的光分插复用器分析研究
基于SDH 网络的数字电视平台架构分析
世界首个可记录物体内部结构等复杂信息的3D打印数据格式问世
复用器与遥控设备兼容问题探讨及解决方案
论子函数在C语言数据格式输出中的应用
基于特征库的测井数据格式自动识别与转换方法
Microchip推出具备双ADC外设的全新器件,扩展其低成本8位PIC®单片机产品线
国产ZMUX-2016复用器在KU卫星平台上的试验分析
基于ArcGIS的规划数据格式转换研究
外设天地行情