使用 Sitara 的專業子系統實現工業自動化通訊與處理

作者:Stephen Evanczuk

資料提供者:DigiKey 北美編輯群

對開發人員來說,為工業自動化系統提供可靠的通訊存在諸多獨特的挑戰。這些系統倚賴多種通訊協定,專用於在各種不同的工業環境子系統中,維持即時可靠的連線。在這種環境下,傳統的一般用途處理器在執行應用軟體時,可能無法始終如一地滿足即時通訊需求。

開發人員需要一個能輕鬆適應各種工業應用需求的開發平台。

本文將說明開發人員能如何使用 Texas Instruments 的現成開發套件,來加速工業通訊解決方案的開發。此套件的核心是 Texas Instruments 的 Sitara 處理器,此元件可整合工業應用所需的運算資源和專用通訊功能。

工業通訊需求

工業通訊系統是高等製造策略的關鍵推手,但如今面臨越來越嚴格的需求,越來越難即時回應並可靠地將各組感測器、馬達和致動器,連結至可編程邏輯控制器 (PLC) 及人機介面 (HMI)。

除了這麼多子系統以外,工業應用可能還會因為效能需求、專用設備和舊有系統,而導致需要支援多種網路技術和協定。因此,單個環境可能需要支援多種現場匯流排協定,例如控制區域網路 (CAN)、Modbus 和 Profibus,以及 Profinet、EtherCAT 和 Sercos III 等工業乙太網路協定。

與現場匯流排標準一樣,每個工業乙太網路標準都是為了解決一組特定需求。每個標準都提供工業通訊所要求、但傳統乙太網路卻無法提供的即時效能。而每個工業乙太網路標準實現這種能力的方式可能截然不同。

例如,Profinet 允許主控制器與網路中的所有元件通訊。從屬元件可依次與控制器交換訊框,但只能與其他元件進行非週期性通訊。對於通訊,此協定為傳統的非即時性資料交換提供了標準的傳輸控制協定/網際網路協定 (TCP/IP) 通道。對於即時性資料交換,Profinet 即時通道支援在控制器和從屬元件之間,進行週期性交換或非週期性交換 (圖 1 左)。

Profinet (左) 和 EtherCAT (右) 的乙太網路堆疊示意圖圖 1:不同的工業乙太網路堆疊 (左為 Profinet,右為 EtherCAT) 可能會提供類似的服務 (例如傳統乙太網路),但其在高層級協定和底層媒體存取控制 (MAC) 及資料連結層 (DLL) 服務中支援即時通訊的方法卻截然不同。(圖片來源:Texas Instruments)

在 EtherCAT 中,主從之間的通訊方式是,在節點間所傳輸的訊框中,為每個從屬節點添加命令和資料。當訊框通過時,每個從屬節點即會讀取其指定命令和資料,並在此訊框中添加自己的資料,然後繼續轉到下一個節點。與 Profinet 一樣,EtherCAT 也將傳統的 TCP/IP 通道和即時通道整合在一起,前者用於與乙太網路相容的通訊,後者用於時間敏感型通訊 (圖 1 右)。

雖然不同工業乙太網路標準所仰賴的機制大不相同,但都能提供傳統乙太網路所欠缺但工業通訊所需要的即時效能。但是,在實作這些標準時,開發人員可能會陷入兩難的境地,因為典型設計選項存在效能限制,無法滿足其應用的即時效能需求。

若想實現即時應用,就需要在收到命令、輸入或其他驅動因素後,在某個一致的時間內實現低延遲回應。在工業系統所使用的週期型過程中,低延遲系統可確保這些過程在每個週期開始後儘快執行。這些系統中的抖動或其他因素可能會導致週期發生意外的變化,從而慢慢地令系統無法以可靠一致的方式處理高週期率的過程。

以前,開發人員常常不得不設計自己的硬體解決方案,來解決與工業連接性有關的即時性挑戰。但大部分的方法都很複雜,原因在於針對通用運算而設計的軟硬體,主要著重於最佳化整體的應用執行效能,而不是處理即時效能需求。

在軟體層級,工業應用的開發人員,需要低延遲、確定性的回應能力,這些能力通常由即時 Linux 提供,更嚴格來說是由即時作業系統 (RTOS) 提供。最終,延遲性和確定性效能取決於底層硬體平台所使用的處理器。

無論是什麼應用 (包括工業自動化所需的應用),都適合使用通用處理器 (如 Arm® Cortex®-A 核心) 來執行用於實現高層級任務的軟體。典型的通用處理器利用多級快取記憶體層級和多階指令管線,來加快處理速度 (圖 2)。

Arm Cortex-A 使用多層互連和資源最佳化各種工作負載的執行示意圖圖 2:在 Arm Cortex-A 等通用處理器中,其架構會使用多層互連和資源來最佳化應用執行中各種工作負載的執行。(圖片來源:Texas Instruments)

對工業通訊開發人員來說,這些架構特點導致很難在一般性工業自動化和即時性乙太網路系統中達到所需的即時效能。每一層快閃層、記憶體層和互連層都會延長執行週期型過程所需的時間 (延遲)。由於處理器必須通過的層數因週期而異,因此回應時間可能變化很大。

以往,面臨此問題的開發人員會使用專用硬體、現場可編程閘級陣列 (FPGA),甚至是應用專屬積體電路 (ASIC),來實作系統中時間與效能至關重要的部分。例如,開發人員會透過在 FPGA 或 ASIC 中實作 MAC 和其他即時功能,來支援即時乙太網路。

雖然客製化硬體在效能方面能提供非常有效的解決方案,但由於最終設計的成本和複雜度大幅提升,這個方法只有在效能需求比所有其他考量因素更重要的應用中才可行。對於工業通訊,Texas Instruments 透過利用其 Sitara 處理器系列的多處理器架構,提供了一種更實用、更具成本效益的解決方案。

工業通訊子系統

Sitara 處理器系列整合了高效能 Arm Cortex-A 應用處理器,以及一個或多個可編程即時單元與工業通訊子系統 (PRU-ICSS) 實例。Cortex-A 處理器執行主應用,PRU-ICSS 則提供工業乙太網路協定和其他控制功能所需要的即時處理和 IO 能力 (圖 3)。

Texas Instruments 的 Sitara 處理器系列示意圖圖 3:Texas Instruments 的 Sitara 處理器系列成員將通用 Arm Cortex-A 處理器與經過專門最佳化的專用可編程即時單元整合在一起,可提供即時應用所需的低延遲、確定性效能。(圖片來源:Texas Instruments)

每個 Sitara 可編程即時單元 (PRU) 子系統,都含有兩個 200 MHz 即時核心 (如圖 3 所示的 PRU0 和 PRU1),每個指令的循環時間為 5 ns。這些核心設計有少量的指令,可以不經指令管線進行處理,確保單循環指令的執行具有確定性。為了減少周邊裝置運作延遲,核心會透過專用的 32 位元互連來存取共用的資源,此互連會將其與多個周邊裝置直接相連,包括即時乙太網路所需的管理資料輸入/輸出 (MDIO) 及媒體獨立介面 (MII)。此外,每個 PRU 核心會透過多達 30 個輸入和 32 個輸出,直接連至元件的外部引腳 (圖 4)。

Texas Instruments 的 Sitara 處理器示意圖圖 4:Texas Instruments 的 Sitara 處理器內建可編程即時單元 (PRU)。此單元可直接存取輸入和輸出引腳以及其他硬體資源,減少工業應用的延遲。(圖片來源:Texas Instruments)

在這個緊密耦合的周邊裝置架構下,即時核心可以獨立運作,並避免典型通用處理系統中因處理多個互連和分層而產生的延遲。由於能快速完成單循環執行並直接存取周邊裝置,因此子系統能夠確定性地執行週期型過程,對外部事件做出快速而可預測的回應。所以,PRU 子系統在執行 IO 作業和存取外部引腳方面,效率比配套的通用處理器高出許多 (圖 5)。

TI Sitara 處理器內建的可編程即時單元 (PRU) 子系統示意圖圖 5:TI Sitara 處理器內建的可編程即時單元 (PRU) 子系統,能執行單循環指令並直接存取元件引腳,其向元件引腳讀取或寫入讀訊時需要處理的層數要少很多 (右),周邊裝置作業速度比配套的 Arm Cortex-A 處理器可能達到的速度更快 (左)。(圖片來源:Texas Instruments)

PRU 核心的高速 IO 和 5 ns 循環時間相結合,能提供工業通訊所需的低延遲、確定性效能。在更高的層級,此架構提供靈活的機制,能夠最佳化 Arm Cortex-A 和 PRU 子系統的協調使用,將工業應用的效能提升至最高。

透過適時使用專用及共享資源,各核心能獨自以最高效能運作,或共同執行複雜的即時性任務。適合個別核心所處理的任務,可獨立在該核心上運行,而要求更高的即時任務,則能在緊密耦合的核心之間共用處理負載。PRU 核心能夠直接存取 Cortex-A 核心的資源,因此無論在哪一個運作模式下,都能高效能地執行即時作業以及周邊裝置互動。

為了在緊密耦合的執行中最佳化資源分配和管理,Sitara 系統架構在硬體和軟體中都提供了協調機制。在硬體層級,處理器內部通訊功能 (包括硬體型信箱和資源鎖定暫存器) 有助於確保 Cortex-A 處理器與 PRU-ICSS 保持同步。

在軟體層級,由於支援 Linux 多重處理服務,因此提供了標準的作業環境,能在緊密耦合的操作中協調任務的執行。在執行階段方面,Arm Cortex-A 核心上的作業系統核心,會使用標準的 RemoteProc (遠端處理) 控制與 rpmsg (遠端處理訊息傳遞) 服務,以及其自身的驅動程式和 PRU 韌體中的匹配驅動程式,來協調 PRU 系統作業。RemoteProc 服務會處理 PRU 韌體載入及後續處理,rpmsg 架構則允許使用 virtio 虛擬化介面,將訊息從應用交換至 PRU (圖 6)。

Texas Instruments 的 Sitara 處理器示意圖圖 6:Texas Instruments 的 Sitara 處理器支援一組標準服務,可實現 Arm Cortex-A 主機處理器與 PRU 子系統的應用互動及協調。(圖片來源:Texas Instruments)

從序列周邊裝置介面 (SPI) 等序列通訊介面,到複雜的工業乙太網路協定,此架構都能簡化開發並提高工業連接性選項的效能,從而讓自身的優勢特別顯著。透過在 Cortex-A 處理器上運行協定軟體堆疊,在 PRU 韌體上處理即時服務,TI Sitara 處理器可以有效率地執行 Profinet 等即時乙太網路協定 (圖 7)。

Texas Instruments 的 Sitara 處理器可滿足工業乙太網路協定需求的示意圖圖 7:Texas Instruments 的 Sitara 處理器可協調 Arm Cortex-A 主機處理器的軟體執行,以及 PRU 子系統的韌體執行,因此能滿足 Profinet 等工業乙太網路協定的通用處理及即時性的需求。(圖片來源:Texas Instruments)

這個方法提供一種簡單的解決方案,可在單個應用中支援多個協定。開發人員只需要在 Sitara 處理器中同時執行每個協定所需的堆疊和韌體即可 (圖 8)。

Texas Instruments 的 Sitara 處理器可同時支援多種工業通訊介面和協定的圖片圖 8:PRU 的韌體執行效率,和 Arm Cortex-A 處理器的軟體執行效能,讓 Texas Instruments 的 Sitara 處理器可同時支援多種工業通訊介面和協定。(圖片來源:Texas Instruments)

TI 為幾種不同的序列通訊協定、現場匯流排協定以及即時乙太網路協定 (如 EtherCAT、Profinet 和 Sercos III) 提供完整的協定堆疊。透過在同一 Sitara 型系統整合協定堆疊,開發人員可支援典型 PLC 或工業交換器的各種連接需求,比如工業交換器需要在主機端支援 Profinet 等工業乙太網路,並在周邊裝置端支援 Profibus 或 IO-Link 等現場匯流排。

市面上的標準工業乙太網路套裝以黑盒子二進位形式提供,但 TI 為開發人員提供了多個工業通訊服務範例。對於應用程式的開發,系列特有的 TI 處理器軟體開發套件 (簡稱處理器 SDK),例如 AM437x Sitara 處理器的處理器 SDK,為相應的處理器系列提供應用程式開發介面 (API)。在提供系列特有的功能性方面,這些 API 為 GPIO 或 IO-Link 交易等低層級的作業,提供了直觀的抽象能力 (清單 1)。

複製
/* GPIO LED toggling*/
...Board_init(boardCfg);
GPIO_init();
While(1)
{
GPIO_write(Board_LED1, GPIO_PIN_VAL_HIGH);
Delay();
GPIO_write(Board_LED1, GPIO_PIN_VAL_LOW);
Delay();
}

/* IO-LINK status */
...Board_init(boardCfg);
...IOLINK_socGetFwCfg(peripheralNum, &iolink_cfg);
...IOLINK_socSetFwCfg(peripheralNum, &iolink_cfg);
...IOLINK_init();
...iolinkHandle = IOLINK_open(peripheralNum, &iolinkParams);
...status = IOLINK_control(iolinkHandle, iolinkCmd, &iolinkCmdArg);
...

清單 1:如這些片段所示,對於每個 Sitara 系列,Texas Instruments 的處理器 SDK API 可讓開發人員專注於功能抽象,而不是花時間處理低層級的位元操作或暫存器存取。(程式碼來源:Texas Instruments)

加快開發速度

TI 提供了一些程式碼和工具,可用於在 Sitara 處理器上實作工業通訊協定,但除此之外,TI 和第三方協定堆疊提供商還提供附加套裝,開發人員可使用其中的協定、驅動程式及 PRU 韌體,更快地開發出自己的工業通訊軟體。同樣,TI 的 TMDSIDK437X 工業開發套件 (IDK) 也能加速開發速度,此套件亦為工業應用提供完整的 Sitara 型硬體平台 (圖 9)。

Texas Instruments 的 TMDSIDK437X IDK 圖片圖 9:Texas Instruments 的 TMDSIDK437X IDK 整合了 Sitara 處理器、記憶體及一整套周邊裝置、介面和工業通訊通道,能為開發人員提供評估工業通訊協定以及快速開發工業自動化應用的平台。(圖片來源:Texas Instruments)

TI 的 TMDSIDK437X IDK 板具有 1 GB 雙倍數據傳輸率 3 (DDR3) 隨機存取記憶體 (RAM)、四通道 SPI NOR 快閃記憶體,以及 TI 的 AM4379 Sitara 處理器。AM4379 處理器整合了 Arm Cortex-A9 處理器和兩個 PRU 子系統,每個子系統包含兩個 PRU 核心。

在典型的工業自動化網路中,Sitara AM4379 可扮演多種角色。除了用於 PLC、交換器和閘道器等多協定系統,Sitara AM4379 處理器也可用於需要 HMI 支援的終端設備,而這要歸功於該處理器具有整合式圖形和顯示器子系統。

該 IDK 板不僅提供多個周邊裝置和通訊連接埠,還含有乙太網路介面晶片,包括 Texas Instruments 用於連接工業乙太網路的 TLK105 10/100 Mbit/s PHY 收發器,以及 Microchip Technology 用於連接傳統乙太網路的 KSZ9031RNXIA-TR Gbit 收發器 PHY。

要使用此套件實作工業通訊應用很簡單,只需要使用 24 V 電源並使用乙太網路纜線與開發系統相連即可。

TI 的 PRU-ICSS 工業軟體集為上述工業通訊協定提供軟體套裝。使用 TI 的 Code Composer Studio 整合開發環境 (IDE),開發人員可快速載入、建立並執行套裝所附的應用程式範例,或將其用於開發自己的應用程式。

使用 TI 軟體和 PRU-ICSS 工業軟體套裝,開發人員可快速實作複雜的工業自動化系統,例如以乙太網路連接的馬達驅動控制器 (圖 10)。

Texas Instruments 的 TMDSIDK437X IDK 及 Texas Instruments 軟體示意圖圖 10:整合 Texas Instruments 的 TMDSIDK437X IDK 及 Texas Instruments 軟體,將能以一個特別有效的開發平台快速實作工業系統,例如此圖所示的以 EtherCAT 連接的馬達控制器。(圖片來源:Texas Instruments)

對於此馬達驅動控制器應用,PRU 子系統將使用 TMDSIDK437X 板的類比數位轉換器 (ADC) 介面或 EnDat 數位雙向編碼器介面,來收集馬達的位置資料。Arm Cortex-A 處理器將使用此資料執行磁場導向控制 (FOC) 演算法,建立新的馬達控制參數集,以透過 Sitara 脈寬調變 (PWM) 通道進行傳送。最後,TMDSIDK437X 板上的 TI DRV8313 馬達驅動器將輸出調整後的馬達參數。

使用 TMDSIDK437X IDK 硬體板與 TI 軟體,開發人員可快速實作經由各種介面及通訊協定相連的工業自動化應用。對於客製化應用,此套件可用作完整的公版設計,幫助加速硬體的開發速度。該硬體基礎,再加上 TI 處理器 SDK 和 PRU-ICSS 工業軟體套裝,將可提供一個開發平台,來滿足以各種工業通訊協定為基礎的新興應用的需求。

結論

隨著需求日益增多,高效能地執行工業通訊協定對於實現先進工業自動化系統至關重要。雖然這些系統需要使用通用處理器執行演算法及更高層級的過程,但通常也需要使用專用元件來提供低延遲、確定性的效能,支援現場匯流排及工業乙太網路連線的即時性工業通訊協定。

如本文所示,Texas Instruments 的 Sitara 系列提供了滿足這些要求所需的通用及即時處理單元。結合使用 Texas Instruments 的 Sitara 型工業開發套件及預構建的通訊協定堆疊後,開發人員可以快速部署複雜的工業自動化應用來支援各種工業通訊選項。

DigiKey logo

聲明:各作者及/或論壇參與者於本網站所發表之意見、理念和觀點,概不反映 DigiKey 的意見、理念和觀點,亦非 DigiKey 的正式原則。

關於作者

Image of Stephen Evanczuk

Stephen Evanczuk

Stephen Evanczuk 撰寫電子產業的相關資訊已有超過二十年的經驗,涉及的主題多元,涵蓋硬體、軟體、系統以及包含 IoT 在內的應用。他以神經元網路為研究主題,取得神經科學博士學位,並且在航太產業,針對廣泛運用的安全系統和演算法加速方法進行研究。目前,在撰寫科技和工程文章之餘,他投入辨識和推薦系統的深度學習應用。

關於出版者

DigiKey 北美編輯群