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

发布者:世界因你而精彩最新更新时间:2007-11-01 来源: 电子工程师关键字:周期  振荡  编程  寄存 手机看文章 扫描二维码
随时随地手机看文章

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进行数据采集可以使方案更稳定,而且可以达到功耗小、性能高的效果,适合在多种工业场合中应用。

关键字:周期  振荡  编程  寄存 引用地址:由AT91 M55800A构成的简易数据采集方案

上一篇:基于CPLD的时间控制器设计
下一篇:铁电存储器在多CPU自动识别控制系统中的应用

推荐阅读最新更新时间:2024-05-13 18:39

TMS320C32 DSP的中断编程方法
  TMS320C3X系列芯片是美国TI公司推出的第一代浮点DSP芯片,具有丰富的指令集、很高的运算速度、较大的录址空间和较高的性价比,在各领域得到了广泛的应用。TMS320C32是TMS320系列浮点数字信号处理器的新产品,在TMS320C30和TMS320C31的基础上进行了简化和改进。在结构上的改进主要包括可变宽度的存储器接口、更快速的指令周期时间、可设置优先级的双通道DMA处理器、灵活的引导程序装入方式、可重新定位的中断向量表以及可选的边缘/电平触发中断方式等。对TMS320C32的开发可以用汇编语言,也可以用C语言。使用汇编语言的优点在于运行速度快、可以充分利用芯片的硬件特性,但开发速度较慢,程序的可读性差;而C语言的优
[嵌入式]
利用AD7616灵活的可编程序列器和突发模式实现准同步采样
作者:Ken Ye、Kerwin Yu和Aidan Frost 来源 : ADI 简介 AD7616是一款16位、具有双采样保持通道同步采样能力,成本和性能经过优化的2 × 8通道模数转换器(ADC),。双采保的ADC架构使得AD7616可以对16通道中的两个模拟通道进行同时采样。 这一功能对于电力应用来讲,可以用来对一对电压和电流通道进行同时采样,以便降低这一对输入之间的相位误差。 然而,在三相电力测量系统中,如果只有两个采保通道还不足以对六个模拟通道同时进行采样。在做三相功率计算的时候,三相电压电流的信号采样值由于非同时采样的原因会造成一定的相位角度误差而引起三相功率误差变大,而且这样的误差很难通过软件精确补偿
[模拟电子]
利用AD7616灵活的可<font color='red'>编程</font>序列器和突发模式实现准同步采样
单片机的特殊功能寄存器结构原理分析
    我们已知单片机的内部有ROM、有RAM、有并行I/O口,那么,除了这些东西之外,单片机内部究竟还有些什么,这些个零碎的东西怎么连在一起的,让我们来对单片机内部的寄存器作一个完整的功能分析吧!       下图中我们能看出,在51单片机内部有一个CPU用来运算、控制,有四个并行I/O口,分别是P0、P1、P2、P3,有ROM,用来存放程序,有RAM,用来存放中间结果,此外还有定时/计数器,串行I/O口,中断系统,以及一个内部的时钟电路。在一个51单片机的内部包含了这么多的东西。 单片机内部结构图       对上面的图进行进一步的分析,我们已知,对并行I/O口的读写只要将数据送入到对应I/O口的锁存器就能了,那么对于
[单片机]
单片机的特殊功能<font color='red'>寄存</font>器结构原理分析
STM32的操作过程,寄存器配置与调试过程
很多学习stm32的,为什么学习stm32他也不知道,我们所知道的就是各个论坛讨论stm32的很多,而我们很多人之所以学习stm32是很多的淘宝卖家做了大量的图片文字宣传,于是我们经不住诱惑就买了板子,然后我们就开始了我们的学习之旅。 在淘宝卖家的眼里有着齐全的入门资料是板子的最大的卖点,于是当我们拿到开发板的时候,我们感觉我们永远不能和别人说自己熟悉stm32,因为脱离了网络的资料我们什么都做不了,这是我们最害怕的事情。 今天我就就像在这里记录下自己一无所有建立stm32工程的过程,是我自己的一个探索过程,同时也是大家互相交流的过程。 第一步:当然是新建一个工程我把它命名为small(这个随便你,青菜萝卜各有所爱……)
[单片机]
STM32的操作过程,<font color='red'>寄存</font>器配置与调试过程
研华推出首款RISC工业级可编程人机界面
研华科技,2014年2月——研华推出WebOP-3000T系列工业级可编程人机界面是研华首款基于RISC开放式平台产品,近日其通过了UL508工业控制设备安全标准之规范,也代表着该系列产品在安全性能上能给予用户最可靠的保障。凡是取得UL508安全认证的工业级设备必须经过许多严格的安全测试,包括:阻燃性测试、高温下确保设备之完好无缺,以及不会因过压和欠压等情况让设备受损等等的检测。 研华首款RISC工业级可编程人机界面WebOP-3000系列 研华此一系列工业级可编程人机界面是专为机台设备制造产业应用(如半导体制造)而设计的产品,除了前面板使用的是通过IP66认证的铝合金材质之外,其内建的德州仪
[半导体设计/制造]
研华推出首款RISC工业级可<font color='red'>编程</font>人机界面
IAR中创建STM32工程步骤(寄存器版本)
先说明,是基于寄存器编程的。 1.从官网下载STM32固件库。我用的是3.5 2.创建一个STM32文件夹(不是存放工程的),存放创建STM32工程所需的基本文件。以后再次创建工程时,只需把这个文件夹的东西拷到相应工程里面即可。 此文件夹里面有CMSIS文件夹和Statup文件夹。 2.找到解压后的Libraries- CMSIS- CoreSupport,把里面的core_cm3.h和core_cm3放进上面的CMSIS文件夹。 找到Libraries- CMSIS- DeviceSupport- ST- STM32F10X- Statup- IAR里面的启动文件,这个启动文件根据STM32具体类型选择,我用的是STM32
[单片机]
DSP编程技巧之20---理解函数的调用过程
  在我们使用 C/C++ 对 DSP 进行编程的时候,函数无疑是功能模块划分的重要组成部分,这些函数之间则通过显式地调用或者中断等方式来共同工作。除了对特定的RTS库中的函数(例如某些数学函数)的调用按照它们内置规则进行分配外,我们自定义的函数之间的调用则需要遵循一定的规则,了解这一过程对理解程序的执行和调试也是十分有帮助的,下面我们就来解读一下函数的调用过程,并且可以从其中了解到CPU 寄存器 、FPU 寄存器 以及栈(stack)在这一过程中的作用。   一.父函数调用子函数   在父函数调用子函数(被调函数)时,通常会执行以下的步骤:   1.如果 寄存器 不是SOE类型的(入口保存,save o
[嵌入式]
编程逻辑器件在数字系统中的应用
    摘要: 介绍了可编程逻辑器件在数字信号处理系统中的应用。并运用VHDL语言对采用Lattice公司的ispLSI1032E可编程逻辑器件所构成的乘法器的结构、原理及各位加法器的VHDL作了详细的描述。该乘法器的是大特点是节省芯片资源,而且其运算速度取决于输入的时钟频率。     关键词: 数字信号处理 乘法器VHDL PLD 1 引言 随着半导体技术的发展,可编程逻辑器件在结构、工艺、集成度、功能、速度和灵活性等方面有了很大的改进和提高,从而为高效率、高质量、灵活地设计数字系统提供了可靠性。CPLD或FPGA技术的出现,为DSP系统的设计又提供了一种崭新的方法。利用CPLD或FPGA设计的DSP系
[应用]
小广播
最新应用文章

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 医疗电子 工业控制

词云: 1 2 3 4 5 6 7 8 9 10

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved