王 豪, 呂洪武, 王宏志
(長春工業(yè)大學 計算機科學與工程學院, 吉林 長春 130012)
以太網(wǎng)通信具有傳輸速率高、數(shù)據(jù)包容量大、傳輸距離遠、性價比高和技術(shù)成熟等優(yōu)越性,使得當今的工業(yè)控制網(wǎng)絡逐漸從傳統(tǒng)的現(xiàn)場總線向工業(yè)以太網(wǎng)方向發(fā)展,因此,很多工業(yè)以太網(wǎng)被提出來:Modubus/TCP、Ethernet/IP、Ethernet Powwe link、EPA、PROFINET RT、EtherCAT、SERCOS-Ⅲ、PROFINET IRT[1]。德國倍福公司提出的以太網(wǎng)EtherCAT網(wǎng)絡通信技術(shù)完全兼容普通的以太網(wǎng)技術(shù),充分體現(xiàn)了高可靠性和高有效傳輸率等特點,EtherCAT網(wǎng)絡由主站和從站組成,全雙工特性使其數(shù)據(jù)的傳輸率達到了90%以上。
在文獻[2]中,嵌入式以太網(wǎng)控制器的核心器件為S3C44B0X微處理器,設(shè)計了一種通用的嵌入式系統(tǒng)以太網(wǎng)接口,其不足之處是S3C44B0X微處理器的性能過低,實時性差,僅用于一般的工業(yè)控制網(wǎng)絡。考慮到EtherCAT網(wǎng)絡在非PC計算機系統(tǒng)和嵌入式控制系統(tǒng)中的通信,文中設(shè)計S3C2440微處理器的嵌入式EtherCAT通信控制器,在主站與從站通信過程中,以太網(wǎng)控制器不僅采用沖突檢測和載波監(jiān)聽多路訪問協(xié)議的功能,而且傳輸速率甚至達到100 Mbit/s。在工業(yè)以太網(wǎng) EtherCAT通信過程中,文中設(shè)置了3個通信節(jié)點進行數(shù)據(jù)幀的傳輸。
通過PC機軟件對通信控制器的參數(shù)進行配置,實現(xiàn)了主從設(shè)備之間的邏輯通信。
EtherCAT是一種以太網(wǎng)控制自動化技術(shù),通信過程使用主從模式訪問結(jié)構(gòu),充分體現(xiàn)了以太網(wǎng)的全雙工特性。EtherCAT網(wǎng)絡通信主站的設(shè)定往往采用PC計算機,EtherCAT主站使用標準的100Base-TX以太網(wǎng)卡,從站使用專門的EtherCAT從站控制器ESC(EtherCAT Slave Controller)。物理層同樣使用標準的以太網(wǎng)物理層器件[3]。
一個完整的EtherCAT網(wǎng)絡通信系統(tǒng)包括一個PC機主站和若干個從站設(shè)備。
當EtherCAT網(wǎng)絡通信系統(tǒng)運行時,EtherCAT系統(tǒng)控制的通信周期起始站為PC機,由主站PC機發(fā)送下行電報,每個從站設(shè)備都可以直接處理接收到的報文,并從指定的報文中提取用戶數(shù)據(jù),或者將從站設(shè)備的用戶數(shù)據(jù)插入到指定的報文中,經(jīng)過處理的報文傳輸?shù)较乱粋€EtherCAT從站設(shè)備,最后一個EtherCAT從站設(shè)備返回經(jīng)過各個從站設(shè)備完全處理的報文[3]。當主站PC機接收到上行電報時,表示一次完整有效的數(shù)據(jù)通信結(jié)束。系統(tǒng)結(jié)構(gòu)原理如圖1所示。
圖1 EtherCAT運行原理
EtherCAT數(shù)據(jù)傳輸方式是通過EtherCAT數(shù)據(jù)幀直接傳輸?shù)?,EtherCAT數(shù)據(jù)幀的通用幀類型為0x88A4[4]。以太網(wǎng)幀頭包括6個字節(jié)的目的地址、6個字節(jié)的源地址和2個字節(jié)的幀類型,其中目的地址的定義為接收MAC地址,源地址的定義為發(fā)送MAC地址;EtherCAT數(shù)據(jù)區(qū)包含44~1 498字節(jié)的EtherCAT數(shù)據(jù),其中EtherCAT數(shù)據(jù)區(qū)長度代表了所有的子報文長度的總和,數(shù)據(jù)區(qū)可以由一個子報文組成,也可以由多個子報文組成,每個子報文包括10個字節(jié)子報文頭,最多1 486個字節(jié)的數(shù)據(jù)和2個字節(jié)的計數(shù)器,并且每個獨立的設(shè)備都有與之對應的子報文,給出了EtherCAT報文嵌入數(shù)據(jù)幀的結(jié)構(gòu)圖如圖2所示。
每個EtherCAT子報文包括子報文頭、數(shù)據(jù)區(qū)域和工作計數(shù)器(WKC)[5]。工作計數(shù)器位于數(shù)據(jù)區(qū)的末尾,大小為2個字節(jié),工作計數(shù)器工作狀態(tài)是由從站控制器(ESC)處理傳輸?shù)臄?shù)據(jù)幀的同時進行計數(shù)的,不同的通信服務有不同工作計數(shù)器的增量方式。因此在通信過程開始之前,主站為每個參與通信服務的子報文都設(shè)定了工作預期值,初始值設(shè)定為0,在遍歷從站設(shè)備過程中,子報文被有效的處理后,工作計數(shù)器的數(shù)值加1,主站通過對比預期的工作計數(shù)器的數(shù)值和返回主站子報文的工作計數(shù)器的數(shù)值來判斷子報文是否在從站中被正確處理。假如工作計數(shù)器的數(shù)值為有效數(shù)值,即從站設(shè)備對子報文進行了正確的讀寫操作,假如工作計數(shù)器的數(shù)值為無效數(shù)值,即存在某一個從站設(shè)備或是多個從站設(shè)備讀寫操作不正確。工作計數(shù)器的工作原理如圖3所示。
圖2 EtherCAT報文嵌入以太網(wǎng)數(shù)據(jù)幀
圖3 EtherCAT工作計數(shù)器工作原理圖
基于S3C2440微處理器和RTL8019AS以太網(wǎng)控制器為硬件平臺設(shè)計的EtherCAT通信控制器。EtherCAT通信控制器的硬件設(shè)計電路如圖4所示[6]。
圖4 EtherCAT通信控制器的硬件設(shè)計電路
EtherCAT通信控制器的硬件組成包括2個核心模塊和6個外圍模塊。核心模塊為S3C2440微處理器、RTL8019AS以太網(wǎng)控制器;外圍模塊為以太網(wǎng)接口電路模塊、USB接口電路模塊、FLASH存儲器模塊、串口驅(qū)動模塊、電源模塊和時鐘和復位[6]。
通信控制器的核心器件是S3C2440微處理器,該處理器是由三星公司開發(fā)的一款基于ARM920T內(nèi)核和0.18 μm CMOS工藝的16/32位RISC微處理器,其功能特性包括低成本、低消耗、高性能等。RTL8019AS以太網(wǎng)控制也被叫做以太網(wǎng)適配器,一個特定的物理層和數(shù)據(jù)鏈路層標準作為以太網(wǎng)控制器的使用,提供了一個完整的網(wǎng)絡協(xié)議堆棧,能夠使得在同一局域網(wǎng)中的小型計算機組或者是通過路由協(xié)議連接的廣域網(wǎng)都能夠?qū)崿F(xiàn)通信[7-8]。
通信控制器設(shè)計的核心器件為微控制器[9],工業(yè)以太網(wǎng)EtherCAT通信控制器的參數(shù)是通過USB接口在上位PC機進行離線配置的,通信控制器中的FLASH 存儲器用來存儲離線配置完成的參數(shù),可用于系統(tǒng)獨立的工作。
上位PC機程序由EtherCAT主站微處理器的通信程序和PC機的配置軟件兩部分構(gòu)成:通信控制器的參數(shù)是通過上位PC機軟件進行設(shè)置;離線(off line)配置參數(shù)是由PC機直接通過USB接口對控制器設(shè)計。配置完成的參數(shù)存儲在硬件FLASH存儲器模塊中,供通信系統(tǒng)獨立運行時使用[10-11]。離線(off line)配置的參數(shù)包括:數(shù)據(jù)幀傳輸周期時間的設(shè)定、報文的地址和長度的設(shè)定。由PC機軟件配置EtherCAT通信控制器的示意圖如圖5所示。
圖5 PC計算機配置通信控制器示意圖
在上位PC機上通過配置軟件對通信控制器進行程序配置,并且通信控制器上的系統(tǒng)配置參數(shù)是通過USB總線電纜的讀寫傳輸?shù)絇C計算機上的。
通信控制器產(chǎn)生和控制EtherCAT數(shù)據(jù)幀的線路循環(huán)圖如圖6所示。
圖6 通信控制器產(chǎn)生和控制EtherCAT數(shù)據(jù)幀的線路循環(huán)圖
將通信節(jié)點1定義為邏輯控制主站, 由EtherCAT主站控制單元進行操作;將通信節(jié)點2、節(jié)點3定義為邏輯控制從站。兩個EtherCAT數(shù)據(jù)幀構(gòu)成了主站通信程序的一個通信周期[12]。第一個EtherCAT數(shù)據(jù)幀為取數(shù)據(jù)幀,其作用讀取各個從站通信節(jié)點的輸出數(shù)據(jù),第二個EtherCAT數(shù)據(jù)幀為發(fā)數(shù)據(jù)幀,發(fā)數(shù)據(jù)幀通過處理接收的數(shù)據(jù)又重新返回到原來的通信節(jié)點,進而完成了主從設(shè)備之間的數(shù)據(jù)轉(zhuǎn)換。
通信過程運行步驟如下:
1)由通信控制器發(fā)出取數(shù)據(jù)幀,當通信控制器產(chǎn)生的取數(shù)據(jù)幀經(jīng)過通信節(jié)點1時,即到達第一個邏輯控制主站,取數(shù)據(jù)幀在邏輯控制主站被有效處理,對邏輯控制從站的控制命令被寫到規(guī)定的報文中;當取數(shù)據(jù)幀途徑邏輯控制主站時,其主要目的是將對邏輯控制從站的控制命令寫入到規(guī)定的報文;經(jīng)過通信節(jié)點2、節(jié)點3時,即到達第二、三個邏輯控制從站,取數(shù)據(jù)幀在第二、三個邏輯控制從站被有效地處理,并將各自邏輯控制從站的通信服務狀態(tài)寫到規(guī)定的報文中。
2)當取數(shù)據(jù)幀按原傳輸路徑返回到通信控制器時,通信控制器對返回的取數(shù)據(jù)幀進行處理分析,再由通信控制器產(chǎn)生發(fā)數(shù)據(jù)幀。
3)由通信控制器發(fā)出發(fā)數(shù)據(jù)幀,當通信控制器產(chǎn)生的發(fā)數(shù)據(jù)幀經(jīng)過通信節(jié)點1時,即到達第一個邏輯控制主站,對寫入邏輯控制從站規(guī)定的報文的通信服務狀態(tài)進行讀取,當通信控制器產(chǎn)生的發(fā)數(shù)據(jù)幀經(jīng)過通信節(jié)點2、節(jié)點3時,即到達第二、三個邏輯控制從站,每個邏輯控制從站都能讀取各自的控制命令,其控制命令寫在了邏輯控制主站規(guī)定的報文中,給出了通信過程軟件流程如圖7所示。
圖7 通信過程軟件流程
嵌入式系統(tǒng)具有系統(tǒng)內(nèi)核小、專用性強、低功耗、可靠性高、多任務操作等優(yōu)點,以太網(wǎng)的工業(yè)控制系統(tǒng)由嵌入式系統(tǒng)來設(shè)計與實現(xiàn),文中設(shè)計了一種基于S3C2440微處理器和PTL8019AS以太網(wǎng)控制器硬件平臺結(jié)合的嵌入式 EtherCAT通信控制器,PC機軟件對通信控制器的參數(shù)進行配置,對整個EtherCAT通信系統(tǒng)中的各個通信節(jié)點讀寫操作,實現(xiàn)了主從設(shè)備控制之間的邏輯通信。文中設(shè)計的以太網(wǎng)EtherCAT通信控制器不僅實現(xiàn)了以太網(wǎng)驅(qū)動模塊的設(shè)備控制,而且擴大了EtherCAT技術(shù)的使用范圍,已成功應用到工業(yè)控制系統(tǒng)中。