数据采集系统简介研究意义和应用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一前言
1.1 数据采集系统简介
数据采集,是指从传感器和其它待测设备等模拟和数字被测单元中自动采集信息的过程。数据采集系统是结合基于计算机(或微处理器)的测量软硬件产品来实现灵活的、用户自定义的测量系统。该数据采集系统是一种基于TLC549模数转换芯片和单片机的设备,可以把ADC采集的电压信号转换为数字信号,经过微处理器的简单处理而交予数码管实现电压显示功能,并且通过与PC的连接可以实现计算机更加直观化显示。
1.2 数据采集系统的研究意义和应用
在计算机广泛应用的今天,数据采集的在多个领域有着十分重要的应用。它是计算机与外部物理世界连接的桥梁。利用串行或红外通信方式,实现对移动数据采集器的应用软件升级,通过制订上位机(PC)与移动数据采集器的通信协议,实现两者之间阻塞式通信交互过程。在工业、工程、生产车间等部门,尤其是在对信息实时性能要求较高或者恶劣的数据采集环境中更突出其应用的必要性。例如:在工业生产和科学技术研究的各行业中,常常利用PC或工控机对各种数据进行采集。这其中有很多地方需要对各种数据进行采集,如液位、温度、压力、频率等。现在常用的采集方式是通过数据采集板卡,常用的有A/D 卡以及422、485等总线板卡。卫星数据采集系统是利用航天遥测、遥控、遥监等技术,对航天器远地点进行各种监测,并根据需求进行自动采集,经过卫星传输到数据中心处理后,送给用户使用的应用系统。
1.3 系统的主要研究内容和目的
本课题研究内容主要包括:TLC549的工作时序控制,常用的单片机编辑C语言,VB 串口通信COMM控件、VB画图控件的运用等。
本课题研究目的主要是设计一个把TLC549(ADC)采集的模拟电压转换成八位二进制数字数据,并把该数据传给单片机,在单片机的控制下在实验板的数码管上实时显示电压值并且与计算机上运行的软件示波器连接,实现电压数据的发送和接收功能。
二数据采集系统开发相关技术介绍
2.1 TLC549结构及工作原理
2.1.1 TLC549的概述
TLC549 是以8 位开关电容逐次逼近A/D 转换器为基础而构造的CMOS A/D 转换器。它们设计成能通过3 态数据输出和模拟输入与微处理器或外围设备串行接口。TLC549 仅用输入/输出时钟(I/O CLOCK )和芯片选择(CS )输入作数据控制。TLC549 的I/O CLOCK 输入频率最高可达 1.1MHz 。
TLC549 提供了片内系统时钟,它通常工作在4MHz 且不需要外部元件。片内系统时钟使内部器件的操作独立于串行输入/输出的时序并允许TLC549像许多软件和硬件所要求的那样工作。I/O CLOCK 和内部系统时钟一起可以实现高速数据传送以及对于TLC549 为每秒40,000 次转换的转换速度。
TLC549的其他特点包括通用控制逻辑,可自动工作或在微处理器控制下工作的片内采样-保持电路,具有差分高阻抗基准电压输入端、易于实现比率转换(ratiometric conversion)的高速转换器,定标( scaling)以及与逻辑和电源噪声隔离的电路。整个开关电容逐次逼近转换器电路的设计允许在小于 17μs的时间内以最大总误差为±0.5 最低有效位(LSB)的精度实现转换。
TLC549C 的工作温度范围为 0 ℃至 70 ℃。
2.1.2 TLC549的工作原理
TLC548、TLC549均有片内系统时钟,该时钟与I/ O CLOCK是独立工作的,无须特殊的速度或相位匹配。其工作时序如图2所示。当CS为高时,数据输出(DATA OUT)端处于高阻状态,此时I/O CLOCK不起作用。这种CS控制作用允许在同时使用多片TLC548、TLC549时共用I/O CLOCK,以减少多路(片)A/D并用时的I/O控制端口。
一组通常的控制时序为:
(1)将CS置低。内部电路在测得CS下降沿后再等待两个内部时钟上升沿和一个下降沿后,然后确认这一变化,最后自动将前一次转换结果的最高位(D7)位输出到DATA OUT端上。
(2)前四个I/ O CLOCK周期的下降沿依次移出第2、3、4和第5个位(D6、D5、D4、D3),片上采样保持电路在第4个I/O CLOCK下降沿开始采样模拟输入。
(3)接下来的3个I/O CLOCK周期的下降沿将移出第6、7、8(D2、D1、D0)个转换位,
(4)最后,片上采样保持电路在第8个I/ OCLOCK周期的下降沿将移出第6、7、8(D2、D1、D0)个转换位。保持功能将持续4个内部时钟周期,然后开始进行32个内部时钟周期的A/D转换。第8个I/O CLOCK后,CS必须为高,或I/O CLOCK保持低电平,这种状态需要维持36个内部系统时钟周期以等待保持和转换工作的完成。如果CS为低时I/ O CLOCK 上出现一个有效干扰脉冲,则微处理器/控制器将与器件的I/ O时序失去同步;若CS为高时出现一次有效低电平,则将使引脚重新初始化,从而脱离原转换过程。在36个内部系统时钟周期结束之前,实施步骤(1)-(4),可重新启动一次新的A/D转换,与此同时,正在进行的转换终止,此时的输出是前一次的转换结果而不是正在进行的转换结果。若要在特定的时刻采样模拟信号,应使第8个I/OCLOCK时钟的下降沿与该时刻对应,因为芯片虽在第4个I/ O CLOCK时钟下降沿开始采样,却在第8个I/O CLOCK的下降沿开始保存。
2.2 VB通信控件MSCOMM
2.2.1 通讯方式
MSComm 控件通过串行端口传输和接收数据,为应用程序提供串行通讯功能。MSComm 控件在串口编程时非常方便,程序员不必去花时间去了解较为复杂的API函数,而且在VC、VB、Delphi等语言中均可使用。 Microsoft Communications Control(以下简称MSComm)是Microsoft公司提供的简化Windows下串行通信编程的ActiveX控件,它为应用程序提供了通过串行接口收发数据的简便方法。具体的来说,它提供了两种处理通信问题的方法:一是事件驱动(Event-driven)方法,一是查询法。 MSComm控件两种处理通讯的方式:事件驱动方式和查询方式。
(1) 事件驱动方式
事件驱动通讯是处理串行端口交互作用的一种非常有效的方法。在许多情况下,在事件发生时需要得到通知,例如,在串口接收缓冲区中有字符,或者 Carrier Detect (CD) 或 Request To Send (RTS) 线上一个字符到达或一个变化发生时。在这些情况下,可以利用 MSComm 控件的 OnComm 事件捕获并处理这些通讯事件。OnComm 事件还可以检查和处理通讯错误。所有通讯事件和通讯错误的列表,参阅 CommEvent 属性。在编程过程中,就可以在OnComm事件处理函数中加入自己的处理代码。这种方法的优点是程序响应及时,可靠性高。每个MSComm 控件对应着一个串行端口。如果应用程序需要访问多个串行端口,必须使用多个 MSComm 控件。
(2) 查询方式
查询方式实质上还是事件驱动,但在有些情况下,这种方式显得更为便捷。在程序的每个关键功能之后,可以通过检查 CommEvent 属性的值来查询事件和错误。如果应用程序较小,并且是自保持的,这种方法可能是更可取的。例如,如果写一个简单的电话拨号程序,则没有必要对每接收一个字符都产生事件,因为唯一等待接收的字符是调制解调器的“确定”响应。
2.2.2 MSComm控件的常用属性
MSComm控件有很多重要的属性,但首先必须熟悉几个属性:
CommPort 设置并返回通讯端口号
Settings 以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位
PortOpen 设置并返回通讯端口的状态。也可以打开和关闭端口
Input 从接收缓冲区返回和删除字符
Output 向传输缓冲区写一个字符