igh etherlab主站介绍

一,简单介绍

目前用的最多的开源ethercat主站是igh和soem,igh主站功能更多,结构较为复杂;soem功能相对没有那么完善,实现更为简单一些。
使用场景:主站实现在带有处理器的硬件平台上,带有完整或较为完整的操作系统时用igh;如果主站实现在单片机平台上,则使用soem;igh主站依赖操作系统,而soem很容易可以移植到单片机上。

二,软件结构

我用的最多的是igh,总结一下igh主站软件结构。
igh etherlab主站介绍_第1张图片
bootstrap是一个可执行脚本文件,生成configure配置文件脚本
devices是一个文件夹,里面是ethercat网卡驱动,这是主站组成重要部分
examples文件夹带了很多例子,刚开始可以通过里面的例子进行初步学习
include包含了头文件,里面最重要的是ecrt.h头文件,用户态控制程序调用的函数在这个头文件中都可以找得到
lib文件夹包含用户态功能实现,里面函数最终基本上都会调用ioctl函数,通过这个函数调用内核态主站功能。编译之后这个文件夹下的文件会生成静态库和动态库文件。
master文件夹是整个igh主站的主体,是核心部分,状态机,domain,datagram等实现代码都在这个文件夹下
script中是一些脚本文件,包括开启主站的脚本,配置网卡mac地址和网卡类型的脚本文件等
tool文件夹编译安装之后会生成一个可执行文件,这个文件就是igh主站的命令行工具,包括查看主站信息,从站信息等功能

三,启动流程

我们开启主站用的sudo /etc/init.d/ethercat start命令
sudo是使用超级管理员权限
/etc/init.d/是路径
ethercat是一个脚本文件
start就是开启的意思,除了start,还有关闭stop,重启restart,查看状态是否已经开启status
ethercat脚本文件执行后会加载ethercat网卡驱动和主站设备模块,以网卡类型generic为例
脚本文件首先会判断/etc/sysconfig/ethercat文件是否存在,/etc/sysconfig/ethercat文件有两行代码有用,MASTER0_DEVICE=" “和DEVICE_MODULES=” “,这正是我们配置的mac地址和网卡驱动类型,MASTER0_DEVICE=” “是主站设备模块(ec_master.ko)的参数,DEVICE_MODULES=” "决定加载什么类型的网卡类型驱动模块。
ec_master.ko文件就是master文件夹下的文件编译而成,ec_generic.ko是devices文件夹下的文件编译生成

你可能感兴趣的:(ethercat,ethercat)