光电耦合器(简称光耦)以光信号为媒介来实现电信号的耦合与传递,输入与输出在电气上完全隔离,具有抗干扰性能强的特点。对于既包括弱电控制部分,又包括强电控制部分的工业应用测控系统,采用光耦隔离可以很好地实现弱电和强电的隔离,达到抗干扰目的。
1、高速光电耦合器原理及选型
1.1、高速光电耦合器原理
6N137的内部原理图如下所示:
高速光电耦合器6N137由磷砷化镓发光二极管和光敏集成检测电路组成。由上图显示可知,信号从Pin2和Pin3输入,发光二极管发光,经片内光通道传到光敏二极管,反向偏置的光敏管光照后导通,经电流—电压转换后送到与门的一个输入端,与门的另一个输入为使能端,当使能端为高时与门输出高电平,经输出三极管反向后光电隔离器输出低电平。当输入信号电流小于触发阈值或者使能端为低时,输出高电平,但这个逻辑高是集电极开路的,可针对接收电路加上拉电阻或电压调整电路。简而言之:发光二极管发光~光敏二极管导通~三极管导通~Vo被拉低,即输出低电平;反之输出高电平。
通过电路的真值表可以看出,使能脚不置低时:发光二极管发光,Vo输出为低电平;发光二极管不发光,Vo输出为高电平。
真值表及推荐操作条件如下所示:
芯片使用推荐参数如上图所示,其中供电电压4.5V~5.5V,一般取5V;低电平输入,只要保证LED不亮即可,通不通电都可以;高电平输入电流,及LED发光通过电流值6.3~15mA,这个不要超过最大一般LED发热会烧管子,小于最小,则容易不导通,具体的导通参数,如下所示:
以10mA电流为例,假如导通电压为1.4V(不是一个普通的PN节导通电压0.7V),则限流电阻计算如下:
DC 5V供电——R = (5-1.4)/0.01 = 360R左右,实际使用1K即可。
DC 3.3V供电——R = (3.3-1.4)/0.01 = 190R左右,实际使用510Ω即可。
1.2、光耦选型
以常规光耦TCM1107为例介绍如何根据相关参数选择,高速光耦亦可参照。
Step 1、在手册中找到光耦的最大正向电流IF和最大输出集电极电流IC。
Step 2、确定最小初级电阻
在手册中找到前向电压和前向电流的关系曲线,用来确定初级最小限流电阻。
如上图所示,光耦在最大正向电流IF=60mA时,前向电压约为1.2V。如果初级供电电压为3.3V时,最小初级限流电阻应该为(3.3-1.2)/0.06=35Ω;如果初级供电电压为5V时,最小初级限流电阻应该为(5-1.2)/0.06=69Ω;依次类推即可。
实际电阻取值必须大于这个电阻值,以保证光耦不损坏。
Step 3、确定初级电阻Rs
下图 1 为光耦Switching Time与IF的关系,如没有具体的Switching Time的要求,取值为5mA。再根据下图 2 得到IF=5mA下的VF约为1.1V。如果现在的初级工作电压为5V,则初级电阻为:Rs = (5 – 1.1) / 0.005 = 780,取标准阻值820Ω。
Step 4、确定最小次级电阻
在 Step 1 中已经知道了最大输出电流IC为50mA,那么如果次级供电电压为3.3V时,最小次级限流电阻应该为3.3/0.05=66Ω;如果次级供电电压为5V时,最小次级限流电阻应该为5/0.05=100Ω;以此类推。注意,以上计算是在忽略VCE的情况下得到的,由于VCE一般比较小且非线性,故此处忽略。实际电阻取值必须大于这个电阻值,以保证光耦不损坏。
Step 5、确定实际次级电阻RL
如下图所示,次级电流IC会影响次级的Switching Time,如果没有具体的Switching Time要求,取5mA。如果现在的初级工作电压为5V,则次级电阻为:RL=5/0.005=1kΩ
Step 6、测试并调整
实际电路可能还需要进行调整,如果想要提高上升时间的话,可以逐步降低初次级电阻,但是要注意功耗和最小电阻取值。光耦存在固定的传输延迟,想要提高传输带宽,仍应选择高速光耦。设计时应注意功耗和速度的平衡。
2、应用实例
RS485隔离一定是电源隔离 + 通信隔离,单纯的通信隔离使毫无用处的。
2.1、电源隔离以 B0505 隔离芯片为例
特别注意:DC-DC不能空载使用,故实际功耗要求至少为额定功率的10%,故需要在输出端外接假负载,假负载可按模块额定功率的5~10%计算,电阻值为
R = U * U / (10% x 1W) = 250Ω
2.2、6N137 实际应用电路如下所示:
由上表可知:Pin8~VCC:芯片供电电压在4.5 – 5.5V之间,此处需要注意下,如果直接接了3.3V,电路不好用;Pin7~VE:VEH的电压在2.0 – VCC之间,R2 = 10K即可。
Pin2~VF+输入高电平,当Pin3~VF-输入高电平时,发光二极管不发光,光敏二极管不导通,即Pin6~VO输出高电平;Pin2~VF+输入高电平,当Pin3~VF-输入低电平时,发光二极管发光,光敏二极管导通,经输出三极管反向后光电隔离器输出低电平。即Pin6~VO为低电平。
由图Vo vs IF可知,当IF>3mA时,发光二极管导通,单通道光耦IF最大值为50mA;当IF<1mA时,发光二极管截止。由图IF vs VF可知,二极管的压降VF在1.4V左右;R1 = (VCC1 – VF) / IF;
C1根据数据手册的参考电路,可取0.1μF,RL可取330R~4K。
2.3、RS485隔离电路
如下所示为发送隔离:
如下所示为使能隔离:
如下所示为接收端隔离:
此处要特别注意,由于是RS485接收给CPU,故此时光耦的输入是RS485_RX,所以输入侧使用的是隔离后的那部分电源和通信,而输出侧由于需要连接CPU,所以此时的6N137,电源和地都要使用未隔离的电源和地。
所谓“隔离”就是分开,需要将两部分功能的电气连接分开,这就包括电源和通信线路都要分开,只有这样才能达到隔离的作用,电源的隔离通过DC-DC芯片实现,而通信线路则通过光耦隔离。CPU侧使用的是供电电压,RS485通信侧使用的是隔离后的电压,故对于RS485接收端隔离,与CPU相连的那端才会使用未隔离地。
2.4、普通光耦和高速光耦区别
在结构上,高速光耦与普通光耦是不一样的,高速光耦的结构是光敏二极管+放大驱动电路,普通光耦的结构是光敏三极管(+放大驱动电路)。光敏二极管的响应速度(上升下降时间)是纳秒级,光敏三极管的响应速度(上升下降时间)是微妙级。
不是说普通光耦工作在线性区它就能高速,它固有的响应时间就限死了它想快也快不起来。另外如果普通光耦工作在线性区,那它也会受限截止频率Fc(Cut-off Frequency)这个参数,普通光耦这个Fc基本在50KHz左右(测试条件VCC=5V、IC=5mA、RL=100R,RL加大Fc更小,RL=1K时,Fc大约在10KHz左右),比如TLP521的Fc约为50KHz;PC817的Fc约为80KHz;CNY117的Fc约为250KHz。
当然有些普通光耦在调大驱动电流(到200mA)/减小负载电阻(到500OHM)/优化驱动脉冲等情况下的确能达到500KHz这样的速度(部分光耦厂家的应用笔记有提到类似这种应用)
在通信速率上,光耦能够用到多高波特率,取决于三个时间:
1、开通时间;2、存储时间;3、关断时间。
影响最大的是存储时间,它使脉冲变形,从而造成传输错误。
存储时间是由于三极管进入饱和而产生的。饱和程度越大,存储时间越长。如果能够刚好不进入饱和(线性区边缘)则存储时间几乎为零。但这很难办到,除非一个一个地调整驱动电流,使三极管刚好不进入饱和。即使调整好了,温度变化也可能改变电流传输比,使三极管进入饱和,或是离开线性区边缘(三极管输出幅度减小),电路工作不正常。
能否改进驱动电路,使得芯片工作在更高的波特率?当然可以。驱动电路使开通延迟而关断不延迟即可。如果延迟时间刚好等于存储时间,那么从波形上看,无非是脉冲延迟了,但没有变形(暂不考虑上升和下降时间),故不会产生传输错误。但这里又有新问题:成本上是否合算?高速光耦如6N137比TLP521贵不了太多,如果改驱动电路而增加的成本大于6N137与TLP521之差,那就不合算了。
改进驱动电路并不能减少开通时间和关断时间,调整驱动电流也不能减少开通时间和关断时间。故存储时间即使为零,最终波特率也要受这两个时间的限制。
如果把TLP521当作数字器件,让TLP521工作在非线性区的饱和、非饱和两个极端(即:加上上拉就可以产生高、低电平),用它来做通讯隔离10Kbps就开始产生误码了。
如果充分认识到光耦的特性,在TLP521输出之后加一级放大整形电路,利用TLP521的线性区电流传输比的增益特性,通过一个带有+25dB电压增益的类施密特双三极管放大器放大、整形,就可以让所传输信号的上升、下降沿的实时延时降低到1μS,如果使用单管放大整形传输50Kbps是绝无问题的,成本不过增加几分钱。