RS485协议

news/2024/11/23 9:11:42/

RS485 电气特性

共模传输

在这里插入图片描述

采用共模传输方式时,共模噪声将会叠加在最终的输出信号上面,污染了原始的信号。

差模传输

在这里插入图片描述
而采用差模传输方式,则源端发出的信号+与信号-相位是相反的,而对于共模噪声而言在+/-两条线上都会存在,理想情况是等幅同相的,而接收端,相当于一个减法器,有用信号由于相位相反则经过减法器仍然保留,而噪声则会被抵消。而实际电路中,则会大幅度削弱。

由此可见,差模传输相对于共模传输方式,优势在于差模方式可以有效抵消共模干扰。

电气参数

RS-485 的电气参数为:

  • 共模电压范围为 -7~+12V
  • 可支持 32 个多点拓扑连接,见下面的网络拓扑图
  • 使用 40 英尺线缆时,传输速率可达到 10Mbps,1 英尺相当于 30.48cm,这里 Mbps 是兆 bit/s 的意思
  • 使用 4000 英尺线缆时,传输速率可达到 100kbps
  • 半双工通信

最小差分电压容限:200mV,也就是说接收端在差分电压低于 200mV 时就无法正确识别 0/1 了。这句话应该怎么理解呢?
在这里插入图片描述
上面这个图怎么理解呢?RS-485 收发器的发送电路至少提供 1.5V 差分电压输出能力,经由总线线路阻抗衰减,32 个接收电路输入阻抗,以及 120Ω 端接电阻,差分信号的幅度必然逐渐衰减,那么至最末端还需要至少提供 200mV 的差分电压给末端接收电路。

V A B = U A − U B V_{AB} = U_{A} - U_{B} VAB=UAUB:对于接收电路是判决 A 线共模电压与 B 线共模电压之差;

  • 如果 V A B > = 200 m V V_{AB} >= 200mV VAB>=200mV 则接收电路 R 识别为逻辑1;
  • 如果 V A B < = − 200 m V V_{AB} <= -200mV VAB<=200mV 则接收电路 R 识别为逻辑0;

简单说就是,A线的绝对电压值比B线的至少大于200mV则识别为逻辑1,或者A线的绝对电压值比B线的至少小200mV,才识别为逻辑0

这里的参数,应该是在一定特征阻抗线缆时的理论值,实际工程使用的时候需要做相应的调整以及现场测试。一般以不超出这个理论极限为好。

说到电气特性参数,首先来看看一般的接口电路:
在这里插入图片描述
从这样一个接口电路来看,有这么些要点:

  • RS-485 通信从 单片机/DSP/处理器 接口而言,是利用 UART接口 与 RS-485电平收发器接口。

    当然你说我用 FPGA 难道不行么?肯定是可以的,用 FPGA 你实现一个串口收发的 IP模块,当然也是可以的。甚至你想说,我拿 GPIO 去模拟一下 UART 是不是就不行?也是能办得到的,只不过这么干意义不大,需要占用 CPU 资源实现底层 BIT 的收发。

  • 前面说到半双工,有半双工就有全双工。

    什么是半双工呢?首先半双工以及全双工,所界定的对象一定是点对点而言的,这里说点对点就是指在同一时刻而言,所谓半双工,就是设备在同一时刻要么处于收数据状态,要么处于发数据状态,不允许同时收发数据。

    而全双工则刚好相反,允许同时收发。比如 I2C总线 就是半双工总线,4线制 SPI 是全双工,而三线制 SPI 则是半双工总线;又譬如 RS-422 或者 RS-232 是全双工接口;而 CAN总线 则是半双工总线。RS-485 就是一种半双工总线。

在这里插入图片描述

当 Host 发送数据时,数据沿着红色的线经由双绞线,传输至 Slave 的差分接收电路,当 Slave 应答时,数据沿着兰色的方向传输至 Host 的接收电路,但是传输介质是一对双绞线,所以一方在传输数据的时候,另一方是无法传输信号的,从收发器的控制角度来看:

  • R E ‾ \overline{RE} RE:Receiver Output Enable,接收器使能;
  • D E DE DE:Driver Output Enable,驱动输出使能;

控制芯片侧,用一个 GPIO 脚来控制和 R E ‾ \overline{RE} RE D E DE DE,刚学设计 RS-485 的朋友或许不理解,这里来一张芯片内部原理框图,就很容易理解了
在这里插入图片描述

当 DIR=0 时,接收电路使能 R E ‾ = 0 \overline{RE} = 0 RE=0,发送电路禁止 D E = 0 DE = 0 DE=0,对总线而言相当于高阻;

当DIR=1时,接收电路使能 R E ‾ = 1 \overline{RE} = 1 RE=1,发送电路禁止 D E = 1 DE = 1 DE=1,对总线 A/B 信号取决于 DI 的信号。这里有两个问题:

  1. 为什么芯片要把 R E ‾ \overline{RE} RE D E DE DE 设计成相反的有效逻辑呢?这样其实也是方便用一个 GPIO 同时控制收发电路的考虑。

  2. 那收发器芯片收发使能为什么不做成一个脚呢?比如就叫 DIR?做成两个脚收/发也可以用两个脚单独控制,比如:
    在这里插入图片描述
    甚至可以在 D E = 1 DE=1 DE=1 的时候,将 R E ‾ \overline{RE} RE 设置为0,这样是不是就可以自环了?产品中也可以就这样设计,可以实现收发器以及布线的自诊断,通过接收到的报文与发送出去的报文比较,可以诊断出芯片焊接,收发器是否损坏或者断路,以及布线是否存在短路故障。
    或许有人会说,瞎扯!你前面才说 RS-485 不能同时收发,这里又说能同时收发,岂不是自相矛盾吗?不矛盾,前面所说的不能同时收发,是指发的同时不能收来自其他设备的发送报文,这里收的是自身发出的报文。
    所以半双工的本质,是通讯介质不存在双向通道,在向总线发送数据的时候,介质被占用,即便想发送也是无法正确的将信号发送到介质上的,如果强行发送,数据将会错乱,甚至收发器芯片有可能损坏。

参考与原文

图文详解RS-485,真的很详细了 - 知乎 (zhihu.com)


http://www.ppmy.cn/news/137274.html

相关文章

伺服驱动器485通信

伺服驱动器和上位机使用485通信&#xff0c;驱动电机运行调试成功案例分享。 调试步骤如下&#xff1a; 1&#xff1a;使用汇川伺服驱动器案例分享。首先看下伺服驱动器的485通信链接方法&#xff0c;使用两根线链接&#xff0c;485 &#xff0c;485-。厂家建议GND也要连接上&a…

STM32之485通信(RS485串口编程)

目录 1.编程思路 2.代码 USART串口的库函数&#xff1a; USART_&#xff1a; AIRCR中断分组设置表&#xff1a; 1.编程思路 通过485通信来实现MCU之间的通信&#xff0c;把接收到的数据通过串口助手显示在pc端。第一是对usart1&#xff0c;usart2进行初始化&#xff0…

Python潮流周刊#4:Python 2023 语言峰会

△点击上方“Python猫”关注 &#xff0c;回复“1”领取电子书 你好&#xff0c;我是猫哥。这里记录每周值得分享的 Python 及通用技术内容&#xff0c;本期是特别加更版&#xff0c;聚焦于 Python 官方 2023 年语言峰会的系列博客。 由于公众号不支持外链&#xff0c;文中大量…

Vagrant编排虚拟机安装与配置

1.安装VirtualBox与Vagrant VirtualBox与Vagrant是支持不通过操作系统的&#xff1b;根据具体操作系统下载对应版本即可。(这里使用windows操作系统搭建) VirtualBox https://www.virtualbox.org/wiki/Downloads Vagrant https://developer.hashicorp.com/vagrant/downloads Va…

设计模式之~状态模式

状态模式&#xff08;State&#xff09;&#xff0c;当一个对象的内部状态改变时允许改变其行为&#xff0c;这个对象看起来像是改变了其类。 能够让程序根据不同的外部情况来做出不同的响应&#xff0c;最直接的方法就是在程序中将这些 可能发生的外部情况全部考虑到&#xff…

一个注解的事儿,数据脱敏解决了

目录 什么是数据脱敏开整使用 Hutool 工具类实现数据掩码Hutool 信息脱敏工具类使用 Jackson 进行数据序列化脱敏 注解实现数据脱敏1、定义一个注解2、创建一个枚举类3、创建我们的自定义序列化类4、测试 项目 pom 文件 总结 本文主要分享什么是数据脱敏&#xff0c;如何优雅的…

修复电动牙刷

电动牙刷 飞利浦6750&#xff0c;服役三年多。 一天&#xff0c;突然不能正常工作&#xff0c;正常工作时间为两分钟&#xff0c;这下几秒就停。 拆开检查&#xff0c;电池处有水迹&#xff0c;存在跑电现象&#xff0c;用吹风机吹干&#xff0c;装回。 正常用了几天&#…

智能牙刷

资料整理&#xff1a; 一&#xff0c;牙刷震动方式 1.偏振式 2.回转式 二&#xff0c;电机种类 1.机械扭力式振荡电机 2.有刷旋转电机 3.有刷往复式振动电机 4.无刷往复式振电机 三&#xff0c;电路设计 主柄&#xff1a;蓝牙无线充电电机控制状态指示&#xff08;LED、震动、…