单片机
返回首页

#51单片机#Modbus通信协议的特点及其RTU协议帧数据介绍

2021-10-25 来源:eefocus

Modbus通信协议的特点

Modbus协议是应用于电子控制器上的一种通用语言。 通过此协议,控制器之间,控制器经由网络和其他设备之间可进行通信。不同厂商生产的控制设备可以连成工业网络,进行集中控制,这已成为了一种工业标准。


该协议定义了控制器能够认识和使用的数据结构,描述了控制器请求访问其他设备的过程,回应其他设备的请求的方式,侦测错误记录的方法,同时制定了通信数据的格局和内容的公共格式。


多机通信时,Modbus协议规定每个控制器必须知道自己的设备地址,识别按照地址发来的数据并对其做出反应,包括:决定是否产生动作,产生何种动作,若需回应,反馈消息应按Modbus协议发出。


Modbus协议的整体框架和格式较为复杂庞大。Modbus协议允许在各网络体系结构内进行简单通信,每种设备都能使用该协议来启动远程操作,如下图所示,一些网关允许在集中使用Modbus协议的总线或网络之间的通信。

在这里插入图片描述

RTU协议帧数据

Modbus有两种通信传输方式,ASCII模式和RTU模式。ASCII模式的数据字节是7bit数据位,51单片机无法实现,且应用较少,这里只介绍RTU模式。


一条典型的RTU数据帧如下图所示:

在这里插入图片描述

数据帧必须作为一个连续的数据流进行传输。RTU模式规定不同数据帧之间的间隔在3.5个字节通信时间以上。可以认为RTU会将3.5个字节通信时间当做一次数据帧。


起始位和结束位:


T1-T2-T3-T4代表的时间间隔3.5个字节通信时间以上。它们的存在是为了分割开不同的数据帧。


设备地址:


每个设备都有自己的设备地址。以便与别的设备通信。当设备收到一帧数据后,程序首先判断地址是否相符。相同,才会继续解析。否则不予理会。(ps:地址0X00,是广播指令,所有设备都要执行。)


功能代码:


详情戳链接Modbus功能码一览


数据:


实现功能的数据,由功能代码赋予实际意义。例:若功能代码为0X03,即读保持寄存器,那么主机发送的数据n的组成就是:2个字节的寄存器起始地址+2个字节的寄存器数量N。


CRC校验:


CRC校验是一种数据算法,用来校验数据对错。16位CRC校验码产生于一种特殊算法,由校验码之前数据帧所有字节一同参与。接收方收到数据帧后,也会根据相同的算法产生16位校验码。若他们相同,则表示数据正常。若数据不正常,这帧数据将被抛弃,发送方收不到回应,将做出相应处理。

进入单片机查看更多内容>>
相关视频
  • RISC-V嵌入式系统开发

  • SOC系统级芯片设计实验

  • 云龙51单片机实训视频教程(王云,字幕版)

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

精选电路图
  • 红外线探测报警器

  • 短波AM发射器电路设计图

  • 使用ESP8266从NTP服务器获取时间并在OLED显示器上显示

  • 用NE555制作定时器

  • 带有短路保护系统的5V直流稳压电源电路图

  • 基于TDA2003的简单低功耗汽车立体声放大器电路

    相关电子头条文章