2020/1/181第八章外部输入输出扩展8.1开关量接口8.2模拟信号输入通道8.3模拟信号输出通道2020/1/1828.1开关量接口缓冲隔离驱动2020/1/1838.1.1开关量缓冲驱动单向驱动电路在输出地址信号或单向开关控制信号时,可使用单向驱动电路,常用的有74LS04,74LS125/126等。在多路TTL信号输出时,一般选用三态门电路,譬如74LS240/241/244等。双向驱动电路常用的双向驱动电路有74LS242/243/245等。74LS245由双向三态门电路构成,在多路数据输入输出时用作数据总线驱动器。2020/1/1848.1开关量缓冲驱动OC门驱动电路OC门电路可由晶体管构成,也可选用TTLOC门,如7405/06/07、7416/17等。这些OC门都具有高压输出功能,除用于提高驱动能力外,还可实现电平变换,驱动MOS电路。7407驱动PMOS电路,最高输出电压可达30V。RPMOS7407+10V-5V1K7407与PMOS电路的联接C0.1μF2020/1/1858.1.2开关量隔离光耦合器是以光为媒介传输信号的器件,它把一个发光二极管和一个光敏三极管封装在一个管壳内,发光二极管加上正向输入电压信号(>1.1V)就会发光,光信号作用在光敏三极管基极产生基极光电流使三极管导通,输出电信号。光耦隔离2020/1/1868.1.2开关量输出接口主要特性参数有以下几个方面:(1)导通电流和截止电流:对于开关量输出场合,光电隔离主要用其非线性输出特性。当发光二极管二端通以一定电流时,光耦合器输出端处于导通状态;当流过发光二极管的电流小于某一值时,光耦合器输出端截止。不同的光耦合器通常有不同的导通电流,一般典型值为10mA。(2)频率响应:受发光二极管和光敏三极管响应时间的影响,开关信号传输速度和频率受光耦合器频率特性的影响。因此,在高频信号传输中要考虑其频率特性。在开关量输出通道中,输出开关信号频率一般较低,不会受光耦合器频率特性影响。2020/1/1878.1.2开关量接口隔离(3)输出端工作电流:是指光耦合器导通时,流过光敏三极管的额定电流。该值表示了光耦合器的驱动能力,一般为mA量级。(4)输出端暗电流:是指光耦合器处于截止状态时输出端流过的电流。对光耦合器来说,此值越小越好,以防止输出端的误触发。(5)输入输出压降:分别指发光二极管和光敏三极管的导通压降。(6)隔离电压:表示了光耦合器对电压的隔离能力。光耦合器二极管侧的驱动可直接用门电路去驱动,一般的门电路驱动能力有限,常用带OC门的电路(如7406、7407)进行驱动。2020/1/1888.1.2开关量接口隔离继电器方式的开关量输出,是目前最常用的一种输出方式,一般在驱动大型设备时,往往利用继电器作为测控系统输出至输出驱动级之间的第一级执行机构。通过该级继电器输出,可完成从低压直流到高压交流的过渡。由于继电器的控制线圈有一定的电感,在关断瞬间会产生较大的反电势,因此在继电器的线圈上常常反向并联一个二极管用于电感反向放电,以保护驱动晶体管不被击穿。不同的继电器,允许驱动电流也不一样。对于需要较大驱动电流的继电器,可以采用达林顿输出的光隔直接驱动;也可以在光耦与继电器之间再加一级三极管驱动。继电器隔离2020/1/1898.1.2开关量接口驱动双向晶闸管具有双向导通功能,能在交流、大电流场合使用,且开关无触点,因此在工业控制领域有着极为广泛的应用。传统的双向晶闸管隔离驱动电路的设计,是采用一般的光隔离器和三极管驱动电路。现在已有与之配套的光隔离器产品,这种器件称为光耦合双向晶闸管驱动器。与一般的光耦不同,在于其输出部分是一硅光敏双向晶闸管,有的还带有过零触发检测器,以保证在电压接近为零时触发晶闸管。常用的有MOC3000系列等,运用于不同负载电压使用,如MOC3011用于110V交流,而MOC3041等可适用于220V交流使用,用MOC3000系列光电耦合器直接驱动双向晶闸管,大大简化了传统的晶闸管隔离驱动电路的设计。双向晶闸管输出接口2020/1/18108.1.2开关量接口驱动固态继电器(SSR)是近年发展起来的一种新型电子继电器,其输入控制电流小,用TTL、HTL、COMS等集成电路或加简单的辅助电路就可直接驱动,因此适宜于在微机测控系统中作为输出通道的控制元件;其输出利用晶体管或晶闸管驱动,无触点。与普通的电磁式继电器和磁力开关相比,具有无机械噪声、无抖动和回跳、开关速度快、体积小、重量轻、寿命长、工作可靠等特点,并且耐冲力、抗潮湿、抗腐蚀,因此在微机测控等领域中,已逐步取代传统的电磁式继电器和磁力开关作为开关量输出控制元件。固态继电器输出接口2020/1/18118.1.2开关量接口驱动固态继电器由光电耦合电路、触发电路、开关电路、过零控制电路和吸收电路五部分构成。这五部分被封装在一个六面体外壳内,成为一个整体,外面有四个引脚(图中的A、B、C、D)。如果是过零型SSR就包括“过零控制电路”部分,而非过零型SSR则没有这部分电路。2020/1/18128.1.2开关量接口驱动直流型固态继电器主要用于直流大功率控制场合。其输入端为一光电耦合电路,因此可用OC门或晶体管直接驱动,驱动电流一般3~30mA,输入电压为5~30V,因此在电路设计时可选用适当的电压和限流电阻R。其输出端为晶体管输出,输出电压30~180V。1、直流型固态继电器注意在输出端为感性负载时,要接保护二极管用于防止直流固态继电器由于突然截止所引起的高电压。2020/1/18138.1.2开关量接口驱动交流型固态继电器分为非过零型和过零型,二者都是用双向晶闸管作为开关器件,用于交流大功率驱动场合。非过零型SSR,在输入信号时,不管负载电源电压相位如何,负载端立即导通;而过零型必须在负载电源电压接近零且输入控制信号有效时,输出端负载电源才导通,可以抑制射频干扰。当输入端的控制电压撤消后,流过双向晶闸管负载电流为零时才关断。2、交流型固态继电器2020/1/18148.1.2开关量接口驱动过零型基本控制非过零型TTL控制2020/1/1815在测量和工业实时控制中,经常需要对现场物理量进行测量,或者采集下来进行处理。这就需要构成一个模拟信号的输入通道,如图所示。单片机或微处理器低通滤波采样保持A/D转换传感器前置放大模拟输入通道8.2模拟信号输入通道2020/1/18168.2.1A/D转换器的主要技术指标1、分辨率ADC的分辨率是指使输出数字量变化一个相邻数码所需输入模拟电压的变化量。常用二进制的位数表示。例如12位ADC的分辨率就是12位,或者说分辨率为满刻度FS的1/。一个10V满刻度的12位ADC能分辨输入电压变化最小值是10V×1/=2.4mV。2020/1/18178.2.1A/D转换器的主要技术指标量化误差ADC把模拟量变为数字量,用数字量近似表示模拟量,这个过程称为量化。量化误差是ADC的有限位数对模拟量进行量化而引起的误差。实际上,要准确表示模拟量,ADC的位数需很大甚至无穷大。一个分辨率有限的ADC的阶梯状转换特性曲线与具有无限分辨率的ADC转换特性曲线(直线)之间的最大偏差即是量化误差。2020/1/18188.2.1A/D转换器的主要技术指标偏移误差是指输入信号为零时,输出信号不为零的值,所以有时又称为零值误差。假定ADC没有非线性误差,则其转换特性曲线各阶梯中点的连线必定是直线,这条直线与横轴相交点所对应的输入电压值就是偏移误差。满刻度误差又称为增益误差。ADC的满刻度误差是指满刻度输出数码所对应的实际输入电压与理想输入电压之差。2020/1/18198.2.1A/D转换器的主要技术指标线性度有时又称为非线性度,它是指转换器实际的转换特性与理想直线的最大偏差。绝对精度在一个转换器中,任何数码所对应的实际模拟量输入与理论模拟输入之差的最大值,称为绝对精度。对于ADC而言,可以在每一个阶梯的水平中点进行测量,它包括了所有的误差。转换速率ADC的转换速率是能够重复进行数据转换的速度,即每秒转换的次数。而完成一次A/D转换所需的时间(包括稳定时间),则是转换速率的倒数。2020/1/1820必要性1.任何运放都具有零漂和温漂,影响测量精度2.低温漂、零漂的器件价格高3.前置放大器的放大倍数与反馈电阻精度相关,往往需要高精度的电阻,带来放大倍数不准确8.2.2自校正测量电路2020/1/1821多路开关放大器A/DCPUVrefVinVgnd8.2.2自校正测量电路—设计2020/1/1822CPU控制多路开关,分时测量基准点压Vref、测量信号Vin、零点Vgnd,经A/D转换得到的数字量分别为Mref、Min和Mgnd。则测量信号Vin的测量值M为refgndrefgndinVMMMMM可以看出,测量值与放大器的放大倍数无关,从而消除了放大倍数随时间、温度的变化而带来的测量精度问题。将零点剪掉,具有良好的抑制零漂8.2.2自校正测量电路—工作原理2020/1/1823#defineADCResultXBYTE[0xfffe]#defineSelectChanP1#defineVcal5.0sbitADOverP1^7;sbitADStartP1^6;unsignedintVgnd,Vin,Vref;floatVm;main(){unsignedchari;for(i=0;i2;i++){ADStart=0;ADStart=1;while(ADOver==0);if(i==0)Vref=ADCResult;elseif(i==1)Vin=ADCResult;elseVgnd=ADCResult;}Vm=(float)(Vin–Vgnd)/(float)(Vref-Vgnd)Vm=Vm*Vcal;}8.2.2自校正测量程序2020/1/1824采样得到的数据必须经过数据处理,才能用于显示、控制等。标度变换(工程量变换)数字滤波其他8.2.3数据处理2020/1/1825经过A/D转换得到的不具有量纲的数字量转换成具有量纲的数值。线形参数标度变换0000NNNNAAAAmxmx其中:A0为参数量程的起点值,一次测量仪表的下限Am为参数量程的终点值,一次测量仪表的上限Ax为参数测量值,工程量N0为量程起点对应的A/D转换后的值,仪表下限对应的数字量Nm为量程终点对应的A/D转换后的值,仪表上限对应的数字量Nx为测量值对应的A/D转换后的值8.2.3数据处理一、标度变换2020/1/1826非线性情况比较复杂,通常采用查表法,或分段线性化的方法8.2.3数据处理非线形参数标度变换2020/1/1827测量过程的干扰噪声主要有两大类:工频干扰、随机干扰。限幅滤波中位值滤波法算术平均滤波法递推平均滤波法(又称滑动平均滤波法)中位值平均滤波法(又称防脉冲干扰平均滤波法)限幅平均滤波法一阶滞后滤波法加权递推平均滤波法消抖滤波法8.2.3数据处理二、数字滤波2020/1/1828数字滤波的设计1.算术平均值法算术平均值法就是对某一点的数值连续多次采样,取其算术平均值。适用于一般信号本身在一定数值范围附近上下波动的情况。算术平均值滤波,一般多次采样取3~5次即可。2.中值滤波法中值滤波就是连续采集N个数据,从中选取一个中间值作为该点的采样结果。8.2.3数据处理2020/1/1829算数平均值滤波程序#defineN12charfilter(){intsum=0;for(count=0;countN;count++){sum+=get_ad();delay();}return(char)(sum/N);}8.2.3数据处理2020/1/1830中位值滤波程序/*N值可根据实际情况调整排序采用冒泡法*/#defineN11charfilter(){charvalue_buf[N];charcount,i,j,temp;for(count=0;