红豆Cat 1开源|项目一: 从0-1设计一款TCP版本RTU(支持Modbus+GNSS)产品的软硬件全过程

本文主要是介绍红豆Cat 1开源|项目一: 从0-1设计一款TCP版本RTU(支持Modbus+GNSS)产品的软硬件全过程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

TCP版RTU(支持Modbus+GNSS)项目概述

RTU(Remote Terminal Unit),中文即远程终端控制系统,负责对现场信号、工业设备的监测和控制。RTU是构成企业综合自动化系统的核心装置,通常由信号输入/出模块、微处理器、有线/无线通讯设备、电源及外壳等组成,由微处理器控制,并支持网络系统。它实现企业中央监控与调度系统对生产现场一次仪表的遥测、遥控、遥信和遥调等功能。RTU可以实现远程测控设备,通过控制现场IO控制现场设备运行。

产品定义描述

产品功能定义:

传统设备需要接入云平台,在不改变传统设备的情况下,通过串口连接一个可以连接服务器的设备,在不修改传统设备的情况下,赋能其上云功能。

TCP RTU+GNSS+Modbus采用5*6贴片卡/外置SIM卡/全网通卡,支持北斗/GPS定位,支持卡基站定位,内嵌看门狗,掉线自动恢复。标准工业RS232/485接口,可以支持6-20V的宽电压输入,支持5路DO,5路DI,1路AI。

TCP RTU+GNSS+Modbus为用户提供标准固件以及对应源码,以及对应的TCP透传、GNSS、DI、DO、AI、Modbus等功能的例程详解,用户可以快速了解如何去从0开发一个项目,快速完成自己的产品功能定义,加速开发。

产品硬件分析框图:

系统框图

功能简介

1. 电源:向SOM核心板+底板,以及扩展外设提供电源

2. SOM核心板+底板:产品核心部分

3. 上位机:配置设备参数。

4. 4G天线:信号接收发送

5. DI/DO:开关量输入,输出

6. AI:模拟输入

7. SOM板和底板之间的接口使用板对板连接器

硬件资料包括,SOM板原理图和PCB,主板原理图和PCB,部分组件资料。

硬件设计原理图、Layout图、BOM信息等资料详情点击下面链接🔗:硬件开发部分

产品核心板资料和产品datesheet点击如下链接🔗:1)AM430EV5 SOM板1(5*6卡) 2)Datasheet

也可以购买标准硬件进行软件开发,购买链接:

https://item.taobao.com/item.htm?id=768412868192&spm=a1z10.1-c-s.w4004-25306266394.3.7c4517edPbkQLY

软件开发分析:

开发一个项目,代码量庞大。一般情况下,一个项目开发,会把项目功能拆解成为一个个功能点,逐一实现,最后形成最终产品代码。

产品软件流程分析

我们的目的是做一款RTU,一种针对通信距离较长和工业现场环境恶劣而设计的具有模块化结构的、特殊的计算机测控单元,它将末端检测仪表和执行机构与远程调控中心的主计算机连接起来。

项目实现功能:

  • AT指令配置设备运行参数,包括:服务器连接IP、端口号;心跳包开启/关闭;心跳包内容;注册包模式;注册包内容。以及复位和查询相关配置参数指令。

  • 可随时选择进入、退出透传模式

  • 心跳保持功能,心跳间隔可配置

  • 网络重连功能

  • 理论上可以发送无限长度数据包

  • 波特率固定为115200,可以根据客户需求定制

  • 网络AT指令和JSON协议配置功能,可以通过服务器下发远程AT指令配置

  • 支持远程升级

  • 支持5路DI,DI可以配置为,上拉/下拉,初始电平,主动上报,定时上报,可以单独读某一路,可以5路同时读

  • 支持5路DO,包含,可配上拉/下拉,初始电平,重启状态,可以单独设置某一路的输出电平,也可以同时设置5路的输出电平

  • 支持1路AI,可以采集4 - 20mA的电流,可以配置阈值,按照配置触发报警,周期上报

  • 闹钟功能,DO定时执行设置动作

  • IO联动,DI/AI作为输入源,DO跟随动作,包括正向跟随、反向跟随DI;阈值内、阈值外执行相应动作

  • 支持设置50组(01H 02H 03H 04H 05H 06H)指令,设置两组(10H)指令。支持按照设置的功能码等配置,通过Modbus轮训,支持Modbus RTU,JSON三种协议格式上报。

根据RTU应该具有的的功能,代码可以分为:数据存储模块,AT指令模块,切卡模块,透传模式切换模块,TCP模块,心跳模块,掉线重连模块,GNSS模块,DI模块,DO模块,AI模块,JSON模块,闹钟模块,Modbus模块。

模块内拆解的功能点分析

模块是根据相似的功能,把对应的代码放到同一个源文件中。每个功能算作一个功能点,不同功能点组合以来,构成了模块的主要功能。

  • 数据存储功能点:包括文件创建,初始化,读写,关闭等。

  • AT指令功能点:包括串口初始化,串口数据接收,发送,数据分析,AT指令解析

  • 切卡功能点:包括GPIO初始化,复位切卡

  • 透传模式切换功能点:包括串口初始化,串口数据接收,发送,数据分析,切换模式

  • 掉线重连功能点:包括连接状态检测,掉线重连

  • TCP功能点:包括参数配置,创建Socket,连接服务器,发送,接收数据

  • 心跳功能点:包括参数配置,定时发送

  • GNSS功能点:包括参数配置,串口初始化,串口数据接收,数据分析,模式切换,定时上报

  • DI功能点:包括参数配置,GPIO初始化,中断检测,模式切换,定时上报,中断上报

  • AI功能点:包括参数配置,ADC接口初始化,电流计算,定时上报

  • DO功能点:包括参数配置,GPIO初始化,模式切换,定时上报,跟随DI或者AI

  • 闹钟功能点:包括参数配置,定时,超时动作

  • JSON功能点:包括数据接收,解析,数据发送

  • Modbus功能点:包括参数配置,数据接收,解析,数据发送

上述模块功能点大致是按照依赖顺序来的,下面讲述的模块实现可能要基于上面的功能点来实现。

开发过程(基于红豆平台搭乐高模式开发)

按照上面的分析,开发的过程就是实现一个个功能点,几个功能点完成一个模块,几个模块完成一个项目的开发。开发过程会从核心功能点验证,完整代码详解,调试三个章节来讲,如何使用服务层API或应用层组件中的代码实现功能点和模块,从而完成整个项目。在软件开发部分,我们对这个开源项目进行了模块划分,并且对每个模块拆解出相应的功能点,这个章节,我们要对所有功能点,逐一验证,拼接出我们最终的RTU产品代码。

本产品基于以上软件分析涉及以下14个功能模块:数据存储模块,AT指令模块,切卡模块,透传模式切换模块,TCP模块,心跳模块,掉线重连模块,GNSS模块,DI模块,DO模块,AI模块,JSON模块,闹钟模块,Modbus模块 。

这14个功能模块在红豆开源平台RTOS系统服务层组件&应用层组件都提供相关的服务,可以直接采用搭乐高开发模式。红豆平台的相关资源介绍链接:红豆平台RTOS技术架构

第一步:基于RTOS的组件快速完成每一个功能模块的验证,针对本次工程每个功能模块验证详情链接:核心功能点验证

第二步:验证完功能点和功能模块后,从0快速搭建出一个RTU工程,进行系统级联调测试。RTU工程完整代码讲解链接:完整代码详解 ;RTU工程代码调试详解链接:调试:产品固件Gitee链接:​ 软件源码树文件介绍及Gitee链接

本工程的代码对第一次接触红豆平台也非常友好,提供详细的代码讲解备注,例如以下:文件模块的代码,可以迅速了解上手,也可以根据自己的需求做优化改进。

工程成果下载

开发成果属于项目完成后,总结出来的一些说明性文件,包括Datasheet,AT指令手册,通信协议,以及固件等,可以作为本开源项目的工程量产资料。

Datasheet

SCH的讲解和Gerber文件资料

产品BOM

AT指令手册

JSON通信协议

固件

如需下载相关资料或者需要技术交流请联系我们:

物联网技术发展日新月异,也欢迎反馈您的技术需求,我们会及时更新迭代红豆平台的技术应用能力。

部分素材来源于网络,仅用于交流学习,如有侵权请联系删除!

这篇关于红豆Cat 1开源|项目一: 从0-1设计一款TCP版本RTU(支持Modbus+GNSS)产品的软硬件全过程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/891826

相关文章

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

如何用Docker运行Django项目

本章教程,介绍如何用Docker创建一个Django,并运行能够访问。 一、拉取镜像 这里我们使用python3.11版本的docker镜像 docker pull python:3.11 二、运行容器 这里我们将容器内部的8080端口,映射到宿主机的80端口上。 docker run -itd --name python311 -p

阿里开源语音识别SenseVoiceWindows环境部署

SenseVoice介绍 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测多语言识别: 采用超过 40 万小时数据训练,支持超过 50 种语言,识别效果上优于 Whisper 模型。富文本识别:具备优秀的情感识别,能够在测试数据上达到和超过目前最佳情感识别模型的效果。支持声音事件检测能力,支持音乐、掌声、笑声、哭声、咳嗽、喷嚏等多种常见人机交互事件进行检测。高效推

Android实现任意版本设置默认的锁屏壁纸和桌面壁纸(两张壁纸可不一致)

客户有些需求需要设置默认壁纸和锁屏壁纸  在默认情况下 这两个壁纸是相同的  如果需要默认的锁屏壁纸和桌面壁纸不一样 需要额外修改 Android13实现 替换默认桌面壁纸: 将图片文件替换frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.*  (注意不能是bmp格式) 替换默认锁屏壁纸: 将图片资源放入vendo

在cscode中通过maven创建java项目

在cscode中创建java项目 可以通过博客完成maven的导入 建立maven项目 使用快捷键 Ctrl + Shift + P 建立一个 Maven 项目 1 Ctrl + Shift + P 打开输入框2 输入 "> java create"3 选择 maven4 选择 No Archetype5 输入 域名6 输入项目名称7 建立一个文件目录存放项目,文件名一般为项目名8 确定

金融业开源技术 术语

金融业开源技术  术语 1  范围 本文件界定了金融业开源技术的常用术语。 本文件适用于金融业中涉及开源技术的相关标准及规范性文件制定和信息沟通等活动。

安全管理体系化的智慧油站开源了。

AI视频监控平台简介 AI视频监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒,省去繁琐重复的适配流程,实现芯片、算法、应用的全流程组合,从而大大减少企业级应用约95%的开发成本。用户只需在界面上进行简单的操作,就可以实现全视频的接入及布控。摄像头管理模块用于多种终端设备、智能设备的接入及管理。平台支持包括摄像头等终端感知设备接入,为整个平台提

怎么让1台电脑共享给7人同时流畅设计

在当今的创意设计与数字内容生产领域,图形工作站以其强大的计算能力、专业的图形处理能力和稳定的系统性能,成为了众多设计师、动画师、视频编辑师等创意工作者的必备工具。 设计团队面临资源有限,比如只有一台高性能电脑时,如何高效地让七人同时流畅地进行设计工作,便成为了一个亟待解决的问题。 一、硬件升级与配置 1.高性能处理器(CPU):选择多核、高线程的处理器,例如Intel的至强系列或AMD的Ry

Vue3项目开发——新闻发布管理系统(六)

文章目录 八、首页设计开发1、页面设计2、登录访问拦截实现3、用户基本信息显示①封装用户基本信息获取接口②用户基本信息存储③用户基本信息调用④用户基本信息动态渲染 4、退出功能实现①注册点击事件②添加退出功能③数据清理 5、代码下载 八、首页设计开发 登录成功后,系统就进入了首页。接下来,也就进行首页的开发了。 1、页面设计 系统页面主要分为三部分,左侧为系统的菜单栏,右侧