热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

光电耦合器的实用技巧

转自http:blog.csdn.netgdaswaterarticledetails4486750光电耦合器(简称光耦),是一种把发光元件和光敏元件封装在同一壳体内

转自

 http://blog.csdn.net/gdaswater/article/details/4486750

 

光电耦合器(简称光耦),是一种把发光元件和光敏元件封装在同一壳体内,中间通过电→光→电的转换来传输电信号的半导体光电子器件。光电耦合器可根据不同要求,由不同种类的发光元件和光敏元件组合成许多系列的光电耦合器。目前应用最广的是发光二极管和光敏三极管组合成的光电耦合器,其内部结构如图1a所示。

    光耦以光信号为媒介来实现电信号的耦合与传递,输入与输出在电气上完全隔离,具有抗干扰性能强的特点。对于既包括弱电控制部分,又包括强电控制部分的工业应用测控系统,采用光耦隔离可以很好地实现弱电和强电的隔离,达到抗干扰目的。但是,使用光耦隔离需要考虑以下几个问题:

① 光耦直接用于隔离传输模拟量时,要考虑光耦的非线性问题;

② 光耦隔离传输数字量时,要考虑光耦的响应速度问题;

③ 如果输出有功率要求的话,还得考虑光耦的功率接口设计问题。

1 光电耦合器非线性的克服
    光电耦合器的输入端是发光二极管,因此,它的输入特性可用发光二极管的伏安特性来表示,如图1b所示;输出端是光敏三极管,因此光敏三极管的伏安特性就是它的输出特性,如图1c所示。由图可见,光电耦合器存在着非线性工作区域,直接用来传输模拟量时精度较差。


 
图1 光电耦合器结构及输入、输出特性
    解决方法之一,利用2个具有相同非线性传输特性的光电耦合器,T1和T2,以及2个射极跟随器A1和A2组成,如图2所示。如果T1和T2是同型号同批次的光电耦合器,可以认为他们的非线性传输特性是完全一致的,即K1(I1)=K2(I1),则放大器的电压增益G=Uo/U1=I3R3/I2R2=(R3/R2)[K1(I1)/K2(I1)]=R3/R2。由此可见,利用T1和T2电流传输特性的对称性,利用反馈原理,可以很好的补偿他们原来的非线性。


 
图2 光电耦合线性电路
    另一种模拟量传输的解决方法,就是采用VFC(电压频率转换)方式,如图3所示。现场变送器输出模拟量信号(假设电压信号),电压频率转换器将变送器送来的电压信号转换成脉冲序列,通过光耦隔离后送出。在主机侧,通过一个频率电压转换电路将脉冲序列还原成模拟信号。此时,相当于光耦隔离的是数字量,可以消除光耦非线性的影响。这是一种有效、简单易行的模拟量传输方式。


 
图3 VFC方式传送信号
    当然,也可以选择线性光耦进行设计,如精密线性光耦TIL300,高速线性光耦6N135/6N136。线性光耦一般价格比普通光耦高,但是使用方便,设计简单;随着器件价格的下降,使用线性光耦将是趋势。

2 提高光电耦合器的传输速度
    当采用光耦隔离数字信号进行控制系统设计时,光电耦合器的传输特性,即传输速度,往往成为系统最大数据传输速率的决定因素。在许多总线式结构的工业测控系统中,为了防止各模块之间的相互干扰,同时不降低通讯波特率,我们不得不采用高速光耦来实现模块之间的相互隔离。常用的高速光耦有6N135/6N136,6N137/6N138。但是,高速光耦价格比较高,导致设计成本提高。这里介绍两种方法来提高普通光耦的开关速度。
    由于光耦自身存在的分布电容,对传输速度造成影响,光敏三极管内部存在着分布电容Cbe和Cce,如图4所示。由于光耦的电流传输比较低,其集电极负载电阻不能太小,否则输出电压的摆幅就受到了限制。但是,负载电阻又不宜过大,负载电阻RL越大,由于分布电容的存在,光电耦合器的频率特性就越差,传输延时也越长。


 
图4 光敏三极管内部分布电容
    用2只光电耦合器T1,T2接成互补推挽式电路,可以提高光耦的开关速度,如图5所示。当脉冲上升为“1”电平时,T1截止,T2导通。相反,当脉冲为“0”电平时,T1导通,T2截止。这种互补推挽式电路的频率特性大大优于单个光电耦合器的频率特性。


 
图5 2只光电耦合器构成的推挽式电路
    此外,在光敏三极管的光敏基极上增加正反馈电路,这样可以大大提高光电耦合器的开关速度。如图6所示电路,通过增加一个晶体管,四个电阻和一个电容,实验证明,这个电路可以将光耦的最大数据传输速率提高10倍左右。


 
图6 通过增加光敏基极正反馈来提高光耦的开关速度

3 光耦的功率接口设计
    微机测控系统中,经常要用到功率接口电路,以便于驱动各种类型的负载,如直流伺服电机、步进电机、各种电磁阀等。这种接口电路一般具有带负载能力强、输出电流大、工作电压高的特点。工程实践表明,提高功率接口的抗干扰能力,是保证工业自动化装置正常运行的关键。
    就抗干扰设计而言,很多场合下,我们既能采用光电耦合器隔离驱动,也能采用继电器隔离驱动。一般情况下,对于那些响应速度要求不很高的启停操作,我们采用继电器隔离来设计功率接口;对于响应时间要求很快的控制系统,我们采用光电耦合器进行功率接口电路设计。这是因为继电器的响应延迟时间需几十ms,而光电耦合器的延迟时间通常都在10us之内,同时采用新型、集成度高、使用方便的光电耦合器进行功率驱动接口电路设计,可以达到简化电路设计,降低散热的目的。
    图7是采用光电耦合器隔离驱动直流负载的典型电路。因为普通光电耦合器的电流传输比CRT非常小,所以一般要用三极管对输出电流进行放大,也可以直接采用达林顿型光电耦合器(见图8)来代替普通光耦T1。例如东芝公司的4N30。对于输出功率要求更高的场合,可以选用达林顿晶体管来替代普通三极管,例如ULN2800高压大电流达林顿晶体管阵列系列产品,它的输出电流和输出电压分别达到500mA和50V。


 
图7 光电隔离,加三极管放大驱动


 
图8 达林顿型光电耦合器
    对于交流负载,可以采用光电可控硅驱动器进行隔离驱动设计,例如TLP541G,4N39。光电可控硅驱动器,特点是耐压高,驱动电流不大,当交流负载电流较小时,可以直接用它来驱动,如图9所示。当负载电流较大时,可以外接功率双向可控硅,如图10所示。其中,R1为限流电阻,用于限制光电可控硅的电流;R2为耦合电阻,其上的分压用于触发功率双向可控硅。


 
图9 小功率交流负载


 
图10 大功率交流负载
    当需要对输出功率进行控制时,可以采用光电双向可控硅驱动器,例如MOC3010。图11为交流可控驱动电路,来自微机的控制信号经过光电双向可控硅驱动器T1隔离,控制双向可控硅T2的导通,实现交流负载的功率控制。


 
图11 交流可控电路
    图12为交流电源输出直流可控电路。来自微机的控制信号 经过光电双向可控硅驱动器隔离,控制可控硅桥式整流电路导通,实现交流一直流的功率控制。此电路已经应用在我们实验室研制的新型电机控制设备中,效果良好。


 
图12 交-直流可控

4 结束语
    本文从光电耦合器的基本结构、性能特点出发,针对实际应用中可能遇到的非线性、响应速度、功率接口设计三个方面,提出了相应的几种电路设计方案,并介绍了各种不同类型的光电耦合器及其应用实例。


推荐阅读
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • PyCharm下载与安装指南
    本文详细介绍如何从官方渠道下载并安装PyCharm集成开发环境(IDE),涵盖Windows、macOS和Linux系统,同时提供详细的安装步骤及配置建议。 ... [详细]
  • 导航栏样式练习:项目实例解析
    本文详细介绍了如何创建一个具有动态效果的导航栏,包括HTML、CSS和JavaScript代码的实现,并附有详细的说明和效果图。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • PHP 5.2.5 安装与配置指南
    本文详细介绍了 PHP 5.2.5 的安装和配置步骤,帮助开发者解决常见的环境配置问题,特别是上传图片时遇到的错误。通过本教程,您可以顺利搭建并优化 PHP 运行环境。 ... [详细]
  • 本文介绍了在使用Visual Studio 2015进行项目开发时,遇到类向导弹出“异常来自 HRESULT:0x8CE0000B”错误的解决方案。通过具体步骤和实践经验,帮助开发者快速排查并解决问题。 ... [详细]
  • 本文介绍了Java并发库中的阻塞队列(BlockingQueue)及其典型应用场景。通过具体实例,展示了如何利用LinkedBlockingQueue实现线程间高效、安全的数据传递,并结合线程池和原子类优化性能。 ... [详细]
  • 深入理解Cookie与Session会话管理
    本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ... [详细]
  • 创建第一个 MUI 移动应用项目
    本文将详细介绍如何使用 HBuilder 创建并运行一个基于 MUI 框架的移动应用项目。我们将逐步引导您完成项目的搭建、代码编写以及真机调试,帮助您快速入门移动应用开发。 ... [详细]
  • 深入理解Java中的volatile、内存屏障与CPU指令
    本文详细探讨了Java中volatile关键字的作用机制,以及其与内存屏障和CPU指令之间的关系。通过具体示例和专业解析,帮助读者更好地理解多线程编程中的同步问题。 ... [详细]
  • 本文介绍了如何使用JQuery实现省市二级联动和表单验证。首先,通过change事件监听用户选择的省份,并动态加载对应的城市列表。其次,详细讲解了使用Validation插件进行表单验证的方法,包括内置规则、自定义规则及实时验证功能。 ... [详细]
  • 本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ... [详细]
  • 使用 Azure Service Principal 和 Microsoft Graph API 获取 AAD 用户列表
    本文介绍了一段通用代码示例,该代码不仅能够操作 Azure Active Directory (AAD),还可以通过 Azure Service Principal 的授权访问和管理 Azure 订阅资源。Azure 的架构可以分为两个层级:AAD 和 Subscription。 ... [详细]
  • 深入解析Spring Cloud Ribbon负载均衡机制
    本文详细介绍了Spring Cloud中的Ribbon组件如何实现服务调用的负载均衡。通过分析其工作原理、源码结构及配置方式,帮助读者理解Ribbon在分布式系统中的重要作用。 ... [详细]
  • 本文探讨了 RESTful API 和传统接口之间的关键差异,解释了为什么 RESTful API 在设计和实现上具有独特的优势。 ... [详细]
author-avatar
赖皮小王子
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有