0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

平衡速度与优先级:为多样化的实时需求打造嵌入式网络(1)——选择正确的实时范围

虹科智能自动化 2023-10-25 08:04 次阅读

以往与实时通信相关的文章往往关注一些细节——如何从嵌入式系统CAN、CANopen或实时通信系统的某个特定方面实现“最佳”。考虑这些具体细节如何应用于更广泛的应用及其独特性要求至关重要,而这可能会导致文章的读者质疑是否正确实现了这些功能而导致不确定性。对此,笔者认为如果您的系统所需的响应速度在100ms范围内,那么您无需详细检查每一个增加一毫秒或更短延迟的原因。

举个例子,在CAN通信中,冲突是通过优先级来解决的。然而,在没有冲突的情况下,即使是最低优先级的帧也可以立即访问网络。因此,如果您的系统只有50%或更少的总线负载,并且采用了一些机制,没有设备可以产生连续的高优先级流量,那么关于优化优先级或按优先级管理软件处理程序的讨论可能纯粹是理论上的,没有重大的实际应用。

安全性越发重要。在计时行为的背景下,必须认识到,如果您的信号需要安全或保障措施或两者兼而有之,则需要额外的元数据来保护原始信号数据。这可能包括冗余信息、计数器、时间戳和各种加密校验。

因此,本系列文章将从“选择正确的实时范围”出发,审视应用程序的要并了解我们正在运行的“大概范围”,然后在第二部分的“实时通信系统的需求”中着眼于不同的应用程序所需的不同时间范围;在第三部分的“基于CAN总线的系统的时间动态”中,我们将我们的发现引用于CAN和CANopen,并出了有关配置通信以满足之前发现的需求的建议,最后则是从理论到实践,完成一次CANopen源代码配置并展示该过程中通常可用的优化选项。


嵌入式系统领域,实时应用占据着至关重要的地位。这些应用程序的特点是要求在特定时间范围内处理输入并产生输出。它们提供的结果的准确性不仅取决于其逻辑正确性,还取决于其响应的精确时间。当这些系统与物理世界交互时,风险可能很高,通常涉及人类安全、产品质量或高效的系统运行。因此,这些应用程序的响应能力成为其设计的基本方面。

然而,“在特定时间范围内”可能因应用程序的不同而有很大不同。对于大型船舶的舵和推力控制,这可能是一秒或更长时间。对于食品加工工厂的高速分拣和包装单元来说,可能只有几毫秒。这两个案例已经很好地表明了对安全性的不同要求:船舶上的“慢速”命令需要比食品加工工厂那些进行排序的命令更可靠(或更安全)。

实现实时应用程序的具体挑战通常取决于所涉及的通信渠道。那输入和输出是否直接连接到主处理单元,或者是否需要嵌入式通信网络

随着应用程序变得越来越复杂并且地理分布越来越广,直接连接到每个输入和输出是不切实际的。相反,许多实时系统依赖于远程连接。传感器、执行器和其他设备可能远离中央处理单元,因此它们之间需要某种形式的通信。通常,这也意味着数据必须在所需的时间范围内传输两次:从传感器到处理单元的输入,然后是处理单元到执行器的输出。所有这些都带来了额外的挑战和考虑因素:通信渠道会带来延迟,或潜在的数据损坏或丢失。实时系统的设计者现在必须考虑这些因素,确保所使用的通信方法仍然能够满足系统的实时要求。此外,这些系统现在必须能够处理多个(通常是同时发生的)数据流,并根据这些流的紧急性和重要性来管理这些数据流的优先级。

实时应用的复杂性和要求日益提高,加上处理单元和输入/输出设备之间的距离越来越大,使得实时系统的设计成为一项多方面且具有挑战性的工作。这样的发展需要对通信协议、网络拓扑和错误处理机制有更深入的了解。只有解决所有这些因素,我们才能确保实时系统继续满足对其提出的严格要求。

在深入设计过程之前,第一个也是最关键的问题是确定特定应用所需的时间范围。一旦系统完成设计和开发,缩短时间框架几乎是不可能的,因为许多设计决策都是基于初始时间框架考虑的。在为系统的实时响应能力确定了所需的时间范围后,建议您花一些额外的时间来彻底检查它,因为以后对既定的时间框架进行更改可能会付出高昂的代价。

如果您的应用程序要求将“整个输入到输出”纳入计算中,那么您需要将多个时间相加:输入传感器收集输入并准备传输的处理时间、传输延迟、在主处理器中的处理时间(接收输入、处理它们并准备传输到输出)、在输出上接收数据并实际应用它的处理延迟。

1

响应超过1秒的应用

对于在单秒或多秒的时间范围内运行的应用程序,系统通常不需要特殊的预防措施。这是因为这些应用程序的延迟容忍度明显大于通信协议引入的典型延迟。有趣的是,即使控制代码在较慢的非实时操作系统上执行,也可以实现实时操作。如果操作系统承担过多的并发操作,可能会出现挑战,但这些情况通常是例外而不是常态。

太阳能电池板的太阳跟踪:具有跟踪功能的太阳能电池板可根据太阳的位置进行调整。在此应用中,数秒到数分钟的延迟是典型的,即使偶尔有控制延迟,也能确保最佳的能量捕获。

HVAC系统:供暖、通风和空调系统通常包含传感器来调节温度和空气质量。虽然即时调整体验感更好,但几秒钟的延迟通常在可接受的范围内。

采矿设备:在采矿作业中,输送机和大型挖掘机等大型机械需要数秒的时间来启动或停止。考虑到规模,系统响应延迟1秒是可以接受的,特别是对于非关键调整。然而,紧急关闭等安全关键功能将有更严格的要求。

海事应用:鉴于大型海船的运动动态相对较慢,数据处理和导航的一秒延迟是可以接受的。

海底作业:在深海系统中,可靠性是首要任务。在管理海底操作(从管道控制到设备调整)时,命令可能需要几秒钟才能到达目的地并导致所需的操作。

2

响应时间超过100ms的应用

在许多场景中,尤其是那些以人机交互为中心的场景,100 毫秒左右的响应时间至关重要。这个范围取决于人类感知和反应的基本极限。当系统在此时间范围内做出响应时,用户感觉交互几乎是即时的,从而增强了无缝控制和实时反馈的感觉。为了实现这个响应时间,您通常不需要对通信渠道采取任何特殊措施,即使在相对较慢的通信速度(例如 100kbps)下也可以达到此目的。

车辆仪表和控制装置:在各种人工控制的车辆中,例如汽车、叉车、起重机和农用车辆,大量的显示器和控制装置(从触摸屏到刻度盘)都依赖于快速反馈。这可确保驾驶员保持知情并处于控制状态之中。通过开关或操纵杆发送控制,或从传感器接收实时反馈,所有这些都需要在这个时间范围内发生。

工业机器接口制造工厂的操作员通过控制面板与复杂的机械进行交互。快速反馈至关重要,确保用户的命令几乎立即转化为机器动作,从而提高操作安全性和效率。如果激活命令需要较长时间,则应提供一些即时视觉反馈,以向操作员发出信号,表明所选功能现在即将执行。

医疗设备:当医疗保健专业人员调整设置或输入命令时,患者监视器和特定诊断工具等设备需要及时反馈。这种迅速的响应既确保了患者的安全,又确保了医疗保健专业人员的信心。

3

响应时间超过10ms的应用

对于要求响应时间约为 10 毫秒的应用,精度至关重要。这些时间明显超出了人类感知的界限,导致系统甚至在人类能够记录事件之前就经常做出响应或调整。因此,基础系统必须以无与伦比的效率和一致性运行。实现这些严格的时序需要详细的规划、速度和优先级之间的平衡,但也可能深入到处理数据的软件层,包括驱动程序和固件。通过精确的优化,这些系统表现出快速反应的能力,增强安全性,保留功能并确保最佳性能。

驾驶员辅助系统:牵引力控制、车道保持辅助和防抱死制动等高级驾驶员辅助系统对于提供快速响应至关重要。在任何延迟都可能导致潜在事故的情况下,这些系统通常感知车辆动力学的瞬时变化并做出反应。

工业机器人在最先进的制造装置中,机械臂及其相关机械的任务是进行即时调整。这种及时性确保了一丝不苟的精确性,保障了生产过程的准确性,并减少了错误。

紧急关闭系统:在各种控制设置中,紧急关闭系统的快速启动至关重要。无论是应对机械故障、危险泄漏还是任何不可预测的情况,这些系统的快速激活都可以防止重大损害、经济损失,更重要的是,保护人类生命。

4

响应时间为毫秒级的应用

对于要求响应时间为毫秒级的应用程序,多个通信网络的功能已达到极限。请记住,这与总吞吐量无关(通常此处仅交换几个字节),而是快速将这些字节发送到目的地。要实现如此快速的反应,需要对系统的各个方面(从网络配置到底层代码)进行审查并进行优化。当遇到如此苛刻的要求时,应该进行全面的评估,以确定所选的通信协议是否确实是最合适的解决方案,或者是否有其他解决方案可以完成手头的任务。

高速运动控制:在专门的工业设置中,机械需要基于快速反馈回路进行即时调整。此类应用可能涉及微调电机速度、快速驱动阀门或实时调节高速执行器。

先进机器人技术:这些机器人在高精度任务中尤其普遍,它们可能涉及以加速速度将精密电子元件放置到PCB上等操作,其中最轻微的延迟可能会导致严重错误。

安全气囊弹开:在车辆安全系统中,检测到潜在碰撞和弹开安全气囊之间的时间可能仅为几毫秒。如此快速的响应对于确保车内乘员的安全至关重要,每一毫秒都有助于减轻伤害。

小结

各个领域的应用具有不同的响应时间要求,从秒到毫秒不等。通信系统满足这些需求的能力对于实现最佳性能和效率至关重要。

然而,了解这些响应时间要求只是难题的一部分,在接下来的文章中,我们将更深入地探讨影响通信速度、延迟和仲裁的技术方案,包括网络架构、带宽和数据处理能力等考虑因素。此外,我们将探讨在选择在速度、复杂性和成本之间取得平衡的通信系统时必须做出的权衡和妥协。

虹科是一家在工业自动化领域,特别是工业总线通讯行业经验超过15年的高科技公司。虹科智能自动化事业部是领先的工业通讯领域内解决方案合作伙伴,与欧洲和美国的世界知名工业自动化、能源管理与楼宇自动化专家开展深度合作,提供各类通信协议的软硬件解决方案,通信技术类型涉及工业自动化通讯协议【CAN、CANopen、EtherCAT、PROFINET、EtherNet/IP、IO-Link/IO-Link wireless、OPC UA、MQTT、TSN】等,解决方案包含代码、芯片/模块、板卡、网关、IO、继电器、测试方案、培训和开发服务等。因此,虹科是国内为数极少的在OT领域深耕多年并拥有全面技术经验的供应商。

虹科智能自动化事业部以客户需求为导向,以技术能力为基础,力求为国内企业提供最适合的产品和最满意的服务。我们希望成为链条最全、方案最丰富、且兼备技术服务落地的通信技术资源整合商。目前虹科服务的客户已经超过1000家,虹科工程师们一直在万物互联的潮流中扮演着如高速公路般的连接作用,这是我们的使命也是我们的自豪。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5042

    文章

    18797

    浏览量

    298285
  • 通信
    +关注

    关注

    18

    文章

    5866

    浏览量

    135289
  • 网络
    +关注

    关注

    14

    文章

    7383

    浏览量

    88197
收藏 人收藏

    评论

    相关推荐

    freertos中断优先级在哪设置

    FreeRTOS是一个流行的实时操作系统,它广泛应用于嵌入式系统开发。在FreeRTOS中,中断优先级是一个重要的概念,因为它决定了中断处理的顺序和响应时间。 1. 理解中断
    的头像 发表于 09-02 14:17 196次阅读

    systick的中断优先级是否应该设置最高优先级的嵌套中断?

    最近在学习ucosii有这样一个疑问,关于stm32的systick作为ucosii的基准时钟,systick的中断优先级是否应该设置最高优先级的嵌套中断。理由是什么?各位大侠求指教!!!
    发表于 05-16 06:44

    嵌入式实时操作系统中的优先级反转问题

    死锁预防是实时系统设计中的一个重要因素。不幸的是,即使使用安全排除技术,这可能也不是困难的终点。在解决资源争用问题时,可能引入新的优先级翻转问题。
    发表于 04-26 15:47 308次阅读
    <b class='flag-5'>嵌入式</b><b class='flag-5'>实时</b>操作系统中的<b class='flag-5'>优先级</b>反转问题

    实时嵌入式系统半实物仿真测试平台ETest

    产品简介** ETest_RT是一款具有高实时性的嵌入式系统半实物仿真测试平台(Embedded System Real Time Test Studio RT,简称:ETest_RT
    发表于 04-25 17:01

    再谈嵌入式实时操作系统

    由于嵌入式处理器早期功能单一且运算能力不高,嵌入式应用已不能满足各个领域不断增长的需求嵌入式操作系统应运而生,嵌入式操作系统可以支持新时代
    的头像 发表于 04-09 17:27 561次阅读
    再谈<b class='flag-5'>嵌入式</b><b class='flag-5'>实时</b>操作系统

    嵌入式实时操作系统优先级抢占调度机制解析

    当抢占发生时,任务即使没有完成也会被迫放弃处理器,此时任务并没有被挂起,而是会返回就绪队列。任务在队列中的位置是由优先级决定的,它会在队列中等待到下一次被调度。
    的头像 发表于 04-05 05:22 2360次阅读
    <b class='flag-5'>嵌入式</b><b class='flag-5'>实时</b>操作系统<b class='flag-5'>优先级</b>抢占<b class='flag-5'>式</b>调度机制解析

    嵌入式学习步骤

    开发板上测试固件以及在实际设备上进行测试。 嵌入式系统的多样化发展,它将更为广泛地应用于各个领域,实现智能网络化、自动的目标。同时,
    发表于 02-02 15:24

    python中运算符的优先级大小

    Python中运算符的优先级决定了表达式中各个运算符的计算顺序。了解运算符的优先级对于正确理解和编写复杂的表达式非常重要。本文将详细介绍Python中运算符的优先级,并给出一些示例来帮
    的头像 发表于 11-29 16:21 1753次阅读

    千亿远程医疗市场爆发,互联医疗设备如何应对需求多样化

    千亿远程医疗市场爆发,互联医疗设备如何应对需求多样化
    的头像 发表于 11-24 17:03 345次阅读
    千亿<b class='flag-5'>级</b>远程医疗市场爆发,互联医疗设备如何应对<b class='flag-5'>需求</b><b class='flag-5'>多样化</b>?

    从理论到实践——CANopen源代码配置

    速度优先级多样化实时需求打造
    的头像 发表于 11-03 08:04 1651次阅读
    从理论到实践——CANopen源代码配置

    基于CAN总线系统的时间动态:CAN与CANopen的实时能力与局限性

    优先级多样化实时需求打造嵌入式
    的头像 发表于 11-01 08:04 1652次阅读
    基于CAN总线系统的时间动态:CAN与CANopen的<b class='flag-5'>实时</b>能力与局限性

    嵌入式学习——ElfBoard ELF1板卡 修改路由优先级的方法

    1.查看路由表优先级 路由表中的Metric参数跃点数,当系统中有多个网关时,数据包会通过Metric低的接口传输; 2.修改优先级 修改优先级
    发表于 10-27 13:59

    嵌入式实时数据采集系统的设计与实现

    电子发烧友网站提供《嵌入式实时数据采集系统的设计与实现.pdf》资料免费下载
    发表于 10-24 10:41 0次下载
    <b class='flag-5'>嵌入式</b><b class='flag-5'>实时</b>数据采集系统的设计与实现

    以ARM和DSP嵌入式系统核心的实时仿真平台的开发

    电子发烧友网站提供《以ARM和DSP嵌入式系统核心的实时仿真平台的开发.doc》资料免费下载
    发表于 10-10 10:02 0次下载
    以ARM和DSP<b class='flag-5'>嵌入式</b>系统<b class='flag-5'>为</b>核心的<b class='flag-5'>实时</b>仿真平台的开发

    嵌入式BACnet网关实时性能研究

    电子发烧友网站提供《嵌入式BACnet网关实时性能研究.pdf》资料免费下载
    发表于 10-09 16:50 0次下载
    <b class='flag-5'>嵌入式</b>BACnet网关<b class='flag-5'>实时</b>性能研究