首页 » 脚本文章 » 红豆开源项目三: 从0-1设计一款HTTP版本RTU产品的软硬件全过程(功能模块产品联网配置)

红豆开源项目三: 从0-1设计一款HTTP版本RTU产品的软硬件全过程(功能模块产品联网配置)

admin 2024-07-23 20:03:10 脚本文章 0

扫一扫用手机浏览

文章目录 [+]

物联网Cat 1产品开发初学者: 本文将介绍产品的软硬件定义、硬件设计分析、软件设计分析,并详细讲解单一功能点功能模块的验证过程和测试验证方法。
通过学习本内容,初学者可以在 1-2 天内完成一款 Cat 1 产品的开发全过程,快速提升物联网产品开发的实践能力。
本文也是红豆开源产品的一个实战讲解项目

负责开发类似RTU(Cat 1 版本)功能定义的产研人员:通过本案例,你将全面了解 RTU 的设计全部功能模块拆解分析,并结合红豆开源平台(开源硬件+RTOS 开源资料),快速进行微改动,完成自己的物联网产品项目研发设计。

需要设计一款RTU产品的项目负责人:本案开源了产品设计软硬件全部设计资料,以及产品手册、AT指令手册、JSON通信协议等开发成果,可以直接转为自己量产产品设计资料,节省开发成本。

红豆开源项目三: 从0-1设计一款HTTP版本RTU产品的软硬件全过程(功能模块产品联网配置) 红豆开源项目三: 从0-1设计一款HTTP版本RTU产品的软硬件全过程(功能模块产品联网配置) 脚本文章
(图片来自网络侵删)
HTTP版RTU(支持GNSS)项目概述

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

产品定义描述产品功能定义:

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

红豆开源项目三: 从0-1设计一款HTTP版本RTU产品的软硬件全过程(功能模块产品联网配置) 红豆开源项目三: 从0-1设计一款HTTP版本RTU产品的软硬件全过程(功能模块产品联网配置) 脚本文章
(图片来自网络侵删)

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

HTTP RTU+GNSS 版本的 RTU 为用户提供标准固件及对应源码,以及 HTTP 透传、GNSS、DI、DO、AI 等功能的操作例程。
用户可借此快速了解如何从 0 开始开发项目,快速完成产品功能定义,加快开发进程。

产品硬件分析框图:

系统框图

暂时无法在飞书文档外展示此内容

功能简介

电源:为 SOM 核心板+底板和扩展外设提供电源。
SOM 核心板+底板:作为产品的核心部分。
上位机:用于配置设备参数。
4G 天线:用于信号的接收和发送。
DI/DO:开关量输入和输出。
AI:模拟输入。
SOM 板和底板之间的接口使用板对板连接器。

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

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

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

也可以购买标准硬件进行软件开发,购买渠道:TB搜索“奇迹物联企业店”软件开发分析:

开发一个项目时会产生大量代码。
通常,项目开发人员会将项目功能拆分成一个个功能点,然后逐一实现,最后合并成最终的产品代码。

产品软件流程分析

我们的目标是研发一款 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链接 。

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

int dtu_init_trans_conf(void){ //初始化连接类型 st_dtu_file_t.type = 0; //初始化默认IP,onenet 多协议接入 tcp sprintf(st_dtu_file_t.ip,"183.230.40.40"); //初始化端口 st_dtu_file_t.port = 1811; //设置默认上报心跳 st_dtu_file_t.heartflag = 1; //设置默认心跳内容为hearttest sprintf(st_dtu_file_t.heart,"hearttest"); //设置心跳间隔时间为30s st_dtu_file_t.hearttime = 30; //设置默认上报注册包 st_dtu_file_t.linkflag = 1; //设置注册包内容为"275619#amaziot4000mt#AP4000MT",内容是根据onenet 多协议接入,tcp配置的脚本上报规则,上报后,onenet会不停下发 sprintf(st_dtu_file_t.link,"275619#amaziot4000mt#AP4000MT"); //配置网络AT指令默认前缀是"am.iot" sprintf(st_dtu_file_t.cmdpw,"am.iot"); //三合一切卡,默认卡是 st_dtu_file_t.sim = 1; //sim卡禁止切卡标志 st_dtu_file_t.simlock = 0; //默认不上报gnss语句 st_dtu_file_t.gpsflag = 0; //返回文件首地址 return 0;}工程成果下载

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

Datasheet

SCH的讲解和Geber文件资料

产品BOM

AT指令手册

JSON通信协议

固件

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

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

欢迎同学们走进AmazIOT知识库的世界!

这里是为物联网人构建的百度百科,以便帮助你更快更简单的开发物联网产品。

IoT Wiki初心:

我们在物联网 ODM 解决方案的长期实践中,一直受到物联网技术碎片化和产业资源碎片化的困扰。
从产品选项、方案制定,到开发和测试,物联网碎片的技术信息一直影响着团队的效率和产品交付。
为了降低重复造轮子的工作,我们开始对物联网的碎片化技术和产业资源相关产品知识进行沉淀管理。
后来发现,许多同行都面临着类似的困扰,因此我们决定将内部沉淀的知识库以 Wiki 的形式开放给所有物联网行业开发者,希望能为更多的物联网人减少一些重复造轮子的工作。

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

标签:

相关文章