第八章 外部输入输出扩展.ppt

上传人:registerpick115 文档编号:374755 上传时间:2018-10-06 格式:PPT 页数:50 大小:560KB
下载 相关 举报
第八章 外部输入输出扩展.ppt_第1页
第1页 / 共50页
第八章 外部输入输出扩展.ppt_第2页
第2页 / 共50页
第八章 外部输入输出扩展.ppt_第3页
第3页 / 共50页
第八章 外部输入输出扩展.ppt_第4页
第4页 / 共50页
第八章 外部输入输出扩展.ppt_第5页
第5页 / 共50页
亲,该文档总共50页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、2018/10/6,1,第八章 外部输入输出扩展,8.1 开关量接口 8.2 模拟信号输入通道 8.3 模拟信号输出通道,2018/10/6,2,8.1 开关量接口,开关量的输入与输出,从原理上讲十分简单。CPU只要通过对输入信息分析是“1”还是“0”,即可知开关是合上还是断开。如果控制某个执行器的工作状态,只需送出“0”或“1”,即可由操作机构执行。但是由于工业现场存在着电、磁、振动、温度等各种干扰及各类执行器所要求的开关电压量级及功率不同,所以在接口电路中除根据需要选用不同的元器件外,还需要采用各种缓冲、隔离与驱动措施。,2018/10/6,3,8.1 开关量接口,由于单片机输出的TTL信

2、号驱动能力较小,因此经常需要配置专门电路,以提高驱动能力。有时外电路需要较高的逻辑电平,所以也需要电平转换。 1. 单向驱动电路在输出地址信号或单向开关控制信号时,可使用单向驱动电路,常用的有74LS04,74LS125/126等。在多路TTL信号输出时,一般选用三态门电路,譬如74LS240/241/244等。下面以74LS244为例说明单向驱动电路的使用。,2018/10/6,4,8.1 开关量接口,2. 双向驱动电路常用的双向驱动电路有74LS242/243/245等。74LS245由双向三态门电路构成,在多路数据输入输出时用作数据总线驱动器。 3. OC门驱动电路OC门电路可由晶体管构

3、成,也可选用TTL OC门,如7405/06/07、7416/17等。这些OC门都具有高压输出功能,除用于提高驱动能力外,还可实现电平变换,驱动MOS电路。7407驱动PMOS电路,最高输出电压可达30V。,2018/10/6,5,8.1.1 开关量输入接口,一、扳键开关与单片机的接口,2018/10/6,6,8.1.1 开关量输入接口,P1_0= 0; X = XBYTE0; If(p0_0) ; Else ; If(p0_1) ; Else ; If(p0_2) ; Else ; If(p0_3) ; Else ;,If(p0_4) ; Else ; If(p0_5) ; Else ; I

4、f(p0_6) ; Else ; If(p0_7) ; Else ;,2018/10/6,7,8.1.1 开关量输入接口,二、拨盘开关与单片机的接口,2018/10/6,8,8.1.1 开关量输入接口,P1_0= 0; X = XBYTE0; X1 = P0 ,2018/10/6,9,8.1.2 开关量输出接口,光耦合器是以光为媒介传输信号的器件,它把一个发光二极管和一个光敏三极管封装在一个管壳内,发光二极管加上正向输入电压信号(1.1V)就会发光,光信号作用在光敏三极管基极产生基极光电流使三极管导通,输出电信号。,一、输出接口隔离,2018/10/6,10,8.1.2 开关量输出接口,主要特

5、性参数有以下几个方面: (1)导通电流和截止电流:对于开关量输出场合,光电隔离主要用其非线性输出特性。当发光二极管二端通以一定电流时,光耦合器输出端处于导通状态;当流过发光二极管的电流小于某一值时,光耦合器输出端截止。不同的光耦合器通常有不同的导通电流,一般典型值为10mA。 (2)频率响应:受发光二极管和光敏三极管响应时间的影响,开关信号传输速度和频率受光耦合器频率特性的影响。因此,在高频信号传输中要考虑其频率特性。在开关量输出通道中,输出开关信号频率一般较低,不会受光耦合器频率特性影响。,2018/10/6,11,8.1.2 开关量输出接口,(3)输出端工作电流:是指光耦合器导通时,流过光

6、敏三极管的额定电流。该值表示了光耦合器的驱动能力,一般为mA量级。 (4)输出端暗电流:是指光耦合器处于截止状态时输出端流过的电流。对光耦合器来说,此值越小越好,以防止输出端的误触发。 (5)输入输出压降:分别指发光二极管和光敏三极管的导通压降。 (6)隔离电压:表示了光耦合器对电压的隔离能力。,光耦合器二极管侧的驱动可直接用门电路去驱动,一般的门电路驱动能力有限,常用带OC门的电路(如7406、7407)进行驱动。,2018/10/6,12,8.1.2 开关量输出接口,继电器方式的开关量输出,是目前最常用的一种输出方式,一般在驱动大型设备时,往往利用继电器作为测控系统输出至输出驱动级之间的第

7、一级执行机构。通过该级继电器输出,可完成从低压直流到高压交流的过渡。 由于继电器的控制线圈有一定的电感,在关断瞬间会产生较大的反电势,因此在继电器的线圈上常常反向并联一个二极管用于电感反向放电,以保护驱动晶体管不被击穿。 不同的继电器,允许驱动电流也不一样。对于需要较大驱动电流的继电器,可以采用达林顿输出的光隔直接驱动;也可以在光耦与继电器之间再加一级三极管驱动。,二、继电器输出接口,2018/10/6,13,8.1.2 开关量输出接口,双向晶闸管具有双向导通功能,能在交流、大电流场合使用,且开关无触点,因此在工业控制领域有着极为广泛的应用。传统的双向晶闸管隔离驱动电路的设计,是采用一般的光隔

8、离器和三极管驱动电路。现在已有与之配套的光隔离器产品,这种器件称为光耦合双向晶闸管驱动器。 与一般的光耦不同,在于其输出部分是一硅光敏双向晶闸管,有的还带有过零触发检测器,以保证在电压接近为零时触发晶闸管。常用的有MOC3000系列等,运用于不同负载电压使用,如MOC3011用于110V交流,而MOC3041等可适用于220V交流使用,用MOC3000系列光电耦合器直接驱动双向晶闸管,大大简化了传统的晶闸管隔离驱动电路的设计。,三、双向晶闸管输出接口,2018/10/6,14,8.1.2 开关量输出接口,固态继电器(SSR)是近年发展起来的一种新型电子继电器,其输入控制电流小,用TTL、HTL

9、、COMS等集成电路或加简单的辅助电路就可直接驱动,因此适宜于在微机测控系统中作为输出通道的控制元件;其输出利用晶体管或晶闸管驱动,无触点。 与普通的电磁式继电器和磁力开关相比,具有无机械噪声、无抖动和回跳、开关速度快、体积小、重量轻、寿命长、工作可靠等特点,并且耐冲力、抗潮湿、抗腐蚀,因此在微机测控等领域中,已逐步取代传统的电磁式继电器和磁力开关作为开关量输出控制元件。,四、固态继电器输出接口,2018/10/6,15,8.1.2 开关量输出接口,固态继电器由光电耦合电路、触发电路、开关电路、过零控制电路和吸收电路五部分构成。这五部分被封装在一个六面体外壳内,成为一个整体,外面有四个引脚(图

10、中的、)。如果是过零型SSR 就包括“过零控制电路”部分,而非过零型SSR则没有这部分电路。,2018/10/6,16,8.1.2 开关量输出接口,直流型固态继电器主要用于直流大功率控制场合。其输入端为一光电耦合电路,因此可用OC门或晶体管直接驱动,驱动电流一般330mA,输入电压为530V,因此在电路设计时可选用适当的电压和限流电阻。其输出端为晶体管输出,输出电压30180V。,1、直流型固态继电器,注意在输出端为感性负载时,要接保护二极管用于防止直流固态继电器由于突然截止所引起的高电压。,2018/10/6,17,8.1.2 开关量输出接口,交流型固态继电器分为非过零型和过零型,二者都是用

11、双向晶闸管作为开关器件,用于交流大功率驱动场合。 非过零型SSR,在输入信号时,不管负载电源电压相位如何,负载端立即导通;而过零型必须在负载电源电压接近零且输入控制信号有效时,输出端负载电源才导通,可以抑制射频干扰。当输入端的控制电压撤消后,流过双向晶闸管负载电流为零时才关断。,、交流型固态继电器,2018/10/6,18,8.1.2 开关量输出接口,过零型,基本控制,非过零型,TTL控制,2018/10/6,19,在测量和工业实时控制中,经常需要对现场物理量进行测量,或者采集下来进行处理。这就需要构成一个模拟信号的输入通道,如图所示。,8.2 模拟信号输入通道,2018/10/6,20,8.

12、2.1 A/D转换器的主要技术指标,1、分辨率 ADC的分辨率是指使输出数字量变化一个相邻数码所需输入模拟电压的变化量。常用二进制的位数表示。例如12位ADC的分辨率就是12位,或者说分辨率为满刻度FS的1/ 。一个10V满刻度的12位ADC能分辨输入电压变化最小值是10V1/ =2.4mV。,2018/10/6,21,8.2.1 A/D转换器的主要技术指标,量化误差 ADC把模拟量变为数字量,用数字量近似表示模拟量,这个过程称为量化。量化误差是ADC的有限位数对模拟量进行量化而引起的误差。实际上,要准确表示模拟量,ADC的位数需很大甚至无穷大。一个分辨率有限的ADC的阶梯状转换特性曲线与具有

13、无限分辨率的ADC转换特性曲线(直线)之间的最大偏差即是量化误差。,2018/10/6,22,8.2.1 A/D转换器的主要技术指标,偏移误差是指输入信号为零时,输出信号不为零的值,所以有时又称为零值误差。假定ADC没有非线性误差,则其转换特性曲线各阶梯中点的连线必定是直线,这条直线与横轴相交点所对应的输入电压值就是偏移误差。 满刻度误差又称为增益误差。ADC的满刻度误差是指满刻度输出数码所对应的实际输入电压与理想输入电压之差。,2018/10/6,23,8.2.1 A/D转换器的主要技术指标,线性度有时又称为非线性度,它是指转换器实际的转换特性与理想直线的最大偏差。 绝对精度 在一个转换器中

14、,任何数码所对应的实际模拟量输入与理论模拟输入之差的最大值,称为绝对精度。对于ADC而言,可以在每一个阶梯的水平中点进行测量,它包括了所有的误差。 转换速率 ADC的转换速率是能够重复进行数据转换的速度,即每秒转换的次数。而完成一次A/D转换所需的时间(包括稳定时间),则是转换速率的倒数。,2018/10/6,24,必要性1. 任何运放都具有零漂和温漂,影响测量精度2. 低温漂、零漂的器件价格高3. 前置放大器的放大倍数与反馈电阻精度相关,往往需要高精度的电阻,带来放大倍数不准确,8.2.2 自校正测量电路,2018/10/6,25,8.2.2 自校正测量电路设计,2018/10/6,26,C

15、PU控制多路开关,分时测量基准点压Vref、测量信号Vin、零点Vgnd, 经A/D转换得到的数字量分别为Mref、Min和Mgnd。 则测量信号Vin的测量值M为,可以看出,测量值与放大器的放大倍数无关,从而消除了放大倍数随时间、温度的变化而带来的测量精度问题。 将零点剪掉,具有良好的抑制零漂,8.2.2自校正测量电路工作原理,2018/10/6,27,#define ADCResult XBYTE0xfffe #define SelectChan P1 #define Vcal 5.0 sbit ADOver P17; sbit ADStart P16; unsigned int Vgnd

16、,Vin,Vref; float Vm;main() unsigned char i;,for(i=0;i2;i+) ADStart = 0;ADStart = 1;while(ADOver = 0) ;if(i = 0) Vref = ADCResult;elseif(i = 1) Vin = ADCResult;else Vgnd = ADCResult; Vm = (float)(Vin Vgnd) / (float)(Vref - Vgnd) Vm = Vm * Vcal; ,8.2.2自校正测量程序,2018/10/6,28,采样得到的数据必须经过数据处理,才能用于显示、控制等。,标

17、度变换(工程量变换)数字滤波其他,8.2.3 数据处理,2018/10/6,29,经过A/D转换得到的不具有量纲的数字量转换成具有量纲的数值。线形参数标度变换,其中:A0 为参数量程的起点值,一次测量仪表的下限Am 为参数量程的终点值,一次测量仪表的上限Ax 为参数测量值,工程量N0 为量程起点对应的A/D转换后的值,仪表下限对应的数字量Nm 为量程终点对应的A/D转换后的值,仪表上限对应的数字量Nx 为测量值对应的A/D转换后的值,8.2.3 数据处理,一、标度变换,2018/10/6,30,非线性情况比较复杂,通常采用查表法,或分段线性化的方法,8.2.3 数据处理,非线形参数标度变换,2

18、018/10/6,31,测量过程的干扰噪声主要有两大类:工频干扰、随机干扰。,限幅滤波中位值滤波法算术平均滤波法递推平均滤波法(又称滑动平均滤波法)中位值平均滤波法(又称防脉冲干扰平均滤波法),限幅平均滤波法一阶滞后滤波法加权递推平均滤波法消抖滤波法,8.2.3 数据处理,二、数字滤波,2018/10/6,32,数字滤波的设计,1算术平均值法 算术平均值法就是对某一点的数值连续多次采样,取其算术平均值。适用于一般信号本身在一定数值范围附近上下波动的情况。算术平均值滤波,一般多次采样取35次即可。 2中值滤波法中值滤波就是连续采集N个数据,从中选取一个中间值作为该点的采样结果。,8.2.3 数据

19、处理,2018/10/6,33,算数平均值滤波程序,#define N 12 char filter() int sum = 0; for ( count=0;countN;count+) sum + = get_ad(); delay(); return (char)(sum/N); ,8.2.3 数据处理,2018/10/6,34,中位值滤波程序,/* N值可根据实际情况调整 排序采用冒泡法*/ #define N 11 char filter() char value_bufN; char count,i,j,temp; for ( count=0;countN;count+) valu

20、e_bufcount = get_ad(); delay(); ,for (j=0;jvalue_bufi+1 ) temp = value_buf; value_buf = value_bufi+1; value_bufi+1 = temp; return value_buf(N-1)/2; ,8.2.3 数据处理,2018/10/6,35,3防脉冲干扰平均值滤波法 单片机应用系统经常会遇到尖脉冲干扰。干扰通常只影响个别采样点的数据,此数据与其他采样点的数据相差比较大。如果采用防脉冲干扰平均值滤波法,即对采样的N个数据进行比较,去掉其中最大值和最小值,然后计算余下的平均值。可以滤去脉冲干扰所

21、形成的最大和最小数据。 4滑动平均值滤波法 滑动平均值滤波法采用队列作为测量数据存储器,队列的队长为N,每进行一次新的测量,把测量结果放入队尾,而扔掉原来队首的一个数据,这样在队列中始终有N个数据。对N个数据求算术平均值,就可得到测量结果。,8.2.3 数据处理,2018/10/6,36,限幅滤波程序,/* A值可根据实际情况调整 value为有效值,new_value为当前采样值 滤波程序返回有效的实际值 */ #define A 10 char value; char filter() char new_value; new_value = get_ad(); if ( ( new_val

22、ue - value A ) | ( value - new_value A ) return value; return new_value; ,8.2.3 数据处理,2018/10/6,37,递推平均值滤波程序,#define N 12 char value_bufN; char i=0; char filter() char count; int sum=0; value_bufi+ = get_ad(); if ( i = N ) i = 0; for ( count=0;countN,count+) sum = value_bufcount; return (char)(sum/N)

23、; ,8.2.3 数据处理,2018/10/6,38,中位值平均滤波程序,#define N 12 char filter() char count,i,j; char value_bufN; int sum=0; for (count=0;countN;count+) value_bufcount = get_ad(); delay(); ,for (j=0;jvalue_bufi+1 ) temp = value_buf; value_buf = value_bufi+1; value_bufi+1 = temp; for(count=1;countN-1;count+) sum += v

24、aluecount; return (char)(sum/(N-2); ,8.2.3 数据处理,2018/10/6,39,5一阶低通滤波法 一阶低通滤波法就是利用软件完成RC低通滤波器的算法,这种方法适用于变化缓慢数据采集系统。用RC低通滤波器来抑制高频干扰,只保存低频有用信号。一阶低通数字滤波器的公式为:Yn = ( 1 - K ) Yn-1+ K Xn 式中: K:数字滤波器的时间常数;Xn:第n次采样时的滤波器输入;Yn:第n次采样时的滤波器输出。,8.2.3 数据处理,2018/10/6,40,一阶滞后滤波程序(低通滤波),#define a 50 char value; char f

25、ilter() char new_value; new_value = get_ad(); return (100-a)*value + a*new_value) / 100; ,8.2.3 数据处理,2018/10/6,41,加权递推平均滤波程序,/* coe数组为加权系数表,存在程序存储区。*/ #define N 12 char code coeN = 1,2,3,4,5,6,7,8,9,10,11,12; char code sum_coe = 1+2+3+4+5+6+7+8+9+10+11+12; char filter() char count; char value_bufN;

26、int sum=0; for (count=0,countN;count+) value_bufcount = get_ad(); delay(); ,for (count=0,countN;count+) sum += value_bufcount*coecount; return (char)(sum/sum_coe); ,8.2.3 数据处理,2018/10/6,42,消抖滤波程序,#define N 12 char filter() char count=0; char new_value; new_value = get_ad(); while (value !=new_value)

27、; count+; if (count=N) return new_value; delay(); new_value = get_ad(); return value; ,8.2.3 数据处理,2018/10/6,43,在控制系统中,计算机采集到的数据往往需要输出;或经过控制算法计算后输出控制信号用于调节或控制受控对象。在很多情况下,计算机系统需要输出模拟量信号。,为适应信号远传需要,需要把计算机经D/A输出的电压信号转换成受控对象所需要的电流信号。工业常用信号:,0-10mA4-20mA,8.3 模拟信号输出通道,2018/10/6,44,8.3.1 D/A转换器的主要性能指标,分辨率 分

28、辨率是指输入数字量的最低有效位(LSB)发生变化时,所对应的输出模拟量(常为电压)的变化量。它反映了输出模拟量的最小变化值。 分辨率与输入数字量的位数有确定的关系,可以表示成FS / 。FS表示满量程输入值,n为二进制位数。对于5V的满量程,采用位的DAC时,分辨率为5V/25619.5mV;当采用12位的DAC时,分辨率则为5V/40961.22mV。显然,位数越多分辨率就越高。 线性度 线性度(也称非线性误差)是实际转换特性曲线与理想直线特性之间的最大偏差。常以相对于满量程的百分数表示。如是指实际输出值与理论值之差在满刻度的以内。,2018/10/6,45,8.3.1 D/A转换器的主要性

29、能指标,绝对精度(简称精度)是指在整个刻度范围内,任一输入数码所对应的模拟量实际输出值与理论值之间的最大误差。绝对精度是由DAC的增益误差(当输入数码为全1时,实际输出值与理想输出值之差)、零点误差(数码输入为全时,DAC的非零输出值)、非线性误差和噪声等引起的。绝对精度(即最大误差)应小于1个LSB。 相对精度与绝对精度表示同一含义,用最大误差相对于满刻度的百分比表示。,2018/10/6,46,8.3.1 D/A转换器的主要性能指标,建立时间是指输入的数字量发生满刻度变化时,输出模拟信号达到满刻度值的1/2LSB所需的时间。是描述D/A转换速率的一个动态指标。 电流输出型DAC的建立时间短

30、。电压输出型DAC的建立时间主要决定于运算放大器的响应时间。根据建立时间的长短,可以将DAC分成超高速(1S)、高速(101S)、中速(10010S)、低速(100S)几档。 应当注意,精度和分辨率具有一定的联系,但概念不同。DAC的位数多时,分辨率会提高,对应于影响精度的量化误差会减小。但其它误差(如温度漂移、线性不良等)的影响仍会使DAC的精度变差。,2018/10/6,47,1. 05V电压转换电流输出电路05V电压转换电流输出电路可把05V直流电压信号转换成010mA的电流信号。该电路是一种电压比较型跟随器,当VfVIN时,运算放大器A1使输出V1下降,A2输出的V2上升,IL增大,于

31、是Vf上升。当VfVIN时,A1的输出V1上升,A2的输出V2下降,IL减小,于是Vf下降。由此可见,当VfVIN时输出量自动调节,使Vf=VIN,于是 。当R7、W稳定性好,运算放大器A1、A2有较高的增益时,有较高的线性精度。当R7+W=500时,输出电流IL为010mA。,8.3.2 电压输出通道,2018/10/6,48,8.3.3 电流输出通道,2018/10/6,49,2.010V电压转换电流输出电路 把010V直流电压信号转换成010mA的直流电流输出电路。该电路实际上是一种电压电流变换器,其输出电流与输入电压有着良好的线性关系。图中运算放大器接成差动输入方式,起比较器的作用,把输入信号VIN与反馈信号Vf进行比较。晶体管BG1、BG2构成电流输出级。输出电流I0经电阻Rf得到反馈电压Vf,再经R3、R4加到运算放大器的两个输入端。由于有较强的电流负反馈,所以可获得良好的线性关系。反馈电阻的值与信号范围有关,当IIN=010V时,Rf=200,则IO=010mA。R1、R2的参考值为100K,R3、R4的参考值为20K。,8.3.3 电流输出通道,2018/10/6,50,3.几种电压转换电流输出电路,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教学课件 > 大学教育

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1