EtherCAT的实现和应用 - 从站软硬件设计_ethercat硬件电路设计-程序员宅基地

技术标签: EtherCAT应用  硬件  嵌入式  单片机  

01 从站硬件设计

从站最小系统

EtherCAT的最小系统由MCU、ESC、晶振、EEPROM、PHY芯片和RJ45接口组成。

EtherCAT1

从站应用系统

一般来说我们可以采用MCU + ESC芯片,集成IO控制和电机控制两种从站方案。作为IO从站应用时,可以利用板载的4个LED和4个Button实现IO逻辑功能。而作为Motor从站应用时,可以利用UVW和HALL采样电路驱动BLDC电机。另外还可引出了ADC、DAC、CAN和RS485等扩展接口。

EtherCAT-应用方案

02 从站软件设计

从站栈代码

代码结构

EtherCAT从站栈代码(EtherCAT Slave Stack Code)的代码结构如下图所示,包含ESC内存接口、mailbox(CoE、EoE等等)、DC(Sync)同步功能、过程数据处理、状态机和本地通信应用等结构。其中过程数据的处理使用对象字典,和CoE协议定义的一致。Snipaste_2022-03-21_22-28-35

基础的示例代码可以从官方的SSC Tool获得。Snipaste_2022-03-21_22-31-45

状态机

EtherCAT状态机(ESM,EtherCAT Slave Machine)负责协调主站和从站应用程序在初始化和运行时的状态关系。SSC代码中的ESM在AL_ControlInd()函数实现。EtherCAT设备必须支持四种状态,另外还有一个可选的状态。所有的状态改变都由主站发起。具体可以看《ETG.1000-part 6》应用层协议规范。

名称 简写 描述
Init I 初始化
Pre-Operational P 预运行
Safe-Operational S 安全运行
Operational O 运行
Boot-Strap B 引导状态

image-20220321223404040

ESI从站信息接口文件

EEPROM内容结构

ESC使用EEPROM来存储所需要的设备相关信息,称为从站信息接口SII(Slave Information Interface)。EEPROM的容量为1Kbit ~ 4Mbit,取决于ESC规格。EEPROM内容结构如下图所示。采用字地址,字0~63是必须的基本信息。这些信息都写在XML文件中。

image-20220321223649123

XML文件结构

每个从站都要有一个XML配置文件,XML里定义的对象字典和PDO设置,需要和固件里的对象字典相对应。还记得”概述“里讲到的从站信息文件xml文件吧。 标蓝色的几个部分是主要的配置内容。

image-20220321223739002

下图是XML编辑器转换的视图,关键的对象字典和数据类型都在Devices->Device->Profile元素里。上面部分为制造商信息,下面部分为从站描述信息,包括设备标识、设备名称、接口类型、FMMU通道、SM、过程数据定义、邮箱、分布时钟、EEPROM。

image-20220321223759515

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_40749320/article/details/123648527

智能推荐

论文笔记--DeepFly3D,一种基于深度学习的方法,用于拴住的成年果蝇的3D肢体和附属物追踪_动物行为3d模拟算法-程序员宅基地

文章浏览阅读3k次。没有外部校准模式的校准  从多个图像中估计3D姿势需要校准相机,以达到与目标尺寸相称的精度水平–在测量像果蝇这样小的动物的腿部运动时,这是一个困难的挑战。因此,DeepFly3D没有使用典型的外部校准网格,而是使用苍蝇本身作为校准目标。它检测苍蝇身体上的任意点,并依靠捆绑调整(Chavdarova等人,2018)来同时为这些点分配三维位置,并估计每个摄像头的位置和方向。为了提高鲁棒性,它执行了适用于系留苍蝇的肢体长度和运动范围的几何约束。_动物行为3d模拟算法

未能加载文件或程序集“ExcelHelper”或它的某一个依赖项。试图加载格式不正确的程序。_未能加载文件或程序集“excelreport”或它的某一个依赖项。试图加载格式不正确的-程序员宅基地

文章浏览阅读823次。未能加载文件或程序集“ExcelHelper”或它的某一个依赖项。试图加载格式不正确的程序。说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.BadImageFormatException: 未能加载文件或程序集“ExcelHelper”或它的某一个依赖项。试图加载格式不正确的_未能加载文件或程序集“excelreport”或它的某一个依赖项。试图加载格式不正确的

python中try...except...else...finally_try: 语句1 语句x #该语句会产生异常 语句2 except: 语句3 else: 语句4 f-程序员宅基地

文章浏览阅读267次。python中的try、except、else、finally用法_try: 语句1 语句x #该语句会产生异常 语句2 except: 语句3 else: 语句4 finally:

rosbag文件如何解析出来_ros解析bag-程序员宅基地

文章浏览阅读2.5k次。1、cd xxx/xxxx //进入bag所在路径2、rosbag info xxx.bag //查看rosbag的信息如下图所示:解析数据获得带时间戳的点云数据1、rosrun pcl_ros bag_to_pcd <*.bag> <output_directory>获得带时间戳的图像数据法1如下代码能一次性没有遗漏的解析出全部带有时间戳的图片#coding:utf-8import roslib; import rosbagimport _ros解析bag

linux 查看gz打包文件里的日志_根据时间查询.gz中的日志-程序员宅基地

文章浏览阅读2.8w次,点赞10次,收藏7次。有很多时候我们想要查看日志文件,发现服务器已经被重启了,然后原来的日志就被打包存起来了,这个时候生成的gz日志文件我们就没有办法直接去查看了。 所以这个时候我们就需要zcat+日志名.gz来查看,还可以用 | grep 来进行筛选自己想要的日志信息。..._根据时间查询.gz中的日志

Snort规则入门学习_snort和mtx规则区别-程序员宅基地

文章浏览阅读6.9k次,点赞5次,收藏32次。Snort规则学习入门引言从一条简单的snort规则开始alert tcp any any -> 192.168.1.0/24 111(content:"|00 01 86 a5|";msg:"mountd access";)snort 每条规则都可以分成逻辑上的两个部分:规则头(header)和规则选项(General Option)从开头到括号前属于规则头部分,括号内的部分属于规则选项。规则选项中冒号前面的词叫做选项关键词(option keywords)。如果许多选项组合在一起_snort和mtx规则区别

随便推点

【PCIe总线】-- PCI、PCIE基础知识_pci1x2x-程序员宅基地

文章浏览阅读2.7k次。整理的一部分PCI、PCIe基础知识PCI基础知识: 1.PCI总线的组成:HOST桥、PCI桥、PCI设备、 2.PCI桥的作用可以隔离PCI设备,不影响各条总线的带宽 3.总线x1上的通讯和总线x2上的通讯无关,同一条总线上的设备可以自由通讯; 4.如果PCI桥出现问题,那么PCI桥下的设备之间可以自由通讯但是无法将数据发送到外面 5.PCI的..._pci1x2x

LVM逻辑卷与快照_卷和快照-程序员宅基地

文章浏览阅读2.4k次。简介LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制,它由Heinz Mauelshagen在Linux 2.4内核上实现,Linux用户安装Linux操作系统时遇到的一个常见的难以决定的问题就是如何正确地评估各分区大小,以分配合适的硬盘空间。普通的磁盘分区管理方式在逻辑分区划分好之后就无法改变其大小,当一个逻辑分区存..._卷和快照

HTTP状态码(HTTP Status Code)-程序员宅基地

文章浏览阅读1.9k次。HTTP状态码(HTTP Status Code)是用以表示网页服务器HTTP响应状态的3位数字代码。它由 RFC 2616 规范定义的,并得到RFC 2518、RFC 2817、RFC 2295、RFC 2774、RFC 4918等规范扩展。HTTP: Status 1xx (临时响应)->表示临时响应并需要请求者继续执行操作的状态代码。详细代码及说明:HTTP: Status 1

(建议收藏)计算机网络:TCP-首部格式,序号确认和连接管理习题解析与拓展_当 tcp 接收端要确认一个有效载荷大小 是100b和序列号为800 的数据段时,应该-程序员宅基地

文章浏览阅读3k次,点赞3次,收藏46次。TCP(1)-首部格式,序号确认和连接管理一.单选题(共12题,69.6分)1 关于TCP,以下哪一项描述是错误的A、提供面向字节流传输服务B、因为面向字节流,所示实现过程简单C、提供面向连接传输服务D、实现进程间通信正确答案: B首先要明确一点,TCP确实是面向字节流的,物理层是比特流。意思就是说,在网络里,不管是UDP还是TCP,都是面向字节流的,因为他们都以字节传输。但是TCP要比UDP更加复杂,这里不能说它所示实现过程简单,和UDP比复杂多了。TCP是面向连接的,服务给应用层_当 tcp 接收端要确认一个有效载荷大小 是100b和序列号为800 的数据段时,应该

python是高级语言还是低级语言_作为一名程序员必需知道的术语:高级/低级语言?解释/编译语言?...-程序员宅基地

文章浏览阅读1.3w次。作为一名合格的程序员,你必须知道一些计算机软件编程方面的术语。这次给大家解释一下下面两对常见的术语:高级语言/低级语言、解释语言/编译语言。什么是高级语言/低级语言?1、高级语言我们现在大多数人使用的语言,如C、C++、Python、Java、Matlab、LabVIEW等等,都属于高级语言,相对于低级语言,它更接近于我们平时正常的人思维,其最大的特点是编写容易,代码可读性好。实现同样的功能,使用..._python属于高级语言吗

Button和ImageButton_下列说法错误的是a button和imagebutton都可以实现按钮功能b button没有src-程序员宅基地

文章浏览阅读1.5k次。Button----按钮ImageButton----图片按钮 共有特征:都可以作为一个按钮产生点击事件不同点1、 Button有text的属性,ImageButton没有2、 ImageButton有src属性,Button没有onClick事件Button和ImageButton都有一个onClick事件通过他们自身的.setOnClickListener(_下列说法错误的是a button和imagebutton都可以实现按钮功能b button没有src属

推荐文章

热门文章

相关标签