CAT1 RTU软硬件设计开源资料分析(TCP协议版本 ) 一、CAT1 RTU方案简介: 远程终端单元( Remote Terminal Unit,RTU),一种针对通信距离较长和工业现场环境恶劣而设计的具有模块化结构的、特殊的计算机测控单元,它将末端检测仪表和执行机构与远程控制中心相连接。 奇迹TCP RTU版本的RTU,用于将远程现场的传感器和执行器数据传输到中央控制系统或监控中心。RTU 通常用于工业自动化、能源管理、环境监测等领域,它可以收集和传输各种类型的数据,如温度、压力、流量、电流、电压等,可以对各种类型的传感器进行远程控制。 二、CAT1 RTU方案的硬件设计分享 1.硬件功能概述 奇迹TCP RTU版本的RTU具有5*6贴片卡/外置SIM卡/全网通卡功能,支持卡基站定位,内嵌看门狗,掉线自动恢复。标准工业RS232/485接口,可以支持6-20V的宽电压输入,支持5路DO,5路DI,1路AI。 TCP RTU版本的RTU为用户提供标准固件以及对应源码,以及对应的TCP透传、DI、DO、AI等功能的操作例程。 2.产品硬件定义 2.1 系统框图: 2.2 HaaS框图: AM430EV5系列SOM板: AM430EV5 SOM板1(5*6卡)Haas框图 AM430EV5 SOM板2(全网通卡)Haas框图 AM430EV5 SOM板3(插拔卡)Haas框图 REV1主板Haas框图 2.3 SCH原理图拆解分析: AM430EV5系列SOM板SCH: 详情 点击此处 。 REV1主板SCH: 详情 点击此处 。 三、CAT1 RTU方案的软件设计分享 1.软件功能概述 功能概述: 网络通讯功能:为了实现远程控制中心对终端测控单元的控制,RTU首先应该具备联网的能力,通过网络将两者连接起来。实现了网络通讯,就要考虑网络稳定的问题,如果不稳定,需要实现断线重连等。服务器确定设备目前在线 参数配置功能:网络通讯可以选择TCP,MQTT等协议。连接TCP服务器,需要配置TCP服务器地址,端口号等参数;连接MQTT服务器需要配置鉴权信息,订阅和发布的Topic等参数。此外,其它复杂功能,也会涉及到一些参数的配置。 网络参数配置功能:上述功能实现后,可以考虑后期维护过程中,当RTU现场维护不方便,使用网络对其进行配置的方式。配置的方式可以选择多种形式,可以将上面的指令稍微修改,也可以另外写一份协议。 心跳功能:当RTU和远程服务器建立连接后,服务器判断设备是否在线,需要RTU定时发送一串数据给服务器,用通信来确认RTU在线。 远程控制功能:依托上述功能的实现,可以轻松地制定一些协议,远程服务器通过下发对应的协议,来控制RTU的DI、DO、AI等接口。控制方式包括读写、定时写、IO联动等。 2.软件功能定义 2.1 软件实现功能: AT指令配置设备运行参数,包括:服务器连接IP、端口号;心跳包开启/关闭;心跳包内容;注册包模式;注册包内容。以及复位和查询相关配置参数指令。 可随时选择进入、退出透传模式 心跳保持功能,心跳间隔可配置 网络重连功能 理论上可以发送无限长度数据包 波特率固定为115200,可以根据客户需求定制 网络AT指令和JSON协议配置功能,可以通过服务器下发远程AT指令配置 支持远程升级 支持5路DI,DI可以配置为,上拉/下拉,初始电平,主动上报,定时上报,可以单独读某一路,可以5路同时读 支持5路DO,包含,可配上拉/下拉,初始电平,重启状态,可以单独设置某一路的输出电平,也可以同时设置5路的输出电平 支持1路AI,可以采集4 - 20mA的电流,可以配置阈值,按照配置触发报警,周期上报 闹钟功能,DO定时执行设置动作 IO联动,DI/AI作为输入源,DO跟随动作,包括正向跟随、反向跟随DI;阈值内、阈值外执行相应动作 2.2 软件功能模块分析: 按照上面的分析,开发的过程就是实现一个个组件,几个组件完成一个模块,几个模块完成一个项目的开发。 开发过程会从核心组件验证,完整代码详解,调试三个章节来讲,如何使用服务层API或应用层组件中的代码实现组件和模块,从而完成整个项目。 2.3 软件流程图: 3.基开发豆平台开发分析 我们的目的是做一款RTU,根据RTU应该具有的的功能,代码可以分为:数据存储模块,AT指令模块,切卡模块,透传模式切换模块,TCP模块,心跳模块,掉线重连模块,DI模块,DO模块,AI模块,JSON模块,闹钟模块。 模块是根据相似的功能,把对应的代码放到同一个源文件中。每个功能算作一个组件,不同组件组合以来,构成了模块的主要功能。 数据存储组件 :包括文件创建,初始化,读写,关闭等。 AT指令组件 :包括串口初始化,串口数据接收,发送,数据分析,AT指令解析 切卡组件 :包括GPIO初始化,复位切卡 透传模式切换组件 :包括串口初始化,串口数据接收,发送,数据分析,切换模式 掉线重连组件 :包括连接状态检测,掉线重连 TCP组件 :包括参数配置,创建Socket,连接服务器,发送,接收数据 心跳组件 :包括参数配置,定时发送 DI组件 :包括参数配置,GPIO初始化,中断检测,模式切换,定时上报,中断上报 AI组件 :包括参数配置,ADC接口初始化,电流计算,定时上报 DO组件 :包括参数配置,GPIO初始化,模式切换,定时上报,跟随DI或者AI 闹钟组件 :包括参数配置,定时,超时动作 JSON组件 :包括数据接收,解析,数据发送 上述模块功能大致是按照依赖顺序来的,下面的模块实现可能要基于上面的组件。 AT指令模块 心跳模块 TCP网络模块 网络AT模块 主任务模块 升级模块 IO模块 文件模块 JSON协议模块 DO模块 DI模块 AI模块 ( 注:点击每个组件的名称,可以进入奇迹物联wiki知识库获得详解 ) 四、CAT1 RTU方案成果展示 1.SCH的讲解和Geber文件资料 详情请 点击此处 2.Datasheet 详情请 点击此处 3.AT指令手册 详情请 点击此处 4.产品BOM 详情请 点击此处 5.固件下载链接 详情请 点击此处 五、如何了解更多CAT1 RTU方案 请到 奇迹物联的Wiki知识库 了解更多的内容! 本文章源自奇迹物联开源的物联网应用知识库Cellular IoT Wiki,更多技术干货欢迎关注收藏Wiki: Cellular IoT Wiki 知识库 (https://rckrv97mzx.feishu.cn/wiki/wikcnBvAC9WOkEYG5CLqGwm6PHf) 欢迎同学们走进AmazIOT知识库的世界! 这里是为物联网人构建的技术应用百科,以便帮助你更快更简单的开发物联网产品。 Cellular IoT Wiki初心: 在我们长期投身于蜂窝物联网 ODM/OEM 解决方案的实践过程中,一直被物联网技术碎片化与产业资源碎片化的问题所困扰。从产品定义、芯片选型,到软硬件研发和测试,物联网技术的碎片化以及产业资源的碎片化,始终对团队的产品开发交付质量和效率形成制约。为了减少因物联网碎片化而带来的重复开发工作,我们着手对物联网开发中高频应用的技术知识进行沉淀管理,并基于 Bloom OS 搭建了不同平台的 RTOS 应用生态。后来我们发现,很多物联网产品开发团队都面临着相似的困扰,于是,我们决定向全体物联网行业开发者开放奇迹物联内部沉淀的应用技术知识库 Wiki,期望能为更多物联网产品开发者减轻一些重复造轮子的负担。 Cellular IoT Wiki沉淀的技术内容方向如下: 奇迹物联的业务服务范围:基于自研的NB-IoT、Cat1、Cat4等物联网模组,为客户物联网ODM/OEM解决方案服务。我们的研发技术中心在石家庄,PCBA生产基地分布在深圳、石家庄、北京三个工厂,满足不同区域&不同量产规模&不同产品开发阶段的生产制造任务。跟传统PCBA工厂最大的区别是我们只服务物联网行业客户。 连接我们 ,和10000+物联网开发者一起 降低技术和成本门槛 让蜂窝物联网应用更简单~~ 哈哈你终于滑到 最重要 的模块了, 千万不!要!划!走!忍住冲动!~ 欢迎加入飞书“开源技术交流群”,随时找到我们哦~ 点击链接 如何加入奇迹物联技术话题群 可以获取加入技术话题群攻略 Hey 物联网从业者, 你是否有了解过奇迹物联的官方公众号“ eSIM物联工场 ”呢? 这里是 奇迹物联的物联网应用技术开源wiki 主阵地,欢迎关注公众号,不迷路~ 及时获得 最新物联网应用技术沉淀发布