Ether CAT 主站與主站通信協議的研究與實現
2019-8-14 來源: 桂林電子科技大學 電子工程與自動化學院 作者:黨選舉,李帥帥,伍錫如,姜 輝
摘要: Ether CAT 是目前最高速的工業現場總線網絡。由于其高帶寬利用率,低堆棧延遲、低交換機延遲等優點,近些年被廣泛應用于數控機床系統。為滿足 Ether CAT 主站間的通信,進一步擴展 Ether CAT 組網功能,為構建 Ether CAT 工業復雜網絡提供技術支持,在不影響原有主站與從站通信功能情況下,設計了支持主站與主站之間通信的新協議,擴充 IGH 開源驅動功能,在 AM3358 處理器硬件平臺上實現了Ether CAT 主站與主站的通信。
分別在實時 RT-Patch linux 系統和原生 linux 系統中對設計方案進行測試,結果表明該方案運行穩定且可以滿足主從、主主之間相互通信,滿足了工業組網需求。為實現 Eth-er CAT 數控系統復雜網絡的建立和大數據的快速采集,解決了主站與主站之間通信的關鍵問題。
關鍵詞: Ether CAT; 主站; 現場總線; 大數據采集
0 引言
實時以太網是常規以太網技術的延伸,為滿足控制領域的實時通信要求,德國倍福自動化公司提出了 Ether CAT 實時工業以太網技術。在數控系統領域,沈陽機床 i5 智能數控機床使用 Ether CAT 總線系統顯著提高了工業效益。
現有的大量研究都集中在主從的構建或者主從間通信中,如在 ARM 構架上構建支持主從 通 信 的 Ether CAT 主 站,高 性 能 從 站 的 設計,從站同步時鐘的優化及其 Ether CAT 時序特性分析等。其所研究的 Ether CAT 總線結構主要是單個主站獨立控制多個從站,主站各有屬于自身的從站單元,主站與主站間無法交換共享數據。
為構建工業數控系統復雜網絡,實現數控系統多軸信息的快速傳輸,進行工業大數據的采集,獨立的主站與從站通信并不能完全滿需求,難以真正的實現分布式架構,不利于對于數控系統中大數據的傳輸。因此該文深入研究Ether CAT 總線通信協議,采用 Ether CAT 協議中的保留數據類型,進行主站與主站之間的通信。
如今為解決大數據難以傳輸處理問題一般系統采用分布式架構。主站與從站通信,是分布式架構一個局部基本單元,只有局部基本單元之間相互通信,才可以為構建Ether CAT 工業數控系統復雜網絡提供基礎保障。主站與主站通信正是為搭建復雜網絡提供了可行方案。
為了提高普適性,選用 linux 系統作為開發平臺。德國 IGH 公司提供的 Ether CAT Master for Linux 主站驅動,其遵循 GPLv2 開源協議,但此代碼僅支持主站與從站之間的通信,因此該文在 IGH 發布的主站開源代碼的基礎上,通過協議補充,擴充驅動功能,構建了支持主站與主站之間通信的系統。
1 、程序運行環境的實現
1. 1 實現 Ether CAT 主站的軟件結構
IGH 公司提供的主站驅動支持原生非實時 linux 操作系統和實時擴展如 RTAI、XENOMAI、RT-Patch 等實時linux 系。如圖 1 所示主站基本通信結構圖,其主要由包含各種連接硬件接口的硬件層,負責 linux 調度、算法處理的內核層,供應戶調用的應用層三部分組成。

圖 1 主站基本通信結構圖
1. 2 實現主站的硬件平臺
AM3358 是基于 ARM Cortex-A8 內核帶有 NEON協處理器高性能處理器。其最高主頻可達 1GHz; 集成2 個可編程實時單元 pRU,PRU 可配置成為 Ether CAT從站功能模塊; 具有單錯檢測( 奇偶校驗) 的 32KB /32KB L1 指令 / 數據高速緩存; 集成 2 個工業用千兆以太網 MAC( 10 /100 /1000MHZ)。文中把其中一個網口作為從站連接口,另外一個作為主站與主站之間通信連接口,主站連接示意圖如圖 2 所示。

圖 2 主站連接示意圖
2 、主站驅動擴展與實現方法
2. 1 Ether CAT 數據幀分析
Ether CAT 數據基于以太網數據幀進行傳輸,數據幀類型為 0x88A4,其部分幀結構示意圖如圖 3 所示。

圖 3 Ether CAT 部分幀結構示意圖
圖 3 中,對于 Ether CAT 頭部分,其中的 Ether CAT數據長度為整個 Ether CAT 報文部分的數據長度,對于類型,其值為 1 表示主站與從站通信的數據幀,其余值保留。但為了主站之間進行通信,文中規定在 Ether-CAT 頭中的類型為 2 表示該數據幀為主站與主站通信數據幀,因此只需補充并完善驅動代碼,使之在接收數據時識別該以太網幀的類型位就可以識別是發往從站的數據幀還是主站間通信的數據幀。
2. 2 主站運行階段
Ether CAT Master for Linux 主站驅動按照功能不同的劃分,可劃分為孤兒階段、空閑階段和可操作階段三個階段,其示意圖如圖 4所示。

圖 4 主站驅動運行階段
圖 4 中,在孤兒階段,主站等待以太網設備連接;在空閑狀態,主站已經連接了以太網設備,但是應用空間并沒有對主站請求。此時主站會自動掃描從站總線并等待應用空間的操作。同時,命令行工具可以訪問總線,但是由于缺少總線配置,不能進行過程數據的交換。
文中修改驅動代碼后,在此階段,主站除掃描總線上的從站外,主站另一端口還需要掃描對應總線上的其它主站設備; 在操作狀態,主站被應用層請求,此時可對總線上從站進行配置也可進行過程數據的交換。
2. 3 主站對數據幀的訪問
在空閑階段,每個主站將通過不同的端口自動掃描識別總線上從站和其它主站,根據 Ether CAT 協議,當主站對從站的掃描時,由于 Ether CAT 幀在從站之間傳輸是順序的,因此一個子報文可以完成對多個從站的訪問,在數據幀的長度允許范圍內,一個數據幀可完成多個從站的掃描。但是在主站識別其它主站時,主站之間并行,所以每個數據幀只能完成對一個主站的訪問。
3 、主站的實現技術
3. 1 主站對總線的掃描流程
在主站代碼中,主站對總線的掃描是在空閑線程中進行的,在沒有應用請求的狀態下,主站驅動只會運行在空閑線程,在該階段執行的具體函數由狀態機根據不同的判斷條件執行不同的回調函數,進而有序的循環執行。其運行基本流程如圖 5 所示。

圖 5 空閑線程運行流程圖
3. 2 主站數據結構的擴充
原生的驅動代碼中,描述主站的結構體中沒有針對其它主站的描述,文中對于描述主站結構體 structec_master 進行擴充,需在該結構體內添加如下代碼:

文中對 struct ec_master 額外增加了兩數據報,其中數據報 to_master_datagram 為主站與主站間通信的數據報。exchange_master_datagra 為主站接收到通信數據報后處理信息的緩存數據報。
3. 3 主站發送數據幀
IGH 發布原生的代碼中,有冗余支持,但是冗余通信端口也是主站與從站通信端口,為使代碼支持主站與主站間通信,文中將冗余端口的功能修改為主站與主站通信端口,因此在主站空閑階段中,文中主站間通信數據報 to_master_datagram 的發送設備應指定為冗余端口,具體發送函數可為:


3. 4 主站接收數據幀發送數據幀
接收數據幀的底層驅動函數無需任何的改變,處理函數進行修改,修改后的接收處理函數流程圖如圖6 所示。

圖 6 接收處理函數流程圖
對于接收到的主站間通信數據,只需要把接收到的數據幀的數據存儲在指定內存中,然后加入到鏈表,使用時遍歷該鏈表即可。文中定義函數 ec_master_queue_master ( ) 用來將其它主站信息放入鏈表,主要代碼如下:

4 、主站驅動安裝配置
由于在主站之間通信與主從之間通信分別使用不同的網卡端口,因此文中使用了冗余端口的功能,因此在安裝驅動時要設定使能冗余端口。安裝配置時執行如下命令:

其中,參數 - - enable - generic = yes 指明使用通用網卡,參數 - - with - devices = 2 指明本驅動安裝 2 個以太網設備。參數為 - - enable - wildcards 表明目的地址為 0xffffffff 將會匹配所有的廠商 ID 或者產品碼。
5 、主站驅動通信實驗驗證
5. 1 測試硬件平臺
中分別選用三個主站模塊,一個從站測試模塊進試驗。其中主站模塊 IAC-335X-Kit 評估板集成 2 個工業用千兆以太網 MAC。另外兩個為開源可擴展硬件平臺 Beagle Bone Black,因其僅有一個以太網 MAC,僅配置為主站通信,不再連接其它的從站設備。實驗平臺實物圖如圖 7 所示。

圖 7 實驗平臺實物圖
5. 2 Ether CAT 多主站間通信測試
文中分別將主站驅動配置到不同的 linux 版本進行測試。文中測試過程中,主站模塊在 IAC-335X-Kit評估板安裝的嵌入式系統為 linux-3. 2. 21 并修補了實時補丁 RT-Preempt,為主站驅動提供一個硬實時運行環境。Beagle Bone Black 平臺安裝的嵌入式系統為linux-3. 14,為非實時操作系統。對于驅動的測試,在 linux 應用層,編寫代碼以 1秒為周期向從發送數據。
文中是使用修改過的 IGHEther CAT 提供的命令行工具,執行后會顯示相應端口掃描到的總線上的其它主站或者從站的信息,以雙網口的主站為例,則主站統計信息如圖 8
所示。

圖 8 主站統計信息
上面信息顯示,Phase: Operation 表明主站運行在可操 作 階 段; Active: yes 表 明 驅 動 有 應 用 層 調 用;Slaves: 1 表明總線上有 1 個從站模塊; 后續信息表明,除本主站外總線仍有 2 個主站模塊,對應主站的 MAC分別為 54: 4a: 16: b9: b3: 63 和 54: 4a: 16: be: db: 4f; 圖中的統計信息,Main 指定的網卡接口連接的是從站,Tx frames 的 Rx frames 差值為 1 表明無數據這丟失,在從站通信中,發送的幀率平均為 100 幀/s,發送速率為5. 9Kbyte / s; 由于主站之間是平行的,每個主站都可以獨立的廣播發送報文,因此在上圖標注的 Backup 主站通信端口,實際接收到的數據要比實際發送的幀數要多,以致統計工具中接收數據出現負值,實際則滿足主站通信要求。
投稿箱:
如果您有機床行業、企業相關新聞稿件發表,或進行資訊合作,歡迎聯系本網編輯部, 郵箱:skjcsc@vip.sina.com
如果您有機床行業、企業相關新聞稿件發表,或進行資訊合作,歡迎聯系本網編輯部, 郵箱:skjcsc@vip.sina.com
更多相關信息