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

前言

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

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

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

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

选择正确的实时范围

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

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

实现实时应用程序的具体挑战通常取决于所涉及的通信渠道。那输入和输出是否直接连接到主处理单元,或者是否需要嵌入式通信网络?
随着应用程序变得越来越复杂并且地理分布越来越广,直接连接到每个输入和输出是不切实际的。相反,许多实时系统依赖于远程连接。传感器、执行器和其他设备可能远离中央处理单元,因此它们之间需要某种形式的通信。通常,这也意味着数据必须在所需的时间范围内传输两次:从传感器到处理单元的输入,然后是处理单元到执行器的输出。

所有这些都带来了额外的挑战和考虑因素:通信渠道会带来延迟,或潜在的数据损坏或丢失。实时系统的设计者现在必须考虑这些因素,确保所使用的通信方法仍然能够满足系统的实时要求。此外,这些系统现在必须能够处理多个(通常是同时发生的)数据流,并根据这些流的紧急性和重要性来管理这些数据流的优先级。

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

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

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

下面,我们按照所需的响应时间来回顾一些应用案例:

1. 响应时间超过秒的应用程序

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

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

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

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

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

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

2. 响应时间超过100ms的应用

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

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

工业机器接口:制造工厂的操作员通过控制面板与复杂的机械进行交互。快速反馈至关重要,确保用户的命令几乎立即转化为机器动作,从而提高操作安全性和效率。如果激活命令需要较长时间,则应提供一些即时视觉反馈,以向操作员发出信号,表明所选功能现在即将执行。
医疗设备:当医疗保健专业人员调整设置或输入命令时,患者监视器和特定诊断工具等设备需要及时反馈。这种迅速的响应既确保了患者的安全,又确保了医疗保健专业人员的信心。

3. 响应时间为10ms的应用

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

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

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

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

4. 响应时间为毫秒级的应用

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

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

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

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

总结

各个领域的应用具有不同的响应时间要求,从秒到毫秒不等。通信系统满足这些需求的能力对于实现最佳性能和效率至关重要。然而,了解这些响应时间要求只是难题的一部分,在接下来的文章中,我们将更深入地探讨影响通信速度、延迟和仲裁的技术方案,包括网络架构、带宽和数据处理能力等考虑因素。此外,我们将研究在选择在速度、复杂性和成本之间取得平衡的通信系统时必须做出的权衡和妥协。

你可能感兴趣的:(CAN总线,CANopen,实时通信,工业通信)