数据采集及处理系统的设计.docx
- 文档编号:26508751
- 上传时间:2023-06-20
- 格式:DOCX
- 页数:27
- 大小:735.68KB
数据采集及处理系统的设计.docx
《数据采集及处理系统的设计.docx》由会员分享,可在线阅读,更多相关《数据采集及处理系统的设计.docx(27页珍藏版)》请在冰豆网上搜索。
数据采集及处理系统的设计
课程设计任务书
学生姓名:
熊巧专业班级:
自动化1003班
指导教师:
张丹红工作单位:
自动化学院
题目:
数据采集及处理系统的设计
初始条件:
设计一个64路巡回数据采集及处理系统,系统循环周期为1秒,16路模拟信号输入,16路开关信号输入,16路模拟输出,16路数字输出。
要求完成的主要任务:
1.输入通道及输出通道设计(0~20mV输入),(0~10V输出)
2.每周期内各通道采样10次;
3.对模拟信号采用一种数字滤波算法;
4.完成系统硬件电路设计,软件流程及各程序模块设计;
5.完成符合要求的设计说明书。
时间安排:
2012年6月26日~2010年7月5日
指导教师签名:
年月日
系主任(或责任教师)签名:
年月日
摘要
数据采集是指从传感器和其它待测设备等模拟和数字被测单元中自动采集信息的过程。
数据处理就是从采集到的原始数据中,删除干扰噪声、无关信息和不必要的信息,提取出反映被测对象特征的重要信息。
随着计算机技术的发展,数据采集系统可以通过A/D转换把模拟信号转换成数字信号,并且可以方便的实现数字信号存储、处理及再现,因此该系统得以越来越广泛的应用。
数据采集和处理是计算机控制系统的重要组成部分,在工业控制机和生产过程之间,要对生产过程进行实时控制,就要实时的了解生产状态,这就要求采集大量的模拟信号或数字信号进行分析,并输出有一定意义的、更直观和易于理解的模拟量或数字量,以对控制进行指导,调整控制方案。
针对目前实时存盘采集系统存在体积大、设计复杂、成本较高等不足之处,本课题设计了一种基于高速串行总线和数字信号处理器的多路数据采集系统,具有成本较低、集成度较高等特点,同时具有一定数字处理能力。
关键词:
数据采集和处理,A/D转换,D/A转换,采样保持
目录
1设计任务及要求的分析1
1.1设计任务及要求1
1.2要求分析1
2方案比较及认证2
3硬件电路原理3
3.1多路模拟开关3
3.2模拟输入输出通道及处理4
3.2.1模拟输入通道4
3.2.2算数平均值数字滤波算法5
3.2.3模拟输出通道6
3.3数字输入输出通道及处理7
3.3.1数字输入通道7
3.3.2数字量的输出电路10
4软件设计及程序11
4.1软件思想11
4.2流程图11
5总结13
参考文献14
附录一芯片资料15
附录二硬件电路图19
附件三程序清单20
1设计任务及要求的分析
1.1设计任务及要求
本课题要求设计一个64路巡回数据采集及处理系统,系统循环周期为1秒,16路模拟信号输入,16路开关信号输入,16路模拟输出,16路数字输出。
输入0~20mV,输出0~10V;每周期内各通道采样10次,并对模拟信号采用一种数字滤波算法。
设计系统硬件电路、软件流程及各程序模块。
1.2要求分析
数据采集系统的任务,具体地说,就是传感器从被测对象获取有用信息,并将其输出信号转换为计算机能识别的数字信号,然后送入计算机进行相应的处理,得出所需的数据。
同时,将计算得到的数据进行显示、储存或打印,以便实现对某些物理量的监视,其中一部分数据还将被生产过程中的计算机控制系统用来进行某些物理量的控制。
数据采集系统一般由数据输入通道、数据存储与管理、数据处理、数据输出及显示这五个部分组成。
输入通道要实现对被测对象的检测、采样和信号转换等工作。
数据处理就是从采集到的原始数据中,消除干扰噪声、无关信息和不必要的信息,提取出反映被测对象特征的重要信息。
另外,就是对数据进行统计分析,以便于检索;或者把数据恢复成原来的物理量形式,以可输出的形态在输出设备上输出,如打印、显示、绘图等。
数据输出及显示就是把数据以适当的形式进行输出和显示。
数据采集及数据处理的过程,可以理解为先采集数据,然后将数据输入到CPU,最后输出数据。
在这一过程中,还要选择数据通道。
为了适应芯片的电压值,还可能需要把传入的模拟电压放大或缩小,转换成模拟信号后,驱动相应的执行机构,达到控制的目的。
在输出过程中,芯片输出可能为电流信号,也可能为电压信号。
根据本题目的要求,需将电流信号转换成电压信号。
2方案比较及认证
数据采集系统主要需要解决的是模拟量输入通道问题,在众多的模拟量输入中,需要确定模拟量输入通道的结构。
模拟量通道结构有两种,一种是每路模拟量均有各自独立的A/D转换器、采样/保持器,另一种是多路模拟量共用一套采样/保持器、A/D转换器。
在两种结构中,前者电路结构简单,程序设计方便。
由于每路模拟量均需各自独立的A/D转换器,因此尽管只有一个处理器,但A/D转换是并行的,具有很快的转换速度。
由于使用的A/D转换器数量多,故总体成本高昂,仅在高速数据采集系统中采用;后者具有经济实用等良好特点,在性能指标要求许可的情况下,一般采用该方案。
尤其高性能的A/D转换器件不断推出,选择一种A/D转换器满足多路数据采集还是比较容易的。
因此,课程设计中选择了多路选择开关4067。
D/A转换部分主要解决数字量到模拟量的功能,最常用的数模转换器为DAC0832,将输入的数字量转换成差动的输出。
为了使其能变成电压输出,又要经过运算放大器。
模拟输出通道也有两种基本结构形式:
一个通道设置一个数/模转换,速度快,工作可靠,缺点是使用了较多的D/A转换器;多个通路共用一个数/模转换器,即转换成模拟电压后,通过多路模拟开关传送给输出采样保持器。
这种结构形式的优点是节省了数/模转换器。
但因为分时工作,只适用于通路数量多且速度要求不高的场合。
还要用多路开关,且要求输出采样保持器与采样时间之比较大。
3硬件电路原理
3.1多路模拟开关
由于计算机的工作速度远远快于被测参数的变化,因此一台计算机系统可供几十个检测回路使用,但计算机在某一时刻只能接收一个回路的信号。
所以,必须通过多路模拟开关实现多选一的操作,将多路输入信号依次地切换到后级。
模拟开关不同于一般的数字开关,它切换的是模拟量,理想状态应该是开断电阻无穷大,导通电阻为零;频带宽度无穷大,功耗为零;开通和断开无过渡过程。
当开关导通时应只允许有用信号通过,不允许无用信号或干扰耦合到输出端。
实际使用中,上述理想状态是不存在的,只能根据使用场合进行合理的选择。
除了在芯片内集成的少量模拟开关外,在微机控制系统中,广泛使用的是多路模拟开关。
在模拟量输入通道中,它把多个输入信号接到一个公共点上,以便进行放大或数字化处理。
在模拟量输出通道中,它把D/A转化器输出的模拟信号按一定的顺序输出到不同的控制回路,此时模拟开关是一对多的转换,故又称多路分配器。
由于题目中有16路模拟输入信号,为了方便,避免多路模拟开关扩展,直接选用了4067。
4067是16路双向模拟开关,所谓双向,就是该芯片既可以实现多到一的切换,也可以完成一到多的切换。
单向则只能完成多到一的切换。
4067内部包括一个16选1的译码器和被译码输出所控制的16个双向模拟开关,当禁止端EN为低电平0时,X0-X15中被选中的一个输入端与输出公共端X(即1脚)接通,被选通端由时钟脉冲信号决定,当EN为高电平1时,处于禁止状态,所有模拟开关均不接通。
4076允许的输入电压范围为0V-Vdd,题目要求的只有0-20mv,所以可以选用。
3.2模拟输入输出通道及处理
3.2.1模拟输入通道
本模块使用十六选一芯片,通过ABCD端口选择输入路,再将此路信号处理后输入到ADC0809中转换为数字信号,输入单片机。
各通道的模拟信号经过差分电路和采样保持电路输入到ADC0809的输入端,根据模拟输入通道的地址,CPU向ADC0809发转换启动指令,在START和ALE的输入端即出现一个正脉冲,在其上升沿锁存其通道选择信号,下降沿启动A/D转换,经过大约64个时钟周期,A/D转换结束。
在转换开始时EOC输出端即由高电平变为低电平,待转换结束它又自动由低电平变为高电平。
CPU发出转换启动信号后,即通过OB口(IC)不断查询EOC的输出端是否变成高电平,若EOC变为高电,就表示A/D转换已经完成,这时CPU可以发读指令,使OE端出现正脉冲,打开ADC0809的三态数据输出锁存器,读取A/D变换后的数据,这样即完成了一次从模拟量到数字量的转换。
模拟输入通道如图1所示。
图1模拟输入通道
3.2.2算数平均值数字滤波算法
在模拟信号中常带有高低频干扰信号,它们将直接影响转换精度,使采集的数据不可信。
这些干扰信号一般在A/D转换前用RC滤波器加以过滤,但由于滤波电容C不能取得太大,而难以滤去频率较低的干扰。
为此,在硬件滤波的基础上还需加上软件滤波,方能有效的将模拟信号中的干扰信号降到最低限度。
对于变化较缓慢的一次参数,可使用一阶滞后滤波,而对于变化较快的参数,可使用算数平均值滤波。
本段通过将每一路的值输入后除以10,然后相加,得到每一路通道的平均值为算数平均值数字滤波算法。
同时也减少了存储单元的个数,仅用16个,70H到7FH。
MOVA,@R0;本模块为数字滤波
MOVB,#10;将转换后的数字量除以10
DIVAB
ADD@R0,A
INCR0;指向下一个存储单元
POPACC
本段程序将中断时钟设置为100ms,每秒采集10次,并将每路采集一次,共160次。
由于单片机能用的存储单元仅为80个,所以将每路信号除10然后加在同一个单元里。
这同时也实现的数字滤波的功能。
3.2.3模拟输出通道
为了用DAC0832进行数/模转换,可以使用两种方法对数据进行锁存。
第一种方法是使输入寄存器工作在不锁存状态,而使DAC寄存器工作在锁存状态。
就是使WR1为底电平,CS为低电平而ILE为高电平,这样,输入寄存器的锁存信号处于无效状态;另外,WR2和XFER端输入一个负脉冲,从而使DAC寄存器工作在锁存状态。
这样做,也可以达到锁存目的。
第二种方法是使输入寄存器工作在锁存状态,而DAC寄存器工作在不锁存状态。
具体的说,就是使WR2和XFER都是低电平。
这样,DAC寄存器的锁存端得不到有效电平。
另一方面,使输入寄存器的有关控制信号中,ILE处于高电平,CS处于低电平。
这样,当WR1端来一个负脉冲时,就可以完成一次变换。
当DAC0832工作在单缓冲寄存器方式下,即当
信号来时,D0~D7数据线送来的数据直接进行D/A转换,当
变高时,则此数据便被锁存在输入寄存器中,因此D/A转换的输出也保持不变。
DAC0832将输入的数字量转换成差动的电流输出,为了使其能变成电压输出,所以又经过运算放大器,形成单极性电压输出。
然后通过十六选一的通道反向使用,输出各通道的模拟量。
模拟输出通道如图2所示。
图2模拟输出通道
3.3数字输入输出通道及处理
3.3.1数字输入通道
A/D转换器将连续变化的模拟电压或电流转换为数值上等效的数字信号,以便计算机可以识别和接收。
ADC0809是采用CMOS工艺的多路8位逐次比较型A/D转化器,芯片内包括8通道多路模拟开关、8位A/D转化器和一个8位的数据输出锁存器。
8通道多路模拟开关由8通道模拟开关及地址译码器组成,主要功能是为多路A/D转换提供方便,允许8路模拟量输入使用同一个A/D转化器。
ADC0809采用单一的+5V电源供电,允许的模拟量输入范围为0-5V的单极性,无须进行零位和满度调整。
它的分辨率为
1LSB。
数字输入通道如图3所示。
图3数字输入通道
有一路信号(0V~5V)从ADC0809的IN0通道输入,地址输人端A、B、C均接地,这时IN0的通道地址为OOH。
0809是8位ADC,对0V-5V的信号,其转换精度为20mV/级。
P2.4和
、
共同组成ADC0809的口地址和启动转换控制信号。
当P2.4=0时,指定ADC0809的口地址为0EFFFH;当8051的
来到时,0809的ALE在脉冲的上升沿锁存地址信号,START在脉冲的高电平启动A/D转换。
在转换结束后EOC输出高电平,转换后的数字量锁存在0809内部的三态输出锁存器中。
当输出允许信号
为高电平时,转换结果经数据线D7~D0输出,A/D转换的程序如下:
TEST:
MOVR0,#70H;显示数据初值(70H-77H)
MOVR5,#0F;十六路信号循环控制
MOVDPTR,#0CFA0H;选中通道0
LOOP:
MOVX@DPTR,A;启动A/D
MOVR4,#8FH;延时子程序
LOOP11:
DJNZR4,LOOP11
MOVR4,#0FH
LOOP22:
DJNZR4,LOOP22
MOVXA,@DPTR;读取A/D转换值
MOV@R0,A;把采集数据送到指定位置
INCR0;移动存储位置
INCDPTR;指向下一通道
MOV7BH,R5
DJNZR5,LOOP;判定采集十六通道
A/D转换流程如图4所示。
图4A/D转换流程
3.3.2数字量的输出电路
将上一段存储的数据通过十六选一的多路开关输出,为了减小误差,采用光电耦合器,将输出和输入隔离开,输出的电压为10V。
数字量输出通道如图5所示。
图5数字量输出通道
4软件设计及程序
4.1软件思想
本设计由模拟通道与数字通道组成,两个系统完全独立,二者之间没有软件和硬件的联系,所以两个流程图之间没有逻辑关系。
4.2流程图
模拟通道系统框图如图6所示。
图6模拟通道系统框图
数字通道系统框图如图7所示。
图7数字通道系统框图
5总结
一周多时间在弹指间飞逝而去,紧张富有乐趣的课程设计也告别一个段落。
其间有苦有甜,有酸有辣,有喜有悲,百味交融,夹杂而富有生趣。
我在自己的努力下完成了此次课程设计。
我查阅了资料,从中体会了不一样的感觉。
这次设计使我受益匪浅。
从拿到题目的开始,我很茫然,无从下手,根本不知道如何去解决遇见的问题。
我通过一周时间翻阅相关的资料,在和同学探讨的情况下,才坎坎坷坷开始了设计的第一步。
但由于自己的知识能力有限,该设计还有很多的错误和不足之处,现阶段还不能很好的完成设计所要求的各种标准,尤其软件变成方面了解甚少,以至整个系统不能完全工作。
但在这次自己独立完成本次设计后还是有了点成就感,我从设计中学到了很多东西,以前动手能力很差,现在什么都要自己亲自动手的情况下还是学到了很多以前自己不会的知识、画图方法、有很大的收获。
经过这次课程设计,让我深深的体会到了以前在实践中的不足,认识到动手能力的重要性,很多知识是必须经过亲自的动手实践才能够体会到它的科学性,理论和实际的结合才能够解决眼前面临的难题。
除了学习的单片机课程、电子线路、模电、数电以及电力电子以外,还得对很多的计算机辅助设计软件有所掌握,比如说PROTEL、仿真软件PROTEUSE等的运用。
这次的课程设计为我们这些即将踏上工作岗位的大学生来说,无疑起到了一个很好的桥梁作用。
总之,在这次课程设计过程中,我既学习到了计算机控制技术的知识,又学到了许多书本之外宝贵的分析动手能力。
这次课程设计给我的最大的印象就是如果自己有了兴趣,就动手去做,困难在你的勇气和毅力下是抬不了头的。
在设计过程中遇到的问题是很多的,但我想难免会遇到这样或那样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。
通过这次课程设计之后,一定把以前所学过的知识重新温故。
参考文献
[1]于海生等.计算机控制技术.北京:
,机械工业出版社,2007.
[2]彭虎,周佩玲,傅忠谦.微机原理与接口技术.北京:
电子工业出版社,2008.
[3]陈立周,陈宇.单片机原理及其应用.北京:
机械工业出版社,2006.
[4]徐爱钧.单片机高级语言C51应用程序设计.电子工业出版社,2002.
[5]康华光,邹寿彬,秦臻.电子技术基础数字部分.高等教育出版社,2006.
附录一芯片资料
(1)多路转换器
数据采集端口为16路多路开关,可以按照需要选定其中1路端口,为实现此功能,采用了MC14067B芯片,MC14067B用来切换信号的传输十分方便。
此芯片可以正反两用。
MC14067B芯片具备1个使能端,4路地址码端,构成16状态,控制16路信号的输入。
根据要求,输入模拟信号为0~20mV,而A/D转换芯片0809输入为-5V~+5V,为了提高分辨率,我们将输入信号进行放大,采用了同相比例放大电路。
MC14067B的管脚图和通道选择如图8所示。
图8MC14067B的管脚图和通道选择
通过ABCD,的值可以选择十六路通道中的某一路输入到AD0809中,进行AD转换。
也可以将DA0832转换后的数据输出。
(2)A/D转换器
实现模拟量变换成数字量的设备,ADC0808/0809是带有8:
1多路模拟开关的8位A/D转换单片CMOS芯片,由芯片的A,B,C三个引脚来选择模拟通道中的一个,但我们仅适用0通道来进行转换把转换后的数字值存入单片机的RAM里。
ADC0808/0809内无时钟,必须靠外部提供时钟,在进行应用设计时,推荐使用640KHz左右的时钟频率。
ADC0809芯片如图9所示。
图9ADC0809芯片
ADC0809各引脚的功能说明如下:
、
、
:
3位通道地址输入端,为三位二进制码。
由000~111,分别选中
~
。
~
:
8路模拟信号输入通道。
:
地址锁存允许输入端(高电平有效),当
为高电平时,允许
、
、
所示的通道被选中;(该信号的上升沿使多路开关的地址码
、
、
锁存到地址寄存器中)。
:
启动信号输入端,此输入信号的上升沿使内部寄存器清零,下降沿使A/D转换器开始转换。
:
A/D转换结束信号,它在A/D转换开始时由高电平变为低电平,转换结束后,由低电平变为高电平,此信号的上升沿表示A/D转换完毕,常用做中断申请信号。
:
输出允许信号,高电平有效,用来打开三态输出锁存器,将数据送到数据总线。
:
外部时钟信号输入端,改变外接RC元件,可改变时钟频率,从而决定A/D转换的速度。
A/D转换器的转换时间TC等于64个时钟周期,CP的频率范围为10~1280kHz。
当时钟脉冲频率为640kHz时,TC为100us。
和
:
基准电压输入端,它们决定了输入模拟电压的最大值和最小值。
:
地线。
(3)D/A转换器
实现数字量转换成模拟量的设备,DAC0832是美国国家半导体公司生产的8位D/A芯片,共有20个引脚。
它具有与微机连接简单、转换控制方便、价格低廉等特点,微机系统中得到广泛的应用。
DAC0832芯片如图10所示。
图10DAC0832芯片图
DAC0832各主要引脚功能:
:
8位数据输入端。
ILE:
输入寄存器允许信号,输入,高电平有效。
CS:
片选信号,输入,低电平有效。
:
输入寄存器写信号,输入,低电平有效。
由ILE、CS、
的逻辑组合产生输入寄存器控制信号
。
当
为低电平时,输入寄存器内容随数据线变化,
的正跳变将输入数据锁存。
XFER:
数据传送信号,输入,低电平有效。
:
DAC寄存器的写信号,输入,低电平有效。
由XFER、
组成DAC寄存器的控制信号
。
的正跳变将输入数据锁存到DAC寄存器。
:
电流输出1。
当DAC寄存器中全为“1”时,输出电流最大,当DAC寄存器中全为“0”时,输出电流最小。
:
电流输出2。
它与
的关系是:
+
=常数
Rfb:
内部反馈电阻引脚,该电阻在芯片内,Rfb端可以直接接到外部运算放大器的输出端。
这样,相当于将一个反馈电阻接在运算放大器的输入端和输出端。
VREF:
参考电压输入端,可接正电压,也可接负电压,范围为-10V~+10V。
DAC0832内部有两个寄存器,能实现三种工作方式:
双缓冲、缓冲和直通方式,直通方式是将两个寄存器的五个控制端预先置为有效,两个寄存器都开通只要有数字信号输入就立即进入D/A转换。
单缓冲方式使DAC0832的两个输入寄存器中有一个处于直通方式,另一个处于受控方式,可以将WR2和Xfer相连在接到地上,并把WR1接到80C51的WR上,ILE接高电平,CS接高位地址或地址译码的输出端上。
双缓冲方式把DAC0832的输入寄存器和DAC寄存器都接成受控方式,这种方式可用于多路模拟量要求同时输出的情况下。
本次设计采用单缓冲方式。
0832是电流型,可用运算放大器将电流信号转换成电压信号。
附录二硬件电路图
附件三程序清单
ORG0000H
LJMPSTART
ORG03H
LJMPINT0P;AD转换程序初始化
MOVR7,#4
MOVR1,#A1H;将P2.1的地址输入R1中,控制输入通道的选择
MOVR2,#80H;P0.0数字通道为数字信号的起始地址
A1:
MOVA,0000H
MOVDPTR,R1
MOVX@DPTR,A ;将1p2.1输出,来控制十六选一那一路进入
INCR1;指向下一个端口
JMPA1
LJMPINT0P;将选通的信号进行AD转换
START0:
MOVR0,#70H;RAM首地址
MOVR7,#16
MOVSP,#3FH
SETBIT0
SETBEX0
SETBEA
MAIN0:
MOVDPTR,#7FF8H;AD通道首地址
MAIN:
CLRF0
MOVC@DPTR,A
TEST:
JNBF0,DONE
DJNZR7,MAIN
DONE:
SJMPTEST;循环16次,采集各路信号
INT0P:
PUSHACC
SETBF0
MOV@R0,A
MOVA,@R0;本模块为数字滤波
MOVB,#10;将转换后的数字量除以10
DIVAB
ADD@R0,A;将转换后的数值相加,得到
INCR0;指向下一个存储单元
POPACC
ORG0000H
START3:
MOVDPTR,#0FEFFH;置DAC0832的地址
LP1:
MOVA,#0FFH;设定高电平
MOVX@DPTR,A;启动D/A转换,输出高电平
LCALLDELAY;延时50ms
MOVA,#00H;设定低电平
MOVX@DPTR,A;启动D/A转换,输出低电平
LCALLDELAY;延时
MOVR7,#4
MOVR1,#A1H;将P2.1的地址输入R1中,控制输入通道的选择
MOVR2,#80H;P0.0数字通道为数字信号的起始地址
A2:
MOVA,0000H
MOVDPTR,R1
MOVX@DPTR,A ;将1p2.1输出,来控制十六选一输出
INCR1;指向下一个端口
JMPA1;将片选到通,使逐路信号输出
SJMPLP
#########################数字量部分###########################
CLRC;将数字量输入
MOVR0,31H;31H作为数字量存储的首地址
START1:
MOVR1,#78H;端口地址为78H
MOVXA,R1
MOVR0,A;将A中的值存入R0单元
SJMP$
START2:
M
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据 采集 处理 系统 设计