当前位置:首页 > 嵌入式 > 嵌入式硬件

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

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭