虹科分享 | 平衡速度和优先级:为多样化的实时需求打造嵌入式网络(2)——实时通信系统的需求
现代实时应用的复杂性和需求不断增加,需要强大而可靠的通信系统。正如本系列第一部分所述,这些应用涵盖从秒到毫秒的广泛响应时间要求,它们的成功通常取决于其响应的精确时间。因此,所选的通信系统必须能够满足这些严格的时序限制。然而,实现所需的实时能力并不是唯一的考虑因素。很多情况下,这些系统还需要保证用户、设备和周围环境的安全。此外,鉴于威胁形势日益严峻,确保这些通信系统的安全也变得同样重要。平衡实时响应、安全性和保障是一个多方面的挑战。因此,在本系列的第二部分中,我们将研究使通信系统能够满足这些需求的具体属性和注意事项。
随着时间的推移,对实时通信系统的要求不断发展并且变得更加严格。早期,主要关注点是以合理的可靠性水平实现实时要求。如果系统能够在指定的时间范围内处理和传输数据,即使偶尔发生错误,通常也被认为是足够的。随着技术的进步和系统变得更加复杂,对安全的需求变得显而易见。“稍微可靠”已不再足够,特别是对于人身安全、产品质量或系统操作受到威胁的应用。为了解决这些问题,开发了特定的协议,以确保实时系统即使在出现故障或中断的情况下也能安全运行。
安全的重要性日益凸显,特别是在车辆或医疗设备等关键应用中。最近,随着实时系统越来越互连,甚至可以通过互联网访问,安全性成为另一个重要的考虑因素。由于存在网络攻击和未经授权访问的可能性,因此不仅需要保护数据,还需要保护通信系统本身的完整性和可用性。
如今,一个全面的实时通信系统必须满足所有三个标准:实时响应性、安全性和保密性。在为任何实时应用设计嵌入式通信系统时,不再建议从头开始。曾经,开发人员采取临时方法很常见,例如重新利用其中一个串行端口以在多个节点之间共享它,从而有效地创建 RS485 式网络。然而,这种方法无法适应实时系统日益增加的复杂性。
1. 有普遍适用的方案吗?
遗憾的是,没有一种网络技术能够普遍适用于所有应用。每种应用都有其独特的要求和限制,因此有必要仔细评估和选择适当的通信技术和协议。因此,必须考虑应用程序的具体需求,并将其与最合适的可用网络技术相匹配,同时考虑所需的吞吐量、实时响应性、安全性和保密性等因素。
2. 有多少数据?多久1次?
首先,评估系统的整体架构。除了实时要求和必须执行完整控制步骤的时间范围外,还要考虑所需输入和输出的总数、它们之间的距离以及每个时间范围内和设备之间需要交换的信号数量及其数据长度。一般来说,不建议将任何系统推向“极限”,因此您选择的任何网络技术都应该具有足够的能力来适应应用程序随时间的增长。
3. 有安全保障的要求吗?
一旦您为您的应用确定了适用的时间范围,确定需要采取哪些安全措施就至关重要。如果您的应用程序必须遵守特定的安全标准或认证,您对通信网络的选择范围将自动缩小。在本文中,我们重点讨论实时性要求。在进行研究时,请仔细检查最新进展,因为所有活跃的现场总线组织和委员会都在不断致力于提高安全性和保障性。
4. 有同步要求吗?
考虑是不是任何信号都需要同步,这意味着应在同一时刻捕获输入。对于组合了多个输入的应用,同步至关重要。在实时通信系统中,同步在确保准确的数据传输和解释方面发挥着重要作用。一些应用程序因其性质而需要同步(例如,同步同时处理同一材料的多个操纵器),而其他影响可能更微妙:假设模拟传感器根据其内部计时器每100毫秒生成输入数据的场景,该数据也每100毫秒传输到网络上一次,由单独的网络计时器触发。如果这些计时器不同步,它们可能会逐渐偏离,导致两种可能的情况:
重复数据传输:如果网络计时器的窗口短于传感器的窗口,则在网络准备好传输时传感器可能尚未生成新的输入数据。在这种情况下,相同的数据可以传输两次。
数据丢失:如果传感器的计时器窗口短于网络的计时器窗口,则可能会在传输前一个值之前生成新值。这种情况可能会导致数据跳过或丢失。
这些场景的影响很大程度上取决于信号及其使用情况。例如,如果该值代表温度并且主处理单元只需要知道它是否落在正确的范围内,则这些场景没有任何影响。然而,如果它是一个计数器或代表波的快速变化的信号,丢失或重复的数据可能会产生严重的后果。
5. 其他考虑因素
选择实时通信系统时,还有许多额外的考虑因素:现成的产品、开发和诊断工具是否随时可用?它可以轻松地与现有(或计划的)系统集成吗?如果需要单毫秒的硬实时,则这种集成可能需要“更深入”到系统中,可能需要在硬件的最低级别定制软件。
了解应用程序的具体要求(实时响应性、安全性、系统架构和同步)可以指导您选择合适的通信网络。除了广泛认可的现场总线之外,许多网络通常由制造商或联盟制作,以满足特定应用或行业的需求。它们可能提供针对某些应用程序需求量身定制的独特功能、专用协议或专有技术。
例如,控制器局域网 (CAN) 是一种多功能通信协议,通过其专用协议支持众多应用。J1939 等协议适合商用车辆(如建筑、农业),标准化消息格式和信号,以方便制造商制作可互操作的组件。NMEA 2000 由美国国家海洋电子协会 (NMEA) 开发,有助于海洋电子设备的集成,简化复杂海洋系统的配置和管理。CANaerospace 专为航空航天而设计,可满足航空电子系统的独特需求,确保飞机上可靠的数据交换。
CANopen协议具有灵活性,拥有许多设备和应用配置文件,例如电梯、紧急车辆的配置文件和垃圾收集车辆的CleANopen。这些配置文件决定了设备或整个应用程序的通信行为和数据结构,从而简化了开发过程。
除了CAN之外,还有大约10多种不同的解决方案用于支持以太网的实时通信,每种解决方案都针对不同的应用。一般来说,如果您的应用程序的实时要求大约为100毫秒或更长,您就有多种选择,因为大多数嵌入式通信网络或现场总线都可以满足这些要求,即使对于更广泛的系统也是如此。然而,对于大型机械(跨越数百米或更远的电缆),仔细检查通信运行时间和吞吐量至关重要。
总结
对于严格的实时性要求,短至10ms甚至更短,必须认真审查哪些网络技术可以满足您的需求。通常,时间触发的通信系统(可在CAN、以太网和其他平台上使用)是最具确定性的。这里,每个有实时性要求的信号都被分配一个专属时隙,确保信号传输的可预测性。
作为CAN和CANopen通信领域的专家,本系列的下一部分将重点介绍CAN和CANopen,作为许多可用嵌入式通信系统的示例。后续的文章中将探索它对具有实时要求的不同系统的适用性,强调可实现的响应时间、需要仔细关注的领域以及突破界限的情况,建议对替代方案进行评估。
相关文章:
虹科分享 | 平衡速度和优先级:为多样化的实时需求打造嵌入式网络(2)——实时通信系统的需求
现代实时应用的复杂性和需求不断增加,需要强大而可靠的通信系统。正如本系列第一部分所述,这些应用涵盖从秒到毫秒的广泛响应时间要求,它们的成功通常取决于其响应的精确时间。因此,所选的通信系统必须能够满足这些严格的时序限制…...
佳易王各行业收银管理系统软件,企业ERP管理软件,企业或个体定制开发软件以及软件教程资源下载总目录,持续更新,可关注收藏查阅
系统简介 1、佳易王软件功能实用、操作简单、软件绿色免安装,解压即可使用,软件已经内置数据库,不需再安装其他数据库文件。 2、佳易王软件,已经形成系列,上百款管理系统软件涵盖多个行业。 3、已为多个企业个体定制…...
C_4练习题
一、单项选择题(本大题共20小题,每小题2分,共40分。在每小题给出的四个备选项中选出一个正确的答案,并将所选项前的字母填写在答题纸的相应位置上。) 定义如下变量和数组: int i; int x[3][3]{1,2,3,4,5,6,7,8,9}; 则下面语句的输…...
自动化测试-Selenium
一. Selenium介绍 selenium 是用来做web自动化测试的框架,支持各种浏览器,各种,支持各种语言 原理: 二. 元素定位 2.1 XPath 定位 绝对路径: /html/head/title 相对路径以双斜杠开头,常见的相对路径定位有以下几种: <1>相对路径索引: 索引是从1开始的 <2>相…...
基于单片机的温湿度检测系统设计
目录 摘 要... 2 第一章 绪论... 5 1.1 研究课题背景... 5 1.2 国内外发展概况... 7 1.3 课题研究的目的... 8 1.4 课题的研究内容及章节安排... 8 第二章 温湿度检测系统控制系统的设计方案... 10 2.1 设计任务及要求... 10 2.2 温湿度检测系统总体设计方…...
C# 关于异常处理 try-catch语句的使用
在实际应用中,比如涉及文件读写、网络通信时,会因为文件不存在、权限不够、网络异常等原因引发异常,或者对数据库连接、查询、更新等操作,会因为连接超时、语法错误、唯一约束冲突等引发异常。 看过去的代码,当进行上…...
【LeeCode】26.删除有序数组中的重复项
给你一个 非严格递增排列 的数组 nums ,请你原地删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。 考虑 nums 的唯一元素的数量为 k ,你需…...
4-Docker命令之docker create
1.docker create介绍 docker create命令是用于创建一个新的容器,等价于docker run -d命令,但是与docker run -d不同的是,docker create创建的容器并未实际启动,需要指定docker start命令启动。 2.docker create用法 docker create [参数] [root@centos79 ~]# docker cr…...
leetcode每日一题33
86.分隔链表 因为对链表中的一个节点进行更换位置的操作需要知道该节点的上一个节点 所以建立一个虚拟头节点 ListNode* pnew ListNode(-201,head);根据题意,我们需要找到第一个大于x或等于x的节点large 并且将第一个大于或等于x的节点large后的所有小于x的节点都…...
性能测试【一】:Jmeter的常用操作
性能测试【一】:Jmeter的常用操作 一、使用命令行方式运行Jmeter1、为什么2、怎么用3、示例4、结果文件 二、生成动态报告1、准备2、命令3、报告示例4、报告释义 三、使用问题汇总 推荐使用命令行运行,GUI方式会经常卡死,尤其跑稳定性 一、使…...
【JAVA】SpringBoot + mongodb 分页、排序、动态多条件查询及事务处理
【JAVA】SpringBoot mongodb 分页、排序、动态多条件查询及事务处理 1.引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- mongodb ↓ -->&…...
nrm安装及使用
一、介绍 nrm 是一个 Node.js 的 registry 管理工具,它允许你快速地在不同的 npm registry 之间进行切换。通过使用 nrm,你可以方便地将 npm 的 registry 切换为淘宝镜像、npm 官方镜像或者其他定制的镜像,以加快包的下载速度。nrm仓库请点击…...
docker报错standard init linux.go:228 exec user process caused: exec format error
1、报错 使用Dockerfile自己做的服务镜像,docker run时启动失败,报错如下: standard init linux.go:228 exec user process caused: exec format error2、原因一 当前服务器的CPU架构和构建镜像时的CPU架构不兼容。比如做镜像是在arm机器下…...
Docker 的基本概念和优势,以及在应用程序开发中的实际应用。
Docker 是一种容器化技术,它将一个应用程序及其所有依赖项打包在一起,形成一个独立的、可移植的容器。这个容器可以在任何支持 Docker 的操作系统上运行,而且具有很好的可移植性和可扩展性。以下是 Docker 的基本概念和优势: 镜像…...
libmosquitto库的一个bug,任务消息id(mid)分配后不起作用
代码如图所示: 当订阅了所有主题后,每个主题的mid是他们的下标索引加100的数字,可是实际打印出来的值是: mid依然是1,2,这个参数在这里失效了,不知道是bug还是mqtt的什么机制?...
亚马逊云科技re:Invent大会:云计算与生成式AI共筑科技新局面,携手构建未来
随着科技的飞速发展,云计算和生成式 AI 已经成为了推动科技进步的重要力量。这两者相互结合,正在为我们创造一个全新的科技局面。 亚马逊云科技的re:Invent大会再次证明了云计算和生成式AI的强大结合正在塑造科技的新未来。这次大会聚焦了云计算的前沿技…...
Docker 部署 Nacos(单机),利用 MySQL 数据库存储配置信息
前面的话 默认你已经懂 Docker、docker-compose Nacos版本:v2.2.3 MySQL 版本:8.2.0 一、下载 打开 Nacos 官网 官网地址:官网 点击手册 左侧 Nacos Docker 克隆项目到本地 # 克隆项目,如果提示连接不到 github 请自行解决 …...
【LeeCode】35.搜索插入位置
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 你可以假设数组中无重复元素。 解: class Solution {public int searchInsert(int[] nums, int target) {int …...
18.天气小案例
1►新增带Layout组件的页面 直接在views文件夹下面新增weather.vue。然后随便写一个123,现在先让我们页面能跳过去先。 让页面能跳过去,有好几种方法: 1、在菜单管理自己添加一个菜单,然后把菜单分配给某个角色,再把…...
医保线上购药系统:代码驱动的医疗创新
医保线上购药系统,这是一个融合技术和医疗的创新典范。本文将通过简单的技术代码示例,为您揭示这一系统是如何通过技术驱动医疗创新,为用户提供更智能、便捷的健康管理体验的。 1. 前端界面开发 使用React框架,我们可以轻松构建…...
MPNet:旋转机械轻量化故障诊断模型详解python代码复现
目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...
阿里云ACP云计算备考笔记 (5)——弹性伸缩
目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...
DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI
前一阵子在百度 AI 开发者大会上,看到基于小智 AI DIY 玩具的演示,感觉有点意思,想着自己也来试试。 如果只是想烧录现成的固件,乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外,还提供了基于网页版的 ESP LA…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序
一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...
AI书签管理工具开发全记录(十九):嵌入资源处理
1.前言 📝 在上一篇文章中,我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源,方便后续将资源打包到一个可执行文件中。 2.embed介绍 🎯 Go 1.16 引入了革命性的 embed 包,彻底改变了静态资源管理的…...
SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)
上一章用到了V2 的概念,其实 Fiori当中还有 V4,咱们这一章来总结一下 V2 和 V4。 SAP学习笔记 - 开发25 - 前端Fiori开发 Remote OData Service(使用远端Odata服务),代理中间件(ui5-middleware-simpleproxy)-CSDN博客…...
RSS 2025|从说明书学习复杂机器人操作任务:NUS邵林团队提出全新机器人装配技能学习框架Manual2Skill
视觉语言模型(Vision-Language Models, VLMs),为真实环境中的机器人操作任务提供了极具潜力的解决方案。 尽管 VLMs 取得了显著进展,机器人仍难以胜任复杂的长时程任务(如家具装配),主要受限于人…...
【LeetCode】3309. 连接二进制表示可形成的最大数值(递归|回溯|位运算)
LeetCode 3309. 连接二进制表示可形成的最大数值(中等) 题目描述解题思路Java代码 题目描述 题目链接:LeetCode 3309. 连接二进制表示可形成的最大数值(中等) 给你一个长度为 3 的整数数组 nums。 现以某种顺序 连接…...
WPF八大法则:告别模态窗口卡顿
⚙️ 核心问题:阻塞式模态窗口的缺陷 原始代码中ShowDialog()会阻塞UI线程,导致后续逻辑无法执行: var result modalWindow.ShowDialog(); // 线程阻塞 ProcessResult(result); // 必须等待窗口关闭根本问题:…...
第八部分:阶段项目 6:构建 React 前端应用
现在,是时候将你学到的 React 基础知识付诸实践,构建一个简单的前端应用来模拟与后端 API 的交互了。在这个阶段,你可以先使用模拟数据,或者如果你的后端 API(阶段项目 5)已经搭建好,可以直接连…...
