术课程设计
学院: 兴华学院 专业: 电子信息工程 班级: 61090701 学号: 03 姓名: 王飞飞 指导教师:张利川
第一部分
课程设计任务书
课题名称 微型计算机原理及接口技术课程设计 ——数
据采集系统设计
学院(部) 兴华学院 专 业 电子信息工程专业 班 级 61090701 6月7日至6月13日共一周
2010年6月13日
一、设计内容(论文阐述的问题)
设计一个数据采集系统
基本要求:要求具有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、《数字电子技术基础》
阎石 高等教育出版社
第二部分
一、 设计指标
设计一个数据采集系统
基本要求:要求具有8路模拟输入
输入信号为0——500mV
采用数码管8位,显示十进制结果
输入量与显示误差<1%
第一章 系统概述
一、总体的工作过程与原理
压力,流量,温度,位移等非电信号送入传感器,经传感器中转换元件转换后变为电信号输出且输出为模拟信号。由于输出的电信号太微弱,所以在送入采样保持电路前要经过一级放大器进行放大,本系统采用ICL7150放大10倍,可将0~500mv的电压信号放大到0~5V。此电压信号为模拟量,故需要送入型号为ADC0809的A/D转换器进行转换,此芯片可以将模拟信号转为数字信号,而且同时可处理8位信号,将转换后的信号即数字信号送入8259中断控制器进行中断请求,经过8255并行口与8086CPU对中断请求的响应进行中断处理,将处理的中断的子程序的信号送入锁存器保存,再将锁存器中的信号送入有驱动功能的LED显示器进行显示。
传感器,放大器,采样电路,采样保持电路,A\\D转换器,并行接口电路,8086CPU,
8253定时器,中断控制,锁存器,LED显示器以及比较器全部采用集成的成品件。
二、设计方案论证
(一)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输入高电平 时,输出三态门打开,转换结果的数字量输出到数据总线上。
三、传感器
在此仅对压力做出详细介绍。温度,流量,位移等只需用相应的传感器来对其做出相对应的变化。 3.1.1 应变式传感器的测量原理
应变式电阻传感器的工作原理:当导体或半导体受到外力作用时,会产生机械变形,从而导致阻值变化。导体与半导体的电阻与电阻率及其几何尺寸有关。当导体受外力作用时,电阻率及几何尺寸的变化会引起电阻的变化。因此,通过测量电阻值的大小,就可以反映外界力的大小。
3.1.2 传感器的分类
应变片式电阻传感器按其测量电路(桥式)可分为单臂式、半桥式、全桥式三种。 所谓半桥,即将电桥的四臂接入四应变片。其中:一片受拉,一片受压,另外两应变片不受力。全桥是两片受拉,两片受压,故灵敏度比半桥式的大一倍。 本方案采用全桥式传感。
3.1.3 传感器的选择
电阻型应变片传感器的测量电路可采用桥式测量电路。桥式测量电路有四个电阻,其中任何一个电阻均可以是应变片。如能恰当的选择个桥臂的电阻,可以消除电桥的恒定输出,使输出电压只与应变片的电阻有关。
3.1.4 传感器的电路图
3.2 放大器 3.2.1 放大器的原理
运算放大器的核心是一个差动放大器,由两个三极管背靠背连着,共同分担一个恒流源的电流,三极管一个是运放的正向输入,一个是反向输入正向输入的三极管放大后送到一个功放电路放大输出
3.2.2 放大器的分类
放大器可分为;分立元件放大器和集成运算放大器 集成运算放大器可分为:1通用性运放
2低失调低温漂运放
3高输入阻抗运放 4斩波稳零运放
3.2.3 放大器的的设计
放大器的设计,就是根据给定的技术指标,确定电路方案、选择电子器件、计算电路各元件参数。一般根据电信号的频带而对放大器的设计进行考虑。由于电子器件的离散型以及环境、温度和其他条件的随机性,使理论与实际结果不符,需要在实验中反复调试、修正,直到满足指标要求。在通常情况下,采用集成运放设计放大器会使电路既简单又易于调试,而且稳定性高。
集成运算放大器是一种高输入阻抗、低输出阻抗、高放大倍数且便于调试的优质放大器。集成运放内部电路由偏置电路、中间放大器、输出及过载保护电路组成。运放的开环放大倍
;
数可达106;;当它构成闭环负反馈放大电路时,其电压放大倍数只取决于外加电阻值的大小,与运放本身无关,安装调试十分简单。
2.2.4 集成运放的选用原则
【1】 如果没有特殊的要求,一般选用通用型运放,因为这类器件直流性能较好,种类也
较多,且价格较低。在通用运放系列中,又有单运放、双运放、四运放等多种,对于多运放器件,其最大的特点是内部对称性好,这样也可以减少器件、简化线路、
缩小面积和降低成本。
【2】 如果被放大信号源的输出阻抗很大,则可选用高输入阻抗的运算放大器,另外像采样|保持电路、峰值检波、优质对数放大器和积分以及生物信号放大、提取、测量放大器电路等也需使用高输入阻抗集成运放。
【3】 如果系统对放大电路要求低噪声、低温漂、高精度,则可以选用高精度、 低漂移的
低噪声集成运放,适用于再毫伏级或更微弱的信号检测、精密模拟运算、高精度稳
压源、高增益直流放大、自控仪表等场合。
【4】 对于视频信号放大、高速采样|保持、高频振荡及波形发生器、锁相环等场合,则应
选用高速宽带集成运放。
【5】 对于要求低功耗场合,如便携式仪表、遥感遥测等场合,可选用低功耗运放;对于
需要高压输入|输出场合,可选用高压运放;对于需增益控制场合,可选用程控运放;其他如宽范围电压振荡、伺服放大和驱动、DC-DC变换等场合,可选用跨导型、电流型等相应的集成运放。
一般来讲,选择器件的原则是在满足所需电气特性的前提下,尽可能选择价格低廉、市场供货充足的器件,即选用性能价格比高、通用性强的器件。在本实验中,选用AD620型放大器即可满足电路所需。
3.2.5 放大器的参数
在分析运放时,一般将它看成理想运放。理想运放的开环放大倍数为无穷大,输入偏置电流为零,输入电阻为无穷大,输出电阻为零,失调电压和失调电流及温漂为零。 A\\D620的参数:最大输入失调电压125uv(最大电流50uA) 最大输入失调漂移1uv/℃ 最大输入偏置电流20nA
最小共模抑制比(G=10)为93dB 带宽120KHz(G=100) 建立时间15us(0.01%) 工作温度范围:-55℃~+125℃ 电源电压极限范围±18V
差分输入电压极限范围±25V
3.2.6 放大器的电路图
3.3 采样/保持电路
采样/保持电路在下列情况被使用: ●逐次比较A/D转换器前端 ●同时数据采集
3.3.1 采样/保持电路的原理
采样/保持电路可用图2 - 1来体现其原理
采样/保持电路通常用保持电容、输入输出缓冲放大器、逻辑输入控制的开关电路等组成。采样期间,逻辑输入控制的模拟开关是闭合的,A1是高增益放大器,它的输出通过开关给电容器快速充电;保持期间,开关断开,由于运算放大器A2输出阻抗很高,在理想情况下,电容器将保持充电时的最终值。
图2 – 1
在采样期间,期望电容上的电压和输入信号一致,并跟随输入信号的变化;而在保持期间能使电容上的电压不变并和输出保持一致。但实际上由于受到运算放大器性能的限制,实际采样/保持电路的输入输出曲线如图2 – 2
图2 - 2
3.3.2 采样/保持电路的参数
在保持方式时,采样/保持电路的两个重要参数是:电压跌落率和保持方式的前馈。影响电压跌落率的因素有电容的泄露电流Icl,开关的泄露电流Isl和输出放大器泄露电流Is,及其它杂散泄露电流,电容的电压变化率为:
dvcdtICH
3.3.3 采样/保持电路的采样频率
采样频率必须满足采样定理Fs》=2fmax,fma为被采样信号的最高频率。
3.4 A\\D转换器
3.4.1 AD0809的工作原理
AD0809为8位逐次比较型模数转换器,包含模数转换器、8通道多路转换器以及与微控制器兼容的控制逻辑。8个单独模拟信号可从8通道多路转换器直接输入。 §1. AD0809主要性能
● COMS工艺制造 ● 单电源供电
● 逐次比较型
● 无需外部进行零点和满度调整 ● 并行输出
● 可锁存三态输出,输出与TTL兼容 ● 易与各种微控制器接口 ● 具有锁存控制的8路模拟开关 ● 分辨率为8位
● 功耗为15mW转换时间(fclk● 转换精度为0.4%
500kHz)为128s
(二)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等。
通过比较各个芯片的功能并结合设计的要求综合考虑后决定用DAC0832来完成DA转换功能,因为0832的接口简单,转换容易并且价格低廉。
DAC0832是美国数据公司研制的8位双缓冲器D/A转换器。芯片内带有数据锁存器,可与数据总线直接相连。电路有极好的温度跟随性,使用了COMS电流开关和控制逻辑而获得低功耗、低输出的泄漏电流误差。芯片采用R—2R T型电阻网络,对参考电流进行分流完成D/A转换。转换结果以一组差动电流人输出。
1、DAC0832主要性能参数: 分辨率8位; 转换时间1µs; 参考电压±10V 电源+5V一+15V 功耗20mW。 2、DAC0832的结构
DAC0832中有两级锁存器,第一级锁存器称为输入寄存器,它的锁存信号为ILE;第二级锁存器称为DAC寄存器,它的锁存信号为传输控制信号XFER。因为有两级锁存器,DAC0832可以工作在双缓冲器方式,即在输出模拟信号的同时采集下一个数字量,这样能有效地提高转换速度。此外,两级锁存器还可
以在多个D/A转换器同时工作时,利用第二级锁存信号来实现多个转换器同步输出。
图4 0832的内部结构及管脚图
图4中,当ILE为高电平、CS和WR1为低电平时,LEl为高电平,输入寄存器的输出跟随输入而变化;此后,当WRl由低变高时,LEl为低电平,数据被锁存到输入寄存器中,这时的输入寄存器的输出端不再跟随输入数据的变化而变化。对第二级锁存器来说,XFER和WR2同时为低电平时,LE2为高电平,DAC密存器的输出跟随其输入而变化:此后,当WR2由低变高时,LE2变为低电平,将输入寄存器的数据锁存到DAC寄存器中。
3、DAC0832的引脚特性
DAC0832是20引脚的双列直插式芯片。各引脚的特性如下: CS——片选信号和允许锁存信号ILE组合来决定WRl是否起作用。 ILE——允许锁存信号。
WR1——写信号1,作为第一级锁存信号,将输入数据锁存到输入寄存器(此时
必须和CS、ILE同时有效)。
WR2——写信号2,将锁存在输入寄存器今的数据送到DAC窃行器今进行锁存 传输控制信号XFER必须有效)。 XFER——传输控制信号,用来控制WRl。 DI7—DI0——8位数据输入端。
IOUT1——模拟电流输出端1。当DAC寄存器中全为1时,输出电流最大,当DAC寄存器
中全为0时,输出电流为0。
IOUT2——模拟电流输出端20 .IOUT1+IOUT2=常数。
RFB——反馈电阻引出端。DAC0832内部已经有反馈电阻,所以,RFB端可以直接接到外部
运算放大器的输出端,相当于将反馈电阻接在运算放大器的输入端和输出端之间。
VREF——参考电压输入端。可接电压范围为±10V。外部标准电压通过VREG与T型电阻网
络相连。
VCC——芯片供电电压端.范围为+5v一+15v AGND———模拟地,即模拟电路接地端。 DGND———数字地,即数字电路接地端。
4、DAC0832的工作方式
DAC0832进行D/A转换,可以来用两种方法对数据进行锁存:
第一种方法是使输入寄存器工作在锁存状态,而DAC寄存器工作在直通状态。具体地说,就是使WR2和XFER都为低电平,DAC寄存器的锁存选通端得不到有效电平而直通;此外,使输入寄存器的控制信号ILE处于高电平、CS处于低电平,这样,当WR1端来一个负脉冲时.就可以完成1次转换。
第二种方法是使输入寄存器工作在直通状态,而DAC寄存器工作在锁存状态。就是使WR1和CS为低电乎,ILE为高电平,这样,输入寄存器的锁存选通信号处于无效状态而直通;当WR2和XFER端输入1个负脉冲时,使得DAC寄存器工作在锁存状态,提供锁存数据进行转换。
根据上述对DAC0832的输入寄存器和DAC寄存器不同的控制方法,DAC0832有如下3种工作方式:
(1)单缓冲方式。单缓冲方式是控制输入寄存器和DAC寄存器同时接收数据,或者只用输入寄存器而把DAC寄存器接成直通方式。此方式适用于只有一路模拟星输出或几路模拟量非同步输出的情形。
(2)双缓冲方式。双缓冲方式是先使输入寄存器接收数据,再控制输入寄存器的输出数据到DAC寄存器,即分两次锁存输入数据。此方式适用于多个D/A转换同步输出的情形。 (3)直通方式。直通方式是数据不经两级锁存器钡存,即WR1,WR2,XFER,CS均接地,ILE接高电平。此方式适用于连续反馈控制线路,不过在使用时,必须通过另加I/O接口与CPU连接,以匹配CPU与D/A的转换。
5、DAC0832的外部连接
DAC0832的外部连接线路如图5所示。由于在DAC0832内部已有数据锁存器,所以在控制信号作用下,可以对总线上的数据直接进行锁存。当CPU执行对DAC0832的输出指令时,WR1和CS信号处于有效电平。
DAC0832的输出是电流型的,直接得到的转换输出信号是模拟电流IOUT1和IOUT2(IOUT1+IOUT2=常数)。为得到电压输出,应加接—个运算放大器,这时得到的输出电压VOUT是单极性,极性与VREF相反。如果要输出双极性电压,应于输出端再接一个运算放大器,作为偏移电路。
图5 DAC0832的外部连接
6、集成运放NE5534
由于 DAC0832 输出级没有加集成运放,所以需外加 NE5534 相配适用。NE5534 封装如下图8所示。
图6 NE5534的管脚图
IN-:反相输入端; IN+:同相输入端;
OUT:输出端;
Balance:平衡输入端,主要作用是,使内部电路的差动放大电路处于平衡状态; COMP/Bal:调节外接电阻,以达到改善放大器的性能和输出电压; VCC-、 VCC+:正负电源;
(三)中断控制器的选择
1、中断系统功能与组成 1)中断系统应具有的功能
多中断源请求,软件可禁止与允许每个请求。 中断优先级判别功能,响应优先级别最高的请求。 中断嵌套功能,高级别中断可中断较低级别的中断。
响应中断后,能自动转向中断处理程序,处理结束后自动返回主程序。
2)中断系统的组成
微处理器应有处理中断请求的机制与相关硬件电路:接收请求,响应请求,保护现场,转向中断服务程序,处理完返回。
外围应有一个与处理器匹配的中断控制器:管理多个中断源,优先级裁决,中断源屏蔽等功能。
依处理器的结构编写中断处理程序,安排相关的系统初始化。
2、本次设计中断控制器选用8259
1)可编程中断控制器8259功能、内部结构及外部引脚定义 (1)可编程中断控制器8259功能和内部结构
◆中断请求寄存器(IRR):8位寄存器,可寄存储 8 个请求输入(IR0-IR7)的状态。 ◆优先权裁决器:对请求源与正在被服务的中断级进行比较,裁决出优先级最高者。 ◆中断服务寄存器(ISR):8位,与IRR对应,记录正被处理的请求。IRn被响应,ISRn被置1;IRn处理结束, ISRn置0。
◆中断屏蔽寄存器(IMR):8位,某位置1对应IRR位的请求被屏蔽。 ◆控制逻辑:寄存8259的命令字,多种工作方式的控制,向处理器发INT,接收◆级联缓冲器/比较器:多片8259级联时,对从片的标识码进行寄存与比较。
。
图7 8259内部结构图
(2) 8259的外部引脚信号
图8 8259外部引脚图
8259的主要引脚信号说明
◆D7-D0:双向数据总线, 与系统数据总线连接。 ◆
:片选信号,低电平有效,确定芯片在系统I/O空间位置。
◆A0: 地址线,8259占相邻的2个I/O地址,与CS信号配合,A0=0选偶端口,A0=1选奇端口。 ◆CAS2-CAS0: 双向级联线。在主从级联结构中,主片输出,从片输入。主片发从片标识码,从片比较,符合时输出中断类型码。 ◆
:双向信号,低电平有效。输入时为SP,硬接线确定主从(主片SP接高电平);
输出时为EN,作为DB缓冲允许。
◆INT:中断请求,输出,与CPU的INTR脚相连,向CPU发出中断请求。 ◆
:中断响应,低电平有效,输入,与8086/88
相连。
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)特殊屏蔽方式: 执行中断程序时,动态改变优先级结构,屏蔽本级,允许较低级请求被服
务。
(3)中断结束方式:ISRn被清0,中断结束。
a)自动结束方式:8259收到和中断无嵌套的情况)。
b)一般结束方式:8086发命令清除中断在服务寄存器ISR中的最高的置1位清0,结束中断(在全嵌套方式下使用)。
c)特殊结束方式:编程向8259发出一条特殊中断结束命令,将中断在服务寄存器ISR中指定位清0(在非全嵌套方式下使用)。
后自动把中断在服务寄存器ISRn位清0(适用于单片8259
(4)中断请求信号触发方式选择
a)边沿触发方式。8259的IR0-IR7输入端出现低电平到高电平的正跳变信号,表示有中断
请求。出现正跳变信号后,允许高电平保持。
b)电平触发信号。 8259的IR0-IR7输入端出现高电平信号时,表示有中断请求。该请求
信号必须在中断服务程序中的中断结束命令执行前予以撤消,否则会引起不应有的第二次中断。
3) 8259的命令字
8259工作方式设定及运行中的控制,均由8086发来的命令字(1字节代码)决定。命令字分初始化命令字和操作命令字两种,系统向8259两个端口之一写入。8259根据接收命令字的端口号,特征位及顺序决定命令字的属性。
(1)初始化命令字(Word,ICW)
ICW1-ICW4四个初始化命令字,有接收顺序要求。 8259初始化流程如下 :
(a)ICW1的格式与定义:芯片控制
LTIM=1中断请求电平触发, LTIM=0中断请求边沿触发。 SNGL=1单片8259系统,SNGL=0多片8259系统。 AD1在8088/8086系统中不起作用。 IC4在8088/8086系统中恒为1。
(b)ICW2的格式和定义:中断类型码设定
ICW2用来指定8259的8个中断请求IR7-IR0的中断类型码。其中T7-T3由程序写入,最低3位(D2-D0)根据当前正在响应的中断请求IRn的n值自动填入。
例如:若ICW2为40H,则IR0-IR7所对应的中断类型码为40H。41H,42H,43H,44H,45H,46H,47H。
(c)ICW3的格式和定义:在多片8259系统中,其格式和含义依主片、从片而定。 主片的格式:
若主片的IR0-IR7的某个引脚上连接从片8259,则ICW3的该位为1。
从片的格式:
ID2-ID0的值取决于本从式的INT输出端连接到主片IR哪个输入端。例如,连接到IR7,则 ID2ID1ID0=111
从片的CAS2-CAS0接收从主片8259发来的编码,并与本身的ICW3中的ID2-ID0比较,若相等,则在中断响应过程中,将自己的中断类型码送CPU。
(d)ICW4的格式和定义:工作方式设定
SFNM=1特殊全嵌套、SFNM=0非特殊全嵌套。 AEOI=1中断自动结束、AEOI=0一般中断结束。 BUF=0,DB无缓冲,
用作
;BUF=1,DB有缓冲,主从片软件定。
(当BUF=1时),M/S=1为主片、M/B=0为从片。 μPM=1,8086系统; μPM=0,8085系统。
(四) 并行接口选择
本次设计采用8255作为并行接口,8255外部引脚如图9
图9 8255外部引脚
1、8255的主要性能参数为
(1)共有4个端口:
A口连 8位并行PA口线 B口连 8位并行PB口线 C口连 8位并行PC口线 控制端口
(2) 三种工作方式。
(3)可提供中断和查询数据传输方式。 (4)可直接与系统总线相连。
2、内部组成及引脚功能如图10
图10 8255内部组成
(1)与CPU接口部分
缓冲器:8位双向三态缓冲器。
读写逻辑:对A口、B口、C口读/写控制,对控制口写控制字。 (2)与外设接口部分
A口:8位输出锁存、8位输入缓冲。
B口:8位输出锁存、8位输入缓冲。 C口:8位输出锁存、8位输入缓冲。 (3)引脚功能 ①
CPU与8255交换数据引脚
◆RESET:复位输入线,当该输入端外于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。
◆D0~D7:三态双向数据总线,8255与CPU数据传送的通道,当CPU 执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。 ◆CS:片选信号线,当这个输入引脚为低电平时,表示芯片被选中,允许8255与CPU进行通讯。
◆RD:读信号线,当这个输入引脚为低电平时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。
◆WR:写入信号,当这个输入引脚为低电平时,允许CPU将数据或控制字写入8255。 A0、A1:内部寄存器寻址。
A1 A0 0 0 读写A口 0 1 读写B口 1 0 读写C口 1 1 写控制寄存器
② 与I/O设备交换数据引脚
◆PA0~PA7:A口的8位输入/输出线。 ◆PB0~PB7:B口的8位输入/输出线。
◆PC0~PC7:有如下用途:作为8位输入/输出线;作为两个4位输入/输出线:◆PC0~PC3、PC4~PC7;可对每一位实现按位“置位”或“复位”控制;作为8255的状态口;专用联络信号线。
3、工作方式控制字
8255有三种工作方式:方式0、方式1、方式2。两组端口可分别指定不同的工作方式。
每组端口在某种工作方式下,并不要求各信号同为输入或同为输出,而是可以分别指定。方式选择控制字的格式如图11所示
图11 8255方式选择控制字
4、PC口控制字
PC口的各信号线常作为控制线来使用,因此,经常需要单独对每根信号线置1或置
0。这种操作用向PC口控制字寄存器送出PC口控制字来实现。 PC口控制字格式如图12 所示。
图12 PC口控制字
(五) LED显示 5.4.1抗干扰
5 .4.2 电源干扰采用IBM-PC/XT机内电源,种类有正负5V,正负12V,由于直流电源供电电压随着交流电压。负载电流,环境温度,元器件老化等因素变化而变化,产生干扰,因此,在本系统的扩展擦卡接口电源入口处设置了低频和高频滤波电路。以消除电源的干扰。 5.5.3 采样保持电容的选择S/H LF398的采样保持电容Ch对系统稳定性影响较大,要选用高质量的电容以减少损耗,提高测试精度。
5.5.4 地线干扰当一根导线的两端在不同的接点接地时,由于导线内阻导致这两点电位差并不为0。若将此电位差看作信号源,便会影响输入和输出,为了克服影响,本系统采样一下2条措施:(1)数字地和模拟地分开接,最后在一点接地,以免互相串扰。(2)地线尽量短而粗,印制板上地线设计接成闭合环路,并设计出网格状,以减小接地电位差。
三、硬件电路连接
根据以上各功能部件的选择,按照各自的硬件连接要求及相互之间在本次设计中的关系,做出本次设计的硬件连接图如图13。
图13 数据采集与控制系统原理电路图
四、软件编程
MOV BL 04H MVLBL
MOV BX , AX MOV AX , SIV
SIV为中断服务程序首地址 NOP MOV 【BX】, AX PUSH CS POP AX INC BX INC BX
MOV 【BX】, AX
MOV SI , 2000H 数据缓冲区首地址
MOV CX , 200;
AUC转换点数,CX为次数计数器 MOV OX OF802H.
F802H为首地址寄存器地址 MOV BX , 0103
ADC转换通道存放地址 MOV AL , [BX] OUT DX , AL
MOV DX , OFFEFH
FFEFH为定时器8253控制寄存器地址、 MOV AL 054H
选定一号通道,16位二进制计数码 工作方式2只读写低字节 MOV DX OFFEBH
FFFEBH为8253计数到首地址 MOV BX 0102H;
0102H为计数性存放地址 MOV AL , [BX]; 00T DX ALSTI 允许中断AL:HLT; 程序MPAN OP SIV MOV DX OF800H 中端服务程序: INAX , DX ;
从ADC转换器读出程序 MOV [SI] AXINCSI 数据缓冲区地址操作 INC SIDECCX
采样次数计数器减一 JC XZ MIRET 中断返回M
五、误差分析
由于数据采集系统的中的元器件很多,从数据采集,信号处理,模数转换,直至信号
输出,经过许多环节,其中既有模拟电路,又有数字电路,各种误差源很复杂,归纳起来数据采集系统的误差主要包括模拟电路误差、采样误差和转换误差。 (一)模拟电路误差
1、 模拟开关导通电阻 Ron 的误差 2、 多路模拟开关泄漏电流 Is 引起的误差 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 转换器时必须考虑到转换时间满足系统通过率的要求,否则会产生较大的采样误差。 A/D 转换器接转换速度可分为高速、快速和低速三类。高速 A/D 转换器的转换时间小于 1us ,快速的转换时间为 1-100us ,低速的在 100us 以上 (四)D/A转换器的误差
同A/D转换器一样D/A转换器误差控制要从精度和转换速率两方面考虑。 1、 转换精度:
DAC的转换精度与D/A转换芯片的结构、外部电路器件配置和电源误差
有关。当这些因素造成较大的D/A转换误差,并超过一定程度时,D/A转换就会产生
错误。如果不考虑D/A转换的误差,DAC转换精度就是分辨率的大小,因此,要获得高精度的D/A转换结果,首先要选择有足够高分辨率的DAC。
D/A转换精度分为绝对和相对转换精度,一般是用误差大小表示。DAC的转换误差包括零点误差、漂移误差、增益误差、噪声和线性误差、微分线性误差等综合误差。
绝对转换精度是指满剑度数字量输入BJ,模拟量输出接近理论值的程度。它和标准电源的精度、权电阻的精度有关。相对转换精度指在满刻度已经校准的前提下,整个刻度范围内,对应任一模拟量的输出与它的理论值之差。它反映了DAC的线性度。通常,相对转换精度比绝对转换精度更有实用性。相对转换精度一般用绝对转换精度相对于满量程输出的百分数来表示,有时也用最低位(LSB)的几分之几来表示。 2、非线性误差:
D/A转换器的非线性误差定义为实际转换特性曲线与理想特性曲线之间的最大偏差,并以该偏差相对于满量程的百分数度量。转换器电路设计一殷要求非线性误差不大于±1/2LSD。 3、转换速率/建立时间:
转换速率实际是由建立时问来反映的。建立时间是指数字量为满刻度值(各位全为1)时,DAC的模拟输出电压达到某个规定值(比如,90%满量程或±1/2LsB满量程)时所需要的时间。建立时间是D/A转换速率快慢的一个重要参数。很显然,建立时间越大,转换速率越低。不同型号DAC的建立时间一般从几个毫微秒到几个微秒不等。若输出形式是电流,DAC的建立时间是很短的;若输出形式是电压,DAC的建立时间主要是输出运算放大器所需要的响应时间。 (五)数据采集系统误差的计算
在分析了数据采集系统得误差来源后,要计算误差,误差的计算公式有以下两个:按均方根形式综合误差的表达式为
MUXAMPSHADC
2222按绝对值和方式综合误差的表达式为:
MUXAMPSHADC
式中:MUX——多路模拟开关的误差;
AMP——放大器的误差;
SH——采样保持器的误差; ADC—— A / D 转换器的误差
六、设计体会总结
《微机原理与接口技术》作为电子信息类本科生教学的主要基础课之一,课程紧密结合电子信息类的专业特点,围绕微型计算机原理和应用主题,以Intel80x86CPU为主线,系统介绍微型计算机的基本知识,基本组成,体系结构和工作模式,从而使学生能较清楚地了解微机的结构与工作流程,建立起系统的概念。
这次微机原理课程设计历时一个星期,在整整一星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。以前我接触的那些程序都是很短、很基础的,但是在课程设计中碰到的那些需要很多代码才能完成的任务,画程序方框图是很有必要的。因为通过程序方框图,在做设计的过程中,我们每一步要做什么,每一步要完成什么任务都有一个很清楚的思路,而且在程序测试的过程中也有利于查错。
其次,以前对于编程工具的使用还处于一知半解的状态上,但是经过一段上机的实践,对于怎么去排错、查错,怎么去看每一步的运行结果,怎么去了解每个寄存器的内容以确保程序的正确性上都有了很大程度的提高。
这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在同学们的帮助下并且查阅了很多相关的资料才得以解决。
通过本次课程设计,我进一步温习和巩固了课本的理论知识,增强了理论联系实际的能力。同时也增强了我通过检索资料来获取相关专业信息以及利用检索到的信息来解决面临问题的能力。本次设计使我深刻认识到自己软件编程方面的知识薄弱,同时也使我体会到软件编程在实际硬件电路连接中的重要作用,软件编程的使用是硬件开销大大减少,同时也使设计更加的简洁易于控制。在今后的学习我要加强软件编程方面知识的积累和运用。
七、主要参考资料
因篇幅问题不能全部显示,请点此查看更多更全内容