740 likes | 892 Views
吉林大学远程教育学院. 计算机接口技术. 主讲人: 赵宏伟 教授 总学时: 32 吉林大学计算机科学与技术学院. 第 二十三 讲. 第 6 章 模拟通道及其接口. 在测量和工业实时控制中,经常要对一些现场物理量进行测量,或者将其采集下来进行处理。这些物理量可能是电信号,也可能是非电信号。 电信号有电压、电流、电量等,非电信号有拉力、压力、温度、声音、光、浓度、密度、湿度以及物体的重量、形变、位移、运动物体的速度和加速度等。 对于电信号,需要转化成计算机所能接受的形式,对于非电信号则需要转换成电信号再由计算机进行处理。
E N D
吉林大学远程教育学院 计算机接口技术 主讲人: 赵宏伟 教授 总学时: 32 吉林大学计算机科学与技术学院 第 二十三 讲
第6章 模拟通道及其接口 • 在测量和工业实时控制中,经常要对一些现场物理量进行测量,或者将其采集下来进行处理。这些物理量可能是电信号,也可能是非电信号。 • 电信号有电压、电流、电量等,非电信号有拉力、压力、温度、声音、光、浓度、密度、湿度以及物体的重量、形变、位移、运动物体的速度和加速度等。 • 对于电信号,需要转化成计算机所能接受的形式,对于非电信号则需要转换成电信号再由计算机进行处理。 • 在数字计算机中,任何物理量都是以数字的形式表示和进行处理的,而上述电信号、非电信号一般都是模拟量信号,所以就需要将模拟量信号转换成数字量信号,这一转换过程称为模数转换,即A/D转换。 • 另一方面,为满足测控系统各执行机构对模拟量信号的要求,需要将计算机处理后的用于控制的数字量信号转换成模拟量信号,这一转换过程称为数模转换,即D/A转换。 • A/D转换和D/A转换是微型机与外界联系的重要桥梁,是微型机在测量、控制和各类智能仪器仪表中不可缺少的重要环节。
6.2 D/A转换及其接口 D/A转换原理 • D/A转换常用的方法是加权电阻网和T型电阻网法 • 1.加权电阻网D/A转换:加权电阻网D/A转换就是用一个二进制数字的每一位代码产生一个与其相应权成正比的电压(或电流),然后将这些电压(或电流)叠加起来,就可得到该二进制数所对应的模拟量电压(或电流)信号 • 2.T型电阻网D/A转换: T型电阻网D/A转换的组成是 (1)输入数据控制的开关组 (2)R-2R电阻网络 (3)由运算放大器构成的电流-电压转换电路 这种转换方法与上述加权电阻网络法的主要区别在于电阻求和网络的形式不同,它采用分流原理来实现对相应数字位的转换
吉林大学远程教育学院 计算机接口技术 主讲人: 赵宏伟 教授 总学时: 32 吉林大学计算机科学与技术学院 第 二十四 讲
D/A转换器的主要性能指标 • 1.分辨率:当输入数字发生单位数码变化时,即LSB位产生一次变化时,所对应输出模拟量(电压或电流)的变化量 • 2.精度:分绝对精度和相对精度,表明D/A转换的精确程度,用误差大小表示 • (1)绝对精度:指的是在整个工作区间实际的模拟量输出值与理论输出值之差的最大值。它是由D/A转换器的零点调整,增益误差,噪声和线性误差,微分线性误差等引起的。在手册上常常单独给出各种误差以综合说明绝对误差 • (2)相对精度:相对精度与绝对精度相似,不同在于,相对精度把上述的最大偏差表示为满量程输出模拟量的百分数,或者用二进制位数的形式给出,例如:精度为±0.1%,含义是:最大误差为FS的±0.1%,若FS=5V,则最大误差为±5mV • 3.建立时间:描述D/A转换速率快慢的一个重要参数,一般所指的建立时间是指输入数字量变化后,输出模拟量稳定到相应数值范围内所经历的时间 • 4.环境及工作条件:一般情况下,影响D/A转换精度的主要环境和工作条件因素是温度和电源电压变化。D/A转换器的工作温度按产品等级分为军用级、工业级和商业级,各级的标准工作温度分别如下: • 军用级 -55℃~+125℃ • 工业级 -25℃~+85℃ • 商业级 0℃~-70℃
8位D/A转换器DAC 0832 • 目前,D/A转换器已将精密电阻、模拟开关、数据锁存器,甚至包括基准电源、运算放大器等集成在一个芯片上,可与8位或16位的微处理器直接连接 • D/A转换器的分类方式也有多种,例如转换方式有并行、串行之分,并行快,串行慢;按字长分,有8位、10位、12位……之分;按模拟开关工艺分有双极型、JFET型、MOS型,它们的速率和精度不同;按结构有带数据锁存器和不带数据锁存器之分;按输出形式有电压和电流之分,等等 • DAC 0832是美国国家半导体公司推出的8位D/A转换器。该芯片采用CMOS工艺,双列直插式封装,可直接与8080、8088、Z80等8位微处理器以及MCS-51系列单片机直接接口,是在8位D/A转换器中使用率最高的一种芯片 • DAC 0832主要特性:8位分辨率;电流型输出;外接参考电压:-10V~+10V;可采用双缓冲、单缓冲或直接输入三种工作方式;单电源:+5V~+15V;电流建立时间:1μs;低功耗:20mV;R-2R T型解码网络;线性误差:0.2%FS(FS为满量程);非线性误差:0.4%FS;增益温度系数:0.002%FS/℃;数字输入与TTL兼容
DAC 0832的内部构造 • 4个部分组成:一个8位输入寄存器,一个8位DAC寄存器,一个8位D/A转换器和一组控制逻辑
吉林大学远程教育学院 计算机接口技术 主讲人: 赵宏伟 教授 总学时: 32 吉林大学计算机科学与技术学院 第 二十五 讲
DAC 0832 方波输出 MOV DX,300H START: MOV AL,00H OUT DX,AL CALL DELAY1 MOV AL,0FFH OUT DX,AL CALL DELAY2 JMP START
DAC 0832锯齿波输出 MOV DX,300H MOV AL,00H OUT DX,AL X1: INC AL OUT DX,AL CALL DELAY JMP X1
DAC 0832三角波输出 MOV DX,300H R0: MOV CX,0FFH MOV AL,00H R1: OUT DX,AL INC AL LOOP R1 MOV CX,0FFH R2: DEC AL OUT DX,AL LOOP R2 JMP R0
DAC 0832梯形波输出 MOV DX,300H MOV CX,0FFH MOV AL,00H T1: OUT DX,AL LOOP T1 MOV CX,0FFH T2: INC AL OUT DX,AL LOOP T2 MOV CX,0FFH T3: OUT DX,AL LOOP T3 MOV CX,0FFH T4: DEC AL OUT DX,AL LOOP T4 JMP T1
吉林大学远程教育学院 计算机接口技术 主讲人: 赵宏伟 教授 总学时: 32 吉林大学计算机科学与技术学院 第 二十六 讲
DAC 0832应用 START:MOV SI,2000H MOV CX,50 X1: MOV AL,[SI] INC SI OUT 80H,AL CALL D1ms LOOP X1 HLT • 例:将从2000H开始的50个字节单元数据依次送到DAC 0832输出,每个数据输出间隔时间为1ms,可调用D1ms延时1ms子程序
8位CPU与超过8位的DAC接口(1) • 一个12位的D/A转换器与8位CPU接口时,需把数据宽度分为两段,即用两个数据锁存器分别锁存低8位和高4位数据,计算机向D/A转换器送数据时分为二次操作,即先把低8位送给低8位锁存器,紧接着把高4位送到高4位锁存器 • 这种方法实际上存在问题:它会在模拟电压输出中出现本来没有“毛刺”现象,这种现象主要是由于两个锁存器的值不同时改变而造成的 设前一个送入锁存器的数据为: D1=0000 1111 1111 DAC(D/A转换器)输出电压为V1。下一个送入锁存器的数据为: D2=0001 0000 0000 对应D2的电压输出为V2。显然,由于D2>D1,而使V2>V1,但当把D2的低8位送入低8位锁存器后,高4位送入高4位锁存器之前,DAC的数据锁存器出现了一个中间数据,即0000 0000 0000,DAC输出的模拟电压在这瞬间也会输出一个“0”电压。在高4位数据输出之后,DAC的数据变为0001 0000 0000,模拟电压变为正常的V2。这样,输出的模拟电压中出现了一个“毛刺”
8位CPU与超过8位的DAC接口(2) • 为了解决毛刺问题,可采用双缓冲结构,也即二重锁存,如图所示,使加到DAC上的数据同时改变 • CPU先把低8位锁存在锁存器1中,然后再把高4位锁存在锁存器2中,最后选中锁存器3和锁存器4,使刚才锁存的12位数据同时传送,对于DAC来说,高字节和低字节的数据是同时送到DAC的输入端,因此不会产生“毛刺”
12位D/A转换器DAC 1210主要特性 • DAC 1210芯片属于DAC 1208系列,是12位的D/A转换器,24个引脚。 • 12位分辨率; • 电流型输出; • 外接参考电压:-10V~+10V; • 可采用双缓冲、单缓冲或直接输入三种工作方式; • 单电源:+5V~+15V; • 电流建立时间:1μs; • 低功耗:20mV; • R-2R T型解码网络; • 线性误差:0.05%FS(FS为满量程); • 线性误差:0.05%FS; • 数字输入与TTL兼容。
吉林大学远程教育学院 计算机接口技术 主讲人: 赵宏伟 教授 总学时: 32 吉林大学计算机科学与技术学院 第 二十七 讲
DAC 1210的典型连接 • DAC 1210的典型连接是单极性单缓冲连接,如图6.2.5所示。图中DAC 1210高8位端口地址为81H,低4位端口地址为80H,12位传送端口地址为84H。 • 假设BX寄存器中低12位数据是待转换的12位数字量,则可编写如下程序,启动DAC 1210完成一次D/A转换: BEGIN:MOV CL,4 SHL BX,CL MOV AL,BH OUT 81H,AL MOV AL,BL OUT 80H,AL OUT 84H,AL RET
DAC 1210应用 • 例1利用DAC 1210设计一个正向锯齿波发生器,要求设计接口电路,并编制相应的接口程序。 • 接口电路设计可参考图6.2.5。锯齿波发生程序编制如下: START:MOV SI,00H X1: MOV BX,SI MOV CL,4 SHL BX,CL MOV AL,BH OUT 81H,AL MOV AL,BL OUT 80H,AL OUT 84H,AL CALL DELAY INC SI JMP X1
6.3 A/D转换及其接口 A/D转换的基本过程 • 模拟量是时间上和幅值上都连续的一种信号,模拟量经过采样后得到的信号是时间上离散,幅值上连续的信号,即离散信号,这一过程就是采样过程 • 计算机对这种离散信号还不能处理,计算机只能处理数字量,所以还必须把离散信号在幅值上也进一步离散化,这一过程就是量化过程 • 量化后的信号是时间上和幅值上都离散的数字量,可以直接送到计算机中进行处理 • 采样:将模拟量变换为离散量,一般包括采样与保持两个步骤 • 量化:将离散量变换成数字量,一般包括量化与编码两个步骤 • 采样与量化是A/D转换的基本过程
A/D转换的基本过程 —采样 • 采样的过程一般是:先使用一个采集电路,按等距离时间间隔,对模拟信号进行采样,然后用保持电路将采集来的信号电平保持一段时间,以便模数转换器正确地将其转换成对应的数字量 • 采样定理:对一个有限频率谱(ω<+ωmax)的连续信号进行采样,当采样频率f≥2fmax时(fmax是输入模拟信号的最高频率),则采样输出信号能无失真地恢复到原来的连续信号。
A/D转换的基本过程 —量化 • 量化过程:把离散信号转变为数字信号的过程 • 量化就是把输入模拟信号f(t)的变化范围划分成若干层,每一层都由一个数字来代表,采样值落到哪一层,就由哪一层的数字来代表。这样,所有的采样值经过“量化”后,就化为了对应的数字量,成为了整数值 • 舍入误差是量化过程中的固有误差,最大偏差等于量化单位的一半。这种误差不可能消除,只能降低,当量化单位取得愈小时,误差愈小
吉林大学远程教育学院 计算机接口技术 主讲人: 赵宏伟 教授 总学时: 32 吉林大学计算机科学与技术学院 第 二十八 讲
A/D转换原理 • A/D转换是将模拟信号转换成数字信号 • A/D转换的方法较多,有计数式、逐次逼近式、双积分式以及并行式转换等 • 计数式最简单,但转换速度很低; • 并行转换速率最快,但需要的器件多,价格高; • 逐次逼近式A/D转换器的速度较高,比较简单,而且价格适中; • 双积分式A/D转换器精度高,抗干扰能力强,但速度低,一般应用在要求精度高而速度不高的场合,例如仪器仪表等
计数式A/D转换器 • 计数式A/D转换器的工作原理是:被测电压和一个均匀增长的斜坡电压不断地作比较,直到二者相等时,比较过程结束,并输出一个代表被测电压值的二进制数值
逐次逼近式A/D转换器 • 工作原理:将被测电压和由D/A转换生成的电压进行比较,但这里D/A转换生成的电压不是线性增长去接近被测电压,而是用对分搜索的方法来逐次逼近被测电压 • 电路内部由4个部分组成:逐次逼近寄存器SAR、D/A转换器、电压比较器和控制逻辑电路
双积分式 A/D转换器 • 工作原理:将一段时间内的模拟电压通过两次积分,转换成与模拟电压成正比的时间间隔,然后利用时钟脉冲和计数器测出此段时间间隔,所得到的计数结果就是输入电压对应的数字值 • 组成:由积分器、过零比较器、计数器和控制电路组成
A/D转换器的主要性能指标 • (1)分辨率:输出数字量变化一个相邻数码所需输入模拟电压的变化量,亦即芯片最低有效位(LSB)相当的模拟电压值 • (2)精度:A/D转换器输出数字量所对应的实际输入电压值与理论上产生该数字量应有的输入电压之差,它反映实际A/D转换器与理想A/D转换器的差别,常用误差表示。精度分为绝对精度和相对精度 • (3)转换时间:转换时间是指完成一次A/D转换所需的时间,即从启动A/D转换器开始工作到转换结束所经历的时间间隔。转换时间的倒数称为转换速率。例如ADC 0809的转换时间为100μs,则转换速率为每秒1万次 • A/D转换器根据转换时间可分为几档: 低速ADC 转换时间 >1ms 中速ADC 转换时间 >1ms~1μs 高速ADC 转换时间 >1ns~1μs 超高速ADC 转换时间 <1ns
8位A/D转换器ADC 0809 • ADC 0809是美国NS公司生产的CMOS组件,8路输入单片A/D转换器,可直接与CPU总线连接,使用非常广泛 • ADC 0809主要特性: 8位分辨率; 电压输入:0~+5V; 转换时间:100μs(640KHz条件); 时钟频率:100KHz~1280KHz,标准时钟为640KHz; 无漏码; 单一电源:+5V; 8路单端模拟量输入通道; 参考电压:+5V; 总的不可调误差:土1LSB; 不需进行零点调整和满量程调整; 可锁存的三态输出
ADC 0809 极性转换电路 • ADC 0809的模拟量输入是单极性的,范围为0~+5V,若实际模拟输入信号是双极性的,比如为-5V~+5V,则需要设计极性转换电路 • 常用的极性转换电路如图所示,若信号源的内阻小,可采用图(a)电路,若信号源的内阻大,可采用图(b)电路
ADC 0809与CPU的接口方法 • A/D转换器与CPU的数据传送控制方式通常有3种: ① 等待方式 ② 查询方式 ③ 中断方式
ADC 0809与CPU等待方式接口 • 等待方式:又称无条件传送方式,向A/D转换器发出启动指令后,进行软件延时(等待),延时时间取决于A/D转换器完成A/D转换所需要的时间,经过延时后读入A/D转换数据 • 在这种方式中,有时为了确保转换完成,不得不把延时时间适当延长,因此,比查询方式转换速度慢,但对硬件接口要求较低,节约系统成本,减小硬件设计量,提高系统可靠性 ;设置通道号0 MOV AL, 00H ;启动0通道进行A/D转换 OUT 84H, AL ;延时100μm,等待A/D转换结束 CALL DELAY100 ;转换结束,读入A/D转换结果 IN AL,84H
ADC 0809与CPU查询方式接口(1) • 程序查询方式:先选通模拟量输入通道,发出启动A/D转换的信号,然后用程序查看EOC状态,若EOC=1,则表示A/D转换已结束,可以读入数据;若EOC=0,则说明A/D转换器正在转换过程中,应继续查询,直到EOC=1为止。
ADC 0809与CPU查询方式接口(2) • DATA SEGMENT • COUNT DB 00H ;采样次数 • NUMBER DB 00H ;通道号 • ADCBUF DB 8 DUP(?) ;采样数据缓冲区 • DATA ENDS • ADCC EQU 84H ;A/D控制口地址 • ADCS EQU 88H ;A/D状态口地址 • CODE SEGMENT • ASSUME CS:CODE,DS:DATA • START: MOV AX, DATA • MOV DS, AX • MOV BX, OFFSET ADCBUF ;设置A/D缓冲区 • MOV CL, COUNT ;设置采样次数设置通道号 • X3: MOV AL, DL • OUT ADDC, AL ;启动 • MOV DL, NUMBER ;ADC 0809相应通道 • X1: IN AL, ADCS ;读取状态口 • TEST AL, 80H ;析取EOC • JNZ X1 ;EOC≠0,ADC 0809未开始转换,等待 • X2: IN AL, ADCS • TEST AL, 80H • JZ X2 ;EOC≠1,ADC 0809未转换完成,等待 • IN AL, ADCC ;读数据 • MOV [BX], AL • INC BX ;指向下一个数据缓冲单元 • INC DL ;指向下一个通道 • INC CL ;采样次数加1 • CMP CL, 08H • JNZ X3 • MOV AX, 4C00H • INT 21H • CODE ENDS • END START • 例 ADC 0809与微处理器之间的查询方式连接如上页图,利用该接口电路,采用查询方式,对现场8路模拟量输入信号循环采集一次,其数据存入数据缓冲区中,程序设计如下:
吉林大学远程教育学院 计算机接口技术 主讲人: 赵宏伟 教授 总学时: 32 吉林大学计算机科学与技术学院 第 二十九 讲
ADC 0809与CPU中断方式接口 • 中断方式: CPU启动A/D转换后,即可转而处理其它事情,比如继续执行主程序的其他任务。一旦A/D转换结束,则由A/D转换器发出转换结束信号,这一信号作为中断请求信号发给CPU,CPU响应中断后,便读入数据 • 中断方式不需花费等待时间,但若中断后,保护现场、恢复现场等一系列操作过于繁锁,所占用的时间和A/D转换的时间相当,则中断方式就失去了它的优越性 • 对于ADC 0809,除非它正处于A/D转换过程中,否则它的EOC就为高电平。而对于有些CPU来说,高电平意味着申请中断(比如8088 CPU的INTR),为了保证ADC 0809的确是在转换完成后产生一次中断,而且仅仅是产生一次中断,应重新设计一个中断逻辑电路。 • 当然,如果系统中没有其他的中断源,也可以只用软件的方法解决这个问题,其方法是:先启动ADC 0809,延迟一小段时间后开中断,然后执行其它程序,当CPU响应中断后,系统自动关中断,在下一次启动前不再开放,以保证每一次A/D转换后只响应一次。下一次A/D转换依此循环