基于Linux系统的边缘智能终端(RK3568+EtherCAT+PCIe+4G+5G)
背景
现有产品基本都是传统的产品,比如之前写的RTU还有基于Linux系统的物联网采集终端都是传统意义的产品,大家做的都差不多,能拼的除了价格之外就是软硬件的基本功了,好的产品肯定是要经过时间的磨合的。没有任何人可以写出来没有bug的软件,而且软件功能越多出现问题的概率就会越大。传统的设备已经趋于完备,市场存量也差不多了,厂家也玩不出来什么花样了。但客户的需求或者创造出来的客户需求还在不停变化,没法子开出来一款产品能满足所有客户的需求。在人工智能大模型盛行的情况下,设备的智能也显得很有必要,但是用智能来做啥,当然这个有很多种可能,比如预测性维护,多参数整合处理,图像识别和视频处理之类的,设备具备了1TOPS的算力,算力不算大,但跑一些专用的模型还是可以的。
需求
- 供电电压宽范围,DC9~36V;
- 支持上电自动开机,也可按键开机;
- 双路千兆以太网接口;
- 支持4G/5G;
- 支持WiFi/Bluetooth;
- 内嵌EtherCAT从站芯片,可实现实时控制;
- 支持标准Linux内核,并可添加实时补丁;
- 可定制安卓11系统;
- 支持扩展SSD,M.2接口;
- 支持PCIe3.0扩展,M.2接口;
- 支持USB3.0扩展,M.2接口;
- 支持SATA2.0扩展,M.2接口;
- 支持TF卡;
- 支持HDMI显示输出;
- 支持4路USB3.0接口;
- 支持音频接口;
- 支持4路继电器的常开常闭接点输出;
- 支持4路数字量采集,电压0~24V;
- 支持一路CAN-FD;
- 支持两路RS485接口;
- 支持type-c接口,用于调试;
- 软件可支持node-red;
- 设备内存2G,eMMC为16G,其他配置可定制,也可实现全部国产化。
技术难点
这个项目本来公司打算作为产品来开发,突发情况引入了一个项目需求,跟这个比较吻合,由于前面项目需求沟通错位耽误了很长时间,到我们介入时甲方已经丧失了信心,如果我们按照产品开发的流程走下来,这个项目基本就拜拜了。在我们介入后,当面跟甲方确定了对外接口的需求,因为当时处理器肯定是要用RK3568,如果能把接口定义清楚了,我们的工作就可以先开展起来。
甲方要求可以实时监控现有控制系统的数据,并能够将现有数据抓取回来。这个问题早期理解有点偏差,导致设计出现了点问题,抓取现场数据只要网线和处理器性能足够就可以了,现场控制总线都是网络,利用网络抓包工具的开源库,在其基础上实现数据分析处理就可以将现场数据抓回来。
本设备公司要求全工业级设计,任何器件的选型都要工业级。这几个通讯模块的选型是要命的。最终4G和5G模组都是选用的移远的模组,移远的品质还是值得信赖的。
对于替代PLC实现现场的实时控制,首先硬件肯定是没问题,软件层面需要过滤几个问题,第一个就是实时性,Linux系统加上实时内核补丁是可以满足的。第二个问题是怎么解决多变的现场环境导致的需求多变,在这里就得引入node-Red来实现可视化编程,让客户自己实现业务逻辑。
再一个就是实时组网控制,按说使用实时内核加千兆网络可以满足实时的控制,但是在设备交互式还是比不上硬件实现的实时性高,多节点联合控制时,每个节点的进出都会影响数据的实时性。这里增加了AX58100芯片,实现EtherCAT总线的实时操作。
对于简单的需求我们将物联网网关的那套软件移植了进来,具体请看《基于Linux系统的物联网智能终端》,可以实现现场基于Modbus协议的传感器,仅通过配置就可以接入,跟云端通讯可以用MQTT协议实现。
再一个难点就是关于NPU的使用,当前场景下我们不是最终用户,也不太清楚要跑什么模型在上面,首先让设备具备了这个能力,至于怎么用,就等后面需求明确了再从软件层面去实现吧。
产品实现细节以及相关信息待后续补充吧!
相关文章:
基于Linux系统的边缘智能终端(RK3568+EtherCAT+PCIe+4G+5G)
背景 现有产品基本都是传统的产品,比如之前写的RTU还有基于Linux系统的物联网采集终端都是传统意义的产品,大家做的都差不多,能拼的除了价格之外就是软硬件的基本功了,好的产品肯定是要经过时间的磨合的。没有任何人可以写出来没有…...
Java 线程池内部任务出异常后,如何知道是哪个线程出了异常?
你的回答(口语化,面试场景) 好的,这个问题需要结合线程池的异常处理机制来回答。 Java线程池内部任务抛出的异常默认会被“吞掉”,但可以通过以下方法定位具体线程的异常: 方法1:在任务代码中捕…...
热图回归(Heatmap Regression)
热图回归(Heatmap Regression)是一种常用于关键点估计任务的方法,特别是在人体姿态估计中。它的基本思想是通过生成热图来表示某个关键点在图像中出现的概率或强度。以下是热图回归的主要特点和工作原理: 主要特点 热图表示: 每个关键点对应一个热图,热图中的每个像素值…...
信奥赛CSP-J复赛集训(模拟算法专题)(6):P6352 [COCI 2007/2008 #3] CETIRI
信奥赛CSP-J复赛集训(模拟算法专题)(6):P6352 [COCI 2007/2008 #3] CETIRI 题目描述 你原本有 4 4 4 个数,它们从小到大排序后构成了等差数列。 但是现在丢失了一个数,并且其余的三个数的顺序…...
2025-03-09 学习记录--C/C++-PTA 习题11-1 输出月份英文名
合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。💪🏻 一、题目描述 ⭐️ 裁判测试程序样例: #include <stdio.h>char *getmonth( int n );int main() {int n;char …...
spring IOC(实现原理)
文章目录 依赖注入控制反转相关Spring 框架的 Bean管理的配置文件方式实例化Bean的三种方式无参构造器实例化静态工厂方法实例化实例工厂方法实例化静态和动态对比 注解常用注解纯注解 其它问题为什么p 命名空间方式需要无参构造 依赖注入 **依赖注入(DI࿰…...
linux环保监测4G边缘网关:环境数据的可靠传输者
环保监测工控机,常被称为“环境数据采集器”或“环保数据终端”,是一种专门用于环境监测领域的工业计算机。它具备强大的数据处理能力、稳定的运行性能和多种接口,能够实时采集、处理和传输环境监测数据。这些数据包括空气质量、水质、噪声、…...
【哇! C++】类和对象(五) - 赋值运算符重载
目录 编辑 一、运算符重载 1.1 运算符重载概念 1.2 全局运算符重载 1.3 运算符重载为成员函数 二、赋值运算符重载的特性 2.1 赋值运算符重载需要注意的点 2.2 赋值运算符重载格式 2.2.1 传值返回 2.2.2 传引用返回 2.2.3 检查自己给自己赋值 三、赋值运算符重载的…...
基于单片机的风速报警装置设计
标题:基于单片机的风速报警装置设计 内容:1.摘要 本设计聚焦于基于单片机的风速报警装置,旨在解决传统风速监测缺乏实时报警功能的问题。采用单片机作为核心控制单元,结合风速传感器采集风速数据。经实验测试,该装置能准确测量 0 - 60m/s 范…...
Linux一键安装zsh终端美化插件
zsh应该是很多人第一个用的Linux终端美化软件 但是其安装略微复杂,让人有些困扰 所以我花了两天写了一键安装脚本,实测运行后直接安装好 适用于Ubuntu、Debian、Red Hat、macOS等系统 直接安装好zsh 以及常用插件 autojump 跳转插件 zsh-syntax-highlig…...
Docker部署Ragflow(完美解决502 bad gateway)
Docker快速启动Ragflow:Dev 系统准备 ubuntu server 24.04 CPU ≥ 4 cores (x86);RAM ≥ 16 GB;Disk ≥ 100 GB; 更新系统 sudo apt update 下载源码 git clone https://github.com/infiniflow/ragflow.git cd ragflow/docker # 切换稳定版本分支 git checkout -f v0.17.…...
C++ 算法竞赛STL以及常见模板
目录 STL /*═══════════════ Vector ═══════════════*/ /*════════════════ Pair ════════════════*/ /*══════════════ String ════════════════*/ /*══════════…...
前端数据模拟 Mock.js 学习笔记(附带详细)
前端数据模拟 Mock.js 学习笔记 在前端开发过程中,数据模拟是一项至关重要的环节。当后端接口尚未完成或者需要独立进行前端开发与测试时,Mock.js 能发挥巨大作用,它可以模拟各种数据场景,助力前端开发高效进行。 一、Mock.js 的…...
Web基础:HTML快速入门
HTML基础语法 HTML(超文本标记语言) 是用于创建网页内容的 标记语言,通过定义页面的 结构和内容 来告诉浏览器如何呈现网页。 超文本(Hypertext) 是一种通过 链接(Hyperlinks) 将不同文本、图像…...
学习一下Qt中的分裂器以及为什么要使用分裂器?
关于分裂器的使用和内容这篇文章写的很详细了[QT_043]Qt学习之分裂器(QSplitter)-CSDN博客 我就说一下为什么已经有布局器要还使用分裂器 在 Qt 中,布局时使用分裂器(QSplitter)主要有以下几个方面的好处ÿ…...
Xshell链接Linux机器更换jdk版本
都25年了,不会还有人在用 jdk1.8 吧? 那么问题来了,如果公司让你更新机器上的jdk版本,你又刚好是一个小白没操作过,怎么办?别急,步骤这就奉上~ 编辑 .bashrc 或 .zshrc 配置文件: 如果你使用的…...
2025.3.3总结
周一这天,我约了绩效教练,主要想了解专业类绩效的考核方式以及想知道如何拿到一个更好的绩效。其他的岗位并不是很清楚,但是专业类的岗位,目前采取绝对考核,管理层和专家岗采取相对考核,有末尾淘汰。 通过…...
如何应用大模型 — 大模型使用范式
从OpenAI发布ChatGPT开始,大模型就开始受到大家关注,到DeepSeek-R1出现,大家的关注达到了顶峰,越来越多的企业,机构,学校,政府部门希望接入大模型,希望通过大模型来提升效率…...
DeepSeek本机部署(基于Ollama和Docker管理)
目录 一、ollama 与 docker 简介 (一)ollama(Ollama) (二)docker 二、利用 ollama 和 docker 配置 deepseek-r1 的准备工作 (一)硬件需求 (二)软件安装 三、配置 deepseek-r1…...
C++复试笔记(一)
Setw 是C中用于设置输出字段宽度的函数。当使用 setw(3) 时,它会设置紧接着的输出字段的最小宽度为3个字符。如果字段内容长度小于3,则会在左侧填充空格以达到指定宽度;如果内容长度大于或等于3,则全部内容将被输出,…...
如何让一个类作为可调用对象被thread调用?
如何让一个类作为可调用对象,被 std::thread 调用 在 C 中,可以让一个类对象作为可调用对象(Callable Object),然后用 std::thread 进行调用。要实现这一点,主要有三种方法: 重载 operator()&…...
学习小程序开发--Day1
项目学习开篇 项目架构 项目进程 创建uni-app项目 通过HBuilderX创建 小结 page.json 和 tabBar 目录文件 pages.json的配置...
“量子心灵AI“的监控仪表盘 - javascript网页设计案例
【前端实战】基于Three.js和Chart.js打造未来科技风AI监控仪表盘 本文通过AI辅助开发,详细记录了一个高级前端项目的完整实现过程。文章包含核心代码片段、技术要点及遇到的问题与解决方案。适合有一定前端基础的开发者学习参考。 1. 项目概述 本文详细介绍了一个名…...
Redis 中 string 和 list 的原理说明
Redis 中 string 和 list 的底层实现 Redis有5种基础数据结构,对应的value分别为:string (字符串)、list (列表)、set (集合)、hash (哈希) 和 zset (有序集合) Redis 对象头结构体: struct RedisObject {int4 type; // 4bits 对象的基本类型…...
JVM常用概念之String.intern()
问题 String.intern()的工作原理?我们应该如何使用它? 基础知识 字符串池(String Pool) String类在我们日常编程工作中是使用频率非常高的一种对象类型。JVM为了提升性能和减少内存开销,避免字符串的重复创建,其维…...
DeepLabv3+改进6:在主干网络中添加SegNext_Attention|助力涨点
🔥【DeepLabv3+改进专栏!探索语义分割新高度】 🌟 你是否在为图像分割的精度与效率发愁? 📢 本专栏重磅推出: ✅ 独家改进策略:融合注意力机制、轻量化设计与多尺度优化 ✅ 即插即用模块:ASPP+升级、解码器 PS:订阅专栏提供完整代码 目录 论文简介 步骤一 步骤二…...
亚信安全发布2024威胁年报和2025威胁预测
在当今数字化时代,网络空间已成为全球经济、社会和国家安全的核心基础设施。随着信息技术的飞速发展,网络连接了全球数十亿用户,推动了数字经济的蓬勃发展,同时也带来了前所未有的安全挑战。2024年,网络安全形势愈发复…...
深入理解 DOM 元素
深入理解 DOM 元素:构建动态网页的基石 在网页开发的世界里,DOM(Document Object Model,文档对象模型)元素宛如一座桥梁,连接着静态的 HTML 结构与动态的 JavaScript 交互逻辑。它让原本呆板的网页变得鲜活…...
[数据分享第七弹]全球洪水相关数据集
洪水是一种常见的自然灾害,在全球范围内造成了极为严重的威胁。近年来,针对洪水事件的检测分析,以及对于洪水灾害和灾后恢复能力的研究日渐增多,也产生了众多洪水数据集。今天,我们一起来收集整理一下相关数据集。&…...
SpringBoot POST和GET请求
1. 什么是 HTTP 请求? HTTP 协议:超文本传输协议,用于客户端和服务器之间的通信。 常见 HTTP 方法: GET:获取资源POST:提交数据PUT:更新资源DELETE:删除资源 2. GET 请求详解 作…...
