左振領,何方,李霄
(1.中國科學院大學,北京 100049;2.中國科學院 沈陽計算技術研究所,沈陽 110168;3.沈陽高精數控技術有限公司,沈陽 110168)
?
基于STM32的EtherCAT從站的設計與實現
左振領1,2,何方2,3,李霄3
(1.中國科學院大學,北京100049;2.中國科學院 沈陽計算技術研究所,沈陽110168;3.沈陽高精數控技術有限公司,沈陽110168)
摘要:介紹了EtherCAT的工作原理,設計了一種基于STM32和ET1100的EtherCAT從站。采用模塊化和層次化的開發方式能夠有效的改善設備的開發質量、加快開發速度,為開發EtherCAT設備提供了一種便捷的途徑。文章分析了系統軟硬件設計方案,并通過實驗對設備I/O功能、實時性能以及數據精確度進行了測試,實驗表明設備性能良好。目前該從站已在“藍天數控”系統中得到初步應用。
關鍵詞:EtherCAT從站;ET1100;STM32
0引言
工業領域自動化程度的不斷發展對現場總線的數據傳輸能力、實時性等都提出了更高的要求。以太網以其數據傳送能力強,技術成熟度高,開發成本低等優點,受到工業控制現場總線領域的廣泛關注。將以太網應用于工業自動化領域成為工業控制現場總線技術的一個重要發展方向[1]。在此背景下,各大企業和科研機構提出了多種基于以太網技術的現場總線設計方案,開發了各自的行業標準。在眾多設計方案中,EtherCAT工業以太網以其拓撲結構靈活,系統配置簡單,開發成本低,性能卓越受到了越來越多的關注。
本文提出了一種使用德國BECKHOFF公司提供的從站控制專用芯片ET1100和STM32開發EtherCAT從站的實現方案。文章從系統軟硬件設計方案、設備測試等方面對該方案進行了闡述。實驗結果表明從站性能良好。
1EtherCAT簡介
EtherCAT以標準的以太網技術為基礎,在每個標準的以太網報文中嵌入一個或多個EtherCAT子報文,根據從站的設置,每個子報文可以尋址一個或多個從站,從而實現了在一個通信周期內的多從站訪問。EtherCAT網絡由主站和從站組成,采用主從模式介質訪問控制(MAC),主站發送以太網幀遍歷各個從站,從站采用”On The Fly“技術,在報文傳輸不停止的情況下分析尋址到本站EtherCAT子報文,并根據報文中的命令讀取或插入數據?!監n The Fly“技術由硬件來實現,這就極大的縮短了從站的傳輸延遲,提高了網絡的實時性。遍歷完所有從站之后,經過處理的數據幀從最后一個從站返回主站,主站根據返回的數據幀進行校驗處理,從而完成一次通信。
EtherCAT從站在物理層可以使用100BASE-TX雙絞線、100BASE-FX光纖和LVDS布線,并能夠利用交換機、轉換器實現多種布線模式的組合。EtherCAT網絡可以實現幾乎所有的網絡拓撲結構,如線形、樹形、菊花鏈型。每個EtherCAT網段最多可以支持65535個從站節點[2-4]。
高效的通信效率、靈活的拓撲結構、龐大的從站節點支持使得EtherCAT成為工業控制以太網的最佳解決方案之一。
2EtherCAT從站硬件設計
EtherCAT從站同時實現通信和控制應用兩部分功能。本文選用ET1100專用從站芯片實現從站協議中的物理層和數據鏈路層通信,選用STM32F103ZET6解析通信信息,實現設備控制,如圖1所示。
2.1從站硬件設計
ET1100是德國BECKHOFF自動化有限公司設計的EtherCAT從站控制專用芯片。ET1100包含4個物理通信端口,端口可以使用EBUS或MII模式通信,內部含有8個FMMU(現場總線內存管理單元)、8個SM(存儲同步管理單元)、8KB的DPRAM(雙端口RAM),ET1100支持64位分布式時鐘及看門狗。其中8KB的DPRAM可用于和應用層CPU交換數據。
ET1100支持三種PDI(過程數據接口):32位數字量IO、串行接口SPI、8/16位異步/同步微處理器接口MCI。其中SPI和MCI用于連接外部CPU,組成復雜從站設備。本文采用16位異步微處理器接口[5]。
STM32F103ZET6是意法半導體(ST)公司出品,基于Cortex-M3核心的32位微控制器,芯片集成定時器,CAN,ADC,SPI,I2C,USB,UART等多種功能。有512KB片內FLASH和64KB片內RAM,支持可兼容SRAM,NOR和NAND Flash 接口的16位總線FSMC[6]。
本文中硬件設計采用模塊化的設計思想,設計實現了以STM32為中心的微處理器模塊和以ET1100為中心的ET1100模塊,兩個模塊之間基于FSMC和MCI接口進行通信[7-8],ET1100和STM32的接口電路如圖1所示。

圖1 STM32和ET1100硬件接口電路圖
設計中從站使用FSMC的BANK1的區域3來控制ET1100,在該設計中ET1100的有效地址空間為0x68000000~0x68003000。最終設計的實物圖如圖2所示。

圖2 EtherCAT從站實物圖
3從站軟件設計
EtherCAT從站的軟件設計主要包括ET1100軟件設計和微處理器軟件設計。ET1100軟件設計就是把與硬件相符的XML配置文件燒寫到EEPROM中。微處理器的軟件設計主要通過操作ESC芯片實現應用層協議,主要包括軟硬件初始化,通信狀態機處理、過程數據處理等。
3.1從站軟件總體設計和工作流程
從站軟件設計主要圍繞微處理器軟件設計展開。為了使軟件設計更為清晰,從站軟件設計采用層次化設計方案:上層軟件通過底層提供的接口調用獲取底層服務,并通過接口向更上層軟件提供服務,軟件層次如圖3所示[9-10]。

圖3 軟件層次結構
(1)驅動程序提供對相關硬件的控制,為上層提供硬件操作服務。其中FSMC驅動控制ET1100芯片雙端口存儲區的讀寫,STM32通過該驅動實現與ET1100的通信。
(2)EtherCAT協議棧通過調用驅動程序接口獲得服務。主要包括三部分:EtherCAT狀態機、郵箱數據通信和過程數據通信。
(3)應用程序通過調用EtherCAT協議棧提供的服務完成特定功能。如IO控制,周期數據處理。
從站軟件工作流程如圖4所示。

圖4 從站軟件工作流程
從站中微處理器模塊和ET1100模塊之間通過中斷的方式進行通信。當ET1100模塊接收到主站發送過來的數據時,ET1100模塊向微處理器模塊發送中斷,處理模塊從ET1100中獲取數據,并完成控制任務。當從站有數據要發送時,處理器模塊會將數據寫入到ET1100中的DPRAM,當主站讀取數據后就向處理器模塊發送中斷。
3.2從站軟件主要流程設計
3.2.1從站初始化
從站的初始化是由主站和從站共同完成。在初始化過程中,當主站檢測到從站后,主站從ET1100的EEPROM中讀取配置信息,并根據配置信息發送初始化命令。從站根據主站發送的命令進行初始化。
在從站端,從站初始化主要包括硬件初始化和EtherCAT初始化兩個方面。從站初始化過程如圖5所示。

圖5 從站初始化流程
在應用程序初始化階段會重新打開在硬件初始化中被屏蔽的中斷。
3.2.2事件處理
EtherCAT協議使用事件機制實現主站對從站的操作。ET1100中設有專門的事件請求寄存器(0x0220~0x0223)和事件屏蔽寄存器(0x0204~0x0207)來支持事件機制。當中斷發生時,中斷處理程序會讀取事件請求寄存器,判斷事件類型,并做出相應的處理,其基本處理流程如圖6所示。

圖6 事件處理流程
3.2.3狀態轉換
在EtherCAT協議中,主站和從站應用程序在初始化和運行時的狀態關系由EhterCAT狀態機負責協調。EtherCAT設備支持五種狀態,其中初始化、預運行、安全運行、運行為必備狀態,引導狀態為可選狀態,各狀態的轉換關系如圖7所示。

圖7 EtherCAT狀態轉換關系
所有的狀態轉換都是由主站發起,主站向從站發送狀態控制命令,從站響應此命令。從站的狀態轉換只能按照箭頭的順序展開,不可越級轉換。如果請求的狀態轉換失敗,從站將給出錯誤標識。
在程序中,從站獲得主站發出的狀態轉換事件后,會根據當前狀態和請求狀態計算狀態轉換參數,并根據所得參數調用響相應的狀態轉換函數或錯誤處理函數。
4從站測試及分析
本實驗使用德國倍福公司開發的TwinCAT軟件和沈陽高精AM3358主站搭建測試平臺[11],并通過抓包工具對從站進行功能測試和性能測試[12]。
4.1I/O開關量測試
在TwinCAT軟件中寫入開關量1(高電平),觀察到開發板中的LED燈被點亮。對從站平臺連續按下按起按鍵,在TwinCAT中觀察到電平突變,如圖8所示。由此可知,主從站之間IO通信正常。

圖8 TwinCAT中電平突變圖
4.2從站性能測試
向從站連續發送數據幀,并用Wireshark對抓包進行處理,抓包部分結果如圖9所示。

圖9 抓包部分結果圖
通過對抓取數據的分析,對從站數量、平均周期、環運行時間三項數據進行了匯總,實驗數據如表1所示。

表1 從站性能測試實驗數據 單位:ns
由以上實驗數據可知:在從站個數不同的網絡下周期值穩定在1ms左右,這是由主站來控制的;每增加一個從站節點,環運行時間增加1μs左右,即報文經過每個節點的時延約為500ns,可見從站的實時性良好。
4.3精度測試
主站以特定時間間隔向從站連續發送200個數據包,從站接收完數據包后通過串口打印接收到的數據,據此判斷從站所收到的包的個數。實驗結果如表2所示。

表2 從站精度測試實驗數據
由以上實驗數據可知,當時間間隔為50μs時,丟包十分嚴重,隨著主站發送數據的周期時間的增大,丟包率逐漸下降,當時間間隔為200μs時,丟包率為0,據此可知該從站在大于200μs周期時,數據精度正常。
5結束語
本文詳述了EtherCAT從站的軟硬件設計實現方案,搭建了實驗平臺,為EtherCAT從站設備的開發提供了參考。本文采用的模塊化硬件設計方案和層次化軟件設計方案,加快了從站開發速度,基于STM32構造微處理器模塊降低了開發成本和難度,便于調試,提高了開發效率。
[參考文獻]
[1] 樊留群.實時以太網及運動控制總線技術[M].上海:同濟大學出版社,2009.
[2] Florian Pose.IgH EtherCAT Master 1.5.2 Documentation[EB/OL],2013,http://www.etherlab.org.
[3] EtherCAT Technology Group.ETG_Brochure_cn[EB/OL].[2012-11].http://www.ethercat.org.
[4] EtherCAT Technical Introduction and Overview[R].EtherCAT Technology Group,2007.
[5] Beckhoff Automation GmbH. EtherCAT Slave Controller datasheet V1.4[EB/OL].2008,http://www.beckhoff.com.cn.
[6] ST,Inc.STM32 Reference Manual[EB/OL].2009,http://www.st.com/.
[7] Martin Rostan,Joseph E.Stubbs.EtherCAT enabled Advanced Control Architecture[R].EtherCAT Technology Group.
[8] 鄒靖波,熊皚.EtherCAT從站硬件設計方法[J].微型機與應用,2015,34(7):27-29.
[9] 郇極,劉艷強.工業以太網現場總線EtherCAT 驅動程序設計及應用[M].北京:北京航空航天大學出版社,2010.
[10] 單春榮,劉艷強,郇極.工業以太網現場總線EtherCAT及其驅動程序設計[J].制造業自動化,2007,29(11):79-82.
[11] Beckhoff Automation GmbH.EtherCAT系統搭建和測試指導[EB/OL].2010,http://beckhoff.com.cn.
[12]李備備,欒勇.基于AM3358處理器的嵌入式實時EtherCAT主站的構建[J].組合機床與自動化加工技術,2015(5):1-5.
(編輯李秀敏)
文章編號:1001-2265(2016)07-0001-03
DOI:10.13462/j.cnki.mmtamt.2016.07.001
收稿日期:2015-08-14;修回日期:2015-11-02
*基金項目:“高檔數控機床與基礎制造裝備”國家科技重大專項基于二次開發平臺的專用數控系統開發與應用(2013ZX04007-011)
作者簡介:左振領(1989—),男,山東聊城人,中國科學院沈陽計算技術研究所碩士研究生,研究方向為計算機系統結構,(E-mail)zuozhenling1@163.com。
中圖分類號:TH122;TG506
文獻標識碼:A
Design and Implementation of EtherCAT Slave Based on STM32
ZUO Zhen-ling1,2,HE Fang2,3,LI Xiao3
(1.Chinese Academy of Sciences,Beijing 100049,China;2.Shenyang Institute of Computing Technology,Chinese Academy of Sciences,Shenyang 110168,China)
Abstract:This paper introduces the working principle of EtherCAT,and designs the EtherCAT Slave based on STM32 and ET1100. It applies modular design and hierarchical design,and effectively imporves the quality and speed of device development,and a method to develop device is provided.This paper first analyzes the system hardware and software design, then tests the I/O function,real-time performace and data accuracy of the equipment by experiments.The device works well. At present,the slave has been initially applied in the“Blue Sky”numerical control system.
Key words:EtherCAT slave;ET1100;STM32