1 EtherCAT开源协议栈介绍
目前常见开源的主站代码为RT-LAB开发的SOEM(Simple OpenSource EtherCAT Master)和EtherLab的the IgH EtherCAT® Master,SylixOS对两者都支持。其中IgH作为常用的EtherCAT开源协议栈,SylixOS已移植支持。
2 SylixOS-IgH使用框架
SylixOS-IgH的使用尽可能保留了Linux下IgH的使用方式,其中延续了命令行工具的功能,而在应用程序开发方面,借助SylixOS集成开发套件的优势,用户可以更方便编辑、调试基于SylixOS-IgH的应用程序。
SylixOS-IgH主要分为IgH主站协议栈、网络设备驱动、IgH用户层接口库以及用户应用程序。具体介绍如下所述:
2.1 IgH主站协议栈
IgH主站协议栈源代码经编译后是一具体的ec_master.ko内核模块,EtherCAT功能集中实现在该模块中,另外该模块注册之后会在/dev路径下创建一个EtherCAT字符设备,如图 2‑1所示。
图2‑1 /dev路径下的EtherCAT0主站
用户程序操作EtherCAT主站,会通过用户层接口函数最终调用I/O系统的open,ioctl函数完成EtherCAT协议栈的执行。
2.2 网络设备驱动
针对SylixOS-IgH的网络设备驱动源代码经编译后是一具体的内核模块,其中通用网卡驱动模块命名为generic.ko,实时网卡驱动会根据使用网卡型号针对命名