串口通信基础

上位机工控部分几乎绕不开通信相关的知识,常见的通信接口方式:RS232、RS485、TCP网口,常见的通信协议:MODBUS协议、TCP/IP协议。本文主要目的是工作中做笔记,熟练掌握技巧,因此文中会大量引用其他博主的文章,取其精华部分,同时本文在后续工作中也会处于实时更新状态。

RS232基础知识

添加链接描述
添加链接描述

RS232工作原理

考虑这样一个场景:您的计算机(DTE – 数据终端设备)使用 RS232 电缆连接到调制解调器(DCE – 数据通信设备)。 计算机想要将数据发送到调制解调器以便通过电话线传输。

RTS(准备发送)信号由数据终端设备(DTE)设备(例如计算机)用来通知数据通信设备(DCE)设备(例如调制解调器)它已准备好传输数据。 当 DTE 准备发送数据时,它将 RTS 线设置为逻辑高 (1) 电平。 DCE 接收该信号并通过激活清除发送 (CTS) 线路对其进行确认。

DCE 设备使用 CTS(清除发送)信号来指示它已准备好从 DTE 设备接收数据。 当 DCE 准备接收数据时,它将 CTS 线设置为逻辑高 (1) 电平。 DTE 接收该信号并可以继续传输数据。

TXD(传输数据)线由 DTE 用于向 DCE 传输数据。 DTE 通过 TXD 线路串行发送二进制数据位,一次一位。 数据按照 RS232 电压电平和协议进行编码和传输。

简单说,计算机通过RS232电缆与设备通信连接后,当计算机想要发送数据时,首先将电平置1,意味着设备已经准备好开始接收数据,接下来传输数据,一次传输一位,数据按照 RS232 电压电平和协议进行编码和传输,首先是数据起始位,一位一般为0,再接着是8位数据位,奇偶校验位,停止位一位或者两位,通常为1。奇偶校验位可有可无

例如:假设我们要向计算机(DTE)发送8位信息(11001110)到调制解调器(DEC),那么首先我们将DTE的RST设置为高。 此时,DCE 清除其 CTS 并通知 DTA DCE 已准备好接收来自 DTE 的数据。 发送数据以星位开始,该位应为 0。发送起始位后,TX 线发送数据,本例中数据为 11001110。发送完数据位后发送奇偶校验位,但不强制发送。 发送一位或两位停止位来完成传输。 请记住,停止位应始终为 1。因此,总数据包将为 01100111011。

RS232通信协议:起始位、停止位、奇偶校验位、波特率

RS232是一种物理接口,数据按照 RS232 电压电平和协议进行编码和传输。为了有效地传输数据,RS232 采用了一种称为数据编码的方法。 它将二进制数据转换为适合通过串行连接传输的格式。 常用的编码方案包括 ASCII(美国信息交换标准代码)和 Unicode。
RS232 为每个传输的数据字节添加起始位和停止位。 这些位为数据提供同步和成帧。 起始位指示数据字节的开始,通常称为 0,而停止位则标记其结束。 通常,RS232 使用一位起始位和一位或两位停止位。

奇偶校验位是数据通信中使用的基本错误检查机制。 它有四种变体:偶数、奇数、标记和间隔。 为了说明这一点,请考虑数字 011。在偶校验的情况下,奇偶校验位将设置为 0,而对于奇校验,则将设置为 1。

波特率决定了通过 RS232 连接传输数据的速度。 它代表每秒信号变化的数量。 RS232 通信的常见波特率包括 9600、19200 和 115200 比特每秒 (bps)。 较高的波特率可实现更快的数据传输,但可能需要更可靠的布线。

RS232连接器类型

RS232 支持不同的连接器类型,包括 DB9 和 DB25。 DB9 连接器有 9 个引脚,而 DB25 连接器有 25 个引脚。 这些连接器确保设备之间安全可靠的物理连接。常用的是DB9,2、3引脚为接收发送数据,5引脚为接地。

RS232连接参数配置

计算机与设备之间通过RS232进行通信连接,通常需要设置以下参数:COM口(RS232电缆插到计算机上,设备管理器中出现的端口)、波特率、数据位数设置(一般为8位)、停止位(一位或两位)、奇偶校验位选择、串口握手选择(不常见)

MODBUS通信协议与RS485接口基础知识

添加链接描述
添加链接描述
添加链接描述
RS232出现的较早,存在许多不足,后续改进因此新增RS485接口,是物理层的硬件设备(串口),接口优点这里不再概述,以下简述RS485物理接口与MODBUS协议之间的联系。

Modbus是一种国际标准的通讯协议,一般用于不同厂商设备之间进行数据交换,是应用层的软件协议不能自己单独存在,必须要依赖于硬件设备作为实现平台。不同的硬件具有不同的电气特性和连接方式,比如RS232、RS485。可以把Modbus比作英语,RS232比作印度人,RS485比作美国人,印度人之间讲英语时,理解为基于RS232的modbus通信,美国人之间讲英语时,理解为基于RS485的modbus通信。

两台设备之间通过Modbus协议传输数据,需要硬件接口,于是就有了RS232\RS422\RS485等,其中RS485传输距离远,成为现在最主流的工业现场硬件接口。

Modbus按照一般维度分为Modbus Rtu、Modbus ASCII、Modbus TCP三种模式
从接口类型维度来说,Modbus Rtu和ASCII基于串行链路,属于串行通讯口(serial port),Mobus tcp基于TCP/IP协议,属于网络(以太网)通讯口。

协议分为硬件协议和软件协议。而通讯协议属于软件协议,它包含报头包围的格式,MODBUS是应用层的通讯协议,主要用于传送和接收文件包的格式。而RS232,RS485是物理层的串行接口,它可以支持几十种通讯协议,MODBUS只是其中的一种

RS485作为标准的串口,是有自己的通信协议,通常我们不采用RS485自带的通信协议(自带的通信协议可以查看引用文章),采用MODBUS协议,更多的是使用modbus RTU模式通讯格式
rtu起始就是基于串口的,所以共同点就是,rtu和串口通讯,都要设置波特率、数据位、停止位、奇偶校验等。

不同点是,串口通讯需要串口对象,而modbus需要从机地址(设备地址),如果是广播模式就需要广播地址,一般是0

具体通信代码会在后续实际开发项目中发布。

  • 18
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值