ZHCY165D November 2013 – April 2020 AM3356 , AM3357 , AM3358 , AM3359 , AM4376 , AM4377 , AM4378 , AM4379 , AMIC110 , AMIC120
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 或
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 流量
与标准 TCP/IP 流量分开。它在主机和端口接口上有四个优先级队列。两个优先级较高的队列用于 PROFINET 帧,
后两个队列则用于 TCP/IP 帧。如果队列已满,则前往该队列的帧将被丢弃。过大的 TCP/IP 流量并不会影响 PROFINET 流量,因为它们使用不同的队列。这种依照 PROFINET QoS 将流量分到不同队列的方式有助于设备承受大型网络中的任何流量。
集成到 Sitara 处理器上的 PROFINET 针对应用与 ICSS 之间的循环 I/O 数据交换实现了一种低延迟实时接口。采用这种接口时,不会分别通过主机和端口队列接收和传输循环数据帧。PROFINET 循环数据帧会在 PRU-ICSS 中终止,然后数据将通过三路缓冲直接提供给应用。此时采用三路缓冲管理来交换循环数据,主机和 PRU-ICSS 便始终能找到用于存储数据的缓冲区。
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 寄存器
空间。PRU 具有确定性实时处理能力,因此能够以一致、可预测的处理延迟来处理 PROFINET 帧。
CPM 帧将接受固件的解析以便检查是否应通知主机处理器。如果接收的 CPM 帧的帧 ID 与活动 IOCR 所配置的帧 ID 匹配,则仅中断主机。固件会将 CPM 帧存储在预定义的缓冲区,以便数据能够供中断之前的主机随时取用。
所有有效 IOCR 的 PPM 帧均由 PRU-ICSS 上运行的固件生成/产生。主机仅需要在最初使用 TI 的 PROFINET API 来配置为所有 IOCR 生成 PPM 帧时所需的所有信息。在每个阶段的开始,固件会确定在这一特定阶段需要传输哪些 PPM 帧,然后在不需要主机干预的情况下将这些帧传输出来。
数据保持计时器在 PRU-ICSS 固件中实现,每当 DHT 到期时,就会向运行 PROFINET 协议栈的 Arm 内核提交中断。对于每个 IOCR 或 CPM 连接,固件都会维持一个 DHT。每当收到一个 CPM 帧时,固件便会为相关的 IOCR 更新数据保持时间。如果特定 CPM 对应的 DHT 出现超时,则固件会关闭与该 IOCR 相关的所有 PPM。仅当 DHT 超时后才会中断主机处理器。可同时存在多个 IOCR,因此在固件中gou DHT 会显著减轻 Arm 内核的处理负担。
为了减少到达 Arm 内核的 DCP 识别请求帧的数量,PRU-ICSS 固件中采用了 DCP 识别过滤器,以便滤除所有不属于该主机的 DCP 识别帧。驱动程序中提供了一个 API 供协议栈配置站名和长度,以便随后由固件用于进行过滤。
PROFINET 固件中集成了一个双端口直通交换机。此交换机可处理非实时流量,并可与主机上运行的 PROFINET 和 TCP/IP 协议栈进行交互。它实现了适用于多播地址的 PROFINET 过滤数据库 (FDB),并在主机和端口接口上使用四个优先级队列来实现 PROFINET 服务质量 (QoS)。该交换机的学习功能在主机端实现。
TI 已简化 PROFINET 与 Sitara 处理器的集成过程。用于集成 PROFINET 从站的所有必要工具和软件代码都能在处理器软件开发套件 (Processor SDK) 和 PRU-ICSS 工业软件页面中找到。在每个开发平台上,PRU-ICSS 工业软件页面和 Processor SDK 均包括用于以下各项的固件:PROFINET 协议、软件驱动程序、硬件初始化例程、协议栈 API 对应的适应层、PROFINET 协议栈以及应用本身。支持文档将指导用户如何修改应用的功能以及在应用中编译新功能。
为了方便 PROFINET 协议栈的集成,TI 与第三方软件供应商密切合作,在 Sitara 设备上验证其 PROFINET 从站
协议栈代码。此协议栈经过移植后能够在 PRU-ICSS 上正常工作,经测试可确保无缝集成。客户在将米6体育平台手机版_好二三四投放市场之前,应联系此第三方来获取协议栈的许可证。TI Sitara PRU-ICSS 工业软件页面中采用对象形式提供了一个 PROFINET 协议栈副本,用于评估、开发和测试等。