隨著計算機、通信、網絡等信息技術的發展,信息交換的領域已經覆蓋了工廠、企業乃至世界各地的市場,因此,需要建立包含從工業現場設備層到控制層、管理層等各個層次的綜合自動化網絡平臺,建立以工業控制網絡技術為基礎的企業信息化系統。
20世紀80年代產生和發展起來的現場總線技術,以全數字的通信代替4~20mA電流的模擬傳輸方式,使得控制系統與現場儀表之間不僅能傳輸生產過程測量與控制信息,而且能夠傳輸現場儀表的大量非控制信息,使得工業企業的管理控制一體化成為可能。然而,現場總線技術在其發展過程中存在不足:標準過多,不同總線之間不能兼容;專用實時通信網絡,成本高;速度較低,支持的應用有限,不便于和Internet信息集成。
由于現場總線的互連、互通與互操作性問題很難解決,于是現場總線開始轉向以太網。經過近幾年的努力,以太網技術已經被工業自動化系統廣泛接受。為了滿足高實時性能應用的需求,各大公司和標準組織紛紛提出各種提升工業以太網實時性的技術解決方案,從而產生了實時以太網(Real Time Ethernet,簡稱RTE)。目前,在最新版的IEC 61158 Ed.4標準中包含了11種實時以太網行規集:Profinet,EtherCAT,Ethernet/IP,SERCOS III,PowerLink, EPA, Modbus/TCP,TC-net,Vnet/IP,P-NET和HSE。
本文介紹了一種基于嵌入式模塊comX的EtherCAT實時以太網從站設備設計方案,該模塊支持目前所有主流的實時以太網協議,并詳細討論了其硬件組成和軟件實現,以及在智能分揀系統中的應用。
1 netX網絡控制器
1.1 netX基本結構
netX網絡控制器是赫優訊(Hilscher)公司推出的新一代工業網絡控制芯片,目前具有netX500、netX100、netX50三種型號,是一種高度集成的網絡控制器,它具有全新的系統優化結構,適合工業通訊和大規模的數據吞吐。支持目前所有主流的實時以太網和現場總線系統: PROFINET、Ethernet/IP、EtherCAT、Powerlink、SERCOS III、Open Modbus on TCP/IP、AS-Interface、Interbus、CC-Link、CANopen、DeviceNet、Profibus等協議。
netX 500的結構如圖1所示。netX 500/100以32位ARM 926EJ-S為CPU核,主頻200MHz,片上集成144KB SRAM、裝有引導程序和實時內核的32KB ROM,通過Memory控制器可以外擴SDRAM、SRAM或FLASH,通過雙端口內存DPM接口還可以連接到主機系統。netX包含豐富的外設功能:如UART,USB,SPI,I2C以及集成的顯示控制器,可以滿足廣泛的應用需求。此外,netX采用中央數據交換(Data Switch),它連接著各個功能單元,允許同時在不同的主從端口之間通信,同時可以防止它們在傳輸數據時相互阻塞。netX最大的亮點在于具有可以自由定義4個智能通訊口,可以配置為現場總線或實時以太網通道。因此,netX是名副其實的“高端”網絡控制器。

圖1 netX 500結構框圖
1.2 netX基本功能
netX 500網絡控制器內部集成ARM 926的CPU核,因此可以做為一個單片系統,所有的應用都可以在netX上實現。其次,netX具有雙端口內存DPM接口,也可以再外接一個CPU,實現雙核系統: CPU負責處理應用程序,netX專門實現網絡通訊。
netX500最大的特點就是具有可配置的4個通信通道,它們建立在兩層結構上,而且相互等同。它們具有專門的ALU,并且有特殊的邏輯單元,通過Microcode來實現各協議的基本功能。xMAC(Medium-Access-Controller)分別按照各自的總線存取進程,發送和接收數據,加密或者將它們轉化為字節方式。xPEC(Protocol Execution Controller)負責編譯,并將數據打包,管理報文通訊。當數據量大時,可通過DMA通道進行數據交換。而且,每個通道有一個雙端口內存DPM,可用于保存狀態信息或本地數據。
其中,前兩個通道集成PHY,可直接用于以太網的連接。并且內部已經集成了各種實時以太網協議所需的ASIC硬件資源,如Hub、Switch、IEEE1588等,如圖2所示。

圖2 實時以太網通道結構圖
因此,通過這種智能的通訊ALU,在netX芯片上可以實現各種不同的通訊協議,可以是現場總線協議,也可以是各種實時以太網協議,并且可以自由組合。而且,同步過程不受CPU響應時間的限制。
2 實時以太網設備的設計
在該從站設備中,使用的是德國赫優訊(Hilscher)自動化系統有限公司的嵌入式模塊comX-CA-RE,模塊內部已經集成專用的ASIC芯片和固化程序Firmware,由該模塊實現實時以太網協議,主機CPU通過嵌入式模塊提供的雙端口內存(Dual-Port Memory,DPM)接口與模塊進行數據通信,用戶不需要關心協議的具體實現,只需往DPM接口讀/寫數據就可以,因此,該模塊就像一個內存,使用起來特別方便。該模塊的另一個特點是,同一個硬件模塊上就能支持各種不同實時以太網協議:Profinet、EtherCAT、Ethernet/IP、SERCOS III、Powerlink和Modbus TCP,并且還支持主站或從站,只需下載不同的協議堆棧Firmware。因此,減少了硬件開發成本,只需在軟件上更改相關協議的API,這大大的保護了投資,減少了開發的再投入成本。
2.1 硬件設計
嵌入式模塊comX-CA-RE提供給用戶的硬件接口只有X1一個排針連接頭(50根管腳),即雙端口內存接口,該連接頭包含了與主機通信必備的控制線、16位數據總線和14位地址總線。
由于該模塊已經集成實現實時以太網接口的所有必備電路,因此在外圍電路設計的時候非常簡單方便,其電路連接與MCU和內存的連接相似。實時以太網協議都由模塊內部實現,用戶應用程序只需通過提供的API接口和訪問方式,對雙端口內存進行讀/寫操作。嵌入式模塊comX與主機接口電路如圖3所示。在該設備中,同時還設計了IO、AD采集電路,DA輸出電路,以及其它的外設接口電路。

圖3 嵌入式模塊與主機接口電路
2.2 軟件設計
嵌入式模塊comX提供的主機接口是雙端口內存DPM,用戶應用程序通過DPM接口來訪問該模塊。同時,為了提高整個系統的實時性和可靠性,主機系統使用的是實時多任務操作系統Linux。因此,在進行軟件設計時,主要完成驅動程序以及應用程序的編寫。
2.2.1 雙端口內存DPM結構
用戶應用程序通過雙端口內存DPM來訪問實時以太網嵌入式模塊comX,嵌入式模塊comX提供的雙端口內存DPM接口是16 KByte的地址空間,其具體結構如圖4所示。

圖4 雙端口內存地址空間
netX提供的雙端口內存最大地址空間是64KByte,分為系統通道、握手通道、通訊通道0~3、應用通道0~1。對于嵌入式模塊comX,實時以太網的協議堆棧(如EtherCAT從站的Firmware)已經保存在模塊的Flash中,因此只使用了默認的系統通道、握手通道和通訊通道0,16KByte的地址空間。
系統通道512個字節,位于雙端口內存DPM的起始位置,是最重要的通道,總是存在。它包含了系統本身(netX硬件和實時操作系統rcX)的關鍵信息,并且提供一種郵箱的傳輸機制,用于發送/接收跟系統相關的報文。各功能塊如表1所述。

握手通道256字節,從偏移地址0x0200開始,提供主機系統與netX固件(運行在netX芯片中的協議堆棧)之間的數據傳輸同步機制。所有通道的握手寄存器都在此區域,每個握手寄存器包含兩類握手信息:系統握手信息和通訊握手信息。系統握手信息與“系統設備”相關,由主機應用執行netX系統相關的命令,如復位等。通訊握手信息用于同步循環或非循環數據,同時向主機系統提供狀態變化信息。
通訊通道m*256字節,從偏移地址0x0300開始,現場總線協議堆棧使用該通道,與主機系統進行循環數據和非循環數據的數據交換。共有四個通訊通道,每個通訊通道分別對應netX芯片的xMAC/xPEC端口,其結構都相同。通訊通道0的默認大小是16KByte,其各功能塊如表2所述。

應用通道m*256字節,根據實際的需求,并不一定需要該通道,該通道實現用戶特殊的信息交互,由客戶定義使用。
2.2.2 驅動程序的設計
赫優訊提供嵌入式模塊comX的驅動源碼Toolkit,用戶可以根據實際的需求,在不同的目標系統中集成該Toolkit提供的驅動接口,這樣用戶應用程序就能很方便的訪問嵌入式模塊comX的雙端口內存。Toolkit提供的驅動接口與實時以太網協議無關,只與comX雙端口內存DPM相關,因此,如果基于comX模塊開發多種實時以太網協議(Profinet、EtherCAT、Ethernet/IP主從站等)的設備,其驅動程序是通用的。
在本系統中,使用Linux實時操作系統,設備驅動主要完成對嵌入式模塊comX雙端口內存DPM的訪問,用戶程序通過調用Toolkit提供的接口函數來訪問實時以太網嵌入式模塊comX。Linux設備驅動的框架如圖5所示。

圖5 Linux設備驅動框架
Linux設備驅動主要實現的函數如表3。

2.2.3 應用程序的設計
由于赫優訊提供的嵌入式模塊comX,在同一個硬件模塊上就能支持各種主流的實時以太網協議:Profinet、EtherCAT、Ethernet/IP、SERCOS III、Powerlink和Modbus TCP,并且還支持主站或從站,只需下載不同的協議堆棧Firmware。也就是說,如果開發不同實時以太網通訊接口的同類產品,除了不同的實時以太網協議接口不一樣,其它的程序接口都是一樣的。
在本系統中,使用嵌入式模塊COMX-CA-RE/ECS,即EtherCAT從站模塊。因此,應用程序主要實現的功能:模塊的初始化,從站熱啟動參數的下載,外圍采集模塊的數據采集,以及與EtherCAT主站設備的數據交換等等。
嵌入式模塊comX的Flash中已經保存了EtherCAT從站的協議堆棧,在系統上電后,會自動加載該協議堆棧。然后再加載從站的熱啟動參數,需應用程序加載。不同的實時以太網從站,其熱啟動參數是不一樣的,以報文的方式,通過雙端口內存DPM的系統郵箱發送給comX。
當把熱啟動參數下載完成后,通過xChannelIOWrite()和xChannelIORead()兩個函數,主機應用程序就可以與comX模塊進行數據交換了。comX模塊中運行的EtherCAT協議堆棧會自動將主機應用發來的循環數據或非循環數據發送到EtherCAT網絡上。反之,自動截取EtherCAT主站發送給該從站的數據,并傳送給主機應用程序。
3 EtherCAT從站模塊在智能設備的應用

圖6 智能分揀系統示意圖
此智能分揀系統要求以流水方式順序檢測產品的若干個質量特征,并對相應的質量特征作出判別,并由主控制器對各個傳感器的檢測結果加以匯總從而得到某一產品的分揀結果,并控制分揀電機將相應的產品分揀到指定的分揀倉中,同時將該產品的質量信息存入數據庫中。
在本系統中,傳感器檢測頻率設計為40Hz,由于傳感器位置和處理時間的原因留給數據傳輸的時間要求小于1ms。同時由于要求質量判定結果要存入數據庫,所以單一傳感器的傳輸數據量為10~1kByte,因此,要求采用的現場總線的數據帶寬不能小于10M。所以,在本系統中選用了EtherCAT實時以太網作為數據傳輸總線,采用德國赫優訊的comX嵌入式模塊作為從站接入模塊,嵌入式系統通過DPM與comX通訊,采用輪詢的方式向主控制器發送檢測結果。
4 結束語
目前,國內廠家多限于對現場總線產品的開發,對實時以太網產品的的研究開發甚少,本文介紹了一種支持所有主流實時以太網協議的嵌入式模塊comX,并詳細討論了其關鍵的開發步驟,對實時以太網產品的開發具有借鑒作用。從實時工業以太網技術發展形勢看,實時以太網在工業控制系統中的應用必將越來越廣。