绪 论
随着计算机技术的发展,数据采集系统的应用也日益广泛[1]。数据采集是工业控制系统中至关重要的一个环节,在生产过程中,往往需要随时检测各个环节的温度、液位、流量及压力等参数。同时,还要对某个检测点的任意参数进行随机查询,将所得到的检测结果提取出来以便进行比较做出决策,调整控制方案。此外,在科研过程中,运用数据采集系统可获得大量的动态信息,也是获取科学数据的重要手段之一。数据采集系统直接影响控制系统的决策。
数据采集系统,从某种意义上来说,是用计算机控制的多路数据自动检测或循环检测的、能够对数据实行存储、处理、分析计算以及从检测的数据中提取有用的信息,并能够供显示、记录、打印功能的系统[2]。在过去的几十年里,随着信息领域技术的发展,数据采集方面的技术也取得了很大的进步,采集数据的信息化是目前社会的发展主流方向。许多领域都用到了数据采集,在地质勘探、科学实验、工业生产过程、日常生活等领域已得到应用。
单片机系统在开发过程中,程序设计语言的选择尤为重要。C51提供高效的代码,结构化的编程和丰富的操作符,多被采用。它是一种编译型程序设计语言,兼顾了多种高级语言的特点,并具备汇编语言的功能。C51有功能丰富的函数库、运算速度快、编译效率高、有良好的可移植性,而且可以直接实现对硬件的控制。C51是一种结构化程序设计语言,它支持当前程序设计中广泛采用的自顶向下结构化程序设计技术。此外,C51程序具有完善的模块程序结构,从而为软件开发中采用模块化程序设计方法提供了有力的保障。因此,使用C51进行程序设计已成为软件开发的一个主流[3]。用C51来编写目标系统软件,会大大缩短开发周期,且明显地增加软件的可读性,便于改进和扩充,从而研制出规模更大、性能更完备的系统。
尽管现在以微机为核心的可编程数据采集与处理采集技术的发展方向得到了迅速的发展,而且组成一个数据采集系统只需要一块数据采集卡,把它插在微机的扩展槽内并辅以应用软件,就能实现数据采集功能,但这并不会对基于单片机为核心的数据采集系统产生影响。相较于数据采集板卡成本和功能的限制,单片机具有高性能、低电压、低功耗、低价格等优点,而双单片机又具有精度较高、转换速度快、能够对多点同时进行采集,因此能够开发出能满足实际应用要求的、电路结构简单的、可靠性高的数据采集系统。这就使得以单片机为核心的数据采集系统在许多领域得到了广泛的应用。
1
1 方案设计
该部分主要是针对课题的要求及最终要实现的功能进行总体的方案设计,设计出最佳框架和各个模块,以便于硬件选型、电路设计和软件编程。
1.1 总体框架的设计
该系统以单片机作为主控芯片,现场要测量的温度、压力、流量、液位等物理量均为模拟的非电量信号,因此,需要选用对应的传感变送装置,将上述非电量信号变换为标准电流信号,电流信号抗干扰能力强。单片机只能接收数字信号,又因为要测量的模拟量较多,所以必须有A/D转换器,测量结果需要显示。设置按键对参数的检测方式及报警值进行设置;同时,设置声光报警功能,当采集参数的值超过预设上限值或低于预设下限值时蜂鸣器和报警指示灯发生相应的变化,用于提示。
基于单片机的多功能参数检测系统,其主要实现的功能如下:
⑴温度检测:对水温进行检测并转化为标准电流信号,通过电流电压转换电路、A/D转换电路、单片机最终将温度值显示;
⑵压力检测:对管道压力进行检测并转化为标准电流信号,通过电流电压转换电路、A/D转换电路、经过单片机处理并显示在显示器上;
⑶流量检测:对管道流量进行检测并转化为电流信号,通过电流电压转换电路、A/D转换电路、单片机将管道流量值显示出来;
⑷液位检测:可以对水槽内液位进行检测并转化为电流信号,通过电流电压转换电路、A/D转换电路、单片机最终将水槽内液位值显示;
⑸按键功能:可以通过按键选择对温度、压力、流量、液位四个参数进行单独检测还是循环检测,可以对报警上下限进行设置;
⑹显示功能:单独或轮流显示与刷新温度、压力、流量、液位四个参数的测量值; ⑺报警功能:当实际测量值高于预设上限值或低于预设下限值时,声光报警。 根据课题要求及其所需要实现的功能最终设计出总体框架,系统框图如图1.1所示。
2
温度检测 压力检测 流量检测 液位检测 电流电压转换 AD转换 单片机 显示 声光报警 按键输入
图1.1 系统框图
1.2 单片机开发环境的选择
1.2.1 电路图绘制软件
本设计中电路图的设计使用常用的电路图绘制软件Protel99 SE,该软件功能强大,开发系统具有中文版本,便于使用,其特点介绍如下:
Protel99 SE共分5个模块,分别是对于电路原理图的设计、对于PCB开发板的设计(针对信号完整性能分析包含在内)、对于原理图混合信号部分的仿真、自动布线器以及PLD设计。
以下针对Protel99SE的一些最新功能进行介绍[4] ⑴可以生成多余30种电气连接网络表; ⑵拥有较为强大的编辑全局功能;
⑶某一级器件从原理图中被选择,该器件在PCB图中也将被选择;
⑷可以一起运行PCB和原理图,并允许在打开的PCB图和原理图之间相互搜索元器件、网络、引脚;
⑸原理图至PCB图和PCB图到原理图都可对元器件标号进行注释,以实现PCB图和电气原理图设计上的一致性;
⑹符合国际标准标题栏输出和GB4728国际标准库即国际化设计要求;简单方便使用的数模混合仿真(兼容SPICE 3f5);
⑺对于原理图设计PLD和CUPL语言都支持使用,标准JED下载文件可以被生成;PCB可设计16个电源-地层、32个信号层和16个机加工层;
⑻拥有超强的“规则驱动”设计环境,支持批处理的和在线的设计规则检查;
3
⑼拥有智能覆铜功能,根据具体情况覆铜可实现自动重铺; ⑽提供多种工业中常用的标准电路板作为模版; ⑾拥有放置汉字的功能;
⑿可输入和输出DXF格式文件和DWG格式文件,可以和AUTECAD等软件进行数据之间的交换;
⒀智能封装导航对PGA和BGA封装十分方便;
⒁打印预览功能简便实用,打印结果的控制无需修改PCB文件; ⒂十分独特的3D显示,安装事物后的效果可在压板前看到;
⒃可以轻松实现输出测试点报告、贴片机文件、钻孔文件、材料清单、光绘文件等的CAM处理;
⒄便利的测量工具与反射和串扰仿真的波形显示结果相互结合; ⒅拥有解决信号完整性问题的专家导航[5]。 1.2.2 Keil_C软件
单片机的设计不仅需要硬件,同样也需要软件,有两种方法可使汇编语言源程序变成CPU可执行的机器码:一种方法是机器汇编,另一种方法是手工汇编,手工汇编的方法现今已经很少使用。采用汇编软件将源程序变成机器码的方法为机器汇编方法,A51汇编软件为早期使用于MCS-51的编程软件,随着不断发展的单片机开发技术,编程软件已由汇编软件发展为高级语言,目前普遍应用在开发MCS-51系列单片机的汇编软件为Keil编程软件。Keil软件近年来已纷纷得到了各仿真机厂商的全面支持。Keil编程软件不仅拥有连接器、库管理、C语言编译器、宏汇编的开发环境还拥有强大功能的仿真调试器开发环境,集成的开发环境uVision将以上部分组合一起[6]。Keil编程软件的运行需要Pentium或以上的CPU、16MB或更多RAM、20MB以上硬盘空间的WIN98、NT、WIN2000、WINXP等操作系统。熟练掌握Keil软件的操作对于52系列单片机的使用者来说是十分必要的,如果使用C语言编程,那么Keil软件是我们最应该熟悉的,即使使用汇编语言编程而不使用C语言,其强大的软件仿真调试工具和方便易用的集成环境也将起到事半功倍的效果。
Keil集成开发环境是基于MCS-51系列单片机,能够完成从工程建立、编译、链接、目标代码生成、软件模拟和硬件仿真等完整的开发过程,Keil软件的C语言编译工具产生代码的准确性高、效率高且灵活方便,目前很多仿真器的仿真环境都与Keil兼容。
4
Keil集成开发环境的主要功能有以下几点:
⑴Keil集成开发环境:它将工程管理、源程序编辑和程序调试和仿真集成在一起,完成项目开发;
⑵C51交叉编译器:从C51源代码生成可重定位目标代码; ⑶A51编译器:从51系列的汇编源代码生成可重定位的目标代码;
⑷BL51连接定位器:组合由A51和C51生成的可重定位的目标代码,形成绝对目标模块;
⑸LIB51库管理器:从目标模块生成链接器可以使用的库文件;
⑹OH51目标文件到HEX格式的转换器:从绝对目标模块生成HEX文件; ⑺RTX-51实时操作系统:简化了实时应用软件的开发与调试过程;
设计的软件部分,使用Keil作为编程开发软件,对52单片机进行C语言的编辑与软件仿真;
5