1. 程式人生 > >工業乙太網EtherCat學習

工業乙太網EtherCat學習

一. 簡單介紹          

              EtherCAT是由德國Beckhoff公司提出的實時乙太網解決方案,它是國際現場匯流排標準的組成部分。在現場匯流排級的高速I/O控制和高速運動控制方面有突出的表現。EtherCAT使用標準的乙太網卡作為主站,利用標準乙太網物理層。

EtherCAT是一種直達I/O級的實時乙太網,它已經被納入IEC61784、IEC61158以及ISO15745-4等國際標準。EtherCAT突破了其他實時乙太網的解決方案,它在乙太網物理層作了改進,增加了實時通道傳輸資料。EtherCAT資料幀的處理方式與其他的實時乙太網所用方法大為不同,它借鑑了“集總幀”的通訊機制,可以將多個從站的過程資料整合到一個乙太網幀中,使得EtherCAT的頻寬利用率可以達到90%以上;當EtherCAT幀通過每個從站時,從站控制器檢視是否有與本機定址相關的資料,根據FMMU機制的定址範圍提取本機相關的資料,並將要傳輸給主站的資料插入到上行報文的相應位置。這個過程由EtherCAT從站ASIC晶片處理,整個過程的處理延遲很短,大大低於處理資料時問為微秒級的現場匯流排裝置。EtherCAT採用了基於IEEE1588的時鐘同步機制,網路中的資料幀在交換過程中會打上時間戳,這一過程完全是基於硬體完成的;主站能精確地測量各個從站的延遲偏移,各從站的分佈時鐘能基於主時鐘來調整,在整個網路範圍內可以使主從時鐘達到微妙級同步。EtherCAT在應用層上擴充套件了CANopen和SERCOS的伺服控制協議,可以與其他協議裝置的互通和互操作。

EtherCAT物理介質可以是 100Base-TX 電纜或者光纜,整個網路可同時掛接 65535 個裝置。

        EtherCat執行原理:


二. EtherCat資料幀結構

             EtherCAT資料採用標準的 IEEE802.3 乙太網幀傳輸,使用保留的乙太網幀型別0x88A4,因此其它型別的乙太網幀也可以在 EtherCAT 網段內透明傳輸而不會被從站處理一個標準 EtherCAT 幀包括 2 個位元組的 EtherCAT 頭和 44~1498 個位元組的資料。EtherCAT 資料區可以包含多個子報文,每個子報文對應所要定址的節點資料。EtherCAT 資料幀的結構如圖 2.6 所示。

            EtherCat幀格式定義:  

                                             

            EtherCat子報文結構定義:

                                    

           EtherCAT子報文由子報文頭、資料域和 WKC(Working Counter)組成。WKC用來記錄子報文是否被相應的從站正確處理。主站首先為每個通訊子報文設定一個預期的 WKC 值,傳送的子報文中 WKC 的初值為 0,從站根據識別出的命令處理子報文後,WKC 會增加一個值。主站通過比較返回的子報文的 WKC 值是否與預期的WKC 值一致,來判斷子報文是否被從站正確處理。


           在 EtherCAT 協議中,非週期性資料稱為郵箱資料,郵箱通訊是 EtherCAT 子報文的一種特殊形式,它存在於子報文資料區中,但是以特定的資料格式來組織資料,其具體幀結構如圖 2.6 所示。郵箱資料幀包括三部分:郵箱資料頭部、命令、命令相關資料

                  EtherCat郵箱資料幀結構:

                          

                 郵箱資料頭定義:

                  

三. EtherCat報文定址方式

           一個 EtherCAT 網段相當於一個乙太網裝置,主站首先根據乙太網幀頭定址到相應的網段,然後根據子報文頭中的 32 位地址來定址網段內的裝置。段內定址方式有兩種:裝置定址和邏輯定址。裝置定址模式下,子報文頭中的 32 位地址分為 16 位的從站裝置地址和 16 的裝置內物理儲存地址,每個報文只能定址唯一的一個從站裝置。裝置定址又有兩種定址機制:順序定址和設定定址。順序定址時,從站地址根據從站在網段內的連線位置,用一個負數來表示。每個從站裝置收到順序定址子報文後都將其順序地址加 1,如果接受的子報文的順序地址為 0 就定址到了自己的報文。設定定址時,從站的地址可以是從站自身的配置值或者由主站在初始化階段進行配置。邏輯定址模式下,子報文頭中的 32 位地址作為整體的資料邏輯地址來對裝置進行邏輯定址。邏輯定址方式由 FMMU(Fieldbus Memory Management Unit,現場匯流排記憶體管理單元)實現,每個 EtherCAT 從站控制器內部的 FMMU 單元將本站的實體地址對映成網段內的邏輯地址。主站在初始化階段配置每個從站的 FMMU 單元。每個從站接受到邏輯定址子報文後,檢查自己的 FMMU 單元地址是否和子報文中的邏輯地址匹配。如果匹配,則對子報文的資料區進行相應的資料操作。

           EtherCAT 通訊由主站傳送 EtherCAT 資料幀讀寫從站的記憶體來實現資料互動,在此過程中有多種定址方式可供使用。主站首先用網段定址方式定址到網段,每個網段都有一個MAC 地址,然後使用段內定址方式找到段內從站裝置;段內定址可以採用兩種方式:裝置定址和邏輯定址。裝置定址針對某個從站進行讀寫操作,邏輯定址面向過程資料,同一個子報文可以讀寫多個從站裝置的記憶體。

(一) EtherCAT網段定址

           EtherCAT 網段定址是通過乙太網資料幀頭部的 MAC 地址定址到網段的。根據主站和從站的連線方式不同可以分為兩種方式:直連模式和開放模式。直連模式是將一個網段直接和主站的網口相連,主站使用廣播 MAC 地址傳送資料。

            開放模式中 EtherCAT 網段是連線到標準的乙太網交換機上的,此時一個網段需要一個MAC 地址,主站傳送EtherCAT 資料幀中的目的地址就是它所控制的網段的 MAC地址。EtherCAT 網段內的第一個從站裝置的 MAC 地址代表了整個從站,通訊時就是本網段的地址。

(二) 裝置定址

          在裝置定址過程中,EtherCAT 子報文頭部的 32 位地址包括裝置地址和從站實體記憶體地址,這兩種地址各佔 16 位。裝置定址只允許每個子報文定址一個從站,它有兩種定址機制:順序定址和設定定址,這兩種方式的地址組成如圖 2.10 所示。

                                 

(三) 邏輯定址和 FMMU

             在邏輯定址過程中,主站可以使用 4GB 邏輯地址空間來對映多個從站的實體記憶體,一個報文內的資料可以分佈於多個從站中。邏輯定址方式由 FMMU 來實現,FMMU 功能位於每個從站內部,將其實體地址對映到網段的邏輯地址上來,從站部分的 FMMU 定址功能整合到 ASIC 晶片內部,它為每個從站提供邏輯定址功能。當主站通過 FMMU 方式傳送資料到從站時,只須把資料插入到幀的相應位置上,當 EtherCAT 幀經過從站時,從站控制器通過 FMMU 進行定址分析,找出與本站相關的資料並提取出來,這時如果從站有資料要傳送給主站,只須把資料插入到幀的相應空間中,FMMU 允許一個子報文定址多個從站裝置,就是把多個從站的實體記憶體對映到一個子報文中。

          FMMU 資料對映由主站來配置,在預執行階段傳送給從站,一般 FMMU 需要配置以下資訊:資料長度、資料邏輯位起始地址、資料邏輯起始位、資料邏輯終止位、從站實體記憶體起始地址、實體記憶體起始位、操作型別、使能。

四. 分佈時鐘原理:

        這裡首先介紹 EtherCAT 分佈時鐘涉及的一些約定概念。參考時鐘是指主站連線的第一個具有分佈時鐘功能的從站的時鐘,其它從站的時鐘稱為從時鐘。主站時鐘是指 EtherCAT 主站的時鐘。系統時鐘是指分佈時鐘使用的系統及時,使用 64 位二進位制表示,單位為 ns。每個具有分佈時鐘功能從站的本地時鐘都是獨立執行的,系統啟動時參考時鐘和從站的本地時鐘的差值稱為時鐘初始偏移量。由於參考時鐘和從時鐘使用的都是各自的時鐘源,它們的計時週期存在漂移,導致時鐘執行不同步,本地時鐘產生漂移。本地系統時間是指經過補償和同步之後的本地時鐘。傳輸延時是指從站之間資料傳輸時產生的延時。EtherCAT 採用 IEEE1588 網路測量和控制系統的精密時鐘同步協議標準機制來實現分佈時鐘,使所有的 EtherCAT 裝置都同步於一個參考時鐘,從而控制各裝置同步執行相應的任務,EtherCAT 各站裝置可以達到小於 1 微秒的時鐘同步精度。

EtherCAT 的通訊模式有兩種,時間關鍵的週期性過程資料通訊和非時間關鍵的郵箱資料通訊。週期性過程資料通訊通常使用 FMMU 進行邏輯定址,所以一個報文可以定址多個從站。EtherCAT 的非週期性資料通訊稱為郵箱通訊,郵箱通訊一般使用裝置定址模式,所以一個報文只能定址一個裝置。郵箱資料報文的結構如圖 2.5 所示。

                                

五.應用層協議:

         EtherCAT 協議模型只包含三層:物理層、資料鏈路層和應用層。應用層為控制程式提供服務和訪問網路環境提供手段,是 EtherCAT 協議最高的一個功能層。應用層不包括控制程式,它只是定義控制程式與網路的介面,如圖 2.6 所示。EtherCAT協議在應用層支援 CANopen 協議、SERCOS 協議、HTTP 協議等其它許多協議。