大家好,很高兴和各位一起分享我的文章,喜欢和支持我的工程师,一定记得给我点赞、收藏、分享。
加微信[xyzn3333]与作者沟通交流,免费获取更多单片机与嵌入式的海量电子资料。
是不是还有人对RS485与Modbus傻傻分不清楚?针对两者的区别,本文对小白进行一次普及。大牛们请主动跳过,当然也可以分享给你身边的小小白。
RS485是工业应用中广泛使用的串行数据传输标准。在实现RS485通信时,通常使用Modbus协议,所以就造成了很多人将RS485与Modbus混为一谈。本文从以下几点进行重点介绍:
- 什么是RS485通信?
- 485的半双工通信?
- Modbus通信原理?
- Modbus消息格式?
- RS485与Modbus的区别?
01、什么是RS485通信
RS485是一种类似于RS232的协议,用于实现串行数据通信。这两种协议使用不同的电信号来实现数据传输。工业环境中使用RS485比RS232更广泛的原因之一是它能够为连接到同一总线的多个设备提供服务。这样,在查询多个设备时就不需要有多个接口,只是通过区分总线上不同设备的地址就可以进行通信,可以通过软件固定、拨码开关、不同电阻电压等形式来区分不同的设备。由于RS485比RS232更多的优越性,所以我们会经常看到RS485协议直接连接到USB、GSM或以太网端口,如在工业互联网行业比较通用的串口服务器,主要是将RS485转换为以太网接口。
使用RS485端口的设备通常采用Modbus协议。下表总结了RS485协议的特点。RS485在平衡线路上提供半双工传输,传输距离可达1.2公里。
02、485的半双工通信
半双工系统由一个或多个发送机和接收机组成,但同时一次只能有一个主机发送数据。通信是由发送端向特定接收方发出请求而实现的。RS485网络基于主/从框架构建。主机扮演发送器的角色,向作为接收器的指定从机发出请求。主机监听响应,如果在适当的时间范围内未获得响应,将终止通信。
03、Modbus通信原理
Modbus消息的原理。在Modbus RS485网络中,当主设备向连接的从设备发送查询时,通信开始。从设备实时监控网络,以收到专门针对它的查询时,要么执行一个操作,要么回复主机。
查询仅由主设备发起。
Modbus协议允许主机选择将消息寻址到特定的从设备或同时与所有从设备通信。这是通过一个特殊的“广播”地址实现的。但是有一些产品设计时,设计为不接收“广播”地址命令。读写操作通过使用线圈的Modbus消息发送。线圈由16位字和二进制寄存器组成。从机只能对接收到的消息做出响应,而不会启动与主机的通信。并行连接到RS485总线的每个从设备都分配了一个唯一的Modbus从设备ID。所有Modbus通信都从发送从设备ID开始,以提醒从设备接收查询或通知主设备哪个设备提供了回复。与RS232连接的工作方式相同,从设备和主设备需要保证配置相同,如传输速度(波特率)、奇偶校验等参数需要在整个网络中同步。04
Modbus消息格式
Modbus协议中定义了主设备和从设备之间的Modbus通信中使用的消息格式。Modbus查询由设备(或广播)地址、定义任何请求操作的功能代码、随请求返回的数据以及错误检查字段组成。Modbus响应由验证已采取请求操作的字段、随响应发送的数据和错误检查字段组成。如果从设备无法完成请求或错误影响了消息的接收,则从设备将创建一条错误消息作为其响应。Modbus通信采用两种不同的串行传输模式:ASCII和RTU。Modbus ASCII(美国信息交换标准代码)模式将每个8位消息作为两个ASCII字符发送。ASCII模式的优点包括能够在文本控制台上轻松监控消息。该模式还允许在不启动超时的情况下接受1秒的间隔。Modbus RTU(远程终端单元)模式以不同的格式传输消息。这里,8位消息包含两个4位十六进制字符。使用这种传输模式的数据需要以连续流的形式发送,并且与ASCII模式相比,在波特率相当的情况下能够实现更好的吞吐量。
05、Modbus VS RS-485
Modbus是一种协议。Modbus协议定义了用于交换数据的消息传递结构。Modbus可以使用多种不同类型的电气标准,并连接到RS 485。Modbus通信可以通过RS 232、RS 485、RS 422、无线电、卫星、TCP/IP进行。Modbus不定义其通信的物理介质,而是定义消息传递结构。RS485是一种电气标准。RS485定义了允许数据传输的物理电信号电平和接线。总结一句话:
Modbus定义协议类型,RS485定义协议上的信号电平。