EtherCAT-5 从站代码生成

以下内容结合自己实际项目经验以及网上公开资料整理,如有侵权,请联系修改~

简介

移植平台STM32,从站芯片AX58100,使用EtherCAT Slave Stack Code Tool (SSC) V5.11 工具生成从站代码。

SSC工具可以一键式生成从站源码,无需开发者深入了解复杂的 EtherCAT 底层机制,只需进行简单的配置,就能自动基于 ESI(EtherCAT Slave Interface)规范生成精确的从站代码框架,极大地节省了开发时间和精力。

SSC使用

一.新建工程

如上图所示,有两个选项,Default和Custom。这个两个选项其实没有太大的区别,可以理解为Default需要我们自己来进行一些配置,Custom是提供好的几个配置模板。

这里我们选择Default进行配置。。

二.配置选项

这些配置选项其实就是最终生成的源码中ecat_def.h文件中的宏定义。可以直接在生成的源码中搜索查看其具体作用。

1.SlaveInformation

这个选项是配置从站的一些设备信息,测试代码可以直接使用默认的选项,产品的话则根据设备信息来进行配置。

名字

说明

VENDOR_ID

0x00000B95

填写亚信芯片AX58100的ID

VENDOR_NAME

ASIX Electronics Corporation

亚信公司名称

PRODUCT_CODE0x20250225产品代码
REVISION_NUMBER0x00000001版本号(烧写xml时可以用于识别文件版本)

DEVICE_NAME

AX58100

设备名称

2.Generic

通用选项直接使用默认配置。

3.Hardware

这些配置是和硬件相关的选项。

名字

说明

EL9800_HW

1

置1后会生成EL9800的硬件接口文档,使用SPI接口可以在该文档的基础上进行修改

MCI_HW

0

置1后会生成通用的并行硬件接口文档,使用Local Bus接口可以在文档的基础上进行修改(该选项和EL9800_HW二选一)

CONTROLLER_16BIT

0

使用16位MCU置1(这个选项在源码中实际上没啥用)

CONTROLLER_32BIT

1

使用32位MCU置1(这个选项在源码中实际上没啥用)

_PIC24

0

使用Microchip的MCU置1,使用STM32置0(会提示warning信息,不用理会)

ESC_16BIT_ACCESS

1

MCU只支持以16bit访问ESC DPRAM则置1

ESC_32BIT_ACCESS

0

MCU只支持以32bit访问ESC DPRAM则置1

MBX_16BIT_ACCESS

1

MCU只支持以16bit访问nailbox memory则置1,否则为8bit

其他的是默认选项。

4.EtherCAT State Machine

Ethercat 状态跳转的一些设置,使用默认设置。

名字

说明

BOOTSTRAPMODE_SUPPORTED

0

bootstarp模式,如果需要FOE更新固件,则需要配置

OP_PD_REQUIRED

1

如果置0,那么在SAFEOP_2_OP 状态跳转的时候,即使没有收到PDO数据,也会跳转成功,而看门狗在接收到第一包PDO数据的时候激活

PREOPTIMEOUT

0x7D0

状态从Init 跳转到PreOP/Boot的超时时间,单位ms(在ESI 文件中 : “PreopTimeout”).

SAFEOP2OPTIMEOUT

0x2328

状态从 SafeOP 跳转到OP的超时时间 (在ESI 文件中 : “SafeopOpTimeout”)

CHECK_SM_PARAM_ALIGNMENT

0

置1将会检查SM的数据长度和地址,例如设置了ESC_32BIT_ACCESS, 那么长度和地址应该按照4字节对齐

5.Synchronisation

同步配置,配置了ECAT_TIMER_INT,其他使用默认的。

名字

说明

AL_EVENT_ENABLED

1

配置1为支持中断,SM同步模式需要配置,与PDI_IRQ相关

DC_SUPPORTED

1

配置1为支持DC时钟,与DC功能SYNC0/1相关

ECAT_TIMER_INT

1

配置为1则需要MCU提供一个1ms的定时器中断,用于Ethercat看门狗的喂狗,如果置0,则需要把协议栈的喂狗代码放在MCU程序的循环中

6.Application

这里的APPLICATION提供一些应用实例,可以在这些例子上修改,也可以自己建立应用程序。

名字

说明

TEST_APPLICATION

0

生成测试例程,功能比较全

EL9800_APPLICATION

0

生成EL9800平台测试例程

CiA402_DEVICE

0

如果需要canopen 402协议可以配置,一般用在电机产品中

SAMPLE_APPLICATION

0

独立与硬件的应用程序,如果SSC中的配置没有目标平台的,可以使用它

SAMPLE_APPLICATION_INTERFACE

0

提供一个简单接口来创建一个可供外部程序使用的静态库

APPLICATION_FILE

#include “MyApplication.h”

创建的应用程序的头文件

USE_DEFAULT_MAIN

0

置0则使用STM32的main函数

7.ProcessData

名字

说明

MAX_PD_INPUT_SIZE

0x44

从站输出的过程数据需要大于该设置值

MAX_PD_OUTPUT_SIZE

0x44

从站接收的过程数据需要大于该设置值

PDO的配置,其他使用默认配置。

8.Maibox

也是使用的默认配置,未作修改,如果需要FOE固件升级的话,可以配置一下。

名称

说明

FOE_SUPPORTED

1

如果需要用到FOE的话,配置为1

参数设置完后,保存【project】,名称命名为“MyApplication”,后续会以此命名生成的excel和xml文件。

三.创建应用

选择Tool->Application->Creat new ,会弹出如下一个Excel表格,在这个表格中设计对象字典,然后生成应用程序。

对象字典索引范围:

表格中的内容如下:

名称

描述

Index

索引

ObjectCode

RECODE:相当于结构体,子索引的类型可以不相同;

ARRAY:相当于数组,子索引的类型都相同;

VARABLE:类似于单个变量

SI

子索引(从1开始)

DataType

数据类型,BOOL、UINT8、UINT16、UINT32、INT8、INT16、INT32、CHAR、UCHAR等

Name对象字典名称

Default

默认值

M/C/O

mandatory ,optional or conditional.

Access

访问属性,ro:只读    wo:只写    rw:可读可写

rx/tx

PDO映射属性, rx:RPDO映射    tx:TPDO映射(从站发送的数据填tx,接收的数据填rx)

Description

描述

定义好的Excel文档如下所示:

注意:16bit对齐(如图,不足16位使用pad_x在补齐)。

保存excel文件,后续如有修改,可以从菜单Tool->Application->Import 导入文件,如果导入有报错,请根据错误信息来修改excel表格。

四.生成源码

Project->Creat new Slave Files ->start 生成从站源码。在文件夹中出现一个Src的文件夹,这里面包含了我们的从站源码,之后会用这个源码移植从站程序.

源码结构:

五.烧写EEPROM

  1. Tool->EEPROM Promgrammer 打开烧写界面如上图所示
  2. File->Open 选择相应的XML文件。
  3. Slaves->Scan扫描从站。
  4. Slaves->Program Selected 等待烧写完成

注意

在生成的XML文件最后几行中,EEPROM中的ConfigData可能需要修改。这个ConfigData其实是EEPROM前几个字节的数据。EEPROM的前16个字节会在上电或复位后自动加载到ESC的相应寄存器中,所以这里的字节需要根据ESC器件来进行配置。LAN9252和ET1100、AX58100的配置有些区别,可以到官网上看一下配置。

以下是一些可用的配置数据:

0, AX58100_SPI     050603cc0a000000000000000000 测试ok

1, AX58100_FMSC 080000cc0a000000000000000000 测试ok

2,LAN9252_SPI      012345678901234567890123456

3,LAN9252_FMSC 012345678901234567890123456

4,ET1100_SPI        012345678901234567890123456

5,ET1100_FMSC   012345678901234567890123456

6,ET1200_SPI       012345678901234567890123456

7,ET1200_FMSC  01234567890123456789012345

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值