利用光耦来隔离485芯片与串口引脚,实现自动收发485电路

参考

RS485通信----基本原理+电路图-CSDN博客

RS485自收发实现方案,典型应用电路及问题经验总结-CSDN博客

485通讯自动收发器电路历史上最详尽的解释 - Viking代理

原光耦电路需要3条,其中多了一条来手动控制485是收还是发的过程,借鉴前面三极管自动控制过程。我们来做一个光耦自动控制收发的485电路

1 明确485收发的引脚控制

当/RE引脚为低电平 DE引脚为低电平时,控制芯片XX485进入接受总线数据转换模式,也就是把AB差分线上的数据转换,经过DO输出给单片机或什么控制器的串口的RX端

当/RE引脚为高电平 DE引脚为高电平时 ,控制芯片XX485进入驱动数据转换模式,也就是把由TX输入到DI输入的数据转换为差分 电平给AB端子

2 开始设计电路

首先声明,以下0或者1就是高低电平逻辑的意思。

首先接收模式(RX)与三段光耦的模式相同,利用上拉电阻来接受DO的输出电平。只要保证模式一直是接收转换模式就行

如果TX引脚被置0,上方的光耦导通,右上方三极管导通,/RE和DE被拉至高电平,此时表明是发送模式 ,DI被拉至低电平 ,转换0.

当TX发送1时,上方光耦断开,右上方三极管Q1截至,/RE和DE被下拉电阻拉至低电平,此时表示是读模式,AB端进入高阻态,B被下拉电阻拉至低电平,A被上拉电阻拉至高电平,A-B>th,逻辑1.当然这是发送的情况下。

如果让TX一直为1,整个电路处于接收状态,如果外部从总线输入到485芯片,触发接收转换,如果转换的RO是1,下方光耦截至,然后RX被上拉电阻拉至高电平。

如果RO是0,光耦导通,RX为低电平。完成了与三极管类似的逻辑处理。

右边的R5和R6之间一般还要接匹配电阻(120欧),对于传输距离很远的情况。开发板之间就不需要接。再右边三个双向齐纳二极管D1,D2,D3:此处使用的双向齐纳二极管模型为

它们的功能是将A和B引脚之间的电压接地,并将A和B引脚之间的电压限制在6.5V之内,以保护485芯片。

3 我的问题

如果接了匹配电阻,难道不会导致在接收转换模式下,AB的电位被分压成接近的状态吗。面对两个4.7k欧的电阻,120欧微不足道。如果解决了,会回来评论。我猜接了匹配电阻后要加别的东西来确定电平。请看4

4 新的版本

回头想了一下,如果要处于接收状态,那不是要一直软件至TX为1.那是不是很麻烦。我们加一个三极管来控制。

左侧光耦用单片机的电压来供电,如果TX=1,此时三极管Q2截至,Q1截至.DE=0,/RE=0 此时是接收模式,也可以触发AB上拉电阻来作为逻辑1电平的表达。如果TX=0,Q2,Q1导通,此时为发送模式,DI此刻的逻辑电平为低电平。这才真正意义上实现了自动收发啊。

加上匹配电阻开关,如果传输距离长,打开开关。

如果TX=1 ,那处于发送模式发送1 或者处于接收模式。接收模式的话,A-B>200mV,这是AI给我的答复。我记得不是2~6V吗。

仿真及验证

输入模式

1 A<B

上B下A

对节点B 利用KCL,标定电流方向:假设向上的电流是b,向左电流a,120欧向上是c

对节点A利用KCL ,假设向上的电流是e,向右的电流是d

a+c=b(1)

c+d=e(2)

对上面回路用KVL 2.2 = 10*d+4.7k*e(3)

对下面的回路用KVL 2.2 = 4.7k*b+10a(4)

对5V到地用KVL  5 = 4.7k*e+120*c+4.7k*b(5)

5个方程,5个未知数

利用行列式来解

syms a b c d e
eq1 = a-b+c== 0;
eq2 = 4700*e + 10*d == 2.2;
eq3 = 10*a + 4700* b == 3;
eq4 = 4700*b + 120*c + 4700*e == 5;
eq5 = c+d-e == 0;
eqn = [eq1, eq2, eq3, eq4, eq5];
sol = solve(eqn, [a,b,c,d,e])

解得a = 0.00198419753468142559726258940902‬ 约为1.98mA

b = 6.3407617545812462638880300125739e-4‬约为0.6mA

c = ‭-0.00135012135922330097087378640777‬ 约为-1.3mA

d = ‭0.00181434615463896275225197369777‬ 约为1.8mA

e = ‭4.6422479541566178137818729000474e-4‬ 约为0.46mA

对比仿真结果,完全相同

改大VCC485,依然会钳制住电压。秒啊。如果改输入端B=6,A=2呢,发现输入端的信号会被改变,但是A,B接收端的逻辑差没怎么变化。还属于485逻辑.如果改改电阻的话估计能解决。

 
2 A>B

同理利用KCL+KVL可以解决。这就表现了为什么加了匹配电阻,并不会造成电阻分压导致的压差过小问题。从问题根源给出解答,从下面可以更加清晰的认识到,上下拉电阻在整个电路中的妙用。

输出模式

分析方式同输入模式。这个钳位电阻是不是这两个10欧电阻啊,我们尝试去掉他俩试试。

我们得到如下结果,10欧电阻并不影响我们的电平变化。主要的控制还是由上下拉和输出的逻辑电平来控制。当B线为2.8V,A线为3V。此时120欧几乎不进行任何分压,当时我老是认为2.8V会被5V电路影响。其实这个上下拉对电路没有任何影响。5V到2.8V存在压降2.2V全加在4.7k电阻上了,同理上面的3V压降也都加在4.7K电阻上了,

5V的电流流向2.8,电位已经为2.8了,它没有能力再流向3V电位。3V流向2.8和地。如果没有2.8和3的电压输入。

因为接入的电位和原上下拉电阻的左右,这就造成了一种特定的电流流向。钳制住了AB线上的电平。

电压从高电位流向低电位,哈哈哈哈哈哈。并不是电源流向信号线

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值