掌桥专利:专业的专利平台
掌桥专利
首页

工业以太网协议优化方法、系统及可读存储介质

文献发布时间:2023-06-19 18:30:43


工业以太网协议优化方法、系统及可读存储介质

技术领域

本申请涉及计算机技术领域,尤其涉及一种工业以太网协议优化方法、系统及可读存储介质。

背景技术

工业场景下,如使用PROFINET(自动化总线标准)、EtherCAT(以太网控制自动化技术)、Ethernet/IP(工业以太网通讯协定)等协议进行工业系统控制,为了达到低时延、低抖动等技术要求,工业以太网协议往往需要通过多种技术优化。一是,采用RTOS(实时操作系统Real Time Operating System)对系统的实时性进行保障,即使使用linux等操作系统,也会优先采用xenomai(强实时扩展)、preempt_rt patch(硬实时内核补丁)等,对linux系统的实时性进行增强;二是,采用特殊的体系结构,如Ti的AM3358采用PRU-ICSS(工业通信子系统),其内部优化了CPU(central processing unit CPU)总线访问MAC层的方法,大大地缩短了处理器访问IO设备的周期,从而降低了硬件上带来的抖动与延迟。

增强操作系统的实时性,会大幅度提升以太网工业通讯协议的性能。目前,工业领域内ARM、x86类的处理器较多,操作系统对这两种体系结构优化的比较多,实时性相对较好。而RISC-V是近年来较新的处理器,与ARM相比,实时操作系统从ARM平台或x86平台上移植而来,并未能很好的适配RISC-V。同时,软件流程上也未能充分考虑RISC-V体系结构的特点。所以,综合测试下来,与ARM、x86平台相比,在硬件性能可比的条件下,RISC-V平台运行工业以太网通信的性能水平偏弱。这极不利于RISC-V平台在工业里的推广与应用。

发明内容

本申请的主要目的在于提供一种工业以太网协议优化方法、系统及可读存储介质,旨在解决RISC-V平台运行工业以太网通信的性能水平偏弱的问题。

为实现上述目的,本申请提供一种工业以太网协议优化方法,所述工业以太网协议优化方法应用于RISC-V架构,所述RISC-V架构包括应用程序、操作系统、OpenSBI以及硬件,所述工业以太网协议优化方法包括步骤:

将预设以太网驱动集成在OpenSBI中;

根据预设内存共享机制,虚拟出与应用程序、所述OpenSBI和操作系统相对应的共享内存的访问接口;

根据硬件的类型和所述访问接口,分别设置所述OpenSBI的中断机制以及通讯机制,其中,所述硬件的类型包括单核处理器和多核处理器;

根据所述中断机制和所述通讯机制,控制应用程序和所述OpenSBI进行数据交互。

可选地,根据硬件的类型和所述访问接口,设置所述OpenSBI的中断机制的步骤包括:

在所述硬件的类型为单核处理器,并在所述单核处理器检测到外部中断产生时,切换所述单核处理器的特权模式为机器模式;

在所述机器模式下,根据所述访问接口控制所述单核处理器中的外部中断服务程序处理所述外部中断中的以太网中断;

获取外部中断中除以太网中断之外的其他中断的中断号和参数,并将所述中断号和所述参数发送至软件中断服务程序,控制所述软件中断服务程序处理所述其他中断。

可选地,根据硬件的类型和所述访问接口,设置所述OpenSBI的中断机制的步骤,还包括:

在所述硬件的类型为单核处理器,并在所述单核处理器检测到外部中断产生时,切换所述单核处理器的特权模式为监管者模式;

在所述监管者模式下,根据所述访问接口控制所述单核处理器中的外部中断程序处理所述外部中断中除以太网中断之外的其他中断;

切换所述单核处理器的特权模式为机器模式,响应所述外部中断中的以太网中断;

完成与所述以太网中断相对应的中断服务,并将单核处理器的特权模式切换为用户模式。

可选地,根据硬件的类型和所述访问接口,设置所述OpenSBI的通讯机制的步骤包括:

在所述硬件类型为单核处理器时,根据所述访问接口控制应用程序关闭所述OpenSBI中的与所述以太网中断相对应的服务程序,并控制所述OpenSBI停止对所述共享内存的访问。

可选地,根据硬件的类型和所述访问接口,设置所述OpenSBI的中断机制的步骤,还包括:

在所述硬件类型为多核处理器,且在所述多核处理器检测到外部中断产生时,控制所述外部中断中的以太网中断发送至所述多核处理器中的任意一个特权模式为机器模式的内核进行处理;

控制所述外部中断中除所述以太网中断之外的其他中断发送至所述多核处理器中任意一个特权模式为监管者模式的内核进行处理。

可选地,根据硬件的类型和所述访问接口,设置所述OpenSBI的通讯机制的步骤包括:

在所述硬件类型为多核处理器时,控制所述操作系统建立与所述共享内存相对应的锁;

根据所述访问接口控制所述应用程序、所述操作系统和所述OpenSBI执行获取所述锁的服务程序,并通过操作系统判断所述应用程序是否获得所述锁;

若所述应用程序获得所述锁,则将所述锁反馈至所述应用程序。

可选地,所述根据所述访问接口控制所述应用程序执行获取所述锁的服务程序,并通过操作系统判断所述应用程序是否获得所述锁的步骤之后,还包括:

若所述应用程序未获得所述锁,则控制所述操作系统将所述多核处理器的执行权调度到其他已获得所述锁的待执行应用程序,并控制所述应用程序的状态切换为睡眠状态。

可选地,根据硬件的类型和所述访问接口,设置所述OpenSBI的通讯机制的步骤,还包括:

控制所述应用程序、所述操作系统和所述OpenSBI执行释放所述锁的服务程序,并将所述锁的状态以及待执行应用程序反馈至所述操作系统;

控制所述操作系统将所述待执行应用程序的状态切换为就绪态,并控制所述多核处理器执行所述待执行应用程序。

此外,为实现上述目的,本发明还提供一种工业以太网协议优化系统,其特征在于,所述工业以太网协议优化系统包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的工业以太网协议优化程序,所述工业以太网协议优化程序被所述处理器执行时实现如上述的工业以太网协议优化方法的步骤。

此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有工业以太网协议优化程序,所述工业以太网协议优化程序被处理器执行时实现如上所述的工业以太网协议优化方法的步骤。

本发明提供一种工业以太网协议优化方法、系统及可读存储介质,所述工业以太网协议优化方法包括步骤:将预设以太网驱动集成在OpenSBI中;根据预设内存共享机制,虚拟出与应用程序、所述OpenSBI和操作系统相对应的共享内存的访问接口;根据硬件的类型和所述访问接口,分别设置所述OpenSBI的中断机制以及通讯机制,其中,所述硬件的类型包括单核处理器和多核处理器;根据所述中断机制和所述通讯机制,控制应用程序和所述OpenSBI进行数据交互。通过上述方法,本发明能够利用RISC-V体系结构的特点,将以太网驱动直接放入OpenSBI中执行,绕过操作系统的机制,用户程序与OpenSBI中的以太网驱动直接交互,可以极大缩短IO的处理时间与数据的迁移时间,不受操作系统机制的影响,增强了工业以太网通讯协议的实时性。使得工业以太网在RISC-V体系结构中的通讯能力大幅度提高,利于RISC-V平台在工业里的推广与应用。

附图说明

图1是本发明工业以太网协议优化方法实施例方案涉及的硬件运行环境的结构示意图;

图2是本发明工业以太网协议优化方法中一实施例的流程示意图;

图3是本发明工业以太网协议优化方法中RISC-V架构的结构示意图;

图4是现有RISC-V架构的结构示意图;

图5是本发明工业以太网协议优化方法一实施例中步骤S30的细化流程示意图;

图6是本发明工业以太网协议优化方法一实施例中步骤S30的另一细化流程示意图。

本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

如图1所示,图1是本发明实施例方案涉及的硬件运行环境的终端结构示意图。

本发明实施例终端为工业以太网协议优化系统。

如图1所示,该终端可以包括:处理器1001,例如CPU,通信总线1002,用户接口1003,DVI接口1004,USB接口1005,存储器1006。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选的用户接口1003还可以包括标准的有线接口、无线接口。DVI接口1004可选的可以包括标准的有线接口,通过DVI线与其他外部设备连接。USB接口1005可选的可以包括标准的有线接口,通过USB连接线与其他外部设备连接。存储器1006可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1006可选的还可以是独立于前述处理器1001的存储装置。

可选地,终端还可以包括音频电路等等,在此不再赘述。

本领域技术人员可以理解,图1中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

如图1所示,作为一种计算机存储介质的存储器1006中可以包括操作系统、DVI接口模块、USB接口模块、用户接口模块以及工业以太网协议优化程序。

在图1所示的终端中,DVI接口1004主要用于连接外部设备,与外部设备进行数据通信;USB接口1005主要用于连接外部设备,与外部设备进行数据通信;用户接口1003主要用于连接客户端,与客户端进行数据通信;而处理器1001可以用于调用存储器1006中存储的工业以太网协议优化程序,并执行以下操作:

将预设以太网驱动集成在OpenSBI中;

根据预设内存共享机制,虚拟出与应用层、所述OpenSBI和操作系统相对应的共享内存的访问接口;

根据硬件的类型和所述访问接口,分别设置所述OpenSBI的中断机制以及通讯机制,其中,所述硬件的类型包括单核处理器和多核处理器;

根据所述中断机制和所述通讯机制,控制应用层和所述OpenSBI进行数据交互。

进一步地,处理器1001可以调用存储器1006中存储的工业以太网协议优化程序,还执行以下操作:

在所述硬件的类型为单核处理器,并在所述单核处理器检测到外部中断产生时,切换所述单核处理器的特权模式为机器模式;

在所述机器模式下,根据所述访问接口控制所述单核处理器中的外部中断服务程序处理所述外部中断中的以太网中断;

获取外部中断中除以太网中断之外的其他中断的中断号和参数,并将所述中断号和所述参数发送至软件中断服务程序,控制所述软件中断服务程序处理所述其他中断。

进一步地,处理器1001可以调用存储器1006中存储的工业以太网协议优化程序,还执行以下操作:

在所述硬件的类型为单核处理器,并在所述单核处理器检测到外部中断产生时,切换所述单核处理器的特权模式为监管者模式;

在所述监管者模式下,根据所述访问接口控制所述单核处理器中的外部中断程序处理所述外部中断中除以太网中断之外的其他中断;

切换所述单核处理器的特权模式为机器模式,响应所述外部中断中的以太网中断;

完成与所述以太网中断相对应的中断服务,并将单核处理器的特权模式切换为用户模式。

进一步地,处理器1001可以调用存储器1006中存储的工业以太网协议优化程序,还执行以下操作:

在所述硬件类型为单核处理器时,根据所述访问接口控制应用层关闭所述OpenSBI中的与所述以太网中断相对应的服务程序,并控制所述OpenSBI停止对所述共享内存的访问。

进一步地,处理器1001可以调用存储器1006中存储的工业以太网协议优化程序,还执行以下操作:

在所述硬件类型为多核处理器,且在所述多核处理器检测到外部中断产生时,控制所述外部中断中的以太网中断发送至所述多核处理器中的任意一个特权模式为机器模式的内核进行处理;

控制所述外部中断中除所述以太网中断之外的其他中断发送至所述多核处理器中任意一个特权模式为监管者模式的内核进行处理。

进一步地,处理器1001可以调用存储器1006中存储的工业以太网协议优化程序,还执行以下操作:

在所述硬件类型为多核处理器时,控制所述操作系统建立与所述共享内存相对应的锁;

根据所述访问接口控制所述应用层、所述操作系统和所述OpenSBI执行获取所述锁的服务程序,并通过操作系统判断所述OpenSBI是否获得所述锁;

若所述OpenSBI获得所述锁,则控制所述操作系统将所述锁反馈至所述应用层中的当前应用程序。

进一步地,处理器1001可以调用存储器1006中存储的工业以太网协议优化程序,还执行以下操作:

若所述OpenSBI未获得所述锁,则控制所述操作系统将所述多核处理器的执行权调度到其他已获得所述锁的待执行应用程序,并控制所述当前应用程序的状态切换为睡眠状态。

进一步地,处理器1001可以调用存储器1006中存储的工业以太网协议优化程序,还执行以下操作:

控制所述应用层、所述操作系统和所述OpenSBI执行释放所述锁的服务程序,并将所述锁的状态以及待执行应用程序反馈至所述操作系统;

控制所述操作系统将所述待执行应用程序的状态切换为就绪态,并控制所述多核处理器执行所述待执行应用程序。

本发明工业以太网协议优化系统的具体实施例与下述工业以太网协议优化程序各实施例基本相同,在此不作赘述。

请参阅图2,图2为本发明工业以太网协议优化系统的工业以太网协议优化方法第一实施例的流程示意图,本实施例提供的工业以太网协议优化系统的工业以太网协议优化方法包括如下步骤:

步骤S10,将预设以太网驱动集成在OpenSBI中;

本发明应用于RISC-V架构,所述RISC-V架构包括应用层、操作系统、OpenSBI以及硬件,其中,所述RISC-V架构是基于精简指令集计算(RISC)原理建立的开放指令集架构(ISA),V表示为第五代RISC,所述OpenSBI是一个开源的RISC-V虚拟化二进制接口的通用的规范。在目前实践中,RISC-V的系统级芯片上,OpenSBI运行在M(Machine,机器)态,操作系统Linux运行在S(Superviosr,监管)态。应用程序等运行在U(User/Application,用户)态。三种不同特权等级,且特权等级由高至低排列依次为M态、S态和U态,防止不同特权状态下,低特权等级的程序作出危害的动作进一步扩散。

请参阅图3和图4,图3为本发明RISC-V架构的结构示意图,图4为现有RISC-V架构的结构示意图。在本实施例中,为了增强工业以太网协议的实时性,可以直接将以太网驱动集成在OpenSBI内,由OpenSBI直接驱动以太网硬件,从而使得应用层与OpenSBI中的以太网驱动直接交互,增强了工业以太网通讯协议的实时性。

步骤S20,根据预设内存共享机制,虚拟出与应用层、所述OpenSBI和操作系统相对应的共享内存的访问接口;

在本实施例中,所述共享内存即为应用层、OpenSBI和操作系统均可访问的物理内存区域,具体的,应用层直接向操作系统申请一个大小合适的内存区域。以用户层和OpenSBI内部的驱动程序约定的方式使用该内存,例如规定发送区域、接收区域,参数的存放等。该共享内存主要完成:1、以太网数据包的发送;2、以太网数据的接收;3、管理数据。用户层申请完毕后,使用环境调用,即(ecall)指令调用相关的OpenSBI服务,将申请的共享内存地址通知OpenSBI内的以太网驱动,用于OpenSBI和共享内存进行数据交换使用。

由于需要实现应用层与OpenSBI之间的数据交互,因此需要通过内存共享机制,虚拟出应用层访问OpenSBI的访问接口,从而在正常使用时,无需操作系统内核访问,内核仅仅做必要的管理维护动作。而应用程序直接穿透操作系统,直接与OpenSBI交互传递数据。需要说明的是,由于OpenSBI无需操作系统调度,因此,其运行的优先级、特权等级也比操作系统高,相当于操作系统下最高优先级的线程,并且不可被抢占。

步骤S30,根据硬件的类型和所述访问接口,分别设置所述OpenSBI的中断机制以及通讯机制,其中,所述硬件的类型包括单核处理器和多核处理器;

在本实施例中,将以太网驱动下沉到OpenSBI里,用户程序与OpenSBI中的以太网驱动直接交互,可以极大缩短IO的处理时间与数据的迁移时间,不受操作系统机制的影响,增强了工业以太网通讯协议的实时性。但是为了实现OpenSBI与应用程序之间的数据交互,还需要设置OpenSBI的中断机制以及通讯机制,且所述终端机制和通讯机制随着硬件类型不同而有不同的设置程序,具体的,所述步骤S30中根据硬件的类型和所述访问接口,设置所述OpenSBI的中断机制的步骤,还包括:

步骤S31,在所述硬件的类型为单核处理器,并在所述单核处理器检测到外部中断产生时,切换所述单核处理器的特权模式为机器模式;

步骤S32,在所述机器模式下,根据所述访问接口控制所述单核处理器中的外部中断服务程序处理所述外部中断中的以太网中断;

步骤S33,获取外部中断中除以太网中断之外的其他中断的中断号和参数,并将所述中断号和所述参数发送至软件中断服务程序,控制所述软件中断服务程序处理所述其他中断。

需要说明的是,RISC-V架构发生中断时,中断均是由M态处理,但RISC-V可以将一个中断通过代理的方式从M态代理到S态,即代理的中断直接由S态提供服务,不再进入M态,从而节省处理时间;也可以代理到U态,目前,RISC-V将中断分为时钟中断、软件中断和外部中断。芯片内部所有的外部中断交由操作系统的内核处理。为了处理方便,所有的中断都代理到了S态处理。如果需要SBI层解决以太网的问题,则需要SBI去处理以太网的中断。而在本实施例中,所述单核处理器的特权模式为机器模式时,则说明单核处理器运行在OpenSBI,在硬件类型为单核处理器时,单核处理器的外部中断全部在M态处理,但M态并不作实质性的处理,而是通过软件中断代理到S态进行处理,并将除了以太网中断之外的其他中断的中断号和参数发送给S态,由S态的软件中断服务程序代替原来的外部中断服务程序进行处理,其中,中断号即为中断的编号,参数即为运行该中断所需要的参数。通过上述处理方式,本发明即可实现单核处理器下的中断处理。

在一实施例中,所述步骤S30中的根据硬件的类型和所述访问接口,设置所述OpenSBI的中断机制的步骤,还包括:

步骤S34,在所述硬件的类型为单核处理器,并在所述单核处理器检测到外部中断产生时,切换所述单核处理器的特权模式为监管者模式;

步骤S35,在所述监管者模式下,根据所述访问接口控制所述单核处理器中的外部中断程序处理所述外部中断中除以太网中断之外的其他中断;

步骤S36,切换所述单核处理器的特权模式为机器模式,响应所述外部中断中的以太网中断;

步骤S37,完成与所述以太网中断相对应的中断服务,并将单核处理器的特权模式切换为用户模式。

在本实施例中,在单核处理器中对中断的处理方法除上述方法之外,还可以将单核处理器的外部中断全部在S态处理,对于外部中断中的以太网中断,在操作系统的上半部中,直接保存现场,调用ecall指令,使得单核处理器的特权模式陷入M态的OpenSBI中,即切换所述单核处理器的特权模式为机器模式,让OpenSBI直接完成以太网的中断服务。服务完成后,再次调用ecall指令返回操作系统,再做必要处理(上下文切换、硬件处理等),再次调用ecall指令返回到应用层中,即将单核处理器的特权模式切换为用户模式。

在一实施例中,所述步骤S30中,根据硬件的类型和所述访问接口,设置所述OpenSBI的通讯机制的步骤包括:

步骤A38,在所述硬件类型为单核处理器时,根据所述访问接口控制应用层关闭所述OpenSBI中的与所述以太网中断相对应的服务程序,并控制所述OpenSBI停止对所述共享内存的访问。

在本实施例中,OpenSBI与应用层之间通讯,主要解决共享内存中的数据的完整性;在此基础上,应用层要能及时地告知OpenSBI执行相关的服务。

在设置单核处理器的通讯机制时,由于应用层和OpenSBI通讯,完全绕过了操作系统的同步机制,所以,同步采用关闭中断即可实现数据保存的完整性。但关闭整个中断会影响操作系统对其他中断的响应,所以,应用层调用OpenSBI中对应的服务,仅关闭对应的以太网中断。同时,OpenSBI停止对共享内存区域中的数据结构的访问,直到用户层允许OpenSBI对共享内存中的数据结构进行操作。

在一实施例中,当硬件为多核处理器时,所述步骤S30中,根据硬件的类型和所述访问接口,设置所述OpenSBI的中断机制的步骤,还包括:

步骤A301,在所述硬件类型为多核处理器,且在所述多核处理器检测到外部中断产生时,控制所述外部中断中的以太网中断发送至所述多核处理器中的任意一个特权模式为机器模式的内核进行处理;

步骤A302,控制所述外部中断中除所述以太网中断之外的其他中断发送至所述多核处理器中任意一个特权模式为监管者模式的内核进行处理。

在本实施例中,由于多核处理器中拥有多个处理核心,因此,可以指定以太网中断具体由哪一个处理器核心服务。利用这一特性,可以单独的拿出一个核心,其外部中断只有一个以太网中断,直接在该核心中由M态处理即可。而除以太网中断之外的其他中断则可以由其他核心进行处理。例如核心1作为主核,除以太网中断之外的其他中断均代理到S态,服务除以太网中断之外的所有其他中断;核心2,以太网中断直接在M态服务。不代理到S态处理。相比单核处理器的中断处理方式,多核处理器更加直接、高效。

另外,在一实施例中,所述步骤S30中,根据硬件的类型和所述访问接口,设置所述OpenSBI的通讯机制的步骤包括:

步骤A303,在所述硬件类型为多核处理器时,控制所述操作系统建立与所述共享内存相对应的锁;

在本实施例中,由于OpenSBI与应用层之间同步不能采用传统的操作系统所提供的同步、互斥机制。OpenSBI是无法调用操作系统的访问接口的,从而与应用层通讯。所以,应用层如果有效的与OpenSBI同步通讯,必须提供一种机制,即锁机制,使操作系统方便的利用这个机制,为应用层和OpenSBI提供同步、互斥服务。

步骤A304,根据所述访问接口控制所述应用层、所述操作系统和所述OpenSBI执行获取所述锁的服务程序,并通过操作系统判断所述OpenSBI是否获得所述锁;

在本实施例中,获取所述锁的具体流程为:

步骤a:应用层执行获取对应的锁的命令,采用ecall指令陷入操作系统(由U态转变为S态);

步骤b:操作系统保护相关的参数与场景,再次调用ecall指令陷入sbi(由S态转变为M态);

步骤c:OpenSBI完成获取锁的实际操作,返回锁的实际情况,如果没有获得锁,则记录当前的未获取到锁的线程;

步骤d:操作系统判断锁是否获得,如果获得锁则返回应用层;

步骤A305,若所述OpenSBI获得所述锁,则控制所述操作系统将所述锁反馈至所述应用层中的当前应用程序。

在一实施例中,所述步骤A304之后,还包括:

步骤A306,若所述OpenSBI未获得所述锁,则控制所述操作系统将所述多核处理器的执行权调度到其他已获得所述锁的待执行应用程序,并控制所述当前应用程序的状态切换为睡眠状态。

在本实施例中,若没有获得锁,则操作系统调度到应用层中的其他应用程序。本应用程序则处于睡眠状态;同时,将需要调度的应用程序需要唤醒的数据,通过访问接口告知OpenSBI层。OpenSBI层保留这部分数据用以唤醒对应的睡眠应用程序。

在一实施例中,所述步骤S30中,根据硬件的类型和所述访问接口,设置所述OpenSBI的通讯机制的步骤,还包括:

步骤A307,控制所述应用层、所述操作系统和所述OpenSBI执行释放所述锁的服务程序,并将所述锁的状态以及待执行应用程序反馈至所述操作系统;

步骤A307,控制所述操作系统将所述待执行应用程序的状态切换为就绪态,并控制所述多核处理器执行所述待执行应用程序。

所述就绪态即为准备执行的状态。

在本实施例中,具体的,释放所述锁的流程为:

步骤e:应用层调用释放锁的系统调用,采用ecall指令陷入操作系统(U态转变为S态);

步骤f:操作系统则保护相关的参数与场景,调用ecall陷入sbi(由S态转变为M态);

步骤g:OpenSBI中完成释放锁的实际操作,返回锁的实际情况,并返回下一个获得锁的线程(由M态转变为S态);

步骤h:操作系统按照OpenSBI的返回的线程,让对应的应用程序处于就绪态,可以被处理器所执行(S态);

步骤i:返回应用程序(S态转变为U态)。其中,所述线程即为运行的应用程序。

在本实施例中,通过设置多核处理器的通讯机制,解决应用层能根据OpenSBI核心层锁的状态,把等待新应用程序的时间让出去。避免长时间的等待,实现处理器的高效使用。

步骤S40,根据所述中断机制和所述通讯机制,控制应用层和所述OpenSBI进行数据交互。

本发明提供一种工业以太网协议优化方法、系统及可读存储介质,所述工业以太网协议优化方法包括步骤:将预设以太网驱动集成在OpenSBI中;根据预设内存共享机制,虚拟出与应用程序、所述OpenSBI和操作系统相对应的共享内存的访问接口;根据硬件的类型和所述访问接口,分别设置所述OpenSBI的中断机制以及通讯机制,其中,所述硬件的类型包括单核处理器和多核处理器;根据所述中断机制和所述通讯机制,控制应用程序和所述OpenSBI进行数据交互。通过上述方法,本发明能够利用RISC-V体系结构的特点,将以太网驱动直接放入OpenSBI中执行,绕过操作系统的机制,用户程序与OpenSBI中的以太网驱动直接交互,可以极大缩短IO的处理时间与数据的迁移时间,不受操作系统机制的影响,增强了工业以太网通讯协议的实时性。使得工业以太网在RISC-V体系结构中的通讯能力大幅度提高,利于RISC-V平台在工业里的推广与应用。

此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有工业以太网协议优化程序,所述工业以太网协议优化程序被处理器执行时实现如下操作:

将预设以太网驱动集成在OpenSBI中;

根据预设内存共享机制,虚拟出与应用层、所述OpenSBI和操作系统相对应的共享内存的访问接口;

根据硬件的类型和所述访问接口,分别设置所述OpenSBI的中断机制以及通讯机制,其中,所述硬件的类型包括单核处理器和多核处理器;

根据所述中断机制和所述通讯机制,控制应用层和所述OpenSBI进行数据交互。

进一步地,所述工业以太网协议优化程序被处理器执行时还实现如下操作:

在所述硬件的类型为单核处理器,并在所述单核处理器检测到外部中断产生时,切换所述单核处理器的特权模式为机器模式;

在所述机器模式下,根据所述访问接口控制所述单核处理器中的外部中断服务程序处理所述外部中断中的以太网中断;

获取外部中断中除以太网中断之外的其他中断的中断号和参数,并将所述中断号和所述参数发送至软件中断服务程序,控制所述软件中断服务程序处理所述其他中断。

进一步地,所述工业以太网协议优化程序被处理器执行时还实现如下操作:

在所述硬件的类型为单核处理器,并在所述单核处理器检测到外部中断产生时,切换所述单核处理器的特权模式为监管者模式;

在所述监管者模式下,根据所述访问接口控制所述单核处理器中的外部中断程序处理所述外部中断中除以太网中断之外的其他中断;

切换所述单核处理器的特权模式为机器模式,响应所述外部中断中的以太网中断;

完成与所述以太网中断相对应的中断服务,并将单核处理器的特权模式切换为用户模式。

进一步地,所述工业以太网协议优化程序被处理器执行时还实现如下操作:

在所述硬件类型为单核处理器时,根据所述访问接口控制应用层关闭所述OpenSBI中的与所述以太网中断相对应的服务程序,并控制所述OpenSBI停止对所述共享内存的访问。

进一步地,所述工业以太网协议优化程序被处理器执行时还实现如下操作:

在所述硬件类型为多核处理器,且在所述多核处理器检测到外部中断产生时,控制所述外部中断中的以太网中断发送至所述多核处理器中的任意一个特权模式为机器模式的内核进行处理;

控制所述外部中断中除所述以太网中断之外的其他中断发送至所述多核处理器中任意一个特权模式为监管者模式的内核进行处理。

进一步地,所述工业以太网协议优化程序被处理器执行时还实现如下操作:

在所述硬件类型为多核处理器时,控制所述操作系统建立与所述共享内存相对应的锁;

根据所述访问接口控制所述应用层、所述操作系统和所述OpenSBI执行获取所述锁的服务程序,并通过操作系统判断所述OpenSBI是否获得所述锁;

若所述OpenSBI获得所述锁,则控制所述操作系统将所述锁反馈至所述应用层中的当前应用程序。

进一步地,所述工业以太网协议优化程序被处理器执行时还实现如下操作:

若所述OpenSBI未获得所述锁,则控制所述操作系统将所述多核处理器的执行权调度到其他已获得所述锁的待执行应用程序,并控制所述当前应用程序的状态切换为睡眠状态。

进一步地,所述工业以太网协议优化程序被处理器执行时还实现如下操作:

控制所述应用层、所述操作系统和所述OpenSBI执行释放所述锁的服务程序,并将所述锁的状态以及待执行应用程序反馈至所述操作系统;

控制所述操作系统将所述待执行应用程序的状态切换为就绪态,并控制所述多核处理器执行所述待执行应用程序。

本发明还提出一种计算机可读存储介质,其上存储有计算机程序。所述计算机可读存储介质可以是图1的工业以太网协议优化系统中的存储器02,也可以是如ROM(Read-Only Memory,只读存储器)/RAM(Random Access Memory,随机存取存储器)、磁碟、光盘中的至少一种,所述计算机可读存储介质包括若干信息用以使得工业以太网协议优化系统执行本发明各个实施例所述的方法。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

相关技术
  • 基于贝叶斯优化的点云配准方法、系统及可读存储介质
  • 存储设备的系统重置方法、装置、系统及可读存储介质
  • 存储系统的数据处理方法、装置、系统及可读存储介质
  • 用于增强存储设备的服务质量的存储系统、方法和非暂态计算机可读介质
  • 一种Hadoop对象存储高可用方法、系统、装置及可读存储介质
  • 一种优化的工业用串口协议的以太网透传方法
  • 一种优化的工业用串口协议的以太网透传方法
技术分类

06120115591933