利用单片机实现多路电压信号采集系统的设计

发布者:学海星空最新更新时间:2012-05-26 来源: 21ic 关键字:单片机  电压信号  采集系统 手机看文章 扫描二维码
随时随地手机看文章

引言

在下业生产中,需要将环境和状态的变化由传感器转换为电压信号,再由监控设备完成对电压信号的数据采集和监控。传感器的信号处理在监测点完成,处理后的结果经RS485网络传送到监控计算机。这样把监控工作分散到各地,而对监控结果集中管理,所形成的分布式监控系统可有效减少因工业强噪声干扰和传输距离的增加所带来的信号失真。

1 系统构成

本监控系统下位机的核心部分为MEGA8单片机。MEGA8单片机内置lO位的A/D转换器。

故可不用外接A/D转换器。当多路电压信号由多路转换器(CIM051)进入单片机后,即可对多路电压信号进行A/D转换和数据处理,完成数据采集。

可根据处理的结果进行报警操作,也可通过RS485网络同监控计算机进行通信,以实现分布式监控。

系统结构如图1所示。此系统的监控计算机程序使用VB开发,单片机程序使用c语言开发。本文主要讨论单片机如何对多路电压信号进行采集,以及采集的数据如何由单片机经RS485网络传送给监控计算机,以及如何编制CheckSum效验码以实现错误检查。

2 数据采集

数据采集工作完全是在下位机进行的,可通过对单片机编写控制程序已完成信号的采集和处理任务,主程序流程如图2所示。

除主程序外,程序中还设置了实现多路信号巡检的1 s中断程序模块;将A/D转换结果送人单片机进行处理的A/D转换完成中断程序模块;实现数据串行传输的USART中断程序模块;以及实现按键报警,数据处理等功能的子程序模块。[page]

A/D转换结束后,在ADC数据寄存器中可以取得转换的结果,对于单端输入的A/D转换,其转换结果为:

其中,Vin表示选定的输入引脚上的电压,Vref表示选定的参考电源的电压。0x000表示输入引脚的电压为模拟地,Ox3FF表示输入引脚的电压为参考电压值减去一个LSB。

3 串行通信协议

监控计算机与单片机的数据交换包括如下3个步骤。

(1)单片机要发送数据时,计算机会发送一组字符串过去。该字符串的第一个字符是前导码,单片机根据前导码辨认是否应该读取该字符串,该字符串属于哪一个命令集。

在前导码之后是站号,通常以两个字符代表,以RS-485进行网络连接,需要用站号来辨别命令是属于哪一个设备。站号之后是要解读的命令或数据。

(2)当单片机收到要求字符串,并经过辨读确定后,便会送出计算机所要求的数据。同样,数据被送出时会在数据之前加上前导码与站号,计算机也有由此辨别数据来自何处。

(3)计算机端收到单片机发送回来的字符串,即进行解读检查的操作。当检查完成后,再送一个确定的字符串给单片机,用以说明计算机端已成功收到字符串;而若发送失败,计算机也在该回送的字符串中要求单片机重新发送数据。

另外数据发送时,一般会加上错误检查机制,最常用的方法是将字符进行运算,而在字符串的最后加上CheckSum字符,收发双方利用Check-Sum字符的检查判断字符串的正确性。

本系统设计的数据格式为:

其中,前导码为一个字节;站号为一个字节;命令/数据为一个字节;数据长度为一个字节;数据内容为几个字节;CheckSum校验为两个字节;结束标志位为一个字节。

4 通信软件的实现

4.1 监控计算机通信软件的实现

利用VB提供的具有强大功能的通信控件MsComm,可设置串行通信的数据发送和接收,串口状态及串口通信的数据发送和接收,以及串口状态和串口通信的信息,格式和协议。监控计算机的通信流程如图3所示。[page]

4.2 单片机通信部分的软件实现

ATMEGA8单片机带有一个全双工通用同步/异步串行收发模块USART,该接1:3是一个高度灵活的串行通信设备。单片机的通信流程如图4所示。

4.3 CheckSum的使用

使用了outCheckSum和inCheckSum子函数以实现CheckSum计算。第1个函数(outCheckSum)用于处理所要发送的字符串,只要将所要发送的字符串传人,返回的结果的结果字符串即是作完CheckSum处理。第2个函数(inCheckSum)用于处理接收到的返回字符串,只要将所收到的字符串传人,返回的结果字符串即是做完CheckSum检查,并去除校验和与结尾字符。

5 结语

以上提出的单片机和监控计算机的软硬件设计已在实际中得以应用。数据的采集及单片机和监控计算机之间的通信快速准确,效果良好。可见上述多路电压信号的采集和分布式监控系统的设计方案是可行和可靠的。

关键字:单片机  电压信号  采集系统 引用地址:利用单片机实现多路电压信号采集系统的设计

上一篇:单片机设计:简易的自行车里程表
下一篇:Atmel单片机并口下载线制作

推荐阅读最新更新时间:2024-03-16 13:00

关于AVR单片机的看门狗
看门狗这个东西以前没接触过 理解它费了一点周折。 使用它的复位MCU的功能实现LED的闪烁。 准备工作是设定WDT的超时时间(如1s) 首先使能看门狗(wdt_enable),然后喂狗(wdt_reset),再延时灯的闪烁时间(delay=0.5s),使灯亮(SET_LED);再用一个恰当的比较长的延时(delay 0.5s)饿死狗。之后MCU重启,如此往复。 (1)延时可以调用库函数,还可以使用定时器; (2)SET_LED; while(1) wdt_reset(); 表示 不断喂狗,从而不让MCU重启,使灯一直亮着。程序中使用这些代码的用途待考证,可以给作者发email 嘿嘿~ (3)软件看门狗和硬件看门
[单片机]
单片机的单CPU仿真器的设计
摘要:本文基于对8051单片机存储空间结构的深层次分析,提出了一种基于单片机的单CPU仿真器设计方案。该方案实用廉价,工程实践性强,可用于设计新的教学设备。 引言 单片机以它的廉价、体积小、可塑性强、稳定性高的特性,有着广阔的市场前景。 在用单片机开发产品时,虽然许多厂家设计了可编程ISP单片机,但是从安全与便捷方面考虑,单片机仿真器仍然是开发人员不可或缺的工具。单片机仿真器在产品开发阶段可用来替代单片机进行软硬件调试,从而迅速发现、纠正程序中的错误,大大缩短单片机开发的周期。但实际中仿真器过于昂贵,因此,设计制作出一款廉价且实用的仿真器有着广泛的市场。 传统的单片机仿真器硬件系统一般有三种实现方法。一、采用专用仿真的单片
[单片机]
PIC单片机的SPWM控制技术介绍
在UPS等电力电子设备中,控制方法是核心技术。早期的控制方法使得输出为矩形波,谐波含量较高,滤波困难。SPWM技术较好地克服了这些缺点。目前SPWM的产生方法很多,汇总如下。 1)利用分立元件,采用模拟、数字混和电路生成SPWM波。此方法电路复杂,实现困难且不易改进; 2)由SPWM专用芯片SA828系列与微处理器直接连接生成SPWM波,SA828是由规则采样法产生SPWM波的,相对谐波较大且无法实现闭环控制; 3)利用CPLD(复杂可编程逻辑器件)设计,实现数字式SPWM发生器; 4)基于单片机实现SPWM,此方法控制电路简单可靠,利用软件产生SPWM波,减轻了对硬件的要求,且成本低,受外界干扰小。 而当今单片机的应用已经从
[单片机]
PIC<font color='red'>单片机</font>的SPWM控制技术介绍
51单片机在无线数据传输中的应用
一般的数字采集系统,是通过传感器将捕捉的现场信号转换为电信号,经模/数转换器ADC采样、量化、编码后,为成数字信号,存入数据存储器,或送给微处理器,或通过无线方式将数据发送给接收端进行处理。无线数据传输系统就是 样一套利用无线手段,将采集的数据由测量站发送到主控站的设备。 1 系统组成 系统组成如图1、图2所示。     系统由测量站和主控站两部分组成。测量站主要完成对现场信号的采集、存储,接收遥控指令并发送数据。主控站的主要工作是发送遥控指令、接收数据信息、进行数据处理和数据管理、随机显示打印等。 2 AT89C51与数字电台的串行通信 Atmel公司的AT89C51单片机,是一种低功耗、高性能的、片内含有
[单片机]
51<font color='red'>单片机</font>在无线数据传输中的应用
单片机51到AVR程序的移植
将 C51 向 ICCAVR的转换进行一次总结 1、 头文件 对C51中定义寄存器的头文件如 reg51.h at89x51.h等替换成相应的 AVR头文件 如 io8515.h io2313.h等 2、 中断处理函数 在 C51 中以 interrupt 关键字来说明某一个函数为中断处理函数 在 ICCVAR 中可采用#pragma interrupt_handler预处理命令在程序开始处声明 具体用法如下: #pragma interrupt_handler 中断处理函数名 中断向量号 注意 对原 C51 源程序中的 interrupt 和 using关键字应当删除 3 、对 C51 中的 bit 和 sbit 数据
[单片机]
基于ADmC812微转换芯片和DSP芯片TMS320F206实现数据采集系统设计
ADmC812是ADI公司的以8051(8052)内核为控制核心的新型微转换器。由于ADmC812内部集成了大量的外围设备。它本身就是一个完全可编程、自校准、高精度的数据采集系统,可以取代传统的MCU+A/D+ROM+RAM高成本、大体积产品,尤其是它的高精度和高速度A/D模块,特别适应于智能传感、瞬时获取、数据采集和各种通信系统。但是,对于需要采集数据量大、运算复杂、实时性又要求较高的场合,由于在结构和速度上的限制,往往是无法满足要求的。本文针对这种情况,提出了基于ADmC812和DSP的数据采集系统。在这个系统中,ADmC812作为主机,完成ADC、DAC、显示、键盘等功能,而DSP作从机,专注于复杂的数据运算,两者通过通用的
[单片机]
基于ADmC812微转换芯片和DSP芯片TMS320F206实现数据<font color='red'>采集系统</font>设计
单片机开发涉及到的几个概念
1.什么是DSP中的 内部上拉 和 内部下拉 ? DSP中介绍引脚时,注明PU,PD说是 内部上拉 和 内部下拉 ,就是说内部已经配置了接电源的上拉电阻或是接地的下拉电阻。这样,当作为输入端口连接OC或COMS芯片或浮空时。信号线平是确定的高/低电平。而不是不确定的浮地电平。内部上拉,相当于输入和电源之间接了一个几十K的电阻;下拉,相当于用电阻和地相连。 2.VCC,VDD,VSS是什么? 在电子电路中,VCC是电路的供电电压,C = circuit,表示电路的意思;VDD是芯片的工作电压,D = device,表示器件的意思;VSS是接地或是负极,S = series,表示公共连接的意思。 3.时钟周期、指令周期、机器周期、
[单片机]
lpc5411x系列mcu的单核结构与应用
LPC5411x系列MCU的单核(Cortex-M4)和双核(Cortex-M4和可选择的Cortex-M0+)为各种永久使用的应用提供了更高的功率效率,同时可提供双核高达100MHz主频的性能,可实现最低达60uA/MHz的有源电流模式;并具有丰富的外设接口,提供广泛的性能和功能可扩展性。 LPC5411x系列MCU基于ARM®Cortex®-M4内核构建,并提供了可选的Cortex®-M0+协处理器。通过ARM®Cortex®-M4实现了功能集成和功率效率之间的平衡,实现了80uA/MHz的有源电流模式;凭借业界领先的双核选项,可以关闭Cortex®-M4分层电源方案,并使用Cortex®-M0+执行较少的任务,实现更低的
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

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