请选择 进入手机版 | 继续访问电脑版
MSIPO技术圈 首页 IT技术 查看内容

STM32与RS485

2023-07-13

单片机应用实践篇之RS485通信及MODBUS通信协议——MODBUS通信协议简介_哔哩哔哩_bilibili

 RS485基本认识

1:RS485用于工业控制,与我们使用的USART不同,无法直接与单片机的RXD和TXD直接相连,需要使用转化芯片,将TTL电平标准转化为RS485电平标准

2:RS485是半双工,因此只能实现单接收或者单发送,无法同时实现

3:RS485重要内容是modbus协议,控制工业器件或者上位机控制工业器件是需要协议控制的,而协议我们是使用MODBUS协议

4:串口发送的距离存在限制,很短,而RS485抗干扰能力强,并且传输距离远,因为使用差分信号表示数据

5:半双工的模式,是两线的,取决于电平转化芯片,有些电平转化芯片是支持4线的,所以支持全双工模式

RS485与TTL电平表示  

 由于电平标准不同,因此串口TTL无法直接与RS485直接连接,而是需要借助电平转化芯片,例如MX485

RS485基本电路与分析

 将单端信号转换为双端信号(AB),理解单端信号的话其实就是我们传输的数据线明明就是一条,它为什么是AB两条线呢?而且这个AB两条线不是我们串口的RXD和TXD,它是一个差分信号,它是根据两条线的电平状态,知道此时的信号数据是高电平还是低电平

1:上面的图表示需要转化芯片,RO表示RS485输出,因此表示STM32的串口输入-RXD,

DI表示RS485的输入,因此表示STM32的串口输出--TXD

2:A和B提供给外部连接,当stm32连接RS485时,控制TXD输出数据给外部

3:由于RS485是半双工,因此需要具备接收和发送的切换

RS485_DE_nRE为高电平的时候,DE为高电平有效,允许发送数据
RS485_DE_nRE为低电平的时候,RE为低电平有效,允许接收数据 

4:我们使用串口发送即可,电平会自动转化,因此学习起来跟串口是一样的,只不过需要进行发送和接收的切换而已,多配置一个引脚

MCU与MCU使用RS485进行通信图示

 两方都需要使用MAX485芯片转化电平标准

RS485代码演示 

代码演示,发送的时候需要专门将RS485芯片切换到发送模式,其他的情况均为接收模式,使用中断接收即可 

RS485光耦隔离

 光耦隔离,因为RS485使用到工业中,而在工业中,干扰很强的话,会对数据的接收和发送造成一定的影响,因此需要进行隔离

下面的隔离:电源隔离(供电不同)

这里只是简单的简述,当你需要使用的时候自己去看即可

 

  MODUBS协议

主从模式 --  一主多从模式,至于能支持几个从机,这个取决于你的电平转化芯片,数据手册中会表明

 任何通信都是主机发起,主机发信息给从机(比如想要从机的数据(此时从机就会发数据给主机)或者改变从机的一些配置)

主机给从机发数据,主机立马切换到接收模式,等待从机的应答

协议格式介绍

数据断包时间,01与03的时间不能大于1.5个字节,否则认为出错

一个包与另外一个包的时间间隔为3字符时间,假如超过了3字符,则表示下一个数据是新数据,可以通过波特率计算间隔时间 

通过时间判断,来断帧

 

 

 寄存器地址是我们自己设置的,不是实际的地址

相关阅读

手机版|MSIPO技术圈 皖ICP备19022944号-2

Copyright © 2024, msipo.com

返回顶部