APP下载

基于STM32的EtherCAT从站的设计与实现

2016-08-04左振领何方李霄

组合机床与自动化加工技术 2016年7期

左振领,何方,李霄

(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子报文,并根据报文中的命令读取或插入数据。”On 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