电网是当今世界的重要资源。电力网络的可靠性至关重要,特别是随着分布式发电的使用的日益增加,以及引入的微电网在监视和控制方面需要更多本地智能的情况下。电网上的所有系统需要相互协作,通过对电压、频率和开关柜状态的频繁分析来确保网络能够提供稳定而一致的交流电。这就要求在控制中心和变电站等高价值节点之间使用先进的监控和即时可用的低延迟通信,从而确保可严密监控每个子系统的状态。
为协助管理电网基础设施以及提供必要的控制和通信,配电行业采用了 IEC 61580 标准。采用 IEC 61580 标准后,数字信号可通过基于以太网技术的网络在变电站和电气子系统之间传输电力状态信息。为了满足电网运营商越来越复杂的需求,IEC 61580 标准已逐渐发展为包含众多时间关键型的服务,如 IEEE 1588 同步、面向通用对象的系统事件 (GOOSE) 和采样值 (SV) 消息传递。
图 1:IEC 61580 的关键要素及其与以太网的关系。
相比许多 IT 系统中使用的传统客户端-服务器通信模式,支持发布-订阅消息传递的 GOOSE 协议更适合分布式控制应用。IEC 61580 使客户端-服务器消息传递可分别用于支持远程站和其它情形下的设备管理,在这些情形下需要直接访问子站或微电网内节点。
GOOSE 允许将各种电力要素状态的实时消息中继到任何需要查看这些消息的设备。例如,每个继电器针对其包含的需报告状态的各个不同类型的对象,使用一个识别符来发布信息。其他继电器和设备可以订阅目标继电器发出的状态消息流。这是通过使用在网络上多点传送并在接收节点进行过滤组合方式来实现的,且发布者不需要知道用户是谁或者他们是否接收到消息。为了获得最佳性能,GOOSE 不使用常用的 TCP/IP 协议。相反,GOOSE 消息直接放在以太网帧内。同样,SV 消息传递提供了一种数据多点传送方式,将如电压测量之类快速变化的值传送到订阅的接收器。
IEC 61580 所提供的服务包括符合 IEEE 1588 标准的时间同步。该标准会分配来自高精度主时钟的定时信号。在今天使用的许多系统中,该主时钟使用配有一个原子钟的全球定位系统 (GPS) 卫星发送的时间信号。主时钟支持着一个从时钟树,时钟树既可归类为边界时钟(存在于网关中,在 GPS 信号失效时可以充当临时主时钟),也可归类为存在于每个系统中的需要同步的普通时钟。定时信息使用一系列消息交换在该时钟树上进行行波传送,消息交换需要定期重复,以确保所有系统保持同步。
该协议的工作方式是,让主时钟向从时钟发送包含时间戳的同步消息。随后主时钟还会发送一个包含稍晚时间戳的后续消息。从时钟会进行响应,向主时钟询问延迟估计的消息,而主时钟会提供进一步响应,反馈消息的发送时间。此过程结束时,从时钟将具有四个时间戳,其中三个由主时钟发送。从时钟使用序列中的定时信息确定其内部时钟所需的更改,使其尽可能接近主时钟。 协议产生定时同步,其在局域网上通常精确到几十纳秒。
IEC 61580 基础架构的其他关键部分包含冗余数据传输协议。并行冗余协议 (PRP) 已在 IEC 62439 中标准化,支持双端口全双工以太网通信。协议提供像 GOOSE 和 SV 之类上层应用协议所见的 MAC 层接口下的两个冗余数据包处理流。通常情况下,以太网连接通过不同的以太网交换机,并采用星形布线网络拓扑。
图 2:PRP 冗余协议采用星形连接拓扑。
一种替代方案是高可用性无缝冗余 (HSR),IEC 62439 中同样有此定义。HSR 采用环形拓扑,每个数据包在复制后,会在环路架构以相反方向转发至目的地。环路架构无需采用额外的交换机/路由器,可避免数据包在到达目的地前需要通过多个节点而产生的延迟。高级通信控制器可以通过使用直通转发提供帮助,以尽可能将该延迟降至最低。这种方法不需要数据包在转发到目的地之前完全解码。
图 3:HSR 冗余协议适用于环形拓扑。
由于需要广泛过滤传入的以太网消息,IEC 61580 需要高性能处理,以便减少用于控制算法的计算量。其中一个解决方案是尽量减轻网络级分析负载,使主机处理器只需处理需要注意的消息。这可以在多核 SoC 上实现,其中一些包含专用智能网络处理器。例如 Texas Instruments 生产的嵌入式微处理器 AM572x Sitara。该公司提供的评估板可轻松探索其网络功能。
AM572x 基于 ARM®Cortex®-A15 处理器。这个多核器件通过一个 Cortex-M4 扩展了主机处理器,可用于帮助减少 I/O 密集型任务的负担。该产品还包括一对网络处理器以及基于 C66x 架构的数字信号处理器,可用于执行数据分析。AM572x 上的 PRU-ICSS 子系统除 ARM 内核的处理外,还提供单独的处理。该单元包含两个 PRU,每个都包含一个运行频率高达 200 MHz 的 32 位 RISC 处理器和一个网络接口。两个独立智能内核可以随时为 PRP 和 HSR 提供支持。
PRU 内核中的 RISC 处理器没有通用架构。相反,该内核专门用于处理网络帧中遇到的打包存储器映射数据结构的类型。它集成了许多功能,可支持具有紧密实时约束的应用。可以在 PRU 处理器上执行某种程度的数据包过滤。在 AM572x 上, Cortex-M4 为诸如 IEEE 1588、GOOSE 和 SV 之类协议提供了更多空间。
Cortex-M4 可用于分析所有传入的多点传送数据包,并比较其应用 ID (APPID) 地址,以实现由 Cortex-A15 上运行的软件提供的有效订阅。这样 M4 可以确定哪些消息需要向上游传递。其他数据包则可以丢弃并从存储器中删除。
图 4:共享存储器 IPC 支持将 IEC 61580 处理工作卸载到 Cortex-M4 和其他处理器。
这种卸载处理架构中的一个关键考虑因素是各处理器如何相互通信。AM572x 提供共享存储器就是要帮助将消息从一个处理器传递到另一个处理器。数据包可以轻易形成队列,因此可以按顺序进行写入和读取。关键问题是要使用的协议。一种选择是在 Cortex-A15 上使用 Linux。这样可以使用操作系统为进程间通信提供的标准应用编程接口 (API),例如 remoteproc 和 rpmsg。
rpmsg 消息传递系统工作方式是通过提供一个虚拟设备反映链接到远程进程的每个通信通道来实现的。通道通过文本名称标识,并具有本地 rpmsg 地址和远程 rpmsg 地址。当一个驱动器开始监听一个通道时,用于接收的回调函数绑定到唯一的 32 位 rpmsg 本地地址。入站消息到达时,rpmsg 内核会根据目的地地址将其发送给相应的驱动器。在提供入站消息有效载荷的同时,通过调用驱动器的接收处理程序来中继消息。通过这种方案,GOOSE 和 SV 消息的过滤代码可以将具有特定 APPID 地址的消息传递给在 Cortex-A15 上运行的不同处理程序。或者,可以将所有消息进行分组,中继到公共消息处理器,然后在主处理器上进行排序。
TI 的 Git 存储库提供的开源 IPC3.x 库实现该软件,以支持在 Linux 环境与 TI RTOS 之间使用 rpmsg(适用于 Cortex-M4 和 DSP 内核)。IPC 产品可在 TI 设备上提供相同的 API,从而为硬件自旋锁、处理器间邮箱和通过 MessageQ API 传递的 rpmsg 兼容消息取得设备特定支持。
总结
通过具有消息传递支持的多处理功能,像 AM572x 这样的器件可以有效支持复杂的实时控制协议,例如为管理电网基础设施的任务关键工作而设计的协议。