多路温度采集范文

2024-05-05

多路温度采集范文(精选9篇)

多路温度采集 第1篇

关键词:MAX6675,CPLD,K型热电偶,多路温度采集,Matlab

K型热电偶是当前工业生产、科学实验较为常用的一种温度传感器,它可以直接测量各种生产中0~1 300 ℃范围内的液体蒸汽,气体介质和固体表面温度。由于它的测量范围及其较高的性价比,使得K型热电偶应用广泛[2]。然而K型热电偶存在非线性、冷补偿等问题,特别是在处理补偿问题时,需要付出较高的代价且难以有较好的成效。所以本文介绍的MAX6675温度采集芯片,弥补了K型热电偶上述缺陷。将MAX6675和K型热电偶结合并用于工业生产和实验,能为工程带来诸多便利且减少繁琐的附加电路。本文给出了基于CPLD的多路温度采集系统电路、内部逻辑设计模块、误差分析和实验统计报告,以及MAX6675多路温度采集系统的应用过程和性能报告。

1 MAX6675介绍

MAX6675 是美国Maxim公司生产的带有冷端补偿、线性校正、热电偶断线检测的串行K型热电偶模数转换器,它的温度分辨能力为0.25 ℃;冷端补偿范围为-20~+80 ℃;工作电压为3.0~5.5 V。

根据热电偶测温原理,热电偶的输出热电势不仅与测量端的温度有关,而且与冷端的温度有关。在以往的应用中,有多种冷端补偿方法,如冷端冰点法或电桥补偿法等,但调试较复杂。另外,由于热电偶的非线性,以往是采用微处理器表格法或线性电路等方法,来减小热电偶本身非线性带来的测量误差,但这些增加了程序编制及调试电路的难度。而MAX6675 对其内部元器件的参数进行了激光修正,从而对热电偶的非线性进行了内部修正。同时,MAX6675 内部集成的冷端补偿电路、非线性校正电路、断线检测电路都给K型热电偶的使用带来了便利。MAX6675 的特点有:(1)内部集成有冷端补偿电路;(2)带有简单的3 位串行接口;(3)可将温度信号转换成12 位数字量,温度分辨率达0.25 ℃;(4)内含热电偶断线检测电路[2]。其内部原理图如图1所示。

2 系统构架

系统框架如图2所示,该系统以CPLD为核心,由多路K型热电偶和MAX6675将外界温度模拟信号采集并转换成数字信号,并将数据传入CPLD进行相应的处理,然后通过通信模块将数据传送给计算机,最后用计算机做数据统计及处理。系统中的通信模块可以根据工程或实验环境的不同使用不同通信方法,如串口通信、PCI传输卡等。由于工程应用的原因,本文使用PCI传输卡作为数据传输方式。

3 CPLD内部逻辑

如图2所示,K型热电偶将采集的模拟信号传送给MAX6675,再由它转化成数字信号传入CPLD,CPLD根据MAX6675芯片的时序进行数据处理得到需要的信号,最后由传输模块传到计算机进行数据显示和统计、处理。所以本文的重点工作便在CPLD内部逻辑的设计。在进行内部逻辑设计之前,须了解MAX6675的工作时序与原理:当CS引脚由高电平变为低电平时,MAX6675停止任何信号的转换,并在时钟SCK的作用下向外输出已转换的数据;当CS引脚从低电平变到高电平时,MAX6675将进行下一轮数据的转换。一个完整的数据读取需要16个时钟周期,数据的读取在SCK的下降沿进行[1]。MAX6675的工作时序图如图3所示[1]。

如图3所示,根据芯片手册tCSS是CS下降到SCK上升的时间,规定其最小值为100 ns,tCH+tCL为SCK的一个时钟周期,规定最小周期为200 ns,tDV为CS下降沿到数据输出的时间,规定最大不超过100 ns,tDO为SCK下降到输出有效数据的时间,tTR为CS上升沿到数据停止输出地时间,规定最大值均为100 ns。根据这些手册上的这些时间规定,在设计CPLD内部逻辑电路时便严格按照要求,将SCK时钟周期设为1 000 ns即1 MHz,tCSS设为1 000 ns,tDVtTR都设为100 ns。图中还可以看出SO是16位的输出数据,其中只有D14~D3位为温度数据,D15位为无用位,D2位为热电偶断线测试位,D1位为MAX6675标识符,D0位为三态,所以从16位数据中取出D14~D3这12位数据进行转换和处理。基于以上分析,设计了如图4所示的内部逻辑模块。

CPLD内部逻辑如图4所示,为了将12位有效数据提取出来,先要将串行的SO输入信号转换成并行的,利于有效数据的提取。图中的CLK是指总时钟,用一个40 MHz的晶振,通过分频为芯片提供时钟。根据芯片数据手册和上述分析,给SCK信号1 MHz频率。以芯片时序要求,给RST信号2.5 Hz时钟,即0.4 s完成一次数据采集和数据传输。图中数据寄存模块的功能是为了寄存各路并行输入信号,便于后期上传。采集控制模块的主要作用是便于通过给系统的总时钟分频,为MAX6675芯片提供时钟信号SCK和RST。而传输控制模块是为了调试时利于信号的检测。此模块的作用是为输出信号添加帧头,利于后期对输出信号的确认;以及为传输模块提供合理的同步时钟,使得每一个数据的传输能够和相应时钟对应。

4 后期测试

按照上述原理进行硬件电路设计和CPLD内部逻辑设计,完成了一个可以多路同时进行温度采集系统。通过常温下对该温度采集系统进行的多次采集试验,随机抽取了其中一路温度采集统计图作为试验结果,如图5所示。

图5是一次常温下经过约20 min共3 500帧的采样结果,从图中首先观察到最高温度和最低温度分别达到24.25 ℃和22 ℃,相减得到温度波动为2.5 ℃。芯片手册中,芯片的温度测量每一个数据位为0.25 ℃,而测量的显示精度为8个数据位,所以该芯片的测量误差为8×0.25=2 ℃。同时再考虑到整个系统的误差,包括电源噪声、电路噪声,误差能达到 2~2.5 ℃。综上所述,根据图5所示温度曲线的 2.5 ℃的波动,这个结果完全符合芯片手册要求。

另外,还利用瞬时高温对该系统进行了测试,测试结果如图6所示,给出其中6路同时采集的数据,6种线型代表6路温度采集。曲线图中离瞬时高温产生范围较近的,如通道63、通道64,在产生高温的前500帧时间里变化较为明显,达到了100 ℃以上,而离瞬时高温产生范围较远的,如通道61和通道62,在产生高温的前500帧时间里,则温度变化较舒缓,该图将瞬时高温打击下的高低温区域明显区分开,充分证明了MAX6675以及文中多路温度采集系统的良好性能。

5 结束语

通过MAX6675芯片应用和实验,验证了MAX6675多路温度采集系统的良好性能和较高的性价比。另外,利用CPLD或者FPGA实现多路温度采集拥有设计简单、体积小、操作简洁方便,干扰因素少,可靠性高等优点,对工程应用具有一定的实用价值。

参考文献

[1]MAXIM.MAX6675芯片手册[R].USA:MAXIM,2002.

[2]虞致国,徐健健.MAX6675的原理及应用[J].国外电子元器件,2002(12):41-43.

[3]Stephen Brown.Fundamentals of Digital Logic with VerilogDesign[M].北京:机械工业出版社,2007.

[4]刘延飞,郭锁利.基于Altera FPGA/CPLD的电子系统设计及工程实践[M].北京:人民邮电出版社,2009.

[5]孙肖子,徐少莹.现代电子线路和技术试验简明教程[M].北京:高等教育出版社,2009.

多路温度采集 第2篇

摘要:采用VHDL语言和图形输入设计方法,给出了用CPLD在远程多路数据采集系统中实现地址译码、串口扩展、模块测试、模数转换以及高位数据处理等功能的具体方法,同时简要介绍了远程多路数据采集系统的工作原理及软、硬件框架。

关键词:CPLD;单片机;译码;RS-232;VHDL; EPM7256SQC208

CPLD(Complex Programmable Logic Device?复杂可编程逻辑器件)是在传统的PAL、GAL基础上发展起来的。目前,CPLD已在通讯、DSP及微机系统中有着非常广泛的应用,它不仅可使设计的产品小型化、集成化和稳定可靠,而且还具有在系统或在芯片直接编程的能力,从而使电子系统的设计、开发、更新与维护变得更为方便,更便于装配和批量生产。因此,利用CPLD可大大缩短设计周期,减少设计费用,降低设计风险。远程多路数据采集系统,不但需要较多的片选信号,而且模块测试所占用的I/O口资源也较多,用一般的芯片较难实现,而用CPLD/FPGA则不但可以较好地实现其功能,而且还可大大提高设计能力和设计效率。

1 系统组成思路

本远程多路数据采集系统以Altera公司7000S系列CPLD产品中的EPM7256SQC208-10为控制核心,并由A/D(模拟量采集)模块、DI(数字量采集)模块、D/A(模拟量输出)模块、DO(数字量输出)模块、MCU模块、电源模块及I/O接口模块组成,其系统组成原理图如图1所示。

图中,MCU模块主要由CAN总线模块、RS-485模块、RS-232模块、时钟和复位模块、CPLD模块等组成,MCU模块的电路原理图如图2所示。该远程多路数据采集系统的I/O接口板共有14个插槽,其中12个插槽可实现A/D模块、D/A模块、DI模块、DO模块等四种模块的任意配置。因此,单个数据采集系统最大可采集192路模拟量或192路数字量,也可以提供最大96路模拟量输出或192路数字量输出。多个数据采集系统也可以根据实际和现场需要通过CAN总线、RS-485总线或RS-232总线进行连接,从而实现上百个或上千个采集频率不高的远程数据采集。该远程多路数据采集系统可采集0~5V的电压信号和4~20mA的电流信号,数字量输出电平为12V,可直接控制12V的继电器。(本网网收集整理)

显而易见,传统的设计思路不但要使用大量的外围芯片,而且需要主处理器直接控制各种采集模块和控制模块,并完成各模块和通道的自检。因此,这种解决方案需要占用主处理器大量的I/O资源和处理时间。然而,一般处理器的 I/O资源极其有限,而且又要求大量的汇编软件配合,这就使设计移植变得比较困难;此外,由于I/O的频繁操作也不利于系统调度软件的设计和其他软件模块的实时执行,因而在现场更难以组成分布式控制管理系统(FCS)。可见,如果采用传统的设计方法,不但使系统设计较为庞大,而且开发成本高、设计周期长、设计效率低。所以,传统的设计思路在远程多路数据采集系统中是不可取的,而使用CPLD或FPGA器件则可以较好地解决上述问题。

2 CPLD设计

2.1 顶层软件设计

上述功能可在MAX+PLUSII 9.5环境下设计完成。该系统的软件设计采用“自顶向下”、“软硬兼施”的设计方法,主要设计了五大功能模块,分别是DECODE?地址译码?模块、AD?模拟量输入数据处理?模块。DATA?数据处理?模块、TEST?模块自动识别?模块、UART?串口扩展?模块,其设计原理图如图3所示。其中译码模块用于完成处理器对CPLD片内和片外模块的寻址和译码,这是一种简单的`译码逻辑和触发电路,共产生34个片选信号。AD模块用于完成对10位A/D 转换芯片TLV1578高位D8、D9的处理以及实现D9/A1、D8/A0的分时复用,是一般组合逻辑电路和数据缓冲及锁存电路。TEST模块用于完成对各种模块的自动识别,包括识别某一插槽有无模块以及具体是何种模块,该模块共需处理36个测试信号。DATA模块用于简单处理各种数据,包括数据的缓冲、锁存以及驱动放大等。由于该系统中单片机的串口被RS-485占用,因此,UART模块一般用于实现RS-232串口扩展。

2.2 底层软件设计

底层软件设计是基于顶层软件中五大功能模块而设计的,其中UART模块设计采用VHDL语言描述完成,而DECODE模块、TEST模块、DATA模块和AD模块由于原理和时序相对简单,则采用图形输入设计方法,并通过编译、综合、仿真后生成底层设计文件(即生成相应的设计符号*.sym),以供顶层设计调用。

为了突出重点,这里只简单介绍UART模块的底层设计。UART模块是一个8位全双工异步接收发送器模块,该模块主要由四个子模块构成,即并入串出模块、串入并出模块、接口模块、时钟产生模块。该UART模块的主要功能是:从计算机接收8位并行数据并发送到串口输出;二是从串口读入外部串行数据并将其转换为8位并行数据送到计算机。

并入串出操作由输入信号的高电平触发的,串行输出结束后,结束信号变为‘0’。而串入并出操作则由串行输入的下降沿触发,且串行输入要保持低电平持续半个周期以上。此半周期时钟同时可作为输入移位时钟,8位数据输入结束后,结束信号变为‘0’并维持到下次数据输入。数据口是8位双向三态I/O口。

时钟产生模块产生的时钟用于并入串出模块和串入并出模块。在串入并出操作中,工作时钟只有高于移位时钟,才能检测是否开始一次新的输入过程,因此,工作时钟是移位时钟的4倍。其时钟产生模块的VHDL源程序如下:

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;?

ENTITY clkgen IS

PORT (iclk,oclk:BUFFER STD_LOGIC);?

END clkgen;

ARCHITECTURE clk OF clkgen IS

SIGNAL iclk_lag,oclk_lag:TIME:=0 ns;

SIGNAL temp_iclk,temp_oclk:STD_LOGIC;

BEGIN

PROCESS(temp_iclk,temp_oclk)

BEGIN

temp_iclk<=NOT temp_iclk AFTER iclk_lag/4;

temp_oclk<=NOT temp_oclk AFTER oclk_ lag;

END PROCESS;

iclk<=temp_iclk;

oclk<=temp_oclk;

END clk;

限于篇幅,UART模块的其它底层模块设计这里不作一一介绍。

图3

3 系统仿真和验证

软件设计完成后,可根据Protel99SE中的电路原理图进行引脚锁定,然后启动编译程序来编译项目。编译器将进行错误检查、网表提取、逻辑综合和器件适配,然后进行行为仿真、功能仿真和时序仿真。最后采用并口下载电缆ByteBlaster并通过JTAG编程方式将top.pof文件下载到EPM7256SQC208-10芯片中,从而生成硬件电路。4 结束语

为了将该远程多路数据采集系统应用到污水处理自动控制系统中,笔者设计了以计算机为核心的分布式控制管理系统(FCS),从而高性价比地实现了污水处理设备的自动化控制和信息化管理,稳定可靠地发挥了污水处理设备的作用,实现了现场数据信息传递的完全数字化,同时保证了数据采集的准确性和控制功能的可靠性。

多路以太网数据采集系统设计 第3篇

关键词:多路以太网;数据采集系统;设计

中图分类号:TP274.2 文献标识码:A 文章编号:1006-8937(2016)11-0067-02

1 背景概述

以太网是目前应用最广泛的局域网技术,凭借开放性好、成本低廉、数据传输率高等诸多优势,在工业自动化和过程控制领域得到了越来越多的应用[1]。依靠以太网技术实现信息共享,给办公自动化带来很大的变革,对系统设计产生了深远的影响。数据的采集与监控在工业生产中也变得尤为重要,尤其是数据的准确性和实时性,本论文就以远程数据采集展开研究。

数据采集系统可以对设备数据进行采集、存储、处理和显示实现对相关物理量的监控、分析和保存[2]。远程数据采集系统是对数据采集后进行远程传送具有不受环境、气候、时间等因素影响的优势。以太网(Ethernet)技术支持几乎所有的网络协议,所以在数据信息网络中得到广泛应用,具有传输速度高、距离远、低能耗、便于安装、兼容性好、开放性高和支持设备多等方面的优势[3]。

2 整体系统方案设计

本文采用下位机负责模拟数据的采集,主控制器负责采集七路数据,并应答主机发送的命令将数据发送至上位机,上位机负责处理接受过来的数字量的处理及显示,上位机和下位机采用以太网进行通信。

上位机将所有数据保存到计算机中,这样用户可以随时对数据进行有效查询和分析,有利于工业过程的长期正常运行和检查。下位机采用的是STM32单片机,上位机采用Visual Basic 6.0编写。

下位机根据上位机发送的命令选择单通道速数据采集还是低速7通道数据同时采集,然后将数据经以太网发送至上位机,上位机将数据显示并保存入库。

3 数据采集-下位机

本设计采用单通道高速采样、多次发送方式和多通道循环采样、实时发送两种模式,其模式的选择由上位机发送命令给下位机,当收到上位机发送到“duotongdao”字符串时,下位机转换到多通道模式,当收到上位机发送到“dantonfdao”字符串时,下位机转换到单通道模式。

3.1 模式一(单通道模式)

在程序中顺序定义多个缓冲区,ADC高速采样并依次将5个缓冲区填满,一旦缓冲区全部填满,停止采样。当最后一个缓冲区的数据发送完成,ADC采样标志位置位,将开始新一轮的数据采样。经测试,单通道连续采样频率为23 kHz。

單通道模式,如图3-1所示,A-B,B-C分别是一次连续的ADC采样。从图中可看出,在一次连续采样中,数据的连续性很好,但跳跃性大,即采样死区时间长。

3.2 模式二(多通道模式)

多通道模式是对七路数据进行轮询采样,依次将采集到的数据放置到指定的缓冲区内。一共采集1 400次,每个通道占用200字节。在一次数据包成功发送完成后,ADC采集标志位置位,进行下一次的ADC采集,直到采样完成,停止采样并发送数据包。由于数模转换器(ADC)采用的是单次转换,所以,单通道模式的采样速率是多通道的七倍,即多通道模式采样速率约等于3 kHz。

多通道模式,如图2所示,A-B是一次数据包,数据包到达后紧跟着下一个数据包就到,如此连续。

采集到数据需要将数据发送至上位机,为了标志通道数据,下位机将数据放入IP包时,分别用“A”、“B”、“C”、“D”、“E”、“F”、“G”来表示多通道模式一至七通道每个数据的开始。

3 数据显示处理—VB上位机

3.1 上位机系统设计

上位机的主要功能是接收下位机数据,并对数据进行处理。主要包括数据的接收、显示、保存、绘图。上位机数据的显示主要是对接收到的12位ADC数据显示,以及将ADC数据转换为对应的电压值,并显示出来。数据的保存是将接收到的所有数据按照通道数和时间顺序保存到计算机上,以便于以后的查询。数据绘图是将接收到的数据变化曲线绘制出来,便于观察。

3.2 上位机界面介绍

①启动以太网数据采集卡后除了出现客户端界面外,还弹出了电压比例选项设置面板,可以打开和关闭所要观察的通道数据显示,再对每个通道选择数据,“0”表示关闭“1”,“2”,“3”,“4”分别表示采集数据的1倍显示,2倍显示,3倍显示,4倍显示。

②主机名和端口号可以手动输入服务器的IP地址和监听端口号,输入之后点击“链接”按钮。窗体可实时收缩和还原。

③在主窗体下方有“通道一”至“通道七”七个按钮,点击按钮,可绘图。通道按钮对应的下的颜色和绘图区通道的颜色一致,可明显区分。

④点击主窗体左下方“数据库”按钮,弹出上位机数据库,如图3所示。点击后会弹出数据库窗体,在该窗体中可以查看过去任意时刻所有通道的数据。

3.3 上位机数据保存

①写数据。在本设计中数据保存的格式是以日期和时间分钟为单位命名文件,写数据格式为:数据序列号+系统时间+数据。

②读数据。工业应用中,在数据保存入库后,还要方便查询,因此上位机中提供了数据查看器,可以方便查询所需要的数据:所有的数据按照时间先后依次排列。

4 调试结果

用示波器给下位机输入模拟信号,上位机链接成功,调节输入信号的频率;上位机选择单通道模式,并根据采样点调整面板采样点sampl的值。采1 000 Hz,20 Hz正弦波实时折线图,如图4、图5所示。

从测试结果来看,当正弦波频率超过1 300 Hz时,单通道模式下采样得到的数据波形有一点失真,当正弦波频率是1 000 Hz时,采样的波形几乎没有失真,从图4中,可以大约推算出ADC的采样频率。

上位机选择多通道模式,并根据采样点调整面板采样点sampl的值。采集250 Hz,200 Hz正弦波实时折线图如图6、图7所示。

从图中可以看出,多通道模式下,当正弦波频率大于 250 Hz时, 采样到的数据波形有失真,正弦波频率是200 Hz时,几乎没有失真。多通道数据采集的速率是单通道的七倍,测试结果与下位机采样频率一致。多通道模式对数据的采样率低,但是数据整体连续性好,不会让大范围的数据流失。

5 结 语

多路以太网数据采集系统的设计是基于STM32下位机采集七路模拟信号经过模数转换,然后通过以太网将数据发送至上位机,最终的测试结果很理想。本设计的核心在于数据的远程发送,对于嵌入式系统在以太网中的应用目前已经基本成熟,数据经以太网传输具备很大的优点,比如数据量大,速度快,安全等。本设计能成功的一个重要因素也在于uIP协议栈的推广,它是TCP/IP协议的精简版,也是缩小版,很容易应用到各种微型控制器中。

参考文献:

多路温度采集 第4篇

1 总体设计方案框图

根据设计的指标和要求, 多个粮仓的温度测量系统主要由以下几个部分组成:

1. 1 控制器单元电路。控制器采用AT89S51 单片机, 负责与传感器DS18B20 通信, 存储不同粮仓的温度数据, 同时将温度数据发送到显示电路。

1. 2 传感器测量电路。每个粮仓安放DS18B20 传感器, 负责对温度的测量。

1. 3 温度显示电路。采用4 位共阳LED数码管显示, 以动态扫描法实现温度显示, 将单片机发送的数据显示在Led数码管上。数字温度计总体电路结构框图如图1 所示。

2 系统整体硬件电路

2. 1 主控制器

图2 为主控制器电路, 由12M无源晶振组成的振荡电路, 开关S1与10uf电容组成的复位电路, 用于重启系统, 保证系统正常的运行。

XTAL1 脚为片内振荡电路的输入端, XTAL2 脚为片内振荡电路的输出端。89S51 的时钟有两种方式, 一种是片内时钟振荡方式, 但需在XTAL1 和XTAL2 脚外接石英晶体 ( 频率为1. 2 ~ 12MHz) 和振荡电容, 振荡电容的值一般取10 ~ 30p F, 典型值为30p F; 另外一种是外部时钟方式, 即将XTAL1 接地, 外部时钟信号从XTAL2脚输入, 如图3 所示。此次设计采用了内部时钟方式。[2]

2. 2 温度采集电路

温度采集如图4, 图中的U3、U4、U5 是用于探测温度并将温度值转换成数字信号的传感器DS18B20, DS18B20 采用1 -Wire总线 ( 单总线) 协议, 它在一根数据线完成控制字的写入和测量温度数据的读出, 是一种半双工的双向传输模式, 多个DS18 B20 传感器通过地址码来区分。 由于单片机AT89 S51 硬件上并不支持单总线协议, 通过AT89S51 来控制和访问DS18B20时, 需要通过编程模拟单总线的协议时序来实现对DS18B20 的访问。

对读写的数据位有着严格的时序要求, 每一次命令和数据的传输都是由主机启动的写时序开始, 此时从设备都处在侦听状态, 数据和命令的传输顺序都是低位在先。在读取DS18B20 检测到的温度数据时, 主机在发出写命令后, 再需启动读时序完成数据接收。

2. 3 显示电路

显示电路采用4 位共阳LED数码管, 从P0 口输出段码通过74HC244 进行缓存, 再同时送入到四个数码管的a ~ h端, 列扫描用P2. 0 ~ P2. 3 口来实现, 列驱动用9012 三极管。

2. 4 稳压电路

连接器CON3 通过复读机电源接入+12V电压, 通过7805 稳压器将+ 12V电压转换成+ 5V电压, 作为温度计设计电路的电源VCC。

2. 5 通信接口电路

89S51 的P1 口的第二功能 ( ISP功能) , 为了能够将编译好的程序下载到单片机内, 由于本系统采用AT89S51, 采用ISP技术, 利用如表1 中的P1 口, 来实现单片机与上位机 ( PC机) 通信, 实现程序的下载, P1 是带上拉电阻, 兼有输入和输出功能的引脚。输出时驱动电流可达10m A左右。

此模块做在另一块板上, 通过导线将图中74LS373 的MISO, MOSI, SCK分别接到89S51 的MISO, MOSI, SCK端口上即可。

3 系统软件程序

由图8、图9 可知, 系统软件设计组要由温度显示刷新模块、温度传感器DS18B20 的初始化、温度数据的读取、实际温度的计算等组成。

3. 1 主程序

图8 为系统设计主程序, 一开始完成对设备的初始化, 接着开启定时器记录刷新时间, 每隔一秒完成对数据的读取与刷新, 然后实现对温度的显示。

3. 2 读出温度子程序

读出温度子程序流程如图9 所示, 在对DS18B20 进行复位后, AT89S51 向所有DS18B20 发匹配ROM命令 ( 即区分安装在各个位置的DS18B20 的地址码) , 各个DS18B20 收到此地址码后立即进行判断是否在访问自己, 如果地址匹配, 则该DS18B20 发出应答信号, AT89S51 紧接着发出读取命令, 地址匹配的DS18B20 收到此命令后便将采集到的温度数据进行CRC编码 ( 在温度数据后附加8 位的CRC校验码) 并存放到一个9 字节的RAM中, AT89S51 读取DS18B20 中9 字节RAM中的数据并进行CRC校验, CRC正确时改写当前的温度值, 校验有错时不进行温度数据的改写。

3. 3 计算温度子程序

计算温度子程序流程图如图10 所示, 从DS18B20 中RAM中读取的是二进制代码代表的温度值, 我们日常生活中的温度都为十进制显示, 结合DS18B20 输出的二进制数据的格式, 通过温度转换子程序, 实现二进制数据与十进制摄氏温度的转换, 这样才能输出我们要求的温度格式。

3. 4 温度显示更新程序

温度每时每刻都在发生着轻微的变化, 为了能够实时显示正确的温度, 就要定时刷新数据, 如图11 所示, 该程序实现了对温度数据的更新功能, 对单片机存储的温度数据进行处理, 进行温度的正负判断, 以及位数处理。

3. 5 温度数据的计算处理方法

DS18B20 的转换精度可在9 ~ 12 位之间选择, 分辨率分别为0. 5℃ 、0. 25 ℃ 、0. 125℃ 、0. 0625℃ , 转换精度越高所需的A / D时间也越长, 9 字节RAM中前两个字节是转换好的温度, 在对于12 位转换精度, 除了最高的4 位表示正负符号外, 根据温度传感器低的12 位二进制数字, 转换成十进制数据, 将该数据乘以12 精度的灵敏度0. 0625, 所得到的十进制数据则为单位为摄氏度的温度值。

温度显示数据的小数位是由9 字节RAM中低字节的低半字节组成的, 由于12 位转换精度的分辨率是0. 0625℃ , 介于0. 1℃ ~0. 01℃ 之间, 由于是用半个字节 ( 0 ~ F) 表小数部分, 直接通过乘以0. 0625 转换成的十进制小数值需要占用4 位小数, 实际应用中通常精确到0. 1℃ , 用1 位LED显示小数, 这就需要将15 种二进制码对应成10 种十进制数, 表2 列出了一种二进制和十进制的近似对应关系表[2]。

4 调试及性能分析

系统的调试包括硬件电路调试和软件调试, 由于硬件电路并不复杂, 而且全部都是数字电路, 只要焊接良好, 没有短路和断路情况出现电路即可正常工作。由于采用了模块化的设计方法, 软件调试可以先进行各功能子程序的单独调试通过, 再逐步将各功能模块往里添加进来, 每添加一个功能模块调试成功后再添加一个功能模块, 直到所有功能模块能同时正常工作。由于DS18B20 跟AT89S51之间采用串行数据通信, 在编程时严格按照DS18B20 芯片手册上的时序, 来实现对芯片数据的采集, 不然将得到的错误的数据。

性能测试是用精度为0. 01℃ 温度计和本温度测试系统各自测量值的比较来完成的, 通过实测对比, 在- 20 ~ 50℃ 的温度范围内, 二者的最大绝对误差都在 ± 0. 05℃ 以内, 完全适合一般的应用场合, 可用三节干电池供电做成手持电子温度计。

参考文献

[1]张俊谟.单片机中级教程.北京:北京航空航天大学出版社, 1999:11-100.

[2]李光飞, 楼然苗, 胡佳文等.单片机课程设计实例指导.北京:北京航空航天大学出版社, 2004:105-125.

[3]夏路易, 石宗义.电路原理图与电路板设计教程Protel 99SE.北京:北京希望电子出版社社, 2002:1-203.

多路图像采集系统的设计 第5篇

1、多路图像采集设备的工作原理

多路图像采集系统主要由主控机 (采集系统) 、RAID磁盘阵列、快速交换机、供电单元、导引头采集单元、电视采集单元、短波采集单元、中波采集单元、短波采集单元等组成, 系统结构见图1。

导引头采集单元、短波采集单元、中波采集单元、长波采集单元各自采集目标的图像数据, 然后与主控机通过快速交换机形成千兆局域网进行数据交互。主控机通过串行总线和以太网实行各测试单元环境配置和管理。测试完成后各分单元将测试数据反馈至主控机进行整合, 并上传至RAID磁盘阵列进行存储。主控计算机对RAID磁盘阵列中的测试数据进行管理, 提供测试者进行分析和比较。

2、多路采集系统设计方案与实现

2.1热像仪图像的采集

热像仪的采集卡定为与原进口热像仪配套的采集卡E9800。采集卡E9800外部接口μDB68的示意图。

从Cedip’s Software系统结构来看 (见图3) , 热像仪的所有用户接口均通过Virtual Camera抽象出来, 对应用程序而言, 物理设备 (红外热像仪、FG9800数据采集卡、RS232、RS422以及USB2) 均是不可见的;类似于PC系统的IO, 对用户 (Application developer) 而言, 实际的物理IO设备不可见, 看到的是一系列抽象的对象, 譬如标准输入stdin和标准输出stdout等。Virtual Camera是由Windows服务和连接到该服务的客户端DLL组成;Vir Cam Server是ATL/COM组件运行的Windows服务, 它将所有已知的Cedip相机接口统一, 并给出了一个通用的切入点 (entry point) 供用户应用程序使用, 因此针对Cedip相机的应用程序开发也就是针对Vir Cam SDK的开发。

从图3可以看出, 有待开发的图像采集软件与生产商提供的Altair软件位于同一体系层级中, 且都是以Vir Cam DLL为基础的应用开发;因此, 只要Altair如图中所示, 是根据Vir Cam DLL开放的SDK所开发的应用程序, 而没有调用系统更底层或SDK未开放 (如果存在的话) 的部分接口, 那么有待开发的“Youre Software”--图像采集软件就完全可以实现Altari的所有功能, 包括Full Speed Recording。

2.2导引头数据的采集

要利用图1中NI的图像采集卡PCI-1422采集红外产品输出的串行数据, 必须在采集前端进行串并转换。在这里我们利用一块FPGA中 (altra的cyclone系列的ep1c12q240c8) 进行串并转换。

2.2.1凝视发送模式

所谓凝视模式即导引头在捕捉图像信号时始终按照一个方向顺序扫描。在此模式下, 首先在FPGA内部构造一块2K*16bit的FIFO (先入先出) 缓冲区, 由于图像数据的写入和读出速率不同, 采用FIFO缓冲可以实现异频域的数据读写。首先在接受到串行图像数据后根据发送时序的字同步信号可将其转换为16位并行数据, 在转换的同时将并行数据存入FIFO, 同时控制PCI-1422不断的读FIFO缓冲区。因此, 只要一有数据存入FIFO, 立即就会被1422读取, 从而节省了数据采集时间, 使采集时间尽可能短。

2.2.1线扫发送模式

对于线扫发送的模式, 图像数据是按照正逆扫交替发送的。我们的设计思想就是乒乓操作。在第一个数据缓冲周期, 将输入数据缓存到“数据缓冲模块1”中;在第二个数据缓冲周期, 将数据缓存到“数据缓冲模块2”中, 同时, “输出数据流选择单元”将“数据缓冲模块1”中缓存的数据读出, 送到“数据流运算处理模块”;在第三个数据缓冲周期, “输入数据流选择单元”再次切换将输入数据缓存至“数据缓冲模块1”中, 同时, 通过“输出数据流选择单元”将数据缓冲模块送至“数据流运算处理模块”中进行处理。依次类推, 从而实现高速数据的无间断传输处理。

将乒乓操作的基本原理稍作改动, 则可以实现正逆序交替信号的正序传输。可以在将输入信号缓存至数据缓冲模块时, 根据信号的正逆序标志, 正序或逆序缓存至不同的数据缓冲模块中, 而数据流运算处理模块则一直按正序方式对数据缓冲模块进行读取, 这样, 就可以在硬件上实现对图像信号的正序转换, 以适应PCI-1422采集板卡的采集要求。

2.3采集数据的同步

同步信号发生器 (即PCI-6259的一路D/A) 向各分单元注入时钟信号, 热像仪分系统PC中计数器卡PCI-1780U采集时钟脉冲并计数, PC从采集卡中解析当前数据并记录脉冲个数形成时标, 然后触发热像仪配套的数字采集卡进行数据的采集。每采集一帧图像数据将计数器卡采集的时统信号嵌入图像数据中。在这种方式下如果图像的帧频为100f/s, 则时统信号的误差为1÷100=10ms。另外, 考虑到实际工作中各设备启动时间差别不会超过10分钟, 所以我们把系统的时统数最大设为10*60*100=60000, 转为2进制为16位, 所以完整的数据是每一帧数据中加一个16位的时统数。而总共数据传输速率也就相应的增加了16*100=1.6K。

3、结束语

系统联试表明, 本系统能够完成3种热像仪和红外产品的图像采集, 并能实现4个分系统的数据对时功能, 完全达到了设计要求。

摘要:本文讨论的系统主要用于科研阶段的红外产品主要性能参数的测试和对照, 记录红外产品和热像仪的各种工作参数, 进行事后数据分析和对比。利用采集的数据对外场试验过程中各种数据源的采集和数据源的融合。包括红外导引头图像数据和数字量的采集及存储;中波红外热像仪图像数据的采集和存储;长波红外热像仪图像数据的采集及存储;短波红外热像仪图像数据的采集及存储。并完成以上四种采样数据的系统对时。

高精度多路电压采集系统 第6篇

1 系统总况

笔者设计的具有多路电压采集与通信功能的高精度电压采集系统,可将前端传感器转换后的多路差分或单端模拟电压信号,转换成微控制器和计算机能够识别的数字信号,并组成基于RS-485总线的通信网络,进而实现分布式计算机信息采集系统。系统硬件主要包括多路模拟通道切换电路、增益可控的精密仪表放大电路、抗混叠有源低通滤波电路、模数转换电路、微控制器、RS-485光隔离通信接口电路和电源转换电路,各电路模块间的连接如图1所示。图1中除计算机之外的部分可以做成一个完整的电路模块,以MCU为控制核心实现智能采集与控制,计算机端的软件设计采用LabVIEW实现。

2 硬件电路

2.1 微控制器

采用单片机STC11F04E作为模块的控制核心,STC11F04E具有4KByte ROM程序存储器、256Byte RAM数据存储器,内置复位电路和看门狗功能,采用1T指令周期使程序执行速度更快,1KByte EEPROM实现相关参数的掉电记忆存储功能,二十引脚封装,大大节省了电路板的面积。

2.2 多路模拟通道的切换

本设计实现4路模拟电压信号的采集,采用双四选一多路模拟开关CD4052实现通道的切换,在STC11F04E的控制下,完成4路输入信号的分时多路采集[1]。

2.3 仪表放大电路

本设计可设置0~5V、0~500mV和0~50mV 3个量程,以实现不同输入范围的应用要求。系统选用可编程增益放大器实现量程可控:一种方案是采用PGA103,该放大器具有体积小、功耗低,适用于信号变化范围大的应用场合,尤其可以方便地通过数字编程方式将增益设为1、10和100;如果考虑成本因素,可采用高精度仪表放大器AD620,使用一个外部电阻即可在1~10 000设置增益。AD620采用八引脚封装,尺寸远小于三运放分立式设计,大大节省了电路板空间,并且具有高精度、低失调电压、低失调漂移及低功耗等特性。系统亦选用CD4052通过单片机控制来选择相应的增益电阻,实现增益可控,从而改变量程。

笔者根据AD620的增益电阻计算公式undefined为所需增益)计算出相应的阻值,为满足所选用的A/D转换器的输入范围,增益分别设为1、10和100,放大后的信号均为0~5V。需要指出的是,进行软件编程时,应将采集到的电压再除以相应的增益才能得到实际输入信号的值。

2.4 滤波电路

本设计选用一种幅度响应极为平坦的二阶有源巴特沃兹低通滤波器,将前端AD620放大后的信号送入该滤波电路(图2a)进行抗混叠滤波。巴特沃兹响应滤波器的通带和阻带中均无纹波,可以保持精确的信号电平,它采用Sallen-Key拓扑结构,设计简单、电路元件少[2],可提供巴特沃兹响应。Multisim10仿真得到的幅频特性如图2b所示,图中横轴为频率,纵轴为幅度的衰减程度,该滤波器的截止频率约为3Hz。

2.5 模数转换器

模数转换器采用10位A/D转换芯片TLC1549,5V量程时的分辨率为:

undefined

精确稳定的模数转换器基准电压是影响A/D转换精度的关键,笔者选用LM399构成的精密基准电压源为其提供5V基准电压,LM399内部采用次表面隐埋新型稳压管,具有极低的电压温度系数(0.3×10-6/℃)。

2.6 通信接口电路

笔者设计的RS-485通信接口电路如图3所示,STC11F04E的标准串行口RXD和TXD分别通过光电耦合器TLP521连接到MAX485芯片的RO和DI引脚;电阻R11和R9提供网络失效保护,使A端电位高于B端,进而RXD端呈现恒定的高电平,防止单片机接收混乱,提高RS-485节点与网络的可靠性;R10为终端匹配电阻,根据实际需要选取。为了更加可靠地保护RS-485网络,确保系统安全,设计中增加钳位于6.8V的TVS管D5、D6和D7,避免RS-485总线在受外界干扰时产生的高压损坏RS-485收发器。图3中的两个20Ω的电阻R12和R13起到隔离的作用,在该多路电压采集系统发生硬件故障时不会使整个总线的通信受到影响。

2.7 电源电路

系统采用12~24V的外接直流电源供电,经转换后为各芯片供电。如图4所示,D3和D4是保护二极管,防止电源接反,损坏芯片;采用MC7809得到+9V电压,用电压反转芯片ICL7660由+9V得到-9V的电压,即可得到±9V的对称电源,该电源为滤波电路中的集成运放和仪表放大器AD621供电;经MC7805得到+5V电源,为5V的数字电路供电,该5V电源再经磁珠L1得到的电压为模拟电路供电,使用磁珠实现模拟和数字电源的隔离。设计电路板时应将模拟地和数字地在单点连接到一起,这里采用0Ω电阻R15实现。采用1W的DC-DC隔离电源模块B0505S实现RS-485光隔离通信电路中光耦两端电源的隔离[3],其输入、输出电压均为5V。

2.8 电路板设计注意事项

PCB的布局布线对测量精度有很大的影响,在电路板布线时应将数字信号和模拟信号的走线分开,各集成芯片的电源引脚都应加约0.1μF的旁路电容并尽量靠近电源引脚,电源走线要加宽,电路中应有地平面。

3 软件

3.1 单片机程序

单片机程序设计主要包括模数转换程序、数字滤波程序、MODBUS通信程序和EEPROM读写程序,单片机利用这些程序实现完整的数据采集与通信功能,可以按照MODBUS协议与计算机端的监控程序通过RS-485接口进行通信。在此,只对数字滤波程序的编写进行介绍,MODBUS通信程序请参考文献[4]。

由于模拟滤波器无法显著减小带内噪声,因此应采用合适的软件数字滤波方法[5]。数字滤波采用中位值平均滤波法,连续采样N个数据,去掉一个最大值和一个最小值,然后计算N-2个数据的算术平均值,对于偶然出现的脉冲干扰,可消除由于脉冲干扰引起的采样值偏差,对温度、液位及压力等变化缓慢的被测参数有良好的滤波效果。具体程序代码如下:

3.2 LabVIEW程序

采用LabVIEW软件编写上位机程序,完成基于MODBUS协议的串口通信与数据处理。

3.2.1 串口通信程序

在NI网站下载NI MODBUS的VI库文件包,将其中的NI Modbus.llb文件拷贝到LabVIEW安装程序的vi.lib文件夹下,将nimodbus.mnu文件拷贝到user.lib文件夹下,再次打开LabVIEW,即可在程序框图的函数面板里的用户库下看到所有NI Modbus子VI。本设计调用MB Serial Init.vi和MB Serial Query(poly).vi实现基于MODBUS协议的通信程序如图5所示,该程序利用MODBUS协议的读保持寄存器功能(03号命令)读取下位机数据,利用写单个寄存器功能(06号命令)实现对下位机地址、波特率及量程等参数的修改。

3.2.2 数据处理程序

将读取到的各通道数字量换算成实际电压值的程序如图6所示。输入5V、500mV和50mV量程的电压在前端电路处理时分别被放大了1倍、10倍和100倍,此处应根据量程再除以相应的倍数,再根据A/D转换器的基准电压对应的比例换算关系即可得到最终的电压值。下面给出500mV量程对应的数据处理程序,主要用到了LabVIEW的“条件结构”和“索引数组”功能。

4 结束语

笔者设计的多路电压采集系统针对高精度、抗干扰和网络化测量的要求,采用高精度仪表放大、模拟和数字滤波、光隔离通信、电源抗干扰及MODBUS通信协议等技术,实现了低成本的多路电压测量,并完成了上位机的监测。按照该设计方案,可以实现高精度的模拟电压测量,若配合相应的传感器和信号调理电路,则可用来实现工业现场的温度、压力、光照及浓度等各种缓慢变化信号的高精度测量。

摘要:针对高精度、低成本多路电压测量系统的高精度、智能化、抗干扰和网络化的要求,介绍以单片机为下位机控制核心,用LabVIEW编写上位机监控程序的电压采集系统的设计方案。

关键词:电压采集系统,单片机,LabVIEW,MODBUS

参考文献

[1]李贵山,周征,黄晓峰.检测与控制技术[M].西安:西安电子科技大学出版社,2006:92~127.

[2]Bonnie Baker著,李喻奎译.嵌入式系统中的模拟设计[M].北京:北京航空航天大学出版社,2006:73~91.

[3]张伟,任勇峰,孙涛,等.基于FPGA的多通道数据隔离采集电路设计[J].化工自动化及仪表,2011,38(10):1209~1210.

[4]陈雷,张继峰,陈爽.EPS计算机集中监控系统的设计[J].电气应用,2009,28(19):74~75.

多路矩阵开关信号采集系统设计研究 第7篇

关键词:矩阵信号,单片机,HD7279

1 引言

多路矩阵开关信号采集传输系统可广泛应用于各种场合,但一般来说必须具有以下功能才能够达到我们实用的目的。首先必须具有数据采集功能,该功能部分能够完成数据的有效采集和编码,将模拟信号转化为二进制信号,其次,数据传输部分能够完成对数据的可靠传输;第三,该系统的处理单元要能够完成集中控制和数据管理储存,并完成向计算机的数据传输;第四,该系统要能够实时显示采集的数据。基于这些要求我们对系统进行设计。

2 系统概要设计

开关信号采集的系统传统上采用分立元件,如利用74LS148芯片进行设计,但系统不具备足够的信息储存能力,对信息的记忆能力较差。如果信号输入过快,就会造成信息丢失,达不到效果。

考虑到系统的实际需求和设计完整性,我们采用带有储存单元的HD7279芯片和单片机AT89S51来完成系统设计。芯片集成度高,数据信息不会丢失,可以提高信号传输的有效性和可靠性,更好的达到有效的采集和传输数据的目的,而且比较经济。多片HD7279之间都是并行关系,可同时对若干个终端进行信号的采集与传输,单片机主要是对多片HD7279进行控制,并将HD7279传输来的信号暂时储存在单片机中,由单片机实现与计算机之间的通信,把HD7279来得信息传输到计算机中。该系统的原理图如图1。

该系统由数据采集单元、单片机控制单元,通信传输单元组成。DB25接口可以外接所需的矩阵开关信号终端,扩大此系统的应用范围。数据采集单元有信号输入时,就向单片机发出中断请求,通过键盘扫描单片机对数据进行采集并储存在各个串口的寄存器中,然后由单片机通过串行通讯接口逐个将各路信号数据传输到计算机中。

3 主要芯片功能

3.1 AT89S51单片机

AT89S51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。其主要管脚说明如下:[1]

VCC:供电电压。

GND:接地。

P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。

P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口。

3.2 HD7279芯片

HD7279是一片具有串行接口的,可同时驱动8位共阴极式数码(或64支独立LED)的智能显示驱动芯片,该芯片同时还可连接多达64键的键盘矩阵,单片即可完成LED显示、键盘接口的全部功能。HD7279内部含有译码器,可直接接受BCD码或16进制码,并同时具有2种译码方式,此外,还具有多种控制指令,如消隐、闪烁、左移、右移、段寻址等。HD7279具有片选信号,可方便地实现多于8位的显示或多于64键的键盘接口。其特点如下:[2]

1)串行接口,无需外围元件可直接驱动LED

2)各位独立控制译码/不译码及消隐和闪烁属性

3)(循环)左移/(循环)右移指令

4)具有段寻址指令,方便控制独立LED

5)64键键盘控制器,内含去抖动电路

HD7279A需要一外接的RC振荡电路以供系统工作,其典型值分别为R=1.5KΩ,C=15p F。

4 电路设计

4.1 单片机控制电路设计

由于单片机AT89S51有P0、P1、P2、P3四个I/O接口组,一共有32个独立的I/O通道。应此我们采用单片机的P0作为数据端口,P0口的每个I/O口分别和HD7279的DATA口相连,作为数据传输通道。P1口与HD7279的片选CS相连,每个口接一个HD7279的片选端。P2口接HD7279的KEY端子,P1口给出片选信号,让对应终端进行数据的采集,让后将采的的数据传输到P0端口,并保存在P0端口的寄存器当中。同时,单片机将数据进行转移到单片机的串口当中,由串口和计算机进行数据的传输。[3,4,5]

该部分的电路设计如图2。

4.2 数据采集单元的设计

数据采集单元主要是由HD7279芯片来完成,通过接入64位键盘,对所采集到的数据具有保存的功能。图3是对这部分的具体设计。

4.3 按键部分设计

按键部分的原理电路下图所示。键值赋值的最直接办法是将行、列线按二进制顺序排列,当某一键按下时,键盘扫描程序执行到给该列置0电平,读出各行状态为非全1状态,这时的行、列数据组合成键值。以上图为例,从左到右、从下到上依次是77,7B,7D,7E;B7,BB,BD,BE;…;E7,EB,ED,EE。这时键值依次为88,84,82,81;48,44,42,41;…;18,14,12,11。

其主要工作方式主要包括:

4.3.1 编程扫描工作方式

编程扫描工作方式是利用CPU在完成其它工作的空余,调用键盘扫描子程序,来响应键输入要求。在执行键功能时,CPU不再响应键输入要求。键盘扫描子程序完成下述几个功能:

1)判断键盘上有无键按下。

2)去键的机械抖动影响。

3)求按下的键号。

4)键闭合一次仅进行一次键功能

4.3.2 定时扫描工作方式

定时扫描工作方式是利用单片机内部定时器产生定时中断,CPU响应中断后对键盘进行扫描、并在有键按下时转入键功能处理程序。

当键盘中有键按下时,先检查KM标志,KM=0时,表示尚未作去抖动影响处理,此时中断返回同时KM置1。因为中断返回后要经10ms才能再次中断,相当于实现了10ms延时效果,因而程序中不需要演示。当再次定时中断后检查KP标志,由于开始时KP=0,程序进入查找键号,并使KP置1,执行键功能程序,然后返回。在KM,KP均为1时,表示键处理完毕,再次定时中断时,都返回原来CPU状态。

4.4 串行通信及系统硬件设计

为了和计算机之间进行快速有效的通信,我们采用串行通信方式,这种方式有两种协议,分别为RS232和RS485协议。232适合于短距离的串行通信,485适合于长距离的通信,可根据需要进行选择使用。

5 软件设计

5.1 单片机控制程序设计

单片机对HD7279的控制程序流程图如下。当然,单片机还对收发的数据进行进行编码和传输。其原理框图如图5所示:[6,7]

5.2 数据采集程序设计

对开关信息采集系统的软件编程,主要是单片机对HD7279的操作进行的编程,,主要完成读键盘程序、接收一个字节等功能。其程序流程图如图6。

5.3 串行通信程序设计

串行通信的程序设计主要指对串口的初始化,设定串口的工作方式,波特率,打开那个中断源,以及中断的优先级等。

6 小结

系统设计原理正确可靠,采用HD7279芯片和一片AT89S51单片机完成了硬件的设计,相比于采用74LS148芯片和RS485芯片设计的电路,数据存储及时可靠,系统鲁棒性强,信号传输的有效性和可靠性好,但是本文所设计的电路是理想条件下的基础电路,对一些特殊情况没有进行处理,如多路数据同时输入单片机处理机制等。在实际应用中需要结合应用领域背景对其进行扩展,加以完善。

参考文献

[1]Baidu Encyclopedia[OL].[2009-03-23].http://baike.baidu.com/view/1641206.htm.

[2]Baidu Encyclopedia[OL].[2009-03-23].http://baike.baidu.com/view/2383834.htm

[3]张侃谕,王亚哲,袁亚丽.ARM和CPLD实现温室多路数据采集控制系统[J].微计算机信息,2006,10(2):19-21.

[4]李正岱.多路信号采集器的硬件电路设计[J].微计算机信息.2008(24):60-63.

[5]赵曙光.可编程逻辑器件原理开发与应用.[M].西安:西安电子科技大学出版社,2002.

[6]张齐,杜群桂.单片机应用系统设计技术——基于C语言编程[M].北京:电子工业出版社,2004.

谈多路数据采集与处理系统 第8篇

关键词:数据采集,数据通信,技术应用

0 引言

数据采集系统,从严格的意义上来说,应该是用计算机控制的多路数据自动检测或巡回检测,并且能够对数据实行存储、处理、分析计算并从检测的数据中提取可用的信息,供显示、记录、打印或描绘的系统。

数据采集系统一般由数据输入系统、数据存储与管理、数据处理、数据输出及显示这四个部分组成。输入通道要实现对被测对象的检测、采样和信号转换工作。数据存储与管理要用存储器把采集到的数据存储起来,建立相应的数据库,并进行管理和调用。数据处理就是从采集到的原始数据中,删除有关干扰噪声,分辨无关信息和必要的信息,提取出反映被测对象特征的重要信息。另外,就是对数据进行统计分析,以便于检索;或者把数据恢复成原来的物理量形式,以可输出的形态在输出设备上输出,例如打印、显示、绘图等。数据输出及显示就是把数据以适当的形式进行输出和显示。

1 数据采集在电测专业中的应用

数据采集就是将被测量对象的各种参量通过各种传感器元件做适当转换后,再经信号调理、采样、量化、编码、传输等步骤,最后送到控制器进行数据处理或储存纪录的过程。控制器一般均由计算机承担,所以说计算机是数据采集系统的核心,它对整个系统进行控制,并对采集的数据进行加工处理[1]。

电测试验专业主要负责电测、热工、电能质量三大专业的技术监督管理及实施工作,各项工作的开展都与数据采集密不可分。尤其是进行室内仪表检定时,校验仪器能实时显示检定数值与实际值的误差,但校验仪器还存在着一个缺陷,就是不能对历史记录进行查询,如对某个测试值存在疑问时无法查询该检定仪表在检定过程某个时刻所显示的历史值。为此,通过开发一个上位机监控软件,对校验过程中得到的数据进行实时曲线绘制、报警设置、历史曲线绘制、数据的保存和查询等分析与处理。

2 多路数据采集系统软件

2.1 多路数据采集系统软件的设计

本文设计的数据采集系统是基于PC硬件平台,采用研华PCL-812PG多功能数据采集卡作为数据采集工具,并利用Visual Basic软件进行多路数据采集与处理系统的程序设计。其结构如图1所示。

程序指令如何由总线传达到DAQ(Data Acquisition Card)卡,并使DAQ卡执行控制或返回DAQ卡的状态信号数据?这是一个相当不容易解决的问题。在以往DOS的时代里,利用Input/Output指令可以直接控制计算机上的地址,但在Windows操作系统中已经不能直接这样做了。

Visual Basic本身的程序无法直接控制DAQ卡,必须借助DLL或是额外OCX控件的协助。一般的厂商经常会提供相应的DLL程序提供方便的途径供用户快速地达到控制的目的,较大型的厂商通常也会提供OCX,帮助用户以最方便的方式和DAQ卡通信[2]。两方式都很好,可以根据使用的场合而定,如果使用的信息采集量不是很多,而且不在意CPU被占用的时间,使用OCX是相当方便而且简单的。如果希望对DAQ卡进行底层控制,使采集卡的功能得以淋漓尽致地发挥,使用DLL函数调用可以使DAQ卡的控制达到最大的灵活性[3]。本文主要是使用研华PCL-812PG板卡所提供的OCX控件对其进行控制。针对一般的模拟输入、模拟输出、数字输入输出都有相对应的OCX可以使用。在将板卡驱动安装完成后,就会有这些必要的OCX存在,只要按照一般的OCX使用方式加载,并且按板卡的指导说明使用就可以了。

2.2 Visual Basic与数据采集卡的通信

在Visual Basic中,每个OCX所提供的属性、事件、方法统称为接口成员。本课题使用的DAQAI控件的主要接口成员如下。

Close Device:重置先前打开的设备。

Data Type:指定返回的数据的方式及类型:原始数据或转换后的数据。

Get Input Range:获取指定设备的输入范围。

Max Differential Channel:获取可用的差动模拟输入通道。

Max Single Ended Channel:获取可用的单端模拟输入通道。

Overall Input Range:指定设备的全部输入范围。

Open Device:打开所选的板卡设备。

Raw Input:读取采样中的数据,以二进制数值表示。

Realinput:读取采样中的数据,转换成电压值形式表示。

Select Device:弹出板卡选择对话框。

2.3 数据的读取、显示及报警

本数据采集卡给用户提供了两种读取数据的方法,分别是:以二进制的形式读取数据和以电压值的形式读取数据。本课题使用的是以电压值的形式读取数据然后再用Format函数使获取的数据精确到小数点后两位。以及使用Hex函数把经放大之后的电压值数据返回其整数的十六进制数表示其范围为000H~FFFH,同时以一定的放大公式将格式化之后的电压值转化成本设计中所要采集的温度、电压和流量数据。然后使用Timer控件使程序能够按照一定的时间段获取数据,将这些转化之后的温度、电压和流量数据以二维数组的形式保存下来并跟程序中的参数设置进行比较,判断其是否超出给定的上、下限同时在Label和Shape控件组中实行文字说明和图示报警。程序代码分别如下。

数据的读取和显示

报警设置(选取一路的报警设置,其他两路原理相同):

温度报警,wd为经转换后的温度显示值,wh和wl分别和该路通道的上下限:

Label21.Caption="温度过高"

Label21.Caption="温度过低"

Label21.Caption="温度正常"

End If

2.4 实时曲线的显示

实时曲线反映了现场数据的实时性和当前趋势,以监测该点在现场工况变化情况下的控制稳定性。因此,在实现时需显示曲线的动态变化,利用Picture Box控件让图形的显示能够不断地随采集到的数据而更新,从而使整个曲线动态地向左移动[4]。

在本课题设计中的动态左移是通过翻页的形式实现的,每页能画200个点,画满200个点之后翻页,在画点的同时根据读取的数据跟程序设置的上、下限参数比较分别以绿色的点表示正常,红色的点表示超出上、下限。

其主要程序如下,以一路为例,其他两路原理相同。

200个点以内温度曲线

End If

t=t+1(变量t为读取数据的记录数)画200个点以后翻页

2.5 历史数据的查询

将记录和数组两种数据类型结合,能够描述更为复杂的数据,尤其是具有表格形式的阵列结构。Visual Basic有一个表格控件(MSFlex Grid)能够方便适宜地显示这种数据形式[5]。表格控件用于对表格形式数据进行显示和操作。表格控件不是VB的内部控件,在集成环境的工具箱中见不到它。但能在“工程、部件、控件”标签中选择“micrsoft flexgrid control 6.0”将MSFlex Grid控件添加到窗体中。该控件提供了高度灵活的网格排序、合并和格式设置功能,网格中可以包含字符串和图片。Row、Col和Text为本课题中主要应用的该控件的属性,对Row和Col进行设置后,才能访问或修改单元里的数据(Text或Picture属性)。Text属性返回或设置由Row和Col属性所定义的当前单元格的文本内容。本程序中设置了三个表格控件,分别表示选择显示的数据记录号及数据,超出上、下限的数据的记录号及数据,然后对选择显示的数据加以比较大小,得出最大,最小值及其平均值。在显示数据的同时定义一个新的数组来表示所显示的该路通道的数据。

2.6 数据的保存

数据的保存及调用采用通用对话框Commondialog控件提供的一组基于Windows的标准对话框界面[6]。使用单个通用对话框可以显示文件打开、另存为、颜色、字体、打印和帮助对话框。在“工程、部件”中选择“Microsoft Common Dialog Control 6.0”控件添加到窗体。数据保存时首先设置过滤文件类型Commondialog1.Filter=“*.txt|*.txt”显示记事本格式的文件,然后对要保存的数据进行判断其是否超出上、下限然后给以一定的标记显示后进行保存。

2.7 历史曲线的显示

在本系统设计中不仅需要对历史的记录数据进行查询还需要对历史曲线进行观察。对历史曲线的查询主要由三个按钮完成,分别为“显示曲线”、“上页”和“下页”。

在历史曲线显示中每页能显示100个数据的曲线,显示曲线按钮主要以程序需要查看的起始记录号和100的整除得出起始所处的页数,然后确定坐标轴上的值,同时判断终止记录数能否在同一页内显示出来,如若不能在一页内显示出来就查看下页,同时确定下页的起始数据记录。

在下页的按钮中,首先确定翻页后所在的页数,然后判断该页的起始数据是否大于100和该页数的乘积,如若大于则能继续翻页,同时定义一个新变量为该页的页数,原定义的页数加1,该页的起始数据之后的点继续在该页上显示出来,直到能显示该页完整的100个数据,定义该页终止数据之后的那个数据为下页的起始数据。

在上页的按钮中,首先定义上述定义的新变量页数减1,判断其显示上页是否为起始页,如若是则显示从起始页的起始数据到该页数据满并定义该页的终止数据为下页的起始数据。如若非起始页,则利用该页数和100的乘积减去需要查看的起始数据作为该页的起始数据,然后在Picture控件上显示出该页的100个数据的点,并定义该页的最后一个数据为下页的起始数据。

3 结束语

本文介绍了一般的在Windows环境下基于Visual Basic软件,运用OCX控件实现对控制系统中的数据采集卡的程序开发的步骤和方法。根据上述可知,电子计算机的发展对通信起了巨大的推动作用。计算机和通信紧密结合可以构成灵活多样的通信控制系统,也可以构成强有力的信息处理系统。

参考文献

[1]周林.数据采集与分析技术[M].西安:西安电子科技大学出版社,2005.

[2]师桂琴,刘绍中.用VB开发基于虚拟仪器的数据采集系统实例[J].计算机应用,2002,22(9):137-138.

[3]范逸之,廖锦棋.Visual Basic硬件设计与开发[M].北京:清华大学出版社,2004.

[4]李玉东,李罡,李雷.Visual Basic6.0控件大全[M].北京:电子工作出版社,2000.

[5]张瑜,韩玉杰,闵昆龙.基于VB的多路数据采集系统上位机软件设计[J].林业机械与木工设备,2007,35(1):29-30

基于485总线的多路数据采集系统 第9篇

数据采集技术是信息科学的重要分支,是传感器、信号获取、存储与处理等信息技术的结合。将外部世界存在的温度、压力、流量、位移、液位等转换为模拟或数字信号,再传送到计算机作进一步处理的这一过程,即“数据采集”。数据采集已在工农业、医药卫生、生态环保、航空航天、军事、气象等领域得到了广泛的应用。可以通过对信号的测量、处理、控制及管理,实现测、控、管的自动化与系统化。介绍了一种基于RS-485现场总线的数据采集系统,给出了图形对象编辑器的完整设计方法。采用面向对象技术设计的软件具有易于扩展、通用性强的特点。

2. RS485总线简介

2.1 RS-485

RS-485标准是由EIA—电子工业协会和TIA—通讯工业协会共同制订和开发的。EIA曾经在它所有标准前面加上RS前缀英文Rcommended standard的缩写,因此许多工程师一直延用这种名称。RS-485总线作为一种多点差分数据传输的电气规范规,已成为业界应用最为广泛的标准通信接口之一。这种通信接口允许在简单的一对双绞线上进行多点双向通信,它所具有的噪声抑制能力、数据传输速率、电缆长度及可靠性是其他标准无法比拟的。因此,许多不同领域都采用RS-485作为数据传输链路。例如:汽车电子、电信设备局域网、智能楼宇等都经常可以见到具有RS-485接口电路的设备。这项标准得到广泛接受的另外一个原因是它的通用性RS-485标准只对接口的电气特性做出规定,而不涉及接插件电缆或协议,在此基础上用户可以建立自己的高层通信协议。

2.2 RS-485特性

逻辑“1”以两线间的电压差为+(2~6)V表示:逻辑“0”以两线间的电压差为一(2~6)V表示。接口信号电平比RS-232-C降低了,就不易损坏接口电路的芯片,且该电平与TTL电平兼容,可方便与TTL电路连接。KS-485的数据最高传输速率为10Mbps。RS-485接口是采用平衡驱动器和差分接收器的组合,抗共模干能力增强,即抗噪声干扰性好。RS-185接口的最大传输距离标准值为4000英尺,实际上可达3000米,另外RS-232-C接口在总线上只允许连接1个收发器,即单站能力。而RS-485接口在总线上是允许连接多达128个收发器。即具有多站能力,这样用户可以利用单一的RS-485接口方便地建立起设备网络。因RS-485接口具有良好的抗噪声干扰性,长的传输距离和多站能力等上述优点就使其成为首选的串行接口。因为RS485接口组成的半双工网络,一般只需二根连线,所以RS485接口均采用屏蔽双绞线传输。

RS485接口连接器采用DB-9的9芯插头座,与智能终端RS485接口采用DB-9(孔),与键盘连接的键盘接口RS485采用DB-9(针)。在使用RS485接口时,对于特定的传输线经,从发生器到负载其数据信号传输所允许的最大电缆长度是数据信号速率的函数,这个长度数据主要是受信号失真及噪声等影响所限制。图1所示的最大电缆长度与信号速率的关系曲线是使用24AWG铜芯双绞电话电缆(线径为0.51mm),线间旁路电容为52.5p F/m,终端负载电阻为100欧时所得出。由图1中可知,当数据信号速率降低到90Kbit/s以下时,假定最大允许的信号损失为6d BV时,则电缆长度被限制在1200m。实际上,图中的曲线是很保守的,在实用时是完全可以取得比它大的电缆长度。当使用不同线径的电缆。则取得的最大电缆长度是不相同的。例如,当数据信号速率为600Kbit/s时,采用24AWG电缆,由图可知最大电缆长度是200m,若采用19AWG电缆(线径为0.91mm)则电缆长度将可以大于200m若采用28AWG屯缆(线径为0.32mm)则电缆长度只能小于200m。

3. 系统结构及功能

用内部集成了A/D转换器的16位新型单片机SPCE061A为中心来采集数据并做初步处理;现场显示部分采用液晶模块;远程通信部分采用国际标准的RS485总线,监控中心使用PC机,使用RS232转RS485接口连接通信总线和PC机。如图2所示。这里采用双CPU控制,而在数据采集的远程和近端均采用单片机控制。远程完成资料的采集、抽样、平滑、发送;近端完成资料接收、校验、纠错、处理与显示等。采用双CPU可在高速率通讯时,对资料进行校验和纠错以保证资料的正确。两片CPU均采用MCS51系列8031芯片,在近端与远程的通讯中,又采用国际标准的RS485差分方式接口,使通讯速率和传输距离大大优于RS232标准接口方式,并且用线最少(仅用两根非屏蔽双绞线)。由于采用差分传输,可最大程度抑制共模信号,使抗干扰能力有很大的提高。此方案由于采用高性能的新型16位单片机,因此对数据的处理能力更强,而且其内部已经集成了A/D转换器,所以系统设计的复杂性大为降低;液晶显示较之数码管来说除了硬件联接的复杂性大大降低以外,显示界面也更加友好,显示的内容也更多;而且因为使用了操作方便、界面友好、功能强大的PC机作为监控中心,使系统的管理和升级十分方便。

4. 系统软件设计

系统的软件设计采用了面向对象技术。面向对象各种分析设计方法提供了各自所使用的概念和符号,比如CIMS实施中的IDEF4方法,Booch面向对象方法,以及Rumbaugh的OMT方法(对象建模技术)等。其中IDEF4是完善的工程方法,提供了一系列的图表和文档支持。在对象的动态描述中,Booch方法的对象生命期状态转换图与对象相互关系的时序图很有特点。OMT方法发展比较完善,但学习起来比较困难。由于本系统不是复杂的大系统,采用Booch分析设计方法。系统软件由数据采集和数据管理两大模块组成,数据采集程序模块操作串口采集数据。数据管理模块管理数据,含有数据显示、数据备份、文件管理和目录管理几个子模块。

4.1 主程序

主机系统的主程序流程如图3所示。从机主要负责循环采集7路数据和命令判断,在没有接收到主机命令的时候,一直做循环采集,并存入Buffer,以便增强系统的响应速率。

4.2 数据采集部分

数据显示子模块软件结构如图4所示,采用面向对象技术设计的曲线对象编辑器,可以方便地移植到其他需要显示、编辑曲线的系统中。

图形类(CGraphics Object)、项目类(CGraphics Item)、数据类(CGrid Data)和工具类(CGraphics Tool)互相作用构成曲线对象编辑器。CProcol Data类对象从DUT模块采样得到现场温度数据,数据经逻辑组合,按用户的配置传入CGrid Data类对象。CGraphics Object类对象保存数据类CGrid Data对象的指针,调用CGrid Data类的接口操作数据,绘制数据的历史、实时曲线。应用程序框架中维护一个曲线项目类(CWLLine Item)的链表,该项目类是从项目基类和图形类继承得到的。再由工具类(CSelect Tool)操作项目类,从而项目类、图形类与工具类构成一个编辑器。可选中、删除、移动、拉伸曲线对象,并可以通过属性页更改所选中曲线对象的属性,如背景色、曲线颜色、数据源、数据显示范围、绘制模式(单道、层叠、3D)等。各个类的设计遵循面向对象技术的要求,类的接口小、少、明确,类间耦合程度低,程序模块化好。类的继承结构通过提取类间共性来确定,这样代码紧凑,复用性好。CGraphic Object是图形类的基类,定义了绘制模式、绘制区域、绘制边界、数据源、数据范围、字体、背景色等属性,实现了读数据源、数据区域进出栈等方法,定义了创建、移动、绘制、删除等接口。CWLLine是图形类的子类实现创建、移动、绘制、删除等接口,绘制数据的曲线。CGraphics Item是项目类的基类,定义了项目管理的接口(如选中,重绘,鼠标左、右、双击等)及项目逻辑联系等属性。CGraphics Tool是辅助的工具类的基类,在程序中是静态对象,截获用户的鼠标事件,操作项目对象。类CProcol Data封装了研华协议、松下协议,提供统一的操作方法。类CGrid Data定义了操作数据源的接口,子类CFile Data,CDBData是实现了CGrid Data接口的文件数据源类和数据库数据源类。图形类对象包含该数据类。

4.3 软件调试

软件调试是整个系统设计过程中非常重要的一个环节。根据各部分的特点,进行了如下调试:(1)A/D转换模块软件调试:程序下载,执行。调节各通道的电位器,液晶显示随之变化,说明A/D转换调试通过。(2)串行口发送模块调试:将采集并处理后的数据通过串行口发送到监控中心(PC机)。则PC机应能收到和液晶显示相同的数据。(3)串行口接收模块调试:下载后运行程序,在PC端发送“H”,接着PC机收到一组数据,说明可以响应此命令。然后试验其它的命令(A,C0…C7,O…O7)亦能正确响应。此模块调试成功。(3)联机调试将完整的程序下载到单片机上,上电运行。第1步,液晶显示正常。第2步,调节各电位器,液晶所显示的数据随之变化,说明A/D转换和数据处理工作正常。第3步,接着从PC机端发送各种命令(H,A,C…C7,O0…O7),单片机都能正常响应,说明通信和控制部分工作正常。至此,联机调试成功。

5. 结论

本系统由于采用具有较高性能价格比且内部集成A/D转换器的新型16位单片机SPCE061A和方便的RS232转RS485接口,降低了软硬件设计的复杂度,使整个系统的开发和维护成本降低,同时系统的可靠性得到了提高。因此,本系统具有结构简单、使用方便、易于维护和升级和控制灵活等特点,配上不同的传感器,即可用于工业生产过程控制或工业设备中对实时参数进行采集处理,具有较高的实用性和开发价值。该系统的基本设计已经完成,系统稳定,运行良好。

摘要:本文介绍了一种基于RS-485现场总线的数据采集系统,给出了图形对象编辑器的完整设计方法。采用面向对象技术设计的软件具有易于扩展、通用性强的特点。

关键词:RS-485总线,多路数据采集系统

参考文献

[1]吴居娟,齐娟.基于可编程增益放大器的多路高速数据采集系统设计[J].煤矿现代化,2007(05).

[2]张建春.基于嵌入式实时操作系统的多路数据采集系统[J].江苏电器,2007(S1).

[3]丁鸣艳,李文.基于多路数据采集的交流调速系统设计[J].机械与电子,2007(10).

[4]何其娟,刘长军.一种多路微波功率及温度数据采集系统的实现[J].信息与电子工程,2007(02).

[5]杨林楠,李红刚,张丽莲,彭琳.基于FPGA的高速多路数据采集系统的设计[J].计算机工程,2007(07).

上一篇:核算科目论文下一篇:全媒体背景