Model3C芯片方案--86彩屏中控面板Modbus协议说明

一、概述

Model3C芯片是一款基于RISC-V的高性能、国产自主、工业级高清显示与智能控制MCU,配备强大的2D图形加速处理器、PNG/JPEG解码引擎,并支持工业宽温。基于Model3C芯片的86彩屏中控面板,通过集成Modbus协议,实现了与多种控制设备的通信和数据交换。
在这里插入图片描述

二、Modbus协议简介

Modbus协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其他设备之间可以通信。它已经成为一通用工业标准,使得不同厂商生产的控制设备可以连成工业网络,进行集中监控。

此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了一控制器请求访问其它设备的过程,如何回应来自其它设备的请求,以及怎样侦测错误并记录。它制定了消息域格局和内容的公共格式。当在一Modbus网络上通信时,此协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。如果需要回应,控制器将生成反馈信息并用Modbus 协议发出。在其它网络上,包含了 Modbus 协议的消息转换为在此网络上使用的帧或包结构。这种转换也扩展了根据具体的网络解决节地址、路由路径及错误检测的方法。

三、Modbus RTU在Model3C芯片方案中的应用

通信接口:Model3C芯片方案支持RS-485接口,该接口是Modbus RTU常用的串行通信接口之一。通过RS-485接口,86彩屏中控面板可以与其他Modbus设备(如PLC、传感器等)进行通信。

通信参数:在Model3C芯片方案中,Modbus RTU通信采用异步通讯模式,具体参数包括1位起始位、8位数据位、1位停止位、无校验位,波特率可根据实际需求进行配置(如常用的9600波特率)。

报文格式:Modbus RTU报文包括设备地址、功能码、数据域和CRC校验码等部分。在Model3C芯片方案中,这些报文格式遵循Modbus协议规范,确保通信的准确性和可靠性。

主从通信:在Modbus RTU通信中,Model3C芯片方案的86彩屏中控面板可以作为主设备(Master)或从设备(Slave)进行通信。作为主设备时,它可以主动发起查询请求;作为从设备时,它可以响应主设备的查询请求并提供相关数据。

功能码:Modbus协议定义了多种功能码(如读取线圈状态、写入线圈状态、读取保持寄存器等),用于实现不同的通信功能。

在Model3C芯片方案中,这些功能码得到了全面支持,使得86彩屏中控面板可以实现与多种Modbus设备的灵活通信和数据交换。

四、rt-thread 使用libmodbus-rtu库

libmodbus是一个与使用Modbus协议的设备进行数据发送/接收的库。该库包含各种后端通过不同网络进行通信(例如,RTU模式下的串口或TCP / IPv6中的以太网)。
在这里插入图片描述

将libmodbus库从软件包里启用, libmodbus是基于select操作的,依赖于文件系统和libc,需要在rt-thread中开启对应的支持。

RS485的话需要指定 modbus_rtu_set_serial_mode(ctx, MODBUS_RTU_RS232); //改为485
modbus_rtu_set_rts(ctx, RS485_RE, MODBUS_RTU_RTS_UP); //指定485控制引脚和电平

#include “modbus_rtu_test.h”
#include “modbus.h”
#include “stdio.h”
#include “string.h”#include <rtthread.h>
#include <sys/socket.h> /* 使用BSD socket,需要包含socket.h头文件 */
#include <netdb.h>
#include <string.h>
#include <finsh.h>#define RS485_RE GET_PIN(G, 8)static void test_thread(void *param)
{int slaveaddrs = 3;uint16_t tab_reg[64] = {0};modbus_t *ctx = RT_NULL;ctx = modbus_new_rtu("/dev/uart2", 9600, ‘N’, 8, 1);modbus_rtu_set_serial_mode(ctx, MODBUS_RTU_RS232);//modbus_rtu_set_rts(ctx, RS485_RE, MODBUS_RTU_RTS_UP);modbus_set_slave(ctx, slaveaddrs);modbus_connect(ctx);modbus_set_response_timeout(ctx, 0, 200000); //50msint num = 0;while (1){memset(tab_reg, 0, 64 * 2);int regs = modbus_read_registers(ctx, 0, 20, tab_reg);if (regs == -1){rt_kprintf(“error addrs %d—\n”, slaveaddrs);if(slaveaddrs == 2){slaveaddrs = 3;}else {slaveaddrs = 2;}modbus_set_slave(ctx, slaveaddrs);}else {rt_kprintf("-->addrs %d", slaveaddrs);rt_kprintf("[%4d][read num = %d]", num, regs);num++;int i;for (i = 0; i < 20; i++){rt_kprintf("<%#x>", tab_reg[i]);}rt_kprintf("\n");if(slaveaddrs == 2){slaveaddrs = 3;}else {slaveaddrs = 2;}modbus_set_slave(ctx, slaveaddrs);}rt_thread_mdelay(500);
}
//7-关闭modbus端口
modbus_close(ctx);//8-释放modbus资源
modbus_free(ctx);
}static void rtu77(int argc, char **argv)
{//rt_pin_mode(RS485_RE, PIN_MODE_OUTPUT);rt_thread_t tid;tid = rt_thread_create(“test”,test_thread, RT_NULL,2048,12, 10);if (tid != RT_NULL)rt_thread_startup(tid);return RT_EOK;
}MSH_CMD_EXPORT(rtu77, a rtu test);

更多参考:本源码实现了在RT-Thread上的移植,支持MODBUS-RTU和MODBUS-TCP

五、Modbus RTU布线

Modbus RTU使用串行通信,通常使用RS-232或RS-485接口。

  • RS-232:这是一种点对点的通信方式,每个设备都需要单独的串行线连接到主控器。它使用9针或25针的D-sub连接器,但通常只用到其中的少数几个引脚,如TX(发送)、RX(接收)、GND(地线)。
  • RS-485:这是一种多点通信方式,允许多个设备共享同一对双绞线。RS-485使用一对双绞线(通常标记为A和B),并使用终端电阻来匹配线路。每个设备都有一个数据发送器(TX)和数据接收器(RX)引脚,以及一个公共地线(GND)。

六、Modbus RTU特点

以RS-485或RS-232作为其物理层实现。它使用总线式拓扑结构,允许多个设备共享同一通信线路,实现成本效益和简单的布线需求。Modbus RTU的数据传输采用二进制编码,每个数据帧包含地址码、功能码、数据和校验码,通过CRC校验确保数据的准确性。这种协议特别适合于短距离通信和成本敏感的应用场景。

七、总结

在这里插入图片描述

基于Model3C芯片的86彩屏中控面板通过集成Modbus RTU协议,实现了与多种控制设备的通信和数据交换。其高性能的通信接口和丰富的通信功能使得该中控面板在工业控制、智能建筑等领域具有广泛的应用前景。

Model系列芯片芯片基于RT-Thread进行开发,而RT-Thread可以通过集成第三方库来支持Modbus RTU,因此Model系列芯片完全可以支持Modbus RTU协议

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/36028.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端存储都有哪些

cookie 、sessionStorage、localStorange、http缓存 、indexDB cookie 由服务器设置&#xff0c;在客户端存储&#xff0c;然后每次发起同源请求时&#xff0c;发送给服务器端。cookie最多能存储4K数据&#xff0c;它的生存时间由expires属性指定&#xff0c;并且cookie只能被…

涨点超强!图像特征提取最新方法!性能效率快到飞起

在图像处理领域&#xff0c;有一个非常关键的步骤&#xff1a;图像特征提取。它能给我们提供一种高效、准确且灵活的方式来描述和分析图像内容。 通过降低图像数据的维度&#xff0c;去除冗余和噪声信息&#xff0c;图像特征提取不但简化了后续处理过程&#xff0c;还能提高算…

ffmpeg使用mjpeg把yuvj420p编码为jpg图像

version #define LIBAVUTIL_VERSION_MAJOR 58 #define LIBAVUTIL_VERSION_MINOR 12 #define LIBAVUTIL_VERSION_MICRO 100 note 1. 通过*.jpg推测时&#xff0c;out_fmt为image2&#xff0c;打开*.jpg文件时&#xff0c;in_fmt为image2 但是out_fmt为image2时&#xff…

web项目打包成可以离线跑的exe软件

目录 引言打开PyCharm安装依赖创建 Web 应用运行应用程序打包成可执行文件结语注意事项 引言 在开发桌面应用程序时&#xff0c;我们经常需要将网页集成到应用程序中。Python 提供了多种方法来实现这一目标&#xff0c;其中 pywebview 是一个轻量级的库&#xff0c;它允许我们…

滑动窗口算法——部分OJ题详解

目录 关于滑动窗口 部分OJ题详解 209.长度最小的子数组 3.无重复字符的最长字串 1004.最大连续1的个数Ⅲ 1658.将x减到0的最小操作数 904.水果成篮 438.找到字符串中所有字母异位词 30.串联所有单词的子串 76.最小覆盖子串 关于滑动窗口 其实滑动窗口也是通过双指针…

Git(涵盖GitHub\Gitee码云\GitLab)

Git(涵盖GitHub\Gitee码云\GitLab) 文章目录 Git(涵盖GitHub\Gitee码云\GitLab)课程介绍Git概述官网介绍版本控制介绍两种版本控制工具集中式版本控制工具分布式版本控制工具 Git工作机制代码托管中心 Git安装和客户端的使用Git常用命令设置用户签名初始化本地库查看本地库状态…

C++——string类用法指南

一、前言 在C语言中&#xff0c;字符串是以\0结尾的一些字符的集合&#xff0c;为了操作方便&#xff0c;C标准库中提供了一些str系列的库函数&#xff0c;但是这些库函数与字符串是分离的&#xff0c;不太符合OOP的思想&#xff0c;而且底层空间需要用户自己管理&#xff0c;稍…

C++编译时引入json/nlohmann文件报错

报错信息: In file included from /home/chenlang/catkin_ws/src/leanrning_communication/src/mysql/../utils/data.h:14:0,from /home/chenlang/catkin_ws/src/leanrning_communication/src/mysql/MyRobotDb.h:32,from /home/chenlang/catkin_ws/src/leanrning_communicatio…

学校选用SOLIDWORKS教育版进行授课的理由

在当代的工程与技术教育领域&#xff0c;计算机辅助设计软件&#xff08;CAD&#xff09;已经变成了一个不可缺少的教学辅助工具。SOLIDWORKS作为一个功能齐全且用户友好的CAD软件&#xff0c;其教育版本在学校教学环境中受到了广泛的欢迎。本文将对学校教学中选用SOLIDWORKS版…

eclipse基础工程配置( tomcat配置JRE环境)

文章目录 I eclipse1.1 工程配置1.2 编译工程1.3 添加 JRE for the project build pathII tomcat配置JRE环境2.1 Eclipse编辑tomcat运行环境(Mac版本)2.2 Eclipse编辑tomcat运行环境(windows版本)2.3 通过tomcat7W.exe配置运行环境(windows系统)I eclipse 1.1 工程配置 …

【motan rpc 懒加载】异常

文章目录 升级版本解决问题我使用的有问题的版本配置懒加载错误的版本配置了懒加载 但是不生效 lazyInit"true" 启动不是懒加载 会报错一次官方回复 升级版本解决问题 <version.motan>1.2.1</version.motan><dependency><groupId>com.weibo…

5G VONR

转载&#xff1a;VoNR呼叫流程介绍 (baidu.com) 使用5G RAN、5G Core和IMS的语音服务被称为新无线电VoNR上的语音&#xff0c;5G提供语音/视频通话等服务。 NR网络架构上的语音 NR语音网络体系结构由5G RAN、5G Core和IMS网络组成。下面显示了一个体系结构。&#xff08;仅包…

3.x86游戏实战-寄存器

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 本次游戏没法给 内容参考于&#xff1a;微尘网络安全 上一个内容&#xff1a;2.x86游戏实战-跨进程读取血量 寄存器说明&#xff1a; 寄存器是处理器的一部&…

Windows部署MinIO,搭建本地对象存储服务

一、前言 二、MinIO介绍 三、Windows部署MinIO服务 1、准备工作 2、下载MinIO服务 3、启动MinIO服务 4、设置用户名密码 5、创建.bat文件启动服务 四、MinIO基本操作 1、存储桶管理 2、对象管理 3、数据查看 一、前言 基于外网的项目&#xff0c;可以使用阿里云等…

石墨舟氮气柜的特点和使用要求介绍

石墨舟是一种在半导体、太阳能光伏等高科技产业中广泛使用的专用工具&#xff0c;主要由高纯度石墨材料制成。它的形状通常像一只船&#xff0c;因此得名“石墨舟”。石墨舟主要用于承载硅片或其他基板材料通过各种高温处理过程&#xff0c;是制造半导体器件和太阳能电池片的关…

MIX OTP——监督动态子进程

现在&#xff0c;我们已经成功定义了我们的监督器&#xff0c;它将作为应用程序生命周期的一部分自动启动&#xff08;和停止&#xff09;。 但请记住&#xff0c;我们的 KV.Registry 在 handle_cast/2 回调中同时链接&#xff08;通过 start_link&#xff09;和监控&#xff…

分享一个导出数据到 Excel 的解决方案

前言 许多业务场景下需要处理和分析大量的数据&#xff0c;而 Excel 是广泛使用的文件格式&#xff0c;几乎所有人都能打开和查看 Excel 文件&#xff0c;因此将数据库中的原始数据处理后&#xff0c;导出到 Excel 是一个很常见的功能&#xff0c;对于数据管理、分析、备份、展…

侯捷C++面向对象高级编程(上)-2-构造函数

1.inline函数 2.访问级别 3.构造函数 4.重载

《UDS协议从入门到精通》系列——图解0x38:请求上传

《UDS协议从入门到精通》系列——图解0x38&#xff1a;请求上传 一、简介二、数据包格式2.1 服务请求格式2.2 服务响应格式2.2.1 肯定响应2.2.2 否定响应 三、通信示例 Tip&#x1f4cc;&#xff1a;本文描述中但凡涉及到其他UDS服务的&#xff0c;将陆续提供链接跳转方式以便快…

新学期必备,录取情况统计如何制作?

暑假即将开始&#xff0c;新学期离我们又近了一步&#xff0c;老师们是不是在为如何高效统计录取情况而头疼呢&#xff1f;别担心&#xff0c;分享一个超实用的小技巧——使用易查分小程序的新建填表功能&#xff0c;让你的录取统计工作变得简单又高效&#xff01; 打开易查分小…