当涉及到分布式架构中嵌入式系统的时间同步时,存在“软”用例(典型的日常设备)和复杂的或“硬”用例(汽车刹车系统、航空航天)。 很容易看出,硬用例具有独特的要求,并且对延迟的容忍度很低。 换句话说,硬用例具有严格的实时约束。
延迟是实时计算的死敌。在关键实时应用的背景下,延迟是数据生成和数据接收之间的时间。 现实情况是,当存在多个系统互连的网络时,就会存在延迟。
[ 相关阅读: 边缘计算:延迟至关重要 ]
软实时和硬实时用例之间有什么区别?
软用例易于管理。 以下是一些软用例的示例:
- 一台带有洗涤剂分配器的洗衣机,每次洗涤后需要重新填充洗涤剂。
- 一台需要重新填充纸张的打印机。
- 一辆需要重新加注汽油或充电的汽车。
然而,硬用例很难同步,并且连接复杂。 以下是硬用例的示例:
- 汽车刹车系统,其中没有其他系统(如转向系统)可以干扰或导致延迟。
- 核电站,其中传感器必须实时发送状态报告,以支持决策制定,而不会受到系统其他组件的干扰。
- 火箭,它必须能够实时修正其轨迹,以避免受到天气条件等外部因素的影响。
嵌入式世界如何处理实时性
当在分布式(多 MCU)关键和实时环境中使用时,一致的延迟并不能保证。 如果系统中发生多次冲突,则消息可能会被多次延迟,从而显着且不可预测地增加延迟。 在这种情况下,较新的数据可能会在较旧的数据之前到达,从而损害系统的完整性。

(Nicolas Rabault, CC BY-SA 4.0)
通常,嵌入式世界中没有实时时钟 (RTC),因为这需要电源,这并非总是可能的,即使有,系统也会在断电时丢失时间测量。 当您尝试从 Internet 更新时间时,也会出现同样的问题。
在嵌入式系统中,当系统关闭时,没有任何东西处理时间跟踪,当系统开机时,也没有任何东西同步时间。 在大多数情况下,时间线在系统启动时开始。
Luos 允许时间线管理
虽然物理上不可能完全消除延迟,但监控延迟对于保证数据有效性非常重要。 通过实时测量延迟,根据 Apache2 许可证发布的开源 Luos 引擎使用延迟值来了解事件的真实本地日期。 没有全局时间线,只有数据生成和消耗之间的增量。 Luos 可以使用任何网络精确测量该增量。
Luos 是一款开源软件和模块化方法,旨在简化嵌入式功能的创建和共享。 Luos 将硬件和软件功能封装为微服务,以便每个电子设备都有一组相互通信和识别但保持独立的功能。
如果没有 Luos,开发人员必须同步时间线。 这取决于开发人员控制延迟并更新每个系统上的日期,以便每个系统都具有相同的时间存储库。 这很难做到,并且会消耗大量资源。
通过基于分布式延迟的时间同步,开发人员不再需要使用全局时间线,这通常很困难,因为每个节点都有不同的时间线。 Luos 整合了这些时间线,以避免出现一个“正确”的时间点,而是允许每个系统进行控制。 这种设计是完全多主控的。 参考时间线是开发人员正在查看的节点的本地时间线。 Luos 能够通过测量延迟在节点的本地时间线上重新映射事件日期。
实时开发人员习惯于使用全局时间线,并且可能会质疑 Luos 使用的方法是否准确,考虑到如此关键的用例。 答案是肯定的,因为节点进行通信,并且在没有集中式主控的情况下都具有相同的信息级别。 这就好像每次在全局系统中修改数据时都会发生同步一样。
[ 获取电子书,《面向智能应用的开源数据管道》]
Luos 的工作原理
从技术上讲,Luos 计算延迟。 跨节点存在延迟总和,包括源延迟、目标延迟和网络延迟。 Luos 评估该信息并将其汇总以使用时间戳在本地时间线上重新映射信息。
可以测量过去或未来的事件。 因此,Luos 可以使用该测量结果进行数据收集和精确编程的命令。
您想开始使用 Luos 和嵌入式系统吗? 在 Luos.io 上深入了解 Luos。
1 条评论