基于锐华操作系统的EtherCAT主站及实现方法
文献发布时间:2023-06-23 06:30:03
技术领域
本发明涉及嵌入式系统和控制工程实时以太网通讯技术领域,具体地,涉及一种基于锐华操作系统的EtherCAT主站及实现方法。
背景技术
以太网控制自动化技术EtherCAT是一种以以太网为基础的现场总线技术。最早由德国倍福公司开发,后交由ETG(EtherCAT Technology Group,EtherCAT技术组织)组织管理。
专利文献CN110855537A(申请号:CN201911104727.3)公开了一种基于双MCU的EtherCAT主站实现方法及系统,采用两片MCU,一片作为EtherCAT主站,与EtherCAT从站进行交互;另一片用于运动控制,进行人机交互;两片MCU之间通过板间高速总线进行数据交互,且所述的两片MCU均不安装操作系统,自身完成任务调度。
专利文献CN110620712A(申请号:CN201910828722.9)公开了一种Window平台的实时EtherCAT主站实现方法,应用程序接口模块为应用程序提供操作EtherCAT主站协议栈的接口;EtherCAT主站协议栈模块运行于window内核,实现EtherCAT协议,提供周期过程数据和非周期数据的通讯功能;实时性优化模块为周期性过程数据通信提供高精度的定时周期,同时提高该周期性通信任务的实时性。
专利文献CN104702474A(申请号:CN201510107162.X)公开了一种基于FPGA的EtherCAT主站装置,包括EtherCAT总线接口RJ45、网络隔离变压器、PHY芯片、FPGA模块和PCI/ARM扩展接口。FPGA模块通过扩展接口模块接收到CPU传送给FPGA模块的数据,FPGA模块内部的EtherCAT协议驱动模块将CPU的指令数据进行封装和调度,组成数据帧发送给PHY芯片;PHY芯片将其转换为差分信号,发送在EtherCAT网络之中;各个从站收到EtherCAT数据帧后进行相应的处理后返回主站,在经过网络变压器和PHY芯片后,数据帧接收模块接收网络中的数据帧;在EtherCAT协议驱动模块中对数据帧进行解析提取有效数据供CPU来进行读取状态和反馈数据。
EtherCAT主站可以用软件在标准的以太网网卡控制器中实现。目前EtherCAT主站有软件公司如德国的Beckhoff、KPA、Acontis、CODESYS等提供商业化的解决方案,也有开源如Etherlib的igH EtherCAT Master和RT-lib的SOEM(Simple Open EtherCAT Master)方案,但是这些方案都是基于Windows、Linux或者VxWorks、QNX等国外商业化、开源操作系统,无法满足自主可控要求。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种基于锐华操作系统的EtherCAT主站及实现方法。
根据本发明提供的基于锐华操作系统的EtherCAT主站,包括:操作系统、协议库、EtherCAT主站和应用;
所述操作系统和协议库提供基础接口资源;
所述EtherCAT主站依赖协议库和操作系统提供的接口实现主站功能;
所述应用通过调用主站接口,实现主站数据经过操作系统、硬件网卡与EtherCAT从站通讯,从而对从站进行控制目的。
优选的,所述协议库使用EtherCAT协议栈库和xml文件解析库,通过修改操作系统抽象层和硬件抽象层,适配操作系统的接口和以太网络协议栈接口。
优选的,所述EtherCAT主站通过管理任务通过调用xml文件解析库接口解析ENI文件,实现网络的组网配置,调用EtherCAT协议栈库的接口实现主站周期邮箱数据的收发和实时运行数据收发;
所述应用通过调用EtherCAT主站应用接口,实现对主站的管理、网络通讯数据的应用。
优选的,EtherCAT主站配套组网配置工具采用在Windows平台开发的软件工具,解析EtherCAT主站说明文件EMI和从站设备描述文件ESI,生成EtherCAT主站网络配置文件ENI,通过运行在锐华嵌入式操作系统的AutoX Server将工具生成的ENI文件加载到目标板卡,EtherCAT主站启动后解析ENI文件,配置EtherCAT网络。
优选的,EtherCAT专用网卡驱动的网络数据流为数据到达网卡后,网卡触发系统中断,中断处理函数将数据处理放到操作系统以太网络协议栈任务,以太网络协议栈统一调度所有网卡的数据,数据最后再到达EtherCAT协议栈。
优选的,在通用网卡驱动基础上增加网卡数据流控制,在EtherCAT协议栈初始化时,将网卡注册成EtherCAT专用驱动,此时禁掉网卡驱动中断,将网卡数据收发与以太网络协议栈任务解耦,由EtherCAT协议栈直接控制数据收发,当EtherCAT任务退出后,卸载EtherCAT专用驱动,恢复网卡驱动中断,数据由系统以太网协议栈控制,从而恢复普通网卡功能。
优选的,EtherCAT主站管理功能包括创建主站和删除主站;
创建主站包括加载ENI文件,解析网络配置内容并初始化主站参数,参数初始化成功后启动周期任务;
删除主站包括退出周期任务和实时任务,释放系统资源。
根据本发明提供的基于锐华操作系统的EtherCAT主站实现方法,执行EtherCAT周期任务,包括如下步骤:
步骤1:周期任务启动后在网卡中加载EtherCAT驱动,完成EtherCAT网卡改造和初始化;
步骤2:周期性发送广播数据,发送复位从站命令,若从站响应主站命令,即认为发现网络中EtherCAT从站;
步骤3:当扫描到从站信息后,主站将所有从站切换到运行前状态;
步骤4:状态切换成功后根据ENI文件内容配置从站,支持COE协议的使用SDO配置,其他的采用SII接口配置,配置完之后对从站信息再次读取出来,与配置信息进行比较;
步骤5:从站信息配置完成后将从站切换到安全运行状态,实现从站分布时钟的动态调整,这个状态下从站只发送过程数据PDO,不响应PDO数据指令;
步骤6:主站任务管理任务启动实时任务,开始周期收发从站PDO数据,同时将数据转发给应用层;
步骤7:主站将所有从站切换到运行状态,主站开始接收应用层数据发送给从站,并将从站数据转发到应用层;
步骤8:开启主、从站的状态监控,周期性获取从站状态信息、接收应用层的主站控制命令。
优选的,在周期任务中通过邮箱数据服务实时监控从站状态信息,当某从站网络断开连接后,主站通过判断各个从站状态,剔除丢失从站,不影响其他从站运行,同时周期监控网络状态,当从站重新连接上之后,单独复位初始化从站,使从站到达运行状态,实现从站的热插拔功能。
优选的,主从站同步调整包括:
步骤5.1:在实时任务运行之前初始化主站定时器、并设置从站的分布时钟,实时任务运行后,配置主站定时器的定时时间;
步骤5.2:在定时器中断触发后,启动实时任务,实时任务中根据获取到的从站分布式时钟时间、主站当前时间,根据PID算法计算下个周期主站调整时间,并根据主站调整时间计算定时器定时时间;
步骤5.3:重置定时器定时时间;
步骤5.4:循环执行步骤5.2和步骤5.3,实现实时动态调整主站与从站的时钟同步。
与现有技术相比,本发明具有如下的有益效果:
(1)本发明采用了国产嵌入式操作系统,可适配国产龙芯、飞腾等处理器平台板卡,摆脱对国外关键软硬件的依赖;采用纯软件方案节约了硬件成本,同时主站方案可以更为灵活的部署;
(2)本发明扩展了EtherCAT网络热插拔功能,提高了系统的安全性能;开发了PID动态调整主从站同步的方法,实现了软件方案达到硬件实时性能;开发了EtherCAT主站组网配置工具,降低了主站应用开发难度;设计开发专用EtherCAT网卡驱动软件,进一步降低网络抖动、提高主站性能;
(3)本发明提供了自主可控操作系统的基于EtherCAT协议栈接口的EtherCAT主站和配套组网配置工具,在不降低性能的前提下,大幅度降低硬件成本,提升EtherCAT主站部署的灵活性,同时提高主站应用开发的便捷性。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为EtherCAT主站框架图;
图2为通用网卡和EtherCAT专用网卡驱动数据流示意图;
图3为主站管理功能图;
图4为周期任务功能框图;
图5为EtherCAT从站状态机示意图;
图6为实时任务功能框图;
图7为EtherCAT主从站时钟同步方法流程图;
图8为EtherCAT主站组网配置工具功能框图;
图9为EtherCAT主站组网配置工具UI图;
图10为EtherCAT主站设备创建示意图;
图11为EtherCAT主站参数配置示意图;
图12为EtherCAT从站PDO配置示意图;
图13为EtherCAT从站初始化命令配置示意图;
图14为EtherCAT从站变量映射示意图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
实施例:
本发明中基于国产锐华嵌入式实时操作系统的EtherCAT主站框架如图1所示。架构主要分为4部分,从下往上分别为操作系统、协议库、EtherCAT主站、应用,操作系统和协议库提供基础接口资源,EtherCAT主站依赖协议库和操作系统提供的接口,实现主站功能。EtherCAT主站应用通过调用主站接口,实现主站数据经过操作系统、硬件网卡与EtherCAT从站通讯,达到对从站的控制目的操作系统采用锐华嵌入式实时操作系统通用版。协议库使用了EtherCAT协议栈库和xml文件解析库,其中通过修改操作系统抽象层和硬件抽象层,适配操作系统的接口和以太网络协议栈接口。EtherCAT主站通过管理任务通过调用xml文件解析库接口解析ENI文件,实现网络的组网配置,调用EtherCAT协议栈库的接口实现主站周期邮箱数据的收发和实时运行数据收发。应用通过调用EtherCAT主站应用接口,实现对主站的管理、网络通讯数据的应用。
本发明中主站配套组网配置工具为在Windows平台开发的软件工具,可以实现解析EtherCAT主站说明文件EMI(EtherCAT Master Information file,以下简称EMI)和从站设备描述文件ESI,生成EtherCAT主站网络配置文件ENI。通过运行在锐华嵌入式操作系统的AutoX Server可以将工具生成的ENI文件加载到目标板卡,EtherCAT主站启动后解析ENI文件,配置EtherCAT网络。
本发明中的EtherCAT专用网卡驱动方案如下图2。一般通用网卡驱动的网络数据流为数据到达网卡后,网卡触发系统中断,中断处理函数将数据处理放到操作系统以太网络协议栈任务,以太网络协议栈统一调度所有网卡的数据,数据最后再到达EtherCAT协议栈。当多网卡、大数据流量时,实时性要求高的EtherCAT数据就得不到及时调度,导致通讯抖动和数据丢包;本发明中的EtherCAT专用网卡驱动,在通用网卡驱动基础上增加网卡数据流控制,在EtherCAT协议栈初始化时,将网卡注册成EtherCAT专用驱动,此时禁掉网卡驱动中断,将网卡数据收发与以太网络协议栈任务解耦,由EtherCAT协议栈直接控制数据收发,当EtherCAT任务退出后,卸载EtherCAT专用驱动,恢复网卡驱动中断,数据由系统以太网协议栈控制,从而恢复普通网卡功能。
EtherCAT主站方案如下:
EtherCAT主站管理功能如图3所示,主要包括创建主站和删除主站功能。创建主站功能主要是加载ENI文件,解析网络配置内容并初始化主站参数,参数初始化成功后启动周期任务。删除主站功能主要是退出周期任务和实时任务,释放系统资源。
EtherCAT周期任务功能如图4所示,周期任务主要完成EtherCAT的网络中从站的初始化和EtherCAT组网配置。主站主要步骤如下:
步骤1:周期任务启动后会将网卡中加载EtherCAT驱动;完成EtherCAT网卡改造、初始化。
步骤2:网卡初始化后任务会周期性的发送广播数据,发送复位从站命令、从站响应了主站命令,主站即认为发现网络中EtherCAT从站。
步骤3:当扫描到从站信息后,主站会将所有从站切换到Pre Operational状态(EtherCAT从站状态机如图5所示,Pre Operational简称Pre-OP,Safe Operational简称Safe-Op),EtherCAT从站配置需要在Pre-OP阶段。
步骤4:状态切换成功后开始配置所有从站信息,根据ENI文件内容配置从站,支持COE(CANOpen Over EtherCAT)协议的使用SDO(Service Data Object)配置,其他的采用SII(Slave Information Interface)接口配置。配置完之后还会对从站信息,再次读取出来,与配置信息进行比较。
步骤5:从站信息配置完成后会将从站切换到Safe Operational状态,安全运行模式下主要实现从站分布时钟的动态调整,这个状态下从站只发送PDO数据,不响应PDO数据指令;
步骤6:状态切换到Safe Operational成功后,主站任务管理任务启动实时任务,开始周期收发从站PDO数据,同时将数据转发给应用层。
步骤7:主站将所有从站切换到Operational状态,主站开始接收应用层数据发送给从站,并将从站数据转发到应用层。
步骤8:开启主、从站的状态监控。周期性获取从站状态信息、接收应用层的主站控制命令等。
热插拔功能实现:周期任务中通过邮箱数据服务实时监控从站状态信息,当某些从站网络断开连接后,主站通过判断各个从站状态,剔除丢失从站,不影响其他从站运行,同时周期监控网络状态,当从站重新连接上之后,单独复位初始化从站、使从站到达运行状态,实现从站的热插拔功能。
EtherCAT实时任务功能框图如图6所示,实时任务主要是处理EtherCAT应用的过程数据(Process Data Object,以下简称PDO)。实时任务是在主、从站到达SafeOperational之后启动,任务主要是周期性的发送、处理、接收PDO数据,在主站退出或者主站状态改变后,实时任务退出。
动态PID调整的主从站同步方法如图7所示。同步调整是嵌入在实时任务中运行,具体步骤如下:
步骤1:在实时任务运行之前初始化主站定时器、并设置从站的分布时钟。实时任务运行后,配置主站定时器的定时时间。
步骤2:在定时器中断触发后,启动实时任务,实时任务中根据获取到的从站分布式时钟时间、主站当前时间,根据自研PID算法(该算法是输入主站当前时间、从站分布时钟时间、通讯周期、上个周期主站调整周期以及根据系统特性计算的P、I、D参数,计算出下个周期主站时间调整值,目的是实时调整主站数据收发间隔,实现主站与从站的同步)计算下个周期主站调整时间,并根据主站调整时间计算定时器定时时间。
步骤3:重置定时器定时时间。
步骤4:步骤2、步骤3循环执行,实现实时动态调整主站与从站的时钟同步。
EtherCAT主站组网配置工具方案如下:
EtherCAT主站组网配置工具功能框图如图8,是将主站信息文件EMI和从站设备描述文件ESI的信息解析处理,然后根据配置内容生成EtherCAT网络信息文件。工具的UI界面如图9,用户可配置多个主站,同时可配置主站中的网络中拓扑结构、配置主从站网络中从站的PDO参数,从站初始化命令,从站的变量映射等。具体参数配置界面如图10、11、12、13、14。
综上,本发明提供了自主可控操作系统的基于EtherCAT协议栈接口的EtherCAT主站和配套组网配置工具,在不降低性能的前提下,大幅度降低硬件成本,提升EtherCAT主站部署的灵活性,同时提高主站应用开发的便捷性。本发明基于国产自主可控的锐华嵌入式实时操作系统,移植EtherCAT协议栈,并利用协议栈接口二次开发,形成自主可控的EtherCAT主站方案。本发明主站方案是采用纯软件方案,EtherCAT协议栈与操作系统的以太网络协议栈对接,不依赖特定的硬件,只需要实现网卡功能的接口即可作为EtherCAT主站接口。本发明实现了EtherCAT主站的多主站方案,实现有几个网卡接口,即可实现几个主站,主站之间相互独立组网配置。另外本发明主站实现实时监控网络状态,当主从站间网络物理连接断开,重新连接后即可立即重新初始化网络,实现网络热插拔后也可重新连接网络。本发明针对支持分布式时钟的从站,开发出利用系统高精度定时器,实现主站与从站分布式时钟同步的一种同步方式,实现一种PID动态调整的软件同步的方法,通讯周期最短可达100us左右。本发明为提高主站应用开发的便捷性,开发了一套运行在windows平台的组网配置工具,实现解析ETG组织的标准EtherCAT从站ESI文件(Ether CAT Slavedescriptions,以下简称ESI),手动配置EtherCAT网络后,生成ETG组织的标准ENI文件(Ether CAT Network Information File,以下简称ENI)。本发明针对EtherCAT从站数据转发特性和通讯延时短等通讯特点,基于国产自主可控的锐华嵌入式实时操作系统的网卡驱动模型,实现一种EtherCAT专用轮询网卡驱动方案,大幅度降低主站网络抖动、减少EtherCAT数据丢包。
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。
- 一种基于机器人实时操作系统的EtherCAT Igh主站运行方法
- 一种基于PLC的EtherCAT主站系统快速实现方法