陈奇网络工作室

EtherCAT在SylixOS上的实现

系统运输

1以太网cat开源协议栈简介

目前常见的开源主代码是RT-LAB开发的简单源代码以太网( soem )和以太网的以太网; 师父,SylixOS同时支持这两种。 其中IgH作为常用的EtherCAT开源协议栈,SylixOS已被移植支持。

2 SylixOS-IgH使用框架

SylixOS-IgH的使用尽可能地保留了IgH在Linux上的使用方式,其中继续了命令行工具的功能,但在APP应用开发方面利用了SylixOS集成开发工具包的优势,用户使用了基于SylixOS-IgH的APP包

SylixOS-IgH主要分为IgH主协议栈、网络设备驱动程序、IgH用户层接口库和用户APP应用程序。 具体介绍如下。

2.1 IgH主协议栈

IgH主协议栈的源代码是编译后的具体的ec_master.ko内核模块,EtherCAT功能被集中安装到该模块中,并且,在注册了该模块后,如图21所示

图21 /dev路径中的EtherCAT0主机

当用户程序操作EtherCAT主站时,通过用户层接口函数最终调用I/O系统的open,ioctl函数完成EtherCAT协议栈的执行。

2.2网络设备驱动

用于SylixOS-IgH的网络设备驱动程序源代码编译后是具体的核心模块,其中通用网卡驱动程序模块命名为generic.ko,实时网卡驱动程序例如,e1000e型号的网卡驱动模块是ec_e1000e.ko。 网络设备驱动程序必须在主控模块注册后注册。 主站模块登录后处于孤立状态,请等待网络设备的连接。 注册网络设备驱动程序后,真正的物理网络接口负责发送和接收以太网cat包。 如图22所示,所有内核模块都位于/lib/modules路径下。

图22与22 EtherCAT相关的内核模块

2.2.2通用网卡驱动器

通用网卡驱动程序的实现基于SylixOS现有的LwIP协议完成EtherCAT数据包的收发工作,其实现原理如图23所示。

图23通用网卡驱动实现的基本原理

2.2.2实时网卡驱动

在实际的APP应用场景中,如图24所示,EtherCAT软件主控器组合了实时操作系统和实时网卡驱动。 因为影响实时性的重要因素是操作系统和网卡驱动程序。

图24影响实时性的重要因素

实时操作系统需要按时发送进程数据,其实时性主要体现在周期性地按时调用EtherCAT主协议栈的发送函数,网卡驱动程序也对实时性进行优化,LwIP协议栈需要绕过EtherCAT不需要的网络传输功能,例如进入队列、分片和重组,以避免EtherCAT包按时出发和中途延迟。

2.3 IgH用户层界面

IgH用户层界面源代码编译后是具体的动态库。 IgH源代码将所有对以太网cat主字符设备的“ioctl”操作封装在用户层接口函数中。 由此,用户无需面对IgH协议栈的基础实现,只需要理解IgH用户层接口函数的含义和使用方法。

2.4 IgH用户APP应用程序

这里,如图25所示,将描述SylixOS-IgH主机的三种状态。

图25 IgH主机的状态和迁移

主控模块注册后,主控处于孤立状态; 网络驱动模块注册后,主机处于空闲状态; 在执行用户APP演示时,首先进行主站的请求操作,然后配置子站,建立用户层过程数据与协议栈数据缓冲区的映射关系,最后进行激活主站的操作,主站进入运行状态。 主站进入运行状态后,可以进行周期性的过程数据收发动作。

如图26所示,通过浏览IgH源代码/examples/user/main.c中的程序运行流程,您可以看到使用IgH的主要界面。

图26用户APP流程

3 SylixOS使用步骤

由于SylixOS暂时不支持内核模块注册传入参数的机制,因此如果用户需要使用SylixOS-IgH,请事先选择作为以太网cat数据发送/接收接口的网络设备翼辉信息根据用户硬件平台和网络设备对应的MAC地址提供相应的主内核模块。

1 .如图31所示,用户接收到SylixOS-IgH_USER项目压缩包。

图31 SylixOS-IgH_USER工程压缩包

2 .用户解压缩SylixOS-IgH_USER项目压缩包,然后引入RealEvo-IDE集成开发环境,在项目属性中选择依赖的BASE项目,如图32所示。

图32配置工程属性

3 .选择要上传工程文件的目标设备,如图33所示。

图33选择目标设备的IP地址

4 .工程属性配置完成后,编译工程并放置在目标设备上,如图34所示。

图34在目标设备上部署工程

5 .主从站硬件设备自行开机。 远程登录目标设备,在IgH主内核模块ec_master.ko中注册,然后使用命令行工具验证主设备的状态,如图35所示。

图35登录主站模块,观察主站的状态

6 .然后注册网络设备驱动程序内核模块generic.ko,并使用命令行工具检查主机的状态,如图36所示。

图36登录网络设备驱动程序的模块,观察主机的状态

也可以显示通过" ethercatslaves "命令识别的从设备类型,如图37所示。

图37观察识别从站的状态

7 .如图38所示,激活主控器,发送过程数据,执行使数字量I/O模块的8位输出led1s闪烁1次的IgH测试例程。

图38激活主控器发送过程数据

现在,您已经了解了在SylixOS上使用EtherCAT开源协议栈IgH的基本过程。 有几个应该注意的地方。

使用IgH协议栈时,需要提前预知从设备的拓扑。 APP复制必须根据从站的拓扑预先配置各从站的位置信息、SDO/PDO信息。 主站激活后,将事先预知的配置信息与实际读取从站寄存器获取的信息进行比较,只有一致时从站才会进入OP状态。

SylixOS支持内核模块注册传入参数机制后,用户可根据自己选择的以太网cat消息网络端口修改网络配置文件;

EtherCAT开源协议栈IgH本机仅支持Linux,对SylixOS移植的支持将尽可能保持用户层的相同使用习惯。 另一方面,IgH开放源代码社区提供的资料没有完全说明用户层界面的使用和命令行工具的使用。 暂时SylixOS-IgH也只提供了基本的使用说明,剩下的功能的使用说明将在今后改进。

详情请访问云服务器、域名注册、虚拟主机的问题,请访问西部数码代理商官方网站: www.chenqinet.cn

相关推荐

后台-系统设置-扩展变量-手机广告位-内容页底部广告位3