EtherCAT从站开发方案介绍--含ET9300对比

EtherCAT从站开发方案介绍--含ET9300对比
EtherCAT从站开发方案介绍--含ET9300对比

ETHERCAT从站开发方案介绍-含ET9300对比

EtherCAT一般设计要求(针对uC+ESC的方案):

硬件上:主控制器uC+ESC(可选各供应商的EtherCAT从站控制器)

操作系统:无特殊要求,根据产品性能决定,也可以不用操作系统

软件上:需要完成主控制器uC对EtherCAT报文的通讯,ESC一般带开发包可完成移植。

难点:如何实现uC与ESC之间的数据交互。

对供应商的要求:

提供高质量的源代码(代码效率高、EtherCAT性能优化)

提供至少一个硬件平台的demo

提供完整的EtherCAT网络诊断和配置工具:以便测试等

一般从站包括以下三个核心部分:

物理层:要有网口

数据链路层:有EtherCAT 从站控制器ESC(这是通讯模块)和EEPROM。

应用层:有主控制器或者说应用控制器或微控制器uC(即比如DSP28346或者F407之类的)。

ESC即EtherCAT从站控制器可以通过FPGA(Field Programmable Gate Array)或者ASIC(Application Specific Integrated Circuit)来完成。

EtherCAT的报文帧结构:

ESC即EtherCAT从站控制器可以通过FPGA(Field Programmable Gate Array)或者ASIC(Application Specific Integrated Circuit)来完成。

EtherCAT通讯的速度和性能与主控制器(比如DSP28346)软件程序的性能互不影响。

关于PDI:ESC上的PDI- Process Data Interface过程数据接口有这几种情况:

i. Up to 32 Bit digital I/O :32位的数字量IO

ii. Serial Peripheral Interface (SPI) :SPI总线

iii. 8/16-bit synchronous/asynchronous Microcontroller Interface (MCI) :8/16位的同步/异步微控制器接口MCI

iv. With FPGA: specific on-board-bus (Avalon on Altera devices resp. OPB on Xilinx devices) :带FPGA的:特定的on-board-bus

过程数据和参数是通过ESC上的DPRAM来交互的。为了保证数据的一致性,ESC硬件上会有一些机制:比如同步管理器等。chapter 1.3.4

关于FPGA:为了实现FPGA,ESC会用IP Core的方式实现EtherCAT功能和通讯。FMMUs(Fieldbus Memory Management Units 现场总线内存管理单元),SyncManagers, DC support, PDI这几个功能是可以配置的。FPGA实现方式有两种:一个是在FPGA上集成ESC和一个软核uC,然后用FPGA的板上总线与主控制器交互。另外一个方式是:FPGA只用于EtherCAT功能部分,然后通过SPI总线连接到外部的主控制器。

关于EEPROM也叫SII:(Electrically Erasable Programmable Read-Only Memory, also called Slave Information Interface, SII),它包含在上电后会自动加载到ESC寄存器的配置信息。EEPROM可以通过ESI 文件的配置工具修改。EEPROM的内容必须在从站设备厂家再研发时就设置好。下图时EEPROM的寄存

器的值.

关于应用层的主控制器uC:

主控制器主要实现:

i. EtherCAT State Machine (ESM) in the slave device (chapter 1.3.7) :从站设备的EtherCAT状态机ESM

ii. Process data exchange with the slave application (e.g. application and configuration parameters, object dictionary, chapter 2.3.6) :过程数据交互(配置参数,对象字典等)

iii. Mailbox-based protocols for acyclic data exchange (CoE, EoE, FoE, chapter 1.3.6):非周期数据交互的邮

箱协议:CoE, EoE, FoE

iv. Optional TCP/IP stack if the device supports EoE :可选的TCP/IP堆栈(前提是设备支持EoE)

uC的性能只取决于设备功能应用部分而非EtherCAT通讯部分,大部分情况下,8bit的uC或者PIC就够了。(想表达的是:EtherCAT通讯是不会影响性能的,EtherCAT协议的一个好处)

关于ESI(EtherCAT Slave Information): 每个EtherCAT设备都必须随货给用户一个ESI文件,一般是.xml 格式。ESI文件是配置工具在离线模式下用来编译网络信息ENI的(比如过程数据结构,同步命令等)See also related description in chapter 2.4.1.

关于ESC的EtherCAT接口:

ESC最多只能提供4个EtherCAT接口,端口0必须定义为输入口。从站必须提供至少2个EtehrCAT接口。为了避免有些从站只有2个接口的,所以配合使用的ESC上的端口0和1必须使用,端口3和4可以保留。ESC总是通过端口0与主站相连的,与其他从站设备则通过端口1-3来连接。

关于FMMU:现场总线内存管理单元:

用于映射主站的逻辑过程数据映像和从站设备的物理层(本地)内存。

从下图看来:这个FMMU就是为了从主站发出去的一条报文中找到属于自己从站需要的那条。

关于同步管理器:SyncManager

不管是EtherCAT主站还是从站主控制器PDI去读取ESC的DPRAM,这个DPRAM的访问都需要确认数据一致性。同步管理器就是一个用来确保DPRAM中过程数据能被访问的机制:不同时间访问,但是访问到的是一致的。

如果从站使用FMMU,对应数据块的同步管理器位于DPRAM与FMMU之间。EtherCAT的同步管理器可以在两种模式下操作:

邮箱模式:

数据交互采用的是握手机制。EtherCAT主站和uC的控制程序只有在对方已经访问完缓冲区的时候才能继续访问。发送方在写入缓冲区的时候,缓冲区被锁定for writing 直到接收方已经全部读完。邮箱模块一般用于应用程协议和非周期数据的交互(比如参数设置)

缓冲模式:

缓冲模式一般用于周期性数据交互,比如过程数据,因为缓冲模式允许任何时候EtherCAT主站和从站主控制器uC都可以访问通讯缓冲区。发送方总是可以更新缓冲区的内容。如果缓冲区被写入的数据快于接收方去读取的速度,则旧的数据就会被丢掉。因此,接收方永远都是收到最新的而且与缓冲区内容一致的数据。

注意:同步管理器如果工作在缓冲模式下,则需要比分配在DPRAM中的过程数据大小大三倍。

从站程序应确保支持如下重要功能:

1.COE fully supported ,including EMCY

2.Support dynamic PDO mapping

3.SDO fully supported,especially for SDO Expedited Transfer,SDO Normal Transfer,SDO

Segment Transfer,SDO Information, Complete Access

4.ESI generation via XML-Editor and EtherCAT Studio

5.OD creation from OD.XML

6.Have full distributed clocks functions s

7.Provide adaption to STM 32- the adaptation is proven by test on real hardware- the delivery is in source code.

应用程序的设计可以参考免费的ET9300或者商业版代码(要求源代码提供,买断式),可选常见平台的demo。具体对比如下:

下面这个表格是从更加细节的角度做的对比:

Feature KPA EtherCAT从站代码ET9300代码

Number of supported input/output SMs Not limited in the stack Only one input and one output

SM are supported in the samples

Process Images processing API functions for data exchange

between Process Images and

objects (usually call of one

function is enough) The Process Images processing must be implemented in the application

Object Dictionary creation Creation in application code or

loading from an xml-file

(standard format)

Creation in application code

Binding objects with variables Each object’s entry can be

bound with individual variable An object can’t consist of some different variables - only one

(by its pointer) pointer can be bound to the

whole of the object (e.g. a

structure with all variables for the

object’s entries)

CoE object parameters All parameters are supported,

the processing is implemented in

the stack MIN, MAX, DEFAUL values for objects are not supported

Mapping flexibility No difference for user between

fixing and not fixing mapping Only fixing mapping is implemented in the sample applications, implementations are applications-specific

CoE SDO processing Full support in the stack Mailbox fragmentation is not

supported for objects and

entries description

Slave stack usage simplicity For general slave application it is

enough to call a little number of

API functions Some slave functionality must be implemented in the application (e.g. Process Image processing)

SDO and state-change events Callbacks for SDO and

state-change events are

supported and can be

set/removed at runtime Code for SDO and state-change events processing must be included in the slave stack sources

Slave stack library OSAL implementation using a

list of functions – a static library

can be created for

platform-independent part of the

stack Adaptation to platform using definitions (#define, #ifdef,…) - platform-independent stack can’t be implemented as library

网络配置/诊断软件KPA Studio --生成和导出xml文件

--配置采样率

--主站和从站配置

--网络诊断和故障原因分析

--数据、报文帧记录

--其他

NO

主站仿真KPA EtherCAT --安装在windows操作系统,用于

模拟

EtherCAT主站,可以与其他

EtherCAT

从站设备实现通讯

NO

赠送一个MCU平台的demo:如STM32等NO

KPA EtherCAT从站开发方案的一些基本特性如下:

代码占用空间很小,支持8位和16位微控制器,比如:SAB 80x16x (Infineon), ARM 3.9 (ARM), ATmega128 (Atmel), ppc 52xx, MPC8536 (Freescale), MicroBlaze (Xilinx), Sitara (TI)

?依赖于Object Dictionary对象字典和Process Image过程映像的大小:– ROM (flash) size >= 64kB Standard (55kB Basic)

– RAM size >= 8kB Standard (3kB Basic)

框架结构:

接口

?兼容Beckhoff的任意一款EtherCAT Slave Controllers (ESC): – ASIC ET 1xxx和IP-Core

?可选操作系统或无操作系统

?硬件事件的IRQ处理机制

?Mailbox(Mbx)信箱轮询和过程映像

?带指针的静态对象字典

?支持Intel和Motorola数据格式

ETHERCAT 功能

?Mailbox protocols: CoE, EoE, FoE, SoE VoE

?Distributed Clocks (DC)分布时钟

?Different scan rates不同的扫描速率

有些ETHERCAT从站开发方案,支持其他扩展功能选项:

?Operating System Abstraction

–硬件抽象层代替单独分开的“定义”

–操作系统抽象层,便于移植到不同操作系统

?使用来自于ROM/flash内存/ ECS’s EEPROM的标准xml文件或者用户自定义的对象字典描述数据,生成或改变对象字典的运行时间(runtime)

?动态跟踪代码执行情况,提高调试和诊断效率

?设置过程映像交互的不同扫描速率

?支持虚拟NIC(另选项)

参考资料:

https://koenig-pa.de/pdf/why_kpa_ethercat_slaveDK_flyer_15_1.pdf

https://koenig-pa.de/pdf/kpa_ethercat_slavestack_flyer_15.1.pdf

EtherCAT开发包试用申请(先注册登记):

https://koenig-pa.de/kpaold/customerportal/index.php?module=HelpDesk&action=index

相关主题
相关文档
最新文档