多重调度表切换方法、装置、计算机设备及存储介质与流程

文档序号:17471560发布日期:2019-04-20 05:51阅读:226来源:国知局
多重调度表切换方法、装置、计算机设备及存储介质与流程

本发明涉及调度表切换方法,更具体地说是指多重调度表切换方法、装置、计算机设备及存储介质。



背景技术:

lin(局域互联网络,localinterconnectnetwork)总线是基于uart(通用异步收发接口的单总线串行通信)协议,lin总线的主要目的是为了提供一种低成本的车用总线,一般lin总线网络是由一个主节点和多个从节点互联构成单一lin物理通道,如图1所示,节点间通过单线传送串行通讯,一个lin总线网络包含一个主任务节点以及多个从任务节点,主任务节点主要负责决定总线上的报文,从任务负责响应主节点的请求,主节点是通过查询调度表的内容决定发送报文的顺序,形成单主多从结构,从而无需仲裁。

目前市场上的lin总线通讯是通过调度表算法执行,该调度表算法基本都是针对单一lin通道来实现一主多从的通讯方式,但由于ecu(电子控制单元,electroniccontrolunit)控制器电路日渐复杂庞大,许多ecu控制器自身集成了多路lin物理通道,传统的单通道单张调度表算法已无法满足性能要求,且单一调度表算法灵活性欠缺,无法根据外界的情况做出调整,无法提升系统的灵活性。

因此,有必要设计一种新的方法,实现支持多张调度表切换,在扩展性能的同时也提升了系统的灵活性,适应市场上日渐复杂的ecu控制需求,且根据外界的情况做出调整。



技术实现要素:

本发明的目的在于克服现有技术的缺陷,提供多重调度表切换方法、装置、计算机设备及存储介质。

为实现上述目的,本发明采用以下技术方案:多重调度表切换方法,包括:

判断是否有切换调度表的请求;

若是,则根据所述请求切换调度表,并清除所有报文的发送时隙计数;

判断所有报文的发送时隙计数是否为零;

若是,则判断当前的调度表是否为空;

若否,根据当前的调度表从报文总列表内获取报文列表内容;

根据报文列表内容进行对应报文的发送时隙计数的更新;

对报文列表内容进行分析,以得到需发送的报文以及发送通道;

按照发送通道发送需要发送的报文。

其进一步技术方案为:所述判断是否有切换调度表的请求之前,还包括:

设置报文总列表的数据结构以及调度表的内容。

其进一步技术方案为:所述报文总列表的数据结构包括报文在报文总列表的序号、报文发送的lin物理通道、报文的流向、报文发送的字节长度以及存储报文的地址。

其进一步技术方案为:所述调度表的内容包括与报文总列表关联的信息以及报文的发送时隙。

其进一步技术方案为:所述判断所有报文的发送时隙计数是否为零之后,包括:

若否,则对所有报文的发送时隙计数减一;

判断减后的所有报文的发送时隙计数是否为零;

若否,则接收所发送的报文;

若是,则对调度表内的索引指针加一;

判断当前的调度表索引指针是否指向调度表的末端;

若是,则将调度表内索引指针重置,以使调度表内索引指针指向表头;

若否,则返回所述判断当前的调度表是否为空。

其进一步技术方案为:所述根据当前的调度表从报文总列表内获取报文列表内容,包括:

获取当前调度表内索引指针指向的位置;

获取所述位置的与报文总列表关联的信息;

根据与报文总列表关联的信息关联到报文总列表内的序号,以得到需要发送的报文在报文总列表的序号;

根据需要发送的报文在报文总列表的序号获取在报文总列表中关于所述序号的数据,以得到报文列表内容。

本发明还提供了多重调度表切换装置,包括:

请求判断单元,用于判断是否有切换调度表的请求;

切换单元,用于若是,则根据所述请求切换调度表,并清除所有报文的发送时隙计数;

第一计数判断单元,用于判断所有报文的发送时隙计数是否为零;

调度表判断单元,用于若是,则判断当前的调度表是否为空;

内容获取单元,用于若否,根据当前的调度表从报文总列表内获取报文列表内容;

更新单元,用于根据报文列表内容进行报文的发送时隙计数的更新;

分析单元,用于对报文列表内容进行分析,以得到需发送的报文以及发送通道;

发送单元,用于按照发送通道发送需要发送的报文。

其进一步技术方案为:所述装置还包括:

设置单元,用于设置报文总列表的数据结构以及调度表的内容。

本发明还提供了一种计算机设备,所述计算机设备包括存储器及处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现上述的方法。

本发明还提供了一种存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时可实现上述的方法。

本发明与现有技术相比的有益效果是:本发明通过根据是否需要进行调度表切换,根据外界情况进行适合的调度表的选择和调整,以提高系统的灵活性,将调度表与报文总列表进行关联,在执行调度表过程中,调取报文总列表内具体的报文列表内容,进行报文发送任务,扩展系统的功能,支持多张调度表切换,适应市场上日渐复杂的ecu控制需求。

下面结合附图和具体实施例对本发明作进一步描述。

附图说明

为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为现有技术的lin总线的结构示意图;

图2为本发明实施例提供的多重调度表切换方法的应用场景示意图;

图3为本发明实施例提供的多重调度表切换方法的流程示意图;

图4为本发明实施例提供的多重调度表切换方法的子流程示意图;

图5为本发明实施例提供的报文总列表数据结构示意图;

图6为本发明实施例提供的调度表内容的示意图;

图7为本发明实施例提供的多重调度表切换装置的示意性框图;

图8为本发明实施例提供的多重调度表切换装置的内容获取单元的示意性框图;

图9为本发明实施例提供的计算机设备的示意性框图;

图10为本发明实施例提供的多通道lin总线的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。

还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。

还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。

请参阅图2和图3,图2为本发明实施例提供的多重调度表切换方法的应用场景示意图。图3为本发明实施例提供的多重调度表切换方法的示意性流程图。

该多重调度表切换方法可以运用在服务器内,与终端等进行数据交互,由终端发起是否需要进行切换调度表的请求,在根据当前发起的请求进行调度表的对应处理,并预先设置调度表、报文总列表以及报文列表内容的关系,根据关联关系快速地进行调度响应,可根据实际情况做出调度表的切换和调整,在扩展性能的同时也提升了系统的灵活性,适应市场上日渐复杂的ecu控制需求。

该多重调度表切换方法适用于多通道lin总线,如图10所示,该多通道lin总线指的是一个主控制器提供了多个lin物理通道,不同波特率或不同层次的lin节点可选择挂载在合适的物理通道,主控制器通过内部算法来管理多个通道的不同节点来进行通讯,节点只允许访问处于相同通道的节点。主节点是通过查询调度表的内容决定发送报文的顺序,传统的lin单调度表只允许使用固定的调度表,无法根据外界情况选择合适的调度表使用,使用多重调度表可以改变节点的通讯顺序、访问周期和访问内容,极大地提高系统灵活性。

图3是本发明实施例提供的多重调度表切换方法的流程示意图。如图3所示,该方法包括以下步骤s110至s250。

s110、设置报文总列表的数据结构以及调度表的内容。

上述的报文总列表的数据结构指的是囊括了报文所在的存储位置、流向、发送通道等内容的表格,该表格与调度表之间存在一定的关联的关系。如图5所示,该报文总列表的数据结构包括报文在报文总列表的序号、报文发送的lin物理通道、报文的流向、报文发送的字节长度以及存储报文的地址。index是报文在报文总列表的序号,调度表可通过index关联到报文总列表获得需要发送的报文;channel是决定报文在哪个lin物理通道进行发送;reqtype是决定报文数据的流向;length是发送的字节长度;content为存储报文数据的地址。

上述的调度表的内容指的是与报文总列表关联的信息以及报文的发送时隙,即囊括了需要发送的报文列表信息以及发送时隙,而报文列表信息存在于报文总列表内,进而需要将调度表与报文总列表进行关联,从而达到调度的功能,如图6所示,msgindex是关联到报文总列表获得需要发送的报文的信息;frame-slot决定了报文的发送时隙。

s120、判断是否有切换调度表的请求。

在本实施例中,该请求是由终端根据外界情况触发的,从而使得整个过程具备根据外界情况选择合适的调度表,提升系统的灵活性。

在一实施例中,在执行该步骤s120之前,还要进行以下步骤:

对lin总线进行初始化。

若否,则进入所述步骤s140。

s130、若是,则根据所述请求切换调度表,并清除所有报文的发送时隙计数。

若出现需要切换请求,则会根据具体的请求指定的调度表,切换到对应的调度表,比如可对每个调度表进行标识,请求中囊括有该标识,通过标识切换到对应的调度表,亦或者可以通过外界情况的分类,根据该类别切换到对应的调度表。比如发送纯数字报文,则自动切换到调度表s等。

在切换调度表后,则需要对所有报文的发送时隙计数进行清除,避免对下一执行的调度表所调取的报文发送造成影响,从而保证整个系统的正常工作功能。

s140、判断所有报文的发送时隙计数是否为零。

在本实施例中,只有当所有报文的发送时隙技术为零时才会执行调度表内容。

s150、若否,则对所有报文的发送时隙计数减一。

若清除该计数后,仍然存在计数,则对计数进行减一处理。

s160、判断减后的报文的发送时隙计数是否为零;

s170、若否,则接收所发送的报文。

若减一后的计数仍然不为零,则表明该需要发送的报文已经发送,终端接收该发送的报文即可。

s180、若是,则对调度表内的索引指针加一;

对索引指针加一是指进行调度表下一个任务。

s190、判断当前的调度表索引指针是否指向调度表的末端;

s200、若是,则将调度表内索引指针重置,以使调度表内索引指针指向表头,并返回所述步骤s210;

若否,则进入所述步骤s210。

若下一个任务已经不存在,即该调度表内的所有任务均以执行完毕,其关联的需要发送的报文均发送,则重回到调度表最初始的位置,重复进行调度表的执行。

s210、若所有报文的发送时隙计数为零,则判断当前的调度表是否为空。

倘若需要执行的调度表内并没有任何任务,也就是没有需要发送的报文,则进入结束步骤,也可以发送通知信息至终端,告知终端切换调度表,从而提升系统的灵活性。

s220、若否,根据当前的调度表从报文总列表内获取报文列表内容。

在执行调度表时,主要是获取需要发送的报文以及其相关信息;该报文列表内容包括需要发送的报文所存储的位置、流向、报文发送的lin物理通道以及需要发送的字节长度。上述的lin物理通道是指一个实际的lin网络通道。

在一实施例中,如图4所示,上述的步骤s220可包括步骤s221~s224。

s221、获取当前调度表内索引指针指向的位置;

s222、获取所述位置的与报文总列表关联的信息;

s223、根据与报文总列表关联的信息关联到报文总列表内的序号,以得到需要发送的报文在报文总列表的序号;

s224、根据需要发送的报文在报文总列表的序号获取在报文总列表中关于所述序号的数据,以得到报文列表内容。

利用调度表与报文总列表的关联关系,结合报文总列表的数据结构,便可得到需要发送的报文的所有数据,以形成报文列表内容。

s230、根据报文列表内容进行报文的发送时隙计数的更新。

在本实施例中,对于计数的更新具体是根据索引指针所指位置的报文列表内容内所记载的报文发送时隙替换当前的计数值。

s240、对报文列表内容进行分析,以得到需发送的报文以及发送通道;

s250、按照发送通道发送需要发送的报文。

根据报文列表内容中的channel决定在哪个lin物理通道发送该需要发送的报文,发送后,终端会接收该报文,进行对应的处理。

若是,则进入结束步骤。

上述的多重调度表切换方法,通过根据是否需要进行调度表切换,根据外界情况进行适合的调度表的选择和调整,以提高系统的灵活性,将调度表与报文总列表进行关联,在执行调度表过程中,调取报文总列表内具体的报文列表内容,进行报文发送任务,扩展系统的功能,支持多张调度表切换,适应市场上日渐复杂的ecu控制需求。

图7是本发明实施例提供的一种多重调度表切换装置300的示意性框图。如图7所示,对应于以上多重调度表切换方法,本发明还提供一种多重调度表切换装置300。该多重调度表切换装置300包括用于执行上述多重调度表切换方法的单元,该装置可以被配置于服务器中。

具体地,请参阅图7,该多重调度表切换装置300包括:

请求判断单元302,用于判断是否有切换调度表的请求;

切换单元303,用于若是,则根据所述请求切换调度表,并清除所有报文的发送时隙计数;

第一计数判断单元304,用于判断所有报文的发送时隙计数是否为零;

调度表判断单元311,用于若是,则判断当前的调度表是否为空;

内容获取单元312,用于若否,根据当前的调度表从报文总列表内获取报文列表内容;

更新单元313,用于根据报文列表内容进行报文的发送时隙计数的更新;

分析单元314,用于对报文列表内容进行分析,以得到需发送的报文以及发送通道;

发送单元315,用于按照发送通道发送需要发送的报文。

在一实施例中,所述装置还包括:

设置单元301,用于设置报文总列表的数据结构以及调度表的内容。

另外,上述的装置还包括:

计数处理单元305,用于若否,则对所有报文的发送时隙计数减一;

第二计数判断单元306,用于判断减后的所有报文的发送时隙计数是否为零;

接收单元307,用于若否,则接收所发送的报文;

指针处理单元308,用于若是,则对调度表内的索引指针加一;

指针位置判断单元309,用于判断当前的调度表索引指针是否指向调度表的末端;

重置单元310,用于若是,则将调度表内索引指针重置,以使调度表内索引指针指向表头。

在一实施例中,如图8所示,上述的内容获取单元312包括:

位置获取子单元3121,用于获取当前调度表内索引指针指向的位置;

关联信息获取子单元3122,用于获取所述位置的与报文总列表关联的信息;

序号获取子单元3123,用于根据与报文总列表关联的信息关联到报文总列表内的序号,以得到需要发送的报文在报文总列表的序号;

数据获取子单元3124,用于根据需要发送的报文在报文总列表的序号获取在报文总列表中关于所述序号的数据,以得到报文列表内容。

需要说明的是,所属领域的技术人员可以清楚地了解到,上述多重调度表切换装置300和各单元的具体实现过程,可以参考前述方法实施例中的相应描述,为了描述的方便和简洁,在此不再赘述。

上述多重调度表切换装置300可以实现为一种计算机程序的形式,该计算机程序可以在如图9所示的计算机设备上运行。

请参阅图9,图9是本申请实施例提供的一种计算机设备的示意性框图。该计算机设备500可以是终端,也可以是服务器,其中,终端可以是智能手机、平板电脑、笔记本电脑、台式电脑、个人数字助理和穿戴式设备等具有通信功能的电子设备。服务器可以是独立的服务器,也可以是多个服务器组成的服务器集群。

参阅图9,该计算机设备500包括通过系统总线501连接的处理器502、存储器和网络接口505,其中,存储器可以包括非易失性存储介质503和内存储器504。

该非易失性存储介质503可存储操作系统5031和计算机程序5032。该计算机程序5032包括程序指令,该程序指令被执行时,可使得处理器502执行一种多重调度表切换方法。

该处理器502用于提供计算和控制能力,以支撑整个计算机设备500的运行。

该内存储器504为非易失性存储介质503中的计算机程序5032的运行提供环境,该计算机程序5032被处理器502执行时,可使得处理器502执行一种多重调度表切换方法。

该网络接口505用于与其它设备进行网络通信。本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备500的限定,具体的计算机设备500可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

其中,所述处理器502用于运行存储在存储器中的计算机程序5032,以实现如下步骤:

判断是否有切换调度表的请求;

若是,则根据所述请求切换调度表,并清除所有报文的发送时隙计数;

判断所有报文的发送时隙计数是否为零;

若是,则判断当前的调度表是否为空;

若否,根据当前的调度表从报文总列表内获取报文列表内容;

根据报文列表内容进行对应报文的发送时隙计数的更新;

对报文列表内容进行分析,以得到需发送的报文以及发送通道;

按照发送通道发送需要发送的报文。

在一实施例中,处理器502在实现所述判断是否有切换调度表的请求步骤之前,还实现如下步骤:

设置报文总列表的数据结构以及调度表的内容。

其中,所述报文总列表的数据结构包括报文在报文总列表的序号、报文发送的lin物理通道、报文的流向、报文发送的字节长度以及存储报文的地址。

所述调度表的内容包括与报文总列表关联的信息以及报文的发送时隙。

在一实施例中,处理器502在实现所述判断所有报文的发送时隙计数是否为零步骤之后,还实现如下步骤:

若否,则对所有报文的发送时隙计数减一;

判断减后的所有报文的发送时隙计数是否为零;

若否,则接收所发送的报文;

若是,则对调度表内的索引指针加一;

判断当前的调度表索引指针是否指向调度表的末端;

若是,则将调度表内索引指针重置,以使调度表内索引指针指向表头;

若否,则返回所述判断当前的调度表是否为空。

在一实施例中,处理器502在实现所述根据当前的调度表从报文总列表内获取报文列表内容步骤时,具体实现如下步骤:

获取当前调度表内索引指针指向的位置;

获取所述位置的与报文总列表关联的信息;

根据与报文总列表关联的信息关联到报文总列表内的序号,以得到需要发送的报文在报文总列表的序号;

根据需要发送的报文在报文总列表的序号获取在报文总列表中关于所述序号的数据,以得到报文列表内容。

应当理解,在本申请实施例中,处理器502可以是中央处理单元(centralprocessingunit,cpu),该处理器502还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

本领域普通技术人员可以理解的是实现上述实施例的方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成。该计算机程序包括程序指令,计算机程序可存储于一存储介质中,该存储介质为计算机可读存储介质。该程序指令被该计算机系统中的至少一个处理器执行,以实现上述方法的实施例的流程步骤。

因此,本发明还提供一种存储介质。该存储介质可以为计算机可读存储介质。该存储介质存储有计算机程序,其中该计算机程序被处理器执行时使处理器执行如下步骤:

判断是否有切换调度表的请求;

若是,则根据所述请求切换调度表,并清除所有报文的发送时隙计数;

判断所有报文的发送时隙计数是否为零;

若是,则判断当前的调度表是否为空;

若否,根据当前的调度表从报文总列表内获取报文列表内容;

根据报文列表内容进行对应报文的发送时隙计数的更新;

对报文列表内容进行分析,以得到需发送的报文以及发送通道;

按照发送通道发送需要发送的报文。

在一实施例中,所述处理器在执行所述计算机程序而实现所述判断是否有切换调度表的请求步骤之前,还实现如下步骤:

设置报文总列表的数据结构以及调度表的内容。

其中,报文总列表的数据结构包括报文在报文总列表的序号、报文发送的lin物理通道、报文的流向、报文发送的字节长度以及存储报文的地址。

所述调度表的内容包括与报文总列表关联的信息以及报文的发送时隙。

在一实施例中,所述处理器在执行所述计算机程序而实现所述判断所有报文的发送时隙计数是否为零步骤之后,还实现如下步骤:

若否,则对所有报文的发送时隙计数减一;

判断减后的所有报文的发送时隙计数是否为零;

若否,则接收所发送的报文;

若是,则对调度表内的索引指针加一;

判断当前的调度表索引指针是否指向调度表的末端;

若是,则将调度表内索引指针重置,以使调度表内索引指针指向表头;

若否,则返回所述判断当前的调度表是否为空。

在一实施例中,所述处理器在执行所述计算机程序而实现所述根据当前的调度表从报文总列表内获取报文列表内容步骤时,具体实现如下步骤:

获取当前调度表内索引指针指向的位置;

获取所述位置的与报文总列表关联的信息;

根据与报文总列表关联的信息关联到报文总列表内的序号,以得到需要发送的报文在报文总列表的序号;

根据需要发送的报文在报文总列表的序号获取在报文总列表中关于所述序号的数据,以得到报文列表内容。

所述存储介质可以是u盘、移动硬盘、只读存储器(read-onlymemory,rom)、磁碟或者光盘等各种可以存储程序代码的计算机可读存储介质。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的。例如,各个单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。

本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。本发明实施例装置中的单元可以根据实际需要进行合并、划分和删减。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。

该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,终端,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

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