微机原理课程设计--数据采集系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、设计内容(论文阐述的问题)
设计一个数据采集系统
基本要求:要求具有8路模拟输入
输入信号为0——500mV
采用数码管8位,显示十进制结果
输入量与显示误差<1%
发挥部分:1、速度上实现高精度采集
2、提高系统精度
3、设计抗干扰性
二、设计完成后提交的文件和图表
1. 计算说明书部分:
数据采集是指将压力、流量、温度、位移等模拟量转换成数字量后,再由计算机进行存储、处理、显示、或打印的过程,相应的系统就称为数据采集系统。
数据采集的任务,就是采集传感器输出的模拟信号并转换成计算机能识别的数字信号,然后送入计算机进行相应的计算和处理,取得所需的数据。
同时,将计算机得到的数据进行显示或打印,以便实现对某些物理量的监控。
数据采集性能的好坏,主要取决于他的精度和速度。
在保证精度的条件下,应有尽可能高的采样速度。
数据采集系统应具有功能:
(1)数据采集
计算机按照选定的采样周期,对输入到系统的模拟信号进行采样,称为数据采集。
(2)模拟信号处理
模拟信号是指随时间连续变化的信号,模拟信号处理是指模拟信号经过采样和A/D转换输入计算机后,要进行数据的正确性判断、标度变换、线性化等处理。
(3)数字信号处理
数字信号处理是指数字信号输入计算机后,需要进行码制的转换处理,如BCD码转换成ASCII码,以便显示数字信号。
(4)屏幕显示
就是用各种显示装置如CRT、LED把各种数据以方便于操作者观察的方式显示出来。
(5)数据存储
数据存储是就是将某些重要数据存储在外部存储器上。
在本次设计中,我们采用8259作为中断控制器,8255作为并行接口,ADC0809作为模数转换器。
2、图纸部分:
含有总体设计的功能框图、所用各种器件的引脚图、内部逻辑结构框图以及相应器件的真值表,还包括总设计的硬件连接图及软件设计流程图等。
三、课程设计进程安排
序号设计(论文)各阶段名称日期
1 获得设计题目及要求,查阅资料7月10日
2 形成初步设计思路及有针对性检索资料7月11日
3 设计方案论证及选用相应器件7月12日
4 设计硬件连接图及软件编程7月13日
5 形成整体设计报告并上交7月14日
四、主要参考资料
1、《微型计算机原理及接口技术》裘雪红、顾新西安电子科技大学出版社
2、《高性能模数与数模转换器件》刘书明、刘斌西安电子科技大学出版社
3、《微型计算机接口技术及应用》刘乐善华中理工大学出版社
4、《IBM-PC 汇编语言程序设计》沈美明、温冬婵清华大学出版社
5、《单片机典型外围器件及应用实例》是实科技编著人民邮电出版社
6、《智能仪器原理及应用》赵茂泰电子工业出版社
7、《微型计算机接口原理与技术》邹逢兴国防科技大学出版社
8、《汇编语言教程》朱慧真国防工业出版社
9、《微型计算机接口技术》吴延海重庆大学出版社
10、《数字电子技术基础》阎石高等教育出版社
第二部分
一、绪论.
近年来,数据采集及其应用技术受到人们越来越广泛的关注,数据采集系统也迅速
地得到应用。
在生产过程中,应用这一系统可对生产现场的工艺参数进行采集、监视和
记录,为提高产品质量、降低成本提供信息和手段。
在科学研究中,应用数据采集系统
可获得大量的动态信息,是研究瞬间物理过程的有力工具,也是获取科学奥秘的重要手
段之一。
总之f不论在哪个应用领域中,数据采集与处理越及时,工作效率就越高,取
得的经济效益就越大。
、”‘、。
1.1.一数据采集技术的分类
工业上使用的数据采集系统大致可分为四类i
(1)基于通用微型计算机(如Pc机)的数据采集系统
这种系统主要功能是将采集来的信号通过外部的采样和A/D转换后的数字信号通过接口电路送入微机进行处理,然后再显示处理结果或经过D/A转换输出。
它主要有以下几个特点:
①系统较强的软、硬件支持。
通用微型计算机系统所有的软、硬件资源都可以用来
支持系统进往工作。
②具有自主开发能力。
③系统的软硬件的应用/配置比较小,系统的成本较高,但二次开发时,软硬件扩展能力较好。
④在工业环境中运行的可靠性差,对安放的环境要求较高。
程序在RAM中运行,易受外界干扰破坏。
(2)基于单片机的数据采集系统
它是由单片机及其一些外围芯片构成的数据采集系统,具有如下特点:
①系统不具有自主开发能力。
因此,系统的软硬件开发必须借助开发工具。
②系统的软硬件设计与配置规模都是以满足数据采集系统功能要求为原则,因此系统的软硬件应用,配置比接近于1,具有最佳的性价比;系统的软件一般都有应用程序。
③系统的可靠性好,使用方便。
应用程序在ROM中运行不会因外界的干扰而破坏,而且上电后系统立即进入用户状态。
(3)基于DSP数字信号微处理器的数据采集系统
DSP数字信号微处理器从理论上而言就是一种单片机的形式,DSP数字信号微处理器与通用微处理器相比,除了它们的机构不同以外,其基本差别是:DSP数字信号微处理器有能力响应和处理采样模拟信号得到的数据流,如乘法和累加求和运算。
常用的,数字信号处理芯片有两种类型,一种是专用DSP芯片,另一种是通用DSP芯片。
基于DSP数字信号微处理器的数据采集系统的特点如下:精度高、灵活性好、可靠性高、容易集成、分时复用等,但同时其价格不菲。
(4)基于混合型计算机采集系统.
这是-种近年来随着8位单片机出现而在计算机应用领域中迅速发展的一种系统结
构形式。
它是由通用计算机(PC机)与单片机通过标准总线(例如RS-485标准)相连而成。
单片机及其外围电路构成的部分是专为数据采集等功能的要求而配置的,,主机则承担数据采集系统的人机对话、大容量的计算、记录、打印、图形显示等任务固。
混合型计算
机数据采集系统有以下特点:
①通常具有自开发能力。
②系统配置灵活,易构成各种大中型测控系统。
③主机可远离现场而构成各种局域网络系统。
④充分利用主机资源,但不会占有主机的全部CPU 时间。
1.2.基于单片机的数据采集系统.
基于单片机的数据采集系统是以单片机为核心控制器件。
单片机具有体积小、功耗小、成本低、可靠性高、灵活方便、价格廉以及控制功能强等特点而得到广泛的应用。
利用单片机的硬件、软件资源,实现信号采集的智能化控制和管理。
1.2.1基本组成
基于单片机的数据采集系统是以单片机为核心控制器件,‘结合外围电路所构成。
基 本组成如图1.1所示。
图1.1数据采集系统的组成
采集系统硬件主要包括传感器、A /D 转换器、单片机、输入,输出接口电路等。
由单片机做为控制单元的数据采集系统的工作过程可分为以下几个步骤:数据采集是将被测量的信号转换为能够被单片机所识别的信号并输入给单片机;数据处理是由单片机执行以测试为目的的算法程序后,得到与被测参数对应的测量值或形成相应的决策与判断;数据输出是将处理结果送给输出设备,进行显示、储存等操作。
1.2.2采集方式。
一个具体的采集系统的构成,根据所测信号的特性而定。
力求做到既能满足系统的性能要求又能在性能价格比上达到最优。
(1)单通道数据采集
单通道数据采集是:被采集的模拟信号只有一个,
(2)多通道数据采集
多通道数据采集是:被采集的模拟信号有两个或两个以上。
多路模拟信号的采集有
以下几种结构形式:
①多路A /D 转换方式.
这种结构由多个A /D 转换芯片构成。
对每路输入信号都有独立的采样保持电路S /H 、 A /D 转换电路及I /O 接口电路,每一路占有一个通道。
这种方式通常用于高速数据采集和需要同时采集多路数据的情况。
其优点是通道数增加时,最高采样频率不会受到影响,并可同时采集多路信号,保持了各信号之间的同步关系。
缺点是成本较高、体积较大。
②多路共享A /D 转换方式.
输入信号进入各路采样保持电路,然后由多路开关可选择地将各路信号送入AID 转换器进行转换。
这种转换方式较上一种方式慢,并且得到的各通道信号是断续的。
在通道数增加时,采集频率受到影响。
当采样保持电路用同一个信号控制时,既可保证同_时刻采集到各通道参数,又可保证信号间的同步关系。
这种方式主要用于对采集频率要求不高的多路信号的采集 ③多路开关方式.
这种方式轮流循环采样的转换速度比以上两种方式都慢,但是节省硬件。
它常用于采集多路变化缓慢的信号,如温度变化、应变信号等。
用这种方式采集多通道
信号时,不能同时采集同一时刻的各种参数。
二、设计指标
1、设计内容:对8路0—5V的模拟电压进行循环采集。
2、基本要求:①对8路模拟输入实行循环采集,每路连续采集16次,取平均值;
②输入量与显示误差<1%;
③CPU以中断方式读取采集数据。
三、设计方案论证
考虑本数据采集系统要求,该系统的功能框图如下:
图1 系统功能框图
(一)AD转换器的选择
1、根据AD转换器基本原理及特点,可以分为以下类型:积分型、逐次逼近型、并行比较型
/串并行型、Σ-Δ调制型、电容阵列逐次比较型及压频变换型。
1)积分型(如TLC7135)
积分型AD工作原理是将输入电压转换成时间(脉冲宽度信号)或频率(脉冲频率),然后由定时器/计数器获得数字值。
其优点是用简单电路就能获得高分辨率,但缺点是由于转换精度依赖于积分时间,因此转换速率极低。
初期的单片AD转换器大多采用积分型,现在逐次比较型已逐步成为主流。
2)逐次比较型(如ADC0809)
逐次比较型AD由一个比较器和DA转换器通过逐次比较逻辑构成,从MSB开始,顺序地对每一位将输入电压与内置DA转换器输出进行比较,经n次比较而输出数字值。
其电路规模属于中等。
其优点是速度较高、功耗低,在低分辩率(<12位)时价格便宜,但高精度(>12位)时价格很高。
3)并行比较型/串并行比较型(如TLC5510)
并行比较型AD采用多个比较器,仅作一次比较而实行转换,又称FLash(快速)型。
由于转换速率极高,n位的转换需要2n-1个比较器,因此电路规模也极大,价格也高,只适用于视频AD转换器等速度特别高的领域。
串行比较型AD结构上介于并行型和逐次比较型之间,最典型的是由2个n/2位的并行型AD 转换器配合DA转换器组成,用两次比较实行转换,所以称为Half flash(半快速)型。
还有分成三步或多步实现AD转换的叫做分级(Multistep/Subrangling)型AD,而从转换时序角度又可称为流水线(Pipelined)型AD,现代的分级型AD中还加入了对多次转换结果作数字运算而修正特性等功能。
这类AD速度比逐次比较型高,电路规模比并行型小。
4)Σ-Δ(Sigma?/FONT>delta)调制型(如AD7705)
Σ-Δ型AD由积分器、比较器、1位DA转换器和数字滤波器等组成。
原理上近似于积分型,将输入电压转换成时间(脉冲宽度)信号,用数字滤波器处理后得到数字值。
电路的数字部分基本上容易单片化,因此容易做到高分辨率。
主要用于音频和测量。
5)电容阵列逐次比较型
电容阵列逐次比较型AD在内置DA转换器中采用电容矩阵方式,也可称为电荷再分配型。
一般的电阻阵列DA转换器中多数电阻的值必须一致,在单芯片上生成高精度的电阻并不容易。
如果用电容阵列取代电阻阵列,可以用低廉成本制成高精度单片AD转换器。
最近的逐次比较型AD转换器大多为电容阵列式的。
6)压频变换型(如AD650)
压频变换型(Voltage-Frequency Converter)是通过间接转换方式实现模数转换的。
其原理是首先将输入的模拟信号转换成频率,然后用计数器将频率转换成数字量。
从理论上讲这种AD的分辨率几乎可以无限增加,只要采样的时间能够满足输出频率分辨率要求的累积脉冲个数的宽度。
其优点是分辩率高、功耗低、价格低,但是需要外部计数电路共同完成AD 转换。
考虑到设计指标要求8路模拟输入,可采用的A/D转换器有多种如:AD574、ADC0809、ADC0804等,但是ADC0809本身具有8路模拟输入端,不需要多路开关,考虑节省硬件开支故采用ADC0809作为模数转换器。
2、ADC0809的技术指标如下:
(1)主要特性
1)8路8位A/D转换器,即分辨率8位。
2)具有转换起停控制端。
3)转换时间为100μs
4)单个+5V电源供电
5)模拟输入电压范围0~+5V,不需零点和满刻度校准。
6)工作温度范围为-40~+85摄氏度
7)低功耗,约15mW。
(2)内部结构
ADC0809是CMOS单片型逐次逼近式A/D转换器,内部结构如图2所示,它由8路模拟开关、地址锁存与译码器、比较器、8路开关树型D/A转换、逐次逼近型寄存器、三态输出锁存器等其它一些电路组成。
因此,ADC0809可处理8路模拟量输入,且有三态输出能力,既可与各种微处理器相连,也可单独工作。
输入输出与TTL兼容。
图2 ADC0809内部结构框图
图3 ADC0809管脚图
(3)外部引脚功能
ADC0809芯片有28条引脚,采用双列直插式封装,如图3所示。
下面说明各引脚功能
◆IN0~IN7:8路模拟量输入端。
◆2-1~2-8:8位数字量输出端。
◆ADDA、ADDB、ADDC:3位地址输入线用于选择8路模拟输入中的一路,如表1
表1 ADDA、ADDB、ADDC真值表
◆ALE:地址锁存允许信号,输入,高电平有效。
◆START: A/D转换启动信号,输入,高电平有效。
◆EOC: A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。
◆OE:数据输出允许信号,输入,高电平有效。
当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。
◆CLK:时钟脉冲输入端。
要求时钟频率不高于640KHZ。
◆REF(+)、REF(-):基准电压。
◆Vcc:电源,单一+5V。
◆GND:地。
ADC0809的工作过程是:首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。
此地址经译码选通8路模拟输入之一到比较器。
START上升沿将逐次逼近寄存器复位。
下降沿启动 A/D转换,之后EOC输出信号变低,指示转换正在进行。
直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。
当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。
(二)DA转换器的选择
数字量的值是由每一位的数位权叠加而得的。
例如,8位二进制数10000001,只有最高位和最低位上的代码为l,其他数位均为0,最高位的位权为2的7次方=128,最
低位的位权为2的0次方=1,所以,该二进制数10000001就是十进制数129。
把一个数字量变为模拟量,必须是把每一位上的代码按照位权转换为对应的模拟量,再把各模拟量相加,这样,求和得到的便是与数字量对应的模拟量。
在D/A转换电路中,通常采用电阻网络实现数字量到模拟电流的转换,再利用运算放大器完成模拟电流到模拟电压的转换。
所以,要把一个数字量转换为模拟电压,实际上需要两个环节,即先由D/A转换器把数字量变为模拟电流,再由运算放大器将模拟电流变换为模拟电压。
目前,D/A转换集成电路芯片大多数都包含了这两个转换环节。
对只包含第一个转换环节的D/A转换芯片时,需要外接运算放大器才能得到模拟电压。
D/A转换器品种繁多,有权电阻DAC、变形权电阻DAC、T型电阻DAC、电容型DAC 和权电流DAC等。
各种勘DAC在电路结构上,通常都由基准电源、解码网络、运算放大器和缓冲寄存器等部件组成。
不同的DAC主要差别在不同的解码网络形式。
其中,T型电阻解码网络的DAC,由于网络电阻阻值少(只有只和2R两种)、简单、转换速度快、转换误差小等优点特别受到青睐。
表2给出了常用的各类D/A转换器及其性能。
其中,既有分辨率较低、价格也较低的通用8位芯片,也有速度和分辨率较高、价格也较高的12/16位芯片;既有电流输出的芯片,也有电压输出的芯片;服有内部没有数据输入寄存器,不能直接和系统总线相连的、结构简单的芯片,如DAC0808,DAC0800等,也有内部有数据输入寄存器,可以直接和系统总线相连的芯片,如DAC0832,DACl210等。
(4)、集成运放NE5534
由于 DAC0832 输出级没有加集成运放,所以需外加 NE5534 相配适用。
NE5534 封装如下图6所示。
图6 NE5534的管脚图
IN-:反相输入端;
IN+:同相输入端;
OUT:输出端;
Balance:平衡输入端,主要作用是,使内部电路的差动放大电路处于平衡状态;
COMP/Bal:调节外接电阻,以达到改善放大器的性能和输出电压;
VCC-、 VCC+:正负电源;
(三)中断控制器的选择
1、中断系统功能与组成
1)中断系统应具有的功能
多中断源请求,软件可禁止与允许每个请求。
中断优先级判别功能,响应优先级别最高的请求。
中断嵌套功能,高级别中断可中断较低级别的中断。
响应中断后,能自动转向中断处理程序,处理结束后自动返回主程序。
2)中断系统的组成
微处理器应有处理中断请求的机制与相关硬件电路:接收请求,响应请求,保护现场,转向中断服务程序,处理完返回。
外围应有一个与处理器匹配的中断控制器:管理多个中断源,优先级裁决,中断源屏蔽等功能。
依处理器的结构编写中断处理程序,安排相关的系统初始化。
2、本次设计中断控制器选用8259
1)可编程中断控制器8259功能、内部结构及外部引脚定义
(1)可编程中断控制器8259功能和内部结构
图7 8259内部结构图
(2) 8259的外部引脚信号
图8 8259外部引脚图
2) 8259A的工作方式
(1) 优先级方式选择
a)全嵌套方式:固定优先级,IR0最高,IR7最低。
b)特殊全嵌套:与a)基本相同,响应同级中断请求
c)优先级自动循环:某级被响应后,降为最低。
如IR4被响应后,优先级顺序变
为: IR5,IR6,IR7,IR0,IR1,IR2,IR3,IR4。
d)优先级特殊循环方式:编程指定最低优先级,其它同c)。
(2)屏蔽中断方式选择
a)普通屏蔽方式选择:对应IMR为1的位中断请求将被屏蔽。
例如:IMR=00001100,则IR2、IR3的中断请求被禁止。
b)特殊屏蔽方式: 执行中断程序时,动态改变优先级结构,屏蔽本级,允许较低级请求被服务。
被清0,中断结束。
(3)中断结束方式:ISR
n
(4)中断请求信号触发方式选择
a)边沿触发方式。
8259的IR0-IR7输入端出现低电平到高电平的正跳变信号,表示有中断请求。
出现正跳变信号后,允许高电平保持。
b)电平触发信号。
8259的IR0-IR7输入端出现高电平信号时,表示有中断请求。
该请求信号必须在中断服务程序中的中断结束命令执行前予以撤消,否则会引起不应有的第二次中断。
(四)并行接口选择
本次设计采用8255作为并行接口,8255外部引脚如图9
图9 8255外部引脚
1、内部组成及引脚功能如图10
图10 8255内部组成
四、硬件电路连接
根据以上各功能部件的选择,按照各自的硬件连接要求及相互之间在本次设计中的关系,做出本次设计的硬件连接图如图13。
图13 数据采集与控制系统原理电路图
说明:ADC0809的8路模拟输入分别由W1,W2,W3和DAC0832产生按图13中接法,IN0由W1提供,INl和IN2由W2提供,IN3和IN4由W3提供,IN5,IN6,IN7由DAC0832提供。
同时,DAC0832的输出又作为调节IN0的控制信号。
ADC0809的转换结束信号EOC接系统中断控制器8259A的中断请求输入(例如IR3)。
因此,当转换结束时,自动向CPU申请中断,CPU响应中断,将转换数据读到累加器,然后存人存储单元。
启动ADC0809转换时,首先要向对应通道(由C,B,A端编码决定)发出写操作信号。
这包括三个意思:发出C、B、A编码和CS信号,它们共同决定选中的通道;使ALE信号为高电乎,锁存C、B、A编码(通道地址低3位);使ALE信号为高电乎,启动转换。
这
与写操作的内容是无关的。
按图13中接法,只要对这个地址发出写动作就可以了。
DAC0832的输入是由软件产生的。
也就是说,ADC0809对DAC0832进行采集的信号大小是人为设置的。
软件流程图:
图14 中断服务流程图
图15 数据采集与控制系统主程序流程图
五、软件编程
根据以上硬件连接图,按系统设计要求进行以下程序设计
C语言
#include<dos.h>
#include<stdio.h>
#include<conio.h>
int choose_channel(); /*选择通道函数*/
void main(void)
{
int ch,n,pa,i,pc4;
clrscr();
printf("Please input the a/d channel NO(0--7):");
ch=choose_channel();
printf("During the process, press any key to exit!\n");
do{
outportb(0x303,0x88); /*初始化8255状态字,A口输出*/
outportb(0x300,ch); /*送通道号至A口*/
outportb(0x303,0x01); /*使PC0置高发启动信号*/
outportb(0x303,0x03); /*pc1置1进行地址锁存*/
delay(100);
outportb(0x303,0x02); /*pc1=0*/
outportb(0x303,0x98); /*重写8255方式字,*/
/*A口输入,C口低四位输出,C口高四位输入*/
outportb(0x303,0x04); /*pc2=0*/
do{
pc4=inportb(0x302)&0x10;
}while(pc4==0); /*查询PC4的状态,直至为高电位,即,转换完成*/ outportb(0x303,0x05); /*pc2=1,允许读转换结果*/
pa=inportb(0x300)*(0x77)/(0xff); /*读转换结果*/
printf("\nTempreture is %d degree \n",pa); /* 显示转换结果*/
delay(100);
}while(!kbhit()); /*有任意键按下即退出转换*/
}
int choose_channel()
{
int c;
do{
c=getchar(); /*输入通道号*/
c=c-48; /*输入通道号*/
if(c<0||c>7)
printf("\nThe ad channel NO is wrong! \nBe sure it is between 0 and 7!\nPlease input the NO again!:");
/*通道号有误时,显示出错信息,并要求再次输入正确的通道号*/
else break; /*通道号正确时,跳出循环*/
}while(1);
return(c); /*返回正确的通道号*/
}
六、误差分析
由于数据采集系统的中的元器件很多,从数据采集,信号处理,模数转换,直至信号输出,经过许多环节,其中既有模拟电路,又有数字电路,各种误差源很复杂,归纳起来数据采集系统的误差主要包括模拟电路误差、采样误差和转换误差。
(一)模拟电路误差
1、模拟开关导通电阻 R on的误差
2、多路模拟开关泄漏电流 I s引起的误差
3、采样保持器衰减率引起的误差
4、放大器的误差
(二)采样误差
1、采样频率引起的误差
2、系统的通过速率与采样误差
(三) A/D 转换器的误差
A/D 转换器是数据采集系统中的重要部件,它的性能指标对整个系统起着至关重要的作用,也是系统中的重要误差源。
选择 A/D 转换器时,必须从精度和速度两方面考虑,选用 A/D 转换器要考虑它的位数、速度及输出接口。
1、A/D 转换器的静态误差
1)量化误差
2)失调误差
3)增益误差
4) 非线性误差
2、 A/D 转换器的速度对误差的影响
A/D 转换器速度用转换时间来表示。
在数据采集系统的通过速率(吞吐时间)中, A/D 转换器的转换时间占有相当大的比重。
选用 A/D 转换器时必须考虑到转换时间满足系统通过率的要求,否则会产生较大的采样误差。