数据采集是获取信息的一种重要手段。数据采集以传感器、信号测量与处理、微型计算机等技术为基础形成了一门综合的应用技术,它研究数据的采集、存储、处理和控制等作业,具有很强的适用性。
数据采集广泛应用于各个测试和控制系统,数据采集系统的设计和实现包括很多方面的内容,涉及的面也很广。本课题设计完成的是对炉温的多通道采集、数码管显示以及Pc机对温度变化的曲线图绘制。设计采用了模块化的思想,条理比较清楚,主要分为硬件原理图设计和软件程序设计。该系统设计简单、扩展和接口方便、连线简单、操作容易、可靠性也比较好,在多点温度检测中有很广泛的应用前景,具有较强的使用价值。就其采样频率和分辨率来说属于中速类型,适合对数据采样频率要求不是特别高的应用场合。
系统硬件结构
1.硬件框图
本设计主要包括模拟信号采集、信号调整放大、A/D模数转换、CPU控制处理、Pc机温度曲线图绘制与显示以及温度的数码管显示6个模块,图1是结构框图,图2是原理图。
该设计的大致工作流程从图2可以看出为:获取模拟信号→信号调整放大→A\D转换
->曲线圈绘制。
2.硬件各部分功能简介
(1)AD524信号调整放大器基于本设计电路对信号调整放大性能的要求,及对同类芯片特点性能的比较,选用运放AD524。AD524是一种低噪声、低非线性、高信噪比的高精度的运放器件。主要特点有:低补偿电压、低补偿电压漂移;引脚选择增益1、10、100、1000;通过可变电阻可得到任意增益;输入输出补偿。
(2)TLC2543串行A/D转换器TI公司的TLc2543 12位串位A/D转换器,使用开关电容逐次逼近技术完成A/D转换过程。提供的最大采样速率为66Ksps供电电流仅需1mA(典型值)。其每个器件包括片选(CS)、输入输出时钟(I/O cLOCK)、地址输入端(DATE INPuT)三个控制器输入端。它还可以通过一个串行的3态输入端(DATE OUT)与主处理器或其外围的串行口通讯,输出转换结果。在转换结束时,转换结束(EOc)输出端变高以指示转换的完成。本器件中的转换结合外部输入的差分高阻抗的基准电压,具有简化比率转换、刻度以及模拟电路与逻辑电路和电源噪声隔离的特点。开关电容的设计可以使在整个温度范围内有较小的转换误差。除了高速的转换器和通用的控制能力外,本器件有一个片内的14通道多路器可以在11个输入通道或3个内部自测试电压中任意选择一个。这种形式的通道速度较慢,但硬件开销少,对转换速度要求不高的系统最为合适。由于是串行输入结构,能够节省51系列单片机I/O资源,且价格适中。
(3)AT89C2051单片机AT89C2051是美国ATMEL公司推出的一种性价比较高的8位单片机,其指令系统与MCS-51系统完全兼容。另外具有很强的加密功能。ATAT89C2051只有20只引脚,压缩了I/O端口与存储器容量,其余配置与功能不减,可方便地应用于家电产品及小型仪器仪表,是性价比极优的单片机。
(4)MAX232电平转换器EIA-RS-232C是用正负电压来表示逻辑状态,与TTL以高低电平表示逻辑状态的规定不同。因此为了能够同计算机接口连接,必须在Rs-232与TTL电路之间进行电平和逻辑关系的转换。
MAX232芯片可完成TTL与EIA双向电平转换,且MAx内部有电压倍增电路和转换电路,仅需+5v电源便可工作,使用十分方便,亦可连接两对收/发线。
(5)LED驱动器MAX7219 MAX7219是八位串行共阴LED数码管动态扫描驱动电路,仅需使用单片机3个I/O口,即可完成对八位LED数码管的控制和驱动,线路非常简单,控制方便,外围电路仅需一个电阻设定峰值段电流,同时可以通过软件设定其显示亮度;还可以通过级联,完成对多于八位的数码管的控制显示。当工作于关闭方式时,不仅单片机仍可对其传送数据和修改控制方式,而且芯片耗电仅为150μA。使用方便灵活,连线简单,且不占用数据存储器空间。
(6)其他由于AD524的正电源电压范围是6-18V,负电源电压是-6~-18V,而其他的器件都是采用的典型电源电压+5V和-5V。用LM7805来实现电源电压转换,使电压统一。sCREEN数码管用来显示转换结果即加热炉温度。
系统软件结构
单片机程序主要包括主程序MAIN、串行数据采集模块”D_sAMPLE”和串行数据传输模块”D_c0M”。TLC2543的通道选择和方式数据为8位,其功能为D7、D6、D5和D4,用来选择要求转换的通道,D7D6D5D4=0000时选择0通道,D7D6D5D4=0001时选择1通道,依次类推;D3和D2用来选择输出数据长度,本程序选择输出数据长度为12位,即设置D3D2=00或D3D2=10;Dl、DO选择输入数据的导前位,D1D0=00选择高位导前。TLC2543在每次I/0周期读取的数据都是上次转换的结果,当前的转换结果在下一个I/0周期中被串行移出。主程序MAIN的程序流程如图3,测试时用的是单通道,晶体管显示后,直接传到Pc机上,再返回采集。分模块介绍如下:
(1)初始化程序INIT主要是对定时器/计数器、中断源、串口的初始化。
(2)串行数据采集模块D_SAM PLE单片机通过编程产生串行时钟,即由CLK先高后低的转变提供串行时钟,并按时序发送与接收数据位,完成通道方式/通道数据的写入和转换结果的读出; 用累加器和带进位的左循环移位指令来合成SPI功能。程序流程图如图4所示。
(3)串行数据传输模块D_coM串 行数据传输模块应包括串行口初始化INIT和数据传输程序D_COM,在此把INIT写到总的初始化子程序中。数据传输程序D_COM可采用查询方式亦可采用中断方式,两者可方便替换。笔者用的是中断方式,采用MOV sBuF,A进行发送数据,一条写SBUF指令就可启动数据发送过程,在发送移位时钟(由波特率确定)的同步下,从TxD先发出起始位,然后是8位数据位,最后是停止。这样的一帧10位数据发送完后,中断标志TI置位。程序流程如图5。
(4)上位机串口接收程序设计上位机串口接收数据程序用c语言,包括初始化子程序和接收子程序。
(5)16进制到BcD码的变换程序HEXTOBCD把原始16进制结果存储在R2、R3中,将转换后的BCD码结果存储在起始地址是70H的缓冲区中。
(6)LED显示驱动程序MAx7219是八位串行共阴LED数码管动态扫描驱动电路,每片可驱动8个LED数码管,通过对片内的位和控制寄存器编程,可选 择译码方式、LED个数、显示亮度和关闭等功能。
抗干扰措施
笔者设计的加热炉温度采集系统由于现场使用环境较恶劣,各种干扰因素较多,因此必须采取有效的抗干扰措施以确保系统稳定工作,下面介绍我们在该系统上采取的抗干扰措施。
(1)光电隔离在输入和输出通道上采用光电隔离器来进行信息传输是很有好处的,它将微机系统与各种传感器、开关、执行机构从电气上隔离开来,很大一部分干扰将被阻挡。
(2)过压保护电路在输入输出通道上应采用一过压保护电路,以防引入高电压,伤害微机系统。过压保护电路由限流电阻和稳压管组成,限流电阻选择要适宜,太大会引起信号衰减,太小起不到保护稳压管的作用。稳压管的选择也要适宜,其稳压值以略高于最高传送信号电压为宜,太低将对有效信号起限幅效果,使信号失真。
(3)配置去耦电容原则上每个集成电路芯片都应安置一个0.01mF的陶瓷电容器,可以消除大部分高频干扰。
(4)良好接地 本系统既有模拟电路又有数字电路,因此数字地与模拟地要分开,最后只在一点相连,如果两者不分,则会互相干扰。
结束语
由于微型计算机控制技术的引用,使得温度采集技术的各项指标大幅度提高。本文介绍的以AT89C205l单片机为核心构成的加热炉温度采集系统,可以实现对炉温的多道采集、晶体管显示和Pc机对温度变化的曲线图绘制。实际应用时,系统运行正常,效果较佳。