一种基于AM64x的EtherCAT主站设计与实时性优化方法

文档序号:37257930发布日期:2024-03-12 20:34阅读:16来源:国知局
一种基于AM64x的EtherCAT主站设计与实时性优化方法

本发明涉及ethercat主站,尤其涉及一种基于am64x的ethercat主站设计与实时性优化方法。


背景技术:

1、随着工业自动化的迅猛发展,现代工业系统对于高效、可靠的数据通信和实时性能的需求不断增加。传统的现场总线虽然在过去的工业自动化应用中发挥了重要作用,但它们的缺点逐步凸显,主要包括:(1)通信速率低,在大规模和复杂的工业系统中,通信速率可能成为瓶颈,影响数据传输和实时性能;(2)数据传输量小,每个周期只能传输有限数量的数据,对于大规模数据采集和实时控制的应用不够灵活;(3)同步性能差,在进行多轴运动控制时,伺服之间同步时间相差较大。

2、随着工业4.0的发展,越来越多的新一代工业通信技术和标准涌现,这些新技术通常具有更高的通信速率、更大的传输距离、更强的抗干扰能力和更好的互联性,逐渐取代了传统现场总线的应用。ethercat由德国beckhoff公司提出,是一种基于以太网的现场总线技术,将以太网的通信能力与实时性能要求相结合,为工业领域提供了一种高效、可靠的数据传输解决方案。它采用了一种特殊的分布式时钟同步机制,使得数据可以以高速和高实时性的方式在网络中传输,理论上能够实现100轴0.1ms的响应时间、小于100us的同步抖动和100mbps的最大传输速率。同时,嵌入式微处理器的性能也不断增强,接口更加丰富,性价比越来越高。而且随着计算机技术的不断发展,开源linux系统以及开源ethercat主站软件越发成熟,便于开发,使得高性能嵌入式实时ethercat主站得以实现。

3、因此,本发明提供一种基于am64x的ethercat主站设计与实时性优化方法,针对传统现场总线在多轴运动控制中存在带宽低、实时性不强、同步性能差的问题,设计实现高性能实时ethercat主站。


技术实现思路

1、针对现有技术存在的技术问题,本发明提供了一种基于am64x的ethercat主站设计与实时性优化方法,结合开源软件应用与优化,设计出成本低、功能全面、实时性强、应用场景广阔的ethercat主站。

2、为实现上述目的,本发明提供如下技术方案:

3、一种基于am64x的ethercat主站设计与实时性优化方法,包括以下步骤:

4、s1、实时linux系统的设计

5、在am64x嵌入式硬件平台中移植linux系统,在linux内核基础上添加xenomai实时内核,并对内核功能进行裁剪,实现系统的实时处理能力;

6、s2、ethercat主站的设计

7、基于s1步骤的实时linux系统,通过移植igh ethercat master开源主站框架,对ethercat总线进行配置实现主站功能,并设计主站应用程序;

8、s3、主站实时性能优化的设计

9、基于s1步骤的实时linux系统和s2步骤的ethercat主站,包括指定cpu核心运行的设计和网卡驱动的设计。

10、优选的,s1步骤中,对内核功能进行裁剪包括功能选择和驱动选择,设定使用最大内存和最大cpu频率运行,屏蔽硬件平台不必要的驱动模块。

11、优选的,s2步骤中,所述ethercat主站采用igh ethercat master开源主站框架,包括主站程序、网卡驱动模块、命令行工具和接口函数支持库,并拥有xenomai应用程序接口。

12、优选的,s2步骤中,设计主站应用程序具体为,在应用层采用coe协议,包括主站配置和周期任务运行。

13、优选的,主站通过sdo向操作模式对象发送数据,通过pdo传输实时数据。

14、优选的,所述主站配置包括创建主站和配置pdo信息,通过调用主站库函数完成。

15、优选的,所述周期任务运行具体为,完成主站配置后启动主站,在应用程序中调用主站提供的xenomai接口函数,创建周期性实时任务。

16、优选的,s3步骤中,所述指定cpu核心运行的设计具体为,

17、通过修改内核参数,指定cpu核心运行主站应用程序,设置中断亲和性,指定中断任务由其它cpu核心处理。

18、优选的,s3步骤中,所述网卡驱动的设计具体为,基于ethercat通用网卡驱动,修改网卡注册过程,更换中断函数,屏蔽网络堆栈接口,修改接收功能。

19、优选的,s3步骤还包括通过分析网口数据帧验证主站的实时性。

20、ethercat主站在以am64x为核心的开发板上移植linux操作系统,使用开源实时内核补丁xenomai进行实时化改造,并移植igh ethercat master开源主站框架,设置am64x其中一个网口工作在ethercat模式,根据从站pdo信息,设计主站应用程序,完成对从站的访问和控制,另一个网口接入局域网进行通信,便于对主站进行远程控制。

21、xenomai实时内核是一个实时扩展框架,它允许在linux操作系统上运行实时应用程序。xenomai的工作原理是通过在linux内核上移植一个实时内核(称为cobalt)来实现实时性。cobalt内核运行在linux内核之上,并与其紧密集成。cobalt通过实时调度器和时钟服务来管理实时任务。实时任务被分配给专用的cpu时间片,以确保它们在给定的时间约束内完成。

22、igh ethercat master开源主站框架由etherlab公司开发,运行在linux系统下,拥有ethercat协议所定义的主站功能,需要自己下载源码编译和安装,通过调用接口函数,就能实现在xenomai内核上调度。

23、igh主站负责网络中的所有控制任务,应用程序通过调用内核空间的主站模块以及用户空间的ethercat工具和函数支持库实现周期任务控制。主站和从站之间通信,在应用层采用coe协议(canopen over ethercat),包含sdo通讯和pdo通讯两种方式。sdo(service data objects,服务数据对象)用来传输低优先级的数据对象,不要求实时性,例如对网络中的设备进行管理和配置。主站通过sdo通信向操作模式对象发送数据。pdo(process data objects,过程数据对象)用来传输实时数据。主站程序通过调用数据域指针,根据地址偏移量完成pdo的读写操作。

24、指定cpu核心运行的设计包括设置内核参数isolcpus,隔离指定的cpu核心,使其脱离内核平衡调度算法;设置内核参数xenomai.supported_cpus,设置所隔离的cpu仅对xenomai支持;设置内核参数irqaffinity=[cpu序号],设置中断亲和性,指定中断任务由其它cpu核心处理;设置内核参数nohz_full=[cpu序号],将所隔离cpu的tick中断关闭,即工作在full dynamic tick模式。

25、igh主站集成有网卡驱动模块,数据报文进入主站被打包成经过修改的以太网帧格式,主站通过网卡发送和接收数据帧。igh支持两种模式的网络驱动:第1种是通用模式的网卡驱动,该模式通过tcp\ip协议栈对接上层提供的socket接口来实现,实时效果比较差,但通用性好,所有网卡都可以使用;第2种是专用网卡驱动,针对一些特定型号的网卡,提供专用驱动,以提升传输速率和降低传输延时。arm开发板中集成的ti网络芯片并没有对应的专用网卡驱动,为了ethercat主站实现更好的实时性能,参照专用网卡驱动对其进行驱动设计。

26、网卡驱动程序设计包括网卡probe时,取消网卡驱动在tcp\ip协议栈上注册,直接注册到ethercat dev上,由ethercat dev管理网卡,主站模块直接控制网卡设备的打开和关闭;其次,ethercat数据帧带有时间戳,可计算出总线上数据帧的传递时间,所以原网卡驱动中的中断函数不再需要,可以改为定时轮询函数,原网卡驱动中对报文的处理任务也不需执行,所有数据直接进入igh主站,由主站程序处理;同时ethercat设备直接传输数据帧,不经过网络堆栈,所以屏蔽网络堆栈接口函数;最后,在发送功能部分,重复利用socketbuffer,减少socket buffer申请释放的时间。修改接收功能部分,将提供给tcp\ip协议栈的接口提供给ecdev。

27、本发明提出一种基于am64x的ethercat主站设计与实时性优化方法,在以am64x为核心的开发板上构建linux操作系统,使用xenomai实时内核对linux系统进行实时化改造,并移植igh ethercat master开源软件框架,实现主站ethercat功能;根据主站接口函数,xenomai应用程序接口,以及从站pdo信息,设计主站应用程序;最后通过修改内核参数,指定cpu核心运行主站应用程序,设置中断亲和性,指定中断任务由其它cpu核心处理,设计网卡驱动程序,大幅提升主站实时性。

28、本发明中,am64x开发板其中一个网口工作在ethercat模式,另一个网口接入局域网进行通信,便于对主站进行远程控制。

29、本发明基于arm核心,具有高集成化、低功耗、价格低廉等特点;基于linux操作系统,具有启动快、可裁剪、免费开源等特点,并且直接断电后对下次启动没有影响;基于开源软件,具有可开发性强、免费等特点。

30、本发明结合嵌入式开发板和各种开源软件,设计出成本低、功能全面、实时性强、应用场景广阔的ethercat主站,能够实现在us级的高速通讯周期下稳定发送ethercat数据帧,并且均值抖动控制在ns级别。

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