CAN總線協(xié)議到EtherCAT從站協(xié)議的轉(zhuǎn)換網(wǎng)關(guān)設(shè)計
掃描二維碼
隨時隨地手機(jī)看文章
摘要:本文通過對實時工業(yè)以太網(wǎng)通信協(xié)議EtherCAT的研究,設(shè)計了CAN總線主站協(xié)議轉(zhuǎn)換為EtherCAT從站協(xié)議的通信協(xié)議轉(zhuǎn)換網(wǎng)關(guān)設(shè)備,解決了工業(yè)自動化現(xiàn)場CAN總線通信設(shè)備與EtherCAT主站控制系統(tǒng)的互連問題,從而保證現(xiàn)場總線設(shè)備數(shù)據(jù)更加高效、快速地傳遞到中央監(jiān)控系統(tǒng)。
關(guān)鍵詞:EtherCAT從站;CAN總線;網(wǎng)關(guān);協(xié)議轉(zhuǎn)換
引言
隨著工業(yè)自動化的發(fā)展,大量現(xiàn)場設(shè)備的信息傳遞不再采用模擬信號電纜傳送,而是替換為智能化現(xiàn)場設(shè)備,通過通信方式傳遞設(shè)備的狀態(tài)和控制信息。在這個過程中,現(xiàn)場總線設(shè)備得到了大量的應(yīng)用。而現(xiàn)場總線設(shè)備的多樣性,導(dǎo)致在一個大型的自動化控制系統(tǒng)中設(shè)備的通信協(xié)議不同、通信速率不同、網(wǎng)絡(luò)拓?fù)湫问讲煌?,給中央監(jiān)控系統(tǒng)和這些現(xiàn)場設(shè)備之間的信息交互帶來困擾。
為了更好地解決控制系統(tǒng)內(nèi)自動化數(shù)據(jù)傳輸及互連的問題,部分國際自動化系統(tǒng)廠家借助以太網(wǎng)現(xiàn)有協(xié)議框架及其100M的帶寬資源,在現(xiàn)有的以太網(wǎng)協(xié)議上進(jìn)行相應(yīng)的修改,推出了不同的實時工業(yè)以太網(wǎng)技術(shù),比較流行的有EtherCAT、Sercos III、Profinet、Powerlink、Ethernet/IP等。其中,EtherCAT(Ethernet for Control Automation Technology)是開放的實時工業(yè)以太網(wǎng)通信協(xié)議,最初由德國倍福自動化有限公司研發(fā)。它基于標(biāo)準(zhǔn)的以太網(wǎng)技術(shù),支持多種設(shè)備連接拓?fù)浣Y(jié)構(gòu),具有配置簡單、有效數(shù)據(jù)率高、全雙工、數(shù)據(jù)傳輸容量大、傳輸速度快、時鐘同步性高、成本低、開放性好等特點,是一種用于工業(yè)自動化的實時、高速以太網(wǎng)通信協(xié)議。EtherCAT協(xié)議使用全雙工100 Mbps以太網(wǎng),系統(tǒng)由一個通信主站和若干從站通信節(jié)點組成,主站發(fā)送以太網(wǎng)幀給各從站,從站從數(shù)據(jù)幀中抽取數(shù)據(jù)或?qū)?shù)據(jù)插入數(shù)據(jù)幀。主站使用標(biāo)準(zhǔn)的以太網(wǎng)控制器,協(xié)議和驅(qū)動程序由軟件實現(xiàn),從站通信節(jié)點使用專門的EtherCAT從站控制器。
本文設(shè)計了CAN總線主站協(xié)議轉(zhuǎn)換為EtherCAT從站協(xié)議的協(xié)議轉(zhuǎn)換網(wǎng)關(guān)設(shè)備(以下簡稱CAN/EtherCAT協(xié)議轉(zhuǎn)換網(wǎng)關(guān)),實現(xiàn)了工業(yè)自動化現(xiàn)場CAN總線通信設(shè)備與EtherCAT主站控制系統(tǒng)的互連通信。
1 系統(tǒng)總體網(wǎng)絡(luò)架構(gòu)
CAN/EtherCAT協(xié)議轉(zhuǎn)換網(wǎng)關(guān)存在兩個方向的外部接口,對上通過以太網(wǎng)與EtherCAT主站進(jìn)行數(shù)據(jù)交換,通信協(xié)議符合EtherCAT實時工業(yè)以太網(wǎng)技術(shù)規(guī)范要求;對下與CAN總線從站設(shè)備實現(xiàn)通信,包括實時數(shù)據(jù)通信、故障診斷恢復(fù)和冗余切換處理等。系統(tǒng)總體的網(wǎng)絡(luò)架構(gòu)如圖1所示。
2 CAN/EtherCAT協(xié)議轉(zhuǎn)換網(wǎng)關(guān)
2.1 CAN/EtherCAT協(xié)議轉(zhuǎn)換網(wǎng)關(guān)核心器件選型
CAN/EtherCAT協(xié)議轉(zhuǎn)換網(wǎng)關(guān)硬件包括EtherCAT從站協(xié)議控制器、從站MCU、CAN總線協(xié)議控制器等。EtherCAT協(xié)議控制器實現(xiàn)EtherCAT的物理層與數(shù)據(jù)鏈路層的協(xié)議。從站MCU主要負(fù)責(zé)運行用戶的應(yīng)用程序,實現(xiàn)EtherCAT和CAN總線協(xié)議之間的協(xié)議及數(shù)據(jù)轉(zhuǎn)換。CAN總線協(xié)議控制器實現(xiàn)CAN總線的物理層與數(shù)據(jù)鏈路層的協(xié)議。
現(xiàn)在市場上有多種EtherCAT協(xié)議控制器可供使用,如Beckhoff公司的ASIC芯片ET1100、ET1200,德國Hilscher公司的ComX—CA—RE模塊,也可以使用IP—Core將EtherCAT通信功能集成到設(shè)備控制FPGA中。ET1200是簡化版,只提供1個RJ45接口,不能滿足開發(fā)需求。ComX模塊提供了方便易用的接口,可以簡化硬件設(shè)計,但是價格較高。FPGA可提供針對Altera和Xilinx公司的IP核,但是價格高,開發(fā)難度大。
考慮到實際應(yīng)用中,開發(fā)成本及軟硬件設(shè)計的實現(xiàn)復(fù)雜度,EtherCAT從站協(xié)議控制器選用ET1100。ET1100是一款強(qiáng)大的EtherCAT從站控制器ESC專用芯片,具有豐富的接口資源。它具有4個數(shù)據(jù)收發(fā)端口、8個FMMU單元、8個SM、4 KB控制寄存器、8 KB過程數(shù)據(jù)存儲器、支持64位的分布時鐘。
從站MCU選用LPC2292芯片。LPC2292是一款基于16/32位ARM7TDMI—S核,支持實時仿真和跟蹤的MCU。LPC2292自帶2路高級CAN總線通道,可節(jié)省設(shè)計成本。
2.2 CAN/EtherCAT協(xié)議轉(zhuǎn)換網(wǎng)關(guān)硬件設(shè)計
CAN/EtherCAT協(xié)議轉(zhuǎn)換網(wǎng)關(guān)主要由通信控制回路、Ethernet回路、CAN總線回路3部分電路構(gòu)成。CAN/EtherCAT協(xié)議轉(zhuǎn)換網(wǎng)關(guān)硬件框圖如圖2所示。
在EtherCAT回路中,EtherCAT協(xié)議控制器ET1100可選擇使用SPI或8位、16位總線與LPC2292連接。ET1100的相關(guān)信息保存在EEPROM中。數(shù)據(jù)收發(fā)端口使用PORT0和PORT1,采用MII方式連接PHY芯片,經(jīng)過網(wǎng)絡(luò)變壓器隔離,通過RJ45接口與主站或其他從站連接。
通信管理控制回路由MCU(LPC2292)、狀態(tài)顯示電路、外部存儲器及單片機(jī)外圍電路構(gòu)成。CAN/EtherCAT協(xié)議轉(zhuǎn)換網(wǎng)關(guān)的配置信息、通信數(shù)據(jù)使用256 KB外部RAM或F-RAM存儲,可以顯示運行狀態(tài)和通信狀態(tài)等信息。
CAN總線第3方通信協(xié)議中,使用LPC2292的內(nèi)置CAN總線控制器,可根據(jù)需要使用1路或2路CAN總線。為了提高CAN/EtherCAT協(xié)議轉(zhuǎn)換網(wǎng)關(guān)的電磁兼容性EMC,使用高速光耦對CAN總線通信信號進(jìn)行隔離。
3 CAN/EtherCAT協(xié)議轉(zhuǎn)換網(wǎng)關(guān)軟件設(shè)計
CAN/EtherCAT協(xié)議轉(zhuǎn)換網(wǎng)關(guān)軟件由EtherCAT從站通信處理模塊和CAN總線主站通信處理模塊組成。CAN/EtherCAT協(xié)議轉(zhuǎn)換網(wǎng)關(guān)軟件在功能上實現(xiàn)EtherCAT從站通信協(xié)議和CAN總線主站通信協(xié)議功能。
CAN/EtherCAT協(xié)議轉(zhuǎn)換網(wǎng)關(guān)軟件基于不帶操作系統(tǒng)的硬件平臺,采用C語言編寫。應(yīng)用程序各任務(wù)串行執(zhí)行,可以直接操作硬件的中斷和定時器,保證了任務(wù)執(zhí)行的速度和系統(tǒng)的性能。
3.1 EtherCAT從站報文幀結(jié)構(gòu)
EtherCAT協(xié)議數(shù)據(jù)直接使用以太網(wǎng)數(shù)據(jù)幀傳輸,數(shù)據(jù)幀類型為0x88A4。數(shù)據(jù)區(qū)最大可達(dá)1 498字節(jié)。數(shù)據(jù)區(qū)由1個或多個EtherCAT子報文組成,每個子報文對應(yīng)獨立的設(shè)備或從站存儲區(qū)域。EtherCAT從站子報文幀結(jié)構(gòu)如圖3所示。
每個EtherCAT子報文包括子報文頭、數(shù)據(jù)區(qū)和相應(yīng)的工作計數(shù)器(Working Counter,WKC)。發(fā)送子報文的WKC初始值為0,子報文被CAN /EtherCAT協(xié)議轉(zhuǎn)換網(wǎng)關(guān)正確處理后,增加一個增量,主站根據(jù)WKC是否正確,來判斷該子報文是否被正確響應(yīng)。
3.2 EtherCAT從站通信處理模塊
EtherCAT從站通信處理模塊實現(xiàn)與EtherCAT主站之間的通信,EtherCAT從站通信處理模塊以EtherCAT從站控制器為核心,從站協(xié)議控制器實現(xiàn)EtherCAT數(shù)據(jù)的接收、發(fā)送以及錯誤處理。從站MCU操作EtherCAT從站協(xié)議控制器,實現(xiàn)應(yīng)用層協(xié)議。
EtherCAT協(xié)議有2種數(shù)據(jù)交換形式:一種是周期性過程數(shù)據(jù)通信,另一種是非周期性郵箱數(shù)據(jù)通信。周期性過程數(shù)據(jù)通信用來傳輸數(shù)據(jù)刷新率要求較高的輸入輸出數(shù)據(jù),非周期性郵箱數(shù)據(jù)通信則用來配置或讀取從站的參數(shù)信息。
自動化控制系統(tǒng)中,系統(tǒng)一般要求先采集下面設(shè)備的輸入數(shù)據(jù),對輸入數(shù)據(jù)進(jìn)行相應(yīng)的邏輯處理,然后產(chǎn)生輸出控制信號,發(fā)送到輸出設(shè)備。EtherCAT協(xié)議的狀態(tài)機(jī)通信模式很好地解決了這個問題,保證了通信的安全可靠。
CAN/EtherCAT協(xié)議轉(zhuǎn)換網(wǎng)關(guān)支持4種狀態(tài):初始化(Init)、預(yù)運行(Pre-Operational)、安全運行(Safe-Operational)和運行(Operation al)。各狀態(tài)之間的轉(zhuǎn)換關(guān)系如圖4所示。狀態(tài)機(jī)依次在不同的狀態(tài)及狀態(tài)轉(zhuǎn)換期間完成不同的任務(wù)。
CAN/EtherCAT協(xié)議轉(zhuǎn)換網(wǎng)關(guān)處于初始化狀態(tài)時,主站初始化EtherCAT從站控制器的一些配置寄存器、配置郵箱通道參數(shù)。預(yù)運行狀態(tài)下,CAN/EtherCAT協(xié)議轉(zhuǎn)換網(wǎng)關(guān)與主站使用郵箱通信交換通信配置信息,此時,不允許過程數(shù)據(jù)通信。安全運行狀態(tài)下,CAN/EtherCAT協(xié)議轉(zhuǎn)換網(wǎng)關(guān)應(yīng)用程序讀入輸入數(shù)據(jù),但不產(chǎn)生輸出信號,設(shè)備無輸出,處于“安全狀態(tài)”。運行狀態(tài)下,CAN/EtherCAT協(xié)議轉(zhuǎn)換網(wǎng)關(guān)應(yīng)用程序讀入輸入數(shù)據(jù),此時,主站應(yīng)用程序發(fā)出的輸出數(shù)據(jù)有效,CAN/EtherCAT協(xié)議轉(zhuǎn)換網(wǎng)關(guān)產(chǎn)生輸出信號。
3.3 CAN總線主站通信處理模塊
CAN總線主站通信處理模塊主要實現(xiàn)與CAN總線從站設(shè)備之間的數(shù)據(jù)交換、參數(shù)配置和故障診斷等。數(shù)據(jù)的收發(fā)采用定時器和中斷相配合的模式。
上電硬件初始化,配置好CAN總線通信的參數(shù)后,CAN總線主站通信處理模塊首先請求下面各CAN總線從站設(shè)備的輸入數(shù)據(jù),所有輸入數(shù)據(jù)掃描完成后,置輸入數(shù)據(jù)掃描完成標(biāo)志,EtherCAT主站接收到該標(biāo)志后,轉(zhuǎn)換CAN/EtherCAT協(xié)議轉(zhuǎn)換網(wǎng)關(guān)狀態(tài)到運行狀態(tài)。此時,輸出數(shù)據(jù)有效,CAN總線主站通信處理模塊發(fā)送輸出數(shù)據(jù)到相關(guān)CAN總線從站設(shè)備。所有的從站一輪掃描結(jié)束后,判斷統(tǒng)計是否有從站出現(xiàn)通信故障,并進(jìn)行相應(yīng)的處理。
3.4 CAN/EtherCAT協(xié)議轉(zhuǎn)換網(wǎng)關(guān)對象字典設(shè)計
EtherCAT協(xié)議使用對象字典實現(xiàn)標(biāo)準(zhǔn)的參數(shù)信息配置和輸入、輸出數(shù)據(jù)讀寫操作,每個對象字典有一個主索引和多個子索引。在CAN/Et herCAT協(xié)議轉(zhuǎn)換網(wǎng)關(guān)采用協(xié)議轉(zhuǎn)換網(wǎng)關(guān)和CAN總線從站設(shè)備的多級對象字典設(shè)計模式,如圖5所示。
CAN/EtherCAT協(xié)議轉(zhuǎn)換網(wǎng)關(guān)和CAN總線從站設(shè)備1的對象字典輸出數(shù)據(jù)(RxPDo)的主索引為十六進(jìn)制數(shù)據(jù)0x1600~0x16FF,每個輸出主索引的子索引為0x7xx0~0x7xxF,最多16個子索引;輸入(TxPDo)的主索引為十六進(jìn)制數(shù)據(jù)0x1A00~0x1AFF,每個輸入主索引的子索引為0x6xx0~0x6xxF,也是最多16個子索引。每個CAN總線從站設(shè)備通信配置信息主索引為0x8xx0~0x8xxF。CAN總線主站通信參數(shù)對象字典主索引為0xF 800。CAN/EtherCAT協(xié)議轉(zhuǎn)換網(wǎng)關(guān)和CAN從站設(shè)備的PDo對象字典映射關(guān)系如圖6所示。
4 CAN/EtherCAT協(xié)議轉(zhuǎn)換網(wǎng)關(guān)性能
EtherCAT主站采用Beckhoff公司的TwinCAT軟件,與4個CAN/EtherCAT協(xié)議轉(zhuǎn)換網(wǎng)關(guān)進(jìn)行通信,采用wireshark網(wǎng)絡(luò)封包分析軟件,擷取EtherCAT網(wǎng)絡(luò)通信報文幀,共擷取10次,每次1萬幀。TwinCAT軟件與CAN/EtherCAT協(xié)議轉(zhuǎn)換網(wǎng)關(guān)全部數(shù)據(jù)刷新時間如圖7所示。當(dāng)輸入數(shù)據(jù)為128字節(jié)、輸出數(shù)據(jù)為100字節(jié)時,通過對擷取的請求報文時間戳和響應(yīng)報文時間戳進(jìn)行差值計算得出:TwinCAT主站軟件與CAN/EtherCAT協(xié)議轉(zhuǎn)換網(wǎng)關(guān)之間報文平均響應(yīng)時間為200μs左右。CAN/EtherCAT協(xié)議轉(zhuǎn)換網(wǎng)關(guān)具有較高的可靠性、安全性和快速響應(yīng)特性。CAN總線主站與CAN總線從站設(shè)備通信波特率設(shè)為1 Mbps,一般一幀報文為8個字節(jié)有效數(shù)據(jù),數(shù)據(jù)幀刷新時間平均為2 ms。
TwinCAT軟件與CAN/EtherCAT協(xié)議轉(zhuǎn)換網(wǎng)關(guān)全部數(shù)據(jù)刷新時間取決于TwinCAT軟件報文掃描周期和CAN總線從站設(shè)備的數(shù)量、數(shù)據(jù)的多少。假設(shè)每個CAN/EtherCAT協(xié)議轉(zhuǎn)換網(wǎng)關(guān)下面連接10個CAN總線設(shè)備,每個設(shè)備的數(shù)據(jù)為16字節(jié),那么所有CAN總線數(shù)據(jù)掃描一周的時間為40 ms。
結(jié)語
CAN/EtherCAT協(xié)議轉(zhuǎn)換網(wǎng)關(guān)通過LPC2292實現(xiàn)了EthercAT協(xié)議控制器與CAN總線控制器之間的協(xié)議轉(zhuǎn)換和數(shù)據(jù)交換,解決了EtherCAT實時工業(yè)以太網(wǎng)與CAN總線之間通信的互聯(lián)問題,保證了CAN現(xiàn)場總線設(shè)備數(shù)據(jù)可以更加高效、快速地傳遞到EtherCAT中央監(jiān)控系統(tǒng)中。