当前位置:文档之家› 数据采集系统的设计

数据采集系统的设计

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

本课程设计对数据采集系统作了基本的研究。

本系统主要解决的是采集10路模拟量(10位精度),20路开关量,采集的数据每隔1毫秒,通过串行通讯方式RS485向一台工控机传送的实现方法。

关键字:数据采集、A/D转换、模拟量。

数字量、串行通信数据采集系统的设计1 设计内容及要求设计一个数据采集系统,系统要采集10路模拟量(10位精度),20路开关量,采集的数据每隔1毫秒,通过串行通讯方式RS485向一台工控机传送。

要求:①选择合适的芯片;②设计原理电路(包含译码电路);③编制数据采集的程序段;④编制数据通信程序段;⑤撰写设计说明书。

2 数据采集系统原理及实现方案本课设是设计一个数据采集系统,系统要采集10路模拟量(10位精度),20路开关量,采集的数据每隔1毫秒,通过串行通讯方式RS485向一台工控机传送。

数据采集与传输系统一般由信号调理电路,多路开关,采样保持电路,A/D,单片机,电平转换接口,接收端(单片机、PC或其它设备)组成。

硬件设计应用电子设计自动化工具,数据采集原理图如图1所示:图1 数据采集原理图由原理图可知,此设计主要分三大部分:模拟量的输入采集,数字量的输入采集,从机向主机的串行通信。

信号采集分析:采集多路模拟信号时,A/D转换器前端需加采样/保持(S/H)电路。

待测量一般不能直接被转换成数字量,通常要进行放大、特性补偿、滤波等环节的预处理。

被测信号往往因为幅值较小,而且可能还含有多余的高频分量等原因,不能直接送给A/D转换器,需对其进行必要的处理,即信号调理。

如对信号进行放大、衰减、滤波等。

本题设计要求简单,模拟量和数字量直接给出,故信号采集部分可忽略,而将数据输出直接连接至A/D 转换器输入端。

模拟量的采集:A/D 转换器的选取应考虑:(1)转换时间的选择:转换速度是指完成一次A/D 转换所需时间的倒数,是一个很重要的指标。

A/D 转换器型号不同,转换速度差别很大。

由于本系统的控制时间无具体要求,故可不予考虑,但至少要小于题目要求的1ms ,这是可以达到的。

(2)AD 位数的选择:A/D 转换器的位数决定着信号采集的精度和分辨率。

要求精度为10位。

输入为0~5V 时,分辨率为0049.01251210=-=-N F V V 设计要求10位精度的10路模拟量,通过查阅资料,TLC1543芯片满足要求。

TLC1543 是一种开关电容结构的逐次逼近式A/D 转换器, 片内提供转换时钟,12 位或 8 位串行数据输出。

可采集 11 路模拟输入电压,由片内多路开关选通,并采样保持。

数字量的采集:设计中要求是20路数字量,可利用单片机的I/O 口直接采集,但需要20个I/O 口与之对应,这样,就浪费了芯片的管脚资源,可采用并行采集、串行输出的办法,进行I/O 口扩展。

传输方式分析:通过串行通讯方式RS485向工控机传送。

3 系统硬件设计3.1 模拟量的输入采集设计模拟电压量的输入需要经过A/D转换才能进行采集,此设计要求10路模拟量的10位精度A/D 转换,可采用芯片TLC1543。

3.1.1 TLC1543功能介绍A/D采样模块采用TLCl543。

TLC1543具有以下特点:10位精度、11通道、三种内建的自测模式、提供EOC(转换完成)信号等,串行输出,内部时钟,转换时间21μS,线性度±1.0LSB,该芯片与单片机的接口采用串行接口方式,引线很少,与单片机连接简单TLC1543的控制端CS、I/OCLOCK、ADDRESS和数据输出端DATAOUT遵循串行外设接口SPI协议。

TLC1543和微处理器的串行接口之间可通过一个4线接口高速传输数据。

图2是TLC1543的引脚示意图:TLC1543为20脚封装的CMOS 10位开关电容逐次A/D逼近模数转换器封装和时序图如图2所示A0~A10为11路模拟输入端,图2 TLC1543管脚图REF+ 和REF- 为基准电压正负端,ADDRESS为串行数据输入端用于输入4 位端口地址,DATA OUT 为A/D数据输出端,I/O CLOCK为数据输入输出提供同步时钟,芯片内部有一个14通道多路选择器,可以选择11 路模拟输入通道和3 路内部自测电压中的任意一路进行测试,片内设有采样-保持电路。

在转换结束时EOC置高,表明转换完成。

TLC1543具有高速转换时间,高精度10 位分辨率,最大1LSB不可调整误差和低噪声的特点。

当EOC为高时将CS置低A/D开始工作,由ADDRESS 端送入4 位地址的最高位B3在B3 有效期间输入一个I/O CLOCK 信号,将地址最高位移入A/D地址寄存器,同时从DATAOUT 端口读出前一次采样转换的10位数据的最高位A9,然后送入B2,同时输入一个I/O CLOCK信号,将B2移入A/D地址寄存器,从DATA OUT 读出A8,按此时序进行直到将4位地址送入A/D,同时读出前一次采样转换结果的A9、A8、A7、A6高四位,然后输入6个I/O CLOCK信号,将A5~A0读出,10 个I/O CLOCK 信号后,EOC将置低此时A/D进入转换过程转换完成后EOC置高。

3.1.2 单片机与TLC1543芯片的接口方法TLC1543的三个控制输入端CS、CLOCK、ADDRESS 和一个数据输出端DATA OUT 遵循串行外设接口SPI协议,51系列单片机未内置SPI接口,不过仅需通过软件模拟SPI协议即可硬件方面将TLC1543的CS、CLOCK、ADDRESS、DATAOUT、EOC 五个端口与AT89C52的5个I/O口相连接AT89C52的其余27个I/O 口足以完成其它功能。

采样电路连接如图3所示,仅占用P1.0 P1.1 P1.2 P1.3 P1.4端口就实现了具有10路的数据采集系统。

该系统具有结构简单、可靠、容易扩展、精度高、高性价比等优点。

P1.0、P1.1、P1.2、P1.3和P1.4分别与EOC、时钟、地址、数据、片选端分别相连。

图3 TLC1543与单片机的连接3.2 数字量的输入采集设计数字量可直接与单片机的I/O口相连进行采集,但考虑到有20路数字量,管脚利用量较多,可采用74ls165芯片进行并行采集,串行输出,减少管脚用量。

3.2.1 数字量的得到通过接地和和接5V电源将可得到数字量:图4 数字量的得到3.2.2 74ls165功能介绍74LS165芯片是8位并行输入串行输出移位寄存器,使用此芯片可以扩展一个或多个8位并行I/O口。

引脚图如下图:图5 74ls165的引脚图74ls165有16个引脚,引脚功能如下:D0-D7:并行输入端,可同时输入8路电平信号。

SH:数据置入控制端,当其为低电平时,并行数据(D0-D7)被置入寄存器CLK INH:片选使能端,低电平使能,使能时数据随着脉冲的输入而输出CLK:时钟脉冲输入端QH/QH: 串行输出端,两输出电平时反向的。

SER:串行附加输入端3.2.3 单片机与74ls165芯片的接口方法单片机与74ls165芯片的接口如图所示,可以采集24路数字量:图6 74ls165与单片机的连接3.3 串口通信电路设计RS-485标准接口是单片机系统种常用的一种串行总线之一。

与RS-232C 比较,其性能有许多改进之处。

RS-485管脚的功能如下:RO:接收器输出端。

若A比B大200mV,RO为高;反之为低电平。

RE:接收器输出使能端。

RE为低时,RO有效;为高时,RO呈高阻状态。

DE:驱动器输出使能端。

若DE=1,驱动器输图7 RS-485管脚图出A和B有效;若DE=0,则它们呈高阻态。

若驱动器输出有效,器件作为线驱动器用,反之作为线接收器用。

DI:驱动器输入端。

DI=0,有A=0,B=1;当DI=1,则A=1,B=0。

GND:接地。

A:同相接收器输入和同相驱动器输出。

B:反相接收器输入和反相驱动器输出。

VCC:电源端,一般接+5V。

89C52与MAX485的接口电路如图9.4所示。

P1.7用来控制MAX485的接收或发送,其余操作同串口。

TXD和RXD分别接到单片机上的TXD1和RXD1,直接实现下位机到上位机的电平转化和反向。

电路图如下:图8 89C52与MAX485的接口电路综上所述,整个电路原理图如图9所示:图9 完整电路图4 系统软件设计4.1 模拟量采集子程序该程序通过CPU通道地址的写操作,发出A/D转换启动脉冲,启动以后CPU 查询A/D转换是否结束,一旦结束CPU通过对通道地址的读操作读取数值,当EOC为高时CS置低A/D开始工作,先读出前一次采样转换结果的高四位,然后输入6个I/O CLOCK信号,将读出低六位,10 个I/O CLOCK 信号后,EOC将置低,此时A/D进入转换过程,转换完成后EOC置高。

值得注意的是在TLC1543启动后,从A/D转换时序可知EOC约在启动脉冲之后300ns才变为高电平。

TLC1543采集子程序流程图如图10所示:图10 TLC1543采集子程序流程图4.2 数字量采集子程序数字量采集主要是单片机通过74ls165进行采集并转换成串行数据,由单片机进行读取和存储。

这样通过8个引脚,就可以采集24路开关量,满足设计要求的20路,要采集20路开关量,使用了三片74ls165。

所以其流程为:先将所有的开关状态锁入寄存器,然后使能片1,读取其数据,使能片2,读取数据,使能片3,读取数据。

这样就能够将所有24通道的状态都读取。

程序流程图如图11所示4.3此课设要求1ms Timer定时器。

产生1ms Array单片机所完成以上工作需要1ms,故可用单片机的定时器来调节时间:具体程序见附录。

4.4 串口通信程序RS485只是硬件接口和RS232不同,但软件编程和RS232是一样的,软件程序方面不用做任何改动。

MSComm是Microsoft公司提供的简化Windows下串行通信编程的ActiveX 控件,它为应用程序提供了通过串行接口收发数据的简便方法。

具体的来说,它提供了两种处理通信问题的方法:一是事件驱动(Event-driven)方法,一是查询法。

MSComm控件有许多重要的属性,可以通过MSComm控件实现对RS485串口通信的编程。

具体程序见附录。

5 设计小结与体会通过这次微机控制课程设计,我加深了对课本专业知识的理解,平常都是理论知识的学习,在此次课程设计中,真正做到了自己查阅资料、完成一个基本设计。

对于芯片的选择,我们课程中学到的是ADC0809,但其是8位精度,不符合要求。

相关主题