发新帖本帖赏金 30.00元(功能说明)我要提问
返回列表
打印
[资料干货]

如何设计一个带收发功能485电路

[复制链接]
1621|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 woai32lala 于 2023-2-13 20:16 编辑

#申请原创# @21小跑堂

如何设计一个带收发功能485电路

  关于485通讯大家肯定不陌生,但目前大多都是用程序来控制收发,往往就回多占用一个引脚,因此这里给大家介绍一个带收发功能485电路。
先说一下原理:RS485其实还是串口,Stm32用的是3.3V CMOS电平,而我们的外接设备如果是485设备,通信的电平就是485电平。Stm32CMOS平标准是 :低电平为0,高电平为1(3.3V)(对地,标准数字电路逻辑)RS485采用差分信号负逻辑,逻辑“1”以两线间的电压差为-(2~6)V表示;逻辑“0“以两线间的电压差为+(2~6)V表示,采用差分信号逻辑,更适合长距离、高速传输。但是这两者的电平是不一样的,所以两者不能直接相接一起。中间需要一个电平转换的芯片来协商一下,所以就有了我们的485芯片。因为485通信是半双工的,就是发送数据的时候不能同时接收数据,所以我们又把485芯片叫做半双工收发器。而SSP485芯片就是一款非常经典的低功耗半双工收发器,满足RS-485串行协议要求。
现在就是我们的RS485自动收发电路,就是通过一个MOS管,从而为省去其占用的GPIO,以节约单片机资源并为PC等不具备GPIO的设备提供收发控制。

R:接收数据端口
RE/:接受数据使能,低电平有效
DE:发送数据使能,高电平有效
DI:数据发送端
VCCGND: 供电电源 5V
A/B:差分信号输出



   差分信号能有效地抵御外界因素的干扰,因为干扰对两根线影响是一样的,两根线的电压差不变,信号传递也就不会受干扰。与TTL、RS232只能一对一连接不同,RS-485在总线上是允许连接多达128个收发器,下面是RS485差分信号电平,可以看出外部干扰对两根线影响是相同的,因此可以避免数据电平判断错误。


  
  我们实现自动收发的原理就是通过一个MOS管,电阻R71、电阻R72PMOSQ2组成一个典型的MOS管开关电路。R72是限流电阻,最好选择4.7K,也可以选择10KR71是上拉电阻,可以选择47K或者10KR79是为了多个设备连接时阻抗匹配,D11TVS,防止外部输入电压过高导致芯片损坏。

  AO3401是PMOS管,由上图可以看出,当Vgs < 1.3V 时,MOS管导通。当TX高电平,Vgs 接近0,MOS管关闭,RE和DE引脚接地,进入接收模式。当TX低电平,Vgs = -3.3V ,MOS管导通,RE和DE引脚接高电平,进入发送模式。
但大家看到这里会发现发射数据端DI引脚一直接地了,那岂不是发送的数据都是0?
大家来看数据发送和接收两个过程:
发送数据:
  当TX发送0时,MOS管导通,DE接高电平,进入发送模式,485芯片会把DI上的电平反应到AB引脚上输出,因为DI已经接地,所以AB引脚会传输0。所以,当TXD发送0时,AB引脚发送0。
当TX发送1时,MOS管关闭,RE接低电平,进入接收模式,485芯片的AB引脚进入高阻状态,A、B数据线状态由上下拉电阻决定。因为R81把A拉高,R74把B拉低,所以,AB传输的是1。所以,当TXD发送1时,AB引脚发送1。所以,当单片机TXD发1,AB就发1;TXD发0,AB就发0。
接收数据:
  在接收数据的过程中,由于串口协议,空闲状态TX引脚是一直保持高电平的,当TXD是高电平时,RE是低电平,正好变成了接收状态,然后485芯片的R引脚(也就是接RX的引脚)就会接收AB传输过来的数据,当AB之间为1的时候,R就是1,为0的时候就是0。
上图电路虽然可以实现自动收发,但是在波特率较高时(9600及以下没有问题)MCU发送和接收还是可能会出现冲突导致数据错误问题。
  以上就是RS485自动收发电路的介绍,有问题请大家指教,谢谢!

使用特权

评论回复

打赏榜单

21小跑堂 打赏了 30.00 元 2023-02-15
理由:恭喜通过原创审核!期待您更多的原创作品~

评论
21小跑堂 2023-2-15 13:41 回复TA
较为实用的RS485自收发电路,在低速的情况下可以简化软件控制节省IO资源,除此方法,也可选用自选向控制的RS485接口IC,例如MAX13488EESA等,会更加方便。 

相关帖子

沙发
R2D2| | 2023-2-14 22:04 | 只看该作者
正规做法是给DERE一根控制线,这是非正规的做法。

使用特权

评论回复
板凳
tototm| | 2023-2-14 22:25 | 只看该作者
R2D2 发表于 2023-2-14 22:04
正规做法是给DERE一根控制线,这是非正规的做法。

一根控制能做到自动接收和发送么!

使用特权

评论回复
地板
woai32lala|  楼主 | 2023-2-15 08:37 | 只看该作者
R2D2 发表于 2023-2-14 22:04
正规做法是给DERE一根控制线,这是非正规的做法。

上面说到了,不是为了节省IO嘛

使用特权

评论回复
5
cmyldd| | 2023-2-20 09:16 | 只看该作者
好多案例都是这样使用的

使用特权

评论回复
6
sky89| | 2024-4-8 21:38 | 只看该作者

使用特权

评论回复
发新帖 本帖赏金 30.00元(功能说明)我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

107

主题

534

帖子

5

粉丝