一种在EtherCAT主站上扩展从站功能的实现方法与流程

文档序号:41213640发布日期:2025-03-11 13:41阅读:37来源:国知局
一种在EtherCAT主站上扩展从站功能的实现方法与流程

本发明属于ethercat控制领域,具体涉及一种在ethercat主站上扩展从站功能的实现方法,适用于大数据量的采集及数据传输需要同时具备ethercat主站和从站功能的场景。


背景技术:

1、众所周知,ethercat(以太网控制自动化技术)是一个开放架构,以以太网为基础的现场总线系统,其名称的cat为控制自动化技术(control automation technology)字首的缩写。

2、为了实现ethercat的通讯控制管理,通常设有通信连接的主站和从站,现有技术中将ethercat主站和从站实现合一的方法主要是使用高性能、高成本的arm处理器来实现,运行linux系统,igh1.5.2实现ethercat主站功能,结构复杂,功耗高、成本高;或仅使用低成本的mcu实现ethercat从站功能,又或者使用低成本的mcu既实现ethercat主站功能,又实现ethercat从站功能,性能较差且数据量少。

3、为此,本技术人希望寻求技术方案对以上技术问题进行改进。


技术实现思路

1、有鉴于此,本发明的目的在于提出一种在ethercat主站上扩展从站功能的实现方法,实现了ethercat主站的从站扩展功能,且硬件电路设计更为简练;对比于现有技术中使用高性能的arm处理器运行linux系统的实现方式,本发明提供的方案具有降低主处理器负载、主站和从站合一优点;对比于使用mcu实现ethercat主站和从站的方式,本发明提供的方案具有性能更好,功能更多,数据量更大的优点。

2、为此,本发明采用的技术方案如下:

3、一种在ethercat主站上扩展从站功能的实现方法,所述ethercat主站包括用于实现核心控制的cpu芯片,所述cpu芯片移植有主站协议栈,仅用于实现主站功能;其中,

4、从站控制器的mcu移植有两套从站协议栈,其一路以第一从站协议栈连接第一从站控制芯片esc1,所述cpu芯片与所述第一从站控制芯片esc1连接,将从站采集到的数据通过第一从站控制芯片esc1发送至cpu芯片上;

5、所述mcu另一路以第二从站协议栈连接第二从站控制芯片esc2,所述第二从站控制芯片esc2与外部ethercat主站连接,将从站采集的数据通过所述第二从站控制芯片esc2发送至外部ethercat主站,实现所述ethercat主站的从站扩展功能;

6、所述mcu扩展有多路ao和多路can。

7、优选地,所述cpu芯片采用带有mac(media access control)接口的飞腾e2000d处理器;所述主站协议栈使用开源的协议栈igh1.5.2,用于在 linux 操作系统上实现ethercat 主站功能。

8、优选地,所述从站控制器的mcu采用gd32f470处理器;所述第一从站控制芯片esc1和第二从站控制芯片esc2均采用et1100。

9、优选地,所述cpu芯片通过以太网物理层phy芯片与所述第一从站控制芯片esc1连接。

10、优选地,所述第一从站控制芯片esc1和所述第二从站控制芯片esc2分别通过spi( serial peripheral interface,串行外设接口)或mci ( microcontroller interface,微控制器接口)两种模式与所述从站控制器的mcu连接,从站协议栈将该两种模式封装成统一接口,供上层协议直接调用;所述从站控制器的mcu处理ethercat数据帧,并为从站控制装置提供数据接口。

11、优选地,当所述第一从站控制芯片esc1和所述第二从站控制芯片esc2分别通过spi与所述从站控制器的mcu进行通信连接时,通过spihw.c模块实现其底层通信;其中,所述spihw.c模块是指串行模式处理器接口模块,定义了串行模式下的mcu与其对应从站控制芯片esc的通信接口函数,供上层应用通信时调用,完成底层数据的交换。

12、优选地,所述第一从站协议栈和第二从站协议栈相同,从通信层次上分为两层:数据链路层(dl, data link layer)和应用层(al, application layer,其中,所述数据链路层是各从站控制芯片与mcu之间的数据交换层;所述应用层用于实现ethercat协议,包括状态机ecatslv.*处理,周期性的过程数据ecatappl.*处理以及非周期性的邮箱(mailbox.* )数据处理。

13、优选地,所述状态机ecatslv.*处理作为处理ethercat状态机模块,ethercat状态机转换请求由主站发起,主站将请求状态写入a1control寄存器中,从站采用查询的方式获取当前该状态转换的事件,将寄存器值作为参数传入al_controlind()函数中,该函数作为核心函数来处理状态机的转换,根据主站请求的状态配置sm通道的开启或关闭,检查sm通道参数是否配置正确;

14、所述周期性的过程数据ecatappl.*处理作为ethercat从站的应用层al接口以及状态机ecatslv.*和过程数据之间的接口,包括进行main()函数的定义、输入输出程数据对象的映射处理以及各从站控制芯片与mcu本地内存的输入输出过程数据的交换;

15、所述非周期性的邮箱(mailbox.* )数据处理作为处理ethercat邮箱服务模块,包括:邮箱通信接口的初始化和邮箱通道的参数配置,根据当前状态机ecatslv.*来开启或关闭邮箱服务,邮箱通信失败后的邮箱重复发送请求,邮箱数据的读写以及根据主站请求的不同服务类型调用相应服务函数来处理。

16、优选地,在所述外部ethercat主站与本ethercat主站之间的数据交互中,所述外部ethercat主站的刷新txpdo数据流向包括:

17、当外部ethercat主站刷新txpdo时,mcu收到该指令,接收到txpdo的数据,设定为n个字节,这些字节中包含mcu连接到多路ao和多路can的控制,但不直接控制;将其放入到ethercat主站cpu芯片的rxpdo中,等待ethercat主站cpu芯片的rxpdo的刷新,将这些数据传到cpu芯片中;cpu芯片分解这些数据,把mcu上连接多路ao和多路can的控制数据解析出来,通过txpdo传输到mcu扩展的多路ao和多路can上;cpu芯片通过rxpdo把mcu扩展的多路ao和多路can的当前的信息读出。

18、优选地,在所述外部ethercat主站与本ethercat主站之间的数据交互中,所述外部ethercat主站的刷新rxpdo数据流向包括:

19、ethercat主站cpu芯片刷新txpdo把数据发到mcu中;mcu接收到数据后存储下来;当外部ethercat主站刷新rxpdo时,mcu将ethercat主站cpu芯片发来的txpdo的数据传给外部ethercat主站。

20、本发明实现了在高性能ethercat主站(优选采用飞腾e2000d处理器作为其cpu芯片)上扩展从站功能,扩展的从站mcu同时运行两套从站协议栈,一套从站协议栈和ethercat主站的cpu芯片进行主站通信,另一套从站协议栈和外部ethercat主站通信;高性能的cpu板仅用于实现ethercat主站功能,不实现从站协议栈以降低高性能ethercat主站的负载;同时创造性地在mcu上实现双套从站协议栈,可同时给两个主站通信,进而实现了ethercat主站的从站扩展功能,且本技术使得硬件电路设计更为简练;对比于现有技术中使用高性能的arm处理器运行linux系统的实现方式,本发明提供的方案具有降低主处理器负载、主站和从站合一优点;对比于使用mcu实现ethercat主站和从站的方式,本发明提供的方案具有性能更好,功能更多,数据量更大的优点。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1