bitpie官网首页|ethercat主站方案

作者: bitpie官网首页
2024-03-09 23:12:57

[工业互联-17]:常见EtherCAT主站与实现方法_ethercat主站开发-CSDN博客

>

[工业互联-17]:常见EtherCAT主站与实现方法_ethercat主站开发-CSDN博客

[工业互联-17]:常见EtherCAT主站与实现方法

文火冰糖的硅基工坊

已于 2023-07-08 17:15:54 修改

阅读量4.4k

收藏

49

点赞数

7

分类专栏:

工业互联

文章标签:

EtherCAT主站

工业以太网

于 2023-07-08 11:31:16 首次发布

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/HiWangWenBing/article/details/131608032

版权

工业互联

专栏收录该内容

22 篇文章

33 订阅

订阅专栏

目录

第1章 EtherCAT入门

1.1 简介

1.2 EtherCAT通信架构

第2章  EtherCAT主站方案

2.1 方案概述

2.2 主站配置步骤

2.3 EtherCAT主站软件

第3章  Windows操作系统支持EtherCAT的基本步骤

第4章 常见主站软件介绍:TwinCAT

4.1 简介

4.2 软件架构

4.3 应用程序架构

第5章  SOEM

5.1 简介

5.2 SOEM创建EtherCAT主站

5.3 QT添加SOEM主站

第1章 EtherCAT入门

1.1 简介

EtherCAT(Ethernet for Control Automation Technology)是一种实时以太网通信协议,用于工业自动化和控制系统中实现高性能、实时数据传输和控制。它是由EtherCAT技术组织(ETG)开发和标准化的。

EtherCAT基于以太网物理层和数据链路层,但使用了一种特殊的通信方法,称为"Processing on the Fly"。这种方法使得数据帧能够在通过从站设备时进行实时处理,而不需要完全接收整个数据帧。这样,数据传输和控制可以实现高效率和低延迟。

EtherCAT通信采用主从架构,其中一个主站设备负责整个EtherCAT网络的管理和控制,而从站设备则负责在数据环网上传递数据。

主站设备可以是计算机、工控机、PLC等,

而从站设备可以是传感器、执行器、驱动器等。

EtherCAT具有以下特点:

实时性能:EtherCAT通过在数据环网上逐站处理数据,实现了高速和低延迟的数据传输。这使得它非常适用于对实时性要求较高的应用,如运动控制、机器视觉等。 灵活性:EtherCAT网络可以支持从几个节点到数千个节点的连接,同时支持多种网络拓扑结构,如星型、总线型、环形等。这使得它能够适应不同规模和复杂度的工业系统。 高带宽利用率:EtherCAT可以利用以太网的高带宽特性,同时在同一物理介质上传输控制数据和其他应用数据,从而提高带宽利用效率。 易于集成:EtherCAT基于以太网标准,使用标准的以太网物理层和数据链路层。这使得它能够与其他以太网设备和网络互操作,并且易于与现有以太网基础设施集成。

EtherCAT已经在工业自动化和控制领域得到广泛应用,包括机械设备、工厂自动化、过程控制等各种应用场景。它提供高效的实时通信和控制能力,帮助提升工业系统的性能、灵活性和可扩展性。

(300条消息) [工业互联-12]:主流的工业以太网技术简介(PROFINET、POWERLINK、ETHERNET/IP、ETHERCAT、SERCOSIII、MODBUS TCP、CC-LINK IE)_文火冰糖的硅基工坊的博客-CSDN博客

1.2 EtherCAT通信架构

EtherCAT通信架构基于主从架构,其中一个主站设备控制整个EtherCAT网络,而多个从站设备负责在数据环网上传递数据。以下是EtherCAT通信架构的主要组成部分:

主站(Master):主站是EtherCAT网络的控制中心,负责协调整个网络的数据传输和控制。主站可以是计算机、工控机、PLC等设备,它通过EtherCAT接口连接到EtherCAT网络。主站发送和接收数据帧,并处理从站设备的数据。 从站(Slave):从站是在EtherCAT网络中扮演被动角色的设备。从站可以是各种不同类型的设备,如传感器、执行器、驱动器等。每个从站设备都有一个唯一的设备地址,通过EtherCAT通信以实时方式与主站交换数据。 数据环网(Data Ring):数据环网是连接主站和从站的物理通信介质,通常是双绞线、光纤或其他以太网标准支持的物理介质。这个环网形成了一个环形或星型网络拓扑结构,可以支持多个从站设备连接到同一个环网上。 EtherCAT Slave Controller(ESC):每个从站设备上都有一个EtherCAT Slave Controller,负责实时处理和转发从站数据。它的作用是解析EtherCAT数据帧、执行数据处理和控制算法,并将数据传递到下一个从站或主站。 EtherCAT数据帧(Frame):EtherCAT数据帧是在数据环网上传输的通信单位,它包含控制指令、数据和状态信息。在一个周期内,主站从流经数据环网的每个从站设备上读取和写入数据。

EtherCAT的通信过程非常快速和高效。主站发送一个带有特殊控制字段的数据帧,该数据帧在数据环网上循环传输。每个从站设备通过处理数据帧中的控制指令,并在帧传输周期内完成数据读取和写入操作。数据帧的循环传输确保了实时性和低延迟的数据传输。

通过这种主从架构和实时数据传输方式,EtherCAT能够实现高性能的工业控制和自动化应用,适用于需要实时性、快速响应和高带宽的工业环境。

第2章  EtherCAT主站方案

2.1 方案概述

实现EtherCAT主站(Master)功能的方案有多种选择,取决于具体需求和系统架构。

以下是一些常见的EtherCAT主站方案:

PC-based软件主站:使用一台PC或工控机作为EtherCAT主站,通过安装适当的EtherCAT主站软件,如Beckhoff的TwinCAT或KINGSTAR的EtherCAT Master等,来实现EtherCAT通信和控制功能。这种方案适用于需要灵活性和可编程性的应用,适用于实时数据采集与处理。 PLC作为主站:许多主流PLC供应商提供了集成EtherCAT主站功能的PLC设备。这些PLC设备具有专用的EtherCAT接口,可以直接与EtherCAT网络连接。PLC作为主站具有实时性、可靠性和易于集成的特点,适用于以实时控制为主目标的工业控制和自动化系统,用于PLC控制从站设备。 封装主站模块:一些厂商提供了专用的EtherCAT主站模块,可以作为独立的硬件设备,通过串行通信接口(如串口、以太网接口等)连接到主控设备(如PC、PLC等)。这些模块通常提供了高性能的EtherCAT通信功能,可以方便地集成到现有的系统中。

无论选择哪种方案,实现EtherCAT主站功能的关键是:使用相应的EtherCAT主站软件或硬件模块,并遵循EtherCAT通信协议。该主站软件或硬件模块将提供EtherCAT数据交换和协议处理的功能,使主站能够与从站设备进行通信和控制。

2.2 主站配置步骤

在配置EtherCAT主站时,需要进行以下步骤:

设置通信参数:配置主站与EtherCAT网络连接的物理接口和通信参数,如波特率、网络拓扑结构等。 扫描并识别从站:通过主站软件或配置工具,进行EtherCAT网络的扫描和从站设备的识别。通过识别从站设备,为每个从站分配唯一的设备地址。 配置从站通信和数据:为每个从站配置通信参数和数据映射。这包括定义数据对象、数据类型、数据采样频率等。 开发应用程序:使用主站软件或编程环境,编写应用程序以实现与从站设备的数据交换、数据处理和控制操作。

需要注意的是,实现EtherCAT主站功能需要遵循EtherCAT通信协议规范,并使用与从站设备兼容的主站软件或硬件模块。在选择和配置EtherCAT主站方案时,应根据具体需求、开发平台和供应商支持来进行评估和选择。

2.3 EtherCAT主站软件

有多个供应商提供了EtherCAT主站软件,以下是几个常用的EtherCAT主站软件:

TwinCAT(Beckhoff):TwinCAT是Beckhoff提供的一款强大的EtherCAT主站软件。它是一个全面的自动化控制软件的开发平台,集成了PLC、运动控制、HMI和数据采集等功能。TwinCAT具有丰富的开发工具和库,可用于开发复杂的EtherCAT控制系统。 KINGSTAR EtherCAT Master(IntervalZero):KINGSTAR EtherCAT Master是IntervalZero公司提供的一种软件EtherCAT主站解决方案。它提供了实时以太网通信和控制功能,可与多个EtherCAT从站设备进行通信。KINGSTAR EtherCAT Master可以与Windows上的实时软件配合使用。 SoftMotion for EtherCAT(National Instruments):National Instruments提供了SoftMotion for EtherCAT软件,它是NI实时控制平台LabVIEW和CompactRIO的一部分。SoftMotion for EtherCAT具有强大的运动控制能力,可用于快速开发和部署EtherCAT控制系统。 CODESYS EtherCAT Master:CODESYS是一款广泛使用的可编程控制器开发环境,CODESYS EtherCAT Master是其提供的EtherCAT主站功能模块。它允许开发人员使用CODESYS进行EtherCAT通信和控制应用的开发,同时具备很好的可扩展性和灵活性。 SOEM(Simple Open EtherCAT Master)是一个开源的EtherCAT主站实现,由EtherLab项目开发并维护。它提供了一个简单、灵活和可移植的EtherCAT主站解决方案,适用于嵌入式系统和实时控制应用。

这些EtherCAT主站软件提供了丰富的功能和开发工具,可以满足各种复杂控制系统的需求。选择合适的软件取决于具体应用需求、开发平台和供应商支持。在选择软件之前,建议评估软件功能、易用性、性能和支持等因素,并根据实际案例进行验证。

第3章  Windows操作系统支持EtherCAT的基本步骤

Windows操作系统可以通过相应的驱动程序和软件支持EtherCAT(Ethernet for Control Automation Technology)。

EtherCAT是一种实时以太网通信协议,广泛用于工业自动化领域。

它使用基于以太网的通信方式,通过传输以太网数据帧的方式来实现实时数据传输和控制。

要在Windows上实现EtherCAT支持,可以采取以下步骤:

安装EtherCAT从设备驱动程序:首先,需要安装适用于Windows的EtherCAT驱动程序。这些驱动程序通常由EtherCAT硬件供应商提供,可用于与硬件EtherCAT从设备进行通信,实现etherCAT通信协议。 使用EtherCAT主站软件:在Windows上安装和配置EtherCAT主站软件,例如TwinCAT、EtherCAT Master等。这些软件允许用户配置和管理EtherCAT网络、从设备和通信参数。EtherCAT主站软件通过EtherCAT从设备驱动程序与从设备进行通信!!! EtherCAT从设备配置:通过EtherCAT主站软件,用户可以进行EtherCAT设备的配置。这包括添加设备、定义设备通信地址和参数等。 开发应用程序:使用Windows下的编程语言和工具(如C/C++、C#等),开发应用程序以与EtherCAT设备进行通信。通常,EtherCAT的开发包和API可以提供给开发人员,以简化EtherCAT通信的编程。 数据传输和控制:通过编写应用程序,可以使用EtherCAT协议进行数据传输和控制。应用程序可以使用EtherCAT主站软件提供的API或驱动程序所提供的API,与EtherCAT设备进行实时通信。

需要注意的是,EtherCAT的支持和集成可能因硬件、操作系统版本和软件工具等因素而有所差异。在进行EtherCAT的集成和开发时,建议参考相关硬件和软件供应商提供的文档和指南,以确保正确配置和操作EtherCAT网络和设备。

关注博主即可阅读全文

优惠劵

文火冰糖的硅基工坊

关注

关注

7

点赞

49

收藏

觉得还不错?

一键收藏

打赏

知道了

0

评论

[工业互联-17]:常见EtherCAT主站与实现方法

EtherCAT(Ethernet for Control Automation Technology)是一种实时以太网通信协议,用于工业自动化和控制系统中实现高性能、实时数据传输和控制。它是由EtherCAT技术组织(ETG)开发和标准化的。EtherCAT基于以太网物理层和数据链路层,但使用了一种特殊的通信方法,称为"Processing on the Fly"。这种方法使得数据帧能够在通过从站设备时进行实时处理,而不需要完全接收整个数据帧。这样,数据传输和控制可以实现高效率和低延迟。

复制链接

扫一扫

专栏目录

EtherCAT主站SOEM -- 9 -- SOEM之基于QT搭建自己的EtherCAT主站

qq_50808730的博客

12-10

661

以上就是EtherCAT主站SOEM – 9 – SOEM之基于QT搭建自己的EtherCAT主站的内容。有不明白的地方欢迎留言;有建议欢迎留言,我后面编写文档好改进。创作不容,如果文档对您有帮助,记得给个赞。

基于stm32构建EtherCAT主站,采用了开源的soem方案

12-05

基于stm32构建EtherCAT主站,将soem方案移植到了stm32上。基本功能测试正常,可以驱动一部分的伺服电机,但也存在一些bug。整体移植方式应该是正确的,具体移植方式将写于CSDN博客中。

参与评论

您还未登录,请先

登录

后发表或查看评论

SOEM:简单的开源EtherCAT主站

01-30

SOEM:简单的开源EtherCAT主站

ethercat通讯协议的详细说明及编程提示

12-13

详细讲述了ethercat通讯协议及其编程

[工业互联-20]:常见EtherCAT主站方案:TwinCAT的Windows 解决方案

文火冰糖(王文兵)的博客

07-09

2118

TwinCAT是由德国Beckhoff公司开发的一套功能强大的自动化软件平台。它是一个集成的开发环境,用于实现实时控制、PLC编程、运动控制、HMI(人机界面)设计和数据采集等应用。TwinCAT广泛应用于工业自动化、机械控制、过程控制和实时系统等领域。

EtherCAT主站开发“利器”——EC-Master软件协议栈

MotroEngineer的博客

05-25

610

EtherCAT主站在整个总线网络拓扑的结构和功能中发挥主要作用,操作人员通常在主站设置与发布相应的需求和调度。主站软件程序的平台通用性与能否集成其他通讯协议,盟通科技在现场总线方案领域拥有近十年的技术沉淀和落地经验,面对国内现场总线需求逐年上升,而专精的网络工程师又确实较少的客观事实,推出了一个全面的EtherCAT主站实时方案——EcMaster

在RT-Thread上移植EtherCAT开源主站SOEM1.4.0

lg28870983的博客

05-08

5304

EtherCAT在运动控制领域非常热门,有SOEM和IGH的开源主机实现。在STM系列处理器上的实现比较多,在RT-Thread上的实现还没有看到。这次就基于RT-Thread移植SEOM,并实现了DC+CSP对汇川伺服IS620N的控制,同步周期为1ms。

基于STM32构建EtherCAT主站(SOEM方案)5

cln512的博客

12-22

2344

基于stm32构建ethercat主站

TI EtherCAT主站实现方案

10-22

TI官方的Tether CAT主站实现方案,详细的可以到其官网上了解。EtherCAT(以太网控制自动化技术)是一个开放架构,以以太网为基础的现场总线系统,其名称的CAT为控制自动化技术(Control Automation Technology)字首的缩写。EtherCAT是确定性的工业以太网,最早是由德国的Beckhoff公司研发。

【Ethercat机器人控制系统开发】倍福Twincat入门教程

ljcyyx的博客

11-05

6180

低成本上手Twincat教程,适合初学者。

FPGA设计EtherCAT主站的方法和常见问题

ic2121的博客

04-10

1004

作者从事EtherCAT等实时工业网络及运控产品的开发多年。基于FPGA的EtherCAT主站,是不少公司的明智选择。无论是实时性,灵活性,还是性价比均可有很好的保证。

一、基于FPGA的EtherCAT主站的设计方法

FPGA模块主要分为五部分:初始化、状态机、PDO、SDO、同步。

1)初始化模块

初始化主要工作是搜集网络拓扑结构、搜集各个节点的信息内容、初始化各个节点的时间系统与初始同步。

2)状态机模块

该模块主要实现各个节点的状态机转化。

INIT->预运行->安全

基于STM32的伺服总线EtherCAT主站设计——SOEM方案

weixin_48501028的博客

04-16

7365

本文介绍在正点原子的STM32H743开发板上,使用SOEM方案实现EtherCAT主站通讯,本文记录从零基础学习路线,从入门到移植成功控制电机转动。

【技术干货】基于赛灵思FPGA板卡的高性能EtherCAT主站方案

HackEle的博客

08-02

1581

图片来源:虹科电子技术背景EtherCAT 是开放的实时以太网通讯协议,由德国倍福自动化有限公司研发。EtherCAT 具有高性能、低成本、容易使用等特点,目前在工业领域有着广泛的应用。ZCU102 评估套件可帮助设计人员快速启动面向汽车、工业、视频以及通信应用的设计。该套件具有基于 Xilinx 16nm FinFET+ 可编程逻辑架构的 Zynq® UltraScal...

C#读ecat伺服参数

最新发布

cfqq1989的博客

10-27

141

【代码】C#读ecat伺服参数。

[FPGA] FPGA设计EtherCAT主站的方法和常见问题

ic2121的博客

12-16

430

将以上五个模块设计完成,加上与ARM/DSP/CPU通信的通信接口,以及与运控相关的模块(模拟量、IO、手轮等),即可实现整个设计。2)状态机转移中,出现转移不成功,记得读取节点0x134寄存器,查看错误代码,根据错误代码来查看具体不能转移成功的原因。5)同步模块中,出现从站之间的同步问题,主站和从站之间的同步问题,出现产品应用与主站之间的同步问题。开发时间层面:基于ARM的开源linux主站最优,基于ARM+FPGA的主站次之。产品性能层面:基于FPGA的主站最优,基于ARM+FPGA的主站次之。

基于FPGA的EtherCAT主从站设计与实现 ethercat 主站 FPGA verilog 代码

2301_76250113的博客

01-13

519

基于FPGA的EtherCAT主从站设计与实现 ethercat 主站 FPGA verilog 代码。

EtherCAT主站开发方案-含ZedBoard和X86测试数据

11-04

EtherCAT主站开发方案-含ZedBoard和X86测试数据

EtherCAT主站开发方案-含ZedBoard和X86测试数据

基于EtherCAT的主站通信控制器设计

10-26

基于EtherCAT的主站通信控制器设计,系统的介绍了总线的设计方法和设计流程,很好的参看资料

EtherCAT有哪些主流开源代码?它们的优点是什么?

absinjun的博客

12-28

3707

EtherCAT两大主流开源代码为SOEM和Igh EtherCAT Master。

SOEM

SOEM 全称 Simple Open EtherCAT Master

优点:

非常易于使用

静态分配内存,占用空间少

易于移植驱动程序和应用程序层

可在Window、Linux平台运行

IGH EtherCAT Master

优点:

成熟的EtherCAT主站

稳定性好

性能好

对EtherCAT的功能支持更加全面

对比表

开源主站

SOEM

IGH EtherCAT Master

ethercat主站ic: ecm-xf

08-09

其中的一款常见的EtherCAT主站IC是ECM-XF。 ECM-XF是一种先进的EtherCAT主站IC,具有高性能和广泛的应用领域。它由一系列强大的处理器和通信接口组成,可以实现快速而可靠的EtherCAT通讯。作为EtherCAT网络的主控...

“相关推荐”对你有帮助么?

非常没帮助

没帮助

一般

有帮助

非常有帮助

提交

文火冰糖的硅基工坊

CSDN认证博客专家

CSDN认证企业博客

码龄4年

人工智能领域优质创作者

2058

原创

201

周排名

142

总排名

1521万+

访问

等级

4万+

积分

15万+

粉丝

7411

获赞

1302

评论

2万+

收藏

私信

关注

热门文章

[4G&5G专题-118]:5G培训应用篇-3-5G新的业务与应用-智能电网、车联网、智能制造、无人机等

118629

[从零开始学习FPGA编程-6]:快速入门篇 - 操作步骤1 - 国内外FPGA主要厂家及其主要产品系列、开发工具

107180

[从零开始学习FPGA编程-8]:快速入门篇 - 总体 - FPGA功能开发详细流程与关键步骤解读

106823

[4G&5G专题-119]:5G培训应用篇-4-5G典型行业应用的解决方案(车联网、智慧医疗、智能教育、智能电网)

95795

[深入研究4G/5G/6G专题-28]: 5G NR开机流程4.6 - MSG5 (RRCSetupComplete)消息的调度

72662

分类专栏

深入研究4G/5G/6G专题

付费

61篇

从零开始学FPGA编程

付费

58篇

人工智能-YOLO专题

付费

39篇

人工智能-从零开始学DeepFaceLab

付费

22篇

管理与领导

138篇

情商

12篇

计算机-数据结构

1篇

数据

计算机-算法

机器人

3篇

操作系统

工业自动化

25篇

人工智能-大语言模型与生成式AI

5篇

编程系列-QT

44篇

激光原理与应用

75篇

随缘参悟

161篇

工业互联

22篇

人工智能-ChatGPT

架构之路

277篇

创业之路

97篇

OAI (Open Air Interface)

29篇

4G+5G FAPI

8篇

人工智能-综述

14篇

Linux用户空间编程

7篇

嵌入式系统

39篇

需求管理

11篇

项目管理

37篇

人工智能-深度学习

206篇

人工智能-PyTorch

119篇

技术发展

29篇

用python辅助学生中考与高考

4篇

无线通信基础培训

15篇

硅基生命-漫谈

3篇

电动智能汽车

12篇

物联网-方案

3篇

通信-图解通信原理与案例分析

35篇

心理学-解构心之理

机器学习与scikit-learn

58篇

量化人生

概率论与数理统计

5篇

云原生专题

65篇

问题与解决

UML专题

2篇

计算机基础

1篇

人工智能-Python基础

15篇

人工智能-TensorFlow

63篇

数值计算

19篇

人工智能-数学基础

30篇

人工智能-图像处理

1篇

数学建模

人工智能-自然语言处理NLP

人工智能-自动驾驶

DSP处理器快速入门

8篇

信息论与编码理论

6篇

智能电网

4篇

智能制造

3篇

生命科学-人体组织与坯胎学

生命科学-人体科学

软件工程

1篇

硅基生命-认知神经科学

通信-4G/5G/6G基础

162篇

赚钱-数字化时代

28篇

赚钱-量化投资学习

41篇

杂谈-杂谈随感

15篇

赚钱-技术人员的赚钱之道

10篇

技术至简

16篇

专利与论文

20篇

通信-ORAN专题系列

61篇

通信-星星之火

60篇

生活-人生百味

10篇

生活-生活中的小技巧

2篇

碳基生命-心理咨询

碳基生命-心理学与生活

技术-灵星之光

1篇

赚钱-手把手搭建Python量化平台

3篇

通信-DSP数字信号

测试-jenkins专题

3篇

编程-开发工具

8篇

编程-Python系列

26篇

心理学-思维模式

19篇

通信-《信号与系统》解读

15篇

编程-C++系列

编程-程序人生

通信-物联网LoRa系列

33篇

Linux内核空间编程

硅基生命-神经工程

最新评论

[架构之路-109]-《软考-系统架构设计师》-软件架构设计-2-软件架构概述:架构风格

sunray97:

2.6章节的习题,麻烦老师给一下答题可以不。想验证一下学习效果。辛苦啦。

[4G&5G专题-31]:物理层-物理信道、信号、映射概述

。:

写的太好了,谢谢大佬分享

[4G&5G专题-37]:5G NR物理层-物理广播信道PBCH与主信息块MIB

weixin_51737027:

大佬,请问一下PBCH的更新周期怎么理解啊,这里的更新指的是更新什么内容呢?

[4G&5G专题-108]:部署 - LTE无线网络室内覆盖规划、设计与室内分布式系统

非洲大佬:

有5G双路室分案例没

[激光器原理与应用-5]:激光二极管LD (Laser Diode)与激光二极管驱动器(LD驱动器)

@枭白:

2.1讲错了。LD是发光器件,PD是光电转换器件。三个引脚中,一个是公共地,一个是LD正极,输入电流控制LD发光,还有一个是PD负极,PD在合适的工作条件下,PD输出电流反应LD发光强度,因此PD是用来检测LD工作状态的,即是一个反馈器件。LD开始的时候还是电子空穴复合发光,但是LD内有谐振腔,内部介质载流子相对反转分布,一开始发出的微弱光在谐振腔中来回反射的时候,由于载流子反转分布,使得受激辐射大量发生使增益大于损耗,因此微弱光不断放大,最终产生激光。

最新文章

[嵌入式系统-37]:龙芯1B 开发学习套件 -7-MIPS指令集

[创业之路-97] :创业公司实施ERP-7-产品成本估计与成本控制

[创业之路-96/管理者与领导者-138] :研发与生产的比较,一个是技术、设计、功能、性能,一个是流程、效率、成本和质量、供应链

2024

03月

17篇

02月

55篇

01月

37篇

2023年487篇

2022年652篇

2021年545篇

2020年268篇

目录

目录

分类专栏

深入研究4G/5G/6G专题

付费

61篇

从零开始学FPGA编程

付费

58篇

人工智能-YOLO专题

付费

39篇

人工智能-从零开始学DeepFaceLab

付费

22篇

管理与领导

138篇

情商

12篇

计算机-数据结构

1篇

数据

计算机-算法

机器人

3篇

操作系统

工业自动化

25篇

人工智能-大语言模型与生成式AI

5篇

编程系列-QT

44篇

激光原理与应用

75篇

随缘参悟

161篇

工业互联

22篇

人工智能-ChatGPT

架构之路

277篇

创业之路

97篇

OAI (Open Air Interface)

29篇

4G+5G FAPI

8篇

人工智能-综述

14篇

Linux用户空间编程

7篇

嵌入式系统

39篇

需求管理

11篇

项目管理

37篇

人工智能-深度学习

206篇

人工智能-PyTorch

119篇

技术发展

29篇

用python辅助学生中考与高考

4篇

无线通信基础培训

15篇

硅基生命-漫谈

3篇

电动智能汽车

12篇

物联网-方案

3篇

通信-图解通信原理与案例分析

35篇

心理学-解构心之理

机器学习与scikit-learn

58篇

量化人生

概率论与数理统计

5篇

云原生专题

65篇

问题与解决

UML专题

2篇

计算机基础

1篇

人工智能-Python基础

15篇

人工智能-TensorFlow

63篇

数值计算

19篇

人工智能-数学基础

30篇

人工智能-图像处理

1篇

数学建模

人工智能-自然语言处理NLP

人工智能-自动驾驶

DSP处理器快速入门

8篇

信息论与编码理论

6篇

智能电网

4篇

智能制造

3篇

生命科学-人体组织与坯胎学

生命科学-人体科学

软件工程

1篇

硅基生命-认知神经科学

通信-4G/5G/6G基础

162篇

赚钱-数字化时代

28篇

赚钱-量化投资学习

41篇

杂谈-杂谈随感

15篇

赚钱-技术人员的赚钱之道

10篇

技术至简

16篇

专利与论文

20篇

通信-ORAN专题系列

61篇

通信-星星之火

60篇

生活-人生百味

10篇

生活-生活中的小技巧

2篇

碳基生命-心理咨询

碳基生命-心理学与生活

技术-灵星之光

1篇

赚钱-手把手搭建Python量化平台

3篇

通信-DSP数字信号

测试-jenkins专题

3篇

编程-开发工具

8篇

编程-Python系列

26篇

心理学-思维模式

19篇

通信-《信号与系统》解读

15篇

编程-C++系列

编程-程序人生

通信-物联网LoRa系列

33篇

Linux内核空间编程

硅基生命-神经工程

目录

评论

被折叠的  条评论

为什么被折叠?

到【灌水乐园】发言

查看更多评论

添加红包

祝福语

请填写红包祝福语或标题

红包数量

红包个数最小为10个

红包总金额

红包金额最低5元

余额支付

当前余额3.43元

前往充值 >

需支付:10.00元

取消

确定

下一步

知道了

成就一亿技术人!

领取后你会自动成为博主和红包主的粉丝

规则

hope_wisdom 发出的红包

打赏作者

文火冰糖的硅基工坊

你的鼓励是我前进的动力

¥1

¥2

¥4

¥6

¥10

¥20

扫码支付:¥1

获取中

扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元

使用余额支付

点击重新获取

扫码支付

钱包余额

0

抵扣说明:

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

余额充值

EtherCAT主站芯片方案 (virtual ASSP) | Macnica Cytech

EtherCAT主站芯片方案 (virtual ASSP) | Macnica Cytech

跳转到主要内容

 全球网络 联系我们

Languages

中文簡体

中文繁體

English

Search

Menu

主页

关于我们

公司简介

全球网络

Mpression Solutions

免责声明

隐私政策

产品

Global Product Line

Local Chinese Product Line

ECO System Partner

开发板

Borax SOM

EasyGX Board

EtherCAT 主站芯片方案

EtherCAT 从站 + FOC参考方案

EtherCAT主站解决方案汇总2019

ME10 SoC - 4K AV over 1GbE System on Chip

MIE SoC 模块

SoC Helio 开发板

射频方案

工业相机模块

信息及活动

信息

活动

文章及视频

技术文章

业务联系

联系表格

国内地点

全球地点

社交媒体

 

开发板

EtherCAT主站芯片方案 (virtual ASSP)

 Back to Top

Sidebar Menu

主页

关于我们

公司简介

全球网络

Mpression Solutions

免责声明

隐私政策

产品

Global Product Line

Local Chinese Product Line

ECO System Partner

开发板

Borax SOM

EasyGX Board

EtherCAT 主站芯片方案

EtherCAT 从站 + FOC参考方案

EtherCAT主站解决方案汇总2019

ME10 SoC - 4K AV over 1GbE System on Chip

MIE SoC 模块

SoC Helio 开发板

射频方案

工业相机模块

信息及活动

信息

活动

文章及视频

技术文章

业务联系

联系表格

国内地点

全球地点

社交媒体

EtherCAT主站芯片方案 (virtual ASSP)

概述

EtherCAT商业主站和开源主站,都是使用软件的方法实现主站功能,主站的性能很大程度上取决于PC的性能和操作系统的实时性。而骏龙科技将EtherCAT的协议层用FPGA逻辑实现,预先编程好,客户只需当作专用芯片使用。

EtherCAT Master ASSP芯片实现了标准的EtherCAT主站协议,采用标准的通用并行总线接口,可以连接任何CPU,并对芯片进行控制。支持ARM处理器或者x86处理器平台。提供参考软件代码,API函数,XML文件初始化系统等软件。可用于任何标准的 EtherCAT 电机、IO设备的控制。

特点

⦁    支持ARM处理器上裸机程序运行EtherCAT主站,无需操作系统;

⦁    支持x86处理器,PCIe接口,提供Linux(withXenomai实时内核)下的驱动和应用程序的参考代码;

⦁    友好的系统调试界面;

⦁    CPU负担小,无论高端或低端处理器,都能快速实现高实时性能的EtherCAT主站通信;

⦁    主站与从站间的同步性能强,同步时间的抖动远小于1us(4轴实测50ns);

⦁    循环周期短,可以轻松实现31.25us的通信周期(可实现4轴62.5us的循环周期);

⦁    通过XML文件轻松配置系统,可接从站数量多

性能对比

欢迎有兴趣的客户联系骏龙科技各地办事处了解详情,或发邮件至 stonemao@macnica.com, 也可以关注微信号后直接微信留言。骏龙科技网站也可以留言。

骏龙科技微信号: 

Copyright 2024 Macnica Cytech Limited

粤ICP备2021107379号-1

LoginLogout

网站地图

主页

关于我们

公司简介

全球网络

Mpression Solutions

免责声明

隐私政策

产品

Global Product Line

Local Chinese Product Line

ECO System Partner

开发板

Borax SOM

EasyGX Board

EtherCAT 主站芯片方案

EtherCAT 从站 + FOC参考方案

EtherCAT主站解决方案汇总2019

ME10 SoC - 4K AV over 1GbE System on Chip

MIE SoC 模块

SoC Helio 开发板

射频方案

工业相机模块

信息及活动

信息

活动

文章及视频

技术文章

业务联系

联系表格

国内地点

全球地点

社交媒体

微信平台

FPGA 微信平台

领英 LinkedIn

基于STM32的伺服总线EtherCAT主站设计——SOEM方案_stm32 ethercat-CSDN博客

>

基于STM32的伺服总线EtherCAT主站设计——SOEM方案_stm32 ethercat-CSDN博客

基于STM32的伺服总线EtherCAT主站设计——SOEM方案

河狸打捞员

已于 2023-09-25 22:03:08 修改

阅读量7.3k

收藏

159

点赞数

29

分类专栏:

CANopen、EtherCAT

文章标签:

stm32

单片机

嵌入式硬件

于 2023-04-16 23:44:49 首次发布

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/weixin_48501028/article/details/128835795

版权

CANopen、EtherCAT

专栏收录该内容

4 篇文章

11 订阅

订阅专栏

本文介绍在正点原子的STM32H743开发板上,使用SOEM方案实现EtherCAT主站通讯,本文记录从零基础学习路线。由于本人才疏学浅,如有错误,还请指正。

下文蓝色带下划线为参考资料的网址链接,蓝色字体为参考资料名称。

一、EtherCAT介绍

在了解EtherCAT之前,建议对于TCP/IP的概念有一些了解,可以观看正点原子的介绍视频:【正点原子】手把手教你学lwIP_哔哩哔哩_bilibili(建议看完前7讲)

对于EtherCAT概念的了解,可以观看:【工业通讯】EtherCAT&EtherNet/IP基础知识讲解合集_哔哩哔哩_bilibili

本项目移植过程中,参考的文献如下:

[1]王惠娇. 基于嵌入式平台的EtherCAT主站实现研究[D].郑州大学,2018.

[2]毛令. 基于STM32的嵌入式EtherCAT主站的研究与实现[D].北方民族大学,2022

[1]刘豪志. 基于嵌入式Linux的EtherCAT主站设计及伺服控制系统研究[D].南京航空航天大学,2020.

以上绍视频和文献,对于ETH和EtherCAT帧结构、寻址模式、通讯模式、同步模式等知识点讲解比较清晰,这里就不展开介绍。我们就直入主题,介绍在STM32H743基于SOEM实现EtherCAT通讯的移植和调试过程。

二、SOME库架构分析

SOEM的代码的官网下载链接:GitHub -OpenEtherCATsociety/SOEM: Simple Open Source EtherCAT Master

SOEM库采用分层设计,并且提供了一个抽象层,将SOEM协议栈与具体操作系统和硬件分开。抽象层由OSAL和OSHW两个模块组成,OSAL是操作系统抽象层,OSHW 是硬件抽象层,移植的主要内容就是对OSAL和OSHW具体API实现,在新的操作系统和硬件平台上的重写。

SOEM的层级架构如下图所示:

2.1 抽象层

抽象层可以分为操作系统抽象层OSAL和硬件抽象层OSHW两部分。

OSAL模块侧重于操作系统的抽象和时间机制。由osal.h和osal.c组成。定义了基本数据类型,时间相关结构以及时间和定时器相关API和线程相关API。其中的时间和定时器相关的API是必须实现的,线程相关的API不是必须实现的。

OSHW模块侧重于为上层提供网络服务。由oshw.h/oshw.c和nicdrv.h/nicdrv.c四个文件组成。oshw.h/.c主要实现网络大小端和本地大小端的转换,nicdrv.h/.c是网络驱动,主要实现 EtherCAT帧的发送和接收。

不同平台上nicdrv模块的逻辑结构基本相同,需要实现的是三个底层API:

(1)网口的初始化 (2)MAC层帧发送 (3)MAC层帧接收

2.2 中间层

SOEM的中间层,是EtherCAT协议 栈的具体实现,包含BASE模块、MAIN模块、CONFIG模块、CONFIGDC模块、COE等。各层的功能如下表所示。

层 功能 BASE 将工业应用数据组装成 EtherCAT 帧 MAIN 顺序寻址、广播方式、配置地址、逻辑地址方式对从站读写读写从站 EEPROM CONFIG 提供邮箱模式的非过程数据读写和三缓冲模式的过程数据 PDO读写初始化从站控制器的寄存器,配置从站FMMU CONFIGDC 提供分布式时钟,实现主从站之间时钟同步 COE CANOpen Over EtherCAT FOE File Over EtherCAT SOE Sercos Over EtherCAT

2.3 应用层

APP应用层并不属于SOEM库,应用层调用SOEM提供的服务,实现具体的应用,由用户按所需自行编辑。

三、移植SOEM到嵌入式平台STM32H743

本项目的移植流程参考文献:[1]王惠娇. 基于嵌入式平台的EtherCAT主站实现研究[D].郑州大学,2018.

网上也有人提供了程序源码,如以下的链接是基于STM32H743实现,论坛链接里有提供源码!!!

EasyControl ethercat总线 精简主从站方案 (amobbs.com 阿莫电子论坛 

基于stm32和soem的EtherCAT主站代码分享 (amobbs.com 阿莫电子论坛

3.1 以太网口电路

移植SOEM到嵌入式平台的过程就是重写SOEM抽象层的过程。在STM32H743的开发板上,通过RMII外接一个PHY芯片,型号是LAN8720A。STM32H743的以太网口电路详见官方资料《STM32H7开发指南-HAL库版本_V1.0 66.1.1》介绍。

使用RMII接口,其电路图如下:

以太网口的电路,具体可参考网上博主的教程:基于STM32构建EtherCAT主站(SOEM方案)3_stm32 ethercat_拉松的博客

3.2 主站时钟优化

STM32H743具有400MHz的CPU频率,可是实现微秒级别精度的系统时钟。为了避免使用tick机制实现系统时钟的中断干扰,采用硬件定时器级联,将TIM3和TIM2二者级联起来,其中TIM2为32位计时器,TIM3为16位计时器,将二者连起来实现48比特系统时间。

设置TIM2频率1MHz,1us计数一次。配置TIM2输出一个1Hz的时钟信号,作为TIM3的输入端。这样,TIM2的计数值就是微秒数,TIM5的计数值是秒数。

代码如下:

//计时器 通过读取CNT值实现计时 避免中断的影响 TIM2 TIM3

//设置TIM2主模式,输入时钟1mhz,产生1hz的TRGO信号

//设置TIM3为从模式,时间源为TIM2更新信号

void PhyTim_EtherCAT_Init(void)

{

//-----------------TIM2初始化------------------//

TIM_ClockConfigTypeDef sClockSourceConfig;

TIM_MasterConfigTypeDef sMasterConfig; //定时器主模式配置

TIM_SlaveConfigTypeDef sSlaveConfig; //定时器从模式配置

TIM2_Handler.Instance = TIM2; //通用定时器2

TIM2_Handler.Init.Prescaler=199; //分频

TIM2_Handler.Init.CounterMode=TIM_COUNTERMODE_UP; //向上计数器

TIM2_Handler.Init.Period=1000000-1; //自动装载值

TIM2_Handler.Init.ClockDivision=TIM_CLOCKDIVISION_DIV1;//时钟分频因子

TIM2_Handler.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_ENABLE; //自动重装载 写入新值后,计数器完成当前旧的计数后,再开始新的计数周期

HAL_TIM_Base_Init(&TIM2_Handler);

sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL; //使用内部时钟源 外部触发预分频器 关闭预分频器 TIM2->SMCR

HAL_TIM_ConfigClockSource(&TIM2_Handler, &sClockSourceConfig); //定时器时钟配置

sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_ENABLE; //TIM2设置为主模式

sMasterConfig.MasterOutputTrigger = TIM_TRGO_UPDATE; // 选择更新事件作为触发输出 (TRGO)

HAL_TIMEx_MasterConfigSynchronization(&TIM2_Handler, &sMasterConfig);

HAL_TIM_Base_Start(&TIM2_Handler); //使能定时器2

//-----------------TIM3初始化------------------//

TIM3_Handler.Instance = TIM3; //通用定时器3

TIM3_Handler.Init.Prescaler = 0; //不分频

TIM3_Handler.Init.CounterMode = TIM_COUNTERMODE_UP; //向上计数器

TIM3_Handler.Init.Period = 50000; //自动装载值

TIM3_Handler.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; //时钟分频因子

HAL_TIM_Base_Init(&TIM3_Handler);

sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_ITR1; //定时器时钟源选择

HAL_TIM_ConfigClockSource(&TIM3_Handler, &sClockSourceConfig);

sSlaveConfig.SlaveMode = TIM_SLAVEMODE_EXTERNAL1; //外部时钟模式1 由所选触发信号 (TRGI) 的上升沿提供计数器时钟 TIM3->SMCR[2;0]=111

sSlaveConfig.InputTrigger = TIM_TS_ITR1; // 输入触发:选择 ITR0 作为输入源

sSlaveConfig.TriggerPolarity = TIM_TRIGGERPOLARITY_RISING;// 触发极性:上升沿

sSlaveConfig.TriggerPrescaler = TIM_TRIGGERPRESCALER_DIV1;// 触发预分频:无

sSlaveConfig.TriggerFilter = 0x0; // 滤波:不需要任何滤

HAL_TIM_SlaveConfigSynchronization(&TIM3_Handler, &sSlaveConfig); //定时器从模式配置

HAL_TIM_Base_Start(&TIM3_Handler);

}

//定时器底册驱动,开启时钟,设置中断优先级

//此函数会被HAL_TIM_Base_Init()函数调用

void HAL_TIM_Base_MspInit(TIM_HandleTypeDef *htim)

{

if(htim->Instance==TIM6) //0.5ms TIM6

{

__HAL_RCC_TIM6_CLK_ENABLE();

HAL_NVIC_SetPriority(TIM6_DAC_IRQn,3,1);

HAL_NVIC_EnableIRQ(TIM6_DAC_IRQn);

}

else if(htim->Instance==TIM7) //2ms TIM7

{

__HAL_RCC_TIM7_CLK_ENABLE();

HAL_NVIC_SetPriority(TIM7_IRQn,4,1);

HAL_NVIC_EnableIRQ(TIM7_IRQn);

}

else if(htim->Instance==TIM2) // TIM2

{

__HAL_RCC_TIM2_CLK_ENABLE();

}

else if(htim->Instance==TIM3) // TIM3

{

__HAL_RCC_TIM3_CLK_ENABLE();

}

}

//读取时间

uint32_t GetSec(void) //获取时间/秒

{

return TIM3->CNT;

}

uint32_t GetUSec(void) //获取时间/微妙

{

return TIM2->CNT;

}

参考资料:STM32定时器同步模式 四种_tim_masterconfigtypedef_luowei_memory的博客

3.3 网络驱动移植

STM32H743的ETH介绍详见 《STM32H7开发指南-HAL库版本_V1.0 66.1.1》,正点原子的教程也有介绍:【正点原子】手把手教你学lwIP_哔哩哔哩_bilibili

nicdrv负责Ethernet帧的打包和解包,需要实现EtherCAT帧通过MAC层发送出去,并将从MAC层接收到的EtherCAT帧送给nicdrv。Nicdrv模块的实现是EtherCAT移植的关键。

参考网上博主的介绍,相应的代码更改为H743即可。

基于STM32构建EtherCAT主站(SOEM方案)2_stm32 ethercat_拉松的博客;

基于STM32构建EtherCAT主站(SOEM方案)5_拉松的博客

在调试的时候,报错找不到从站,经过调试时PHY初始化的时候,滤波模式没有设置好(F767为混杂模式设置),修正后的代码如下:

//LAN8720初始化

int32_t Lan8720_Init(void)

{

//===============================================================MAC====================================================================

u32 sn0 = *((vu32*)(0x1FF0F420)); //获取STM32的唯一ID的前24位作为MAC地址后三字节

u8 macaddress[6]; //MAC地址

//MAC地址设置(高三字节固定为:2.0.0,低三字节用STM32唯一ID)

macaddress[0]=2; //高三字节(IEEE称之为组织唯一ID,OUI)地址固定为:2.0.0

macaddress[1]=0;

macaddress[2]=0;

macaddress[3]=(sn0>>16)&0XFF; //低三字节用STM32的唯一ID

macaddress[4]=(sn0>>8)&0XFF;

macaddress[5]=sn0&0XFF;

//硬件复位

__set_PRIMASK(1); //关闭所有中断,复位过程不能被打断!

PhyPCF8574_WriteBit(ETH_RESET_IO,1); //硬件复位

delay_ms(100);

PhyPCF8574_WriteBit(ETH_RESET_IO,0); //复位结束

delay_ms(100);

__set_PRIMASK(0); //开启所有中断

NETMPU_Config(); //MPU保护设置

ETH_Handler.Instance=ETH; //ETH

ETH_Handler.Init.MACAddr=macaddress; //MAC地址

ETH_Handler.Init.MediaInterface=HAL_ETH_RMII_MODE; //RMII接口

ETH_Handler.Init.RxDesc=DMARxDscrTab; //发送描述符

ETH_Handler.Init.TxDesc=DMATxDscrTab; //接收描述符

ETH_Handler.Init.RxBuffLen=ETH_MAX_PACKET_SIZE; //接收长度

//初始化ETH

HAL_ETH_Init(Ð_Handler);

memset(&TxConfig, 0 , sizeof(ETH_TxPacketConfig));

TxConfig.Attributes = ETH_TX_PACKETS_FEATURES_CSUM | ETH_TX_PACKETS_FEATURES_CRCPAD; //Tx数据包硬件功能

TxConfig.ChecksumCtrl = ETH_CHECKSUM_IPHDR_PAYLOAD_INSERT_PHDR_CALC; //指定校验和插入控件:启用 IP 标头校验和和有效负载校验和计算和插入

TxConfig.CRCPadCtrl = ETH_CRC_PAD_INSERT; //指定CRC和Pad插入和替换控件

//===============================================================PHY====================================================================

uint32_t idx, duplex, speed = 0;

int32_t PHYLinkState; //Lan8720状态

ETH_MACConfigTypeDef MACConf; //ETH MAC 配置结构定义

ETH_MACFilterConfigTypeDef filterDef; //ETH MAC滤波器结构定义

HAL_ETH_GetMACFilterConfig(Ð_Handler,&filterDef); //获取 ETH MAC 过滤器配置

filterDef.PromiscuousMode = ENABLE; //过滤器使能PM模式

HAL_ETH_SetMACFilterConfig(Ð_Handler,&filterDef); //设置ETH MAC 过滤器

//将内存缓冲区分配给 DMA Rx 描述符

for(idx = 0; idx < ETH_RX_DESC_CNT; idx ++)

{

HAL_ETH_DescAssignMemory(Ð_Handler, idx, Rx_Buff[idx], NULL);

}

//===============================================================LAN8720=================================================================

uint32_t regvalue = 0, addr = 0;

u32 timeout=0; //超时计时

u32 regval=0; //lan8720addr 只有一个网口 默认使用0

u32 phylink=0;

HAL_StatusTypeDef rtn; //定义HAL状态结构

HAL_ETH_SetMDIOClockRange(Ð_Handler); //配置ETH MDIO接口的时钟范围

//获取lan8720地址

lan8720addr = 32;

for(addr = 0; addr <= lan8720addr; addr ++)

{

rtn = HAL_ETH_ReadPHYRegister(Ð_Handler, addr, LAN8720_SMR, ®value);

if( rtn != HAL_OK){continue;}

if((regvalue & LAN8720_SMR_PHY_ADDR) == addr)

{

lan8720addr = addr;

break;

}

}

if(LAN8720_WritePHY(LAN8720_BCR,LAN8720_BCR_SOFT_RESET)>=0) //LAN8720软件复位 判断LAN8720寄存器读写是否正常

{

//等待软件复位完成

if(LAN8720_ReadPHY(LAN8720_BCR,®val)>=0)

{

while(regval&LAN8720_BCR_SOFT_RESET)

{

if(LAN8720_ReadPHY(LAN8720_BCR,®val)<0)

{

PHYLinkState=LAN8720_STATUS_READ_ERROR;

break;

}

delay_ms(10);

timeout++;

if(timeout>=LAN8720_TIMEOUT) break; //超时跳出,5S

}

}

else

{

PHYLinkState=LAN8720_STATUS_READ_ERROR;

}

}

else

{

PHYLinkState=LAN8720_STATUS_WRITE_ERROR;

}

//===============================================================SET=================================================================

do

{

delay_ms(100);

PHYLinkState = LAN8720_GetLinkState(); //读取链接状态

}while(PHYLinkState <= LAN8720_STATUS_LINK_DOWN);

//打印连接状态

printf("ETH工作状态: ");

switch (PHYLinkState)

{

case LAN8720_STATUS_100MBITS_FULLDUPLEX:

duplex = ETH_FULLDUPLEX_MODE;

speed = ETH_SPEED_100M;

printf(" 100Mb/s FullDuplex \r\n");

break;

case LAN8720_STATUS_100MBITS_HALFDUPLEX:

duplex = ETH_HALFDUPLEX_MODE;

speed = ETH_SPEED_100M;

printf(" 100Mb/s HalfDuplex \r\n");

break;

case LAN8720_STATUS_10MBITS_FULLDUPLEX:

duplex = ETH_FULLDUPLEX_MODE;

speed = ETH_SPEED_10M;

printf(" 10Mb/s FullDuplex \r\n");

break;

case LAN8720_STATUS_10MBITS_HALFDUPLEX:

duplex = ETH_HALFDUPLEX_MODE;

speed = ETH_SPEED_10M;

printf(" 10Mb/s HalfDuplex \r\n");

break;

default:

duplex = ETH_FULLDUPLEX_MODE;

speed = ETH_SPEED_100M;

printf(" 100Mb/s FullDuplex__ \r\n");

break;

}

HAL_ETH_GetMACConfig(Ð_Handler, &MACConf); //获取 MAC 和 MTL 子系统的配置

MACConf.DuplexMode = duplex; //ETH工作模式 全双工/半双工

MACConf.Speed = speed; //ETH传输速度

MACConf.TransmitQueueMode = ETH_TRANSMITTHRESHOLD_128; //ETH传输模式 128字节

HAL_ETH_SetMACConfig(Ð_Handler, &MACConf); //MAC 配置

HAL_ETH_Start_IT(Ð_Handler); //开启ETH中断

HAL_ETH_BuildRxDescriptors(Ð_Handler); //将上次接收的数据包的 Rx Desc返回给 DMA

}

四、主站软件系统测试

上一节参考链接介绍,已经将Ether CAT主站协议库SOEM成功移植到嵌入式平台STM32H743上,本章从EtherCAT主站实现的有效性、可靠性、稳定性出发,对嵌入式平台的EtherCAT主站驱动从站进行测试分析。

4.1 硬件平台搭建

本项目调试所使用的伺服驱动器为英威腾的DA200,对于该伺服的介绍乐意查看以下链接:DA200交流伺服驱动器

实验平台及接线如下图所示,参考《DA200系列交流伺服驱动器中文说明书V2.2_3.2.1节》

参考说明书《英威腾SV-DA200交流伺服驱动器_EtherCAT技术指南V2.62》的第2章,在ServoPlorer软件上设置以下参数:

参数 名称 数值 P0.01 电机代码 2300 P0.03 控制模式选择 8 [EtherCAT 模式] P4.08 EtherCAT 同步类型 2: DCMode P4.07 EtherCAT同步周期 2: 1ms P4.09 EtherCAT 故障检测时间 100ms

4.2 EtherCAT应用层编辑

使用EtherCAT控制伺服电机,具体的配置可以总结为以下过程:

EtherCAT初始化过程 相关函数 配置初始化 ec_init() ec_config_init(FALSE) INVT_DA200_setup() 分配分布式时钟 ec_configdc() 配置过程数据映射 ec_config_map(&IOmap) 请求所有从站进入到安全模式

4.2.1 PDO 映射

其中的INVT_DA200_setup()为从站伺服器的PDO映射,参考《英威腾SV-DA200交流伺服驱动器_EtherCAT技术指南》介绍,具体的操作步骤为:

英威腾 PDO 映射的操作步骤代码如下:

// 英威腾 PDO 映射的操作步骤

int INVT_DA200_setup(uint16 slvcnt)

{

EtherCAT_write8(slvcnt, 0x1C12, 00, 0); // 1 停止PDO分配功能(将0x1C12和0x1C13的子索引0设置为0)

EtherCAT_write8(slvcnt, 0x1600, 00, 0); // 2 停止PDO映射功能(将0x1600~0x1603和0x1A00~0x1A03的子索引0全部设置为0)

EtherCAT_write32(slvcnt, 0x1600, 01, 0x60400010); // 3 设置PDO映射对象(0x1600~0x1603和0x1A00~0x1A03)的映射入口

EtherCAT_write32(slvcnt, 0x1600, 02, 0x607A0020); // 3 设置PDO映射对象(0x1600~0x1603和0x1A00~0x1A03)的映射入口

EtherCAT_write8(slvcnt, 0x1600, 00, 2); // 4 设置PDO映射对象(0x1600~0x1603和0x1A00~0x1A03)映射入口的数值

EtherCAT_write16(slvcnt, 0x1C12, 01, 0x1600); // 5 设置PDO分配对象(设置0x1C12和0x1C13的子索引1);

EtherCAT_write8(slvcnt, 0x1C12, 00, 1); // 6 重新打开PDO分配功能(将0x1C12和0x1C13的子索引0设置为1)

/**********************************************************************************************************/

EtherCAT_write8(slvcnt, 0x1C13, 00, 0); // 1 停止PDO分配功能(将0x1C12和0x1C13的子索引0设置为0)

EtherCAT_write8(slvcnt, 0x1A00, 00, 0); // 2 停止PDO映射功能(将0x1600~0x1603和0x1A00~0x1A03的子索引0全部设置为0)

EtherCAT_write32(slvcnt, 0x1A00, 01, 0x60410010); // 3 设置PDO映射对象(0x1600~0x1603和0x1A00~0x1A03)的映射入口

EtherCAT_write32(slvcnt, 0x1A00, 02, 0x60640020); // 3 设置PDO映射对象(0x1600~0x1603和0x1A00~0x1A03)的映射入口

EtherCAT_write8(slvcnt, 0x1A00, 00, 2); // 4 设置PDO映射对象(0x1600~0x1603和0x1A00~0x1A03)映射入口的数值

EtherCAT_write16(slvcnt, 0x1C13, 01, 0x1A00); // 5 设置PDO分配对象(设置0x1C12和0x1C13的子索引1);

EtherCAT_write8(slvcnt, 0x1C13, 00, 1); // 6 重新打开PDO分配功能(将0x1C12和0x1C13的子索引0设置为1)

EtherCAT_write8(slvcnt, 0x6060, 00, 8); //设置操作模式 :周期性同步位置模式

return 0;

}

4.2.2 EtherCAT 状态机

此外,还要实现EtherCAT状态机,状态机用于描述从站应用的状态和状态改变。状态改变请求通常由主站发起,从站响应。具体状态跳转方式如下图:

状态机的实现代码如下所示:

//EtherCAT状态机

void EtherCAT_ctrl_state(void)

{

switch (outputs1->controlword) //获取当前状态 0x6041状态字

{

case 0: //Switch on disabled

outputs1->controlword = 6; //Shutdown

break;

case 6: //Ready to switch on

outputs1->controlword = 7; //Disable voltage + Quick stop

break;

case 7: //Switched on

outputs1->targetPostion = inputs1->actualPostion; //查询【6064h: Position actual value】来获取电机实际位置反馈

outputs1->controlword = 0x0f; // Enable operation

break;

case 0x0f: //Operation enabled

if( OpenReady == 0 )

OpenReady = 1;

else

OpenReady = 0;

break;

default:

outputs1->controlword = 6; //Shutdown

break;

}

}

对于EtherCAT状态设置主要是对6041h状态字的查询和设置,如下图所示:

4.2.3 周期性同步位置模式

使用周期性同步位置模式控制电机转动,在该模式下,插补周期与 EtherCAT同步周期相同(本文设置为1ms)。

1、 设置 6060 h为 8,选择 Cyclic Synchronous Position Mode;

2、 设置 6040 h以使能驱动器,发送 0x0F;

3、 逐次设置 607A h为目标位置(绝对位置),进行位置控制。

具体的操作方法如下图所示:

通过逐次设置 607A h为目标位置(绝对位置),进行位置控制,实现电机的转动。

以上是本人使用SOEM方案在STM32H743实现EtherCAT主站通讯,的整个过程,如有错误,还请指教交流。

优惠劵

河狸打捞员

关注

关注

29

点赞

159

收藏

觉得还不错?

一键收藏

打赏

知道了

10

评论

基于STM32的伺服总线EtherCAT主站设计——SOEM方案

本文介绍在正点原子的STM32H743开发板上,使用SOEM方案实现EtherCAT主站通讯,本文记录从零基础学习路线,从入门到移植成功控制电机转动。

复制链接

扫一扫

专栏目录

EtherCAT主站SOEM -- 10 -- SOEM主站通信过程函数解析

qq_50808730的博客

12-17

1189

这个函数的目的是根据给定的网络接口名称,初始化相关的数据结构,并设置Ethernet设备。总体而言,这个函数的作用是根据特定规则填充以太网头部结构体,其中目标MAC地址被设置为广播地址,源MAC地址被设置为特定的。数组值,以太网类型字段被设置为特定协议类型。数组的前三个元素,通过这种方式将源MAC地址填充到以太网头部。这三行设置目标MAC地址为广播地址,即全FF(0xffff)。,是用于设置Ethernet通信接口的。,用于填充以太网头部结构体。,该值可能是一个特定的以太网协议类型。设置以太网类型字段为。

stm32f407_ucosii__dp83848以太网芯片实现etherCAT主站程序.zip

01-21

stm32f407_ucosii__dp83848以太网芯片实现etherCAT主站程序,该程序使用stm32f407芯片,ucosii系统,dp83848以太网芯片实现etherCAT主站程序,并使用台达etherCAT伺服测试成功

10 条评论

您还未登录,请先

登录

后发表或查看评论

基于SOEM的EtherCat主站程序控制汇川SV660

06-02

LAN8720,DP83848,汇川SV660,SV620,无操作系统STM32F407

基于STM32构建EtherCAT主站(SOEM方案)1

cln512的博客

12-05

1万+

最近两月的周末,本人将SOEM主站移植到了STM32上,在free run模式下运行正常,可以驱动倍福的io从站;在DC模式下存在一些bug,只能驱动一部分的伺服驱动器。

准备在博客上记录一些移植过程,和大家分享一下,肯定会有一些说的不对的地方,欢迎大家批评指正。

整个移植过程其实和将lwip移植到stm32上的方法类似,SOEM主站在设计时就采用了硬件抽象层、操作系统抽象层的架构,因此改一下osal、oshw、nicdrv这几部分的代码就可以了。

当然了,移植过程中参考了许多网上资料(不限于以下几个)。在

STM32F303+LAN9252的EtherCAT实现IO、AD、DA

热门推荐

Taqingjie的博客

10-29

1万+

STM32F303+LAN9252的EtherCAT下位机设计

从去年年末接触EtherCAT总线以来,由于其他一些工作原因,前期设计的基于STM32F303+LAN9252开发板一直未能跑通,仅实现了LAN9252这部分电路与Twincat的通讯,MCU与LAN9252未能成功通信交互数据。近段时间又返回重新开始了这部分内容。终于是将下位机调试成功。之前在选择MCU时考虑很多,最后在网上找到了这样一份答案,选取EtherCAT主控单片机时应选择FLASH在25KB、RAM在32KB以上的MCU,考虑成本

(转载)STM32与LAN9252构建EtherCAT从站

xiahailong90的博客

02-27

9344

EtherCAT Technology Group | 联系方式。使用SSC,可以快速地构建EtherCAT从站代码,保证从站协议栈与最新的EtherCAT协议相匹配,同时还可以生成从站设备描述文件,这是一份XML文件,需要放在TwinCAT安装路径下的目录下,在使用TwinCAT对设备进行组态时需要使用。是EtherCAT从站设计过程中很重要的一个文件,关于从站设备传输多少数据,是否启用分布式时钟,PHY(LAN9252)与MCU之间如何通信等等重要数据都在这个描述文件中定义。

基于stm32构建EtherCAT主站,采用了开源的soem方案

12-05

基于stm32构建EtherCAT主站,将soem方案移植到了stm32上。基本功能测试正常,可以驱动一部分的伺服电机,但也存在一些bug。整体移植方式应该是正确的,具体移植方式将写于CSDN博客中。

EtherCAT主站——SOEM(学习笔记1)

a1347065101的博客

07-14

3767

EtherCAT 是一个以以太网为基础的开放架构的现场总线系统,EtherCAT 数

据部分封装在以太网帧中,主站发送以太网帧在以太网上传输。

基于STM32构建EtherCAT主站(SOEM方案)2

cln512的博客

12-22

1万+

基于stm32构建ethercat主站

soem 学习1

jjinl的专栏

10-04

2624

ethercat主站学习计划,soem源码阅读

SOEM:简单的开源EtherCAT主站

01-30

SOEM:简单的开源EtherCAT主站

ethercat从站stm32程序和使用文档,实现了IO、AD、DA功能。

07-20

2018年暑期自己搞的项目的一部分,包括基于stm32f407的ethercat从站程序以及配套的XML文件。实现了IO、AD、DA功能。在别人已经实现的ethercat从站功能上,我根据智昂的从站板子添加了AD、DA功能。参考了别人的提供的资料,算是踩在了巨人的肩膀上吧。

STM32 EtherCAT 总线型(1 拖 4)步进电机解决方案

YEYUANGEN的专栏

09-20

900

TwinCAT,Codesys,欧姆龙,Trio,SOEM,IGH,Acontis,KPA 等。EtherCAT_Step_Motor_V1.0,四轴步进电机驱动器,单轴驱动最大电流 3A。带步进电机加减速最大 500 转/s²,最高速度 3000 转/min,最低转速 0.001。I10-I12 为电机 4 的数字输入,触发时,对应总线的输入对象字典显示 1、2、4。4pin 端子为步进电机端子,自上到下依次为电机 1、电机 2、电机 3、电机 4。分以上时,电机基本上处于空载状态。数字输入通道导通时,

十四.EtherCAT开发之ST MCU STM32F407ZGt6+ AX58100的开发FOE应用

aiot_bigbear的专栏,关注我获取最新技术文章信息与海量资源~

06-21

2445

STM32F407ZGt6与AX58100是 SPI连接,工作在SPI模式。FoE(File Access over EtherCAT)可实现EtherCAT节点之间的文件传输。

SOEM控制伺服电机方法

最新发布

qq_43530144的博客

01-02

757

之前我写了一个控制伺服的程序,但是方式是错误的,后来也不怎么SOEM了,最近有用到,就重新写了一个测试程序,重新发布一下。我使用的是23位编码器电机。

[工业互联-18]:常见EtherCAT主站方案:SOEM的Windows/Linux解决方案

文火冰糖(王文兵)的博客

07-09

2430

SOEM (Simple Open EtherCAT Master) 是一种开源的EtherCAT主站协议栈。EtherCAT(Ethernet for Control Automation Technology)是一种高性能实时以太网通信技术,用于实现工业自动化领域中的分布式控制系统。SOEM 提供了在PC或嵌入式系统上实现EtherCAT主站功能的软件库。它是一个轻量级的、可定制的协议栈,适用于不同的操作系统平台,例如Linux、Windows和RTOS等。

【FreeRTOS的SOEM-master(1.4.1)移植】

pengrunxin的博客

10-08

3188

工作需要移植soem做EtherCAT主站,就跟大家分享如何移植soem,板块网口一个,实现soem与lwip能共用。

SOEM协议栈代码研读笔记(一)

zhiyaormb的博客

08-20

3068

对EtherCAT开源协议栈SOEM的源代码进行分析和解读

STM32H743 SOEM EtherCAT 基于STM32H743芯片和SOEM的EtherCAT主站介绍

2301_78835236的博客

06-22

805

SOEM的版本1.3.1是指其协议栈的特定版本,每个版本可能会有一些改进和修复。EtherCAT通信协议:我可以解释EtherCAT协议的工作原理、优势和应用场景,并介绍EtherCAT主站和从站的概念。如果您对STM32微控制器系列感兴趣,我可以为您提供更详细的信息,例如不同系列和型号的特点、应用案例和开发方法。如果您对实时以太网通信感兴趣,我可以为您详细介绍实时以太网通信的基本原理、常见协议和在工业自动化中的应用。实时以太网通信:我可以讲解实时以太网通信的基本原理、常见协议和在工业自动化中的应用。

基于stm32的伺服总线ethercat主站设计

12-05

基于STM32的伺服总线EtherCAT主站设计主要包括硬件和软件两个方面。硬件方面,首先要选择STM32系列微控制器作为主控芯片,该系列芯片具有丰富的外设资源和高性能的处理能力。其次,需要添加EtherCAT通信模块,例如ENC28J60芯片,用于实现与EtherCAT从站的通信。还需要加入电源管理模块、驱动器和通信接口等相关硬件电路。在设计时需要注意电路布局的合理性,防止干扰和噪音影响通信稳定性。

软件方面,主要涉及EtherCAT主站协议栈的实现和相应的控制算法开发。首先,需要编写底层驱动程序,完成与硬件的交互,包括通信接口的初始化和配置。然后,搭建EtherCAT主站协议栈,实现与从站的通信。可以选择现有的EtherCAT协议栈,也可以自行开发。同时,针对具体的伺服应用,编写控制算法,实现对从站的控制和监测。最后,进行系统集成和测试。

在基于STM32的伺服总线EtherCAT主站设计过程中,需要充分考虑系统的实时性和稳定性。通过合理的硬件设计和优化的软件算法,能够满足伺服应用的高精度和高性能要求。此外,还要关注系统安全性和可靠性,设计相应的保护机制和故障处理策略,确保系统的正常运行和数据的完整性。

“相关推荐”对你有帮助么?

非常没帮助

没帮助

一般

有帮助

非常有帮助

提交

河狸打捞员

CSDN认证博客专家

CSDN认证企业博客

码龄4年

南京航空航天大学

18

原创

50万+

周排名

10万+

总排名

6万+

访问

等级

392

积分

120

粉丝

168

获赞

50

评论

780

收藏

私信

关注

热门文章

Fluent UDF教程——壁面温度设定,实现动态高斯热源的施加,DEFINE_PROFILE宏讲解

12072

基于STM32的伺服总线EtherCAT主站设计——SOEM方案

7340

基于STM32F407实现离散傅里叶变换(FFT、DFT),计算指定频率的幅值

6255

GD32450Z 液晶RGB-LCD(AT070TN94)调试教程

4287

GD32450Z U盘通信教程——使用USBHS利用内部全速PHY作为USB MSC主机实现U盘通信

4167

分类专栏

电阻抗成像

4篇

CANopen、EtherCAT

4篇

STM32学习

8篇

最新评论

基于STM32的伺服总线EtherCAT主站设计——SOEM方案

河狸打捞员:

从站才需要两个,主站一个网口就够了

基于STM32的伺服总线EtherCAT主站设计——SOEM方案

ZIYOU_1:

stm32只有一个以太网口,etherCAT就无法环形连接,这会有什么问题吗?

基于STM32F429 + ECM-XFU搭建运动控制平台,实现EtherCAT通讯

河狸打捞员:

我是淘宝上买的,ECM XF芯片价位大概是300一片。

基于STM32F429 + ECM-XFU搭建运动控制平台,实现EtherCAT通讯

yeshengwoju:

ECM XF-S看大概多少钱一块啊

基于Fluent的激光熔覆熔池流场仿真——VOF耦合融化凝固模型+源项UDF、二维模型、自由界面

襻枝:

请问多孔区域该怎么设置呢?

您愿意向朋友推荐“博客详情页”吗?

强烈不推荐

不推荐

一般般

推荐

强烈推荐

提交

最新文章

基于Fluent的激光熔覆熔池流场仿真——VOF耦合融化凝固模型+源项UDF、二维模型、自由界面

EtherCAT运动控制——电子凸轮的实现(原理介绍、附代码)

AD导出文件供嘉利创打样及贴片——DRC校验、生产文件导出、嘉利创下单

2023年12篇

2022年6篇

目录

目录

分类专栏

电阻抗成像

4篇

CANopen、EtherCAT

4篇

STM32学习

8篇

目录

评论 10

被折叠的  条评论

为什么被折叠?

到【灌水乐园】发言

查看更多评论

添加红包

祝福语

请填写红包祝福语或标题

红包数量

红包个数最小为10个

红包总金额

红包金额最低5元

余额支付

当前余额3.43元

前往充值 >

需支付:10.00元

取消

确定

下一步

知道了

成就一亿技术人!

领取后你会自动成为博主和红包主的粉丝

规则

hope_wisdom 发出的红包

打赏作者

河狸打捞员

你的鼓励将是我创作的最大动力

¥1

¥2

¥4

¥6

¥10

¥20

扫码支付:¥1

获取中

扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元

使用余额支付

点击重新获取

扫码支付

钱包余额

0

抵扣说明:

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

余额充值

关于EtherCAT主站,你想知道的都在这里! - 知乎

关于EtherCAT主站,你想知道的都在这里! - 知乎首发于ZLG专栏切换模式写文章登录/注册关于EtherCAT主站,你想知道的都在这里!ZLG致远电子为激活更丰富的EtherCAT应用场景和创新产品,ZLG致远电子研发团队推出系统的EtherCAT主站解决方案,本篇将从软硬件方面详细介绍EtherCATNET-100M主站控制设备。EtherCAT是当今主流的高速现场总线解决方案,也是工业4.0智能制造的先进技术核心。现场总线技术适合于大数据量传输,但不适合于测控工程领域中的确定性进程通讯以及高速数据传输。因此,EtherCAT的设计目标是支持标准的以太网,并且能够以最小的硬件成本在实时控制领域开展使用,更新周期快,稳定性高。一、致远电子EtherCAT主站性能如何?EtherCATNET-100M是一款多功能以太网转EtherCAT主站设备,EtherCAT总线传输速率可达100Mb/s,可实现闭环伺服系统的实时控制与实时数据传输,具有高性能、高传输速度、高可靠性通讯等优点。集成2路EtherCAT接口,具有线缆冗余的机能。图1 EtherCATNET-100MEtherCAT主站产品功能特性概览:支持多达32轴同步和1024个EtherCAT I/O应用;运动控制伺服通讯周期不超过500us,I/O主站资料更新周期不超过200us;采用大规模可编程器件FPGA实现专用以太网MAC以优化实时性能; 丰富的外设接口:主站集成1路千兆通用以太网接口、2路专用EtherCAT接口、1路CAN(FD)接口、2路USB2.0接口、1路HDMI接口、1路RS-232接口、1路SD卡接口、2路DI/DO数字输入输出;采用4GB工业级EMMC,掉电非易丢失数据;内置RTC,断电可完成计时或事件记录功能;宽输入9-48V直流供电电压,额定功耗6W;工作温度:-40℃~+85℃。二、主站系统构成EtherCATNET-100M可快速实现EtherCAT主站控制通讯,集成1路千兆通用以太网接口、2路专用EtherCAT接口、1路CAN(FD)接口、1路HDMI接口、1路SD卡接口、2路DI/DO数字输入输出等。丰富的外设接口可实现更智能化的EtherCAT主站控制。图2 主站系统构成三、环型拓扑冗余技术冗余以太网的拓扑结构包括环型、网络型和混合型拓扑,对于一般的工业以太网系统,可直接用较为简单实用的环型拓扑结构。EtherCAT主站提供两路EtherCAT专用网口,在环型拓扑结构中,将LAN1接到从站(ESC)节点1的IN口,然后从站节点1的OUT口接到下一个从站节点的IN口,依次连接,直到最后一个从站节点连接到EtherCAT主站的LAN2口,如下图所示。由于ESC从站控制器具有自动回环功能,当环形结构中出现单点故障时,EtherCAT网络信息流能在故障断点处自动回环,主站仍然可以与各个从站保持数据传输,大大增强了EtherCAT网络的可靠性与可维护性。图3 环型拓扑冗余技术四、搭载HDMI和CANFD接口,满足更多应用需求EtherCATNET-100M设备提供1路HDMI接口,用于与人机界面或PC显示器的接口通信,接口物理形式为HDMI-Type A。HDMI接口特点与电气参数:高清晰、无损压缩的数字信号传输,其分辨率达到1280x720;支持HDMI 2.0向下兼容版本规范;支持EDID和DDC2B标准; 支持热插拔;具有更好抗干扰能力,实现最长10m无增益传输。设备提供1路隔离CAN(FD)接口,接口物理形式为DB9插座。支持CAN波特率40K~5Mbps,支持CAN、CANFD ISO或CANFD Non-ISO多种控制器类型,内置软件设置CAN(FD)通道120欧姆终端电阻使能开关。可高效进行CAN FD总线二次开发,满足多总线应用需求。图4 CANFD接口应用五、化繁为简的函数库EtherCAT主站库以Linux下动态链接库(so)的方式提供,可以实现EtherCAT主站控制等功能。主站可以通过函数库启动主站RPC服务器,RPC客户端可以通过网络连接到主站RPC服务器,控制主站完成EhterCAT相关的功能。函数库包含zecm.h头文件和libzecm.so动态连接库文件。zecm.h文件包含了EtherCAT主站的数据类型,数据结构以及函数声明,用户开发自定义主站需要配置交叉编译环境,将编译好的程序下载到主站上,在主站运行编译后的程序以完成EtherCAT的通信控制功能。图5 丰富的函数库传统复杂的函数,精炼为如下9条简单易用的函数库:EcatMasterLibInit,EtherCAT主站库初始化;EcatMasterLibExit,释放EtherCAT主站库;EcatSimpleStart,启动主站和RPC服务器;EcatSimpleStop,停止主站和RPC服务器;EcatRequestMasterState,发送网络管理命令;EcatGetMasterState,获取主站当前状态;EcatGetSlaveState,获取从站当前状态;EcatSetExtCtrlTaskHandler,设置用户过程数据回调函数;EcatResetExtCtrlTaskHandler,复位用户过程数据回调函数;EcatCoeSDODownload,SDO下载;EcatCoeSDOUpload ,SDO上传。六、技术一图看懂主站运行流程主站可以运行用户编写的程序,主站程序运行一般遵循的流程如下。图6 主站运行流程图发布于 2021-01-13 16:17CAN总线工业互联网/物联网平台物联网​赞同 8​​1 条评论​分享​喜欢​收藏​申请转载​文章被以下专栏收录ZLG专栏工业互联网智慧化产品与解决方案

EtherCAT主站解决方案汇总2019 | Macnica Cytech

EtherCAT主站解决方案汇总2019 | Macnica Cytech

跳转到主要内容

 全球网络 联系我们

Languages

中文簡体

中文繁體

English

Search

Menu

主页

关于我们

公司简介

全球网络

Mpression Solutions

免责声明

隐私政策

产品

Global Product Line

Local Chinese Product Line

ECO System Partner

开发板

Borax SOM

EasyGX Board

EtherCAT 主站芯片方案

EtherCAT 从站 + FOC参考方案

EtherCAT主站解决方案汇总2019

ME10 SoC - 4K AV over 1GbE System on Chip

MIE SoC 模块

SoC Helio 开发板

射频方案

工业相机模块

信息及活动

信息

活动

文章及视频

技术文章

业务联系

联系表格

国内地点

全球地点

社交媒体

 

开发板

EtherCAT主站解决方案汇总2019

 Back to Top

Sidebar Menu

主页

关于我们

公司简介

全球网络

Mpression Solutions

免责声明

隐私政策

产品

Global Product Line

Local Chinese Product Line

ECO System Partner

开发板

Borax SOM

EasyGX Board

EtherCAT 主站芯片方案

EtherCAT 从站 + FOC参考方案

EtherCAT主站解决方案汇总2019

ME10 SoC - 4K AV over 1GbE System on Chip

MIE SoC 模块

SoC Helio 开发板

射频方案

工业相机模块

信息及活动

信息

活动

文章及视频

技术文章

业务联系

联系表格

国内地点

全球地点

社交媒体

EtherCAT主站解决方案汇总2019

EtherCAT主站芯片(Virtual ASSP)方案

 

EtherCAT Master vASSP开发板 

 

EtherCAT主站 PCIE 加速卡 

 

如欲了解更多关于骏龙科技产品和方案的详细信息,请联系骏龙科技各地的代表处,或发邮件至 stonemao@macnica.com

Copyright 2024 Macnica Cytech Limited

粤ICP备2021107379号-1

LoginLogout

网站地图

主页

关于我们

公司简介

全球网络

Mpression Solutions

免责声明

隐私政策

产品

Global Product Line

Local Chinese Product Line

ECO System Partner

开发板

Borax SOM

EasyGX Board

EtherCAT 主站芯片方案

EtherCAT 从站 + FOC参考方案

EtherCAT主站解决方案汇总2019

ME10 SoC - 4K AV over 1GbE System on Chip

MIE SoC 模块

SoC Helio 开发板

射频方案

工业相机模块

信息及活动

信息

活动

文章及视频

技术文章

业务联系

联系表格

国内地点

全球地点

社交媒体

微信平台

FPGA 微信平台

领英 LinkedIn

EtherCAT主站开发“利器”——EC-Master软件协议栈 - 知乎

EtherCAT主站开发“利器”——EC-Master软件协议栈 - 知乎切换模式写文章登录/注册EtherCAT主站开发“利器”——EC-Master软件协议栈盟通科技​已认证账号EtherCAT是一种实时工业以太网技术,其CAT为Control Automation Technology即控制自动化技术的首字母缩写。作为一个基于以太网构筑的现场总线系统,EtherCAT具有高速和低数据丢失率的特点,可以在传输达到100M速率的同时兼具低延时与同步的特点,在要求较高的实时网络通信中是当前流行的重要工业总线。EtherCAT硬件按功能一般可分为主站和从站,相较其他网络通信技术,其从站可以快速接收和发送信息,提高整体通信效率。EtherCAT主站在整个总线网络拓扑的结构和功能中发挥主要作用,操作人员通常在主站设置与发布相应的需求和调度。主站软件程序的平台通用性与能否集成其他通讯协议,也就成为了自动化框架建立者在高标准、易交互与成本可控之间需要仔细衡量的关键指标。传统上出于性能考虑,主站程序运行在RTlinux等非图形化页面的系统上,进而带来了跨系统学习的培养成本。盟通科技在现场总线方案领域拥有近十年的技术沉淀和落地经验,面对国内现场总线需求逐年上升,而专精的网络工程师又确实较少的客观事实,推出了一个全面的EtherCAT主站软件搭建方案——EC-Master。EtherCAT产品开发矩阵示意图01EC-Master协议栈是什么?在介绍EtherCAT协议栈之前,我们需要先了解什么是协议栈。协议栈(Protocol stack),又称协议堆叠,是计算机网络协议套件的一个具体的软件实现。简单来说,协议栈就是计算机网络中各层协议的总和,它形象地反映了一个网络中文件传输的过程。在协议套件中,每个协议通常都是为了一个特定的目的而设计的,这样可以使得设计更容易。因为每个协议模块通常都要和上下两个其他协议模块通信,它们通常可以想象成是协议栈中的层。最低级的协议总是描述与硬件的物理交互,而每个高级的层次则增加更多的特性。用户应用程序只是处理最上层的协议。总的来说,客户可以通过协议栈来减少开发流程提高开发效率。EC-Master是一个旨在帮助有需求的用户降低EtherCAT主站软件开发难度的协议栈,该协议栈由ETG资深会员acontis和盟通科技所开发和代理,能在不同的嵌入式操作系统上运行:包含Linux(带实时和不带实时)、Windows® 7/8/10、VxWorks、QNX、RTX以及其他更多操作系统。为开发人员提供了更多的选择。EC-Master协议栈适配多款处理器,拥有丰富的功能与案例,可以使用多种编程语言来定制化地编辑内核库与需要的功能。为进一步方便开发人员,EC-Master还可以通过对应的可视化模拟软件工具和实时环境搭建工具来降低测试难度和提高可移植性能,可以说,EC-Master是盟通科技发行的一款广受好评的软件产品。EC-Master产品结构图02EC-Master具体功能有哪些?EC-Master完全符合ETG基金会公布的ETG1500 EtherCAT主站规范,它已经可以覆盖许多通用的Ether CAT主站的需求。但是EC-Master还包含了一些其他控制器、机械设备或自动化工厂使用EtherCAT技术时可能需要的其他功能。ETG的1500规范定义了ClassA和ClassB这样两种类型的主站,二者功能EC-Master均可实现:ClassA 标准的EtherCAT主站设备功能◆ 支持EtherCAT网络信息(ENI)配置文件◆ 支持检查在启动过程中对比原始配置和实际网络◆ 支持周期性的过程数据交换◆ 支持CANopen over EtherCAT (CoE)协议:SDO的上传和下载,SDO信息服务(访问CANopen对象字典),紧急情况请求◆ 支持Servo Profile over EtherCAT(SoE)协议◆ 支持Ethernet over EtherCAT(EoE)协议(虚拟交换机)◆ 支持从站与从站之间进行通信◆ 支持Safety over EtherCAT(FSoE)从站◆ 支持对从站的EEPROM和寄存器进行访问◆ 丰富的错误诊断和检测功能◆ 支持分布式时钟(DC)模式同步◆ 支持主站和网络同步(DCM)◆ 支持ADS over EtherCAT(AoE)邮箱协议◆ 支持Transfer over EtherCAT(FoE)邮箱协议◆ 支持Vendor over EtherCAT(VoE)邮箱协议ClassB 最小化的EtherCAT主站设备功能◆ 支持EtherCAT网络信息(ENI)配置文件◆ 支持检查在启动过程中对比原始配置和实际网络◆ 支持周期性的过程数据交换◆ 支持CANopen over EtherCAT (CoE)协议:SDO的上传和下载,SDO信息服务(访问CANopen对象字典),紧急情况请求◆ 支持Servo Profile over EtherCAT(SoE)协议◆ 支持Ethernet over EtherCAT(EoE)协议(虚拟交换机)◆ 支持从站与从站之间进行通信◆ 支持Safety over EtherCAT(FSoE)从站◆ 支持对从站的EEPROM和寄存器进行访问◆ 丰富的错误诊断和检测功能除此之外,EC-Master还有诸如分帧处理、扩展同步、热插拔、线缆冗余、主站冗余、EoE第三方扩展支持工具和UDP Mailbox网关支持等额外功能,这些额外功能进一步扩展了EC-Master的使用场景,更好地帮助了数据传输问题的解决。如有需要,可以与盟通科技联系并进一步地了解更多信息。03EC-Master有什么优势?相较而言,EC-Master对于开源的主站软件开发产品具有更好的稳定性和更多的功能。EC-Master的主要优势如下:◆ 低CPU负载的同时保持高性能进而实现快速的更新速率◆ 适用于多种操作系统◆ 支持的CPU架构有x86(32 位和 64 位)、ARM(32 位和 64 位)和 PowerPC (PPC)◆ 适用于 Intel、德州仪器、ST、Broadcom、Nvidia、Renesas、NXP、Xilinx 和 Infineon 等知名品牌供应商的许多处理器◆ 可靠的售后服务,协助构建完成完整的系统集成方案与基于个性化的自定义控制系统◆ 拥有大量且稳定的落地案例帮助用户参考与使用:例如,EC-Master已部署于KUKA Robot Control以及 Yaskawa、Lenze 和 Omron 等控制器中并实现落地应用。除了主要的优势以外,EC-Master还有更全面的功能、多样化的辅助工具和高性价比的价格等其他客观优势。具体场景与需求各不统一,如需了解更多针对性的方案与相关内容,欢迎大家联系EC-Master的中国指定发行方——盟通科技。专业的技术和商务人员将快速对接各位有需要的朋友,协助EC-Master的落地与应用。04EC-Master的辅助工具有哪些?盟通科技在大中华地区不仅代理发行EC-Master协议栈产品本身,也发行多款配套产品。其中,EC-Win/LxWin是以解决EC-Master实时性需求作为目标的系统级实时解决方案,这个优秀的实时解决方案不仅帮助了对EtherCAT有实时性需求的用户,也帮助了其他用户在Windows系统额外添加实时性功能,通过可视化的管理工具协助客户搭建实施应用环境,并提供了同步测试的功能,显著降低了开发成本。EC-Win实时性解决方案结构图同时,除EC-Win/LxWin解决方案外,在“以人为本,便于人机交互”的指导思想下,EC-Master开发人员同时开发与维护了多款可视化测试应用程序:EC-Engineer——专业的EtherCAT网络配置和诊断工具,EtherCAT从站仅需与运行EC-Engineer的Windows PC或者直接与主站协议栈控制系统相连接,就可以使用EC-Engineer在任何位置“离线”完成EtherCAT的配置工作,或在机器上连接真正的EtherCAT网络实现"在线"操作。该软件存在网页版本——EC-Engineer Web方便用户体验。EC-Engineer应用示意图EC-Simulator——高效的从站模拟仿真工具,EC-Simulator通过仿真EtherCAT从站设备进而实现虚拟化EtherCAT网络,可以做到没有真实的EtherCAT从站硬件的情况下同样可以运行EtherCAT主站应用的效果。EC-Simulator应用示意图EC-Inspector——可靠的EtherCAT通信分析软件,EC-Inspector 是一款从外部分析和监控 EtherCAT 网络数据帧的软件工具。该程序可以独立于主控制器使用,并且可以与任何制造商(Beckhoff,Omron,Bosch-Rexroth,Lenze,acontis等)的EtherCAT主站一起使用。EC-Inspector通过在主站与从站之间插入的TAP设备分析主站和EtherCAT从站之间的完整数据通信。EC-Inspector应用示意图以上软件产品均接受过自动化市场与行业的头部知名企业的严苛挑选,有大量实际应用案例,协助用户更方便、更稳定和更安全地部署EtherCAT服务。EC-Master的更多信息去哪里找?盟通科技作为EC-Master的指定代理发行方,积累了多年的实现项目与解决方案的经验,EC-Master的更多信息,可以在盟通科技的官网找到,客户朋友也可以通过邮箱与电话与专业的技术人员直接高效地交流,来获取更多本地化的方案与信息。官方网址:http://www.motrotech.com邮箱:info@motrotech.com电话:010-62740270发布于 2023-05-26 13:07・IP 属地北京协议栈以太网通信​赞同 1​​添加评论​分享​喜欢​收藏​申请

面向工业机器人通信的EtherCAT主站设计与实时性研究 - 知乎

面向工业机器人通信的EtherCAT主站设计与实时性研究 - 知乎切换模式写文章登录/注册面向工业机器人通信的EtherCAT主站设计与实时性研究北方论文中国知网免费下载academic-res.com论文专利全库随着工业自动化的不断发展,以及网络大数据化、信息化、智能化普及程度的提高,传统工业总线由于存在传输速度慢、兼容性差以及成本高等问题已经无法满足当前工业环境的要求。针对工业机器人通信系统对实时性的高要求,本文基于EtherCAT工业总线提出了一种高性能的、可拓展且成本低廉的主站方案并对主站的实时性展开研究,本文的主要内容如下:首先,研究典型工业机器人控制系统软件架构,提出面向工业机器人通信的EtherCAT主站的功能需求和性能需求。从硬件环境和软件基础架构两个方面对EtherCAT主站进行选型,并针对主站功能需求,提出了 EtherCAT主站软件架构。然后,研究EtherCAT主站系统通信过程,对可能影响主站实时性的因素进行分析,找出制约主站实时性的瓶颈环节。从系统性能、网络程序驱动角度两个角度提出EtherCAT主站实时性的优化策略并进行实现。其次,结合IgH开源协议栈架构和工业机器人设备的类型特点将EtherCAT主站应用程序划分为主站初始化配置任务、伺服设备通信任务以及I/O设备通信任务,在IgH开源协议栈的基础上开发EtherCAT主站应用程序,基于Xenomai共享内存机制开发了主站应用程序与工业机器人软PLC运行系统的通信接口以及与主站配置工具的通信接口。接着,基于Qt开源GUI框架开发主站配置工具。根据EtherCAT主站的需求确定主站配置工具的功能,从主站管理、从站管理、参数配置、通信管理这几个方面,实现主站配置工具最后,设计主站系统测试方案,从功能和性能两个角度验证本文设计的面向工业机器人通信系统的EtherCAT主站的功能完整性和性能优越性,并与同类型的面向工业机器人通信的EtherCAT主站解决方案进行对比。关键词:EtherCAT;Xenomai;实时性;IgH;工业机器人通信系统。专辑:信息科技。专题:自动化技术。学科专业:控制工程(专业学位)。发布于 2023-01-23 12:49・IP 属地山东工业机器人通信EtherCAT总线步进驱动器​赞同​​添加评论​分享​喜欢​收藏​申请

开源IgH EtherCAT主站方案,基于IMX8、ZYNQ、AM335x、T3等平台-腾讯云开发者社区-腾讯云

H EtherCAT主站方案,基于IMX8、ZYNQ、AM335x、T3等平台-腾讯云开发者社区-腾讯云创龙科技Tronlong开源IgH EtherCAT主站方案,基于IMX8、ZYNQ、AM335x、T3等平台原创关注作者腾讯云开发者社区文档建议反馈控制台首页学习活动专区工具TVP最新优惠活动文章/答案/技术大牛搜索搜索关闭发布登录/注册首页学习活动专区工具TVP最新优惠活动返回腾讯云官网创龙科技Tronlong首页学习活动专区工具TVP最新优惠活动返回腾讯云官网社区首页 >专栏 >开源IgH EtherCAT主站方案,基于IMX8、ZYNQ、AM335x、T3等平台开源IgH EtherCAT主站方案,基于IMX8、ZYNQ、AM335x、T3等平台原创创龙科技Tronlong关注修改于 2021-10-12 11:55:063.2K2修改于 2021-10-12 11:55:06举报文章被收录于专栏:FPGA/ARM/DSP技术专栏FPGA/ARM/DSP技术专栏前 言:创龙科技已基于IMX8、ZYNQ、AM5728、AM5708、AM437x、AM335x、T3/A40i等平台提供了开源EtherCAT主站IgH案例。本文档主要演示TLIMX8-EVM评估板基于IgH EtherCAT控制伺服电机方法。如需其他平台相关资料,请与我们联系。本文档适用开发环境:Windows开发环境:Windows 7 64bit、Windows 10 64bitLinux开发环境:Ubuntu 18.04.4 64bit虚拟机:VMware15.1.0Linux SDK:5.4.70_2.3.0Kernel:linux-5.4.70-xenomai-g8d94618-v1.0IgH EtherCAT:ethercat-stable-1.5-gcd0d17d-20210723Xenomai:xenomai-v3.1.1-g8b2052e伺服驱动器:台达ASD-A2-0121-E伺服电机:台达ECMA-C10401GS硬件平台:TLIMX8-EVM评估板(NXP i.MX 8M Mini)IgH EtherCAT为运行于Linux系统的免费开源EtherCAT主站程序,框架如下所示,官方文档:https://www.etherlab.org/download/ethercat/ethercat-1.5.2.pdf。图 1IgH EtherCAT主站通过构建Linux字符设备,应用程序通过对字符设备的访问实现与EtherCAT主站模块的通信。IgH EtherCAT开发包提供EtherCAT工具,该工具提供各种可在Linux用户层运行的命令,可直接实现对从站的访问和设置,如设置从站地址、显示总线配置、显示PDO数据、读写SDO参数等。IgH EtherCAT官网:https://www.etherlab.org/en/ethercat。案例功能:控制伺服电机正转和反转。图 2为便于测试,我司提供已验证的基于Xenomai编译生成的内核镜像文件和设备树镜像文件,位于案例"igh_ethercat_dc_motor\kernel-xenomai\images\linux-5.4.70-xenomai-g8d94618-v1.0\"目录下,请替换至Linux系统启动卡BOOT分区下。同时将linux-5.4.70-xenomai-g8d94618-v1.0目录下的module驱动压缩包5.4.70-g8d94618.tar.gz,解压至Linux系统启动卡rootfs分区"lib/modules/"目录下。备注:如需使用由内核源码重新编译生成的内核镜像文件、设备树文件和modules驱动,请参考Linux系统使用手册将编译的module驱动安装至Linux系统启动卡中,默认安装后module驱动目录为5.4.70。图 3请按下图所示使用网线连接评估板RGMII ETH网口和伺服驱动器A的IN网口,将伺服驱动器A的OUT网口使用网线连接至伺服驱动器B的IN网口。图 4图 5为便于测试,我司提供的经验证的IgH EtherCAT主站程序为案例"igh_ethercat_dc_motor\igh_ethercat\images\ethercat-stable-1.5-gcd0d17d-20210723\"目录下的ethercat-stable-1.5-gcd0d17d-20210723.tar.gz压缩包,在Ubuntu下解压即可得到IgH EtherCAT主站程序文件夹。将IgH EtherCAT主站程序文件夹整个拷贝至评估板文件系统,执行如下命令查询评估板网卡物理地址。本次测试将IgH EtherCAT主站程序文件夹命名为__install。Target# ifconfig图 6执行如下命令,加载驱动模块。Target# insmod /home/root/EtherCAT/__install/modules/ec_master.ko main_devices=ce:bb:9d:3b:d3:6b图 7执行如下命令,拷贝EtherCAT主站相关文件至评估板文件系统。Target# cp /home/root/EtherCAT/__install/etc/sysconfig/ethercat /etc/sysconfigTarget# cp /home/root/EtherCAT/__install/modules/ec_master.ko /lib/modules/5.4.70-g8d94618 //模块驱动名称可通过"uname -r"查看Target# depmod //同步模块依赖关系图 8执行如下命令,启动EtherCAT主站。Target# /home/root/EtherCAT/__install/etc/init.d/ethercat start图 9执行如下命令,加载ec_generic.ko驱动文件。Target# insmod /home/root/EtherCAT/__install/modules/ec_generic.ko图 10执行如下命令,添加IgH动态链接库路径。Target# export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/root/EtherCAT/__install/lib图 11将案例igh_ethercat_dc_motor可执行文件拷贝至评估板文件系统,执行如下命令查看参数信息。Target# ./igh_ethercat_dc_motor --help图 12执行如下命令,控制两台伺服电机同时正转。Target# ./igh_ethercat_dc_motor -d 0图 13图 14按下"Ctrl+C",停止运行程序。图 15执行如下命令,控制两台伺服电机同时反转。Target# ./igh_ethercat_dc_motor -d 1图 16图 17按下"Ctrl+C",停止运行程序。图 18备注:案例设置EtherCAT周期为1.1ms,同时串口循环打印EtherCAT周期的最小值和最大值。参数解析:4.1IgH EtherCAT主站程序编译IgH EtherCAT主站程序的编译需依赖于基于Xemomai生成的内核,请参考Linux系统使用手册将案例"igh_ethercat_dc_motor\kernel-xenomai\src\"目录下的linux-5.4.70-xenomai-g8d94618-v1.0内核源码进行编译后,再编译IgH EtherCAT主站程序。请将案例"igh_ethercat_dc_motor\igh_ethercat\src\"目录下的IgH EtherCAT主站程序开发包ethercat-stable-1.5-gcd0d17d-20210723.tar.gz拷贝至Ubuntu工作目录,执行如下命令进行解压。Host# mkdir EtherCATHost# tar -xvf ethercat-stable-1.5-gcd0d17d-20210723.tar.gz -C EtherCAT/图 19进入解压目录,执行如下命令生成configure文件。Host# ./bootstrap图 20执行如下命令,加载SDK环境变量并进行配置。Host# source /home/tronlong/SDK/environment-setup-aarch64-poky-linuxHost# mkdir __install //创建__install文件夹用于存放生成的文件Host# ./configure --prefix=/home/tronlong/EtherCAT/__install --with-linux-dir=/home/tronlong/kernel-xenomai/ --enable-8139too=no --enable-generic=yes --host=aarch64-poky-linux备注:"/home/tronlong/kernel-xenomai/"为案例提供的内核源码目录。图 21图 22执行如下命令,进行编译。Host# make图 23图 24执行如下命令,编译驱动。Host# make modules图 25图 26执行如下命令,将生成的IgH EtherCAT主站程序安装至指定路径下。Host# make install systemdsystemunitdir=/home/tronlong/EtherCAT/__install图 27图 28执行如下命令,将驱动文件拷贝至"__install/modules/"目录下。Host# mkdir -p __install/modulesHost# cp ./master/ec_master.ko ./__install/modules/Host# cp ./devices/ec_generic.ko ./__install/modules/图 294.2igh_ethercat_dc_motor案例编译igh_ethercat_dc_motor案例的编译需基于IgH EtherCAT主站程序,请先编译IgH EtherCAT主站程序。请将案例"igh_ethercat_dc_motor\src\"目录拷贝至Ubuntu工作目录下,进入src目录执行如下命令修改Makefile相关内容为IgH EtherCAT主站程序对应目录。Host# vi Makefile图 30图 31然后执行如下命令,加载SDK环境变量并进行编译。编译完成后,将在当前目录下生成可执行文件。Host# source /home/tronlong/SDK/environment-setup-aarch64-poky-linuxHost# make图 32图 332.创建域。图 343.配置PDO。图 354.为域注册PDO条目。图 365.激活Master。图 376.修改当前进程优先级。图 387.进入循环周期任务。图 398.在周期任务中设置驱动器操作模式、加速度和减速度,分别发送0x6、0x7、0xF使驱动器处于ON状态。图 409.发送目标速度,转动电机。图 41Xenomai是一个免费开源的Linux平台实时框架,通过使用与Linux内核并行运行的实时协同内核(real-time co-kernel)处理所有对时间要求严格的活动,例如处理中断和调度实时线程。Cobalt core比原生Linux与RT-Linux内核具有更高的优先级。图 42图 436.1编译说明案例使用的Xenomai版本为3.1.1,开发包为案例"igh_ethercat_dc_motor\xenomai\src\"目录下的xenomai-v3.1.1-g8b2052e.tar.gz,将其拷贝至Ubuntu工作目录下,执行如下命令进行解压。Host# mkdir XenomaiHost# tar -xvf xenomai-v3.1.1-g8b2052e.tar.gz -C Xenomai/图 44进入解压目录,执行如下命令在当前目录生成configure文件。Host# ./scripts/bootstrap图 45执行如下命令,加载SDK环境变量并进行配置,请确保已正确安装交叉编译工具。Host# source /home/tronlong/SDK/environment-setup-aarch64-poky-linuxHost# ./configure --build=i686-pc-linux-gnu --host=aarch64-poky-linux --disable-debug --enable-smp --with-core=cobalt图 46图 47Host# mkdir __install //创建__install文件夹用于存放生成的文件Host# make DESTDIR=/home/tronlong/Xenomai/__install install图 48编译完成后,将在__install目录下生成usr文件夹。图 496.2测试说明为便于测试,我司提供的经验证的Xenomai测试程序为案例"igh_ethercat_dc_motor\xenomai\images\xenomai-v3.1.1-g8b2052e\"目录下xenomai-v3.1.1-g8b2052e.tar.gz压缩包,在Ubuntu下解压即可得到Xenomai测试程序文件夹。请使用已替换内核的Linux系统启动卡启动评估板,将Xenomai测试程序文件夹整个拷贝至评估板文件系统,执行如下命令拷贝Xenomai相关文件和设置动态链接库。本次测试将Xenomai测试程序文件夹命名为__install。Target# cp -r Xenomai/__install/usr/xenomai/ /usr/Target# export LD_LIBRARY_PATH=/usr/xenomai/lib:$LD_LIBRARY_PATH图 50Xenomai的测试工具均位于"/usr/xenomai/bin/"目录下,可调用对应测试工具进行测试。图 51使用Cyclictest工具进行实时性能基准测试。Target# echo 0 > /proc/xenomai/latencyTarget# /usr/xenomai/demo/cyclictest -t5 -p98 -m -n图 52表 1 Cyclictest测试结果说明原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。如有侵权,请联系 cloudcommunity@tencent.com 删除。嵌入式armlinux存储接口测试原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。如有侵权,请联系 cloudcommunity@tencent.com 删除。嵌入式armlinux存储接口测试评论登录后参与评论0 条评论热度最新登录 后参与评论推荐阅读LV.关注文章0获赞0相关产品与服务对象存储对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。免费体验产品介绍产品文档COS新用户专享存储包低至1元,新老同享存储容量低至0.02元/GB/月,立即选购!

领券社区专栏文章阅读清单互动问答技术沙龙技术视频团队主页腾讯云TI平台活动自媒体分享计划邀请作者入驻自荐上首页技术竞赛资源技术周刊社区标签开发者手册开发者实验室关于社区规范免责声明联系我们友情链接腾讯云开发者扫码关注腾讯云开发者领取腾讯云代金券热门产品域名注册云服务器区块链服务消息队列网络加速云数据库域名解析云存储视频直播热门推荐人脸识别腾讯会议企业云CDN加速视频通话图像分析MySQL 数据库SSL 证书语音识别更多推荐数据安全负载均衡短信文字识别云点播商标注册小程序开发网站监控数据迁移Copyright © 2013 - 2024 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有 深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569腾讯云计算(北京)有限责任公司 京ICP证150476号 |  京ICP备11018762号 | 京公网安备号11010802020287问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档Copyright © 2013 - 2024 Tencent Cloud.All Rights Reserved. 腾讯云 版权所有登录 后参与评论200

基于赛灵思FPGA板卡的高性能EtherCAT主站方案 | 电子创新网赛灵思社区

基于赛灵思FPGA板卡的高性能EtherCAT主站方案 | 电子创新网赛灵思社区

跳转到主要内容

电子创新网赛灵思社区

Toggle navigation

新闻

视频

技术文章

博客

下载中心

活动

登录

注册

解决方案

汽车

广播与专业A/V

消费类

数据中心

仿真与原型设计

高性能计算

工业

医疗

测试与测量

有线通信

无线通信

产品与工具

ACAP

Ryzen

EPYC

Vitis

reVISION

RFSoc

SDAccel开发环境

SDNet

SDSoC开发环境

UltraFast

UltraScale+

Kintex UltraScale

Artix UltraScale+

Virtex UltraScale

Zynq MPSoC

Vivado

ZYNQ

7系列FPGA

基于赛灵思FPGA板卡的高性能EtherCAT主站方案

judy 在 周三, 08/03/2022 - 16:16 提交

技术背景

EtherCAT 是开放的实时以太网通讯协议,由德国倍福自动化有限公司研发。EtherCAT 具有高性能、低成本、容易使用等特点,目前在工业领域有着广泛的应用。

ZCU102 评估套件可帮助设计人员快速启动面向汽车、工业、视频以及通信应用的设计。该套件具有基于 Xilinx 16nm FinFET+ 可编程逻辑架构的 Zynq UltraScale+ MPSoC 器件,提供一款四核 ARM Cortex-A53、双核 Cortex-R5F 实时处理器以及一款 Mali-400 MP2 图像处理单元。ZCU102 支持所有可实现各种应用开发的主要外设及接口。

KPA EtherCAT 主站是一套质量稳定、知名度和性价比较高的 EtherCAT 协议栈,有较大参考价值。本文将介绍KPA EtherCAT 主站在ZCU102平台的移植与测试。

KPA EtherCAT介绍

  EtherCAT(以太网控制自动化技术)是一种用于确定性以太网的高性能工业通信协议,它扩展了 IEEE 802.3 以太网标准,使得数据传输中具有可预测性定时及高精度同步等特点。这个开放性标 准作为 IEC 61158 的组成部分,常用于机械设计及运动控制等应用中。

01 KPA EtherCAT主站软件介绍

  KPA EtherCAT主站软件根据功能不同,提供了Basic,Standard,Premium以及Extension四个版本主站协议栈,因此除了支持ETG1500定义了Class A和Class B两种主站类型外,KPA还支持一些拓展功能比如:Data- and Frame-Logger(记录数据和报文)、Access Rights(设置不同的访问权限)Multi Master(多主站,冗余)、Cable Redundancy (线缆冗余)、Hot-Connect(热插拔)、其他。

  提供了基于多种不同硬件平台和OS的现成开发包,支持SoC(ARM+FPGA)/ARM/X86 /PowerPC等主流硬件平台,支持Linux(Xenomai/RT-preempt)/ Windows(INtime/RTX)/ QNX/ Ucos/ Vxworks等。几乎满足目前所有用户主站开发要求的一款主站方案。

  KPA主站协议栈采用模块化的架构,可以实现每个特殊的项目应用。它使得主站可以自由扩展以适应不同大小的应用程序、可以移植不同的操作系统和各种各样的硬件平台。每个模块可以单独定制化或者二次开发,而且不会破坏其他模块的完整性。主站结构如下图:

KPA主要功能模块为:

  (1) 应用层:应用层负责与各种不同的编程/配置环境交互,负责与不同的应用或设备交互。确保在应用或过程任务端顺利访问主站功能函数;与主站通过Remote Procedure Calls服务交互,提供了TCP/IP以及UDP连接,比如:通过UDP与从站设备进行mailbox相关的通讯。

  (2) Mailbox Module:EtherCAT主站核心mailbox模块利用不同的协议处理服务数据对象(SDP),数据传输以及数据交换。支持CoE,FoE,EoE,SoE,VoE,AoE等邮箱服务。

  (3) Process Image Module过程映像模块:Process Image简称PI,它的地址是由EtherCAT network information (ENI) 文件提出的,ENI文件可由配置工具KPA Studio自动生成。从控制/过程任务访问过程映像是由主站接口执行的。

  (4) Distribution Clock分布时钟模块:使得所有的EtherCAT设备(包括主站和从站)总是能够共享相同的EtherCAT系统时间。这是通过补偿编译和漂移时间来实现的。

  (5) Frame Schedule Module帧调度模块:不同PDO采用不同的扫描周期。在配置工具KPA Studio里,用户可以单独定义每个从站的扫描速率。帧调度表模块管理EtherCAT帧速率,转发它们到EtherCAT网络驱动。

  (6) OSAL操作系统抽象层模块:包含与操作系统相关的功能函数的包装,比如处理线程、计时器、互斥量等;包括网络适配驱动器模块:从底层的网络实现提取主站堆栈的core核心。

02 KPA EtherCAT Master主站冗余技术

  与其他基于以太网的工业接口不同,EtherCAT使用hop-to-hop通信协议: 数据报文对连接到总线的所有从设备都是通用的,并且它从一个设备传递到另一个设备。主站是管理者,它循环地创建带有读或写请求,输入输出数据报文,并以严格的时间间隔将其发送到总线。每个从站设备可以插入(写入)或提取(读取)明确寻址到它的数据块。

  该功能原本旨在有效地利用总线吞吐量,但对于容错也非常有用:连接到总线的任何设备都完全知道所有从站的活动,并且可以透明地获取或嗅探总线主站和从站之间传输的数据。用户无需修改任何从站设备、添加任何其他信号或更改传输协议,并且此功能不会增加任何成本(除了更智能的主设备)。

  KPA EtherCAT Master 使用此边缘效应将另一个总线主控(或多个主控)引入总线。在正常操作期间, 此冗余主站是被动的,能够嗅探数据但不能输入自己的报文。被动主站被认为是次要的,而活动的主站被认为是主要的。由于所有辅助主站都与总线活动一致,因此当后者失败时,它们随时可以取代主要主站。

另外,为了检测总线上的异常情况,辅助主站可以不需要任何专用控制设备或附加信号线。EtherCAT报文定期、严格地按时间间隔进行。当一个辅助被动主站没有收到他期望的报文时,就知道总线上已经不再有主站了。冗余主站可以立即接管控制,发送自己的报文而没有必要等到当前周期结束。这个报文将是正确的和有意义的,因为辅助主站正在追踪所有的变化,成为有故障主站的替换。

  启用主站冗余的EtherCAT配置包括一个活动的(主站)主设备和一个或多个被动的(辅助)主设备。主设备可能不会配置为Master Redundancy,但最好使用 KPA EtherCAT Master软件来使该技术发挥最大的效用。辅助主站作为影子代理连接到总线。它嗅探传输中的数据报文而没有任何变化。同时,该主站计算每个电报到达的时间并跟踪预期和实际到达时间之间的可能延迟。

03 KPA EtherCAT主站硬件介绍

  主站硬件主要由三部分组成见下图:ZCU102主站开发板以及外扩的FMC网卡。KPA MAC IPcore在PL端构建了FPGA网卡,FreeRTOS master既可以运行在R5 CPU中也可以运行在A53 CPU中,另外需要一台PC通过串口终端来实现操作系统指令输入,PC端上的EtherCAT网络诊断配置工具KPA EtherCAT Studio通过RPC服务连接ZCU102主站板,可以实现对主站和从站的配置,扫描生成网络配置文件。

KPA EtherCAT主站移植

硬件开发板

Xilinx HW-Z1-ZCU102 revision1.1

EtherCAT主站软件开发包

MDK_xilinx-2018.3_freertos_a53_trial_v2.4.48714.0-release.zip

HW_SAMPLE_xilinx-2018.3_freertos_a53_trial_v2.4.48714.0-release.zip

软件编译

将MDK_xilinx-2018.3_freertos_a53_trial_v2.4.48714.0-release.zip解压到mdk_a53文件夹下

进入\mdk_a53\samples路径下修改对应样例程序,此处每个不同的样例程序包含不同的API,具有不同的功能,此处以24_DriveRotationCiA402为例,这是一个简单运行单轴伺服的样例程序,为了适配迈信伺服驱动器,需保持C文件中的描述和ENI文件描述一致,修改后保存

进入\mdk_a53下,打开build.bat,修改编译器路径,路径是xilinx SDK安装路径

运行cmd,进入该路径下,运行build.bat,编译所有样例代码,包括编译24样例,在\build\samples路径下生成24_DriveRotationCiA402.elf文件

创建运行程序

进入mdk_a53\externals\boot路径,根据readme文件以及24_DriveRotationCiA402.bif文件;

拷贝zcu102_freeRTOS内vivado工程生成的design_1_wrapper.bit()文件到该路径下,覆盖原来bit文件;

拷贝zcu102_freertos\project_1\project_1.sdk\fsbl\Release下的fsbl.elf到该路径下,覆盖原来fsbl.elf文件;

拷贝\build\samples路径下生成的24_DriveRotationCiA402.elf到该路径下;

拷贝生成的ENI文件(master.xml)文件到该路径下

打开Xilinx XSCT tool进入到\externals\boot路径下,生成boot.bin

将boot.bin文件拷贝到SD卡中,设置开发板SD卡启动,上电运行

主站性能数据

网络配置:Beckhoff EK1100+EL1004+EL2004+EL6692 (60 bytes frame)。

运行在R5 CP(x32)上测试数据:

运行在A53 CPU(x64)上测试数据:

第三方抓包工具性能分析方法

一般情况下EtherCAT主站性能测试会关注主站通讯周期,circle time是否稳定,抖动多少,因此可以设置在不同的circle time,比如2ms,1ms,500us,250us,125us等条件下测试抖动,可以采用第三方的抓包工具+wireshark进行报文分析,不同主站周期,需要修改代码以及ENI文件的circle time,此处以1ms主站周期,邮箱任务周期是5ms(主站周期的5倍)。

对Wireshark数据包进行针对性分析,设置时间显示格式如下

 使用ecat.ado == 0x130命令,过滤出从站在第几条报文处进入op状态的,这里是33900,意味着33900前的报文不能用于分析circle time,因为pdo数据/周期性数据只在从站进入op后才被发送。

分析周期性报文,注意到每个周期性报文包含三个子报文(逻辑寻址)以及一个DC相关的ARMW命令

 过滤出周期性报文,使用该指令ecat.sub1.cmd == LRD && ecat.sub1.cnt == 0,过滤出子报文1为LRD且计算器值为0(表示从主站发出,未经过从站)的周期性报文,选择三角进行报文排序,可以是从小到大,或者从大到小,最小周期是999.496us。

本文转载自:cechina

EtherCAT

ZCU102

最新文章

如何使用2022.1版本工具链实现ZCU102 USB启动(下)

如何在zcu102板卡上创建DisplayPort 1.4 Tx Subsystem core的pipeline

基于AMD器件的EtherCAT从站方案

Vitis 嵌入式 Linux: Sysroot 和库的用法

在 Xilinx ZCU102 评估套件上实现 NVMe SSD 接口

Multi-scaler的裸机测试流程

本周热帖

AMD 助力新干线运营商 JR 九州 AI 轨道检测解决方案

实现稳健的微控制器到 FPGA SPI 接口:第4部分-双缓冲区

AI 引擎系列 9 - 运行 AI 引擎的完整系统(第一部分)

如何在petalinux环境下将一个USB camera的图像显示到两个显示器上

KR260 DPU配置教程3

热门推荐

每日头条

五大理由|为嵌入式应用选择 AMD Spartan UltraScale+ FPGA

了解该系列器件如何帮助设计人员以低成本推动 I/O 密集型应用产品快速上市

AMD 推出 Spartan UltraScale+ 系列,专为成本敏感型边缘应用打造

Spartan UltraScale+ 器件能为边缘端各种 I/O 密集型应用提供成本效益与高能效性能

延迟开始SEM功能的扫描 (一)

本文介绍如何在Versal器件中推迟XilSEM的扫描工作

利用自适应计算提高电机驱动控制与效率

在本电子书中,您将了解到电机的发展演变,以及可以通过电机控制来处理的性能参数

AMD 助力千视电子 NDI 和 NDI|HX 编解码解决方案

Zynq UltraScale+ MPSoC 有助于解决嵌入式 NDI 编解码器的技术、成本、功耗和其它挑战。

Vivado实现 - 探讨工具可重复性

采用相同工具输入的情况下,Vivado 结果是否可重复?

AI 引擎系列 10 - 运行 AI 引擎的完整系统(第二部分)

在文中,我们将构建系统、分析生成的输出并在硬件仿真中使用 QEMU 运行系统。

“ANY to ANY”,AMD 带给您沉浸式专业视频体验

AMD 为广播及专业多媒体系统提供了广泛的硬件平台。无论是 FPGA、自适应 SoC

--## 电子创新网图库均出自电子创新网,版权归属电子创新网,欢迎其他网站、自媒体使用,使用时请注明“图片来自电子创新网图库”,不过本图库图片仅限于网络文章使用,不得用于其他用途,否则我们保留追诉侵权的权利。 ##--

--电子创新网合作网站--

电机控制系统设计 | Imagination Technologies 中文技术社区 | 电子创新元件网 | 贸泽工程师社区 | 电子创新网赛灵思中文社区 | MCU加油站 | EDA星球

本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

粤ICP备12070055号

EtherCAT主站方案_哔哩哔哩_bilibili

EtherCAT主站方案_哔哩哔哩_bilibili 首页番剧直播游戏中心会员购漫画赛事投稿EtherCAT主站方案

5683

4

2020-04-19 20:43:12

未经作者授权,禁止转载501416420本课程由虹科首席技术工程师陈海焕陈工为我们介绍EtherCAT主站的实现方案以及性能的相关影响因素。本站仅上架部分工业通讯相关课程,如需了解更多,敬请关注公众号【工业通讯】→进入【虹科云课堂】查看更多!五一期间,虹科云课堂往期直播82节课程限时免费回看,更有邀请达人参与抽奖活动等你来!科技科工机械工业通讯协议EtherCAT主站

广州虹科电子

发消息

虹科是工业/汽车/电子/医药/IT/通信等领域的解决方案合作伙伴,www.hkaco.com | 4009993848

关注 1.9万

拒绝低效率学习,高效提高GPA!

接下来播放

自动连播认识工业通讯技术广州虹科电子

4805

0

【工业通讯】EtherCAT&EtherNet/IP基础知识讲解合集广州虹科电子

3.3万

83

EtherCAT IO广州虹科电子

566

1

初识EtherCAT协议-虹科云课堂广州虹科电子

7276

31

【汽车总线技术】UDS诊断基础讲解合集广州虹科电子

7.8万

368

【汽车总线技术】CAN总线技术基础讲解合集广州虹科电子

16.9万

879

什么是SCADA广州虹科电子

2.2万

24

【药品质量与安全】医药产品冷链物流管理和风险控制广州虹科电子

1775

0

【网络安全】网络流量分析技术及方案广州虹科电子

2183

0

【工业物联网】认识工业互联网广州虹科电子

1.4万

14

LGSVL Simulator 一个高保真的自动驾驶仿真器广州虹科电子

1146

0

【工业物联网】IO-Link 工业物联网的现场基础广州虹科电子

1806

0

【工业物联网】OPC与OPC UA基础知识讲解合集广州虹科电子

3.3万

199

【药品质量与安全】冷链药品仓储运输环节的风险识别与控制广州虹科电子

1414

0

CANvas—免费的CAN总线软件广州虹科电子

1205

0

从应用角度来讲讲J1939协议广州虹科电子

3641

3

ntopng安装及基本使用教程广州虹科电子

2159

1

LIN总线简介广州虹科电子

1.6万

7

【工业通讯】TSN时间敏感型网络技术综述广州虹科电子

3872

0

【工业物联网】PLCOpen基础知识讲解合集广州虹科电子

2886

3

展开

小窗

客服

顶部

赛事库 课堂 2021