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

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

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

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

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

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

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

圖5 Linux設備驅動(dòng)框架
Linux設備驅動(dòng)主要實(shí)現的函數如表3。

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

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