ZHCY165D November   2013  – April 2020 AM3356 , AM3357 , AM3358 , AM3359 , AM4376 , AM4377 , AM4378 , AM4379 , AMIC110 , AMIC120

 

  1. 11
  2. 2PROFINET 简介
  3. 3技术
  4. 4TI 提供的 PROFINET 解决方案
  5. 5在终端产品上集成 PROFINET
  6. 6总结
  7. 7重要声明

TI 提供的 PROFINET 解决方案

TI 已经将 PROFINET 功能集成到 Sitara 处理器中。Arm 内核和各种用于完善 PROFINET 的外设及接口相结合,使得 Sitara 处理器成为工业自动化设备的不二选择。

减轻应用处理器的负载

如下页的图 6 所示,Sitara 处理器配备了 TI 的可编程实时单元工业通信子系统 (PRUICSS),该子系统将支持与 MII 接口进行底层交互。PRU-ICSS 可以轻松地实现专用通信协议,如 PROFINET。与在 Sitara AM335x 上集成的 PROFINET 解决方案一样,整个 PROFINET 交换机可通过固件封装在 PRU-ICSS 中,使 Arm 内核能够自由地进行协议栈和应用处理。分析消费者协议机 (CPM) 帧以及生成提供者协议机 (PPM) 帧的任务均由 PRU 全权处理。任何不适用于 PROFINET 节点的帧都会切换至下一个节点,此切换过程由 Sitara 处理器(TI 在其中集成了 PROFINET 协议)上 PROFINET PRU 固件中包含的交换机来执行。这种实现方式允许对比较简单和成本受限的应用(如分布式 I/O)使用速度较低的 Arm 内核版本。

与运行 PROFINET 协议栈(第 7 层)的 Arm 内核之间以及与工业应用之间需要进行的通信采用中断方式完成。PRU-ICSS 还会以反方向执行帧转发。以太网 PHY 设备(如 TLK110 或

GUID-20210426-CA0I-K58B-J9DX-TQZHZGBMCG4C-low.gif图 6 TI Sitara™ AM335x 处理器上的 PROFINET 从站

TI 提供的 DP83822 用于完善 TI 的 Sitara PROFINET 解决方案。TLK110 经过优化,实现了 MII 接口与 PHY 接口之间的低延迟,这是一种重要的性能属性。DP83822 可通过 MII、RMII 或 RGMII 接口灵活地连接到 MAC 上。此外,TLK110 和 DP83822 还具有高级电缆诊断功能,可快速定位电缆故障。

支持的一致性类别

TI 灵活的 PRU-ICSS 支持 PROFINET 的所有一致性类别,如图 7 所示。PROFINET 的这一全面集成已在 COMDEC 实验室获得认证,具备一致性类别 A 和 B 功能(采用第三方 PROFINET 协议栈)。

共享设备和共享输入

TI Sitara 处理器上集成的 PROFINET 解决方案支持使用多个控制器同时实现多个 AR。它能够一次性建立多达八个 AR 和八个 IOCR。当它已经在与单独的控制器交换 I/O 数据时,还允许其他控制器建立或关闭连接。它支持共享输入,因此允许多个控制器访问设备中的同一插槽。

性能

Sitara 处理器的集成 PROFINET 解决方案支持的最短发送时钟时间或相位持续时间为 250µs。它可以支持与设备同时建立的所有 IOCR 之间的发送时钟时间最小值为 250 µs。它支持 1 到 512 之间全部的减速比有效值。无论帧大小如何,集成式交换机的直通延迟均在 1 到 2 µs 之间。

稳健性

全面集成的 Sitara PROFINET 解决方案非常稳健可靠,因为它将 PROFINET 流量

GUID-20210426-CA0I-GS2T-J3N2-BLL5RDFR2C8V-low.gif图 7 TI 的 PROFINET 解决方案支持的一致性类别

与标准 TCP/IP 流量分开。它在主机和端口接口上有四个优先级队列。两个优先级较高的队列用于 PROFINET 帧,

GUID-20210426-CA0I-GLSM-SQBL-NJ23RCN0WKMD-low.gif图 8 Sitara 处理器上 PROFINET 从站的软件架构

后两个队列则用于 TCP/IP 帧。如果队列已满,则前往该队列的帧将被丢弃。过大的 TCP/IP 流量并不会影响 PROFINET 流量,因为它们使用不同的队列。这种依照 PROFINET QoS 将流量分到不同队列的方式有助于设备承受大型网络中的任何流量。

适用于循环数据的专用低延迟接口

集成到 Sitara 处理器上的 PROFINET 针对应用与 ICSS 之间的循环 I/O 数据交换实现了一种低延迟实时接口。采用这种接口时,不会分别通过主机和端口队列接收和传输循环数据帧。PROFINET 循环数据帧会在 PRU-ICSS 中终止,然后数据将通过三路缓冲直接提供给应用。此时采用三路缓冲管理来交换循环数据,主机和 PRU-ICSS 便始终能找到用于存储数据的缓冲区。

PROFINET 软件架构

Sitara 处理器上集成的 PROFINET 从站实现方案有三个主要软件组件。第一个是在设备的 PRU-ICSS 中实现第 2 层功能的微代码;第二个是在 Arm 内核上运行的 PROFINET 从站协议栈;而第三个是工业应用。TI 还在支持其 Sitara 处理器的软件开发套件中提供了其他组件,如协议适应层和设备驱动程序。

无论采用经过 TI 测试的 PROFINET 协议栈还是第三方协议栈,图 8 所示的架构均无需改动即可正常工作。这一集成的解决方案还独立于操作系统,并且可参考 TI 的 PROFINET API 指南进行任何必要的调整。

固件

图 9 所示的固件架构显示了 PRU-ICSS 上集成的 PROFINET 从站功能。在 PROFINET 第 2 层,PRU 执行的任务包括 CPM/PPM 处理、数据保持计时器 (DHT)、DCP 识别过滤器、直通交换、错误检测和主机接口处理。

PRU-ICSS 在内部共享存储器中提供便于使用的 PROFINET 寄存器

GUID-20210426-CA0I-17JN-8BVB-JTJSX8N05WHM-low.gif图 9 PROFINET 固件架构

空间。PRU 具有确定性实时处理能力,因此能够以一致、可预测的处理延迟来处理 PROFINET 帧。

CPM/PPM 处理

CPM 帧将接受固件的解析以便检查是否应通知主机处理器。如果接收的 CPM 帧的帧 ID 与活动 IOCR 所配置的帧 ID 匹配,则仅中断主机。固件会将 CPM 帧存储在预定义的缓冲区,以便数据能够供中断之前的主机随时取用。

所有有效 IOCR 的 PPM 帧均由 PRU-ICSS 上运行的固件生成/产生。主机仅需要在最初使用 TI 的 PROFINET API 来配置为所有 IOCR 生成 PPM 帧时所需的所有信息。在每个阶段的开始,固件会确定在这一特定阶段需要传输哪些 PPM 帧,然后在不需要主机干预的情况下将这些帧传输出来。

数据保持计时器 (DHT)

数据保持计时器在 PRU-ICSS 固件中实现,每当 DHT 到期时,就会向运行 PROFINET 协议栈的 Arm 内核提交中断。对于每个 IOCR 或 CPM 连接,固件都会维持一个 DHT。每当收到一个 CPM 帧时,固件便会为相关的 IOCR 更新数据保持时间。如果特定 CPM 对应的 DHT 出现超时,则固件会关闭与该 IOCR 相关的所有 PPM。仅当 DHT 超时后才会中断主机处理器。可同时存在多个 IOCR,因此在固件中gou DHT 会显著减轻 Arm 内核的处理负担。

DCP 识别过滤器

为了减少到达 Arm 内核的 DCP 识别请求帧的数量,PRU-ICSS 固件中采用了 DCP 识别过滤器,以便滤除所有不属于该主机的 DCP 识别帧。驱动程序中提供了一个 API 供协议栈配置站名和长度,以便随后由固件用于进行过滤。

集成直通交换机

PROFINET 固件中集成了一个双端口直通交换机。此交换机可处理非实时流量,并可与主机上运行的 PROFINET 和 TCP/IP 协议栈进行交互。它实现了适用于多播地址的 PROFINET 过滤数据库 (FDB),并在主机和端口接口上使用四个优先级队列来实现 PROFINET 服务质量 (QoS)。该交换机的学习功能在主机端实现。

轻松进行 PROFINET 集成

TI 已简化 PROFINET 与 Sitara 处理器的集成过程。用于集成 PROFINET 从站的所有必要工具和软件代码都能在处理器软件开发套件 (Processor SDK) 和 PRU-ICSS 工业软件页面中找到。在每个开发平台上,PRU-ICSS 工业软件页面和 Processor SDK 均包括用于以下各项的固件:PROFINET 协议、软件驱动程序、硬件初始化例程、协议栈 API 对应的适应层、PROFINET 协议栈以及应用本身。支持文档将指导用户如何修改应用的功能以及在应用中编译新功能。

为了方便 PROFINET 协议栈的集成,TI 与第三方软件供应商密切合作,在 Sitara 设备上验证其 PROFINET 从站

协议栈代码。此协议栈经过移植后能够在 PRU-ICSS 上正常工作,经测试可确保无缝集成。客户在将产品投放市场之前,应联系此第三方来获取协议栈的许可证。TI Sitara PRU-ICSS 工业软件页面中采用对象形式提供了一个 PROFINET 协议栈副本,用于评估、开发和测试等。