Cortex-A15 上運行的不同處理程序過程
一種替代方案是高可用性無縫冗余 (HSR),IEC 62439 中同樣有此定義。HSR 采用環(huán)形拓撲,每個數(shù)據(jù)包在復(fù)制后,會在環(huán)路架構(gòu)以相反方向轉(zhuǎn)發(fā)至目的地。環(huán)路架構(gòu)無需采用額外的交換機/路由器,可避免數(shù)據(jù)包在到達目的地前需要通過多個節(jié)點而產(chǎn)生的延遲。高級通信控制器可以通過使用直通轉(zhuǎn)發(fā)提供幫助,以盡可能將該延遲降至最低。這種方法不需要數(shù)據(jù)包在轉(zhuǎn)發(fā)到目的地之前完全解碼。
圖 3:HSR 冗余協(xié)議適用于環(huán)形拓撲。
由于需要廣泛過濾傳入的以太網(wǎng)消息,IEC 61580 需要高性能處理,以便減少用于控制算法的計算量。其中一個解決方案是盡量減輕網(wǎng)絡(luò)級分析負載,使主機處理器只需處理需要注意的消息。這可以在多核 SoC 上實現(xiàn),其中一些包含專用智能網(wǎng)絡(luò)處理器。例如 Texas Instruments 生產(chǎn)的嵌入式微處理器 AM572x Sitara。該公司提供的評估板可輕松探索其網(wǎng)絡(luò)功能。AM572x 基于 ARM?Cortex?-A15 處理器。這個多核器件通過一個 Cortex-M4 擴展了主機處理器,可用于幫助減少 I/O 密集型任務(wù)的負擔(dān)。該產(chǎn)品還包括一對網(wǎng)絡(luò)處理器以及基于 C66x 架構(gòu)的數(shù)字信號處理器,可用于執(zhí)行數(shù)據(jù)分析。AM572x 上的 PRU-ICSS 子系統(tǒng)除 ARM 內(nèi)核的處理外,還提供單獨的處理。該單元包含兩個 PRU,每個都包含一個運行頻率高達 200 MHz 的 32 位 RISC 處理器和一個網(wǎng)絡(luò)接口。兩個獨立智能內(nèi)核可以隨時為 PRP 和 HSR 提供支持。PRU 內(nèi)核中的 RISC 處理器沒有通用架構(gòu)。相反,該內(nèi)核專門用于處理網(wǎng)絡(luò)幀中遇到的打包存儲器映射數(shù)據(jù)結(jié)構(gòu)的類型。它集成了許多功能,可支持具有緊密實時約束的應(yīng)用??梢栽?PRU 處理器上執(zhí)行某種程度的數(shù)據(jù)包過濾。在 AM572x 上, Cortex-M4 為諸如 IEEE 1588、GOOSE 和 SV 之類協(xié)議提供了更多空間。Cortex-M4 可用于分析所有傳入的多點傳送數(shù)據(jù)包,并比較其應(yīng)用 ID (APPID) 地址,以實現(xiàn)由 Cortex-A15 上運行的軟件提供的有效訂閱。這樣 M4 可以確定哪些消息需要向上游傳遞。其他數(shù)據(jù)包則可以丟棄并從存儲器中刪除。
圖 4:共享存儲器 IPC 支持將 IEC 61580 處理工作卸載到 Cortex-M4 和其他處理器。這種卸載處理架構(gòu)中的一個關(guān)鍵考慮因素是各處理器如何相互通信。AM572x 提供共享存儲器就是要幫助將消息從一個處理器傳遞到另一個處理器。數(shù)據(jù)包可以輕易形成隊列,因此可以按順序進行寫入和讀取。關(guān)鍵問題是要使用的協(xié)議。一種選擇是在 Cortex-A15 上使用 Linux。
這樣可以使用操作系統(tǒng)為進程間通信提供的標準應(yīng)用編程接口 (API),例如 remoteproc 和 rpmsg。rpmsg 消息傳遞系統(tǒng)工作方式是通過提供一個虛擬設(shè)備反映鏈接到遠程進程的每個通信通道來實現(xiàn)的。通道通過文本名稱標識,并具有本地 rpmsg 地址和遠程 rpmsg 地址。當(dāng)一個驅(qū)動器開始監(jiān)聽一個通道時,用于接收的回調(diào)函數(shù)綁定到唯一的 32 位 rpmsg 本地地址。入站消息到達時,rpmsg 內(nèi)核會根據(jù)目的地地址將其發(fā)送給相應(yīng)的驅(qū)動器。在提供入站消息有效載荷的同時,通過調(diào)用驅(qū)動器的接收處理程序來中繼消息。通過這種方案,GOOSE 和 SV 消息的過濾代碼可以將具有特定 APPID 地址的消息傳遞給在 Cortex-A15 上運行的不同處理程序?;蛘?,可以將所有消息進行分組,中繼到公共消息處理器,然后在主處理器上進行排序。