RS485基本知识

news/2025/2/3 22:04:35/

MCU给转换器输出低TTL信号,B比A上的电压高,反之,则A比B上的电压高。

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

485的接收端可能是另外一个MCU,MCU管脚只接受TTL电平,需要将两条线的差分电压转换为TTL电平。

基本电平转换:

TTL电平 转 485电平 485电平 转 TTL电平 给MCU

RS485原理:由于485电平和TTL电平标准定义不通,需要电平转换芯片来实现两者间的数据交换。

 

RS485总线标准

RS-485采用平衡式发送和差分接收方式实现通信,由于传输线通常使用双绞线,又是差分输入,所以有极强的抗共模干扰能力,RS485采用半双工工作方式,支持多点数据通信。总线网络拓扑一般采用终端匹配的总线型结构,即一条总线将各个节点串接起来,不支持环形或星型网络,如果需要使用星型结构就必须适用485中继器或485集线器。RS-485 总线一般支持32个节点,如果特质的485芯片可以达到128或256个节点最大支持400个节点。

RS485收发芯片(电平转换芯片)可以理解为两部分:驱动器和接收器

差分传输:

发送端在两条信号线上传输辐值相等,相位相反的电信号,接收端在对接收的两条信号线做减法运算,这样就能获得信号翻倍的信号。

一般情况下 不需要增加终端电阻,通信距离超过300米的情况下在开始端和结束端增加终端电阻

隔离虽能有效抑制高共模电压,但在总线还会存在浪涌冲击,电源线与485短路的情况,通常在总线端采取保护措施,  在A,B,两端各串一个热敏电阻,在AB接口与热敏电阻中间设有TVS瞬变抑制二极管。没有故障时,热敏电阻接近零,不影响正常通讯,当误接220V时,热敏电阻变的无穷大,相当于通讯回路和外面断开,当故障消失后,热敏电阻阻值降到零,又可以正常使用。由于RS-485是半双工通信,收发转换是需要一定的时间,所以一般在收发转换之间和每发送完一帧数据之后,都要有相应的延时,如果出现收发不正常或第一帧数据之后就出现误码现象,则可以适当的增加一下延时时间。

异步通信数据以字节的方式传送,在每一个字节传送之前,先要通过一个低电平起始位实现握手。为防止干扰信号误触RO(接收器输出)产生负跳变,使接收端MCU进入接收状态,建议RO外接10kΩ的上拉电阻。

电源旁路电容,作用是给485芯片提供一个干净的电源,使它稳定的工作。

RS485与RS232的区别

RS485和RS232一样都是基于串口的通讯接口,数据收发的操作是一致的,所以使用的是同样WinCE的底层驱动程序。但是它们在实际应用中通讯模式却有着很大的区别,RS485接口为半双工数据通讯模式,而RS232接口为全双工数据通讯模式,数据的收发不能同时进行,为了保证数据收发的不冲突,硬件上是通过方向切换来实现的,相应也要求软件上必须将收发的过程严格地分开。

RS485接口组成的半双工网络,一般是两线制(以前有四线制接法,只能实现点对点的通信方式,现很少采用),多采用屏蔽双绞线传输。这种接线方式为总线式拓扑结构在同一总线上最多可以挂接32个结点。在RS485通信网络中一般采用的是主从通信方式,即一个主机带多个从机。

RS-485接口的最大传输距离标准值为4000英尺(约1219米),实际上可达3000英尺,另外RS-232接口在总线上只允许连接1个收发器,即单站能力。而RS-485接口在总线上是允许连接多达128个收发器。即具有多站能力,这样用户可以利用单一的RS-485接口方便地建立起设备网络。

Modbus协议

MODBUS协议又分MODBUS RTU,MODBUS ASCII和后来发展的MODBUS TCP三种模式:其中前两种(MODBUS RTU,MODBUS ASCII)所用的物理硬件接口都是串行(Serial)通讯口(RS232,RS422,RS485)。

 Modbus是一种串行通信协议,施耐德电气(Schneider Electric)于1979年为使用可编程逻辑控制器(PLC)通信而发表。Modbus已经成为工业领域通信协议的业界标准(De facto),并且现在是工业电子设备之间常用的连接方式。
    对于串行连接,存在两个变种,它们在数值数据表示不同和协议细节上略有不同。Modbus RTU(远程终端模式)是一种紧凑的,采用二进制表示数据的方式,Modbus ASCII是一种人类可读的,冗长的表示方式。这两个变种都使用串行通信(serial communication)方式。RTU格式后续的命令/数据带有循环冗余校验的校验和,而ASCII格式采用纵向冗余校验的校验和。被配置为RTU变种的节点不会和设置为ASCII变种的节点通信,反之亦然。
    对于通过TCP/IP(例如以太网)的连接,存在多个Modbus/TCP变种,这种方式不需要校验和计算。

原理 

Modbus协议是一个master/slave架构的协议。有一个节点是master节点,其他使用Modbus协议参与通信的节点是slave节点。每一个slave设备都有一个唯一的地址。在串行和MB+网络中,只有被指定为主节点的节点可以启动一个命令(在以太网上,任何一个设备都能发送一个Modbus命令,但是通常也只有一个主节点设备启动指令)。
    一个ModBus命令包含了打算执行的设备的Modbus地址。所有设备都会收到命令,但只有指定位置的设备会执行及回应指令(地址0例外,指定地址0的指令是广播指令,所有收到指令的设备都会运行,不过不回应指令)。所有的Modbus命令包含了检查码,以确定到达的命令没有被破坏。基本的ModBus命令能指令一个RTU改变它的寄存器的某个值,控制或者读取一个I/O端口,以及指挥设备回送一个或者多个其寄存器中的数据。

特点

ModBus特点:

(1)标准、开放,用户可以免费、放心地使用Modbus协议,不需要交纳许可证费,也不会侵犯知识产权。目前,支持Modbus的厂家超过400家,支持Modbus的产品超过600种。

(2)Modbus可以支持多种电气接口,如RS-232、RS-485等,还可以在各种介质上传送,如双绞线、光纤、无线等。

(3)Modbus的帧格式简单、紧凑,通俗易懂。用户使用容易,厂商开发简单。

Modbus TCP 数据帧

Modbus TCP 的数据帧可分为:MBAP(报文头) + PDU(帧结构),PDU由功能码和数据组成。
    报文头长度为7字节,由事务处理标识、协议标识符、长度、单元标识符组成,协议标识符一般指协议的类型,比如00 00标识Modbus TCP,消息头结构如下:

 Modbus操作对象

 有四种:线圈、离散输入、保持寄存器、输入寄存器。

线圈 :PLC(可编程逻辑控制器)的输出位,开关量,在Modbus中可读可写
离散量 :PLC的输入位,开关量,在Modbus中只读
输入寄存器 :PLC中只能从模拟量输入端改变的寄存器,在Modbus中只读
保持寄存器 :PLC中用于输出模拟量信号的寄存器,在Modbus中可读可写

 

 01 (0x01) 读线圈
02 (0x02) 读离散量输入
03 (0x03) 读保持寄存器
04 (0x04) 读输入寄存器
05 (0x05) 写单个线圈
06 (0x06) 写单个寄存器
15 (0x0F) 写多个线圈
16 (0x10) 写多个寄存器

帧结构 

 从远程设备中读保持寄存器连续块的内容的Modbus 指令实例如下:
    0x03:读保持寄存器
    请求:MBAP 功能码 起始地址H 起始地址L 寄存器数量H 寄存器数量L(共12字节)
    响应:MBAP 功能码 数据长度 寄存器数据(长度:9+寄存器数量×2)
    如:起始地址是0x0000,寄存器数量是 0x0003
        00 01 00 00 00 06 01 03 00 00 00 03
    回:数据长度为0x06,第一个寄存器的数据为0x21,其余为0x00
        00 01 00 00 00 09 01 03 06 00 21 00 00 00 00
 

与RS485的关系

RS485是一个物理接口,简单的说是硬件

MODBUS是一种国际标准的通讯协议,用于不同厂商之间的设备交换数据(一般是工业用途);所谓协议,也可以理解为上面有人说的“语言”吧,简单的说是软件。

MODBUS只是通信协议的一种,就像汉语和英语一样的一种用来交流的语言,一种机器之间交流的语言。在交流之前肯定要有沟通的桥梁,那就是传输媒介485或232或其他电气规则。同一种协议可以用不同的传输媒介方式如485或232,但是同一传输线路上不能同时存在两种协议。其中Modbus的协议栈如下图所示:

Modbus协议主要描述的是应用层的信息封装格式,处于OSI模式的第七层(应用层)。Modbus的物理层可以是RS-485、Ethernet II /802.3。使用EIA/TIA-485这种串行通讯方式的Modbus协议框图如下所示: 

 该图是基于RS485的Modbus-RTU协议栈


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

相关文章

新唐cortex-m0之RS485通讯

又有好久没有更新博客了,不要认为我又去偷懒了,因为笔者开学了,但是我的新唐的学习并没有结束。这么长时间没有写博客因为我在学习的过程中又遇到了纠结的问题,这个问题从9月1日到现在快三个星期了,就是RS485通讯&…

RS485——RS485通信基础理论与STM32测试

1.优劣 优势:RS485的可靠传输距离远,接线简单成为了相对于RS232的最大优势。 不足:RS485总线是一种常规的通信总线,它不能够做总线的自动仲裁,也就是不能够同时发送数据以避免总线竞争,所以整个系统的通信…

RS485基本特性

概念 RS-485是美国电子工业协会(EIA)在1983年批准了一个新的平衡传输标准(balanced transmission standard),EIA一开始将RS(Recommended Standard)做为标准的前缀,不过后来为了便于识…

UART/RS485/RS232

RS485和RS232是物理总线。 RS232 传输距离大概15米左右只允许一对一通信全双工 RS485 传输距离大概1200米总线上允许接多达32个发射器和43个接收器半双工 UART UART是基于RS485/RS232/USB等物理层上层通信协议。全双工和半双工是物理链路决定的(有的应用层协议…

485通信详解

上边是我一直在用的485通信自动收发电路,不但要把电路送给你,还要把电路原理给你讲明白了。实测波特率9600不会有问题,但是,波特率115200的话,曾经出现过问题。 我们先看看普通的收发电路。 普通的485电路&#xff0…

常见通信协议之UART、RS485

UART 通用异步收发器一种通用的串行、异步通信总线,该总线有两条数据线,可以实现全双工的发送和接受并行通信和串行通信 总线传递数据的本质—高低电信号并行通信—一次性传输多个位—布线难度高—存在数据干扰串行通信—逐次传输单工通信—单向通信双工…

RS485简介

▉ RS-485概述 RS-485和RS-232一样,都是串行通信标准,现在的标准名称是TIA485/EIA-485-A,但是人们会习惯称为RS-485标准,RS-485常用在工业、自动化、汽车和建筑物管理等领域。 RS-485总线弥补了RS-232通信距离短,速率低…

485接口

485接口 串口 串口是一种接口标准,它规定了接口的电气标准,简单说只是物理层的一个标准。没有规定接口插件电缆以及使用的协议,所以只要我们使用的接口插件电缆符合串口标准就可以在实际中灵活使用,在串口接口标准上使用各种协议…