EtherCAT

**EtherCAT**（**乙太網控制自動化技術**）是一個開放架構，以乙太網為基礎的現場總線系統，其名稱的 CAT 為控制自動化技術（**C**ontrol **A**utomation **T**echnology）字首的縮寫。EtherCAT 是確定性的工業以太網，最早是由德國的 Beckhoff 公司研發。

自動化對通訊一般會要求較短的資料更新時間（或稱為週期時間）、資料同步時的通訊抖動量低，而且硬體的成本要低，EtherCAT 開發的目的就是讓乙太網可以運用在自動化應用中。

## 機能原理

一般工業通訊的網路各節點傳送的資料長度不長，多半都比乙太網幀的最小長度要小。而每個節點每次更新資料都要送出一個幀，造成頻寬的低利用率，網路的整體性能也隨之下降。EtherCAT 利用一種稱為「飛速傳輸」（processing on the fly）的技術改善以上的問題。

在 EtherCAT 網路中，當資料幀通過 EtherCAT 節點時，節點會複製資料，再傳送到下一個節點，同時識別對應此節點的資料，則會進行對應的處理，若節點需要送出資料，也會在傳送到下一個節點的資料中插入要送出的資料
。每個節點接收及傳送資料的時間少於 1 微秒，一般而言只用一個幀的資料就可以供所有的網路上的節點傳送及接收資料。

## 通訊協定

EtherCAT 通訊協定是針對程序資料而進行優化，利用標準的 IEEE 802.3 以太網幀傳遞，Ethertype 為 0x88a4。其資料順序和網站上設備的實體順序無關，定址順序也沒有限制。主站可以和從站進行廣播及多播等通訊。若需要 IP 路由，EtherCAT 通訊協定可以放入 UDP/IP 資料包中。

## 性能

EtherCAT 的週期時間短，是因從站的微處理器不需處理乙太網的封包。所有程序資料都是由從站控制器的硬體來處理。此特性再配合 EtherCAT 的機能原理，使得 EtherCAT 可以成為高性能的分散式 I/O 系統：包含一千個分散式數位輸入 / 輸出的程序資料交換只需 30us，相當於在 100Mbit/s 的乙太網傳輸 125 個位元組的資料。讀寫一百個伺服軸的系統可以以 10 kHz 的速率更新，一般的更新速率約為 1–30 kHz，但也可以使用較低的更新速率，以避免太頻繁的直接記憶體存取影響主站個人電腦的運作。

## 拓撲

EtherCAT 使用全雙工的乙太網實體層，從站可能有二個或二個以上的埠。若設備沒偵測到其下游有其他設備，從站的控制器會自動關閉對應的埠並回傳以太網幀。由於上述的特性，EtherCAT 幾乎支援所有的網路拓撲，包括總線式、樹狀或是星狀，現場總線常用的總線式拓撲也可以用在以太網中。

EtherCAT 的拓撲可以用網路線、分枝或是短線（stub）作任意的組合。有三個或三個以上以太網接口的設備就可以當作分接器，不一定一定要用網路交換器。
由於使用 100BASE-TX 的以太網物理層，二個設備之間的距離可以到 100 公尺，一個 EtherCAT 區段的網路最多可以有 65535 個設備。若 EtherCAT 網路是使用環狀拓撲（主站設備需要有二個通訊埠），則此網路還有纜線冗餘的機能。

## 同步

為了系統的同步，EtherCAT 協定中有提供分散式時鐘機制，即使通訊循環週期有抖動，時鐘的抖動遠小於 1µs，大約接近 IEEE 1588 精密時間協議的標準。因此 EtherCAT 的主站設備不需針對時鐘使用特殊的硬體，可以用軟體實現在任何標準的的乙太網 MAC，即使沒有特殊的通訊協處理器也沒有關係。

標準建立分散式時鐘的程序是由主站送出一特定位址的廣播訊息給所有從站來啟動。若使用環狀拓撲，所有從站會在收到訊息時閂鎖內部時鐘，當訊息回來時會再閂鎖內部時鐘一次。主站會讀所有從站閂鎖的值，計算各個從站的延遲。為了消除抖動的影響及求得平均值，主站會儘可能的多次進行上述的程序。所有的從站延遲會依各從站在從站環狀拓撲的位置來計算，並記錄在一個偏移暫存器中。最後主站送出一個讀寫系統時鐘的廣播訊息，會使第一個從站的時鐘為參考時鐘，其他從站的內部時鐘會調整到和第一個從站相同。

為了在初始化後保持時鐘的同步，主站或從站需定期的再送出廣播訊號，以計算各個從站內部時鐘的速度差異，若有需要時，從站需要可以調整自身時鐘的速度，或是有其他調整時鐘的機制。

系統時鐘是一個 64 位元的計時器，計數內容是從 2000 年 1 月 1 日 0 點 0 分開始所經過的時間，單位是奈秒（ns）。

## 設備行規

設備行規（device profile）描述應用需要的參數及設備的機能特性，包括可能依設備種類而不同的狀態機。總線技術中已有許多可靠的設備行規，例如 I/O 設備、驅動器或閥等設備。EtherCAT 同時支援 CANopen 設備行規及 Sercos 驅動器行規。從 CANopen 或 Sercos 移植到 EtherCAT 時，在應用觀點看到的內容是一様的，也可方便使用者或設備製造商的轉換。

## 機能安全

EtherCAT 有一個加強的協定版本，稱為 Safety over EtherCAT，可以在同一個網路上進行機能安全相關的通訊和一般的控制通訊。此安全通訊是以 EtherCAT 的應用層為基礎，不會影響底層的通訊協定。Safety over EtherCAT 有通過 IEC 61508 的認證，符合安全完整性等級（SIL）3 的要求。自 2005 年起已有使用 Safety over EtherCAT 的產品上市。

## 實現

EtherCAT 主站可以用軟體，在標準的乙太網 MAC 中實現。許多供應商有提供在不同作業系統下的程式碼，也有許多開源軟體或共享軟體。EtherCAT 從站需要特殊的 EtherCAT 從站控制器，才能實現飛速傳輸（processing on the fly）的技術。EtherCAT 從站控制器可以用 FPGA 來實現，且已有現成的代碼，此控制器也可以用 ASIC 來實現。

## 參考資料

## 其他參考資料

* Büttner, H.; Janssen, D.; Rostan, M., 存档副本 (PDF), PC Control Magazine, 2003, **3**: 14–19 [2012-09-11], （原始內容 (PDF) 存檔於 2012-02-19）
* Janssen, D.; Büttner, H., Computing & Control Engineering Journal, 2004, **15**: 16–21
* Rostan, M., High Speed Industrial Ethernet for Semiconductor Equipment, SEMI Technical Symposium: Innovations in Semiconductor Manufacturing (PDF), San Francisco, CA, USA: SEMI, 2004 [2012-09-11], （原始內容存檔 (PDF) 於 2012-07-21）
* Potra, S.; Sebestyen, G., EtherCAT Protocol Implementation Issues on an Embedded Linux Platform, IEEE-TTTC International Conference on Automation, Quality and Testing, Robotics AQTR 2006, Cluj-Napora, Romania: IEEE: 420–425, 2006
* Robertz, S. G.; Nilsson, K.; Henriksson, R.; Blomdell, A., Industrial robot motion control with real-time Java and EtherCAT, 12th IEEE International Conference on Emerging Technologies and Factory Automation, Patras, Greece: IEEE, 2007
* Beckmann, G.; Sachs, J., 存档副本 (PDF), PC Control Magazine, 2007, **1**: 22–27 [2012-08-24], （原始內容存檔 (PDF) 於 2012-07-21）
* Cena, Gianluca; Cibrario Bertolotti, Ivan; Scanzio, Stefano; Valenzano, Adriano; Zunino, Claudio, On the accuracy of the distributed clock mechanism in EtherCAT, Factory Communication Systems (WFCS), 2010 8th IEEE International Workshop on, Nancy, France: IEEE: 43–52, 2010 [2012-09-11], doi:10.1109/WFCS.2010.5548638, （原始內容存檔於 2019-10-16）

## 外部連結

* EtherCAT Technology Group（頁面存檔備份，存於網際網路檔案館）
* EtherCAT Technology Group China（頁面存檔備份，存於網際網路檔案館）