数据采集是目前一种流行且实用的技术。经调查,目前数据采集器的市场需求量大,以数据采集器为核心构成的小系统应用广泛,因此开发高性能的数据采集器具有良好的市场前景。本文以实验室数据采集、工业现场数据采集、野外数据采集为主要方向,设计一款结构简单、操作方便、高性价比、具有显示、记录存储功能的数据采集系统。
2 数据采集系统设计
2.1 系统硬件设计
数据采集系统硬件电路包括单片机控制、监控、A/D采样、显示驱动、数据存储、数据传输等模块。图1所示为数据采集系统组成框图。
2.1.1 单片机控制模块
本数据采集系统的单片机控制模块选用AT89S52。AT89S52具有40个引脚,8 KB Flash片内程序存储器,1个全双工串行通信口,内置看门狗(WDT)电路。
2.1.2 监控模块
测控系统中存在电源开断、瞬时电压不稳定等因素,造成系统死机、信息丢失、运行不稳定等故障。为实现系统安全可靠、稳定、实时运行,须在测控系统中加入监控模块。系统的监控模块采用X25045,该器件具有电压监控、看门狗定时器和E2pROM等功能,可以直接与微控制器的I/O端口串连。
2.1.3 A/D采样模块
A/D采样模块采用TLCl543。TLC1543是TI公司采用SPI技术的模数转换器,具有输入通道多、高速、高分辨率、高性价比,易与单片机接口等特点。TLC1543的控制端CS、I/O CLOCK、ADDRESS和数据输出端DATAOUT遵循串行外设接口SPI协议。虽然51系列单片机未内置SPI接口,但仅需通过软件模拟SPI协议即可实现通信。TLC1543和微处理器的串行接口之间可通过一个4线接口高速传输数据。
2.1.4 显示驱动模块
系统显示驱动模块采用PS7219。PS7219是一种高性价比的多位LED显示管理器,采用同步串行外设接口(SPI),可与任何单片机相连,并可同时驱动8位LED。
2.1.5 串行通讯接口电路
在工业测控系统中,常用于51系列单片机采集现场模拟量、开关量,而PC机用于监控整个控制现场。这两者间的数据传输或所构成的局部网络、多用户系统和分布式控制系统一般采用串行通信,PC机为主机,单片机为从机。本系统数据传输采用异步串行通讯,采用Maxim公司的典型串行通信接口器件MAX232ECP实现数据传输。
2.1.6 数据存储模块
为了实现系统数据定时采集和按日期保存数据,扩展一片实时时钟日历器件SD2001E。该器件具有I2C总线接口,内置实时时钟所需电池、晶体振荡器、电源管理等电路。系统掉电时可保证时钟正常运行。SD2001E无需外围元件,即可构成高精度实时时钟及具有256 KB非易失性SRAM的数据存储电路。
SD2001E采用24引脚DIP封装。SD2001E的主要特性:年、月、日、星期、时、分、秒的BCD码输入/输出;I2C总线接口(包括实时时钟部分和SRAM部分);自动日历到2099年(包括闰年自动换算功能);内置晶体振荡器,出厂前已对时钟校准,保证精度为±4×10-6,即时钟年误差小于2 min;低功耗,典型值为1.0μA(VDD=3.5 V);工作电压为3.0 V~5.5 V:可设置两路闹钟输出及1 Hz~32 768 Hz的方波信号输出;可设置每分钟固定中断输出或选定频率固定中断输出;内置充电电路和充电电池,电源管理电路以及稳压电路和电池掉电检测电路;内置256 KB的非易失性SRAM,其擦写次数为100亿次,且无内部写延时。
本采集系统设计利用SD2001E实现以下功能:
(1)实时时钟日历。SD2001E可提供高精度的时钟及日历功能,以满足具有定时数据采集、输出控制、数据保存以及定时报警等功能的嵌入式系统需要,同时也可以为系统提供时间以及日期显示功能。
(2)数据保存。利用SD2001E片内32 KB、擦写数为100亿次的高性能NVRAM,无需考虑存储器的擦写寿命及数据存储的可靠性问题。因而,SD2001E为那些需要频繁读写数据的应用提供了解决方案。
(3)定时输出。当系统需要以分钟为基本单位定时输出时(如采集周期固定的多路数据采集、巡回检测系统等),可将SD2001E状态寄存器的INT1ME位置“1”,INT1FE位置“0”,以选择为每分钟边沿中断输出或将INT1ME、INT1FE同时置“1”选择为每分钟固定中断输出。通过单片机的计数器或中断次数软件计数的方法,可得到以分钟为单位的任意时间输出。
SD2001E与AT89S52单片机的硬件连接电路如图2所示。由于AT89S52没有I2C总线,因此采用P2.0和P2.1接口线模拟I2C总线。SD2001E内部SRAM的I2C总线接口SDAE与SDA并联,SCLE与SCL并联。
2.2 系统软件设计
利用ASM51汇编语言编写数据采集与数值计算、数据显示、数据存储和数据通讯软件;采用可视化语言VB6.0设计上位机软件,编写上位计算机数据接收和处理软件。
系统主程序为数据采集系统的主体部分,它由自检与初始化、A/D转换程序、显示驱动、监控程序、按键程序、数据上传通讯、数据定时存储等模块组成。首先是系统初始化。当系统运行正常,则开始运行数据采集软件的主程序,使用默认配置参数设定系统的采集通道数,完成数据采集、数据显示、数据传输及数据定时存储等功能。系统软件设计流程图如图3所示。