当前位置: 首页 > news >正文

虹科分享 | 平衡速度和优先级:为多样化的实时需求打造嵌入式网络(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语句的使用

在实际应用中&#xff0c;比如涉及文件读写、网络通信时&#xff0c;会因为文件不存在、权限不够、网络异常等原因引发异常&#xff0c;或者对数据库连接、查询、更新等操作&#xff0c;会因为连接超时、语法错误、唯一约束冲突等引发异常。 看过去的代码&#xff0c;当进行上…...

【LeeCode】26.删除有序数组中的重复项

给你一个 非严格递增排列 的数组 nums &#xff0c;请你原地删除重复出现的元素&#xff0c;使每个元素 只出现一次 &#xff0c;返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。 考虑 nums 的唯一元素的数量为 k &#xff0c;你需…...

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);根据题意&#xff0c;我们需要找到第一个大于x或等于x的节点large 并且将第一个大于或等于x的节点large后的所有小于x的节点都…...

性能测试【一】:Jmeter的常用操作

性能测试【一】&#xff1a;Jmeter的常用操作 一、使用命令行方式运行Jmeter1、为什么2、怎么用3、示例4、结果文件 二、生成动态报告1、准备2、命令3、报告示例4、报告释义 三、使用问题汇总 推荐使用命令行运行&#xff0c;GUI方式会经常卡死&#xff0c;尤其跑稳定性 一、使…...

【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 管理工具&#xff0c;它允许你快速地在不同的 npm registry 之间进行切换。通过使用 nrm&#xff0c;你可以方便地将 npm 的 registry 切换为淘宝镜像、npm 官方镜像或者其他定制的镜像&#xff0c;以加快包的下载速度。nrm仓库请点击…...

docker报错standard init linux.go:228 exec user process caused: exec format error

1、报错 使用Dockerfile自己做的服务镜像&#xff0c;docker run时启动失败&#xff0c;报错如下&#xff1a; standard init linux.go:228 exec user process caused: exec format error2、原因一 当前服务器的CPU架构和构建镜像时的CPU架构不兼容。比如做镜像是在arm机器下…...

Docker 的基本概念和优势,以及在应用程序开发中的实际应用。

Docker 是一种容器化技术&#xff0c;它将一个应用程序及其所有依赖项打包在一起&#xff0c;形成一个独立的、可移植的容器。这个容器可以在任何支持 Docker 的操作系统上运行&#xff0c;而且具有很好的可移植性和可扩展性。以下是 Docker 的基本概念和优势&#xff1a; 镜像…...

libmosquitto库的一个bug,任务消息id(mid)分配后不起作用

代码如图所示: 当订阅了所有主题后,每个主题的mid是他们的下标索引加100的数字,可是实际打印出来的值是: mid依然是1,2,这个参数在这里失效了,不知道是bug还是mqtt的什么机制?...

亚马逊云科技re:Invent大会:云计算与生成式AI共筑科技新局面,携手构建未来

随着科技的飞速发展&#xff0c;云计算和生成式 AI 已经成为了推动科技进步的重要力量。这两者相互结合&#xff0c;正在为我们创造一个全新的科技局面。 亚马逊云科技的re:Invent大会再次证明了云计算和生成式AI的强大结合正在塑造科技的新未来。这次大会聚焦了云计算的前沿技…...

Docker 部署 Nacos(单机),利用 MySQL 数据库存储配置信息

前面的话 默认你已经懂 Docker、docker-compose Nacos版本&#xff1a;v2.2.3 MySQL 版本&#xff1a;8.2.0 一、下载 打开 Nacos 官网 官网地址&#xff1a;官网 点击手册 左侧 Nacos Docker 克隆项目到本地 # 克隆项目&#xff0c;如果提示连接不到 github 请自行解决 …...

【LeeCode】35.搜索插入位置

给定一个排序数组和一个目标值&#xff0c;在数组中找到目标值&#xff0c;并返回其索引。如果目标值不存在于数组中&#xff0c;返回它将会被按顺序插入的位置。 你可以假设数组中无重复元素。 解: class Solution {public int searchInsert(int[] nums, int target) {int …...

18.天气小案例

1►新增带Layout组件的页面 直接在views文件夹下面新增weather.vue。然后随便写一个123&#xff0c;现在先让我们页面能跳过去先。 让页面能跳过去&#xff0c;有好几种方法&#xff1a; 1、在菜单管理自己添加一个菜单&#xff0c;然后把菜单分配给某个角色&#xff0c;再把…...

医保线上购药系统:代码驱动的医疗创新

医保线上购药系统&#xff0c;这是一个融合技术和医疗的创新典范。本文将通过简单的技术代码示例&#xff0c;为您揭示这一系统是如何通过技术驱动医疗创新&#xff0c;为用户提供更智能、便捷的健康管理体验的。 1. 前端界面开发 使用React框架&#xff0c;我们可以轻松构建…...

Claude Code每日更新速览(v2.1.108)-2026/04/15

目录 更新内容&#xff1a; 分类总结&#xff1a; 一、功能新增 二、体验增强 三、稳定性与安全性 本文小结&#xff1a; 最新版本&#xff1a;v2.1.108 提交时间&#xff1a;2026-04-14 19:12 UTC 更新内容&#xff1a; 添加了“ENABLE_PROMPT_CACHING_1H”环境变量以…...

终极指南:如何用Rack构建可扩展的微服务架构

终极指南&#xff1a;如何用Rack构建可扩展的微服务架构 【免费下载链接】rack A modular Ruby web server interface. 项目地址: https://gitcode.com/gh_mirrors/ra/rack Rack是一个模块化的Ruby Web服务器接口&#xff0c;它通过最简单的方式包装HTTP请求和响应&…...

TikTok账号降权的真相:IP纯净度检测如何让粉丝从0涨到23万?

2026年初&#xff0c;一位跨境电商卖家的TikTok账号在连续发布30条高质量视频后&#xff0c;播放量始终卡在200左右。更换网络环境、重新注册账号、使用热门素材——所有方法都试过&#xff0c;账号权重依然起不来。最后发现&#xff0c;问题出在IP上。当他切换到纯净家庭宽带I…...

Python 自动化办公:批量提取 Excel 表格中的特定数据

在日常办公中&#xff0c;我们常常会遇到需要从大量 Excel 表格中提取特定数据的情况。手动操作不仅效率低下&#xff0c;还容易出错。借助 Python 强大的库&#xff0c;我们可以轻松实现自动化提取&#xff0c;提高工作效率。需求分析 假设我们有一个包含多个 Excel 文件的文件…...

从理论到实践:共射极放大电路的设计与调试全攻略

1. 共射极放大电路的核心原理 共射极放大电路之所以被称为"电子工程师的必修课"&#xff0c;关键在于它完美展现了晶体管放大的本质。想象一下&#xff0c;你正在用麦克风唱歌&#xff0c;但声音太小无法让全场听到——这时候就需要一个"声音放大器"。共射…...

别再用纯文本了!Qt 5.14+ 的 QLabel 还能这样玩:图文混排、Markdown笔记与自适应背景图实战

QLabel 高阶玩法&#xff1a;解锁 Qt 界面设计的隐藏技能树 在 Qt 开发中&#xff0c;QLabel 常被视为简单的文本或图片展示控件&#xff0c;但它的潜力远不止于此。当我们将 QLabel 的富文本支持、Markdown 渲染、自适应布局等特性巧妙组合&#xff0c;就能创造出令人惊艳的界…...

【企业级AIGC平台性能红线预警】:当P99延迟突破1.2s时,你必须在2小时内执行的6项紧急干预措施

第一章&#xff1a;生成式AI应用性能优化实战 2026奇点智能技术大会(https://ml-summit.org) 生成式AI应用在实际部署中常面临高延迟、显存溢出与吞吐量瓶颈等挑战。优化需从模型推理、数据流水线、硬件协同三方面系统切入&#xff0c;而非仅依赖单点调优。 量化感知训练与I…...

魔兽争霸III增强插件深度指南:解锁游戏性能与操作体验的全面优化方案

魔兽争霸III增强插件深度指南&#xff1a;解锁游戏性能与操作体验的全面优化方案 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper WarcraftHelper是一款…...

Python 中使用 keyboard 模块时多线程导致键盘监听冻结的解决方案

本文详解 keyboard 模块在多线程&#xff08;尤其配合 asyncio&#xff09;环境下调用 is_pressed()、read_event() 等函数时无响应、卡死的根本原因&#xff0c;并提供稳定替代方案——推荐使用 Windows 原生 msvcrt 模块实现非阻塞、可中断、线程安全的键盘输入检测。 本…...

如何快速使用AI智能马赛克处理工具:3步实现图片视频隐私保护

如何快速使用AI智能马赛克处理工具&#xff1a;3步实现图片视频隐私保护 【免费下载链接】DeepMosaics Automatically remove the mosaics in images and videos, or add mosaics to them. 项目地址: https://gitcode.com/gh_mirrors/de/DeepMosaics 智能马赛克处理技术…...