嵌入式开发–CAN总线与高速光耦6N137

6N137简介

CAN总线应用时,有时候需要加光耦隔离电路,以免在雷击或遇到高压干扰时,保护设备安全。常用的有光耦隔离和专用芯片隔离。
本文介绍使用高速光耦6N137的光耦隔离方案。
6N137是10MBPS的高速光耦,而CAN总线的最高速度仅为1MBPS,用在此处绰绰有余。
6N137等效电路如下:

1,4脚空闲,
2,3脚是输入侧,接发光二极管
5脚接地
6脚输出
7脚为使能端
8脚接电源

电路

电路如下图,

简要说明一下,U3是1W的DCDC隔离模块,用于给隔离电路供电。
D8是电平保护。
由于U7是5V供电,R20和R21是一个输出分压电路,使各CAN_RX上的高电平从5V降到3.3V,其实现在很多单片机IO的口都是5V容限的,也就是说可以直接接5V输入,所以可以直连到6脚。在这里为了保险还是做了一个分压。

接下来就是光耦配套电阻的参数了。

U6输入侧

输入侧的二极管在10mA电流时压降为1.4V,看第2个图,1mA时压降为1.3V。也就是说,电压降大致按1.4V计算是没问题的。
第3个图,IF是7.5mA,此时满足10MBPS也是没有问题的。而现在的应用是1MBPS,压力就更小了。所以IF可以更小。
实际电路中,IF压降大约1.35V,电流大约为5.9mA。

U6输出侧

输出低电平时,全工作范围内,工作点选择大致依照红线表示的位置,电压降大致在0.3V左右,按0.3V计算。负载1K时,电流为4.7mA,图上没有画出此时的工作曲线,其实应该比0.3V更小。

U7输入侧

U7输入是5V,而不是U6的3.3V,因此计算公式为(5V - 1.4V)/ 6mA = 600欧。所以正常应该是用560欧的电阻,而我这里510比较常用,所以选用了510欧的电阻。

U7输出侧

上拉负载和U6一样,分压后,CAN_RX端电压值略高于3.3V,感兴趣的朋友可以自行计算到底是多少。

光耦6脚

6N137的6脚,虽然图上画的是一个非门输出,但实际上,它却是OC输出,需要自己接上拉电阻作为OC的负载。
千万不要以为输出是一个非门,可以直接输出,而不需要负载。
下图是另一款光耦的等效电路图,可见其输出是一个集电极,必须接上拉电阻才能工作的

电路实测波形

示波器显示波形如下,输入和输出波形都很好。