基于web的mcf5249数据采集系统的设计

基于web的mcf5249数据采集系统的设计

ID:10606359

大小:56.00 KB

页数:4页

时间:2018-07-07

基于web的mcf5249数据采集系统的设计_第1页
基于web的mcf5249数据采集系统的设计_第2页
基于web的mcf5249数据采集系统的设计_第3页
基于web的mcf5249数据采集系统的设计_第4页
资源描述:

《基于web的mcf5249数据采集系统的设计》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、基于Web的MCF5249数据采集系统的设计

2、第1lunal>关键词:MCF5249uClinux2M(MachinetoMachine)的网络通信已成为国内外研究热点,而CF5249处理器在数据采集方面的应用,并实现了采集数据的远程CF5249是以ColdFire32位微处理器为基础的高性能处理器,该处理器内部集成了一个片内12位ADC,可用于工业数据采集。且数据采集系统基于嵌入式操作系统uClinux。由于uClinux是为没有MMU的微处理器设计的。且源泉代码公开,为降低成本和获取软件的自有产权提供了方便。当然,uClinux不是一个强实时系统,为支持一般过程系统,可

3、以通过一些补丁程序来提高其实时性,所以本文讨论的数据采集系统主要应用于一些实时性要求不高的场合。1数据采集系统的硬件设计摩托罗拉MCF5249处理器内部集成了一个片内12位∑—ΔADC,它有四路输入(ADIN0~ADIN3),任一时刻只允许一路输入,由多路选择器决定。ADC的数字部分在MCF5249的内部,而模拟电压比较器由外围电路提供。A/D转换的输出引脚以脉宽调制的格式提供参考电压,因此,该输出需要一个外围的阻容电路,将其转换成直流电压,以备外部的电压比较器电路使用。数据采集系统的硬件原理图如图1所示。由于微处理器不可承受负电压,所以必须将输入电压限制在0~+3V之间。

4、Motorola公司不建议使用外部箝位二极管直接在模拟输入端进行过压保护,而在输入端引入1~10kΩ的限流电阻和低通滤波器,在低通滤波器的输入端连接二极管对输入电压进行箝位。2数据采集系统的软件设计数据采集系统的软件设计主要分为两大模块,即数据采集模块与数据显示模块。2.1数据采集模块的设计数据采集模块是系统的核心模块,为了提高数据采集的实时性,应采用中断方式完成数据采集。其流程图如图2所示。MCF5249微处理器为其内部ADC提供了一个控制寄存器ADCONFIG,其地址是MBAR2_ADDR+0x402,在初始化程序中需要指定MBAR2_ADDR地址。通过ADCONFIG

5、寄存器可以设置A/D转换器工作方式、采样频率、是否采用中断方式等。下面给出设置ADCONFIG寄存器实例。#defineMBAR2_ADDR0x8000000#defineAD_CONFIG0x402#defineAD_VALUE0x406…………//设置ADC*(volatileunsignedshortint*)(MBAR2_ADDR+AD_CONFIG)=0x442;该设置确定ADIN0作为模拟信号输入通道,采样频率设置为1/4系统总线时钟频率。当时钟产生4095次翻转时,系统产生一个软件中断(中断号为63)。一次采样结束,并将采样结果存于ADVALUE寄存器(其地址

6、为MBAR2_ADDR+0x406)。A/D转换值可以用如下公式计算:Vi=(X/(2n-1))×Vfullscate其中,Vi为ADC的输入电压;Vfullscate为满量程输入电压;X为ADC输出的数字量;n为ADC的位数。A/D转换的结果在中断处理程序中读取。读取一次转换的程序代码如下:Volatileunsignedshortintm;m=*(volatileunsignedshortint*)(MBAR2_ADDR+AD_VALUE);通常,A/D转换需要连续采样。采样结果应存放在一个多访问循环队列MACQ(MultipleAccessCircularQueue)

7、中。MACQ是一个定长有序的数据结构。源进程(生产者,ADC采样程序)将数据存入MACQ,一旦初始化,MACQ总是满的。当有新的数据被存入(PUT)MACQ,旧数据即被丢弃(如图3)。应用进程(消费者)可以从MACQ中读取任何数据。读功能是非破坏性的,即读操作不会改变MACQ。在uClinux中,A/D转换中断程序的编写方法是将A/D转换器作为一个字符设备来处理。中断程序是在linux/drivers/char目录下编写,其结构如下:*File:m5249_adirq.c#include<linux/interrupt.h>#include<asm/irq

8、.h>#defineADC_IRQ(128+63)//定义中断号#defineMBAR2_ADDR0x8000000#defineAD_CONFIG0x402#defineAD_VALUE0x406/*定义中断处理函数*/voidadirq_interrupt(intirq,void*d,structpt_regs*regs){在此读取A/D转换的值并存入队列中。}/*设备初始化函数*/intadirq_init(){intresult;unsignedshortadc_irq;adc_irq=ADC_IRQ

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。