《基于ADuC845的数据采集系统设计毕业设计(26页).doc》由会员分享,可在线阅读,更多相关《基于ADuC845的数据采集系统设计毕业设计(26页).doc(26页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-基于ADuC845的数据采集系统设计毕业设计-第 22 页基于ADuC845的数据采集系统设计李璐(陕西理工学院 物理与电信工程学院 电子信息工程专业11级2班,陕西 汉中 723003)指导教师:秦伟摘要本文设计使用ADuC845单片机对低频电压信号进行16位高精度数据采集,其系统软件设计部分用C语言在Keil上进行编程,使用VC编写USB上位机程序,完成数据传输,系统硬件通过ADuC845内部模数转换模块将从外界采集到的电压信号经过串口RS232发送到PC机上进行实时显示。该设计实现了一个基于ADuC845单片机的数据采集系统的基本功能,分辨率可达到1/5000,能够实现14位的数据输出
2、。该系统的采集精度大大提高, 更加适用于高速度、高精度数据采集的实际工业测控。 关键词数据采集;ADuC845;模数转换;基准电压Data Acquisition System Design Based On ADuC845LiLu(Grade 2011,Class 2,Major electronics and information engineering ,School of Physics and Telecommunication engineering,Shaanxi University of Technology,Hanzhong 723000,Shanxi)Tutor: Qi
3、n WeiAbstract:This article is based on ADuC845 single chip design, 16 bit high precision data acquisition for low frequency voltage signal. The software design of the system is programmed with C language in Keil, VC PC program written using USB to complete parametric transmission and graphics displa
4、y, the hardware of the system is collected from the outside to the through the serial ADuC845 of the serial RS323 to the PC. The basic function of data acquisition system based on ADuC845 MCU is realized, resolution can reach 1/5000, can achieve 14 bit data output. The biggest advantage of the desig
5、n is that the accuracy of the system is greatly improved, and more suitable for the actual industrial measurement and control of high speed and accuracy data acquisition.Key words: Data acquisition system; ADuC845; Analog to digital conversion; Reference voltage 目 录1.引言11.1课题背景及研究意义11.1.1课题背景11.1.2研
6、究意义11.2课题的主要研究内容11.3本章总结12.系统总体设计22.1数据采集系统的原理22.2系统设计要求及性能指标22.2.1系统设计要求22.2.2 系统设计性能指标22.3 系统结构设计方案选择32.4本章小结33.系统硬件设计实现43.1 系统硬件设计方案43.2 系统核心处理器选择43.3单元模块电路设计53.3.1 2.5V基准电压53.3.2滑动变阻器模拟输入53.3.3 按键电路63.3.4 LED显示电路73.3.5 USB协议转串口协议83.3.6复位电路93.3.7硬件最小系统设计103.4系统硬件总体设计113.5本章小结114系统软件设计实现124.1系统软件开
7、发工具124.2系统软件设计分析124.3软件设计的原则和编程方法134.4 系统功能模块子程序设计144.5上位机采集系统软件设计154.6 本章总结155.系统调试175.1系统硬件调试175.1.1系统硬件调试方法和调试过程175.1.2 系统硬件调试结果175.2系统软件调试175.2.1 系统软件调试方法和调试过程175.2.2 系统软件调试结果175.3 系统软硬件联调185.4 系统测试数据分析195.4 本章总结196. 总结206.1 数据采集系统设计成果206.2 展望206.3 本章总结20致谢21参考文献22附录A 外文翻译23附录B 元器件清单31附录C 系统硬件电路
8、图32附录D 实物图33附录E 源程序341.引言1.1课题背景及研究意义1.1.1课题背景本课题研究的数据采集系统主要用于工业测控、医疗仪器以及消费电子产品中。其中,随着工业测控的发展,其工业测控环境越来越复杂,传统工业测控的数据采集系统已经不能满足人们对所采集到的数据的精确度和稳定度的要求。数据采集是信息处理中不可缺少的重要组成部分,在工业测控、医疗仪器以及消费电子产品中,都对数据采集系统的精度提出了更高的要求。本课题设计的数据采集系统是基于以ADuC845单片机为核心的高精度数据采集系统,ADuC845非常适用于精密仪器仪表,用于对温度、湿度、压力、应变信号等的数据采集及处理,该系统能够
9、适应环境复杂的工业测控现场,很好的解决了工业控制采集信号的准确性和稳定性。研究此数据采集系统可以很好地了解和学习ADuC845芯片的基本原理、性能以及其应用领域,熟悉ADuC845单片机的工作方式,通过实验提高对ADuC845芯片的理解,了解ADuC845和传感器之间的接口方法,掌握输入程序的设计、调试方法。1.1.2研究意义在工业测控中,数据采集十分重要,我们需要对大量的数据进行分析比较,然而,工业测控环境又十分复杂,受到光强、温度、湿度等众多因素的干扰,这对我们所采集到的数据有很大的影响,严重影响数据的精确度和稳定度,鉴于这些问题,本课题设计了一个基于ADuC845单片机的数据采集系统,数
10、据采集系统能够较好的克服复杂的工业测控环境对采集数据的精确度和稳定度的干扰,这样可以更好的测得更加精确和稳定的数据,使得工业测控可以更快更好的发展。1.2课题的主要研究内容受A/D转换器芯片发展水平的限制,目前的数据采集系统很难同时做到高精度和高速度的数据采集,本课题主要是设计一个基于ADuC845单片机的高精度数据采集系统,该控制器具有数据采集、显示、记录等功能,能够很好地改善以往的数据采集系统在高精度和高速度之间的矛盾。根据系统要求选用合适的模块来组建硬件平台,利用ADuC845单片机1来实现数据采集和控制信号的转换。设计系统模拟信号调试电路、复位电路、基准电压电路、按键电路、LED显示电
11、路以及串口通信电路。软件部分采用模块化的设计方法,通过编写各个功能模块来实现相应的功能,程序采用C语言进行设计。主要包含AD转换子程序、数据采集子程序、通信模块子程序、以及键盘扫描等子程序。在软件部分同时给出相应的编译与仿真软件的介绍。在系统硬件设计基本完成的基础上,根据数据采集系统的功能要求,进行系统软件设计,在单片机集成开发环境上进行系统软件的开发工作,系统的软件设计主要包括各个模块的驱动程序的设计,主程序部分主要完成系统对各个硬件的初始化工作,子程序主要是完成和单片机进行交互并实现本部分的功能。1.3本章总结受A/D转换器芯片发展水平的限制,目前的数据采集系统很难同时做到高精度和高速度的
12、数据采集,本课题主要是设计一个基于ADuC845单片机的高精度数据采集系统,该控制器具有数据采集、显示、记录等功能,能够很好地改善以往的数据采集系统在高精度和高速度之间的矛盾。2.系统总体设计2.1数据采集系统的原理数据采集是指从传感器和其他待测设备等模拟和数字被测单元中自动采集非电量或者电量信号,然后将其发送到上位机中进行分析处理。一般情况下,一定要在数据采集设备进行信号采集之前对传感器信号进行调制,其中包括对传感器信号进行增益或者衰减以及隔离,放大,还有滤波等等。对于某些传感器,还需要对其提供激励信号。一个完整的数据采集系统主要是由信号调理、采样保持、模数转换以及定时计数器等部分组成。一个
13、数据采集系统的任务就是对从传感器输出的模拟信号进行模数转换,将采集到的模拟信号转换成数字信号,然后把这些转换后的数字信号送入到计算机或者其他专用信号处理设备中进行数据分析处理,并且可以按需要的形式输出处理结果2。 数据采集系统大致可以分为三种:基于通用型微型计算机的数据采集系统,这种系统的主要功能是将采集器采集到的信号通过相应的总线接口扩展电路送入微型计算机内存中进行数据处理,它主要包含以下几个特点:(1)较强的软件、硬件支持。通用型微型计算机系统所有的软件、硬件资源都可以用来支持整个系统的工作。(2)具备自主开发能力。(3)系统的软件硬件的应用/配置比很小,在第二次开发时软件和硬件的扩展功能
14、较好。(4)在复杂的工业环境中运行的可靠性比较差,对其安放的应用环境要求比较高。基于单片机的数据采集系统,主要是由单片机和其他一些外围芯片所构成的数据采集系统,这是近年来微型计算机技术快速发展的结果,目前,主要由51、FPGA、CPLD、ARM、DSP等芯片构成,它具有以下一些特点:(1)系统不具有自主开发能力。系统的软件和硬件开发必须借助相应的开发工具才能完成。(2)系统的软件和硬件设计与系统配置规模都是以满足数据采集系统功能要求为原则,因此,系统的软件硬件的应用配置比接近于1.(3)可靠性好、使用方便。应用程序在ROM中运行不会因为外界的干扰而被破坏,而且上电后立即进入用户状态。基于混合型
15、计算机的数据采集系统,这是一种近几年来在计算机应用领域中迅速发展的一种系统结构形式。它主要是由通用型计算机(PC机)与单片机通过标准总线(如RS232、RS485、CAN、USB等)相连而成。单片机和它的外围电路与设备所组成的部分是为数据采集等功能的要求配置的,主机则是用来实现数据采集系统的人机对话、大容量的计算、存储记录、打印以及图形显示等。混合型计算机数据采集系统具有以下特点:(1)一般都具备自主开发能力。(2)系统的配置比较灵活,比较容易构成各种大中型测控系统。(3)主机可以构成各种局域网络系统。(4)合理充分的利用主机所提供的资源,但不会占有主机的全部CPU时间。2.2系统设计要求及性
16、能指标2.2.1系统设计要求数据采集是信息处理中不可缺少的重要组成部分,在工业测控、医疗仪器以及消费电子产品中,都对数据采集系统的精度提出了更高的要求。本课题设计了一种以ADuC845单片机为核心的高精度数据采集系统。ADuC845单片机内部带有24位-ADC,非常适用于精密仪器仪表,用于对温度、湿度、压力、应变信号等的数据采集和处理。2.2.2 系统设计性能指标 (1) AD转换有效分辨精度1/5000,AD采样速率在10100Hz; (2) 数据输出:RS232,16位数据输出,可以和PLC和电脑连接通信; (3) 可通过上位机PC启停AD数据采集,采集数据在计算机上实时显示。2.3 系统
17、结构设计方案选择方案一:采用以STC89C52单片机作为控制器的核心器件,以ADC0809作为A/D模数转换器的数据采集系统,系统可通过RS485总线将采集到的数据传输到上位机从而实现对数据的采集和控制。方案二:采用以ADuC845单片机为核心和其他芯片构成的多路数据采集系统,可通过上位机PC启停AD数据采集,使其采集的数据在计算机上实时显示。通过对比两个设计方案,由于以STC89C52单片机和ADC0809等外围电路所组成的数据采集系统对数据处理的精度远小于以ADuC845单片机为核心处理器的数据采集系统对数据处理的精度,ADuC845单片机可达到24位高精度3的数据输出,因此,最终选择了以
18、ADuC845单片机作为控制器的核心器件的数据采集系统的方案二。2.4本章小结本章主要是对数据采集系统的设计方案的分析与选择以及对该数据采集系统的总体设计的一个简单介绍,主要是从它的系统设计要求、系统设计性能指标等方面对该系统设计的一个总体介绍,同时对比两种不同的设计方案,选择更加合适的设计方案,使人们对该数据采集系统有一个总体认识。3.系统硬件设计实现3.1 系统硬件设计方案根据系统设计要求选择合适的模块来组建硬件平台,利用ADuC845单片机来实现数据采集和控制信号的转换。设计系统模拟信号采集电路、复位电路、基准电压电路、按键电路、LED显示电路以及串口通信电路等模块电路。系统硬件设计框图
19、如图3.1所示复位电路模块ADuC845信号调理模块基准电压模块RS232串口通信按键电路模块LED显示电路模块PC机 图3.1 系统硬件框图3.2 系统核心处理器选择ADI公司的MicroConverter数据采集与处理系统芯片(SOC) ADuC845芯片在内部集成了 ADI 公司的精密数据转换器,其可以对微控制器(MCU) 和闪速存储器进行编程,以便为需要精确测量宽动态范围低频信号的设计者提供更好的解决方案。 ADuC845是一个高性能的24位数据采集与处理系统4,它内部集成有两个高分辨率的模拟转换器(ADC)以及10或8通道输入多路复用器。与此同时,它还可以提供62K字节的闪速/电可擦
20、除程序存储器,4K字节闪速/电可擦除数据存储器和2034字节的数据RAM。ADuC845可以通过一个32KHz的外部晶振使其内部锁相环PLL产生一个12.58MHz的高频时钟信号,该时钟可以通过一个从微控制器(MCU)核心时钟工作频率分离的可编程时钟发送。芯片内部的微控制器是一个被优化的但指令周期为8052的闪存MCU。这个芯片的两个相互独立的ADC由一个输入多路复用器和一个温度传感器以及一个可以直接测量低幅度信号的可编程增益放大器组成,主ADC和辅助ADC都是采用高频“斩波”技术来为其提供直流失调以及失调漂移的指标,因此其非常适合使用在低温漂而且对噪声抑制和以及对电磁干扰能力要求比较高的应用
21、场合。ADuC845具有串行下载和调度模式5,可通过EA引脚提供引脚竞争模式,同时支持Quick Start开发系统和一些较低成本的软件以及硬件工具。ADuC845的内部主要通过两个多通道都可以达到24位分辨率的A/D转换器、D/A转换器和一个8位的可以编程的微控制器来组成。在正常工作时,ADuC845的电源最大为4.8 mA/3.6 V(core clk=1.57 MHz),而且该器件本身具有掉电和空闲两种工作状态。可用 3 V 和 5 V 电压使其工作。部分引脚的功能:P1.0P1.7 :输入口 模拟量/数字量, P1.0/AIN1 与P1.1/AIN2 可组成真正的差分输入。P1.0/A
22、IN1 与 ANICOM可组成假差分输入,P1.2/REFIN2+ 的另一功能是作为第 2 个外部差分参考输入的正端。 P1.6/IEXC1和P1.7/IEXC2也可用作电流源。AVDD,AGND ,DVDD,DGND :分别为模拟正电源电压和模拟地,以及数字正电源电压和数字地。REFIN-(+) :外部差分参考输入AINCOM/DAC 。RESET :复位输入。P3.0P3.7:双极端口,带内部上拉电阻,第2 功能和51 单片机相同,具体如下 : P3.0/RxD, P3.1/TxD , P3.2/INT0, P3.3/INT1, P3.4/T0, P3.5/T1, P3.6/WR, P3.
23、7/RD。XTAL1 XTAL2 :接外部晶振。EA :外部访问使能,逻辑输入。为高时,该输入可使设备从内部程序存储器 0000H-F7FFH 处取出代码。ADuC845 没有外部程序存储器,为决定代码执行模式,EA 在外部复位之后被采样。PSEN :程序存储使能,逻辑输出。在内部程序执行时保持高电平。当上电或复位通过电阻拉至低电平时,还可用作使能串行下载模式,由6,2-3可知。3.3单元模块电路设计3.3.1 2.5V基准电压基准电压是当代模拟集成电路极其重要的组成部分,它可以给串联型稳压电路、A/D转化器和D/A转化器提供基准电压,而且大多数的传感器的稳压供电电源或者激励源也是使用它。与此
24、同时,基准电压源也能作为标准电池、仪器表头的刻度标准和精密电流源等。当ADC使能时,在VREF引脚会出现基准电压,因此,在进行系统扩展时,可将该2.5V的基准电压当作参考电源来使用。基准电压电路如图3.2所示 图3.2 2.5V基准电压电路图3.3.2滑动变阻器模拟输入 ADC正常工作的模拟输入范围为0+2.5V,而允许输入的电压范围必须是正电压0+5V(最大值为+5V),如果输入的模拟电压值超过+2.5V(最大值为+5V),则ADC的采样结果就是其最大值(0FFFH),但是如果输入的模拟电压是负值,则会出现ADC的基准电压消失和采样结果不正确的结果,而且如果输入负电压时间过长,则有可能会损坏
25、芯片。所以,在一些实际应用中,如果发现启动ADC之后VREF端无电压,则需要立即对芯片进行复位,并检查模拟输入信号的采样部分,在保证输入的模拟信号在0+2.5V的范围之内后,才可以重新启动ADC,在实际应用当中,应该确保输入的模拟电压为正电平。滑动变阻器模拟输入电路图如图3.3所示 图3.3 滑动变阻器模拟输入电路图 3.3.3 按键电路在单片机应用系统中,按键主要有两种形式:直接按键和矩阵编码键盘。直接按键的每个键都单独接到单片机的一个I/O口上,直接按键则通过判断按键端口的电位即可识别按键操作,而矩阵键盘通过行列交叉按键编码进行识别。如果所需的按键少,可采用直接按键,每只按键接单片机的一条
26、I/O线,通过对显示的查询,即可识别各按键的状态。当无按键按下时,各线上均输入高电平,当某按键按下时,与其相连的I/O线将得到低电平输入。按键电路如图3.4所示 图3.4 按键电路3.3.4 LED显示电路在单片机应用系统中,通常用LED显示器和LCD显示器作为显示电路。本课题采用的两个LED,高电平选通,低电平点亮,通过两个LED的点亮与否判断AD采集的启停。而且LED显示清晰、亮度高、适用电压低、寿命长,因此本课题选择LED做显示电路。LED显示电路如图3.5所示 图3.5 LED显示电路图3.3.5 USB协议转串口协议USB转串口即实现计算机USB接口到通用串口之间的转换,为没有串口的
27、计算机提供通讯通道,而且,使用USB转串口设备等于将传统的串口设备变成了即插即用的USB设备。USB(Universal Serial Bus)全称是通用串口总线,它是近几年来应用于PC领域的新型接口技术,它是一种为了解决日益增加的PC外设与有限的主板插槽和端口之间的矛盾制定的一种通用串行接口。数据通信协议部分是USB的核心内容,主要包括以差模串行信号为载体传送二进制代码来传输信号,数据包作为最基本的完整信息单元,包含一系列数据信息。为了细化USB的通信机制,USB协议的开发者采用了分层的概念,每一层传输的数据结构对其他逻辑层是透明的,USB设备和USB主机通信的逻辑结构和每层的逻辑通道,在H
28、OST端,应用软件不能直接访问USB总线,而必须通过USB系统软件和USB主机控制器来访问USB总线,在USB总线上和USB设备进行通讯。USB总线属于一种轮询式总线,主机控制器端口初始化所有的数据传输,每一总线动作最多传送三个数据包,包括令牌、数据、联络。USB的数据传送是在主机软件和一个USB设备的指定端口之间,这种主机软件和USB设备的端口间的联系称作通道,总的来说,各通道之间的数据流动是相互独立的,一个指定的USB设备可有许多通道,其传输类型有控制传输、批量传输、中断传输和同步传输。ADuC845有三种串行输入/输出接口:通用串行异步接口、串行外设接口(SPI)和I2C串行接口。ADu
29、C845的UART串行接口可以同时接收和发送数据,同时串口是增强型的:具有接受缓冲,在第一个字节从寄存器读出之前可以从最开始来接收第二个字节,若在第二个字节接收完成时,第一个字节还没有读出时,其中的一个字节就会丢失。串口具有四种操作模式:模式0:串行数据可以通过引脚RxD来进出,TxD引脚用来输出时钟,每一次发送或者接收都以LSB的最低位作为首位,每次输出八位,而且波特率总是MCU时钟频率的1/12.模式1:TxD引脚是发送端,RxD引脚则是接收端,每次数据都是10位,一个起始位(内容总是0)和8个数据位以及一个停止位(内容总是1),波特率可以改变,是由定时器1的速率来决定的。模式2:TxD引
30、脚是发送端,RxD引脚是接收端,每次数据都是11位,1位起始位“0”和8个数据位,还有一个可编程第九位数据以及1个停止位“1”。发送数据时,第九个数据位可以置0或置1,接收时,第九位数据存放在SCON的RB8位,比特率可以编程为MCU时钟频率的1/32或者1/64,由PCON内的SMOD.1位决定。模式3:TxD引脚是发送端,RxD引脚是接收端,每次输出数据都是11位,1个起始位“0”和8个数据位,还有一个可编程的第九位数据以及1个停止位“1”,波特率可以改变而且是由定时器1的溢出率所决定的。RS2327接口适用于数据传输速率在020Kbps的通信,采用负逻辑,规定+3V+15V任意电压表示逻
31、辑0(或信号有效),-3V-15V任意电压表示逻辑1(或信号无效)。USB协议转串口协议电路图如图3.6所示 图a 图b 图3.6 USB转串口电路图3.3.6复位电路单片机开始工作的时候,必须处于一种确定状态。口线的电平和输入/输出状态不确定,可能使外围设备错误操作从而导致严重的事故发生,因此,在单片机进行工作之前,都必须进行一次复位操作,使单片机处于一种确定的状态。单片机进入复位过程有三种途径:上电(开机)复位、手动复位和监控门路复位。上电复位是指给单片机系统加电时进行复位的操作;手动复位是人为的强行使单片机进行复位的操作;而为了提高系统的可靠性,在单片机应用系统中专门设计了一些电路用于监
32、控系统的电源和单片机的状态,一旦出现异常,这些电路将强制单片机复位。ADuC845的内部复位结构如图3.7所示施密特触发器复位电路 图3.7 ADuC845的内部复位结构图 复位引脚通过一个施密特触发器与复位电路相连,施密特触发器用来抑制噪声。本课题设计的复位电路是按键电平复位,复位电路如图3.8所示 图3.8 复位电路图3.3.7硬件最小系统设计ADuC845是一个高性能的24位数据采集与处理系统,它内部集成有两个高分辨率的ADC、10或8通道输入多路复用器。 ADuC845具有串行下载模式,可通过EA引脚提供引脚竞争模式,同时支持Quick Start开发系统和低成本的软件和硬件工具。AD
33、uC845内部主要由两个多通道而且都能够达到24位分辨率的A/D转换器、D/A转换器和一个8位的可编程微控制器组成。硬件最小系统电路图如图3.9所示 图3.9 核心处理器电路图3.4系统硬件总体设计该数据采集器的电路设计采用三总线结构,分别是数据总线、地址总线和控制总线。信号处理模块中的ADuC845芯片允许P1口作为采集器的模拟信号输入口,ADuC845芯片允许被采集信号直接输入,但有时为了抵制干扰信号,在设计中可以使被采集到的信号先通过低通滤波器后再输入到ADuC845,本课题设计的数据采集系统是直接输入被采集到的信号。信号处理模块中的ADuC845芯片允许P2口既可以作为采集器的数字信号
34、I/O口,也可以作为外部32K RAM的高7位地址线接口。总体电路图见附录C3.5本章小结本章开始给出了整个系统的电路图,介绍了主芯片ADuC845的ADC、存储器等,介绍了数据采集系统的工作原理,分别对各个功能模块的单元电路图进行分析解释,从微观上了解各个系统模块的具体设计和功能,对ADC进行较为详细的介绍,使人能够更好地对这个系统有个更加深入的理解.4系统软件设计实现4.1系统软件开发工具本课题软件编程部分所使用的开发工具是美国Keil software公司的Keil C51。Keil C51是美国Keil software公司出品的51系列兼容单片机C语言8的软件开发系统。Keil C5
35、1软件提供了丰富的库数据和功能强大的集成开发调试工具。Keil C51软件的集成编写是在Vision2编译环境下进行,Vision2是一个标准的windows 应用程序,它是C51的一个集成软件开发平台,具有源代码编辑、项目管理、程序生产器等功能,它的人机界面友好,操作方便。 Keil的优点:(1)Keil C51生成的目标代码效率非常高,多数语句生成的汇编代码很紧凑,容易理解,在开发大型软件时更能体现高级语言的优势。(2)与汇编相比,C语言在功能、结构性、可读性、可编程性上有明显优势,因而易学易用。4.2系统软件设计分析在基本完成系统硬件设计的基础上,根据数据采集系统的功能要求,对系统软件进
36、行设计。本课题的软件部分设计是在单片机通用集成开发环境Keil C51 uVision3上进行的。系统软件设计主要包括主程序部分和子程序部分,主程序部分主要是用来完成系统对各个硬件的初始化工作和对每个子程序的调用,子程序部分主要是实现和单片机之间的交互以及实现该部分自身的功能。系统软件设计流程图如图4.1所示ADC、串口初始化ADC中断使能串口接收中断使能ADC转换完成计算ADC值并转换成字符串串口接收到的值发送数据到串口发送完成开始否是否0X630X88是 图4.1 系统软件流程图4.3软件设计的原则和编程方法在设计便携式数据采集系统时,应该确保系统的可靠性好、功能完整的特点。数据采集系统的
37、软件设计应该满足以下几个原则:(1)可靠性原则设计的软件系统应该确保它的使用和运行的可靠性,这样可以提高仪表、仪器的运行效率。在系统的开发完成之后,应该在实验室以及工业应用现场的复杂环境中进行多次试验与调试,而且需要进行系统整体功能的测试和调试,从而保证系统能够在各种复杂的工业测控环境下可以可靠的使用。 (2)完整性原则 数据采集和分析仪表的软件系统应该包括至少三个模块:人机接口模块和数据采集模块以及分析处理模块。(3)可扩充原则优良的系统设计应该可以为未来的升级和改进留下一定的空间。所以,软件系统设计同样要求具有可升级和可扩充的能力。一般来说,C语言的代码效率要比汇编语言的代码效率低。主要是
38、因为即便是最佳的C编译器,也不能在任何条件下都能够合理充分的利用ADuC845单片机所提供的各种资源,虽然在ADuC845上采用汇编语言进行软件开发设计,可以更好的利用单片机所提供的硬件资源,也可以获得比较高效的代码和比较高的程序执行速度,但是使用汇编语言来编写软件程序比较复杂。而且,在一般情况下,不同公司所生产的芯片所使用的汇编语言是不同的,即便是同一个公司所生产的芯片,由于其芯片的类型不同,还有芯片的升级与换代,也使得芯片的汇编语言不完全相同,所以,使用汇编语言开发的产品周期一般比较长,可读性和可移植性也比较差。 综合考虑以上各种因素,本课题采用C语言的编程开发方法,在Keil c51进行
39、软件编程。通过Keil c51,允许编程人员在C语言源程序级进行开发调试,从而大大提高了软件的开发速度,增强了软件的可读性和可移植性。4.4 系统功能模块子程序设计(1)延时2微秒编写延时子程序,延缓输出数据的显示,根据ADuC845单片机的时钟频率选择延时初始值,当时钟频率在20MHz以下时DELAY_START_VALUE为0,没有延时,当时钟频率在20MHz以上时DELAY_START_VALUE为2,延时2微秒,使得时钟信号在20MHz以上时采集到的信号延迟2微秒输入显示。(2)ADC初始化ADC的初始化是整个数据采集系统软件设计部分的重要模块,ADC的初始化包括对ADC0CON1和A
40、DC0CON2的初始化,ADC0CON1是双缓冲、单极型,其测量范围为02.5V,ADC0CON2则是内部参考电压源,选择AIN7-AINCOM作为AD采集的输入端,其初始化还包括ADC的中断使能和主ADC使能,将主ADC初始化为非斩波连续采样模式。(3)主函数主函数主要是计算ADC的值并将其转换成字符串,然后将其发送到串口,通讯数据有8位,停止位有1位。(4)模数转换用一个while(1)死循环来控制数据采集输入,将采集到的模拟信号转换为数字信号,以字符串的形式显示到计算机上,体现为“ADC07 当前电压 = ”。模数转换流程图如图4.2所示EADC=1开始转换延时取转换后的数值否是开始结束
41、 图4.2 模数转换流程图(5)启停AD采集以发送“63”为标志开始采集数据,以发送“88”来结束采集输出。4.5上位机采集系统软件设计上位机(PC机)主要用来发出操作指令和显示结果数据,人可以直接发出操作指令的计算机,一般都是PC机,屏幕上显示各种信号变化(液压、水位、温度等),下位机则是直接控制设备从而获取设备状况的计算机,一般指的是PLC/单片机之类的。上位机发出的命令首先发送给下位机,然后下位机再根据上位机所发送的命令将其解释成相应的时序信号,从而直接控制相应的设备,下位机不时读取设备状态的数据(一般为模拟量),然后将其转化为数字信号反馈给上位机。上位机大部分运行在PC机上,常见的上位
42、机开发语言有C、C+、VB、VC、Delphi、Java和C#等多种语言。上位机和下位机之间的通讯一般取决于下位机,而且上位机与下位机之间的通讯还可以采用不同的通讯协议,可以通过RS232的串口通讯或者采用RS485串行通讯也可以,本课题设计的上位机与下位机之间的通讯协议采用的是通过RS232的串口通讯。 4.6 本章总结 本章主要介绍了数据采集系统的软件设计的开发工具以及各个功能模块的软件设计,介绍了该软件系统设计的原则和其编程语言,详细介绍了各个功能模块的子程序和上位机与串口之间的通讯。5.系统调试5.1系统硬件调试5.1.1系统硬件调试方法和调试过程在系统硬件设计原理的基础上搭建好硬件电
43、路,按照设计好的原理图组装硬件电路,然后对基准电压、复位电路、按键电路、核心处理控制电路等每个单元电路进行调试。开始调试时,显示启停AD采集的两个LED不可点亮,不论AD采集是否启停,两个LED始终不亮,然后对LED显示电路进行检查后发现,LED两端的电压太小,流经LED的电流太小,不足以使其正常工作,鉴于这个原因,将两个LED的分压电阻阻值适当减小,使得流经LED的电流增大,足以使其正常工作。在对其他单元电路进行调试时发现,每次接通电源,按下复位键时,复位电路不工作,达不到复位的效果,检查电路发现,该复位电路是一个高电平复位,单元电路中的接地电阻阻值太小,导致复位电路不能正常工作,针对这个原
44、因,将复位电路中的电阻阻值调大到合适的大小,使复位电路正常工作。与此同时,还对基准电压进行稳压、滤波处理,使其输入的采集数据更加稳定。5.1.2 系统硬件调试结果经过对每个单元电路的多次反复调试,对出现错误的单元电路进行改正调整,使其能够正常工作,达到应有的效果。在电路调整过程中,出现问题最多的地方在于一些元器件的参数的选择上,合适的参数值才能使其正常工作,使其工作在最佳状态,经过反复调试,硬件电路最终能够按照设计要求正常实现功能,通过按键启停AD采集,然后将采集到的数据发送到PC机上进行显示,实现数据采集的功能。鉴于这些原因,在以后设计电路中需要更加认真细心,尤其是对一些电阻、电容等的参数选
45、择上更应该严谨一些。5.2系统软件调试5.2.1 系统软件调试方法和调试过程根据系统软件设计方案,在Keil上用C语言进行系统的程序编写,分别对每个单元模块进行程序编写,在整个系统软件编写完成后,对其进行编译调试。开始编译时,出现好多错误,然后根据错误提示去一个一个进行修改,编译时发现,ADC的初始化有错误,是对其ADCON2的初始化有错误,导致编译错误,通过查阅资料,对ADCON2重新进行初始化,最终使得ADC初始化子程序编译通过。另一个错误就是对其数据类型的定义有错误,希望在计算机上显示的输出数据以字符串的形式显示,且对于输出电压需要小数输出,因此,对输出电压的定义类型是一个浮点型数据,结
46、果在编写输入输出模块子程序时,其输出类型并不是浮点类型,导致类型不匹配,出现错误,然后将其修改为类型相匹配的数据类型,使其输入输出模块通过编译。按照编译错误提示,逐个修改错误,最终使其软件编程部分通过编译。5.2.2 系统软件调试结果经过多代码的多次编译与修改,最终整个代码可完成零错误编译,实现其功能。如图5.1所示 图5.1 系统软件调试结果5.3 系统软硬件联调在对系统软件和系统硬件分别进行调试与修改完善,直到没有错误时,将系统软件与硬件进行联调,将编写好的代码下载到单片机上,启动硬件电路使其开始工作,通过按键启停AD采集,然后将采集到的数据发送到PC机上进行实时显示,实现数据采集的功能。如图5.2所示 图a 图b图5.2 系统采