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

news/2024/4/30 15:00:28/文章来源:https://blog.csdn.net/AmazIOT/article/details/137598932

HTTP版RTU(支持GNSS)项目概述

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

产品定义描述

产品功能定义:

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

HTTP RTU+GNSS 版本的 RTU 具备 5*6 贴片卡/外置 SIM 卡/全网通卡功能,支持北斗/GPS 定位,支持卡基站定位,内置看门狗,掉线自动恢复。其配备标准工业 RS232/485 接口,支持 6-20V 宽电压输入,支持 5 路 DO,5 路 DI,1 路 AI。

HTTP RTU+GNSS 版本的 RTU 为用户提供标准固件及对应源码,以及 HTTP 透传、GNSS、DI、DO、AI 等功能的操作例程。用户可借此快速了解如何从 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(远程终端单元)。RTU 是一种针对通信距离较长和工业现场环境恶劣而设计的具有模块化结构的特殊计算机测控单元,用于将末端检测仪表和执行机构与远程调控中心的主计算机连接起来。

该项目实现的功能有:

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

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

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

  • 具备网络重连功能。

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

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

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

  • 支持远程升级。

  • 支持 5 路数字输入(DI),DI 可配置为上拉/下拉、初始电平、主动上报、定时上报,还可单独读取某一路或同时读取 5 路。

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

  • 支持 1 路模拟输入(AI),可采集 4-20mA 的电流,可配置阈值,根据配置触发报警,周期上报。

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

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

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

模块内拆解的功能点分析

模块是将具有相似功能的代码组织到同一个源文件中。每个功能都被视为一个功能点,不同功能点的组合构成了模块的主要功能。

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

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

  • 切卡功能点:包括 GPIO 初始化和复位切卡操作。

  • 透传模式切换功能点:包括串口初始化、串口数据接收、发送、数据分析以及切换模式操作。

  • 掉线重连功能点:包括连接状态检测和掉线重连操作。

  • TCP 功能点:包括参数配置、创建 Socket、连接服务器、发送和接收数据等操作。

  • 心跳功能点:包括参数配置和定时发送操作。

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

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

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

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

  • 闹钟功能点:包括参数配置、定时和超时动作操作。

  • JSON 功能点:包括数据接收、解析和发送操作。

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

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

根据上述分析,开发过程即为实现一个个功能点,再由数个功能点组成一个模块,最终由数个模块完成整个项目的开发。开发过程将从核心功能点验证、完整代码详解和调试三个章节展开,详细介绍如何使用服务层 API 或应用层组件中的代码来实现功能点和模块,从而完成整个项目。在软件开发部分,我们对这个开源项目进行了模块划分,并对每个模块拆解出相应的功能点。在本章节中,我们将对所有功能点进行逐一验证,拼接出我们最终的 RTU 产品代码。

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

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

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

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

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

工程成果下载

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

Datasheet

SCH的讲解和Geber文件资料

产品BOM

AT指令手册

JSON通信协议

固件

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

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

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

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

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

相关文章

蓝桥杯-单片机基础16——利用定时计数中断进行动态数码管的多窗口显示

综合查阅了网络上目前能找到的所有关于此技能的代码,最终找到了下述方式比较可靠,且可以自定义任意显示的数值。 传统采用延时函数的方式实现动态数码管扫描,在题目变复杂时效果总是会不佳,因此在省赛中有必要尝试采用定时计数器中…

洪水预警:如何通过数据可视化提前应对灾害

数据可视化在应对洪涝灾害问题中发挥着重要作用。洪涝灾害是一种常见而严重的自然灾害,给人们的生命、财产和生活带来了巨大的威胁和损失。而数据可视化技术通过将海量的数据转化为直观、易懂的图表、图像或地图等形式,帮助人们更好地理解洪涝灾害的发生…

微服务-2 Eureka

Eureka 启动页面: 同理再注册完order-service后,刷新启动页面: userservice 启动多台服务: [ 代码 ]:orderService.java(用 RestTemplate 调其他服务,用 userservice 代替 localhost:8081&…

视频图像的两种表示方式YUV与RGB(4)

本篇主要讲YUV与RGB之间的转换,包括YUV444 颜色编码格式 转为 RGB 格式 ,RGB颜色编码格式转为 YUV444 格式。 一、 YUV与RGB之间的转换 YUV与RGB颜色格式之间进行转换时 , 涉及一系列的数学运算 ; YUV 颜色编码格式转为RGB格式的转换公式 取决于 于 YUV …

数据结构——线性表(顺序存储结构)

语言:C语言软件:Visual Studio 2022笔记书籍:数据结构——用C语言描述如有错误,感谢指正。若有侵权请联系博主 一、线性表的逻辑结构 线性表是n个类型相同的数据元素的有限序列,对n>0,除第一元素无直接…

电能质量问题有几类?再怎样进行谐波治理

一、为什么要进行电能质量的治理 电能质量是指电力系统中电能的质量。理想的电能应该是完美对称的正弦波。一些因素会使波形偏离对称正弦,由此便产生了电能质量问题。一方面我们研究存在哪些影响因素会导致电能质量问题,一方面我们研究这些因素会导致哪…

如何用electron(vue)搜索电脑本地wifi

对于搜索本地 WiFi 网络,可以使用 Electron 结合 Node.js 来编写一个简单的应用程序。 以下是一个基本的示例,它使用 Node.js 的 wifi 模块来搜索并列出附近的 WiFi 网络: 首先,确保你已经安装了 Node.js 和 Electron。 然后&am…

linux 搭建Samba服务

Samba简介 SAMBA是⼀个实现不同操作系统之间⽂件共享和打印机共享的⼀种SMB协议的免费软件, SMB(Server Message block)协议是window下所使⽤的⽂件共享协议,我们在linux系统或 者其类unix系统当中可以通过samba服务来实现SMB功能。 (1&…

【SpringBoot】-- mapstruct进行类型转换时Converter实现类不能自动生成代码问题解决

问题描述 我的问题如下&#xff1a; 应该在红色区域生成对应的转换细节&#xff0c;但是这里只返回了一个空对象 问题解决 加入lombok-mapstruct-binding依赖,也要注意依赖引用顺序问题 <dependency><groupId>org.projectlombok</groupId><artifactId&…

chrome google浏览器添加插件扩展失败怎么办,无法从该网站添加应用、扩展程序和用户脚本确定,

无法从该网站添加应用、扩展程序和用户脚本确定 chrome google浏览器添加插件扩展失败怎么办&#xff0c;无法从该网站添加应用、扩展程序和用户脚本确定&#xff0c; 需要打开调试模式 chrome://extensions/

NzN的数据结构--选择排序

接上文&#xff0c;本章我们来介绍选择排序。先三连后看才是好习惯~~~ 目录 一、基本思想 二、直接选择排序 三、堆排序 一、基本思想 每一次从待排序的数据元素中选出最小&#xff08;或最大&#xff09;的一个元素&#xff0c;存放在序列的起始位置&#xff0c;直到全部待…

Burp Suite Professional 2024.3.1 for macOS x64 ARM64 - 领先的 Web 渗透测试软件

Burp Suite Professional 2024.3.1 for macOS x64 & ARM64 - 领先的 Web 渗透测试软件 世界排名第一的 Web 渗透测试工具包 请访问原文链接&#xff1a;Burp Suite Professional 2024.3.1 for macOS x64 & ARM64 - 领先的 Web 渗透测试软件&#xff0c;查看最新版。原…

[机器学习Day 1~3

[机器学习]Day 1~3 数据预处理第1步&#xff1a;导入库第2步&#xff1a;导入数据集第3步&#xff1a;处理丢失数据第4步&#xff1a;解析分类数据创建虚拟变量 第5步&#xff1a;拆分数据集为训练集合和测试集合第6步&#xff1a;特征量化 简单线性回归模型第一步&#xff1a;…

Echarts-实现地图并轮播地图信息

目录 ./map-geojson/jinhua.json./CenterMap.vue./center.vue 使用地图组件效果 ./map-geojson/jinhua.json {"type":"FeatureCollection","features":[{"type":"Feature","properties":{"adcode":330…

redis过期监听机制

转自&#xff1a;https://www.cnblogs.com/wangyunhong/articles/16505079.html 1.redis配置 1.打开conf/redis.conf 文件&#xff0c;取消注释&#xff1a;notify-keyspace-events Ex 2.重启redis 3.如果设置了密码需要重置密码&#xff1a;config set requirepass **** 3…

uniapp小程序中使用video视频播放卡顿

问题:在使用uniapp小程序的video视频播放,视频已经在播放了,但是进度条没走,还是卡顿的状态(测试ios能正常使用,安卓手机会出现此问题) 在网上找了很多方法,最多的说是用:custom-cache"false",试了并没有效果,看来和我问题不一样,后来用了个简单粗暴的方法,发现是有效…

前端三剑客 —— JavaScript (第四节)

目录 内容回顾&#xff1a; 函数 *** 什么是函数 函数定义 函数调用 函数使用示例 匿名函数 无参函数 箭头函数 1、无参无返回值 2、无参有返回值 3、无参有返值&#xff0c;但函数体只有一条语句&#xff0c;则大括号可以省略&#xff0c; return 语句可以省略 4…

零售EDI:Princess Auto EDI对接

Princess Auto 是一家加拿大零售连锁店&#xff0c;专门从事农场、工业、车库、液压和剩余物品的销售。 Princess Auto 总部位于马尼托巴省温尼伯&#xff0c;截至 2024 年 1 月在 10 个省份拥有并经营 55 家商店以及三个配送中心。各种商品均以其“Powerfist”和“Pro.Point”…

【3GPP】【核心网】【5G-A】5G-A三载波聚合介绍

1. 欢迎大家订阅和关注&#xff0c;3GPP通信协议精讲&#xff08;2G/3G/4G/5G/IMS&#xff09;知识点&#xff0c;专栏会持续更新中.....敬请期待&#xff01; 目录 1. 5G-A概念 2. 什么是3CC 3. 3CC的技术看点 4. 3CC的应用场景 5. 3CC支持的终端 1. 5G-A概念 5G-A全称5G…

Unity核心学习

目录 认识模型的制作流程模型的制作过程 2D相关图片导入设置图片导入概述纹理类型设置纹理形状设置纹理高级设置纹理平铺拉伸设置纹理平台打包相关设置 SpriteSprite Editor——Single图片编辑Sprite Editor——Multiple图片编辑Sprite Editor——Polygon图片编辑SpriteRendere…