Table of Contents:

串口是串行接口的简称
串行接口是采用串行通信方式的接口。
串行通信是一种将需要传输的数据由低位到高位一位一位地在一条传输线上逐个传输的通信方式。
特点是通信线路简单,只要一对传输线就可以实现双向通信,最少只需一根传输线即可完成,特别适用于近距离通信,但传送速度较慢

同步传输

image.png
需要两根线,一个数据线,一个时钟信号线,两个数据都发送后,接收端就能知道用什么间隔频率(采样点)去解码

异步传输

image.png

只需要一个线,但需要规定好波特率

一、串行通信的数据格式

串行通信的一帧数据由起始位、数据位、校验位以及停止位组成。
image.png

起始位:低电平,标志着一帧数据的开始;
数据位:数据内容,可选择为5、6、7、8位;
校验位:用于确保传输数据的正确性,可分为奇校验和偶校验。奇校验时数据位和校验位中1的总数应为奇数,同理,偶校验时数据位和校验位中1的总数应为偶数;
停止位:高电平,标志着一帧数据的结束。

二、异步串行通信的波特率

串行通信可以分为两种形式:同步串行通信和异步串行通信。
同步串行通信:通信双方在同一时钟控制下同步传输数据;
异步串行通信:通信双方使用各自的时钟控制数据传输。
波特率:对于异步串行通信来说,虽然没有同步时钟,但是通信双方必须约定并遵循同样的设置,这就需要异步串行通信中一个重要的参数来设置,该参数即波特率。

波特率即串口通信的速率,它表示每秒传输二进制数据的位数,单位是bps,即 位/秒,常用的波特率有9600、19200、38400、57600和115200等。
因此,在通信双方约定波特率为115200的情况下,只要发送方发送的每位比特位的持续时间为8.68us(1/115200),那么正常情况下接收方就能准确无误地解析数据。

遇到问题

接收物理串口发送的数据,显示乱码,但是用串口调试工具接收的是正常的,猜测可能是波特率设置错误的问题。然后在程序中下断点发现界面设置的波特率和程序中真正用的波特率不一样才导致的乱码

modbus

Modbus Protocol 是一种工业自动化领域广泛使用的通信协议,
它的目标很简单:让 PLC、传感器、仪表、变频器等工业设备能够使用统一的方式交换数据。

Modbus 的特点: 协议结构简单,容易实现。

例如:
- 读取温度
- 读取压力
- 写入频率设定值
- 启动设备
- 停止设备

本质都是:
- 读寄存器
- 写寄存器

Modbus 的通信模式
采用:Master(主站)-> Slave(从站)
例如:上位机 ->PLC -> 温度传感器

主站发请求:请读取温度
从站回复:当前温度 25℃
从站不会主动发送数据。

1. Modbus RTU(最常见)

运行在:RS232 RS485上。

数据是二进制格式:

01 03 00 00 00 02 C4 0B

优点:
- 数据量小
- 传输效率高
- 工业现场最常见

2. Modbus ASCII

数据是文本格式:

:010300000002FA

优点:
- 人眼容易看懂

缺点:
- 效率低

现在已经比较少见。

3. Modbus TCP

运行在以太网上。

Ethernet  -> TCP/IP  ->  Modbus TCP

常见端口:

502

灯控程序的例子

image.png
image.png
image.png
image.png

相关软件