基于RS485的Modbus通讯(从硬件层 到软件层的理解和STM32实践)

本文介绍了通讯协议的基本理解,重点讲解了基于RS485的Modbus协议,包括RTU传输方式、主机与从机通信实践。通过STM32单片机实现与PC机的Modbus通讯,讨论了硬件层协议如RS485和软件层协议中的Modbus协议细节,以及CRC校验在数据帧完整性中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

通讯协议 的理解 :

1、通讯协议通俗易懂的理解就是两个设备之间互相 传递信息 大家一起 约定好的一种规则;通讯协议 又分为硬件层协议和 软件层协议,常用的 硬件层协议 如:RS-232、RS-485、CAN、I2C、SPI等 ,硬件层协议好比汽车需要的公路,在通信上负责稳定传输0、1两种基本的二进制数据 ,如两个 MCU 之间进行数据的传输 ,MCU使用 地线和信号线(数据传输过程 会带干扰)的传输方式输出 TTL电平 即 (逻辑0:0V 逻辑 1:5V),RS485发送器 有两条输出信号线(常用是双绞线) ,若 当前接收到逻辑0,则Va>Vb,同理若是接收到逻辑1,则相反,之后,485接收器通过比较两条线的电压高低,输出逻辑0 or 逻辑 1;
2、可以看到RS485可以起到更稳定的传输数据0、1,因为 输出的TTL电平的信号线在传输过程中很容易受到干扰奥;
3、CAN总线的传输原理也是相似的,只不过是 逻辑 1代表两根信号线都是 2.5V,逻辑 0代表一根线为1.5V 一根线为 3.5V;
4、可以看到 不同的硬件层协议其实就是不同的方式去传输逻辑 0、1,不过是相似的,就好比我们的公路,航空路线,水路,其实都是路 ,都是我们交通工具基本的路线载体 ;
5、有了路以后 我们就需要定义规则,就是我们的软件层协议,要画实线、虚线、斑马线,让车子行人遵守交通规则,安全顺畅地在我们的路上行驶 ;例如485单向通信就是单向道,只能在一个方向上传输;而半双工通信则是同一时间不能我发送数据过去同时接收数据 ,要约定主从的通信方

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值