首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

ARM7加速度数据采集系统的设计(2)

ARM7加速度数据采集系统的设计(2)

2.3 应用电路
    加速度数据采集电路如图2所示。其中,VDD设置为5 V。17引脚为2.5 V电压参考引脚,可以单独外接2.5 V电压,也可以选择分压的方式。本文采用分压的方式,通过设置R1=R2=5 kΩ。将VDD分压为2.5 V,并连接一个O.01μF的旁路电容C1。


    AON和AOP引脚的电压输出值成比例对应于加速度值,如图3所示。在加速度为0的情况下,AON和AOP输出值都是2.5 V。为了取得噪音较低、效果较好的信号输出,本文采用差动方式将AON和AOP接到运放电路的输入端,适当设置电阻电容值,得出符合要求的输出信号。AON与AOP求差后,范围在0~4 V之间。考虑到输出值应与ARM7处理器的A/D端口输入范围匹配,因此设置R4/R3=R6/R5=3/4,从而得到一个0~3 V的输出值范围。



3 ARM7模数转换器ADC的应用
    AT91SAM7X256自带的ADC是基于逐次逼近寄存器(SAR)的10位模数转换器(ADC)。它集成了一个8到1的模拟多路复用器,可实现8路模拟信号的模数转换;转换范围为0 V~ADVREF;支持8位或10位分辨率模式,转换结果进入一个所有通道可用的通用寄存器中,即通道专用寄存器。
    通过设置ARM7并行控制器PIO控制器,将ADO~AD7的某一个端口设置为A/D转换模拟输入端口。ADVREF为参考电压,即ADO~AD7端口输入电压值的范围为0 V~ADVREF;ADVREF最小值为2.6 V,最大值为VDDIN(一般设为典型值3.3 V)。ARM7处理器的A/D转换共有3种中断方式,即软件触发、外部触发(包括ADTRG引脚上升沿触发)和内部触发定时计数器输出。本文采用内部触发定时计数器输出触发方式,即达到一定的间隔时间后引起中断,然后对当前的A/D模拟数据进行采集和分析。完成上述中断处理后,再等待下一次中断到来。使用ADC中断请求前须先对AIC(高级中断控制器)编程。
    ADC还与PDC(外设数据控制器)通道连接。在转换完成后,数字结果将会保存到当前通道数据寄存器里。当数据寄存器保存当前数据后,状态寄存器相应位置位;当取走数据寄存器中的数据后,状态寄存器相应位清零。
    ADC支持8位或10位的分辨率。通过设置ADC模式寄存器(ADC_MR)LOWRES位执行对8位的选择。默认情况下,复位后分辨率最高,且数据寄存器中的DATA域完全使用。通过设置LOWRES位,ADC切换到最低分辨率,且转换结果可从数据寄存器的低8位中读出。对应于ADC_CDR寄存器的DATA域,最高两位及ADC_LCDR寄存器的LDATA位为0。在数据处理之前,通过设置相应寄存器对转换分辨率、休眠方式、ADC时间等进行初始化。为防止ADVREF端口电压过高,通常外加稳压二极管作保护。

4 系统软件设计
    软件设计是整个检测系统的重要组成部分。依据硬件设计的相关特点和要求,软件设计的主要任务是完成系统的初始化,对加速度信号进行提取和分析,加速度过大或者超出设定值时予以警告提示,并完成与其他外设之间的数据通信。系统软件流程如图4所示。

继承事业,薪火相传
返回列表