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

MQTT版DTU(GNSS)项目概述

DTU 通常指的是数据传输单元,它是一种用于将现场设备的数据通过无线或有线方式传输到远程控制中心的设备。DTU 可以实现设备与控制中心之间的数据通信,以便实时监测和控制设备的运行状态。

产品定义描述

产品功能定义:

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

MQTT DTU+GNSS版本DTU具有5*6贴片卡/外置SIM卡/全网通卡功能,支持北斗/GPS定位,支持卡基站定位,内嵌看门狗,掉线自动恢复。标准工业RS232/485接口,可以支持6-20V的宽电压输入。

MQTT DTU+GNSS版本DTU为用户提供标准固件以及对应源码,以及对应的MQTT透传、GNSS功能、AT指令配置等功能的操作例程,用户可以快速了解如何去从0开发一个项目,快速完成自己的产品功能定义,加速开发。

产品硬件分析框图:

系统框图

功能简介

  1. 电源:为 SOM 核心板+底板和扩展外设提供电源。

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

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

  4. 4G 天线:用于信号的接收和发送。

  5. SOM 板和底板之间的接口:使用板对板连接器。

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

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

产品核心板资料和产品datesheet点击如下链接🔗:AM430EV5 SOM板4(5*6卡/GNSS)  datasheet

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

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

软件开发分析:

开发一个项目,通常会涉及大量的代码。一般来说,我们会将项目的功能拆分成一个个独立的功能点,然后逐个实现,最终组合成完整的产品代码。

产品软件流程分析

我们的目标是开发一款 DTU(数据传输单元),它是一种针对通信距离较长和工业现场环境恶劣而设计的具有模块化结构的、特殊的计算机数据传输单元。这款 DTU 将末端检测仪表和执行机构与远程调控中心的主机通过数据透传方式连接在一起。

该项目实现的功能包括:

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

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

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

  • 具备网络重连功能。

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

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

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

  • 支持远程升级。

根据 DTU 应该具有的功能,代码可以分为以下模块:数据存储模块、AT 指令模块、切卡模块、透传模式切换模块、MQTT 模块、心跳模块、掉线重连模块、GNSS 模块和 JSON 模块。

模块内拆解的功能点分析

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

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

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

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

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

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

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

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

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

  上述模块功能点的顺序大致反映了它们之间的依赖关系,下面讲述的模块实现可能会依赖于前面的功能点。

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

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

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

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

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

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

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

工程成果下载

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

datasheet

SCH的讲解和Geber文件资料

产品BOM

AT指令手册

JSON通信协议

固件

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

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

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

  • 14
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值