Beckoff的EtherCAT从站代码架构解析

用倍福的从站配置工具得到的源代码有以下

2014/12/26  11:24             1,021 1.TXT

2014/12/26  11:24                 0 2.txt

2012/04/11  20:43            22,131 aoeappl.c

2012/04/11  20:43             1,578 aoeappl.h

2012/04/11  20:43             1,757 bootmode.c

2012/04/11  20:43               749 bootmode.h

2012/04/11  20:43            57,363 cia402appl.c

2012/04/11  20:43            43,902 cia402appl.h

2012/04/11  20:43            50,868 coeappl.c

2012/04/11  20:43             1,755 coeappl.h

2012/04/11  20:43            24,151 diag.c

2012/04/11  20:43             5,746 diag.h

2014/04/08  15:36               337 dirtree.bat

2012/04/11  20:44            20,193 ecataoe.c

2012/04/11  20:44             9,276 ecataoe.h

2012/04/11  20:44            40,417 ecatappl.c

2012/04/11  20:44             6,232 ecatappl.h

2012/04/11  20:44             5,736 ecatcoe.c

2012/04/11  20:44             3,626 ecatcoe.h

2012/04/11  20:44            24,095 ecateoe.c

2012/04/11  20:44             6,926 ecateoe.h

2012/04/11  20:44            15,512 ecatfoe.c

2012/04/11  20:44             7,722 ecatfoe.h

2012/04/11  20:44           101,393 ecatslv.c

2012/04/11  20:44            21,611 ecatslv.h

2012/04/11  20:44             6,467 ecatsoe.c

2012/04/11  20:44             4,006 ecatsoe.h

2013/01/08  13:52            37,184 ecat_def.h

2012/04/11  20:44            17,575 el9800appl.c

2012/04/11  20:44            23,075 el9800appl.h

2012/04/11  20:44            40,016 el9800hw.c

2012/04/11  20:44             8,199 el9800hw.h

2012/04/11  20:44            11,044 emcy.c

2012/04/11  20:44             4,598 emcy.h

2012/04/11  20:44            10,046 eoeappl.c

2012/04/11  20:44             7,605 eoeappl.h

2012/04/11  20:44            19,707 esc.h

2012/04/11  20:44               663 EtherCATSampleLibrary.h

2012/04/11  20:44             9,572 fc1100hw.c

2012/04/11  20:44             4,698 fc1100hw.h

2012/04/11  20:44            13,423 foeappl.c

2012/04/11  20:44             1,813 foeappl.h

2013/01/11  11:08            43,814 mailbox.c

2012/04/11  20:44             6,798 mailbox.h

2012/04/11  20:44            13,035 mcihw.c

2012/04/11  20:44             5,398 mcihw.h

2012/04/11  20:44            65,013 objdef.c

2012/04/11  20:44            10,335 objdef.h

2012/04/11  20:44            10,624 sampleappl.c

2012/04/11  20:44             6,379 sampleappl.h

2012/04/11  20:44            10,555 SampleApplicationInterface.c

2012/04/11  20:44             6,322 SampleApplicationInterface.h

2012/04/11  20:44            65,923 sdoserv.c

2012/04/11  20:44            26,002 sdoserv.h

2012/04/11  20:44           403,968 TcHelper.dll

2012/04/11  20:44               829 TcHelper.h

2012/04/11  20:44             2,406 TcHelper.lib

2012/04/11  20:44            38,440 testappl.c

2012/04/11  20:44            29,615 testappl.h

59 个文件      1,439,244 字节

从站软件协议栈从通信层次上来看分为两层:数据链路层(DL, Data

Link Layer)和应用层(AL,  Application Layer,分别实现EtherCAT协议以

及应用层通讯协议。

数据链路层是ESC与从站微处理器的数据交换层,ESC与从站微处理器

之间可以采用SPI ( Serial Peripheral Interface,串行外设接口)或MCI ( Micro

Controller Interface,微控制器接口)两种模式传输数据,协议栈将两种模式

封装成统一接口,供上层协议直接调用。根据EtherCAT协议对实时性及数

据量的要求,本文选用MCI并行微控制器接口来传送数据,以下功能模块用

于实现底层通信:

Spihw:串行模式处理器接口模块。定义了串行模式下的微处理器与ESC

通信接口函数,供上层应用通信时调用,完成底层数据的交换。

Mcihw:并行控制器接口模块。定义了并行模式下的微控制器与ESC通

信接口函数,供上层应用通信时调用,完成底层数据的交换。

应用层是真正实现EtherCAT协议的部分,包括状态机处理,周期性过

程数据的处理以及非周期性邮箱数据的处理,应用层包括以下功能模块:

Ecatslv:处理EtherCAT状态机模块。状态机转换请求由主站发起,主

站将请求状态写入A1Control寄存器中,从站采用查询的方式获取当前该状

态转换的事件,将寄存器值作为参数传入AL_ControlInd()函数中,该函数作

为核心函数来处理状态机的转换,根据主站请求的状态配置SM通道的开启

或关闭,检查SM通道参数是否配置正确等。

Ecatappl:  EtherCAT从站应用层接口,整个协议栈运行的核心模块,

EtherCAT从站状态机和过程数据接口。Main()函数的定义,输入输出程数据

对象的映射处理,ESC与处理器本地内存的输入输出过程数据的交换等;

Mailbox:处理EtherCAT邮箱服务模块。包括邮箱通信接口的初始化,

邮箱通道的参数配置,根据当前状态机来开启或关闭邮箱服务,邮箱通信失

败后的邮箱重复发送请求,邮箱数据的读写以及根据主站请求的不同服务类

型调用相应服务函数来处理,本文主要研究的是CoE邮箱服务类型的处理。

Ecatcoe:    CoE ( CANopen overEtherCAT)处理函数定义模块。包括CoE

接口的初始化,对当前请求的CoE服务的处理以及对保存而未处理过的CoE

服务的处理。

Sdoserv:    SDO服务处理模块。处理所有SDO及SDO信息服务,包括对

主站发送的上传、下载SDO服务请求的处理,处理完成后SDO响应数据由

主站来主动读取。

Objdef:访问CoE对象字典模块。读写对象字典,获得对象字典的入口,

以及对象字典的具体处理函数由该模块实现。

Coeappl:  CoE服务的应用层接口模块。对CoE服务实际应用的处理以

及CoE对象字典的处理。包括对象字典的初始化,添加对象到对象字典,移

除对象字典中的某一条目以及清除对象字典等处理函数的实现。

时间: 2024-08-01 13:54:07

Beckoff的EtherCAT从站代码架构解析的相关文章

倍福提供的EtherCAT从站代码包解析

用倍福的从站配置工具得到的源代码有以下 1 主要代码 ecatappl.c ecatappl.h Ecatappl:  EtherCAT从站应用层接口,整个协议栈运行的核心模块, EtherCAT从站状态机和过程数据接口.Main()函数的定义,输入输出程数据 对象的映射处理,ESC与处理器本地内存的输入输出过程数据的交换等; ecatslv.c ecatslv.h Ecatslv:处理EtherCAT状态机模块.状态机转换请求由主站发起,主 站将请求状态写入A1Control寄存器中,从站采用

EtherCAT从站代码配置

从站代码配置 参考EtherCATSlave Implementation Guide(EtherCAT从站实施指南)作为从站实施的开始 Beckhoff将从站协议栈代码(SSC)-源代码免费开放给所有ETG会员. EtherCAT从站实施套件也可以从相关供应商获取.EtherCAT从站协议栈可以从倍福官网获取. 图中各设备规范解释如下: FoE:File overEtherCAT; EoE:Ethernetover EtherCAT; SoE:SERCOSover EtherCAT; CoE:

EtherCAT从站代码注释(部分)

整体软件架构 intmain(void) { HW_Init();        /*初始化,包括硬件和A/D.SPI口读写配置*/ MainInit();       /*主函数初始化包含:ESC  和COE   */ bRunApplication = TRUE;      /*处于运行状态标志*/ do { MainLoop();   /*主循环函数,实现周期性和非周期性数据交换*/ } while (bRunApplication == TRUE);  /*检查是否处于运行状态*/ HW

Android bluetooth介绍(二): android 蓝牙代码架构及其uart 到rfcomm流程

关键词:蓝牙blueZ  UART  HCI_UART H4  HCI  L2CAP RFCOMM  版本:基于android4.2之前版本 bluez内核:linux/linux3.08系统:android/android4.1.3.4作者:xubin341719(欢迎转载,请注明作者,请尊重版权谢谢)欢迎指正错误,共同学习.共同进步!!一.Android Bluetooth Architecture蓝牙代码架构部分(google 官方蓝牙框架) Android的蓝牙系统,自下而上包括以下一些

MYSQL 源代码 编译原理 AST和解析树 代码语法解析

MYSQL 源代码 编译原理 AST和解析树 代码语法解析 http://blog.csdn.net/wfp458113181wfp/article/details/17082355 使用AST树 分类:             antlr              2013-12-02 22:39     255人阅读     评论(0)     收藏     举报 目录(?)[+] 第五章使用AST树中间结果来计算表达式值 创建ASTS 第五章.使用AST树中间结果来计算表达式值 现在我们已

[转]毕设- 深入HBase架构解析(一)

深入HBase架构解析(一) 前记 公司内部使用的是MapR版本的Hadoop生态系统,因而从MapR的官网看到了这篇文文章:An In-Depth Look at the HBase Architecture,原本想翻译全文,然而如果翻译就需要各种咬文嚼字,太麻烦,因而本文大部分使用了自己的语言,并且加入了其他资源的参考理解以及本人自己读源码时对其的理解,属于半翻译.半原创吧. HBase架构组成 HBase采用Master/Slave架构搭建集群,它隶属于Hadoop生态系统,由一下类型节点

如何开发EtherCAT从站设备

作为新型工业以太网,EtherCAT网络由于开放性.系统构建成本低和快速性被广泛关注,开发相应的从站设备可以把该网络引入自动化领域,将对自动化传输领域起到很大的推动作用.EtherCAT网络从站设备分为简单从站设备和复杂从站设备,简单从站设备位I/O从站,一般只需要从站接口控制器提供的资源就可以实现,复杂从站控制器则需要应用程序控制器,应用程序控制器完成网络数据的存取和具体应用程序的执行. 在硬件上,主要考虑从站接口控制器的选择和从站应用程序控制器的选择.从站接口控制器可以为ASIC芯片或FPG

理论与实际相结合——三层架构解析

通常在程序编程中我们所说的三层架构是指:显示层(UI).逻辑层(BLL)和数据访问层(DAL).对于这三层来说,分工明确,各自有各自负责的领域. UI层:1.负责向用户显示数据  2.负责采集用户输入的信息 BLL层:1.从DAL获取数据,以供UI显示 2.从UI中获取指令或数据,经业务逻辑送达到DAL DAL层:1.主要用于对数据源的增删改查的操作. 通过它们各自负责的领域我们可以看出,BLL层属于中间层,它负责UI和DAL层之间的通信.那么通常我们还会加入一个实体层(Enity):主要负责返

【Netty】最透彻的Netty原理架构解析

这可能是目前最透彻的Netty原理架构解析 本文基于 Netty 4.1 展开介绍相关理论模型,使用场景,基本组件.整体架构,知其然且知其所以然,希望给大家在实际开发实践.学习开源项目方面提供参考. Netty 是一个异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端. JDK 原生 NIO 程序的问题 JDK 原生也有一套网络应用程序 API,但是存在一系列问题,主要如下: NIO 的类库和 API 繁杂,使用麻烦.你需要熟练掌握 Selector.ServerSoc