目录
一、本文讨论内容
本文简明概要的介绍Modbus通讯协议,并在STM32上实现Modbus协议,通过与Modbus Poll(一种Modbus上位机工具)联合调试以验证程序的正确性。
本文B站有视频讲解!均为作者原创。up主名字:“芯心智库”。
二、工具与源码
工具与源码下载方式:微信公众号关注“芯心智库”,回复“modbus”即可获取。
三、Modbus概述
Modbus是主从方式通信,一个总线上只有一个主机,但可以有多个从机(这一点类似于IIC的通讯方式)。简单来说,也就是主机问从机答。问啥呢?主要问两个问题--从机的寄存器(线圈)的数值是多少、主机要求从机修改一下寄存器(线圈)的数值并回答。
Modbus还可以细分很多种协议,但是主要就是四种:
1、Modbus-RTU(设备必须要有RTU协议!这是Modbus协议上规定的,且默认模式必须是RTU)
2、Modbus-ASCII(人类可读的,冗长的表示方式)
3、Modbus-TCP(以太网作为介质进行传输)
4、Modbus-PLUS(高速现场总线网络)
其实从本质来讲,这四个都是差不多的,你只要掌握一种,其余三种都可以轻而易举地掌握。本文就讲解Modbus-RTU协议,这个是最常使用的协议。
四、Modbus-RTU通讯协议
结合前面所讲,再来理解一下Modbus通讯协议,我们可以把通讯过程理解为主机叫哪个从机,做什么事情,怎么做,最后主机检查自己描述的对不对。一共四个步骤,也就是每次通讯都需要包含这四个步骤,每一次通讯都需要发送一个帧结构。所以就有 帧结构 = 地址 + 功能码 + 数据 + CRC校