《2022年数据采集系统说明介绍研究意义和应用》由会员分享,可在线阅读,更多相关《2022年数据采集系统说明介绍研究意义和应用(22页珍藏版)》请在金锄头文库上搜索。
1、,. 一前言1.1 数据采集系统简介数据采集,是指从传感器和其它待测设备等模拟和数字被测单元中自动采集信息的过程。 数据采集系统是结合基于计算机(或微处理器)的测量软硬件产品来实现灵活的、用户自定义的测量系统。该数据采集系统是一种基于TLC549 模数转换芯片和单片机的设备,可以把ADC 采集的电压信号转换为数字信号,经过微处理器的简单处理而交予数码管实现电压显示功能,并且通过与PC 的连接可以实现计算机更加直观化显示。1.2 数据采集系统的研究意义和应用在计算机广泛应用的今天,数据采集的在多个领域有着十分重要的应用。它是计算机与外部物理世界连接的桥梁。利用串行或红外通信方式,实现对移动数据采
2、集器的应用软件升级,通过制订上位机 (PC)与移动数据采集器的通信协议,实现两者之间阻塞式通信交互过程。在工业、工程、生产车间等部门,尤其是在对信息实时性能要求较高或者恶劣的数据采集环境中更突出其应用的必要性。例如:在工业生产和科学技术研究的各行业中,常常利用 PC 或工控机对各种数据进行采集。这其中有很多地方需要对各种数据进行采集,如液位、温度、压力、频率等。现在常用的采集方式是通过数据采集板卡,常用的有A/D卡以及 422 、485 等总线板卡。卫星数据采集系统是利用航天遥测、遥控、遥监等技术,对航天器远地点进行各种监测,并根据需求进行自动采集,经过卫星传输到数据中心处理后,送给用户使用的
3、应用系统。1.3 系统的主要研究内容和目的本课题研究内容主要包括:TLC549 的工作时序控制,常用的单片机编辑语言,VB串口通信 COMM 控件、 VB 画图控件的运用等。本课题研究目的主要是设计一个把TLC549(ADC )采集的模拟电压转换成八位二进名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 22 页 - - - - - - - - - ,. 制数字数据,并把该数据传给单片机,在单片机的控制下在实验板的数码管上实时显示电压值并且与计算机上运行的软件示波器连接,实
4、现电压数据的发送和接收功能。二数据采集系统开发相关技术介绍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 且不需要外部元件。片内系统时钟使内部器件的操作独立于串行输入/输出的时序并允许TLC5
5、49 像许多软件和硬件所名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 22 页 - - - - - - - - - ,. 要求的那样工作。I/O CLOCK 和内部系统时钟一起可以实现高速数据传送以及对于TLC549 为每秒 40,000 次转换的转换速度。TLC549 的其他特点包括通用控制逻辑,可自动工作或在微处理器控制下工作的片内采样 -保持电路,具有差分高阻抗基准电压输入端、易于实现比率转换(ratiometric conversion )的高速转换器,定标(s
6、caling )以及与逻辑和电源噪声隔离的电路。整个开关电容逐次逼近转换器电路的设计允许在小于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 CLOC
7、K, 以减少多路 (片)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、8 个 I/ OCLOCK 周期的下降沿将移出第6、7、8(D2 、名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 22 页 - - - - - - - - - ,. D1、D0)个转换位。保持功能将持续4 个内部时钟周期 ,然后开始进行 32 个内部时钟周期的 A/D 转换。第 8 个 I/O CLOCK 后,CS必须为高 ,或 I/O CLOCK 保持低电平 ,这种状态需要维持 36 个内部系统时钟周期以等待保持和转换工作的完成。如果 CS为低时 I/ O CLOCK
9、上出现一个有效干扰脉冲 ,则微处理器 /控制器将与器件的I/ O 时序失去同步 ;若 CS 为高时出现一次有效低电平 ,则将使引脚重新初始化 ,从而脱离原转换过程。 在 36 个内部系统时钟周期结束之前 ,实施步骤 (1)-(4), 可重新启动一次新的A/D转换,与此同时 ,正在进行的转换终止,此时的输出是前一次的转换结果而不是正在进行的转换结果。若要在特定的时刻采样模拟信号 ,应使第 8 个 I/OCLOCK 时钟的下降沿与该时刻对应,因为芯片虽在第4 个 I/ O CLOCK 时钟下降沿开始采样 ,却在第 8 个 I/O CLOCK 的下降沿开始保存。2.2 VB 通信控件 MSCOMM
10、2.2.1 通讯方式MSComm 控件通过串行端口传输和接收数据,为应用程序提供串行通讯功能。MSComm控件在串口编程时非常方便, 程序员不必去花时间去了解较为复杂的API 函数,而且在 VC、VB、Delphi 等语言中均可使用。Microsoft Communications Control(以下简称 MSComm )是 Microsoft公司提供的简化 Windows下串行通信编程的ActiveX控件,它为应用程序提供了通过串行接口收发数据的简便方法。具体的来说,它提供了两种处理通信问题的方法:一是事件驱动(Event driven) 方法,一是查询法。MSComm控件两种处理通讯的方
11、式:事件驱动方式和查询方式。(1) 事件驱动方式事件驱动通讯是处理串行端口交互作用的一种非常有效的方法。在许多情况下,在事名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 22 页 - - - - - - - - - ,. 件发生时需要得到通知, 例如,在串口接收缓冲区中有字符, 或者 Carrier Detect (CD) 或Request To Send (RTS) 线上一个字符到达或一个变化发生时。在这些情况下,可以利用MSComm 控件的 OnComm 事件捕获并处
12、理这些通讯事件。OnComm 事件还可以检查和处理通讯错误。所有通讯事件和通讯错误的列表,参阅CommEvent 属性。在编程过程中,就可以在 OnComm事件处理函数中加入自己的处理代码。这种方法的优点是程序响应及时,可靠性高。每个MSComm 控件对应着一个串行端口。如果应用程序需要访问多个串行端口,必须使用多个MSComm 控件。(2) 查询方式查询方式实质上还是事件驱动,但在有些情况下,这种方式显得更为便捷。在程序的每个关键功能之后,可以通过检查CommEvent 属性的值来查询事件和错误。如果应用程序较小,并且是自保持的,这种方法可能是更可取的。例如,如果写一个简单的电话拨号程序,则
13、没有必要对每接收一个字符都产生事件,因为唯一等待接收的字符是调制解调器的“确定”响应。2.2.2 MSComm控件的常用属性MSComm控件有很多重要的属性,但首先必须熟悉几个属性: CommPort 设置并返回通讯端口号Settings 以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位PortOpen 设置并返回通讯端口的状态。也可以打开和关闭端口Input 从接收缓冲区返回和删除字符Output 向传输缓冲区写一个字符三硬件电路及程序的设计名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - -
14、- - - 第 5 页,共 22 页 - - - - - - - - - ,. .硬件电路组成框图AD 转换器( TLC549 )单片机电位器VCCGND模拟信号串行数据输出(DO )控制信号(clk cs DI )数字信号串行口I/O口计算机( VB 显示程序)3. C 程序设计思想3.2.1TLC549 正常工作控制sbit Clock = P1.2; /时钟口线sbit DataOut = P1.1; /数据输出口线sbit CS = P1.0; /片选口线3.2.1读取 AD 转换结果CS=1; Clock=0; CS=0; Wait4us; for (i = 0; i 8; i +)
15、 /输入采样转换时钟 Clock = 1; Clock = 0; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 22 页 - - - - - - - - - ,. CS=1; Wait10us; /等待转换结束CS=0; Wait4us; for(i=0;i=8;i+) Clock=1; if (DataOut) ConvertValue +=1; ConvertValue =1; Clock = 0; CS = 1; da=ConvertValue; 3.2.3串行通
16、信与 PC 机的数据传输SCON= 0x40; / 串口方式 1 PCON=0; /SMOD=0 REN=1; / 允许接收TMOD= 0x20; / 定时器 1 定时方式 2 TH1= 0xe6; /12MHz 1200波特率TL1= 0xe6; TR1= 1; / 启动定时器名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 22 页 - - - - - - - - - ,. 3.3 VB 程序设计思想3.3.1 VB窗体界面的设计本程序用一个窗体分别为Form1 仿照示
17、波器显示,如下图:四结语本设计基于 VB 平台的串口通信控件设计实现了单片机和PC 的串口通信,通过 PC 的软件示波器显示数据采集器采集的电压数据。本程序可以通过对话框对要连接的串口和其参数进行设置。初步实现了电压数据的硬件显示和软件实时显示。本设计还存在着很多不足和可改进之处:(1) 需要提高 VB 语言代码的效率,要力求用最简洁的程序实现多种功能。(2) 实时性有待提高,本程序在滤波和抗干扰部分没有做进一步处理,显示的电压图线会有毛刺。谢辞名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - -
18、 - 第 8 页,共 22 页 - - - - - - - - - ,. 本设计是在庞娇老师的悉心指导和严格要求下完成的。老师渊博的知识、 丰富的经验、踏实认真的工作作风、严谨的治学态度给我留下了深刻的印象。在我设计的过程中,每当遇到问题时,老师总是认真地讲解,直到我听明白为止,正是有了老师悉心指导,我的设计才能顺利地完成。在论文即将完成之际,向我的导师老师致以诚挚的谢意和感激之情!谨向所有关心我的老师、同学和朋友表示衷心的感谢!名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页
19、,共 22 页 - - - - - - - - - ,. 附录()带串行控制8 位模数转换器一、概述1.1 一般说明TLC548 和 TLC549 是以 8 位开关电容逐次逼近A/D 转换器为基础而构造的 CMOS A/D 转换器。它们设计成能通过3 态数据输出和模拟输入与微处理器或外围设备串行接口。TLC548 和 TLC549 仅用输入 / 输出时钟( I/O CLOCK ) 和芯片选择 (CS ) 输入作数据控制。 TLC548 的最高 I/O CLOCK 输入 频 率 为 2.048MHz , 而 TLC549 的I/O CLOCK 输 入 频 率 最 高 可 达1.1MHz 。有关与
20、大多数通用微处理器接口的详细资料已由工厂准备好,可供使用。TLC548 和 TLC549 的运用与较复杂的 TLC540 和 TLC541 的运用非常相似;不过,TLC548 和 TLC549 提供了片内系统时钟, 它通常工作在 4MHz 且不需要外部元件。 片内系统时钟使内部器件的操作独立于串行输入/输出的时序并 允许TLC548 和 TLC549 象 许多 软 件和 硬 件 所 要求 的那 样 工 作。 I/O CLOCK 和内部系统时钟一起可以实现高速数据传送以及对于TLC548 为每秒45,500 次转换、对于 TLC549 为每秒 40,000 次转换的转换速度。TLC548 和 T
21、LC549 的其他特点包括通用控制逻辑,可自动工作或在微处理器控制下工作的片内采样-保持电路,具有差分高阻抗基准电压输入端、易于实现比率转换( ratiometric conversion)的高速转换器,定标(scaling )以及与逻辑和电源噪声隔离的电路。 整个开关电容逐次逼近转换器电路的设计允许在小于 17 s 的时间内以最大总误差为 0.5 最低有效位(LSB)的精度实现转换。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 22 页 - - - - - - -
22、- - ,. TLC548C 和 TLC549C 的工作温度范围为0 至 70 。TLC548I 和TLC549I 的工作温度范围为 -40 至 85。可选项Ta 封装小型(D)塑料 DIP(P)0至 70TLC548CD TLC549CD TLC548CP TLC549CP -40 至 85 TLC548ID TLC549ID TLC548IP TLC549IP 1.2 特点 8 位分辨率 A/D 转换器微处理器外设或独立工作差分基准输入电压转换时间17 s Max 每次总存取与转换周期数TLC548 高达 45,500 TLC549 高达 40,000 片内软件可控采样!保持总不可调整误差
23、(Total Unadjusted Error) 0.5LSB Max 4MHz 典型内部系统时钟宽电源范围3V 至 6V 低功耗15mW Max 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 22 页 - - - - - - - - - ,. 能理想地用于包括电池供电便携式仪表的低成本、高性能应用引脚和控制信号与TLC540 、TLC545 8 位 A/D 转换器以及 TLC154 CMOS 工艺1.3 功能方框图TLC548,TLC549 的功能方框图如下图所示。
24、1.4 典型等效输入TLC548、TLC549 在采样方式期间和保持方式期间的输入电路阻抗分别如下面两图所示。1.5 引脚排列D 或 P 封装的 TLC548、TLC549 的引脚排列分别如下面两图所示。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 22 页 - - - - - - - - - ,. 1.6 工作时序TLC548、TLC549 的工作时序如下图所示。注释: A. 转换周期需要 36 个系统时钟周期(最大为17 s) ,它开始于 CS 变为低电平之后 I
25、/O CLOCK 的第 8 个下降沿,这适用于该时刻其地址存在于存储器中的通道。B. 在 CS 变为低电平之后, 最高有效位(A7)自动被放置在 DATA OUT总线上。其余的 7 位(A6-A0 )在前 7 个 I/O CLOCK 下降沿由时钟同步输出。 B7-B0 以同样的方式跟在其后名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 22 页 - - - - - - - - - ,. 二、特性2.1 工作温度范围内(自然通风)的极限参数(除非另有说明)电源电压, V
26、CC (见注释 1)6.5V 任何输入端输入电压范围 0.3V至Vcc+0.3V 输出电压范围 0.3V 至Vcc+0.3V 峰值输入电流范围(任何输入端) 10mA 峰值总输入电流范围(所有输入端) 30mA 工作温度范围(自然通风) ,Ta :TLC548C,TLC549C -0至 70TLC548I ,TLC549I -40 至 85储存温度范围, Tstg -65 至 150引线温度,离外壳 1.6mm(1/16英寸),10 秒260强度超出所列极限参数可能导致器件的永久性损坏,这些仅仅是极限参数,并不意味着在极限参数条件下或在任何其它超出推荐工作条件所示参数的情况下器件能有效地工作,
27、延长在极限参数条件下的工作时间会影响器件的可靠性。注释 1:在 REF 与 GND 连接在一起的情况下所有电压值均相对于网络地端2:温度低于 -40 时,不推荐 D 封装。3. 大于加至REF 电压的模拟输入电压转换为全“1 ” ( 11111111 ) ,小于加至REF电压的模拟输入电压转换为全 “0” (00000000 ) 。为了工作良好,REF 电压高于 REF电压至少 1V。而且,当此差分基准电压降至4.75V 以下时,名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14
28、页,共 22 页 - - - - - - - - - ,. 总失调误差可能增加。4. 这是时钟输入信号从V IHmin 降至 V ILmax 或从 V ILmax 升至VIHmin 所需的时间。在正常室温附近, 对于远程数据采集应用 (在这些应用中,传感器和 A/D 转换器放在离控制微处理器几英尺远处) , 在输入时钟跳变时间慢至 2 s 的情况下器件可保持其功能。5. 为了使 CS 端噪声所引起的误差为最小。 在响应控制输入信号以前, 内部电路在 CS之后等待内部系统时钟两个上升沿和1 个下降沿。CS建立时间由 t en 和 t SU(CS) 这两个指标给出。6. 线性度误差是在整个A/D
29、转移特性范围内离开最佳直线的最大偏离量。7. 零度( zero-scale )误差是 00000000和零输入电压的转换输出之间的差值;满度( full-scale )误差是 11111111与满度输入电压的转换输出之间的差值。8. 总失调误差( toal unadjusted error)是线性度,零度( zero-scale )和满度( full-scale )误差之和。2.2 推荐工作条件名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 22 页 - - - - -
30、 - - - - ,. 附录()单片机 C 程序#include 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 22 页 - - - - - - - - - ,. #include #include #include #define uint unsigned int #define uchar unsigned char #define ulong unsigned long uchar code tab=0x3f,0x6,0x5b,0x4f,0x66,0x6d,0
31、x7d,0x7,0x7f,0x6f,0x40; uchar disdat6; uchar ConvertValue = 0; uchar da,i; float xs; ulong bb; sbit Clock = P1 2; /时钟口线sbit DataOut = P1 1; /数据输出口线sbit CS = P1 0; /片选口线/* 延时*/ #define Wait1us _nop_(); #define Wait2us _nop_();_nop_(); #define Wait4us Wait2us;Wait2us; #define Wait8us Wait4us;Wait4us;
32、#define Wait10us Wait8us;Wait2us; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 22 页 - - - - - - - - - ,. #define Wait20us Wait10us;Wait10us; #define Wait30us Wait10us;Wait8us;Wait4us;Wait2us; void delay(uint t) uint i; while(t-) for(i=0;i=125;i+); /* 显示函数 */
33、 void display(void) / 六位数码管显示程序, disdat 是要显示的内容 uchar i,disa,disb,disc;/(是 09 的数字) ,xsd 是该位显示小数点disb = 0x03; / 显示第 n 位for (i=3;i6;i+) / 共显示 6 个数据 disa = disdati; / 显示数据if (disa 10) P2 = disb; / 送位选信号disc = tabdisa; / 显示段码if (i=3) disc = disc | 0x80; / 增加小数点显示P0 = disc; /P0 口送显示delay (1); / 延时P0 = 0x
34、0; / 将 P0 口置为 0,为下次做准备名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 22 页 - - - - - - - - - ,. disb+; / 下一个要显示的位置 P2 = 0xff; / 将 P2 口置为高电平 /* 采集转换函数 */ unsigned char ADCSelChannel(void) CS=1; Clock=0; CS=0; Wait4us; for (i = 0; i 8; i +) / 输入采样转换时钟 Clock = 1;
35、Clock = 0; CS=1; Wait10us; /等待转换结束CS=0; Wait4us; for(i=0;i=8;i+) Clock=1; if (DataOut) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 19 页,共 22 页 - - - - - - - - - ,. ConvertValue +=1; ConvertValue =1; Clock = 0; CS = 1; da=ConvertValue; Wait30us; xs=(da/256.00)*5.00
36、; return(xs); /* 主函数 */ void main(void) SCON= 0x40; / 串口方式 1 PCON=0; /SMOD=0 REN=1; / 允许接收TMOD= 0x20; / 定时器 1 定时方式 2 TH1= 0xe6; /12MHz 1200波特率TL1= 0xe6; TR1= 1; / 启动定时器while(1) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 20 页,共 22 页 - - - - - - - - - ,. ADCSelChan
37、nel(); bb=xs*1000.00; disdat3=bb/1000; bb=bb%1000; disdat4=bb/100; bb=bb%100; disdat5=bb/10; display(); SBUF=da; while(TI=0); TI=0; delay(10); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 21 页,共 22 页 - - - - - - - - - ,. 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 22 页,共 22 页 - - - - - - - - -