由AT91 M55800A构成的简易数据采集方案

2007-11-01 11:31:58来源: 电子工程师

0 引 言

在计算机测量、控制及信号处理中,数据采集发挥着至关重要的作用。数据采集是获取数据的重要手段,它是从传感器或其他待测设备等模拟或数字被测单元中自动采集信息的过程。而采用ARM内部的A/D转换资源,具有转换速度较高、工作可靠、设计的复杂度较低等优点。同时,ARM还具有体积小、运算速度高,A/D转换分辨率较高的特性,使ARM得到了广泛的应用。本文利用ATMEL公司ARM7系列中的AT91M55800A设计了一个简易的数据采集方案。该方案具有结构简单、开发容易,可靠性强、价格低廉等特点,有一定的实用价值。

1 数据采集方案的结构和功能

方案结构如图1所示。

该方案是由接收、A/D转换和处理、输出3部分组成。本方案以AT91M55800A为核心,该芯片是一个高性能的32位处理芯片,内部有一个8选1的模拟通道,一个10位的A/D转换通道。预处理电路将传感器拾取的信号进行隔离放大和滤波至A/D转换所需0~3 V,处理过的模拟信号通过AT91M55800A中的A/D转换通道变成数字信号,并根据要求进行相应的处理,最后由液晶显示器输出。同时,本方案使用Flash存储器作为程序存储器用于保存数据。

2 硬件组成

AT91M55800A是ATMEL公司基于ARM7TDMI核的AT91的16/32位微控制器家族成员。它通过完全可编程的外部总线接口直接连到片外存储器,使读或写操作最快可以达到一个时钟周期,通过将带有片内SRAM的ARM7TDMI处理器核、多种外围功能模块、模拟接口和低功耗振荡器集成于单一硅片。AT91M55800A为低功耗应用提供了一个高度灵活和高性价比的解决方案。其主要特点如下:

a)集成了ARM7TDMI ARM Thumb处理器核,高性能的32位RISC体系结构,高代码密度的16位指令集,嵌入式ICE;

b)8 kB片内SRAM,32位数据总线宽度,单时钟周期访问,方案可最大扩展64 MB存储器,软件可编程的8位或16位外部数据总线;

c)主/从式SPI接口,8位~16位可编程数据长度,4个外部从芯片选择;

d)可编程的看门狗电路,提高方案的安全可靠性;

e)58个可编程I/O口线,扩展了输入输出口线;

f)先进电源管理控制器,具有正常、等待、慢速、待机和掉电方式;

g)8优先级、可单独屏蔽的向量中断控制器,6通道16位定时器/计数器,3个USART,每个USART有2个专用的PDC通道;

h)8通道10位A/D转换器,2通道10位D/A转换器;

i) 采用片内主振荡器和PLL倍频的时钟产生器,采用片内32 kHz振荡器的实时时钟。

图2为方案的实际应用电路。


该芯片中含有两个完全相同的4通道10位A/D转换器,可组成一个8通道10位A/D转换器。每个A/D转换器具有4个模拟输入引脚和数字触发输入引脚,并提供一个AIC的中断信号。两个A/D转换器共享模拟电源引脚和参考电压输入引脚。每一个通道可被单独地使能或禁止,并具有自己的数据寄存器。A/D转换器可以配置为在转换序列后自动进入睡眠
模式,并可由软件、T/D或外部信号来触发。

由于AT91M55800A内部不带片内程序存储器,需要对方案外扩[1] Flash存储器作为程序存储器用于存放程序代码、常量表及掉电后需要保存的数据。AT91M55800A的总线读写周期最长可以有8个周期的延时,要求Flash存储器的最低读速度不低于该速度。考虑到方案的执行速度和程序大小,选用访问速度为70 ns的HY29LV160(芯片容量是1 M×16 bit共2 MB),基本上能够满足方案要求。

该系统中接入AD590[2]作为温度传感器,该器件以电流作为输出量来指示温度,并且将得到的信号经过放大器的缓冲隔离得到一个与温度成正比的电压,从而实现对温度的测量。

3 A/D转换编程

在AT91M55800A中,两个A/D转换器独立工作,每个A/D转换器只能读取一个通道的A/D转换器值。此程序让用户指定哪一个通道工作,然后读取指定通道的值,并显示出来。由于A/D转换器的精度有10位和8位,这里设置为10位,因此获得的数据范围在0~3FF之间。

A/D转换器的工作过程不同于一般的外围设备。初始化后,必须有一个触发命令高速A/D转换器进行采集,此时A/D转换器对其激活的某一个通道上的模拟信号进行采样、保持,然后转换成数据,存储在数据寄存器中。用户可以从状态寄存器中了解到A/D转换器是否已经转换完成,然后通过读取数据寄存器得到A/D转换后的数值。

A/D转换程序流程图见图3。

对A/D转换器进行编程,使用AT91库(在/pe-riph/adc目录下),与A/D转换器相关的代码部分[3]如下:

a)adc.h:A/D转换器用户接口结构定义StructADC、控制寄存器ADC-CR、模式寄存器ADC-MR和其他一些重要寄存器的各个重要位的定义、A/D转换器中断服务程序函数定义。

b)Lid_adc.h:A/D转换器描述符定义、库函数的定义。

e)Lid_adc.c:库函数的详细代码。包括:初始化ADC at91_adc_open、关闭ADC at91_adc_close、获得状态寄存器的值at91_adc_get_status、设置控制寄存器的值at91_adc_trig_cmd、读取A/D转换的值at91_adc_read、打开指定的A/D转换通道at91_adc_channel_open、关闭指定的A/D转换通道at91_adc_channel_close、获取通道开和关的状态at91_adc_channel_geI_status等。

4 结束语

本文介绍了一个基于ARM7的数据采集方案。该方案通过硬件的具体设计和软件编程实现了预期的目标。利用ARM进行数据采集可以使方案更稳定,而且可以达到功耗小、性能高的效果,适合在多种工业场合中应用。

关键字:周期  振荡  编程  寄存

编辑:金海 引用地址:http://www.eeworld.com.cn/gykz/xxcl/200711/2950.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
周期
振荡
编程
寄存

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved