历史上的今天

今天是:2024年10月25日(星期五)

正在发生

2021年10月25日 | #51单片机#Modbus通信协议的特点及其RTU协议帧数据介绍

发布者:SereneMelody 来源: eefocus关键字:51单片机  Modbus通信协议 手机看文章 扫描二维码
随时随地手机看文章

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位校验码。若他们相同,则表示数据正常。若数据不正常,这帧数据将被抛弃,发送方收不到回应,将做出相应处理。

关键字:51单片机  Modbus通信协议 引用地址:#51单片机#Modbus通信协议的特点及其RTU协议帧数据介绍

上一篇:#单片机#一个小型的单片机控制系统——智能窗帘控制系统
下一篇:#51单片机#RS-485通信的功能和特点

推荐阅读

随着人类智能制造的水平不断提升,机器人在医疗行业的应用越来越多,在9月的世界机器人大会上,就有多款医疗机器人集体亮相站上“风口”。医疗机器人领域的重要奠基人之一、约翰霍普金斯大学泰勒沃森教授曾表示,人类临床医生和基于计算机技术之间的协作将从根本上改变21世纪手术和介入医学的操作方式,正如计算机技术改变20世纪的制造业一样。当前机器人...
AVR单片机编程熔丝位时候不小心选择了外部RC,导致单片机锁死的简单解决方法。今天在捣鼓Atmega128A, 惦记起了熔丝位,手闲于是写入了这个 于是乎,这个开发板就再也不能被PORGISP软件识别了, 调入flash,点击【自动】按钮就会显示error。 手闲赔钱啊,锁死了咋办?上网找答案,有处论坛里有位兄弟也是我这问题,他的解决办法就是“时钟锁死的AVR单片机...
我们都知道苹果从 iPhone 12 开始已经取消附赠 EarPods 耳机和充电头了,不过法国版的新 iPhone 却是个例外。因为在法国有个规定:手机如果没有配件用于限制头部在通信过程中受到的无线电辐射影响,就不能销售。随着 iPhone 12 媒体测评的陆续发布,我们也终于看到了法国版 iPhone 12 的开箱以及包装盒。新的 iPhone 12 包装盒已经变得非...
vivo此前推出了X60t、X60t Pro+ 两款手机,分别搭载天玑1100、高通骁龙888 SoC。该系列手机均配备蔡司影像系统,后者配备微曲面屏幕。目前,该系列另一款手机vivo X60t Pro已经正式入网,其外观与同系列产品一致。从图片可以看出,该手机屏幕、后盖均采用曲面设计,后盖预计为玻璃材质。手机后置三颗摄像头,上方为大底主摄。入网信息显示,手机后置主...

史海拾趣

问答坊 | AI 解惑

自制51+DSP开发板

本开发板采用 DSP +51方案,编写好的程序可直接用51的串口下载到DSP中运行。即可以学习单片机又可以学习DSP。对于初学者可省掉买DSP仿真器的费用(不需要DSP仿真器照样学习DSP系统)。而且用户可以很方便的在此基础上从DSP+51方案过度到 DSP+ARM方 ...…

查看全部问答∨

1.5V升压3.3V_5V[转载]

原文如下: ◆電池1本時(入力電圧1.5V時)  ・3.3V 最大負荷電流 約160mA=効率約81%  ・5.0V 最大負荷電流 約70mA ※出力5Vでは電池2本での使用を推奨します。 ◆電池2本時(入力電圧3. ...…

查看全部问答∨

如何买块合适的学习板

现在在职工作一年了,从事软件开发,经常和硬件打交道!算是一个嵌入式门口的程序员!发现在自己的能力增加到一定之后,对应用层代码的兴趣就没那么高啦。可是公司的产品很成熟,底层驱动都很稳定,不需要改动,所以平时也没有机会学到那方面知识, ...…

查看全部问答∨

如何实现恒压恒流充电?

来自 电子工程师技术交流(12425841)…

查看全部问答∨

STM32的library测试过没有啊?

今天遇到一问题,在USART中使用库提供的flag清除函数,是清除不了的,搞得中断老跳不出,弄了好久.如下:void USART1_IRQHandler(void){  if(USART_GetITStatus(USART1, USART_IT_IDLE)!=RESET)  {   ...…

查看全部问答∨

STM32热重启死机问题?

程序运行中需要运行 NVIC_SystemReset();这个函数,一旦运行就会死机 没办法单步调试,所以问下大家问题可能出在哪里? 重新上电启动就没有问题。谢谢大家了!…

查看全部问答∨

请问大家一个关于iar for msp430仿真的问题!!

1、我用FET_examples目录中FET140文件夹下,fet140_ta01.c文件组建项目。 2、在iar for msp430 环境中,用软件模拟为什么不能进入定时中断呢? 3、是不是因为没有smclk的原因?在这个环境中如何设置lfx 和x2呢?并并我修改了程序,将 ...…

查看全部问答∨

看看我的程序的警告:

Warning (14130): Reduced register \"current_state[7]~reg0\" with stuck data_in port to stuck value GNDWarning (14130): Reduced register \"current_state[6]~reg0\" with stuck data_in port to stuck value GNDWarning: Converted presett ...…

查看全部问答∨

protelDXP 元件名系表--分立元件库中英文对照

protelDXP 元件名系表--分立元件库中英文对照…

查看全部问答∨

串口屏开发的几个技巧

串口屏开发的几个技巧   使用迪文24位色(H600内核)串口屏的几个开发技巧和大家分享一下: 1.     显示HEX参数 有一条0xC108的参数显示指令,可以不用再进行烦人的HEX到ASCII转换计算和显示格式转换,比如字体大小, ...…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved