RS485为半双工接线,两线制,同一总线上最多可以挂接32个节点;常用的RS485电路如下图所示:

如图所示,RS485芯片SN65HVD72中的RE使能低电平有效,DE的作用为定义芯片的收与发模式。其中,使能信号RE和DE可采用一个GPIO控制,节省资源,因为加了一个三极管BSN20,所以在GPIO25输出高电平时,RE=DE=0V,进入接收模式;GPIO25输出低电平时,RE=DE=3.3V,进入发送模式。

在A上加上拉,B上加下拉电阻,主要原因是:RS-485总线在空闲(idle)状态时,电平是不固定的,即电平在-200mV~+200mV之间,收发器可能输出高也可能输出低,UART在空闲时需要保持高电平的,如果此时收发器输出一个低电平,对UART来说是一个start bit,会导致通信异常。(所以RX需要加上上拉)其中:

① A上加上拉,B上加下拉,接反数据通信也可能出错。

② 某些收发器内部集成上下拉电阻,则外部不需要再添加。


那为什么RS485为什么需要隔离?

1、保护设备及人身安全——高压影响

因为RS485用于设备之间的通信,作为甲方或者乙方,不知道客户拿自己的设备与什么类型的设备通信,万一对方利用几块钱的阻容降压原理将220V降压到12V,与电网完全没有隔离,测试、调试、使用时就会非常危险,又或者是高压设备绝缘损坏,此时RS485线上带高压,就会对设备和人身的安全造成影响。

2、远端接受异常—电势差的影响

设计者常常直接将每个节点的参考地接于本地的大地,作为信号的返回地,看似正常可靠的做法,实际的大地并不是理想的“0”电位,大地也是导体,也存在阻抗。当大的电流流过大地时,流过电流的大地两端也会存在电势差,所以当发射端的电压为Vs时,大地的共模电压为Vc,接收端的电压为Vs+Vc。

3、数据异常,器件损坏—地环路的影响

如2所说,既然节点之间的大地存在电势差,那直接用一根线将两个节点的地再连起来不就可以了?大错特错!这样做只能使情况更加严重,这根长长的导线会与大地形成一个极大的地环路!相信大家在学生时代就知道,一个闭合线圈在变化的磁场里面就会产生电流。50Hz的交流电力线、大型电机等,都是交流磁场的来源,若总线靠近或经过这些地方,地环路就会产生电流高达甚至上百安培。电流流过地环路产生的共模电压就会影响总线的正常通信,除了稳定的磁场来源,一些电力线的浪涌、雷击、高频噪声等瞬态干扰都有可能被这个巨型的“环形天线”拾取,并造成通信异常。

所以综上所示,在设计RS485时,需要保证以下三点:

1、保证我们的设备不会接到有可能高压的设备或者有高压短路风险的场景。

2、保证RS-485的布线不要超过100米。

3、保证现场没有强磁、强电、大功率的设备。


故RS485电路可以再增加一些保护措施,如下:

1、在A、B线加上一个共模电感,可以对共模电流进行衰减过滤,提高RS485电路的EMI性能;

2、在共模电感两端并联电阻,作用同共模电感一致,可以对线路的电流进行抑制,保护485芯片;

3、在A、B线上各线路上接一个电容,用于提高电路的EMI性能;

4、在A、B线上加入TVS二极管,能够提高电路的抗浪涌,防静电;

5、在A、B线上加入热敏电阻PTC5、PTC6, 用于反向电路的高压;

如下所设计的电路:

注:在上面所示的RS485芯片的RO管脚需要加上一个上拉,其中具体的电路的参数,可以私聊我。

详解RS485电路,就是那么简单!相关推荐

  1. Arduino :PWM详解和电路搭建以及示例代码

    Arduino :PWM详解和电路搭建以及示例代码 PWM 调制介绍 脉冲宽度调制是PWM的全称.它是数字编码的模拟信号电平.由于计算机不能输出模拟电压而只有0或5V数字电压值,我们可以应用调制方波占 ...

  2. 双亲委派模型以及SpringFactoriesLoader详解(最全最简单的介绍)

    文章目录 前言 类加载的过程 类加载器 何为双亲委派模型 ClassLoader类的loadClass方法 双亲委派模型存在的问题 解决办法 以JDBC驱动管理为例 加载资源 SpringFactor ...

  3. rs485接口上下拉_详解RS-485上下拉电阻的选择

    RS-485总线广泛应用于通信.工业自动化等领域,在实际应中,通常会遇到是否需要加上下拉电阻以及加多大的电阻合适的问题,下面我们将对这些问题进行详细的分析. 为什么需要加上下拉电阻? 根据RS-485 ...

  4. IOS UITableView详解一数据展示 页面简单实现

    为什么80%的码农都做不了架构师?>>>    一 UITableView简介 UITableView用于表格数据展示,是使用频率最高的控件.UITableView继承自UIScro ...

  5. 详解设计模式之工厂模式(简单工厂+工厂方法+抽象工厂)

    园子里关于23种设计模式的博文已经可以说是成千上万.车载斗量.屯街塞巷.不计其数.数不胜数.摩肩接踵.汗牛充栋.车水马龙.门庭若市.琳琅满目直至让人眼花缭乱了.在这样的大环境下之所以来写设计模式类的博 ...

  6. 详解设计模式之工厂模式(简单工厂+工厂方法+抽象工厂) v阅读目录

    1楼留头头大神:http://www.cnblogs.com/toutou/p/4899388.html v阅读目录 v写在前面 v简单工厂模式 v工厂方法模式 v抽象工厂模式 v博客总结 v博客前言 ...

  7. java实现网页保存_详解Java两种方式简单实现:爬取网页并且保存

    对于网络,我一直处于好奇的态度.以前一直想着写个爬虫,但是一拖再拖,懒得实现,感觉这是一个很麻烦的事情,出现个小错误,就要调试很多时间,太浪费时间. 后来一想,既然早早给自己下了保证,就先实现它吧,从 ...

  8. 847方波放大电路_分析运放7大经典电路,有图有真相,详解每个电路原理!

    运放的基本分析方法:虚断,虚短.对于不熟悉的运放应用电路,就使用该基本分析方法. 运放是用途广泛的器件,接入适当的反馈网络,可用作精密的交流和直流放大器.有源滤波器.振荡器及电压比较器. 1,运放在有 ...

  9. C盘清理及可清理文件详解(Windows 7)-简单易操作_让你的C盘彻底解放

    文章目录 前言 一.休眠文件 二.虚拟内存 三.Superfetch功能带来的应用程序缓存 四.应用程序产生的临时文件 五.IE等浏览器产生的临时文件 六.系统还原,System Volume Inf ...

  10. Spring入门详解(一)如何配置一个简单的spring项目

    关于spring的一些概念,网上已经有很多的说明,本系列不会做太多的描述,重心在如何配置上. 一.准备工作 1.安装JDK,配置环境.(本来不想写这条的-想了想,还是写上) 2.下载开发包 Sprin ...

最新文章

  1. 3D惯导Lidar仿真
  2. 2019微信年度报告!!!
  3. 适合小白学的基础知识—SSTI漏洞学习
  4. 空投坐标怎么看6_装修时,怎么确认自己买的“瓷砖”是优等品?看“6点”很重要...
  5. 经典数学问题:Nim游戏
  6. 上传文件 connection reset
  7. zabbix snmp自定义OID nginx监控实例(55)
  8. BeetleX实现MessagePack和Protobuf消息控制器调用websocket服务详解
  9. python 卷积神经网络 应用_卷积神经网络在目标定位中的应用
  10. php连接mysql代码+类_php连接mysql操作类
  11. 解决JS中文乱码问题
  12. linux 怎么查内存大小,linux如何查内存大小
  13. Autodesk Maya入门到精通学习教程
  14. Android动态破解微信本地数据库(EnMicroMsg.db)
  15. 用html css实现五角星,用CSS画五角星
  16. 线性代数(2)向量线性组合、向量内积的意义
  17. 2006年元宵节前喜得贵子,真高兴,呵呵 ^_^
  18. 编译原理(1)词法分析程序(C++实现)
  19. 使用SecureCRT时,PageDown键无法使用
  20. xmind转Excel测试用例

热门文章

  1. MyBatis批量插入几千条数据,请慎用foreach
  2. ArcGIS操作系列5 - Arcmap 裁剪 矢量和栅格数据
  3. emu8086:如何把数组里的值全部变为FFFF
  4. c++语言“case”,C++ switch case详解
  5. 汽车传感器:自动驾驶“第一步”
  6. 水晶报表java_JAVA水晶报表从环境搭建到创建动态水晶报表
  7. 后疫情时代,引发户外烧烤的热潮,星淘惠建议卖家可针对布局
  8. 移植MotionDriver到RTT
  9. 实时单目物体SLAM Real-time Monocular Object SLAM
  10. 单峰排列 Codeforces C. Cyclic Permutations