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


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

    后续文章会同时发表在个人博客(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博客

  • 相关阅读:
    【CSS】H4_基础
    CSDN---Markdown编辑器:基本语法知识
    黑白简约个人网页制作 大学生个人网页设计模板 学生个人博客网页成品 简单个人网站作品下载 静态HTML CSS个人网页作业源代码
    java设计模式【单例模式】
    初识51单片机
    springboot+java+ssm高校学生学籍档案信息管理系统3cvy3
    软件测试面试题及答案,2022最强版
    osg 八叉树可视化
    AUTOSAR EcuM休眠阶段的具体实现详解
    为 Serverless Devs 插上 Terraform 的翅膀,解耦代码和基础设施,实现企业级多环境部署(下)
  • 原文地址:https://blog.csdn.net/weixin_61908666/article/details/133926762