POWERLINK主站及其创建方法与流程

文档序号:11677388阅读:331来源:国知局
POWERLINK主站及其创建方法与流程

本发明涉及电子通信技术领域,特别涉及一种powerlink主站及其创建方法。



背景技术:

在工业控制行业中,linux操作系统以其免费使用的特点,引起了人们的关注。然而,由于linux操作系统是非实时的,因此在linux操作系统上实现powerlink主站时,powerlink主站与从站之间不能实现实时通信。



技术实现要素:

本发明实施方式解决的问题在于提供一种powerlink主站及其创建方法,使得基于打上xenomai实时内核补丁的实时操作系统的powerlink主站,可以实现powerlink主站和从站之间的实时通信,降低了实时通信的成本。

为解决上述技术问题,本发明的实施方式提供了一种powerlink主站,上述powerlink主站为基于实时操作系统的powerlink主站,且实时操作系统由非实时操作系统linux被打上xenomai实时内核补丁得到;其中,在基于打上xenomai实时内核补丁的实时操作系统的powerlink主站中,所述基于非实时操作系统linux的powerlink主站上的底层模块的驱动接口、事件队列模块的驱动接口、顶层的用户模块的驱动接口均被替换为xenomai实时驱动接口,所述实时驱动接口由xenomai实时操作系统的实时驱动模块提供;所述底层模块包括:网卡驱动模块与共享内存模块。

本发明的实施方式还提供了一种powerlink主站的创建方法,包括:在powerlink主站所基于的非实时操作系统linux上打xenomai实时内核补丁;在所述打xenomai实时内核补丁时,将所述基于非实时操作系统linux的powerlink主站代码中的底层模块的驱动接口、事件队列模块的驱动接口、顶层的用户模块的驱动接口均替换为实时驱动接口,所述实时驱动接口由xenomai实时操作系统的实时驱动模块提供;所述底层模块包括:网卡驱动模块与共享内存模块。

本发明实施方式,为非实时操作系统linux打上xenomai实时内核补丁,同时,基于非实时操作系统linux的powerlink主站上的底层模块的驱动接口、事件队列模块的驱动接口、顶层的用户模块的驱动接口均被替换为xenomai实时驱动接口,其中,实时驱动接口由xenomai实时操作系统的实时驱动模块提供。相对于现有技术而言,本发明实施方式,可以实现powerlink主站与从站之间实现实时通信,降低了实时通信的成本。

另外,powerlink主站还包括信号量、共享资源以及通讯过程中所述信号量与所述共享资源的切换机制;信号量用于指示共享资源的数目;所述切换机制中,powerlink主站根据信号量控制上述共享资源在同一时间仅允许被同一个线程访问。通过预先对信号量的设置,powerlink主站可以控制共享资源在同一时间内仅允许被同一线程访问,即,同一时间内只有一个共享资源可供访问,这样,就可以避免不同线程对同一共享资源的访问。

另外,powerlink主站的系统调用xenomai内核线程;xenomai内核线程运行于所述基于实时操作系统的powerlink主站的操作系统的内核层。由于xenomai系统具有实时性,因此powerlink主站的系统调用xenomai内核线程,有利于提高powerlink主站与从站之间的实时通信。

另外,powerlink主站还包括用户层与内核层;powerlink主站运行在打上xenomai实时内核补丁的实时操作系统的用户层与所述内核层;所述用户层用于访问所述内核层中协议栈的信息;其中,所述协议栈的信息包括所述powerlink总线的运行信息、事件队列、收发数据包数量统计信息。本实施方式通过用户层来访问内核层中协议栈的信息,用户可由此读取内核层中相关的信息,提高了信息传输的实时性。

附图说明

图1是根据本发明第一实施例的powerlink主站结构框图;

图2是根据本发明第二实施例的powerlink主站创建方法的流程示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。

本发明的第一实施方式涉及一种powerlink主站,如图1所示,该powerlink主站指的是基于实时操作系统的powerlink主站,并且,上述实时操作系统由非实时操作系统linux被打上xenomai实时内核补丁得到。其中,在基于打上xenomai实时内核补丁的实时操作系统的powerlink主站中,包括:底层模块、事件队列模块、顶层模块,底层模块具体包括网卡驱动模块与共享内存模块,顶层模块具体包括用户模块,图1中的101、102、103以及104分别为上述模块的实时驱动接口。为powerlink主站所基于的非实时操作系统linux打上xenomai实时内核补丁的过程中,上述各个模块的驱动接口都替换为由xenomai实时操作系统的实时驱动模块(rtdmrealtimedrivermodule)提供的实时驱动接口。

具体地说,powerlink主站还包括信号量、共享资源以及通讯过程中信号量与共享资源的切换机制,其中,信号量用于指示共享资源的数目,信号量的参数可以用一个标志位来具体表示,即,若设置信号量的标志位为1,就代表powerlink主站中只有一个信号量,并且,powerlink主站中信号量与共享资源的数目满足一一对应的关系。即,若设置信号量的标志位为3,则代表powerlink主站中共有三个共享资源可供访问。在工业控制行业中,信号量的标志位通常设置为1,因此,在信号量与共享资源的切换机制中,powerlink主站根据信号量控制共享资源在同一时间内仅允许被同一个线程访问,这样,可以避免不同线程对同一共享资源的访问。

具体地说,powerlink主站启动xenomai内核线程,xenomai内核线程运行于基于实时操作系统的powerlink主站的内核层。由于powerlink主站是基于非实时操作系统linux的,因此为了达到powerlink主站与从站之间实时通信的目的,本发明实施方式提出为powerlink主站所基于的非实时操作系统linux打上xenomai实时内核补丁,其中包括,将powerlink主站所基于的非实时操作系统linux的内核线程替换为xenomai的内核线程,即,powerlink主站运行的是xenomai的内核线程,这样,有利于提高powerlink主站与从站之间的实时通信。

具体地说,powerlink主站还包括用户层与内核层,并且powerlink主站运行在打上xenomai实时内核补丁的实时操作系统的用户层与内核层。其中,用户层用于访问内核层中协议栈的信息,该协议栈的信息包括powerlink总线的运行信息、事件队列、收发数据包数量统计信息。通过用户层可以方便地在powerlink主站内核上访问协议栈的信息,确保了信息传输的实时性。

具体地说,powerlink主站所基于的非实时操作系统为linux操作系统。即,powerlink总站基于linux操作系统,由于linux操作系统为非实时操作系统,因此,本发明实施方式提出为powerlink主站所基于的linux操作系统打上xenomai实时内核补丁,从而,使powerlink总站与从站之间可以实现实时通信,降低了实时通信的成本。

具体地说,powerlink主站还包括数据链路层状态机,其中,数据链路层状态机位于现场可编程门阵列fpga板上。将比较耗时的数据链路层状态机放于fpga(可编程门阵列)板上实现,可以进一步提高信息传输的实时性和响应速度。

例如,首先,将powerlink主站所基于的linux操作系统打上xenomai实时内核补丁;然后,将powerlink主站源代码中用到的linuxapi函数修改替换为xenomaiapi;最后,对powerlink主站源代码进行编译、调试、运行。通过以上操作,基于非实时的linux操作系统的powerlink主站就可以在linux和xenomai实时系统下运行了。

下面以将powerlink主站源码中用到的非实时linux操作系统api替换为实时xenomaiapi为例进行说明:

表1:linuxapi和xenomaiapi对应关系表

在powerlink主站工作时,powerlink主站系统中包含有两个内核线程,分别为第一内核线程和第二内核线程。例如,powerlink主站访问从站时,发送了一些数据包,从站会将这些数据包的相关信息反馈到主站,进而,powerlink主站中的第一内核线程对这些数据包的相关信息进行解析,并根据所解析到的信息判断是否有事件需要执行,若判断结果为确有事件需要执行,这时,启动第二内核线程,让其对待处理事件做进一步的处理。

当完成powerlink主站与从站之间实时的信息传输后,需要首先关闭两个内核线程,进而退出powerlink主站。

值得一提的是,本实施方式中所涉及到的各模块均为逻辑模块,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本发明的创新部分,本实施方式中并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,但这并不表明本实施方式中不存在其它的单元。

本发明实施方式,为非实时操作系统linux打上xenomai实时内核补丁,同时,基于非实时操作系统linux的powerlink主站上的底层模块的驱动接口、事件队列模块的驱动接口、顶层的用户模块的驱动接口均被替换为实时驱动接口,其中,实时驱动接口由xenomai实时操作系统的实时驱动模块提供。相对于现有技术而言,本发明实施方式可以实现powerlink主站与从站之间的实时通信,降低了实时通信的成本。

本发明的第二实施方式涉及一种powerlink主站的创建方法。如图2所示,具体包括:

步骤201:将基于非实时操作系统linux的powerlink主站的内核线程替换为xenomai内核线程。其中,xenomai内核线程运行于powerlink主站的操作系统的内核层中。具体为,初始化xenomai内核线程,同时,调取运行内核线程所需的相关函数,并在linux操作系统的内核层中运行xenomai的内核线程。

步骤202:将基于非实时操作系统linux的powerlink主站代码中的底层模块的驱动接口、事件队列模块的驱动接口、顶层的用户模块的驱动接口均替换为实时驱动接口。具体地说,在为powerlink主站所基于的非实时操作系统linux打xenomai实时内核补丁时,将基于非实时操作系统linux的powerlink主站代码中的底层模块的驱动接口、事件队列模块的驱动接口、顶层的用户模块的驱动接口均替换为实时驱动接口,其中,上述实时驱动接口由xenomai实时操作系统的实时驱动模块提供;其中的底层模块包括:网卡驱动模块与共享内存模块。具体为,调取xenomai实时操作系统的实时驱动接口相关的函数,并用这些相关函数替换掉powerlink主站中各个模块的驱动接口的原函数,经过一些适当的函数形式的修改,就可以在powerlink主站中运行替换后的新的相关函数,从而完成了powerlink主站的各个模块原驱动接口到实时驱动接口的替换。

上面方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包含相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。

不难发现,本实施方式为与第一实施方式相对应的方法实施例,本实施方式可与第一实施方式互相配合实施。第一实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第一实施方式中。

本领域技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。

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