STM32F103之ModBus\RS232\RS422\RS485
RS323,422,485的底层通信均为USART协议,只是这三个用的转换芯片不同而已
一、RS232
1.1 简介
RS-232 是美国电子工业协会EIA制定的一种串行物理接口标准。全称是 “数据终端设备(DTE)和数据通信设备(DCE)之间串行二进制数据交换接口技术标准”。RS(Recommended Standard)是英文“推荐标准”的缩写,232为标识号
接口特性
常用的串口接头有两种,一种是9针串口(简称DB-9),一种是25针串口(简称DB-25)。RS-232C标准接口有25条线,其中,4条数据线、11条控制线、3条定时线以及7条备用和未定义线。那么,这些信号线在9针串口和25针串口的管脚上是如何分配的呢?9针串口和25针串口信号线分配下图所示。
RS232标准采用的接口常用的一般是9针D型插头
<1> DCD:数据载波检出(Data Carrier detection)
<2> RXD:接收数据(Received data)
<3> TXR:发送数据(Transmitted data,TXD)
<4> DTR:数据终端准备好(Data Terminal Ready) <5> GND:地线
<6> DSR:数据装置准备好(Data Set ready)
<7> RTS:请求发送( Request to Send)
<8> CTS:清除发送(Clear to Send,CTS)
<9> RI:振铃指示( Ringing)
电平规约
RS-232 采用负逻辑电平
<1> 逻辑1电平为-3V ~ -15V
<2> 逻辑0电平为+3V ~ +15V
通信特点
<1> 通信特点:串行、异步、全双工、一对一通信
<2> 传输距离:传输距离有限,最大传输距离标准值为50英尺,实际上也只能用在15米左右。
<3> 传输速度:最大数据速率为 20kbps,最大转换速率为 30V/ms。
<4> 抗干扰性:接口使用一根信号线和一根信号返回线而构成共地的传输形式,这种共地传输容易产生共模干扰,所以抗噪声干扰性弱
二、 RS422
2.1 简介
RS422 标准全称是 “平衡电压数字接口电路的电气特性”,它定义了接口电路的特性,被命名为TIA/EIA-422-A 标准14。典型的 RS422 是四线接口,采用单独的发送和接收通道,支持全双工通信,即可以同时进行数据的发送和接收。 RS422 允许在相同传输线上连接多个接收节点,最多可接 10 个节点,即一个主设备(Master),其余为从设备(Slave),从设备之间不能通信,支持点对多的双向通信
接口特性
<1>差分传输:
它通过两对双绞线来传输信号,其中一对用于发送数据(TX + 和 TX-),另一对用于接收数据(RX + 和 RX-)
<2>抗干扰机制
具有较强的抗干扰能力,能够在长距离传输中保持信号的完整性
电平规约
发送端输出电压
<1> 逻辑 “1”:A-B ≥ +2V(空载时最大 + 6V)
<2> 逻辑 “0”:A-B ≤ -2V(空载时最小 - 6V)
接收端输入电压范围
<1> 有效输入:≥ +0.2V 或 ≤ -0.2V
<2> 无效输入:-0.2V ~ +0.2V(不确定状态)
通信特点
<1>串行、异步、全双工、一对多通信(10个节点)
<2>传输距离:最大传输距离为 4000 英尺(约 1219 米),相比 RS232 接口的最大传输距离 15 米有了显著提升
<3>传输速度:最大传输速率为 10Mb/s
<4>终端电阻:RS422 需要一终接电阻,要求其阻值约等于传输电缆的特性阻抗,以减少信号反射,提高信号传输质量
三、RS458
3.1 简介
RS-485 是由美国电子工业协会(EIA)制定的串行通信标准,全称是 “平衡电压数字接口电路的电气特性”,它是 RS-422 的扩展版本,专门设计用于多节点、长距离通信场景。相比 RS-232,RS-485 具有更强的抗干扰能力、更远的传输距离和支持多设备组网的特性,广泛应用于工业自动化、楼宇控制、安防监控等领域。
RS-485总线弥补了RS-232通信距离短,速率低的缺点,RS-485的速率可高达10Mbit/s,理论通讯距离可达1200米;RS-485和RS-232的单端传输不一样,是差分传输,使用一对双绞线,其中一根线定义为A,另一个定义为B。
电平规约
RS-485 采用差分信号(两根线 A 和 B)传输数据
逻辑 “1” 定义为 A 线电压比 B 线高 0.2~6V 以上
逻辑 “0” 定义为 A 线电压比 B 线低 0.2~6V 以上优势:差分信号抗共模干扰能力强,能有效抑制外部噪声(如电磁干扰、地环路干扰)
接口
通信特点
<1>串行、异步、半双工【RE+DE控制发送与接收】、一对多
<2>PG9输出低电平,RE为低电平 ——>MCU发送,SP3485芯片接收
PG9输出高电平,DE为低电平 ——>SP3485芯片发送,MCU接收
四、ModBus
Modbus 是 Modicon (施耐德)公司于1979年开发的串行通信协议。它最初设计用于公司的可编程逻辑控制器PLC。 Modbus是一种开放式协议,支持使用RS232/RS485/RS422协议的串行设备,同时还支持调制解调器。 它的简单性以及制造商可以免费将其纳入其产品的事实使其成为连接工业电子设备的最流行的方法。
Modbus 协议的某些特性是固定的,如帧格式、帧顺序、通讯错误和异常情况的处理,以及所执行的功能等,都不能随便改动。其他特性属于用户可选的,如传输介质、波特率、字符奇偶校验、停止位的个数等等,传输模式为 RTU。用户所选择的参数对于各个站必须一致,在系统运行时不能改变
Modbus 是简单地应用层协议,其协议消息帧格式简单、紧凑、通俗易懂,便于用户理解和使用、厂商开发和集成,方便形成工业控制网络。
设备必须要有RTU协议!这是Modbus协议上规定的,且默认模式必须是RTU,ASCII作为选项。
4.1 ModBus RTU
传输介质:通常使用 RS-485、RS-232 等串行通信线路
特点:
数据以二进制形式传输,采用 CRC(循环冗余校验)确保数据完整性
通信速度较快(最高可达 115.2kbps),适合短距离通信(RS-485 约 1200 米)
应用广泛,常见于 PLC、传感器、仪表等工业设备
帧结构:从站地址(1字节)+功能码(1字节)+数据(N字节)+CRC校验(2字节)
4.2 ModBus ASCII
传输介质:RS-232、RS-485 等串行线路
特点:
数据以 ASCII 字符形式传输,采用 LRC(纵向冗余校验)。
通信速度较慢(通常≤19.2kbps),但抗干扰能力较强,适合对速度要求不高的场景。
兼容性好,可与早期工业设备对接。
数据格式:
每个字节转换为 2 个 ASCII 字符(如字节 0x01 转为 '0' 和 '1')。
帧结构:起始符(':')+ 从站地址(2 字符)+ 功能码(2 字符)+ 数据(N 字符)+ LRC 校验(2 字符)+ 结束符(CR+LF)。
4.3 ModBus TCP/IP
传输介质:以太网(基于 IP 网络)。
特点:
通过以太网传输,利用 TCP 协议保证数据可靠性,通信距离不受物理线路限制(依赖网络覆盖)。
无需额外校验码(TCP 层已提供错误控制),传输效率高。
适用于需要远程监控或跨网络集成的工业系统。
帧结构:MBAP 头部(7 字节,含事务标识符、协议标识符、长度等)+ 功能码(1 字节)+ 数据(N 字节)

4.4 通讯
主设备-从设备工作原理有如下特点:
在同一时间只能有一个主设备连接到网络;
只有主设备能够发起通讯并向从设备发送请求;
主设备可以使用专门的地址分别访问每个从设备,也可以使用地址 0 同时访问所有从设备;从设备只能向主设备发送应答;
从设备不能向主设备或其它从设备发起通讯
4.5 数据帧
Modbus 的帧按应答方式分为命令帧(询问帧)和应答帧。命令帧为一般格式,应答帧有显长度帧和隐长度帧之分
4.5 寄存器
线圈(coil)和寄存器(register)是Modbus 中操作基本的操作对象
在 Modbus 协议中之所以仍然称为线圈和寄存器,完全是历史原因。在 PLC 应用领域,一个线圈就代表一个 PLC 输出点,也称为输出继电器。通过控制线圈导通与否来改变继电器输出状态,实现弱电控制强电。
但实际上,在如今的 Modbus 设备中,它们都只是对应一块内存区域而已。其中,线圈代表位操作(bit),表示一个布尔变量;寄存器代表字操作(word),表示一个整型变量(当然也可以通过多个字的组合,表示浮点数以及其他复合数据结构)。在 Modbus 协议中,字(word)的长度是 16 位,即 2个字节
功能码:
功能码的操作可分为两种:
位操作:最小单位为一位(bit),包括读线圈状态功能码 01、读离散输入状态功能码 02、写单个线圈功能码 05 和写多个线圈功能码 15;
字操作:最小单位为两个字节,包括读保持寄存器功能码 03、读输入寄存器功能码 04、写单个保持寄存器功能码 06 和写多个保持寄存器功能码 16
示例:
0x01功能码:
主机发送Tx:发送- 80 01 03 F2 00 08 82 6A
//从机地址:0x80 - 128
//功能码:0x01
//寄存器地址:0x03F2
//线圈数量:0x0008
//CRC校验:0x826A
从机应答Rx:- 80 01 01 DB 39 EF
//自身地址:0x80 - 128
//功能码:0x01
//数据长度:0x01(字节)
//数据:0xDB
//CRC校验:0x39EF