版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
37/41基于ADuC845的数据采集系统设计璐(理工学院物理与电信工程学院电子信息工程专业11级2班,723003)指导教师:伟[摘要]本文设计使用ADuC845单片机对低频电压信号进行16位高精度数据采集,其系统软件设计部分用C语言在Keil上进行编程,使用VC编写USB上位机程序,完成数据传输,系统硬件通过ADuC845部模数转换模块将从外界采集到的电压信号经过串口RS232发送到PC机上进行实时显示。该设计实现了一个基于ADuC845单片机的数据采集系统的基本功能,分辨率可达到1/5000,能够实现14位的数据输出。该系统的采集精度大大提高,更加适用于高速度、高精度数据采集的实际工业测控。[关键词]数据采集;ADuC845;模数转换;基准电压DataAcquisitionSystemDesignBasedOnADuC845LiLu(Grade2011,Class2,Majorelectronicsandinformationengineering,SchoolofPhysicsandTelecommunicationengineering,ShaanxiUniversityofTechnology,Hanzhong723000,Shanxi)Tutor:QinWei[Abstract]:ThisarticleisbasedonADuC845singlechipdesign,16bithighprecisiondataacquisitionforlowfrequencyvoltagesignal.ThesoftwaredesignofthesystemisprogrammedwithClanguageinKeil,VCPCprogramwrittenusingUSBtocompleteparametrictransmissionandgraphicsdisplay,thehardwareofthesystemiscollectedfromtheoutsidetothethroughtheserialADuC845oftheserialRS323tothePC.ThebasicfunctionofdataacquisitionsystembasedonADuC845MCUisrealized,resolutioncanreach1/5000,canachieve14bitdataoutput.Thebiggestadvantageofthedesignisthattheaccuracyofthesystemisgreatlyimproved,andmoresuitablefortheactualindustrialmeasurementandcontrolofhighspeedandaccuracydataacquisition.[Keywords]:Dataacquisitionsystem;ADuC845;Analogtodigitalconversion;Referencevoltage目录TOC\o"1-3"\h\u144931.引言1300611.1课题背景与研究意义120681.1.1课题背景1170321.1.2研究意义148341.2课题的主要研究容1240351.3本章总结1223022.系统总体设计2290282.1数据采集系统的原理247632.2系统设计要求与性能指标264122.2.1系统设计要求2227612.2.2系统设计性能指标2111252.3系统结构设计方案选择367452.4本章小结38353.系统硬件设计实现4113163.1系统硬件设计方案4146023.2系统核心处理器选择490833.3单元模块电路设计53109V基准电压579263.3.2滑动变阻器模拟输入5168463.3.3按键电路6169783.3.4LED显示电路7237613.3.5USB协议转串口协议8296023.3.6复位电路933213.3.7硬件最小系统设计10136993.4系统硬件总体设计1129853.5本章小结1145514系统软件设计实现1211964.1系统软件开发工具1285594.2系统软件设计分析1269764.3软件设计的原则和编程方法13276904.4系统功能模块子程序设计14292584.5上位机采集系统软件设计1565354.6本章总结15190455.系统调试1724915.1系统硬件调试17176265.1.1系统硬件调试方法和调试过程1769825.1.2系统硬件调试结果17263965.2系统软件调试1789515.2.1系统软件调试方法和调试过程17110705.2.2系统软件调试结果17207565.3系统软硬件联调1833275.4系统测试数据分析19216725.4本章总结19164836.总结20220796.1数据采集系统设计成果20261016.2展望20280656.3本章总结2029217致214683参考文献22107附录A外文翻译2329959附录B元器件清单313862附录C系统硬件电路图326179附录D实物图3330041附录E源程序341.引言1.1课题背景与研究意义1.1.1课题背景本课题研究的数据采集系统主要用于工业测控、医疗仪器以与消费电子产品中。其中,随着工业测控的发展,其工业测控环境越来越复杂,传统工业测控的数据采集系统已经不能满足人们对所采集到的数据的精确度和稳定度的要求。数据采集是信息处理中不可缺少的重要组成部分,在工业测控、医疗仪器以与消费电子产品中,都对数据采集系统的精度提出了更高的要求。本课题设计的数据采集系统是基于以ADuC845单片机为核心的高精度数据采集系统,ADuC845非常适用于精密仪器仪表,用于对温度、湿度、压力、应变信号等的数据采集与处理,该系统能够适应环境复杂的工业测控现场,很好的解决了工业控制采集信号的准确性和稳定性。研究此数据采集系统可以很好地了解和学习ADuC845芯片的基本原理、性能以与其应用领域,熟悉ADuC845单片机的工作方式,通过实验提高对ADuC845芯片的理解,了解ADuC845和传感器之间的接口方法,掌握输入程序的设计、调试方法。1.1.2研究意义在工业测控中,数据采集十分重要,我们需要对大量的数据进行分析比较,然而,工业测控环境又十分复杂,受到光强、温度、湿度等众多因素的干扰,这对我们所采集到的数据有很大的影响,严重影响数据的精确度和稳定度,鉴于这些问题,本课题设计了一个基于ADuC845单片机的数据采集系统,数据采集系统能够较好的克服复杂的工业测控环境对采集数据的精确度和稳定度的干扰,这样可以更好的测得更加精确和稳定的数据,使得工业测控可以更快更好的发展。1.2课题的主要研究容受A/D转换器芯片发展水平的限制,目前的数据采集系统很难同时做到高精度和高速度的数据采集,本课题主要是设计一个基于ADuC845单片机的高精度数据采集系统,该控制器具有数据采集、显示、记录等功能,能够很好地改善以往的数据采集系统在高精度和高速度之间的矛盾。根据系统要求选用合适的模块来组建硬件平台,利用ADuC845单片机[1]来实现数据采集和控制信号的转换。设计系统模拟信号调试电路、复位电路、基准电压电路、按键电路、LED显示电路以与串口通信电路。软件部分采用模块化的设计方法,通过编写各个功能模块来实现相应的功能,程序采用C语言进行设计。主要包含AD转换子程序、数据采集子程序、通信模块子程序、以与键盘扫描等子程序。在软件部分同时给出相应的编译与仿真软件的介绍。在系统硬件设计基本完成的基础上,根据数据采集系统的功能要求,进行系统软件设计,在单片机集成开发环境上进行系统软件的开发工作,系统的软件设计主要包括各个模块的驱动程序的设计,主程序部分主要完成系统对各个硬件的初始化工作,子程序主要是完成和单片机进行交互并实现本部分的功能。1.3本章总结受A/D转换器芯片发展水平的限制,目前的数据采集系统很难同时做到高精度和高速度的数据采集,本课题主要是设计一个基于ADuC845单片机的高精度数据采集系统,该控制器具有数据采集、显示、记录等功能,能够很好地改善以往的数据采集系统在高精度和高速度之间的矛盾。2.系统总体设计2.1数据采集系统的原理数据采集是指从传感器和其他待测设备等模拟和数字被测单元中自动采集非电量或者电量信号,然后将其发送到上位机中进行分析处理。一般情况下,一定要在数据采集设备进行信号采集之前对传感器信号进行调制,其中包括对传感器信号进行增益或者衰减以与隔离,放大,还有滤波等等。对于某些传感器,还需要对其提供激励信号。一个完整的数据采集系统主要是由信号调理、采样/保持、模数转换以与定时/计数器等部分组成。一个数据采集系统的任务就是对从传感器输出的模拟信号进行模数转换,将采集到的模拟信号转换成数字信号,然后把这些转换后的数字信号送入到计算机或者其他专用信号处理设备中进行数据分析处理,并且可以按需要的形式输出处理结果[2]。数据采集系统大致可以分为三种:基于通用型微型计算机的数据采集系统,这种系统的主要功能是将采集器采集到的信号通过相应的总线接口扩展电路送入微型计算机存中进行数据处理,它主要包含以下几个特点:(1)较强的软件、硬件支持。通用型微型计算机系统所有的软件、硬件资源都可以用来支持整个系统的工作。(2)具备自主开发能力。(3)系统的软件硬件的应用/配置比很小,在第二次开发时软件和硬件的扩展功能较好。(4)在复杂的工业环境中运行的可靠性比较差,对其安放的应用环境要求比较高。基于单片机的数据采集系统,主要是由单片机和其他一些外围芯片所构成的数据采集系统,这是近年来微型计算机技术快速发展的结果,目前,主要由51、FPGA、CPLD、ARM、DSP等芯片构成,它具有以下一些特点:(1)系统不具有自主开发能力。系统的软件和硬件开发必须借助相应的开发工具才能完成。(2)系统的软件和硬件设计与系统配置规模都是以满足数据采集系统功能要求为原则,因此,系统的软件硬件的应用配置比接近于1.(3)可靠性好、使用方便。应用程序在ROM中运行不会因为外界的干扰而被破坏,而且上电后立即进入用户状态。基于混合型计算机的数据采集系统,这是一种近几年来在计算机应用领域中迅速发展的一种系统结构形式。它主要是由通用型计算机(PC机)与单片机通过标准总线(如RS232、RS485、CAN、USB等)相连而成。单片机和它的外围电路与设备所组成的部分是为数据采集等功能的要求配置的,主机则是用来实现数据采集系统的人机对话、大容量的计算、存储记录、打印以与图形显示等。混合型计算机数据采集系统具有以下特点:(1)一般都具备自主开发能力。(2)系统的配置比较灵活,比较容易构成各种大中型测控系统。(3)主机可以构成各种局域网络系统。(4)合理充分的利用主机所提供的资源,但不会占有主机的全部CPU时间。2.2系统设计要求与性能指标2.2.1系统设计要求数据采集是信息处理中不可缺少的重要组成部分,在工业测控、医疗仪器以与消费电子产品中,都对数据采集系统的精度提出了更高的要求。本课题设计了一种以ADuC845单片机为核心的高精度数据采集系统。ADuC845单片机部带有24位△-∑ADC,非常适用于精密仪器仪表,用于对温度、湿度、压力、应变信号等的数据采集和处理。2.2.2系统设计性能指标(1)AD转换有效分辨精度≥1/5000,AD采样速率在10~100Hz;(2)数据输出:RS232,16位数据输出,可以和PLC和电脑连接通信;(3)可通过上位机PC启停AD数据采集,采集数据在计算机上实时显示。2.3系统结构设计方案选择方案一:采用以STC89C52单片机作为控制器的核心器件,以ADC0809作为A/D模数转换器的数据采集系统,系统可通过RS485总线将采集到的数据传输到上位机从而实现对数据的采集和控制。方案二:采用以ADuC845单片机为核心和其他芯片构成的多路数据采集系统,可通过上位机PC启停AD数据采集,使其采集的数据在计算机上实时显示。通过对比两个设计方案,由于以STC89C52单片机和ADC0809等外围电路所组成的数据采集系统对数据处理的精度远小于以ADuC845单片机为核心处理器的数据采集系统对数据处理的精度,ADuC845单片机可达到24位高精度[3]的数据输出,因此,最终选择了以ADuC845单片机作为控制器的核心器件的数据采集系统的方案二。2.4本章小结本章主要是对数据采集系统的设计方案的分析与选择以与对该数据采集系统的总体设计的一个简单介绍,主要是从它的系统设计要求、系统设计性能指标等方面对该系统设计的一个总体介绍,同时对比两种不同的设计方案,选择更加合适的设计方案,使人们对该数据采集系统有一个总体认识。3.系统硬件设计实现3.1系统硬件设计方案根据系统设计要求选择合适的模块来组建硬件平台,利用ADuC845单片机来实现数据采集和控制信号的转换。设计系统模拟信号采集电路、复位电路、基准电压电路、按键电路、LED显示电路以与串口通信电路等模块电路。系统硬件设计框图如图3.1所示复位电路模块复位电路模块ADuC845信号调理模块基准电压模块RS232串口通信按键电路模块LED显示电路模块PC机图3.1系统硬件框图3.2系统核心处理器选择ADI公司的MicroConverter数据采集与处理系统芯片(SOC)-ADuC845芯片在部集成了ADI公司的精密数据转换器,其可以对微控制器(MCU)和闪速存储器进行编程,以便为需要精确测量宽动态围低频信号的设计者提供更好的解决方案。ADuC845是一个高性能的24位数据采集与处理系统[4],它部集成有两个高分辨率的模拟转换器(ADC)以与10或8通道输入多路复用器。与此同时,它还可以提供62K字节的闪速/电可擦除程序存储器,4K字节闪速/电可擦除数据存储器和2034字节的数据RAM。ADuC845可以通过一个32KHz的外部晶振使其部锁相环PLL产生一个12.58MHz的高频时钟信号,该时钟可以通过一个从微控制器(MCU)核心时钟工作频率分离的可编程时钟发送。芯片部的微控制器是一个被优化的但指令周期为8052的闪存MCU。这个芯片的两个相互独立的ADC由一个输入多路复用器和一个温度传感器以与一个可以直接测量低幅度信号的可编程增益放大器组成,主ADC和辅助ADC都是采用高频“斩波”技术来为其提供直流失调以与失调漂移的指标,因此其非常适合使用在低温漂而且对噪声抑制和以与对电磁干扰能力要求比较高的应用场合。ADuC845具有串行下载和调度模式[5],可通过EA引脚提供引脚竞争模式,同时支持QuickStart开发系统和一些较低成本的软件以与硬件工具。ADuC845的部主要通过两个多通道都可以达到24位分辨率的A/D转换器、D/A转换器和一个8位的可以编程的微控制器来组成。在正常工作时,ADuC845的电源最大为4.8mA/3.6V(coreclk=1.57MHz),而且该器件本身具有掉电和空闲两种工作状态。可用3V和5V电压使其工作。部分引脚的功能:P1.0~P1.7:输入口模拟量/数字量,P1.0/AIN1与P1.1/AIN2可组成真正的差分输入。P1.0/AIN1与ANICOM可组成假差分输入,P1.2/REFIN2+的另一功能是作为第2个外部差分参考输入的正端。P1.6/IEXC1和P1.7/IEXC2也可用作电流源。AVDD,AGND,DVDD,DGND:分别为模拟正电源电压和模拟地,以与数字正电源电压和数字地。REFIN-(+):外部差分参考输入AINCOM/DAC。RESET:复位输入。P3.0~P3.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.7/RD。XTAL1XTAL2:接外部晶振。EA:外部访问使能,逻辑输入。为高时,该输入可使设备从部程序存储器0000H-F7FFH处取出代码。ADuC845没有外部程序存储器,为决定代码执行模式,EA在外部复位之后被采样。PSEN:程序存储使能,逻辑输出。在部程序执行时保持高电平。当上电或复位通过电阻拉至低电平时,还可用作使能串行下载模式,由[6,2-3]可知。3.3单元模块电路设计V基准电压基准电压是当代模拟集成电路极其重要的组成部分,它可以给串联型稳压电路、A/D转化器和D/A转化器提供基准电压,而且大多数的传感器的稳压供电电源或者激励源也是使用它。与此同时,基准电压源也能作为标准电池、仪器表头的刻度标准和精密电流源等。当ADC使能时,在VREF引脚会出现基准电压,因此,在进行系统扩展时,可将该2.5V的基准电压当作参考电源来使用。基准电压电路如图3.2所示图3.22.5V基准电压电路图3.3.2滑动变阻器模拟输入ADC正常工作的模拟输入围为0~+2.5V,而允许输入的电压围必须是正电压0~+5V(最大值为+5V),如果输入的模拟电压值超过+2.5V(最大值为+5V),则ADC的采样结果就是其最大值(0FFFH),但是如果输入的模拟电压是负值,则会出现ADC的基准电压消失和采样结果不正确的结果,而且如果输入负电压时间过长,则有可能会损坏芯片。所以,在一些实际应用中,如果发现启动ADC之后VREF端无电压,则需要立即对芯片进行复位,并检查模拟输入信号的采样部分,在保证输入的模拟信号在0~+2.5V的围之后,才可以重新启动ADC,在实际应用当中,应该确保输入的模拟电压为正电平。滑动变阻器模拟输入电路图如图3.3所示图3.3滑动变阻器模拟输入电路图3.3.3按键电路在单片机应用系统中,按键主要有两种形式:直接按键和矩阵编码键盘。直接按键的每个键都单独接到单片机的一个I/O口上,直接按键则通过判断按键端口的电位即可识别按键操作,而矩阵键盘通过行列交叉按键编码进行识别。如果所需的按键少,可采用直接按键,每只按键接单片机的一条I/O线,通过对显示的查询,即可识别各按键的状态。当无按键按下时,各线上均输入高电平,当某按键按下时,与其相连的I/O线将得到低电平输入。按键电路如图3.4所示图3.4按键电路3.3.4LED显示电路在单片机应用系统中,通常用LED显示器和LCD显示器作为显示电路。本课题采用的两个LED,高电平选通,低电平点亮,通过两个LED的点亮与否判断AD采集的启停。而且LED显示清晰、亮度高、适用电压低、寿命长,因此本课题选择LED做显示电路。LED显示电路如图3.5所示图3.5LED显示电路图3.3.5USB协议转串口协议USB转串口即实现计算机USB接口到通用串口之间的转换,为没有串口的计算机提供通讯通道,而且,使用USB转串口设备等于将传统的串口设备变成了即插即用的USB设备。USB(UniversalSerialBus)全称是通用串口总线,它是近几年来应用于PC领域的新型接口技术,它是一种为了解决日益增加的PC外设与有限的主板插槽和端口之间的矛盾制定的一种通用串行接口。数据通信协议部分是USB的核心容,主要包括以差模串行信号为载体传送二进制代码来传输信号,数据包作为最基本的完整信息单元,包含一系列数据信息。为了细化USB的通信机制,USB协议的开发者采用了分层的概念,每一层传输的数据结构对其他逻辑层是透明的,USB设备和USB主机通信的逻辑结构和每层的逻辑通道,在HOST端,应用软件不能直接访问USB总线,而必须通过USB系统软件和USB主机控制器来访问USB总线,在USB总线上和USB设备进行通讯。USB总线属于一种轮询式总线,主机控制器端口初始化所有的数据传输,每一总线动作最多传送三个数据包,包括令牌、数据、联络。USB的数据传送是在主机软件和一个USB设备的指定端口之间,这种主机软件和USB设备的端口间的联系称作通道,总的来说,各通道之间的数据流动是相互独立的,一个指定的USB设备可有许多通道,其传输类型有控制传输、批量传输、中断传输和同步传输。ADuC845有三种串行输入/输出接口:通用串行异步接口、串行外设接口(SPI)和I2C串行接口。ADuC845的UART串行接口可以同时接收和发送数据,同时串口是增强型的:具有接受缓冲,在第一个字节从寄存器读出之前可以从最开始来接收第二个字节,若在第二个字节接收完成时,第一个字节还没有读出时,其中的一个字节就会丢失。串口具有四种操作模式:模式0:串行数据可以通过引脚RxD来进出,TxD引脚用来输出时钟,每一次发送或者接收都以LSB的最低位作为首位,每次输出八位,而且波特率总是MCU时钟频率的1/12.模式1:TxD引脚是发送端,RxD引脚则是接收端,每次数据都是10位,一个起始位(容总是’0’)和8个数据位以与一个停止位(容总是’1’),波特率可以改变,是由定时器1的速率来决定的。模式2:TxD引脚是发送端,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的溢出率所决定的。RS232[7]接口适用于数据传输速率在0~20Kbps的通信,采用负逻辑,规定+3V~+15V任意电压表示逻辑0(或信号有效),-3V~-15V任意电压表示逻辑1(或信号无效)。USB协议转串口协议电路图如图3.6所示图a图b图3.6USB转串口电路图3.3.6复位电路单片机开始工作的时候,必须处于一种确定状态。口线的电平和输入/输出状态不确定,可能使外围设备错误操作从而导致严重的事故发生,因此,在单片机进行工作之前,都必须进行一次复位操作,使单片机处于一种确定的状态。单片机进入复位过程有三种途径:上电(开机)复位、手动复位和监控门路复位。上电复位是指给单片机系统加电时进行复位的操作;手动复位是人为的强行使单片机进行复位的操作;而为了提高系统的可靠性,在单片机应用系统中专门设计了一些电路用于监控系统的电源和单片机的状态,一旦出现异常,这些电路将强制单片机复位。ADuC845的部复位结构如图3.7所示施密特触发器施密特触发器复位电路图3.7ADuC845的部复位结构图复位引脚通过一个施密特触发器与复位电路相连,施密特触发器用来抑制噪声。本课题设计的复位电路是按键电平复位,复位电路如图3.8所示图3.8复位电路图3.3.7硬件最小系统设计ADuC845是一个高性能的24位数据采集与处理系统,它部集成有两个高分辨率的ADC、10或8通道输入多路复用器。ADuC845具有串行下载模式,可通过EA引脚提供引脚竞争模式,同时支持QuickStart开发系统和低成本的软件和硬件工具。ADuC845部主要由两个多通道而且都能够达到24位分辨率的A/D转换器、D/A转换器和一个8位的可编程微控制器组成。硬件最小系统电路图如图3.9所示图3.9核心处理器电路图3.4系统硬件总体设计该数据采集器的电路设计采用三总线结构,分别是数据总线、地址总线和控制总线。信号处理模块中的ADuC845芯片允许P1口作为采集器的模拟信号输入口,ADuC845芯片允许被采集信号直接输入,但有时为了抵制干扰信号,在设计中可以使被采集到的信号先通过低通滤波器后再输入到ADuC845,本课题设计的数据采集系统是直接输入被采集到的信号。信号处理模块中的ADuC845芯片允许P2口既可以作为采集器的数字信号I/O口,也可以作为外部32KRAM的高7位地址线接口。总体电路图见附录C3.5本章小结本章开始给出了整个系统的电路图,介绍了主芯片ADuC845的ADC、存储器等,介绍了数据采集系统的工作原理,分别对各个功能模块的单元电路图进行分析解释,从微观上了解各个系统模块的具体设计和功能,对ADC进行较为详细的介绍,使人能够更好地对这个系统有个更加深入的理解.4系统软件设计实现4.1系统软件开发工具本课题软件编程部分所使用的开发工具是美国Keilsoftware公司的KeilC51。KeilC51是美国Keilsoftware公司出品的51系列兼容单片机C语言[8]的软件开发系统。KeilC51软件提供了丰富的库数据和功能强大的集成开发调试工具。KeilC51软件的集成编写是在Vision2编译环境下进行,Vision2是一个标准的windows应用程序,它是C51的一个集成软件开发平台,具有源代码编辑、项目管理、程序生产器等功能,它的人机界面友好,操作方便。Keil的优点:(1)KeilC51生成的目标代码效率非常高,多数语句生成的汇编代码很紧凑,容易理解,在开发大型软件时更能体现高级语言的优势。(2)与汇编相比,C语言在功能、结构性、可读性、可编程性上有明显优势,因而易学易用。4.2系统软件设计分析在基本完成系统硬件设计的基础上,根据数据采集系统的功能要求,对系统软件进行设计。本课题的软件部分设计是在单片机通用集成开发环境KeilC51uVision3上进行的。系统软件设计主要包括主程序部分和子程序部分,主程序部分主要是用来完成系统对各个硬件的初始化工作和对每个子程序的调用,子程序部分主要是实现和单片机之间的交互以与实现该部分自身的功能。系统软件设计流程图如图4.1所示ADC、串口初始化ADC、串口初始化ADC中断使能
串口接收中断使能ADC转换完成计算ADC值并转换成字符串串口接收到的值发送数据到串口发送完成开始否是否0X630X88是图4.1系统软件流程图4.3软件设计的原则和编程方法在设计便携式数据采集系统时,应该确保系统的可靠性好、功能完整的特点。数据采集系统的软件设计应该满足以下几个原则:(1)可靠性原则设计的软件系统应该确保它的使用和运行的可靠性,这样可以提高仪表、仪器的运行效率。在系统的开发完成之后,应该在实验室以与工业应用现场的复杂环境中进行多次试验与调试,而且需要进行系统整体功能的测试和调试,从而保证系统能够在各种复杂的工业测控环境下可以可靠的使用。(2)完整性原则数据采集和分析仪表的软件系统应该包括至少三个模块:人机接口模块和数据采集模块以与分析处理模块。(3)可扩充原则优良的系统设计应该可以为未来的升级和改进留下一定的空间。所以,软件系统设计同样要求具有可升级和可扩充的能力。一般来说,C语言的代码效率要比汇编语言的代码效率低。主要是因为即便是最佳的C编译器,也不能在任何条件下都能够合理充分的利用ADuC845单片机所提供的各种资源,虽然在ADuC845上采用汇编语言进行软件开发设计,可以更好的利用单片机所提供的硬件资源,也可以获得比较高效的代码和比较高的程序执行速度,但是使用汇编语言来编写软件程序比较复杂。而且,在一般情况下,不同公司所生产的芯片所使用的汇编语言是不同的,即便是同一个公司所生产的芯片,由于其芯片的类型不同,还有芯片的升级与换代,也使得芯片的汇编语言不完全一样,所以,使用汇编语言开发的产品周期一般比较长,可读性和可移植性也比较差。综合考虑以上各种因素,本课题采用C语言的编程开发方法,在Keilc51进行软件编程。通过Keilc51,允许编程人员在C语言源程序级进行开发调试,从而大大提高了软件的开发速度,增强了软件的可读性和可移植性。4.4系统功能模块子程序设计(1)延时2微秒编写延时子程序,延缓输出数据的显示,根据ADuC845单片机的时钟频率选择延时初始值,当时钟频率在20MHz以下时DELAY_START_VALUE为0,没有延时,当时钟频率在20MHz以上时DELAY_START_VALUE为2,延时2微秒,使得时钟信号在20MHz以上时采集到的信号延迟2微秒输入显示。(2)ADC初始化ADC的初始化是整个数据采集系统软件设计部分的重要模块,ADC的初始化包括对ADC0CON1和ADC0CON2的初始化,ADC0CON1是双缓冲、单极型,其测量围为0~2.5V,ADC0CON2则是部参考电压源,选择AIN7-AINCOM作为AD采集的输入端,其初始化还包括ADC的中断使能和主ADC使能,将主ADC初始化为非斩波连续采样模式。(3)主函数主函数主要是计算ADC的值并将其转换成字符串,然后将其发送到串口,通讯数据有8位,停止位有1位。(4)模数转换用一个while(1)死循环来控制数据采集输入,将采集到的模拟信号转换为数字信号,以字符串的形式显示到计算机上,体现为“ADC07–当前电压=”。模数转换流程图如图4.2所示EADC=1EADC=1开始转换延时取转换后的数值否是开始结束图4.2模数转换流程图(5)启停AD采集以发送“63”为标志开始采集数据,以发送“88”来结束采集输出。4.5上位机采集系统软件设计上位机(PC机)主要用来发出操作指令和显示结果数据,人可以直接发出操作指令的计算机,一般都是PC机,屏幕上显示各种信号变化(液压、水位、温度等),下位机则是直接控制设备从而获取设备状况的计算机,一般指的是PLC/单片机之类的。上位机发出的命令首先发送给下位机,然后下位机再根据上位机所发送的命令将其解释成相应的时序信号,从而直接控制相应的设备,下位机不时读取设备状态的数据(一般为模拟量),然后将其转化为数字信号反馈给上位机。上位机大部分运行在PC机上,常见的上位机开发语言有C、C++、VB、VC、Delphi、Java和C#等多种语言。上位机和下位机之间的通讯一般取决于下位机,而且上位机与下位机之间的通讯还可以采用不同的通讯协议,可以通过RS232的串口通讯或者采用RS485串行通讯也可以,本课题设计的上位机与下位机之间的通讯协议采用的是通过RS232的串口通讯。4.6本章总结本章主要介绍了数据采集系统的软件设计的开发工具以与各个功能模块的软件设计,介绍了该软件系统设计的原则和其编程语言,详细介绍了各个功能模块的子程序和上位机与串口之间的通讯。5.系统调试5.1系统硬件调试5.1.1系统硬件调试方法和调试过程在系统硬件设计原理的基础上搭建好硬件电路,按照设计好的原理图组装硬件电路,然后对基准电压、复位电路、按键电路、核心处理控制电路等每个单元电路进行调试。开始调试时,显示启停AD采集的两个LED不可点亮,不论AD采集是否启停,两个LED始终不亮,然后对LED显示电路进行检查后发现,LED两端的电压太小,流经LED的电流太小,不足以使其正常工作,鉴于这个原因,将两个LED的分压电阻阻值适当减小,使得流经LED的电流增大,足以使其正常工作。在对其他单元电路进行调试时发现,每次接通电源,按下复位键时,复位电路不工作,达不到复位的效果,检查电路发现,该复位电路是一个高电平复位,单元电路中的接地电阻阻值太小,导致复位电路不能正常工作,针对这个原因,将复位电路中的电阻阻值调大到合适的大小,使复位电路正常工作。与此同时,还对基准电压进行稳压、滤波处理,使其输入的采集数据更加稳定。5.1.2系统硬件调试结果经过对每个单元电路的多次反复调试,对出现错误的单元电路进行改正调整,使其能够正常工作,达到应有的效果。在电路调整过程中,出现问题最多的地方在于一些元器件的参数的选择上,合适的参数值才能使其正常工作,使其工作在最佳状态,经过反复调试,硬件电路最终能够按照设计要求正常实现功能,通过按键启停AD采集,然后将采集到的数据发送到PC机上进行显示,实现数据采集的功能。鉴于这些原因,在以后设计电路中需要更加认真细心,尤其是对一些电阻、电容等的参数选择上更应该严谨一些。5.2系统软件调试5.2.1系统软件调试方法和调试过程根据系统软件设计方案,在Keil上用C语言进行系统的程序编写,分别对每个单元模块进行程序编写,在整个系统软件编写完成后,对其进行编译调试。开始编译时,出现好多错误,然后根据错误提示去一个一个进行修改,编译时发现,ADC的初始化有错误,是对其ADCON2的初始化有错误,导致编译错误,通过查阅资料,对ADCON2重新进行初始化,最终使得ADC初始化子程序编译通过。另一个错误就是对其数据类型的定义有错误,希望在计算机上显示的输出数据以字符串的形式显示,且对于输出电压需要小数输出,因此,对输出电压的定义类型是一个浮点型数据,结果在编写输入输出模块子程序时,其输出类型并不是浮点类型,导致类型不匹配,出现错误,然后将其修改为类型相匹配的数据类型,使其输入输出模块通过编译。按照编译错误提示,逐个修改错误,最终使其软件编程部分通过编译。5.2.2系统软件调试结果经过多代码的多次编译与修改,最终整个代码可完成零错误编译,实现其功能。如图5.1所示图5.1系统软件调试结果5.3系统软硬件联调在对系统软件和系统硬件分别进行调试与修改完善,直到没有错误时,将系统软件与硬件进行联调,将编写好的代码下载到单片机上,启动硬件电路使其开始工作,通过按键启停AD采集,然后将采集到的数据发送到PC机上进行实时显示,实现数据采集的功能。如图5.2所示图a图b图5.2系统采集数据5.4系统测试数据分析在系统软硬件联调没有任何错误而且能够正常采集数据时,利用实验室五位半的电压测量仪器对其输入端的电压进行测量,与此同时,记录计算机上所显示的系统采集到的电压值,将两组值进行分析对比,计算其误差值,测量结果如表5.1所示表5.1测量结果系统采集(mv)338.41545.01784.631032.131446.581878.422012.02实际测量(mv)339.52541.99786.011030.871449.011875.972009.11误差值0.33%0.55%0.18%0.12%0.17%0.13%0.14%经过分析对比两组电压值,系统所采集到的电压值与仪器所测量的电压值的误差围在0.5%以,而五位半的仪器所能达到的测量精度是14位,系统测量得到的电压值与仪器所测量到的值的误差在0.5%以,因此,系统所能达到的数据输出精度接近14位。5.4本章总结本章主要是在系统软件和系统硬件完成之后,对其进行单独调试和软硬件联调,通过调试找出系统的不足和错误,然后针对错误寻找相应的解决方法,最终使得系统软件和系统硬件单独调试没有错误,并且将系统软件和系统硬件进行联调也没有出现错误,从而看到整个系统可以正常工作,实现数据采集的功能。6.总结6.1数据采集系统设计成果将系统软件与硬件进行联调,将编写好的代码下载到单片机上,启动硬件电路使其开始工作,通过按键启停AD采集,然后将采集到的数据发送到PC机上进行显示,实现数据采集的功能,该系统是一个单端采集,可以采集到0~2.5V的电压量,其精度可以达到16位输出,在输出精度方面有了很大的提高,该数据采集系统可以更好的满足现代工业测控对数据采集的高速度和高精度的要求,能够更好的适用于现代工业测控。6.2展望在整个数据采集系统的设计过程中,虽然遇到了很多问题,但是经过查阅资料和反复不断地调试修改后,整个系统最终可以实现预期的结果,但是,在整个设计中依然有许多可以改进和完善的地方,本课题所设计的数据采集系统只是简单的实现数据采集功能,一方面,该系统只是在计算机上显示所采集到的电压信号,还可以通过对系统做一些改进,使其不单单显示系统所采集到的电压信号,而是不但可以显示系统采集到的数据,而且与此同时也可以显示所采集到的电压信号的波形变化,这样可以更加直观的看到系统采集到的数据的变化。另一方面,本系统所设计的数据采集只是一个单端采集,可以采集到0~+2.5V的电压量,为了使系统的功能更加完善,应用领域更加广泛,可以将其改进为一个可以实现双端数据采集的数据采集系统使其可以采集到-2.5V~+2.5V围的电压量。总而言之,该系统虽然实现了数据采集和显示的功能,但是依然有许多需要改进和完善的地方,在以后的设计中,可以对其进行改进和完善,使其功能更加强大,应用更加广泛。6.3本章总结本章主要是对该数据采集系统的设计成果的一个描述,同时也对该数据采集系统进行了评价分析,指出了其有待改进完善的地方,让人们对该数据采集系统有了一个更加直观全面的认识。致本课题在选题与研究过程中得到老师的悉心指导。在整个毕业设计过程中,老师多次询问研究进程,给我答疑解惑,为我指点迷津,帮助我开拓研究思路,甚至帮我搜集课题相关资料。老师一丝不苟的作风,严谨、认真负责的态度,深深的影响到我。从上老师的第一节课到现在的毕业设计,时间一晃而过,不知不觉的已经三年了,老师教给我的东西不止课堂短短几十分钟的容,在老师身上我学到了很多,尤其是老师对待每件事情的认真与负责,非常值得我学习,老师教会我那么多的东西,这将使我终生受益无穷,是我学生时代一笔巨大的财富。通过这次毕业设计,使我在单片机的基本原理、单片机的实际应用方面有了更大的进步。整个毕业设计在老师的悉心指导和严格要求下,最终实现其预期的功能,与此同时,我也获得了丰富的理论知识,极提高了自己的动手实践能力,并对当前数据采集系统领域的研究状况和发展方向有了一定的了解,这对我今后进一步学习数据采集方面的知识有极大的帮助。在此,我衷心感老师的悉心指导和支持。在未来的工作和学习中,我将以更好的成绩来回报老师。与此同时,我还要感陪伴我走过四年大学生涯的全体老师和同学门,他们一直对我的陪伴和帮助。参考文献[1]庄坤领.基于ADuC845数据采集系统的研究与设计[M].:中国海洋大学,2009.[2]朝青.PC机与单片机数据通信技术[M].:航空航天,2002.[3]AnalogDevices,Inc.ADAduC845/847/848MicroCnverterMulticchannel24bitADCswithembedded62KBFlashandSinge-CycleMCU..analog./static/imported-files/datasheets/ADUC845847848.pdf.2005.[4]敦涛,翌,武.带高精度24位A/D转换的51核ADuC845[M].:华中师大学,2006.[5]刚,林凌,何峰等.ADuC845单片机原理、开发方法与应用实例[M].:电子工业,2006.[6]敦涛,翌,武.带高精度24位A/D转换的51核ADuC845[M].:华中师大学,2006.[7]朝青.单片机原理与接口技术[M].:航空航天大学,1999.[8]谭浩强.C程序设计(第二版).:清华大学,1999.[9]维成,加国.单片机原理与应用与C51程序设计[M].:清华大学出版,2011.[10]程佩清.数字信号处理[M].:清华大学,1995.[11]王永山,王博.计算机原理与应用(第三版)[M].:电子科技大学,2009.[12]童诗白,华成英.模拟电子技术基础(第三版)[M].:高等教育,2003.[13]书明等.数据采集系统芯片AduCS12原理与应用[M].:电子科技大学,2002.[14]王福瑞.单片微机测控系统大全[M].:航空航天大学,1997.[15]TIMSC1210Anolog-to-Digtalwith8015MicrocontrollerandFlashMemeroyUser’sGuid[EB/OL],.ti.,2004-10.附录A外文翻译ADuC845_847_848(34-41)ADCCIRCUITINFORMATIONTheAduC845incorporatestwo10-channel(8-channelontheMQFPpackage)24-bitADCs,whiletheAduC847andAduC848eachincorporateasingle10-channel(8-channelontheMQFPpackage)24-bitand16-bit.Eachpartalsoincludesanon-chipprogrammablegainamplifierandconfigurablebuffering(neitherisavailableontheauxiliaryADContheAduC845).Thepartsalsoincroporatedigitalfilteringintendedformeasuringwidedynamicrangandlowfrequencyhsignalssuchasthoseinweig-scale,strain-gage,pressuretransducer,ortemperaturemeasurementapplications.TheADuC845/ADuC847/ADuC848canbeconfigerdasfourorfive(MQFP/LFCSPpackage)fully-differentialinputchannelsoraseightorten(MQFP/LFCSPpackage)pseudodifferentialinputchannelsreferencedtoAINCOM.TheADConeachpart(primaryonlyontheADuC845)canbefullybufferedinternally,andcanbeprogrammedforoneoreightinputrangesfrom+20mv~-20mvto+2.5v~-2.56v.BufferingtheinputchannelmeansthatthepartcanhandlesignificantsourceimpedancesontheselectedanaloginputandthatRCfriltering(fornoiserejectionorRFIreduction)canbeplacedontheanaloginputs.IftheADCisusedwithinternalbufferingdisaled(ADC0CON1.7=1,ADC0CON1.6=0),theseunbufferedinputsprovideadynamicloadtothedrivingsource.Therefore,resistor/capacitorcombinationsontheinputscanimpedanceofthesourcethatisdrivingtheADCinputs.Theinputchannelsareintendedtoconvertaignalsdirectlyfromsensorswithouttheneedforextrnalsigalcondionting.Withinternalbufferingdisabled(relevantbitsset/clearedinADC0CON1),extrnalbufferingmightberequired.Whentheinternalbufferisenabled,itmightbenecessarytooffsetthenegativeinputchannelby+100mvandtooffsetthepositivechannelby-100mvifthereferencerangeisAvdd.Thisaccountsfortherestrictedcommon-modeinputrangeinthebuffer.Somecircuits,forexample,brigdecircuits,areinherentlysuitabletousewithouthavingtooffsetwheretheoutputvoltageisbalancedaroundV/2andisnotsufficientlylargetoencroachonthesupplyrails.IntenalbufferingisnotavalibleontheauxiliaryADC(ADuC845only).TheauxiliaryADC(ADuC845)isfixedatagainof+2.50v~-2.50v.TheADCsuseaconversiontechniquetorealizeupto24bitsontheADuC845andtheADuC847,andupto16bitsontheADuC848ofnomissingcodesperformance(20hzupdaterate,chopenable).TheΣ-Δmodulatorconvertsthesampledinputsignalintoadigitalpulsetrainwhosedutycyclecontainsthedigitalinformation.ADCCHOPPINGTheADCsontheADuC845/ADuC847/ADuC848implentendachoppingschemewherebytheADCrepatedlyreversesitsinputs.Thedecimateddigitalouttputwordsfromthesin3filter,therefore,haveapositiveandnegativeoffsettermincluded.Asaresult,afinalsummingstsgeisincludedineachADCsothateachoutputwordfromthefilterissummedandaveragedwiththepreviousfilteroutputtoproduceanewvalidoutputresulttobewrittentotheADCdataSFRs.Thechoppingschemeincorporatedintothepartsresultsinexcellentdcoffsetandoffsetdriftspecifications,andisexternalybeneficalinapplicationswheredrift,noiserejection,andoptimumEMIperformanceareinportant.ADCchopcanbedisabledciathechopbitintheADCMODESFR(ADCMODE.3).Settingthisbitto1(logichigh)disableschopmode.CALIBRATIONTheADuC845/ADuC847ADuC848incorporatefourcalibrationmodesthatcanbeprogrommedviathemodebitsintheADCMODESFRdetailed..Everypartiscalibratedbeforeitleavesthefactory.Theresultingoffsetandgaincalibrationcoefficientsforboththeprimaryandauxiliary(ADuC845only)ADCsarestoredon-chipinmanufacturing-specificFlash/EEmemorylocaions.Atpower-onorafterareset,thesefactorycalibrationregistersareautomaticallydownloadedtotheADCcalibrationregistersinthepart’sSFRspace.Tofacilitateusercalibration,eachoftheprimaryandauxiliary(ADuC845only)ADCshavededicatedcalibrationcontroolSFrs,whicharediscribedintheADCSFRinterfacesection.Onceauserintiatesacalibrationprocedure,thefactorycalibrationvaluesthatwereinitallydownloadedduringthesepower-onsequencetotheADCcalibrationSFRsareoverwritten.TheADCtobecalibratedmustbeenabledviatheADCenablebitsintheADCMODEregister.Eventhoughaninternaloffsetcalibrationmodeisdescribedinthissection,notethattheADCscanbechopped,Thischoppingschemeinherentlyminimizasoffseterrorsandmeansthatanoffsetcalibrationshouldneverberequired.Ifthepartisoperatedinchopdisabledmode,acalibrationmayneedtobedonewitheverygainrangethatoccursviathePGA.TheADuC845/ADuC847/ADuC8458eachofferinternalorsystemADC,thecalibrationlogicmustrecordthemodulatoroutputfortwoinputcondictions:zero-scaleandfull-scalepoints.Thesepointsarederivedbyproformingaconversiononthedifferentinputvoltages(zero-scaleandfull-scale)provaidedtotheinputofthemodulatorduringcalibration.Theresultofthezero-scalecalibrationcoversionisstoredintheoffsetcalibrationregistersfortheappropriateADC.Theresultofthefull-scalecalibrationconversionisstoredinthegaincalibratonregistersfortheappropriateADC.Withthesereadings,thecalibrationlogiccancalculatetheoffsetandthegainslopefortheinput-to-outputtransferfunctionoftheconverter.Duringanintenalzero-scaleorfull-scalecalibration,therespectivezero-scaleinputorfull-scaleinputisautomaticallyconnectedtotheADCinputsinternally.Asystemcalibration,however,expectsthesystemzero-scaleandsystemfull-scalevoltagestobeappliedexternallytotheADCpinsbytheuserbeforethecalibratonmodeisinitiated.Inthisway,esternalerrorsaretakenintoaccountandminimized.NotethatallAduC845/AduC847/AduC848ADCcalibrationsarecarriedoutattheuser-selectedSFwordupdaterate.Tooptimizecalibrationaccuracy,itisrecommendedthatslowestpossibleupdateratebeused.Internallyintheparts,thecoeffficientsarenormalizedbeforebeingusedtoscalethewordscomingoutofthedigitlfilter.Theoffsetcalibrationcoefficientissubtractedfromtheresultproirtothemultiplicationbythegaincoefficient.Fromanoperationalpointofview,acalibrationshouldbetreatedjustlikeanordinaryADCconversion.Azero-scalecalibration(ifrequired)shouldalwaysbecarriedoutbeforeafull-scalecalibration.SystemsoftwareshouldmoniterthereleventADCRDY0/1bitintheADCSTATSFRtodeterminetheendofcalibrationbyusingapollingsequenceoraninterruptdrivenroutine.Ifrequired,theNOEXREF0/1bitscanbemonitoredtodetectunconnectedorlowvoltageerrorsinthereferenceduringconversion,causingaNOXREFflagduringacalibration,thecalibrationisimmediatelyhaltedandnowritetothecalibrationSFRstakesplaces.DATAOUTPUTCODINGWhentheprimaryADCisconfiguredforunipolaroperation,theoutputcodingisnatural(stright)binarywithazerodifferentialinputvoltageresultinginacodeof000…000,amidscalevoltageresultinginacodeof100…000,andafullscalevoltageresutinginacodeof111…111.TheoutputcodeforanyanaloginputvoltageonthemainADCcanberepresentedasfollows:Code=(AIN*GAIN*2N)/(1.024*V)Where:AINistheanaloginputvoltage.GAINisthePGAgainsetting,1onthe2.56vrange128onthe20mvrange,andN=24(16ontheAduC848).TheoutputcodeforanyanaloginputvoltageontheauxiliaryADCcanberepresentedasfollows:Code=(AIN*2N)/VWiththesamedefinitionsasusedforthepromaryADCabove.WhentheprimaryADCisconfiguredforbipolaroperation,thecodeingisoffsetbinarywithnegitivefull-scalevoltageresultinginacodeof000…000,azerodifferentialvoltageresultinginacodeof800…000,andapositi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度曹瑞与张丽离婚协议中子女抚养及生活费用协议3篇
- 2025年度家禽饲料原料采购与家禽买卖合同书3篇
- 2024版铁塔公司基站用地租赁协议样本一
- 2025年度医疗器械展承办合同4篇
- 2024庭院立体绿化设计与施工合同3篇
- 2025年PVC消防管道设备采购销售专项合同3篇
- 2025年金丽麻布项目投资可行性研究分析报告
- 教案资源:小熊的彩虹滑梯课件公开课教学设计资料
- 2025年安徽通 用生物系统有限公司招聘笔试参考题库含答案解析
- 2025年度个人公司资产剥离合同范本:评估与定价策略4篇
- 细胞库建设与标准制定-洞察分析
- 2024年国家公务员录用考试公共基础知识复习题库2500题及答案
- DB3309T 98-2023 登步黄金瓜生产技术规程
- 2024年萍乡卫生职业学院单招职业技能测试题库标准卷
- DBJ41-T 108-2011 钢丝网架水泥膨胀珍珠岩夹芯板隔墙应用技术规程
- 2025年学长引领的读书会定期活动合同
- 表内乘除法口算l练习题1200道a4打印
- 《EICC培训讲义》课件
- 2025年四川省政府直属事业单位招聘管理单位笔试遴选500模拟题附带答案详解
- 2024年物业公司服务质量保证合同条款
- 文言文阅读之理解实词含义(讲义)-2025年中考语文专项复习
评论
0/150
提交评论