通讯协议学习之路:RS485协议理论

news2024/12/26 20:50:31

通讯协议之路主要分为两部分,第一部分从理论上面讲解各类协议的通讯原理以及通讯格式,第二部分从具体运用上讲解各类通讯协议的具体应用方法。

后续文章会同时发表在个人博客(jason1016.club)、CSDN;视频会发布在bilibili(UID:399951374)

序:个人理解

  • RS485本质仍为串口通讯协议
  • RS485具有串行、异步、半双工的特性
  • RS485是半双工通讯,同一时间只能接收或者发送
  • RS485可采用一主多从的通信方式
  • RS485本质为将串口RX与TX信号通过485转换芯片转化为差分信号进行传输
  • RS485逻辑电平由差分电平决定,差分信号线具有A和B两条线
  • 逻辑0:A>B
  • 逻辑1:B>A
  • RS485在传输过程中采用双绞线,在遇到外界干扰信号时,双绞线电平信号呈等比例改变,提高系统稳定性。具有强抗干扰性

一、RS485、RS232、串口通信关系

RS485、RS232和串口通信是三个相关的概念,它们在串行通信中扮演不同的角色。

RS485是一种物理层标准,用于实现多点通信的串行通信。它定义了通信线路的电气特性、连接器和信号级别等。RS485使用差分信号传输,即使用两条信号线(A线和B线)来传输数据,其中A线和B线的电平相反。这种差分信号传输方式使得RS485可以在较长距离上进行可靠的数据传输,并支持多个设备在同一总线上进行通信。

RS232是一种物理层标准,用于实现点对点通信的串行通信。它定义了通信线路的电气特性、连接器和信号级别等。RS232使用正负电平来表示逻辑1和逻辑0,通常使用负电平表示逻辑1,正电平表示逻辑0。RS232通常使用DB9或DB25连接器,用于将串行通信设备与外部设备连接起来。

串口通信是一种通信方式,通过串行口(也称为串口)进行数据的发送和接收。串口通信可以使用不同的物理层标准,如RS485、RS232等。串口通信通常由串口控制器(如UART)负责将并行数据转换为串行数据进行发送,以及将串行数据转换为并行数据进行接收。

在实际应用中,RS485和RS232通常都被用作串口通信的物理层标准。RS485适用于多点通信的场景,可以连接多个设备在同一总线上进行通信。RS232适用于点对点通信的场景,通常用于连接计算机与外部设备之间的串行通信。串口通信可以使用RS485或RS232作为物理层标准,通过串口控制器(如UART)实现数据的发送和接收。

需要根据具体的应用需求和设备支持来选择使用RS485还是RS232作为串口通信的物理层标准。同时,还需要根据通信距离、设备数量、数据传输速率等因素来选择合适的物理层标准和通信方式。

二、RS-485通讯协议

资料

链接:百度网盘 请输入提取码

提取码:1016

简述

​ MCU管脚输出TTL电平,TTL电平的意思是,当MCU管脚输出0电平时,一般情况下电压是0V,当MCU管脚输出1电平时,电压是5V。因TTL电平的是由一条信号线,一条地线产生,信号线上的干扰信号会跟随有效信号传送到接收端,使得有效信号受到干扰,485通讯实际上是把MCU出来的TTL电平通过硬件层的一个转换器芯片进行转换:

​ 把MCU出来的一条的TTL信号经过芯片转换为两根线(线A、线B)上的信号。当MCU给转换器输入低TTL电平时,转换器会使得B的电压比A的电压高,反之,A的电压比B的电压高。

​ 485协议规约两条电平线上差值为多少表示0或者1,电压是通过仪表可以测量得到的,所以说RS-485是硬件层协议。

​ 485协议的接收端可能是另一个MCU,MCU管脚也只接受TTL电平,转换芯片过来的是两条线的电压,所以需要对此两条线差分电压转换为TTL电平。

​ 把TTL转为485,实质是一个集成芯片,其间无任何程序代码,纯粹硬件逻辑。同理,将485电平转为TTL也是如此。现在很多芯片把接收和转换都集成到一块IC,注意,转换器和接收器依旧是没有同时工作的,常见的转换芯片是MAX485。

可以这样理解,硬件层协议是公路,路的目的是为了让车辆能够过去。

半双工通讯

​ 首先了解什么是单工通讯,单工通讯是指数据只能朝着一个方向传输的通讯方式。而半双工通讯则是指对于通讯两端,不能同时相对方法发送数据,必须错开时间段发送。

​ RS-485的通讯线只有2条,且这两条通讯线在一次传输中都需要用到,因此485只可实现半双工通讯。485实现半双工通讯,会遇到一个问题,MCU1向MCU2发数据时,并不知道线上是否正传来MCU2数据,因为没有其他线可用来判断对方的收发状态,那么可能也会导致数据冲突。因此,RS-485要实现半双工通讯,就需要上层的软件协议加以规约,也就是做到”不能你想发数据就发数据”。可以理解,软件层协议就好像交通规则,它能让数据有序传输。

RS-485介绍

​ 电子工业协会(EIA)于1983年制订并发布RS-485标准,并经通讯工业协会(TIA) 修订后命名为TIA/EIA-485-A,所以TIA/EIA-485-A才是真正的名字,因为人们已经叫习惯RS-485了,所以后续也一直沿用RS-485这个叫法。

​ RS-485标准是为弥补RS-232通信距离短、速率低等缺点而产生的。RS-485标准只规定了平衡发送器和接收器的电特性,而没有规定接插件、传输电缆和应用层通信协议。

​ RS-485标准与RS-232不一样,数据信号采用差分传输方式(Differential Driver Modc),也称作平衡传输,它使用一对双绞线,将其中一线定义为A,另一线定义为 B,如图所示。

传输方式以及电平

RS-485传输方式:半双工通信、==(逻辑1:+2V ~ +6V 逻辑0:-6V ~ -2V)==这里的电平指AB 两线间的电压差。

节点连接示意图

因为大多数MCU的信号都是TTL信号,且数据是通过串口发送和接收,是不符合RS-485标准的,所以要将数据放在485通信线上传输的话,就要将TTL信号转为RS-485的差分信号,然后在AB线上传输,到达节点后再将RS-485的差分信号转换为TTL信号,给节点的MCU进行数据处理

RS-485数据链路示意图

拓扑结构

RS485有两线制和四线制两种接线,四线制只能实现点对点的通信方式,现很少采用,多采用的是两线制接线方式,这种接线方式为总线拓扑结构,在同一总线上最多可以挂接32个节点。

RS-485总线同I2C,也是主从模式,支持点对点单从机模式,也支持多从机模式,不支持多主机模式。

电路原理图

该原理图是一个基本的RS-485电路,采用的是Sipex公司的SP3485芯片,是一款低功耗的,工作电压为3.3V的芯片,该芯片的一些特性后面会介绍到

微处理器的标准串行口通过RXD直接连接SP3485芯片的RO引脚,通过TXD直接连接SP485R芯片的DI引脚。

让该芯片处于发送模式还是接收模式的选择位是DE/!RE,一般情况下把这两个引脚接在一起,只用微处理器的一个引脚控制

U9是TVS管,环境恶劣时可加,做保护作用,平时实验可以不加

R25是上拉电阻,R27下拉,默认状态下将A拉高,B拉低,如果不加电阻,那默认情况下是不稳定的,会对单片机的引脚造成干扰

芯片内部图

收发器内部是一个接收器(上半部分)加一个发送器(下半部分),然后就是引脚功能

RO:接收器输出

RE:接收器输出使能(低电平有效)

DE:发送器输出使能(高电平有效)

DI:发送器输入

GND:接地连接

A:发送器输出/接收器输入反相

B:发送器输出/接收器输入反相

Vcc:正极电源(+3.3V

发送功能真值表        

如果微处理器输出的信号DE_nRE为高电平,则芯片处于发送模式(发送器/驱动器),差分输出A和B遵循数据输入DI处的逻辑状态;

当DI为高电平时,导致A转为高,B转为低。在这种情况下,定义为VOD=VA-VB的差分输出电压为正,也就是逻辑1(AB间的电压差为+2V ~ +6V);

当DI为低电平时,输出状态反转,B变高,A变低,VOD为负 ,为逻辑0(AB间的电压差为 -6V ~ -2V);

当DE低时,两个输出都变成高阻抗。在这种情况下,与D处的逻辑状态是不相关的。

接收功能真值表

如果微处理器输出的信号DE_nRE为低电平,则芯片处于接收模式(接收器),如果为高电平,则关闭接收模式;

AB间的电平大于+200mv时,RO引脚输出逻辑1;

AB间的电平小于-200mv时,RO引脚输出逻辑0;

当AB间的电平处于-200mv ~ +200mv之间时,则表示不稳定

优点

  1. 半双工通信
  2. 差分信号传输,更加稳定
  3. RS485内部的物理结构,采用的是平衡驱动器和查分接收器的组合,抗干扰能力大大增加。
  4. 可以在总线上进行联网实现多机通信,总线上允许挂多个收发器,从现有的RS485芯片来看,有可以挂32、64、128、256等不同个设备的驱动器。
  5. 通信速度快,数据最高传输速率在10Mbps以上
  6. 传输速率最远可达到1200米左右,但是传输速率和传输距离是成反比的,只有在100KB/s以下的传输速率,才能达到最大的通信距离,如果需要传输更远距离可以使用中继。
  7. 系统运行稳定。利用专用通信总线把集中器和主站安全、可靠的连接起来。除非设备接口硬件损坏,或者总线线路断开,总线抄表系统会一直保持很好的通信效果和抄收成功率。
  8. 通信速率高。由于是专用的有线通信线路连接,线路上除了通信信号外,再无其他信号。外来的干扰信号耦合到线路衰减很大,所以集中器可以以较高的速率与主站通信。

缺点

  1. 不支持全双工
  2. 敷设困难。比如总线抄表系统需要在集中器与主站之间敷设通信线路。尤其是电能表比较分散时,通信线路敷设的工程量很大,而且架设在外的通信线路影响美观。
  3. 维护成本高。比如通信线路的损伤直接影响总线抄表方式的通信效果。所以需要定时的检查线路,保证其正常运行。特别是架设在外面的线路,一旦断裂或被腐蚀,要重新敷线。对于新增加的用户,也要及时敷线,使其进入通信网内

常用芯片

增强型低功耗半双工RS-485收发器一SP481E/SP485E

特点:

单一的+5V电源

低功耗BiCMOS工艺制造

发送器/接收器可使能多分支结构(Mutli-Drop)配置低功耗关断模式(SP481E)

描述(SP481E,SP485E)

SP481E 和SP485E是半双工差分收发器,完全满足RS-485和 RS-422的要求。它们由Sipex特有的 BiCMOS工艺制造而成。

RS-485标准理想地用于多分支(multi-drop)应用和远程接口中。它允许在一条数据线上连接32个发送器和接收器,非常适合于多分支应用。由于允许使用4000英尺长的电缆,RS-485收发器可以使用一个宽(一7V~+12V)共模方式范围来调整零电位偏差。因为RS-485是一个差分接口,所以传输数据时完全可以抑制来自发送线的干扰。


1/10单位负载RS-485收发器一SP481R/SP485R

特点

单一的+5V电源

允许超过400个收发器连接到同一条传输线上(1/10单位负载)接收器输入高阻抗(标准值RIN=150kQ)

半双工配置与工业标准管脚一致

共模输入电压范围为-7V~+12V

包含关断模式(ICC

独立发送器和接收器使能

SP485R芯片是由业内专业的通讯接口器件厂商Sipex 公司设计生产的高性能RS-485收发器,能够替换通用的RS-485收发器,并在许多方面有所增强。

SP481R和SP485R与现有的SP485产品管脚对应相同,而且包含更高的ESD保护和高接收器输入阻抗等性能。接收器输入高阻抗可以使400个收发器接到同一条传输线上又不会引起RS-485发送器信号的衰减。各器件封装为8脚塑料DIP或8脚窄SOIC。SP481R通过使能管脚来提供关断功能,可将电源电流(Icc)降低到0.5uA 以下。


+3.3V低功耗半双工 RS-485收发器一SP3481/SP3485

特点

RS-485和 RS-422收发器工作电源为+3.3V

可与+0.5V的逻辑电路共同工作发送器/接收器使能

低功耗关断模式(SP3481)-7V~+12V的共模输入电压范围

允许在同一串行总线上连接32个收发器与工业标准75176管脚配置兼容

发送器输出短路保护

描述(SP3481,SP3485)

SP3481和SP3485是+3.3V低功耗半双工收发器家族的成员,它们完全满足RS-485和RS-422串行协议的要求。这两个器件与Sipex 的SP481、SP483和SP485的管脚互相兼容,同时兼容工业标准规范。SP3481和 SP3485由 Sipex特有的BiCMOS工艺制造而成,但性能不受影响。


增强型低功耗全双工RS-422收发器一SP490E/SP491E

特点

单一的+5V电源

低功耗BiCMOS工艺制造发送器/接收器使能(SP491E)RS-485和 RS-422发送器/接收器

管脚兼容LTC490和 SN75179(SP490E)管脚兼容LTC491和 SN75180 (SP491E)增强型ESD规范:

正负15kV人体放电模式(Human Body Model)

SP490E是一个低功耗差分收发器,满足RS-485和RS-422标准规范,数据传输速率高达10Mbps。除了增加了发送器和接收器三态使能线外,SP491E和SP490E完全相同。在共模模式的限制范围内,两者的接收器输入的灵敏度为士200mV.

SP490E包含8脚塑料 DIP和8脚 NSOIC两种封装形式,可工作在商业级和工业级温度范围内。SP491E包含14脚DIP和14脚 NSOIC两种封装,也可工作在商业级和工业级温度范围内。


上诉列举了几款常用芯片,引脚都是兼容的,只是性能上有所差异

注意要点

(1)共模干扰问题:RS-485接口采用差分方式传输信号方式,并不需要相对于某个参照点来检测信号,系统只需检测两线之间的电位差就可以。

长距离布线会有信号衰减,而且引入噪声和干扰的可能性更大,在线缆A和B上的表现就是电压幅度的变化,但是,采用差分线的好处就是,差值相减就会忽略掉干扰依旧能输出正常的信号,把这种差分接收器忽略两条信号线上相同电压的能力称为共模抑制。

通俗来说,就是如果在传输过程中遇到干扰,那A、B两根线的电压都会发生变化,可能本来A是5V,B是2V,被干扰成了A是8V,B是5V,但由于485通信检测的是两根线之间的电压差,所以AB间的电压差并没有发生改变,仍然是3V,所以接收器检测到的仍然是正确的信号

相反,像串口和RS232这些单端的通信方式,因为只有一根信号线和一根地线,并会规定某个电平状态表示一种逻辑,如5V表示1,0V表示0,当在传输过程中发生干扰时,5V可能变成了2V,这时候就没法判断到底是1还是0了,导致传输的数据不正确

此外人们往往忽视了收发器有一定的共模电压范围,RS-485收发器共模电压范围为==-7~+12V==,只有满足上述条件,整个网络才能正常工作。当网络线路中共模电压超出此范围时就会影响通信的稳定可靠,甚至损坏接口。

(2)EMI问题:发送驱动器输出信号中的共模部分需要一个返回通路,如没有一个低阻的返回通道(信号地),就会以辐射的形式返回源端。整个总线就会像一个巨大的天线向外辐射电磁波。又因为共模电压范围是-7V ~ +12V,所以通信的两边也需要一根地线来做标准,不能让共模电压超出范围,防止损坏端口

由于上述原因,RS-485网络尽管采用差分平衡传输方式,但对整个RS-485网络,必须有一条低阻的信号地。一条低阻的信号地将两个接口的工作地连接起来,使共模干扰电压被短路。这条信号地可以是额外的一条线(非屏蔽双绞线),或者是屏蔽双绞线的屏蔽层。这是最通常的接地方法。

(3)终端匹配电阻

为了匹配网络的通讯阻抗,减少由于不匹配而引起的反射、吸收噪声,有效抑制噪声干扰,提高RS-485通讯的可靠性,需要在RS-485网络的2个端点各安装1个终端匹配电阻。终端匹配电阻的大小由传输电缆的特性阻抗所决定。例如,RS-485网络通常采用双绞线或屏蔽双绞线作为传输介质,其特性阻抗为120欧,因此,RS-485总线上的两个端点也应各安装1个120欧的终端匹配电阻。

匹配电阻要消耗较大电流,不适用于功耗限制严格的系统。在特殊的场合,可以考虑比较省电的并联“RC”匹配方案,可以节省大部分功率,但电容C的取值是个难点,需要在功耗和匹配质量间进行折衷。

参考文章:【精选】RS-485接口协议详解_rs485_ONE_Day|的博客-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1109897.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

接口测试vs功能测试

接口测试和功能测试的区别: 本文主要分为两个部分: 第一部分:主要从问题出发,引入接口测试的相关内容并与前端测试进行简单对比,总结两者之前的区别与联系。但该部分只交代了怎么做和如何做?并没有解释为什…

“一键替换视频封面,高效批量剪辑从未如此简单

在一个充满竞争和创意的世界,吸引人的视频封面往往能够决定内容的成败。今天,我将向大家介绍一种可以轻松替换视频封面图片的实用技巧,让你在创作中更胜一筹! 首先,我们要进入媒体梦工厂主页面,并点击“视…

Go语言入门心法(十一): 文件处理

Go语言入门心法(一): 基础语法 Go语言入门心法(二): 结构体 Go语言入门心法(三): 接口 Go语言入门心法(四): 异常体系 Go语言入门心法(五): 函数 Go语言入门心法(六): HTTP面向客户端|服务端编程 Go语言入门心法(八): mysql驱动安装报错onnection failed Go语言入门心法(…

Java中的代码重构:技巧、优秀实践与方法

什么是 Java 代码重构? Java 代码重构是一种在不影响代码外部行为的前提下进行的代码优化,它通过渐进和小规模的优化来改善现有代码的结构和质量。重构的目标是提高代码的可读性、性能、可维护性和效率等。 Martin Fowler 是这个领域的权威的大牛和非常…

前端 js 之 代码执行的一个过程 02

嘿,欢迎你来 !💕 文章目录 前言一、运行一个 js 文件二、运行环境三、js执行代码的过程(普通变量)四、打印 window五、js执行代码的过程(函数变量)六、函数调用函数的过程注意!&…

Seata入门系列【10】分布式事务环境下数据库批量插入和批量更新操作

1 前言 批量插入和批量更新是常用的数据库操作,接下来我们分析下在seata 中如何使用。 如果使用循环遍历插入,效率是很慢的,所以一般的ORM框架都是支持批量操作的,接下来以Mybatis 为例,深入了解下如何使用批处理。 …

c语言练习94:分割链表

分割链表 给你一个链表的头节点 head 和一个特定值 x ,请你对链表进行分隔,使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。 你不需要 保留 每个分区中各节点的初始相对位置。 示例 1: 输入:head [1,4,3,2,5,2], x…

python小游戏:打砖块完整代码

代码如下 import pygame import sys# 初始化Pygame pygame.init()# 游戏窗口尺寸 WIDTH, HEIGHT 800, 600# 颜色定义 WHITE (255, 255, 255) BLUE (0, 0, 255) GREEN (0, 255, 0)# 创建游戏窗口 win pygame.display.set_mode((WIDTH, HEIGHT)) pygame.display.set_captio…

2023年高校大数据实验室建设及大数据实训平台整体解决方案

大数据实验室作为支撑高校人培方案实施的核心设施,大数据实训实验室的建设一定要与学科建设、人才培养充分融合,是一个包含物理空间硬件资源软件资源课程内容的系统化工程。高校大数据实验室建设,除了考虑物理空间与硬件资源外,重…

实验室超声波清洗机的作用

实验室超声波清洗机的作用是什么?顾名思义,其主要作用是清洗。超声波清洗机是实验室中必不可少的清洗装置,利用超声波在液体中的空化效应,产生空化气泡,由于正负压的作用下,空化气泡会在短时间内生成并爆破…

移动协同办公系统,让工作更轻松,生活更美好!

在今天这个信息化、数字化的时代,人们对于工作效率的需求越来越高。随着移动互联网的普及,越来越多的人开始将工作与生活的界限模糊化。在这个背景下,移动协同办公系统应运而生,它打破了传统办公模式的束缚,让工作更轻…

通讯协议学习之路:QSPI协议理论

通讯协议之路主要分为两部分,第一部分从理论上面讲解各类协议的通讯原理以及通讯格式,第二部分从具体运用上讲解各类通讯协议的具体应用方法。 后续文章会同时发表在个人博客(jason1016.club)、CSDN;视频会发布在bilibili(UID:399951374) 一、…

【动态规划】392. 判断子序列、115. 不同的子序列

提示:努力生活,开心、快乐的一天 文章目录 392. 判断子序列💡解题思路🤔遇到的问题💻代码实现🎯题目总结 115. 不同的子序列💡解题思路🤔遇到的问题💻代码实现&#x1f3…

进程地址空间初识

进程地址空间: 空间布局图: 下面来看这样一段代码: 对应执行的结果如下: 可以看到一个很奇怪的现象: g_val的值不同,却用的是同一块地址 这是为什么? 说明对应的地址一定不是物理地址&#…

EF执行迁移时提示provider: SSL Provider, error: 0 - 证书链是由不受信任的颁发机构颁发的

ef在执行时提示provider: SSL Provider, error: 0 - 证书链是由不受信任的颁发机构颁发的。 只需要在数据库链接字符串后增加EncryptTrue;TrustServerCertificateTrue;即可 再次执行

c++生成随机数(猜数字游戏)

如果之前学过python的小伙伴看到随机数这个知识点肯定会觉得很简单,但是c的随机数就需要注意一些小细节了~ 先来给大家展示一下python的随机数: import random #导入随机数库 arandom.randint(100,200)#随机100-200之间的数字 以下是c的&a…

【黑夜送书第一期】好书来袭,AI时代程序员/项目经理开发之道送3本~

🏆作者简介,黑夜开发者,CSDN领军人物,全栈领域优质创作者✌,CSDN博客专家,阿里云社区专家博主,2023年6月CSDN上海赛道top4。 🏆数年电商行业从业经验,历任核心研发工程师…

Elasticsearch:生成式人工智能带来的社会转变

作者:JEFF VESTAL 了解 Elastic 如何走在大型语言模型革命的最前沿 – 通过提供实时信息并将 LLM 集成到数据分析的搜索、可观察性和安全系统中,帮助用户将 LLM 提升到新的高度。 iPhone 社会转变:新时代的黎明 曾几何时,不久前…

毫米波雷达2-雷达的工作模式

文章目录 flash mode: 用于烧写functional mode: Power off the board and remove the jumper from only header SOP2 (this puts the board back in functional mode) flash mode: 用于烧写 functional mode: Power off the board and remove the jumper from only header SOP…

配电房环境智能监控系统:守护电力设施,保障安全运行

随着电力系统的日益复杂化,配电房的环境监控显得尤为重要。传统的监控方式已经无法满足现代配电房的需求,因此,配电房环境智能监控系统应运而生。 一、系统概述 力安科技电易云配电房环境智能监控系统是一款集成了环境参数监测、设备运行…