一、EtherCAT 簡介?
EtherCAT(Ethernet Control Automation Technology)是一種工業以太網現場總線,它將計算機網絡中的以太網技術應用于工業自動化領域,構成工業控制以太網(工業以太網、工業以太網現場總線)。?
其以太網數據幀的數據區由多個子報文組成,每個子報文都服務于一個特定的邏輯映像區。在數據傳輸過程中,讀取數據時,每個設備中的 FMMU(Fieldbus Memory Management Unit,現場總線內存管理單元)會在數據幀通過時,讀出該數據幀中映射到此設備的邏輯地址中的數據(如數字伺服控制指令數據);輸入數據(如數字伺服狀態數據)則可在數據幀通過時插入到相應的邏輯地址區中,且數據幀在整個過程僅有幾納秒的延時。?
通常每個通信周期只需要傳輸一個以太網數據幀,這個數據幀沿著邏輯環傳輸一周,就能完成所有的廣播式、多播式以及從站間的通信。?
EtherCAT 協議基于以太網接口,在 MAC(介質訪問控制)層上增加一個確定性調度的軟件層,該軟件層實現了通信周期內的數據交換。在高層協議中,EtherCAT 并沒有定義任何設備規范,而是支持現有的各種設備規范和服務,方便用戶和設備生產商從現有的現場總線標準移植到 EtherCAT。?
二、EtherCAT 相關協議?
常用的高層協議包括:?
- FoE(File over EtherCAT):可通過網絡訪問設備中的文件,以及將統一的固件跨網絡上傳到設備,無需 TCP/IP 協議堆棧。?
- EoE(Ethernet over EtherCAT):可以在 EtherCAT 網段實現以太網數據的傳輸。?
- SoE(SERCOS over EtherCAT):基于 SERCOS 協議,SERCOS 是一種實時通信接口,尤其適用于運動控制。?
- CoE(CANopen over EtherCAT):基于 CANopen 協議。?
- AoE(ADS over EtherCAT):基于郵箱的客戶端 - 服務器協議。?
三、相關概念?
- Ethernet(以太網):計算機網絡中常用的局域網技術。?
- MAC(介質訪問控制):以太網中的數據鏈路層協議子層,負責控制對物理介質的訪問。?
- CSMA/CD(帶有沖突檢測的載波偵聽多路訪問機制):傳統以太網采用的介質訪問控制方法。?
- 實時以太網(RTE,Real Time Ethernet):能滿足實時性要求的以太網技術。?
- IEC61158:工業通信網絡 —— 現場總線規范,包括了 10 種工業以太網協議標準。?
- IEC61784:工業通信網絡 —— 行規規范,為 IEC61158 中的現場總線標準制定了應用行規標準。?
根據不同的實時性和成本要求,實時以太網大致可分為三種:?
- 基于 TCP/IP 的實現(如 Modbus/TCP、Ethernet/IP):使用 TCP/IP 協議棧,可以與商用網絡自由地通信。?
- 基于以太網的實現(如 Ethernet Powerlink):使用標準的以太網通信硬件,采用專門的過程數據傳輸協議。?
- 修改以太網的實現(如 EtherCAT):能獲得響應時間小于 1ms 的硬實時性能,由專門的硬件實現,由實時 MAC 接管通信控制。?
四、EtherCAT 從屬控制功能模塊?
- EBUS(EtherCAT 接口):用于連接其他 EtherCAT 從機或主機,EtherCAT 從站支持 24 端口,編號為 0-3。?
- EPU(EtherCAT 處理單元):負責接收、分析、處理數據流,主要功能是協調對 ESC(EtherCAT Slave Controller,EtherCAT 從站控制芯片)內存數據的訪問(如 SM、FMMU 對內存的訪問),還負責實現自動轉發、數據回環等功能。?
- 自動轉發:由 EPU 實現,自動轉發接收到的以太網幀并執行幀檢查,生成接收時間戳。?
- 數據回環:由 EPU 實現,當某個端口不可用、沒有連接鏈路或環路已關閉時,數據到達此處后,會自動轉發到下一個端口。?
- FMMU(Fieldbus Memory Management Unit):將邏輯地址逐位映射到物理地址。?
- SM(Sync Manager,同步管理器):負責實現數據交換的一致性(同步),可以分別配置為讀或寫的數據方向,一般使用兩個 SM 通道分別處理讀寫請求。?
- 監視單元:包含錯誤計數器和看門狗,看門狗用于在錯誤發生后返回安全狀態,錯誤計數器用于錯誤檢測和分析。?
- PHY 管理單元:通過 MII 接口與以太網 PHY 通信,可以在接收到錯誤以太網幀時,自動協商啟動重傳。?
- 分布時鐘:實現整個 EtherCAT 網絡的同步。?
- 存儲空間:共 64K,前 4K 為寄存器和用戶存儲器空間,后 60K 為進程存儲器。ESC 的內存可以由主站和連接的微控制器直接尋址,ESC 中的寄存器(0x0000-0x0f7f)有影子緩沖區,在一個幀期間收到的數據首先存放在影子緩沖區,校驗無誤之后再寫入寄存器,用戶和進程存儲空間沒有影子緩沖區。?
- PDI(Process Data Interface,過程數據接口):由數字量 IO、SPI 從機、微控制器等多種連接模式。?
- SII(Serial Information Interface):即 EEPROM,是非易失性存儲器,存放配置信息。?