王 豪, 呂洪武, 王宏志
(長春工業大學 計算機科學與工程學院, 吉林 長春 130012)
以太網通信具有傳輸速率高、數據包容量大、傳輸距離遠、性價比高和技術成熟等優越性,使得當今的工業控制網絡逐漸從傳統的現場總線向工業以太網方向發展,因此,很多工業以太網被提出來:Modubus/TCP、Ethernet/IP、Ethernet Powwe link、EPA、PROFINET RT、EtherCAT、SERCOS-Ⅲ、PROFINET IRT[1]。德國倍福公司提出的以太網EtherCAT網絡通信技術完全兼容普通的以太網技術,充分體現了高可靠性和高有效傳輸率等特點,EtherCAT網絡由主站和從站組成,全雙工特性使其數據的傳輸率達到了90%以上。
在文獻[2]中,嵌入式以太網控制器的核心器件為S3C44B0X微處理器,設計了一種通用的嵌入式系統以太網接口,其不足之處是S3C44B0X微處理器的性能過低,實時性差,僅用于一般的工業控制網絡。考慮到EtherCAT網絡在非PC計算機系統和嵌入式控制系統中的通信,文中設計S3C2440微處理器的嵌入式EtherCAT通信控制器,在主站與從站通信過程中,以太網控制器不僅采用沖突檢測和載波監聽多路訪問協議的功能,而且傳輸速率甚至達到100 Mbit/s。在工業以太網 EtherCAT通信過程中,文中設置了3個通信節點進行數據幀的傳輸。
通過PC機軟件對通信控制器的參數進行配置,實現了主從設備之間的邏輯通信。
EtherCAT是一種以太網控制自動化技術,通信過程使用主從模式訪問結構,充分體現了以太網的全雙工特性。EtherCAT網絡通信主站的設定往往采用PC計算機,EtherCAT主站使用標準的100Base-TX以太網卡,從站使用專門的EtherCAT從站控制器ESC(EtherCAT Slave Controller)。物理層同樣使用標準的以太網物理層器件[3]。
一個完整的EtherCAT網絡通信系統包括一個PC機主站和若干個從站設備。
當EtherCAT網絡通信系統運行時,EtherCAT系統控制的通信周期起始站為PC機,由主站PC機發送下行電報,每個從站設備都可以直接處理接收到的報文,并從指定的報文中提取用戶數據,或者將從站設備的用戶數據插入到指定的報文中,經過處理的報文傳輸到下一個EtherCAT從站設備,最后一個EtherCAT從站設備返回經過各個從站設備完全處理的報文[3]。當主站PC機接收到上行電報時,表示一次完整有效的數據通信結束。系統結構原理如圖1所示。

圖1 EtherCAT運行原理
EtherCAT數據傳輸方式是通過EtherCAT數據幀直接傳輸的,EtherCAT數據幀的通用幀類型為0x88A4[4]。以太網幀頭包括6個字節的目的地址、6個字節的源地址和2個字節的幀類型,其中目的地址的定義為接收MAC地址,源地址的定義為發送MAC地址;EtherCAT數據區包含44~1 498字節的EtherCAT數據,其中EtherCAT數據區長度代表了所有的子報文長度的總和,數據區可以由一個子報文組成,也可以由多個子報文組成,每個子報文包括10個字節子報文頭,最多1 486個字節的數據和2個字節的計數器,并且每個獨立的設備都有與之對應的子報文,給出了EtherCAT報文嵌入數據幀的結構圖如圖2所示。
每個EtherCAT子報文包括子報文頭、數據區域和工作計數器(WKC)[5]。工作計數器位于數據區的末尾,大小為2個字節,工作計數器工作狀態是由從站控制器(ESC)處理傳輸的數據幀的同時進行計數的,不同的通信服務有不同工作計數器的增量方式。因此在通信過程開始之前,主站為每個參與通信服務的子報文都設定了工作預期值,初始值設定為0,在遍歷從站設備過程中,子報文被有效的處理后,工作計數器的數值加1,主站通過對比預期的工作計數器的數值和返回主站子報文的工作計數器的數值來判斷子報文是否在從站中被正確處理。假如工作計數器的數值為有效數值,即從站設備對子報文進行了正確的讀寫操作,假如工作計數器的數值為無效數值,即存在某一個從站設備或是多個從站設備讀寫操作不正確。工作計數器的工作原理如圖3所示。

圖2 EtherCAT報文嵌入以太網數據幀

圖3 EtherCAT工作計數器工作原理圖
基于S3C2440微處理器和RTL8019AS以太網控制器為硬件平臺設計的EtherCAT通信控制器。EtherCAT通信控制器的硬件設計電路如圖4所示[6]。

圖4 EtherCAT通信控制器的硬件設計電路
EtherCAT通信控制器的硬件組成包括2個核心模塊和6個外圍模塊。核心模塊為S3C2440微處理器、RTL8019AS以太網控制器;外圍模塊為以太網接口電路模塊、USB接口電路模塊、FLASH存儲器模塊、串口驅動模塊、電源模塊和時鐘和復位[6]。
通信控制器的核心器件是S3C2440微處理器,該處理器是由三星公司開發的一款基于ARM920T內核和0.18 μm CMOS工藝的16/32位RISC微處理器,其功能特性包括低成本、低消耗、高性能等。RTL8019AS以太網控制也被叫做以太網適配器,一個特定的物理層和數據鏈路層標準作為以太網控制器的使用,提供了一個完整的網絡協議堆棧,能夠使得在同一局域網中的小型計算機組或者是通過路由協議連接的廣域網都能夠實現通信[7-8]。
通信控制器設計的核心器件為微控制器[9],工業以太網EtherCAT通信控制器的參數是通過USB接口在上位PC機進行離線配置的,通信控制器中的FLASH 存儲器用來存儲離線配置完成的參數,可用于系統獨立的工作。
上位PC機程序由EtherCAT主站微處理器的通信程序和PC機的配置軟件兩部分構成:通信控制器的參數是通過上位PC機軟件進行設置;離線(off line)配置參數是由PC機直接通過USB接口對控制器設計。配置完成的參數存儲在硬件FLASH存儲器模塊中,供通信系統獨立運行時使用[10-11]。離線(off line)配置的參數包括:數據幀傳輸周期時間的設定、報文的地址和長度的設定。由PC機軟件配置EtherCAT通信控制器的示意圖如圖5所示。

圖5 PC計算機配置通信控制器示意圖
在上位PC機上通過配置軟件對通信控制器進行程序配置,并且通信控制器上的系統配置參數是通過USB總線電纜的讀寫傳輸到PC計算機上的。
通信控制器產生和控制EtherCAT數據幀的線路循環圖如圖6所示。

圖6 通信控制器產生和控制EtherCAT數據幀的線路循環圖
將通信節點1定義為邏輯控制主站, 由EtherCAT主站控制單元進行操作;將通信節點2、節點3定義為邏輯控制從站。兩個EtherCAT數據幀構成了主站通信程序的一個通信周期[12]。第一個EtherCAT數據幀為取數據幀,其作用讀取各個從站通信節點的輸出數據,第二個EtherCAT數據幀為發數據幀,發數據幀通過處理接收的數據又重新返回到原來的通信節點,進而完成了主從設備之間的數據轉換。
通信過程運行步驟如下:
1)由通信控制器發出取數據幀,當通信控制器產生的取數據幀經過通信節點1時,即到達第一個邏輯控制主站,取數據幀在邏輯控制主站被有效處理,對邏輯控制從站的控制命令被寫到規定的報文中;當取數據幀途徑邏輯控制主站時,其主要目的是將對邏輯控制從站的控制命令寫入到規定的報文;經過通信節點2、節點3時,即到達第二、三個邏輯控制從站,取數據幀在第二、三個邏輯控制從站被有效地處理,并將各自邏輯控制從站的通信服務狀態寫到規定的報文中。
2)當取數據幀按原傳輸路徑返回到通信控制器時,通信控制器對返回的取數據幀進行處理分析,再由通信控制器產生發數據幀。
3)由通信控制器發出發數據幀,當通信控制器產生的發數據幀經過通信節點1時,即到達第一個邏輯控制主站,對寫入邏輯控制從站規定的報文的通信服務狀態進行讀取,當通信控制器產生的發數據幀經過通信節點2、節點3時,即到達第二、三個邏輯控制從站,每個邏輯控制從站都能讀取各自的控制命令,其控制命令寫在了邏輯控制主站規定的報文中,給出了通信過程軟件流程如圖7所示。

圖7 通信過程軟件流程
嵌入式系統具有系統內核小、專用性強、低功耗、可靠性高、多任務操作等優點,以太網的工業控制系統由嵌入式系統來設計與實現,文中設計了一種基于S3C2440微處理器和PTL8019AS以太網控制器硬件平臺結合的嵌入式 EtherCAT通信控制器,PC機軟件對通信控制器的參數進行配置,對整個EtherCAT通信系統中的各個通信節點讀寫操作,實現了主從設備控制之間的邏輯通信。文中設計的以太網EtherCAT通信控制器不僅實現了以太網驅動模塊的設備控制,而且擴大了EtherCAT技術的使用范圍,已成功應用到工業控制系統中。