CN114637598A - 车辆控制器及其操作***的调度方法 - Google Patents
车辆控制器及其操作***的调度方法 Download PDFInfo
- Publication number
- CN114637598A CN114637598A CN202111446948.6A CN202111446948A CN114637598A CN 114637598 A CN114637598 A CN 114637598A CN 202111446948 A CN202111446948 A CN 202111446948A CN 114637598 A CN114637598 A CN 114637598A
- Authority
- CN
- China
- Prior art keywords
- thread
- task
- core
- flag
- operating system
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
- G06F9/4887—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60R—VEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
- B60R16/00—Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for
- B60R16/02—Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements
- B60R16/023—Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements for transmission of signals between vehicle parts or subsystems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0796—Safety measures, i.e. ensuring safe condition in the event of error, e.g. for controlling element
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2023—Failover techniques
- G06F11/2025—Failover techniques using centralised failover control functionality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/3009—Thread control instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
- G06F9/328—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for runtime instruction patching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4406—Loading of operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5018—Thread allocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/508—Monitor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mechanical Engineering (AREA)
- Quality & Reliability (AREA)
- Multimedia (AREA)
- Computer Security & Cryptography (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请涉及一种车辆控制器及其操作***的调度方法。根据本发明的车辆控制器的操作***的调度方法,可以包括:根据车辆应用请求的第一任务判断可运行功能的步骤;在所述第一核心根据所述判别的可运行功能第一周期期间运行第一线程及第二线程中的一个来执行所述第一任务的步骤;以及当在所述第一核心运行所述第二线程时,在所述第一周期期间与所述第一核心不同的第二核心执行对应于所述第一任务的第一备份任务的步骤。
Description
技术领域
本发明涉及一种车辆控制器及其的操作***调度方法。
背景技术
一般,智能电子控制单元(ECU,Electronic Control Unit)和技术驱动程序的环境需要大量的计算性能。功率及成本效益是重要的部分,但安全领域的高性能计算(HPC,High Performance Computing)面临着各种难题。为了解决这个问题,需要采用ECU没有利用的技术,并尽量利用创新技术。汽车开放***架构(AUTOSAR,AUTomotive Open SystemARchitecture)自适应平台(Adaptive Platform)动态管理资源和通信,减少用于开发和集成软件所需的努力,同时,执行应用程序的分发,并允许***集成商慎重集成,消除故障危险以确保安全。应用程序的动态运行根据应用程序清单中规定的约束条件进行限制。在执行期间,资源和通信路径的动态分配只能以在配置范围内定义的方式进行。AUTOSAR自适应平台的实现,在软件配置上将动态功能除了进程的预先确定、向启动阶段的动态内存限制、基于优先顺序的调度以外,还由调度策略、对中央处理器(CPU,Central Processing Unit)的进程的固定分配、对现有文件的访问、自适应平台(AP,Adaptive Platform)、应用程序接口(API,Application Programming Interface)使用限制、验证代码执行来限制。
在先技术文件
专利文件
专利文件1:韩国授权专利第10-1439355
发明内容
本发明的目的在于,提供一种主动减少误动作,并且提高可靠性的车辆控制器及其的操作***调度方法。
根据本发明实施例的车辆控制器的操作***调度方法,其中,可以包括:根据车辆应用请求的第一任务判别可运行功能的步骤;在所述第一核心根据所述判别的可运行功能第一周期期间运行第一线程及第二线程中的一个来执行所述第一任务的步骤;以及在所述第一核心运行所述第二线程时,在所述第一周期期间与所述第一核心不同的第二核心执行对应于所述第一任务的第一备份任务的步骤。
在实施例中,所述第一线程可以包括用于存储线程的开始时间的开始标志、以及存储所述线程的结束时间的结束标志。
在实施例中,所述第二线程可以包括线程标志管理器、线程主、线程备份及任务调度器信息,所述线程主可以包括用于存储线程的开始时间的开始标志、用于存储所述线程的结束时间的结束标志、以及用于执行从所述线程标志管理器映射的可运行功能的功能指针,所述线程备份可以包括所述开始标志和所述结束标志。
在实施例中,所述线程标志管理器监控所述线程中存在的所述开始标志和所述结束标志,当在预定时间内没有更新所述任务调度器信息、所述开始标志及所述结束标志时,利用所述可运行指针执行所述可运行功能。
在实施例中,生成线程函数作为所述可运行功能时,所述线程标志管理器映射所述线程主和所述线程备份。
在实施例中,所述线程主监控线程周期,当所述线程主的线程周期超过预测值时,执行所述线程备份的线程。
在实施例中,还可以包括当所述线程备份的线程周期超过所述预测值时,向用户发出提醒的步骤。
在实施例中,所述操作***根据AUTOSAR自适应平台实现。
根据本发明实施例的车辆控制器,其中,包括:通信装置,与外部装置进行通信;存储器,用于存储操作***;以及微控制单元,用于控制所述通信装置和所述存储器,并驱动所述操作***,所述操作***,根据车辆应用请求的第一任务判别可运行功能,在所述第一核心根据所述判别的可运行功能第一周期期间运行第一线程及第二线程中的一个来执行所述第一任务,以及当在所述第一核心运行所述第二线程时,在所述第一周期期间与所述第一核心不同的第二核心执行对应于所述第一任务的第一备份任务。
在实施例中,在所述第一周期之后的第二周期期间,所述操作***在所述第二核心执行所述车辆应用请求的第二任务。
在实施例中,所述第二任务运行所述第二线程来执行,所述操作***在所述第二周期期间在第三核心执行所述第二任务的备份任务,所述第三核心与所述第一核心和所述第二核心不同。
在实施例中,在所述第二周期之后的第三周期期间,所述操作***在所述第二核心执行所述车辆应用请求的第三任务。
在实施例中,所述第三任务运行所述第二线程来执行,所述操作***在所述第三周期期间在第三核心执行所述第三任务的备份任务,所述第三核心与所述第一核心和所述第二核心不同。
发明效果
根据本发明实施例的车辆控制器及其的操作***调度方法,通过另外执行备份任务,可以提高执行任务的准确度。
另外,根据本发明实施例的车辆控制器及其的操作***调度方法,可以执行确保稳定性、减少误动作、提高可靠性的功能。
附图说明
以下附图用于帮助理解本实施例,与详细说明一起提供实施例。本实施例的技术特征不限于特定附图,可以互相组合各图中公开的特征构成新的实施例。
图1是示出一般的AUTOSAR自适应平台的架构的图。
图2是通过SOME/IP通信的面向Proxy-Skeleton服务的通信的例示图。
图3是示出根据本发明实施例的AUTOSAR自适应平台实时操作***的调度的例示图。
图4是用于说明根据本发明实施例的AUTOSAR自适应平台的操作的图。
图5是根据本发明实施例的实时操作***100的操作方法的例示流程图。
图6是根据本发明实施例的车辆控制器1000的例示图。
100:操作***,110:第一线程管理单元,120:第二线程管理单元,121:线程标志管理器,200:自适应AUTOSAR应用,1000:控制器,1100:MCU,1200:内存,1300:通信装置
具体实施方式
下面参考附图明确及详细地记载本发明的内容以使本发明所属领域的技术人员容易实施。
本发明可以进行各种变更,并可以具有各种形态,对特定实施例示于图中并在本文中详细说明。但是,应理解本发明并不局限于特定的公开形态,包含本发明的精神及技术范围中所包含的所有变更、均等物乃至代替物。第一、第二等术语可用于说明各种构成要素,但所述构成要素并不局限于这些术语。
所述术语用来区别一个构成要素和其他的构成要素,例如,在不脱离本发明的权利范围的情况下,第一构成要素可以命名为第二构成要素,同样地,第二构成要素可以命名为第一构成要素。当被提及某一构成要素与另一构成要素“连接”或“联接”时,应当理解为可以直接与另一构成要素相连接或相联接,但也可在中间存在其他构成要素。相反,当提及某一构成要素与另一构成要素“直接连接”或“直接联接”时,应当理解为中间不存在其他构成要素。
用于说明构成要素之间的关系的其他表达,即,“~之间”和“直接在~之间”或“与~相邻”和“与~直接相邻”等的表达也应以相同的方式进行解释。本说明书中所使用的术语仅仅用于说明特定实施例,而并非限定本发明。除非在文脉上明确表示不同的含义,单数的表达包括复数的表达。
在本说明书中,“包括”或“具有”等术语所要指定实施的特征、数字、步骤、动作、构成要素、部件或这些组合的存在,而不得理解为排除一个或一个以上的其他特征或数字、步骤、动作、构成要素、部件或这些组合的存在或附加可能性。除非另有定义,包含技术术语及科学术语在内的使用于本说明书中的所有术语具有与本发明所属技术领域的技术人员普遍理解的含义相同的含义。在普遍使用的词典中所定义的术语应解释为具有与相关技术的文脉上所具有的含义一致的含义,并且,除非在本说明书中明确定义,则不应以理想性或过于公式化的含义来进行解释。
图1是示出一般的AUTOSAR自适应平台的架构的图。参考图1,自适应平台提供功能集群和基础服务。
通过对BSW(Basic Software,基本软件)的接口形式化定义的SWC(SoftwareComponent,软件组件)是AUTOSAR架构的组成要素。BSW模块提供基本的标准服务,例如总线通信、内存管理、IO访问、***及诊断服务。AUTOSAR的其他组件是运行时环境(RTE,RuntimeEnvironment),控制SWC之间的连接或从SWC到BSW的连接。AUTOSAR定义的虚拟功能总线(VFB,Virtual Functional Bus)为SWC之间的通信和BSW服务的利用提供概念性基础。SWC的所有通信基于VFB,因此,SWC独立于ECU硬件。藉此,SWC可以在项目和平台重用。VFB通过提供特别设定的RTE而执行,在RTE连接对每个ECU适当设定的BSW。
自适应应用(Adaptive Applications;AA)基于ARA(AUTOSAR Runtime forAdaptive Application)运行。ARA由提供属于Foundation或Services的功能集群的API(Application Programming Interface)组成。Foundation提供AP(Adaptive Platform)和Service的基本功能。所有自适应应用程序都可以为其他自适应应用提供服务。
自适应平台包括功能集群,以提供更好的服务。功能集群包括时间管理集群、操作***集群、执行管理集群、持久性集群、平台健康管理集群、日志和跟踪集群、硬件加速集群、及通信管理集群。功能集群通过每个API(Application Programming Interface)与其他应用通信。由于仅定义了API的实现,因此,自适应平台的功能集群的实现自由度比构成现有经典平台的BSW(Basic Software)协议栈的实现高得多。
基础服务包括软件(SW,Software)配置管理服务、安全管理服务及诊断服务。可以通过中间件(middleware)性质的ara::com(AUTOSAR Runtime for AdaptiveApplications)调用基础服务。
自适应平台考虑由机器执行的硬件。硬件使用各种技术进行虚拟化。硬件包括一台或多台机器。AP实例只运行一个。在该硬件上具有托管机器的单个芯片/多个芯片。
图2是通过SOME/IP通信面向Proxy-Skeleton服务的通信的例示图。AUTOSAR自适应平台与经典平台的最大区别在于通信方式。大多数现有的经典平台都是基于传统的面向信号(Signal-Oriented)的通信。另一方面,自适应平台基于面向服务的通信(Service-Oriented Communication;SOC)。这是一种提供服务的服务器即Skeleton与消费服务的客户即Proxy之间所需的服务通过服务发现(Service Discovery)和SOME/IP(Scalableservice-Oriented MiddlewarE over IP)动态连接的通信方式。车载应用服务器是搭载AUTOSAR自适应平台的***,可通过SOME/IP根据车载应用的目的自如地监测和控制智能传感器和智能执行器。
一般,在车辆自动驾驶平台等对安全敏感的控制器中实时操作***的调度方法非常重要。根据本发明实施例的车辆用实时操作***的调度方法,可以基于优先顺序执行任务。根据本发明实施例的实时操作***的调度可以基于事先确定了将执行每个任务的时间点的调度表来操作。
通常,对每个任务分配的SW的执行时间是提供足够的余量来预先确定任务执行周期和执行顺序。然而,预料不到的情况下,在每个任务发生超过预定时间的情况时,会对调度表和整个SW产生不利影响。因此,本发明的实时操作***的调度公开了在每个任务超过预定时间时的处理方法。例如,当完成每个任务的执行时,可以通过***要设置的标志(Flag)来确认是否正常完成。
对于重要的任务,可以设置备份任务后执行其他的运算过程。若设置为重要的任务未完成,则可以使用备份任务的结果。若在适当的执行时间内也没有完成备份任务,则可以通过用户通知执行***的重新启动或回避风险的操作。
根据本发明实施例的实时操作***的调度,在车辆自主驾驶平台可以提供高准确度的调度。另外,根据本发明实施例的实时操作***的调度是通过提供其他的备份任务来追加备份执行重要任务的功能,从而,可以提高任务执行的准确性。根据本发明实施例的实时操作***的调度,通过确保车辆控制器的安全性,可以减少误动作,并可靠性高地执行。
图3是示出根据本发明实施例的AUTOSAR自适应平台上实时操作***的调度的例示图。参考图3,可以在调度表中的预定时间内完成每个任务(任务1至6)。若在预定时间内没有完成任务执行,则可以显示标志来通知执行未完成。
如图3所示,在核心2(第一核心)可根据可运行功能第一周期期间运行第一线程和第二线程中的一个,来执行第一任务。同时,在第一周期期间在核心3(第二核心)可以执行对应于第一任务的第一备份任务。
在第一周期之后的第二周期期间,可以在核心3(第二核心)执行车辆应用请求的第二任务。在实施例中,第二任务可以运行第二线程来执行,第二任务的备份任务可以在第二周期期间在核心1(第三核心)执行。在实施例中,在第二周期之后的第三周期期间,可以在核心3(第二核心)执行车辆应用请求的第三任务。在实施例中,第三任务可以运行第二线程执行,第三任务的备份任务可以在第三周期期间在核心1(第三核心)执行。另外,应当理解,图3所示的操作***调度仅为一实施例。
在实施例中,备份任务可以提供原始任务的简化算法或能够输出预定结果的结果。
在实施例中,不是提供所有任务的备份任务,而是仅对开发者认为重要的任务提供备份任务。例如,提供任务,只有在没有执行时间内执行原来的任务时,才可以使用结果。
图4是用于说明根据本发明实施例的AUTOSAR自适应平台的操作的图。参考图4,自适应AUTOSAR应用可以向操作***100请求第一可运行功能和第二可运行功能。第一可运行功能及第二可运行功能都必须在预定时间(例如,20ms)内处理。
操作***100可以包括对应于第一可运行功能和第二可运行功能的两种线程管理单元110、120。
第一线程管理单元110可以管理执行一般功能的第一线程。第一线程可以包括开始标志和结束标志。
第二线程管理单元120可以管理被认为重要任务的第二线程。例如,第二线程管理单元120可以发行对第二线程120的备份任务。操作***100可以将所述第二可运行功能识别为非常重要的函数。
第二线程管理单元120可以包括线程标志管理器121、线程主122、线程备份123及线程调度器信息124。
线程标志管理器121可以利用标志管理用户识别重要函数的线程。在实施例中,线程标志管理器121可以观察每个线程中存在的开始标志(Start-Flag)和结束标志(End-Flag)。例如,若线程调度器信息124以及开始标志(Start-Flag)和结束标志(End-Flag)没有及时更新,则线程标志管理器121可以执行本身具有的可运行地址的功能函数。当生成线程函数作为可运行功能(Runnable Function)时,可以映射两个线程(线程主122和线程备份123)。
线程标志管理器121可以在线程主122监控开始标志(Start-Flag)到结束标志(End-Flag)的最后期限(Deadline)和线程的周期。若超过预测信息,则线程标志管理器121可以执行线程备份123的线程。
若在线程备份123中也发生与线程主122相同的问题,则线程标志管理器121可以向用户发出提醒。即在确认2次线程动作之后处理对其的失败(Fail)是重要的功能,而不是一次线程动作之后。
线程主122可以包括开始标志、结束标志和功能指针。开始标志(Start-Flag)包括线程的开始时间。结束标志(End-Flag)包括线程的结束时间。功能指针(FunctionPointer)可执行从线程指针管理器121映射的可运行功能。
线程备份包括开始标志和结束标志。
开始标志(Start-Flag)包括线程的开始时间,结束标志(End-Flag)包括线程的结束的时间点的时间。可运行功能与线程主完全类似。当线程主正常运行时,根本不执行线程备份。
任务调度器信息包括用于任务调度的信息,是存在于本地的元数据文件。任务调度器信息不是如进程(Process)的守护进程(Daemon)类型的应用。任务调度器信息包括对线程标志管理器121要参考的线程和可运行功能的信息。
另外,线程的必须信息是周期(Period)(线程的运行周期)、最后期限(Deadline)(线程运行时开始标志(Start-Flag)和结束标志(End-Flag)的差值,以及线程不得超过该值的值),函数指针(Function Pointer)(要执行的可运行函数)。
图5是示出根据本发明实施例的实时操作***100的操作方法的例示流程图。参考图3至图5,实时操作***100可以如下运行。
实时操作***100可以从自适应AUTOSAR应用接收线程执行请求,并判别可运行功能(S110)。操作***100可以在第一核心根据判别的可运行功能运行第一线程和第二线程中的一个来执行第一任务(S120)。此外,当在第一核心运行第二线程时,操作***100可以在与第一核心不同的第二核心执行第一任务的备份任务(S130)。
在实施例中,第一线程可以包括用于存储线程开始时间的开始标志和用于存储所述线程的结束时间的结束标志。在实施例中,第二线程可以包括线程标志管理器、线程主、线程备份及任务调度器信息。在实施例中,线程主可以包括用于存储线程的开始时间的开始标志、用于存储线程的结束时间的结束标志、以及执行从线程标志管理器映射的可运行功能的功能指针。
在实施例中,线程备份可以包括开始标志和结束标志。在实施例中,线程标志管理器监控线程中存在的开始标志和结束标志,当任务调度器信息、开始标志和结束标志在预定时间内没有更新时,可以利用可运行指针执行可运行功能。在实施例中,当生成线程函数作为可运行功能时,线程标志管理器可以映射线程主和线程备份。
在实施例中,线程主可以监控线程周期,当线程主的线程周期超过预测值时,可以执行线程备份的线程。在实施例中,当线程备份的线程周期超过预测值时,可以向用户发出提醒。在实施例中,操作***可以根据AUTOSAR自适应平台实现。
如本领域技术人员可以理解的,根据本发明的步骤以及/或者操作可以以其他顺序、或者并列、或者为了其他特定的时间(epoch)等,在其他实施例中同时进行。根据实施例,步骤以及/或者操作中的一部分或者全部可以利用存储在一个以上的非暂时性计算机可读介质中的指令、程序、交互式数据结构(interactive data structure)、驱动客户端以及/或者服务器的一个以上的处理器,至少完成或者执行一部分。一个以上的非暂时性计算机可读介质作为示例,可以是软件、固件、硬件以及/或者其任意组合。另外,本说明书中论述的“模块”的功能可以由软件、固件、硬件以及/或者其任意组合构成。
图6是根据本发明实施例的车辆控制器1000的例示图。参考图6,车辆控制器(ECU)1000可以包括MCU1100、存储器1200及通信装置1300。
微控制单元(Micro Control Unit,MCU)1100可以被实现为执行车辆控制器100的整体操作。MCU1100通过执行至少一个指令,可以驱动至少一个程序。例如,至少一个程序可以包括参考图3至图5描述的自适应AUTOSAR应用。
MCU1100可以包括多个核心。多个核心可包括至少一个主核心及至少一个子核心。
存储器1200可以被实现为存储至少一个程序。存储器1200可以包括易失性存储器或非易失性存储器。例如,存储器1200可以包括随机存取存储器(RAM,Random AccessMemory)、静态随机存取存储器(SRAM,Static Random Access Memory)、只读存储器(ROM,Read-Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)和电可擦写可编程只读存储器(EEPROM,Electrically Erasable Programmable Read-OnlyMemory)、NAND闪存,NOR闪存等的存储介质。
通信装置1300可以执行接口作用以与车辆控制器1000的外部进行通信。通常,为了与车辆控制器1000和车辆控制器1000外部的设备通信,可以使用控制器域网(CAN,Controller Area Network)通信、内部互联网络(LIN,Local Interconnect Network)通信及以太网(Ethernet)通信。
用于实现/执行本发明的实施例的一个以上的操作/步骤/模块的一个以上的非暂时性计算机可读介质以及/或者手段可以包括专用集成电路(ASICs;application-specific integrated circuits)、标准集成电路、微控制器、执行适当指令的控制器以及/或者嵌入式控制器、现场可编程门阵列(FPGAs;field-programmable gate arrays)、复杂可编程逻辑器件(CPLDs;complex programmable logic devices)以及等同物,但并不局限于此。
另外,上述本发明的内容仅是用于实施发明的具体实施例。本发明不仅包括具体且可实际利用的手段本身,还可以包括将来可以作为技术使用的抽象且概念性想法的技术思想。
Claims (13)
1.一种车辆控制器的操作***的调度方法,其中,包括:
根据车辆应用请求的第一任务判别可运行功能的步骤;
在第一核心根据判别的可运行功能第一周期期间运行第一线程及第二线程中的一个来执行所述第一任务的步骤;以及
在所述第一核心运行所述第二线程时,在所述第一周期期间与所述第一核心不同的第二核心执行对应于所述第一任务的第一备份任务的步骤。
2.根据权利要求1所述的调度方法,其中,所述第一线程包括用于存储线程的开始时间的开始标志、以及存储所述线程的结束时间的结束标志。
3.根据权利要求1所述的调度方法,其中,所述第二线程包括线程标志管理器、线程主、线程备份及任务调度器信息,
所述线程主包括用于存储线程的开始时间的开始标志、用于存储所述线程的结束时间的结束标志、以及用于执行从所述线程标志管理器映射的可运行功能的功能指针,
所述线程备份包括所述开始标志和所述结束标志。
4.根据权利要求3所述的调度方法,其中,所述线程标志管理器监控所述线程中存在的所述开始标志和所述结束标志,当在预定时间内没有更新所述任务调度器信息、所述开始标志及所述结束标志时,利用可运行指针执行所述可运行功能。
5.根据权利要求4所述的调度方法,其中,生成线程函数作为所述可运行功能时,所述线程标志管理器映射所述线程主和所述线程备份。
6.根据权利要求4所述的调度方法,其中,所述线程主监控线程周期,当所述线程主的线程周期超过预测值时,执行所述线程备份的线程。
7.根据权利要求6所述的调度方法,其中,还包括当所述线程备份的线程周期超过所述预测值时,向用户发出提醒的步骤。
8.根据权利要求1所述的调度方法,其中,所述操作***根据AUTOSAR自适应平台实现。
9.一种车辆控制器,其中,包括:
通信装置,与外部装置进行通信;
存储器,用于存储操作***;以及
微控制单元,用于控制所述通信装置和所述存储器,并驱动所述操作***,
所述操作***,
根据车辆应用请求的第一任务判别可运行功能,
在第一核心第一周期期间根据判别的所述可运行功能运行第一线程及第二线程中的一个来执行所述第一任务,以及
当在所述第一核心运行所述第二线程时,在所述第一周期期间与所述第一核心不同的第二核心执行对应于所述第一任务的第一备份任务。
10.根据权利要求9所述的车辆控制器,其中,在所述第一周期之后的第二周期期间,所述操作***在所述第二核心执行所述车辆应用请求的第二任务。
11.根据权利要求10所述的车辆控制器,其中,所述第二任务运行所述第二线程来执行,
所述操作***在所述第二周期期间在第三核心执行所述第二任务的备份任务,
所述第三核心与所述第一核心和所述第二核心不同。
12.根据权利要求10所述的车辆控制器,其中,在所述第二周期之后的第三周期期间,所述操作***在所述第二核心执行所述车辆应用请求的第三任务。
13.根据权利要求12所述的车辆控制器,其中,所述第三任务运行所述第二线程来执行,
所述操作***在所述第三周期期间在第三核心执行所述第三任务的备份任务,
所述第三核心与所述第一核心和所述第二核心不同。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2020-0175370 | 2020-12-15 | ||
KR1020200175370A KR102485288B1 (ko) | 2020-12-15 | 2020-12-15 | 차량용 제어기 및 그것의 운영체제 스케쥴링 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114637598A true CN114637598A (zh) | 2022-06-17 |
Family
ID=81942514
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111446948.6A Pending CN114637598A (zh) | 2020-12-15 | 2021-11-30 | 车辆控制器及其操作***的调度方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US12026549B2 (zh) |
KR (1) | KR102485288B1 (zh) |
CN (1) | CN114637598A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117459190A (zh) * | 2023-12-20 | 2024-01-26 | 中汽研(天津)汽车工程研究院有限公司 | 一种异构中央计算架构的ota通信方法 |
CN118025049A (zh) * | 2024-04-15 | 2024-05-14 | 成都创科升电子科技有限责任公司 | 一种基于调度器的车辆电控件的控制方法、***及车辆 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102188738B1 (ko) * | 2019-12-09 | 2020-12-08 | 현대오트론 주식회사 | 오토사 운영체제의 알람 오프셋 최적화 장치 |
WO2024147372A1 (ko) * | 2023-01-03 | 2024-07-11 | 엘지전자 주식회사 | 차량의 신호 처리 장치 및 이를 구비하는 차량 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007219937A (ja) | 2006-02-17 | 2007-08-30 | Toyota Infotechnology Center Co Ltd | タスク管理システム、タスク管理方法およびタスク管理プログラム |
KR101901587B1 (ko) | 2011-12-13 | 2018-10-01 | 삼성전자주식회사 | 연성 실시간 운영체제의 실시간성을 확보하는 방법 및 장치 |
US9632822B2 (en) * | 2012-09-21 | 2017-04-25 | Htc Corporation | Multi-core device and multi-thread scheduling method thereof |
KR101439355B1 (ko) | 2012-11-13 | 2014-09-11 | 재단법인대구경북과학기술원 | 차량용 실시간 운영체제의 스케줄링 방법, 차량용 실시간 운영체제의 스케줄링 방법을 수행하는 프로세서를 포함하는 차량의 전자 제어 장치, 및 차량용 실시간 운영체제의 스케줄링 방법을 수행하는 프로그램이 기록된 컴퓨터 판독가능한 기록매체 |
US10165071B2 (en) * | 2016-01-15 | 2018-12-25 | Google Llc | Client-side activity monitoring |
KR20170109169A (ko) * | 2016-03-18 | 2017-09-28 | 국민대학교산학협력단 | Autosar를 적용한 샤시/안전 통합제어 시스템의 응용 소프트웨어 설계 및 멀티코어 기반 각 러너블의 할당 방법 |
EP3671450A1 (en) * | 2018-12-18 | 2020-06-24 | Aptiv Technologies Limited | Virtual electronic control units in autosar |
US11321123B2 (en) * | 2019-11-21 | 2022-05-03 | International Business Machines Corporation | Determining an optimum number of threads to make available per core in a multi-core processor complex to executive tasks |
-
2020
- 2020-12-15 KR KR1020200175370A patent/KR102485288B1/ko active IP Right Grant
-
2021
- 2021-11-23 US US17/533,995 patent/US12026549B2/en active Active
- 2021-11-30 CN CN202111446948.6A patent/CN114637598A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117459190A (zh) * | 2023-12-20 | 2024-01-26 | 中汽研(天津)汽车工程研究院有限公司 | 一种异构中央计算架构的ota通信方法 |
CN117459190B (zh) * | 2023-12-20 | 2024-04-02 | 中汽研(天津)汽车工程研究院有限公司 | 一种异构中央计算架构的ota通信方法 |
CN118025049A (zh) * | 2024-04-15 | 2024-05-14 | 成都创科升电子科技有限责任公司 | 一种基于调度器的车辆电控件的控制方法、***及车辆 |
Also Published As
Publication number | Publication date |
---|---|
US20220188159A1 (en) | 2022-06-16 |
KR20220085366A (ko) | 2022-06-22 |
US12026549B2 (en) | 2024-07-02 |
KR102485288B1 (ko) | 2023-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114637598A (zh) | 车辆控制器及其操作***的调度方法 | |
KR102356316B1 (ko) | 차량 시스템, 차량 및 이러한 차량 시스템을 동작시키기 위한 방법 | |
US8452465B1 (en) | Systems and methods for ECU task reconfiguration | |
JP2013506179A (ja) | 命令スレッドを組み合わせた実行の管理システムおよび管理方法 | |
CN110291504B (zh) | 用于机动车的控制器和相应的机动车 | |
EP2174222A1 (en) | Transactional graph-based computation with error handling | |
Bhat et al. | Practical task allocation for software fault-tolerance and its implementation in embedded automotive systems | |
CN110737453A (zh) | 安全芯片的升级方法、装置及安全芯片 | |
CN111791886B (zh) | 用于车辆的实时控制***以及经由实时控制***执行车辆控制的方法 | |
CN112068960B (zh) | 一种cpu资源分配方法、装置、存储介质及设备 | |
US11951999B2 (en) | Control unit for vehicle and error management method thereof | |
EP4120082A1 (en) | Automotive open system architecture, state management method, and device | |
Frtunikj et al. | A safety aware run-time environment for adaptive automotive control systems | |
KR102109125B1 (ko) | Autosar 기반 차량 ecu 상태 관리 방법 | |
CN111831406A (zh) | 一种基于车载嵌入式***的多任务调度方法及装置 | |
Jahnich et al. | Towards a middleware approach for a self-configurable automotive embedded system | |
WO2018127394A1 (en) | Scalable control system for a motor vehicle | |
US11847012B2 (en) | Method and apparatus to provide an improved fail-safe system for critical and non-critical workloads of a computer-assisted or autonomous driving vehicle | |
CN114253680A (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN114816662A (zh) | 应用于Kubernetes的容器编排方法和*** | |
CN109947232B (zh) | 用于管理悬挂式电子控制单元中***存储器完整性的***和方法 | |
Anthony et al. | A middleware approach to dynamically configurable automotive embedded systems | |
US10430231B2 (en) | Method for creating a hypervisor unit for embedded systems | |
US20240198932A1 (en) | Information processing device, information processing method, and storage medium | |
JP7447781B2 (ja) | 車載コンピュータ、コンピュータ実行方法及びコンピュータプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |