基于STM32的EtherCAT从站IO讲解
特别说明:
1、这是一个大佬的tao店:1.0 ha:/₴sklPcDGhJOy₤(我是买他的开发板的)
2、源代码设涉及版权问题,所以博客将不提供源码,请大家谅解
3、欢迎大家加我wx:wxk101633 备注:博客 。发布此博客时,正在春节,写得不够好,请大家交流反馈。感谢!!
///
一、基础讲解:
1、EtherCAT从站与EtherCAT主站最大的不同在于:主站完全准寻IP协议的7层网络结构,而从站的物理链路层与主站不同,物理链路层的数据报文格式由倍福公司规定。
2、通常情况下,我们不能使用普通的网卡芯片作为从站的物理链路层;可以使用ET1100、LAN9252、AX58100等协议芯片来实现。
3、这个博客里,我使用的是AX58100芯片,用STM32作为实现应用层的CPU;实现一个16进16出的数字量IO从站。
///
二、从站设备描述文件XML
1、XML文件基础介绍
XML文件是从站设备描述文件,被烧写在从站协议芯片可读写的EEPROM中;AX58100上电后,会从EEPROM中加载相关的配置选项,通过SPI通信与CPU交互,初始化CPU相关资料并初始化通信。
主站则需要根据从站的XML描述文件,发送PDO或SDO数据报文请求读写从站的寄存器。
2、XML文件结构介绍
整体框架如图:
这里重点讲解EtherCATInfo这一栏;Vendor包含设备供应商的描述,Descriptions包含所有设备资源描述,是最重要的地方。
打开Verdor,我们可以通过修改ImageData节点的数据,来修改设备挂载到主站下后的形象:
打开数据节点Descriptions,这里是我们修改自己的数据资源主要地区:
到这里,我将通过具体的例子来讲解如何改写XML文件:(如果不这样,很难描述清楚)
第一步:修改设备挂载后的名字打开Descriptions-->Devices-->Devices-->Type-->Text,这里修改的是,主站设备挂载该从站IO后的默认实例名称;打开Descriptions-->Devices-->Devices-->Name,将内容修改为设备的名称。/第二步:配置各种通信超时时间(通常保持默认,后期主站挂载从站时可以通过主站来调整)打开Descriptions -->Devices-->Device-->Info/第三步:开始创建16路IO映射变量区(重要环节)1、首先,需要想好实际要映射的数据PDO;例如我们要映射16路的数字量输入(Tx)和16路的数字量输出(Rx)。2、先讲解一下,EtherCAT协议规范的PDO数据映射关系:3、注意:AX58100等协议芯片中,数据寄存器的地址是按16位(字)单位偏置的,所以在定义PDO数据报文时,每个PDO报文必须至少传递一个字的数据长度,不足的需要补齐!!4、现在,我们先修改或添加对应PDO的数据类型(如果是DINT INT等标准数据类型,则必须是EtherCAT协议允许的才可以):Descriptions-->Devices-->Device-->Profile-->Dictionary-->DataTypes-->DataType5、类型定义好了,接下来修改对应的PDO报文申明:Descriptions-->Devices-->Device-->Profile-->Dictionary-->Objects-->Object6、申明好PDO数据报文后,接下来我们需要修改SM同步数据通道,将数据映射到父级,协议芯片将从这里开始逐级索引数据报文:Descriptions-->Devices-->Device-->sm、Rxpdo、Txpdo(协议芯片从这里开始加载数据到内核,并从报文中读取数据到内核)7、修改SM内容后,你会发现,父级PDO x1601(Rxpdo)和x1a00 PDO节点的映射内容也发生了改变;所以这些父级节点对应的数据类型与PDO申明也需要修改:(父节点PDO的每个成员是子PDO节点的寄存器地址,32位数据)//第四步:将修改好的XML文件通过twcat软件烧写到协议芯片的EEPROM中。 |
三、STM32应用层代码的修改
实际上,单纯修改XML文件只是可以让协议芯片在于主站交互数据报文时,有一个依据而已,实际需要交互的数据需要有从站的CPU和外设提供,通过SPI与协议芯片交互。所以,我们还需要再STM32程序内驱动对应的硬件设备,并实现spi数据读写交互。
这里只讲解需要修改的部分:第一步:在源代码的el9800app.h中,添加数据节点结构体系列描述:(有四个东西需要创建或修改)第二步:将新创建的PDO节点,加入应用PDO节点管理数据(在源代码的el9800app.h中)第三步:在源代码的el9800app.h中,对应修改1601映射数据管理对象的四个东西第四步:在源代码的el9800app.h中,修改1c12PDO对象,因为1600~1602是映射到1c12上,最终完成主从数据交换的第五步:在el9800appl.c文件中,按照需求为数据节点PDO分配内存空间,用于交互数据第六步:在el9800appl.c文件中,将PDO数据缓存区内容赋值给具体的硬件接口,实现硬件操作第七步:硬件驱动初始化,否则数据也无法在硬件上体现出来 |
基于STM32的EtherCAT从站IO讲解相关推荐
- COMX51 基于 STM32 实现 PROFINET 从站开发
关键词: COMX51 STM32 PROFINET 摘要:comX CA-RE 实时以太网嵌入式模块(如图 1 所示)的主机接口为50根管脚的排针,支持所有主流的实时工业以太网协议(EtherCAT ...
- ethercat从站io输入输出模块,lan9252,stm32f407,提供原理图,源代码及相关资料
ethercat从站io输入输出模块,lan9252,stm32f407,提供原理图,源代码及相关资料 编号:41419628426794133博文丽娜
- 多通路fpga 通信_【论文精选】基于FPGA的EtherCAT从站通信链路分析与验证
原标题:[论文精选]基于FPGA的EtherCAT从站通信链路分析与验证 马保全1,2,姚旺君1,2,刘云龙1,2,张晓莉1,2,黄 兵1,2,赵德政1,2 (1.工业控制系统信息安全技术国家工程实验 ...
- 基于STM32+腾讯云IO+微信小程序设计的混凝土智能养护系统
1. 前言 混凝土是现在建筑工程中非常重要的一个模块,在桥梁.道路.隧道.房子等等的建设上都少不了混凝土的使用:混凝土一般会与钢筋结合使用,作为建筑的承重结构,包括承重墙.楼板等等,需要用到混凝土,而 ...
- 【EtherCAT分析】一、EtherCAT从站硬件分析
原文:https://blog.csdn.net/zhandouhu/article/details/102882356?utm_medium=distribute.pc_relevant_downl ...
- (转载)STM32与LAN9252构建EtherCAT从站
目录 (一):项目简介 EtherCAT及项目简述 LAN9252工作模式 整体开发流程 移植要处理的问题 代码层面的工作 开发中使用的工具 (二):SSC的使用 SSC简介和下载 SSC构建协议栈文 ...
- stm32跑web服务器和协议栈的区别,STM32与LAN9252构建EtherCAT从站(二):使用SSC生成协议栈和XML文件——丁丁的个人网站...
mdi-chevron-left Last:STM32与LAN9252构建EtherCAT从站(一):项目简介 Next:STM32与LAN9252构建EtherCAT从站(三):LAN9252的XM ...
- 基于赫优讯COMX嵌入式模块开发EtherCAT从站设备
摘要:随着实时工业以太网技术的发展,在最新版本的IEC61158 Ed.4标准中已经包含了Profinet,EtherCAT,Ethernet/IP,SERCOS III等11种实时以太网行规集.以n ...
- 基于XMC4800 Ethercat从站的工厂自动化解决方案
背景 随着"工业4.0"与"工业互联网"概念的提出,"互联网+制造"的概念被大众所熟知,人们称之为第四次工业革命.在这样的背景下,新的工业自 ...
最新文章
- matlab中表示拉普拉斯分布_CHAPT1:场论;电磁学和微波学的基本的数学手段和表示...
- win32汇编使用win32 api实现字符串拷贝
- 第二十三模板 18标准模板库
- ML之API:国内外各大人工智能平台(百度云/华为云/阿里云/Face++等)及其API的简介、使用方法之详细攻略
- oracle 对表空间 #039;users#039; 无权限,ORA-01950: 对表空间 'USERS' 无权限
- 《Python机器学习——预测分析核心算法》——2.2 分类问题:用声纳发现未爆炸的水雷...
- linux怎么添加windows引导文件,Linux与Windows 10用grub引导教程
- 虚拟模拟器可以用服务器,云服务器可以用什么模拟器
- Java基础知识清单
- 【JavaScript】多行文本省略,并且判断是否需要省略。
- F.conv2d实现代码
- 百度女程序员半夜打车被司机嘲讽:加班到一点,收入不如我,图啥
- small team
- 电脑开机正常,但显示器没反应怎么办
- 专科生的逆袭之路,比你想象中还要励志
- vue2和elementUI 打造落日余晖登录页和滑块校验
- 网络基础一(物理层)
- fusion 360调整字体大小
- 【财经期刊FM-Radio|2020年11月19日】
- Parse 教程:网络后台基础