下载 FreeRTOS
 

出色的 RTOS & 嵌入式软件

使用 FreeRTOS 实现 OPC-UA over TSN

在 2022 年 11 月于纽伦堡举办的智能生产解决方案(SPS)展览会上,由 Analog Devices、Arm、Amazon Web Services (AWS)、B&R Industrial Automation、莱迪思半导体、 施耐德电气、Texas Instruments 和 NXP 等 8 家合作伙伴组成的一个工作组宣布, 将利用 FreeRTOS 创建一个开放源代码的基于时间敏感网络(TSN)的开放平台通信联合架构(OPC UA)。今天,我们公布了一个开发项目, 该项目旨在使应用程序能够一致地访问硬件中提供的 TSN 功能。该项目首先侧重于 为在工业现场级使用 OPC UA 的客户提供支持,并遵循 OPC UA 现场交换 (UAFX) 规范。

为了提供背景信息,OPC UA 是一种用于工业自动化的机器对机器通信协议, 由 OPC 基金会开发。TSN 是一种在以太网上提供确定性通信的标准技术, 由 IEEE 802.1 时敏网络任务组管理。虽然以太网是目前应用最广泛的网络技术, 但它本质上是以尽力而为的方式在网络上传输数据包 。TSN 是一套使以太网具有确定性的 OSI 第 2 层标准。以太网标头用于路由决策, 因此以太网有效载荷可以是任何内容,而不仅仅是 IP 数据包。这 意味着 TSN 可在任何环境中使用,并可承载任何工业应用的有效载荷。

据估计,到 2030 年,运行 OPC-UA/TSN 的工业现场设备 将从 2025 年的 300 万台增加到超过 2 亿台。这些设备是智能传感器、执行器和 IO 的组成部分, 可与类似设备、控制器、可编程逻辑控制器 (PLC) 和 SCADA 系统进行通信。OPC-UA/TSN 还能 直接或通过边缘设备将原始数据发送到云端, 以便进一步处理、洞察或提供更高级别的人工智能服务,如预测性维护。

目前,工业系统中的传感器数据收集机制和格式是分散的。应用程序 Profibus、Modbus、EtherCat 等工业数据通信协议缺乏通用的数据格式 和互操作性。定制的数据格式不易阅读, 并且需要进行定制编码/解码才能从机器和制造设施中提取智能。互操作性的缺乏使得客户与特定供应商的解决方案绑定在一起, 使得他们的机器与其他系统进行通信或同步的能力受到限制 。在多供应商工厂中,由于缺乏互操作性和通用格式, 开发人员很难实施高级应用,如状态监控、生产线平衡和 预测性维护。其次,开发人员对来自传感器和执行器的未过滤(原始)数据的访问受限。 要创建具有高精确度的弹性机器和 IIoT 应用程序,就需要这些未经过滤的数据。

传统上,这些传感器和执行器连接到基于微处理器的 PLC 和控制器, 这些设备会过滤掉原始数据并使用供应商特定的现场总线格式(例如 Profinet、EtherCat、CCLink)。 根据 B&R 的说法,“由于源原始数据被操纵、忽略 或仅保留报警信息,PLC 只共享部分可用数据。” 现场设备数据有助于制造商为客户 提供分析等基本服务。但是,由于未经过滤的语义传感器数据不易访问, 也从未到达云端,客户发现要创建预测性维护、状态监测和资产性能监测等更高级别的服务, 或将其用于数字孪生表示法和持续洞察力 具有挑战性。

最后,为了解决互操作性问题, 客户和工业供应商正转向像 OPC UA over TSN 这样的通信框架。OPC UA 提供了一种标准化的数据结构方式, 因此可为任何类型的资产提供语义。而 TSN 定义了通用的连接层, 可以在控制设备和现场设备之间提供确定性实时通信。OPC-UA over TSN 被设计为实时以太网通信标准, 可在自动化系统之间提供开放、确定性的实时通信 。

为了使 OPC UA 与现有的工业协议一样在现场得到广泛应用, 支持 OPC-UA/TSN 的设备价格必须与现有的解决方案持平。这就需要 有支持 OPC-UA/TSN 的基于低成本 MCU 和低功耗 FPGA SoC 的设备。为此, TI、NXP、ADI、莱迪思半导体、Renesas、Hilscher 等硅芯片供应商 已开始生产嵌入 TSN 功能的硅芯片,以将工业现场设备的 BOM 成本至少降低 50%。 然而,现在缺少的是能使嵌入 TSN 的现场设备的开发 具有成本竞争力的软件。缺乏一个能抽象出各种硅片供应商 TSN 硬件实现的 RTOS, 阻碍了中小型工业设备制造商集中精力将带有 OPC UA/TSN 的智能传感器和执行器推向市场。

项目设计目标

我们在项目这一阶段的目标是:

  • 在 FreeRTOS-plus-TCP 库中定义标准 API,以支持 TSN 和尽力而为流量。
  • 在 FreeRTOS-plus-TCP 库中设计多优先级队列软件架构,以支持 TSN。
  • 在 FreeRTOS-plus-TCP 堆栈和 TSN 可移植层之间定义一个清晰的边界, 这将是针对特定供应商的,并将由我们的芯片供应商合作伙伴提供。

FreeRTOS-plus-TCP 软件架构

现有架构

Repo: https://github.com/FreeRTOS/FreeRTOS-Plus-TCP
最新版本: V4.0.0

在 FreeRTOS+TCP 堆栈的现有设计中,IP 任务被设计为事件驱动任务。它 它在一个 FreeRTOS 队列上超时阻塞(挂起),应用程序和网络接口向该队列发布事件 。当接收到一个事件(在队列中发布的事件)时,IP 任务会解除阻塞并处理 这些事件。这些事件包括:

  • 从套接字 API 发送/接收事件,以及向套接字 API 发送/接收事件
  • IP 堆栈定时器事件
  • 其他网络事件(如网络上行/下行事件)

队列中收到的所有事件当前都以相同的优先级进行处理 (因为只有一个 SW 队列),与流量类型、套接字配置、协议等无关。


点击放大

支持 TSN 的现有架构的局限性

  • 现有堆栈中没有处理多优先级流量数据的选项。
  • 三次上下文切换(应用程序任务到 IP 任务和 IP 任务到网络驱动程序任务)可能 会使 TSN 运行的发送和接收延迟变得不确定。
  • FreeRTOS-plus-TCP 空闲任务 PrvIPTask 目前的优先级高于 应用任务。这将造成问题,因为 TSN 较高的吞吐量可能要求应用程序 任务的优先级高于空闲任务。
  • 在发送和接收时使用相同的以太网驱动任务 将对 TSN 的高速吞吐量构成挑战。

向前迈进

我们正在根据以下设计原则推进 FreeRTOS+TCP 堆栈:

  1. API:
    1. 针对尽力而为和 TSN 流量的通用 API。
    2. 为了支持TSN 流量类型,引入一个名为 "FREERTOS_AF_TSN 的新的 "xDomain" ——在 "FreeRTOS_socket" API 中。
  2. 流量分离层
    1. 套接字层之后的解码层可区分尽力而为 TCP 流量 和 TSN 流量。
    2. 这一层还可区分各种优先级的 TSN 流量。
  3. 流量优先级和多优先级队列
    1. 支持多优先级,以便在第 2 层获得确定性流量。
    2. 支持根据优先级处理流量。
    3. 该堆栈可在 2 种模式下工作:
      1. 只有尽力而为流量:在这种情况下,堆栈将作为单一队列系统运行。
      2. 尽力而为流量和 TSN 流量:根据底层硬件支持的队列数量, 激活所需的队列数量。
  4. 流量调度
    1. 传输
      1. FreeRTOS-plus-TCP 将使用简单的轮询机制将 队列刷新到硬件。
      2. 硬件将决定发送和接收速率,FreeRTOS-plus-TCP 堆栈将保持硬件速率。
    2. 每个队列都有一个阈值,只要达到该值,DMA 就会将数据传输到 TSN MAC。
  5. 接收
    1. TSN 硬件将根据流量优先级来确定数据包的优先级。
  6. 发送+接收框图


    点击放大

    合作伙伴的反馈

    我们很高兴该项目能够 降低以太网 TSN 在硬件上提供同步、调度和优先流量的复杂性,并通过一系列不同的芯片来实现。这使得 软件具有互操作性,易于重复使用,并让设备制造商专注于其客户的应用程序。 我们的合作伙伴同样感到兴奋。

    “我们很高兴看到即将在 FreeRTOS 上推出的 OPC UA FX 和 TSN 解决方案, 因为这将有助于我们开发出更强大、更具实时性的产品,同时还能在经过行业验证的堆栈基础上实现 IoT 功能 。通过这种开源方式共享 R&D 资源,还能降低我们的初始投资, 缩短产品上市时间。” ——Stefan Schoenegger, B&R 工业自动化公司控制部全球产品集团经理。
    “在施耐德电气,我们的目标是建立一个开放、统一、基于标准的通信生态系统, 为整个工业自动化领域带来一致性和互操作性。我们很高兴能为合作伙伴提供支持, 使基于 FreeRTOS 的新解决方案遵循 OPC UA FX 和 TSN 标准。这 将有助于发展生态系统,并将 OPC UA FX 和 TSN 带到现场和中小型终端设备。”——Florian FOUILLET,工业通信项目总监。

    此外,Arm 还在 MBed TLS 中添加了 X.509 证书处理功能,以支持 802.1AR 规范 。这项工作已作为 MBedTLS 3.5.0 的一部分发布。代码库可在 此处获取

    入门和代码贡献

    您可以在 FreeRTOS-plus-TCP GitHub 存储库的 tsn 分支中开始使用并了解更多信息。合作伙伴的 TSN 芯片组驱动程序将有 单独的存储库。

    我们期待您的持续反馈和贡献。其中一个需要贡献的领域是 配置 TSN 设备的应用程序。Netconf 已被确定为 可以满足这一需求的配套应用程序。目前,Netconf 可用于基于 Linux 的设备, 但不适用于计算和内存受限的设备,如微控制器和基于低功耗 FPGA 的 SoC。

    如果您有任何意见或要求,请访问 FreeRTOS 论坛

作者简介

Tanmoy Sen 是 Amazon Web Services 的高级产品经理,他专注于帮助客户和嵌入式开发人员将基于微控制器的设备连接到云端。
查看此作者的文章
FreeRTOS 论坛 获得来自专家的行业领先支持,并与全球同行合作。 查看论坛
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.