开关量的输入与输出,从原理上来讲十分简单。CPU只要通过信息分析是1还是0,即可知开关是否是合上还是断开。如果控制某个执行器的工作状态,只需送出0或1,即可由操作机构执行。但是由于工业现场存在电、磁、振动、温度等各种干扰及各类执行器所要求的开关电压量级及功率不同,所以在接口电路中除根据需要选用不同的元器件之外,还需要采用各种缓冲、隔离与驱动措施。
开关量输入接口
1.扳键开关与单片机的接口
扳键开关(或钮子开关类器件)可将高电平或低电平经单片机的I/O引脚置入单片机,以实现操作分档、参数设定等人机联系的功能。
图10-19与后面的程序是扳键类开关应用的示例:根据8个开关中哪一个开关闭合并使相应口线为低电平而转去执行相应的个工作程序。各开关通过扩展输入口74LS244与80C51的P0口连接,开关合上时将向P0口的相应引脚送低电平;反之,开关打开时送高电平。
图10-19扳键开关与单片机的接口
读扳键开关状态程序段:
2.拨盘开关与单片机的接口
(1)拨盘开关
拨盘开关有很多种,常见的是BCD码拨盘开关,如图10-20所示。拨动正面的拨盘,可制定一个十进制数(在开关正面有该数的数码指示),并转换成BCD码(呈现在背面8、4、2、1引脚上)而输入计算机。拨盘开关用于参数设定,非常直观方便。
若引脚A接高电平,当置定某十进制数时,拨动拨盘会使引脚A与8、4、2、1四个引脚有一定的接通关系,与引脚A接通的将输出高电平,不与引脚A接通的输出低电平,从而转换成与该十进制数相当的BCD码(8421码)。例如,拨置数字5时,8、4、2、1脚输出数字编码0101,其他类推。
当然也可反过来,即引脚A接低电平,这时得到的是与十进制数相当的BCD码的反码。将所得的码取反后可以获得相应的BCD码。这种接法也比较多见。
如要将n位十进制数置入计算机,就需要使用n片拨盘开关并列在一起,组合成一个拨盘开关组。
(2)拨盘开关接口示例
图10-20是两片拨盘开关接口示例:通过拨盘开关将2位十进制数置入单片机,其十位数与个位数读入后将分别暂存于片内RAM的21H、20H单元。
接口程序如下:
3.输出口的隔离
在单片机应用系统中,为防止现场强电磁的干扰或工频电压通过输出通道反串到测控系统,一般采用通道隔离技术。输出通道的隔离最常用的组件是光耦合器,简称光耦。
光耦合器是以光为媒介传输信号的器件,它把一个发光二极管和一个光敏二极管封装在一个管壳内,发光二极管加上正向输入电压信号(>1.1V)就会发光,光信号作用在光敏三极管基极光电流使三极管导通,输出电信号。如图10-21所示。
图10-21 光耦合器 图10-22 继电器输出接口
光耦合器的输入电路与输出电路是绝缘的。一个光耦合器可以完成一路开关量的隔离,如果将光耦合器8个或16个一起使用,就能实现8位数据或16位数据的隔离。
光电耦合器的输入侧都是发光二极管,但是输出侧有多种结构,如光敏晶体管、达林顿型晶体管、TTL逻辑电路以及光敏可控硅等。光耦合器的具体参数可查阅有关的产品手册,其主要特性参数有以下几个方面:
①导通电流和截止电流:对于开关量输出场合,光电隔离主要用其线性输出特性。当发光二极管两端通以一定电流时,光耦合器输出端处于导通状态;当流过发光二极管的电流小于某一值时,光耦合器输出端截止。不同的光耦合器通常有不同的导通电流,一般典型值为10mA。
②频率响应:由于受发光二极管和光敏二极管响应时间的影响,开关信号传输速度和频率受光耦合器频率特性的影响。因此,在高频信号传输中要考虑其频率特性。在开关量输出通道中,输出开关信号频率一般较低,不会受光耦合器频率特性影响。
③输出端工作电流:是指光耦合器导通时,流过光敏三极管的额定电流。该值表示了光耦合器的驱动能力,一般为mA量级。
④输出端暗电流:是指光耦合器处于截止状态时输出端流过的电流。对光耦合器来说,此值越小越好,以防止输出端的误触发。
⑤输入输出压降:分别指发光二极管和光敏三极管的导通压降。
⑥隔离电压:表示了光耦合器对电压的隔离能力。
光耦合器二极管侧的驱动可直接用门电路去驱动,一般的门电路驱动能力有限,常用带OC门的电路(如7406、7407)进行驱动。
4.继电器输出接口
继电器方式的开关量输出,是目前最常用的一种输出方式,一般在驱动大型设备时,往往利用继电器作为测控系统输出至输出驱动级之间的第一级执行机构。通过该级继电器输出,可完成从低压直流到高压直流的过度。如图10-22所示,在经光耦合器光电隔离后,直流部分给继电器控制线圈供电,而其输出触点则可直接于220V市电相接。由于继电器的控制线圈有一定的电感,在关断瞬间会产生较大的反电势,因此在继电器的线圈上常常反向并联一个二极管用于电感反向放电,以保护驱动晶体管不被击穿。不同的继电器,允许驱动电流也不一样。对于需要较大驱动电流的继电器,可以采用达林顿输出的光耦直接驱动;也可以在光耦与继电器之间再加一级三极管驱动。
5.双向晶闸管输出接口
图10-23为MOC3041与双向晶闸管的接线图。
图10-23 MOC3041与双向晶闸管的接线图
双向晶闸管具有双向导通功能,能在交流、大电流场合使用,且开关无触点,因此在工业控制领域有着极为广泛的应用。传统的双向晶闸管隔离驱动电路的设计,是采用一般的光隔离器和三极管驱动电路。现在已有与之配套的光隔离器产品。这种器件称为光耦合双向晶闸管驱动器,与一般的光耦不同,在于其输出部分是一硅光敏双向晶闸管,有的还带有过零同负载电压使用,如MOV3011用于110V交流,而MOV3041等可适用于220V交流使用,用MOC3000系列光电耦合器直接驱动双向晶闸管,大大简化了传统的晶闸管隔离驱动电路的设计。
6.固态继电器输出接口
固态继电器(SSR)是近年发展起来的一种新型电子继电器,其输入控制电流小,用TTL、HTL、CMOS等集成电路或加简单的辅助电路就可直接驱动,因此适宜于在微机测控系统中作为输出信道的控制组件。其输出利用晶体管或晶闸管驱动,无触点。与普通的电磁式继电器和磁力开关相比,具有无机械噪声、无抖动和回跳、开关速度快、体积小、重量轻、寿命长、工作可靠等特点,并且耐冲力、抗潮湿、抗腐蚀、因此在微机测控等领域中,已逐步取代传统的电磁式继电器和磁力开关作为开关量输出控制器件。
图10-24是固态继电器的内部逻辑框图。它由光电耦合电路、触发电路、开关电路、过零控制电路和吸收电路五部分构成。这5部分被封装在一个六面体外壳内,成为一个整体,外面有四个引脚(图中A、B、C、D)。如果是过零型SSR就包括“过零控制电路”部分,而非过零型SSR则没有这部分电路。
固态继电器按其负载类型分类,可分为直流型和交流型两类:
直流型固态继电器 :
直流型固态继电器主要用于直流大功率控制场合。其输入端为一光耦合电路,因此可用OC门或晶体管直接驱动,驱动电流一般3~30mA,输入电压为5~30V,因此在电路设计时可选用适当的电压和限流电阻R。其输出端为晶体管输出,输出电压30~180V。注意在输出端为感性负载时,要接保护二极管用于防止直流固态继电器由于突然截止所引起的高电压。
交流型固态继电器 :
交流型固态继电器分为非过零型和过零型,两者都是用双向晶闸管作为开关器件,用于交流大功率驱动场合。图10-25为交流型固态继电器的控制波形图。
(a) 过零型交流固态继电器 (b)非过零型交流固态继电器
图10-25 交流型固态继电器的控制波形图
对于非过零型SSR,在输入信号时,不管负载电源电压相位如何,负载端立即导通;而过零型必须在负载电源电压接近零且输入控制信号有效时,输出端负载电源才导通,可以抑制射频干扰。当输入端的控制电压撤销后,流过双向晶闸管负载电流为零时才关断。
对与交流型SSR,其输入电压为3~32V,输入电流3~32mA,输出工作电压为交流140~400V。几种交流型SSR的接口电路如图10-26所示,其中(a)为基本控制方式,(b)为TTL逻辑控制方式。对于CMOS控制要再加一级晶体管电路进行驱动。
图10-26 SSR的驱动方式