CN104272255B - 功能可扩展的机动车控制器和用于补充机动车控制器的功能的方法 - Google Patents

功能可扩展的机动车控制器和用于补充机动车控制器的功能的方法 Download PDF

Info

Publication number
CN104272255B
CN104272255B CN201380024821.2A CN201380024821A CN104272255B CN 104272255 B CN104272255 B CN 104272255B CN 201380024821 A CN201380024821 A CN 201380024821A CN 104272255 B CN104272255 B CN 104272255B
Authority
CN
China
Prior art keywords
module
motor vehicle
communication
complementary
vehicle controller
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.)
Active
Application number
CN201380024821.2A
Other languages
English (en)
Other versions
CN104272255A (zh
Inventor
O.克里格
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Volkswagen AG
Original Assignee
Volkswagen AG
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Volkswagen AG filed Critical Volkswagen AG
Publication of CN104272255A publication Critical patent/CN104272255A/zh
Application granted granted Critical
Publication of CN104272255B publication Critical patent/CN104272255B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1433Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a module or a part of a module
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Programmable Controllers (AREA)
  • Combined Controls Of Internal Combustion Engines (AREA)

Abstract

本发明涉及一种机动车控制器(11)以及一种用于补充/改变机动车控制器(11)的功能的方法。实现一个机动车控制器(11),它包括:至少一处理器(21),与处理器耦联的存储器(23),其中,在存储器中存储可以在处理器(21)上执行的运行系统(41)的程序编码(40;52‑1至52‑h)和多个应用模块(51‑1至51‑h),它们提供机动车控制器(11)的功能,以及至少一用于与其它机动车控制器(12‑14)或外部的机动车装置(16)交换数据的通讯接口(25),其中,对应用模块(51‑1至51‑h)分别静态地附设对于其各自的执行所需的存储器(22)的程序存储区和数据存储区,并且其中,所述运行系统(41)设计成,为了执行应用模块的程序编码(52‑1至52‑h)在先前静态确定的时间段允许各个应用模块(51‑1至51‑h)在处理器(21)上存取,其中,多个应用模块(51‑1)中的一个设计成更新模块(62),用于通过至少一通讯接口(25)接收一个或多个补充模块(71‑1至71‑i)的程序编码(72‑1‑72‑i)并且存储在存储器(22)里面,用于扩展和/或改变机动车控制器(11)的功能,其中,多个应用模块(51‑1至51‑h)中的一个设计成运行时间环境模块(61)构成,它提供运行时间环境,用于执行一个或多个补充模块(71‑1至71‑i)的程序编码,并且所述更新模块设计成,将补充模块(71‑1至71‑i)的程序编码(72‑1至72‑i)存储在附属于运行时间环境模块(61)的程序存储器(52‑h)里面,其中该运行时间环境模块(61)设计成,在运行时间上动态地划分分配给它的数据存储区(53‑h)以及供它使用的处理器存取时间,用于执行这个或多个补充模块(71‑1至71‑i)的程序编码(72‑1至72‑i)。由此所述补充模块(71‑1至71‑i)的程序编码可以独立于机动车控制器(11)的处理器和存储器布局地构成。

Description

功能可扩展的机动车控制器和用于补充机动车控制器的功能 的方法
技术领域
本发明涉及一种其功能可以事后改变的机动车控制器,还涉及一种用于补充机动车控制器的功能的方法。
背景技术
现代运输工具、尤其是现代机动车包括一个或多个机动车控制器,它们提供用于调节、控制的功能或用于诊断机动车部件。在此由控制器提供的功能范围在研制各个控制器时确定。在此功能经常以确定的传感器或其它控制器的信号或信息为基础,用于提供其专门功能。但是经常出现,在批量生产过程中要提供新的机动车变型,它们要具有扩展的功能范围或者在其中要按照与初始模型不同的控制器组合和模型。在这些状况中期望,可以适配已经完成研制的控制器并且无需全部新研制。
EP 0 869 417 B1致力于这个问题。在那里描述了一个用于控制机动车的机动车控制器单元,具有用于确定机动车和机动车装置的运行状态的传感器,通过用于以传感器信号为基础控制机动车的控制器执行环节,该控制器单元包括具有第一存储器的单片机和CPU,第一存储器存储用于控制执行环节的程序,CPU执行程序计算。规定,该程序含有用于控制机动车装置的应用软件程序和接口软件程序。CPU设计成,执行应用软件程序和接口软件程序。单片机包括第二存储器,用于控制数据、例如应用软件的处理结果。在第一存储器里面存储的程序这样构成,使接口软件程序可以对应于机动车类型变化与应用软件程序无关地改变,由此使应用软件程序可以没有变化地共同用于不同的机动车类型,并且只需逐车地改变接口软件程序。
在DE 10 2009 018 761 A1中描述了一种方法,用于更新机动车的至少一软件程序,其中只能在司机的共同作用下才能替换软件部分。
US 2010/0179720A1包括一种系统和一种方法,其用于执行机动车的维护和修理。描述了一个系统,其中例如通过补丁补充或替换软件程序编码的一些部分。
在DE 10 2008 036 711 A1中建议,在应用替换软件、扩展软件和/或释放软件的条件下实现机动车的以软件为基础的机动车功能,其中已经存在的机动车专用软件通过替换软件、扩展软件和/或释放软件至少部分地替换、扩展或释放。利用集成到机动车里面的装置通过在线连接提供方的服务器下载替换软件、扩展软件和/或释放软件。
所有已知的方法都源自,替换或修改至少一部分现有的程序编码。但是这些改变带来高度风险,因为只能有限地推测这些变化对于控制器的其它软件组成部分的副作用。因此在这些软件变化的验证和保护方面的费用是相当高的并且与保护全部软件研制的费用类似。
发明内容
因此本发明基于的技术问题在于,实现改进的控制器,其中在控制器的加工完成之后和/或在运行中能够实现功能扩展或改变,并且限制由于功能变化至少在其作用效果方面的可能的副作用。同样需要用于补充控制器的功能的改进的方法。
按照本发明这个目的通过具有权利要求1特征的装置以及具有权利要求7特征的方法得以实现。由从属权利要求给出本发明的有利实施例。
本发明基于这种思想,所述控制器的功能在生产时在一个或多个应用模块里面编程,它们提供在设计时所期望的功能。附加地集成另一软件应用到控制器里面,它提供用于执行程序编码的运行时间环境。提供在设计控制器时的基础功能的应用模块以及提供运行时间环境的那个应用模块在控制器中这样地实现,即对它们分别指派静态的处理器存取时间而且也指派静态的存储区。属于在其中一个应用模块中实现的控制器的基础功能是,通过机动车控制器的通讯接口能够使补充模块的程序编码传递到机动车控制器,并且在运行时间环境模块的程序存储区中存储补充模块的程序编码。因此由在运行时间环境中执行的补充模块的程序编码提供扩展功能。指派给运行时间环境模块和其它应用模块的处理器时间被事先确定,由此保证,在加工控制器时实现的在应用模块中执行的功能分别获得足够的处理器存取时间,用于提供其功能。此外通过静态分开存储区排除由于不存在足够的存储器或者由于存储区的被覆盖引起的应用模块的负面影响。因此不必担心由于补充模块功能损坏的不良影响。在运行时间环境中执行的不同补充模块的程序编码只能相互间在这个方面产生不利影响。因此负面效应仅局限于补充模块。
因此尤其建议一机动车控制器,它包括:至少一处理器,与处理器耦联的存储器,其中,在存储器中存储可以在处理器上执行的运行系统的程序编码和多个应用模块,它们提供机动车控制器的功能,以及至少一用于与其它机动车控制器或外部的装置交换数据的通讯接口,其中,对应用模块分别静态地附设对于其各自的执行所需的存储器的程序存储区和数据存储区,并且其中,所述运行系统设计成,为了执行应用模块的程序编码在先前静态确定的时间段允许各个应用模块在处理器上存取,其中,多个应用模块中的一个设计成更新模块,用于通过至少一通讯接口接收一个或多个补充模块的程序编码并且存储在存储器里面,用于扩展和/或改变机动车控制器的功能,其中,多个应用模块中的一个设计成运行时间环境模块构成,它提供运行时间环境,用于执行一个或多个补充模块的程序编码,并且所述更新模块设计成,将补充模块的程序编码存储在附属于运行时间环境模块的程序存储器里面,其中该运行时间环境模块设计成,在运行时间上动态地划分分配给它的数据存储区以及供它使用的处理器存取时间,用于执行这个或多个补充模块的程序编码。
此外实现一种用于补充如上所述的机动车控制器的功能的方法,该方法包括步骤:提供或产生补充模块的程序编码,它在其执行时引起机动车控制器的新的或变化的功能,通过至少一通讯接口构成与机动车控制器更新模块的通讯连接,传递补充模块的程序编码到机动车控制器并且存储程序编码到指派给运行时间环境模块的程序存储区,由此使运行时间环境模块执行补充模块的程序编码。
本发明的另一主要优点是,对于以后时刻加入的补充模块形式的扩展在其制造(建立)时无需认识在其上要执行补充模块的这个或这些控制器的具体的结构或特性。这主要涉及所使用的处理器衍生、处理器内核数量以及控制器的存储器布局。因此以与平台无关的形式作为补充模块的程序编码或脚本编码执行扩展,它在控制器中通过运行时间环境执行。
为了使在控制器中实现的功能可以适配于专用的机动车或者专用的机动车控制器组合,通常在非易失的存储区里面存储参数,它们影响所提供的功能。
因此在本发明的优选实施例中规定,所述存储器包括非易失区,在其中存储或可以存储用于应用模块的参数,其中所述应用模块中的一个提供通过至少一通讯接口的通讯读出和/或设置(替换)参数的功能,并且其中用于补充模块的参数以密码值对的形式存储在参数存储器里面。因此使用密码值对形式的格式是有利的,因为用于各个补充模块所需的参数数量和其格式事先是未知的。但是通过密码可以方便且可靠地鉴别各个必需的参数并且找到相应从属的参数。在其中映射(存储)参数的存储区,或者至少在存储密码参数值对的存储区,最好被映射在静态地指派的存储区中,它附属于运行时间环境模块。因此补充模块可以访问参数值,不会发生直接访问控制器的运行系统级上的存储区。
原则上通过多个应用模块使用存储区带来危险,即产生意外效应。尽管能够在使用静态指派的存储区时,由此实现在不同应用模块或者不同程序编码段(串)之间的通讯,使它们访问公共的存储区。但是,只有当保证,在程序编码段对值进行重新更新之前,例如由程序编码段所写的值被另一程序编码段读出,这个通讯才是可靠的。因为在应用模块与补充模块之间的通讯不应该以这种方式实现,用于避免负效应,它们不是有意的,在优选的实施例中规定,在控制器中的通讯结构在机动车控制器制造时被静态地确定,并且它包括所谓的信息队列,通过它们至少所述运行时间环境模块可以与其余的应用模块交换数据。在制造机动车控制器时刻就已经确定接口和功能,它们应该可以以可能的方式利用以后加入的补充模块。因此,对于数据交换,提供在运行系统级上的静态的信息队列,该数据交换是需要的,例如用于调用功能或者访问提供的接口,运行系统级能够以后将补充模块连接到应用模块上。通过信息队列实现中间模块通讯、即不同应用模块之间的通讯的优点是,可以实现异步数据交换。要交换的数据由一个应用存储到一个确定的信息队列中并且对于另一时刻由另一应用从信息队列读出。这个信息队列仍然可以使数据存储在同一个或另一个信息队列里面,使数据返回传递到一个过程。所述应用模块最好也将静态信息队列用于中间模块通讯。
为了也能够在不同的补充模块之间通讯,有利的是,所述运行时间环境模块在其运行时间环境中提供信息队列管理,它提供静态的运行时间环境信息队列,它们被映射在运行系统级的静态信息队列上,并且能够使补充模块由此与其余应用模块通讯,并且允许在运行时间上形成动态信息队列,用于实现补充模块之间的通讯。因此所述运行时间环境的信息队列管理也必须允许和管理动态信息队列,因为不能预知,在各个补充模块之间可能需要哪种数据交换。
特别简单且在资源消耗方面节省的运行时间环境模块转换(使用)包括堆栈机的形式的虚拟机。对此补充模块的程序编码必须这样地执行,使虚拟机翻译程序编码并且转换成实际存在的处理器的机器命令。在这个转换(使用)中同样通过虚拟机进行具体的存储器分配,从而在执行补充模块时不使用绝对的存储地址。因此对于补充模块实现,使补充模块可以与实际存在的硬件无关地编程。但是关于由应用模块提供的各个功能和接口的知识是必需的,所述补充模块可以通过提供的信息队列的通讯访问它们。
为了保证,在控制器上也可以实际执行补充模块,在一实施例中规定,对补充模块添加元数据,它们包括至少关于执行必需的资源要求信息,并且元数据在传递程序编码之前或者与程序编码一起传递到机动车控制器,并且更新模块(那个能够在控制器中安装补充模块的模块)借助于元数据检验,机动车控制器是否满足必需的资源方面的要求,并且如果是这种情况,那么程序数据存储在运行时间环境模块的程序数据存储区中,否则当不满足关于必需的资源方面的要求时,则中断、拒绝、丢弃补充模块的程序数据的传递,或者从存储器中再消除已经存储的程序数据。属于必需的补充模块的资源主要是:必需的存储器、必需的处理器时间、与其它应用模块或补充模块的通讯接口。通过检验元数据可以保证,在控制器上不存储且不执行补充模块的错误程序数据,它们在控制器上执行时引起错误。这也可能阻碍其它在运行时间环境中执行的补充模块的正确执行。因此一种用于改变或补充机动车控制器功能的优选方法规定这种元数据的检验,或者一般地表达为,资源的检验。
另一实施例规定,通过对于更新模块已知的加密的哈希函数(Hashfunction)保护补充模块的程序编码以及元数据,由此可以识别错误的改变和伴随而来的在元数据中的功能的描述与实际转换成更新模块的程序编码之间的不一致性。由此更新模块可以再卸去坏掉的补充模块和/或阻止或中断其安装。
另一实施例规定,如同由现有技术已知的那样,附加地通过数字签名来标志程序编码、元数据以及哈希函数值。由此更新模块可以检验,补充模块是否已经被值得信赖的源建立并且没有发生对补充模块程序编码的操控。
但是为了扩展机动车控制器的功能,在某些情况下不仅需要与自身控制器的应用模块通讯,而且与其它控制器的应用模块通讯和/或与机动车的其它机动车控制器的其它补充模块通讯是有利的。
在机动车中通常通过总线系统、尤其串联总线系统使控制器相互连接。最广泛使用的是所谓的CAN总线系统和Flexray总线系统。它们不同于通过标准的传递协议构成的总线系统。而在CAN总线系统中各个发送的信息具有标识其内容的标识,在Flexray总线系统上供传递消息使用的时间划分成循环(周期)。在每个循环里面存在时间段,在其中静态地分配各个通讯节点的时间窗口、所谓的时间空档(插槽)。一个循环还包括动态段,在其中不同的通讯参与者以区分优先次序的方式按照其附属于它们的鉴别可以传递不同长度的消息。
此外通常这样设计各个控制器,使得一个控制通讯接口的应用过滤进入到通讯接口的关于其标识的消息。因此只有将这样的消息输送到这些应用用于其处理,它们含有也实际评价机动车控制器的一个应用模块的信息。其它消息已经在进入时被过滤并且抛弃。由此可以减小必需用于中间存储消息的存储器容量和各个应用模块的处理费用。
但是为了在扩展功能时对补充模块提供这样的可能性,即发送消息到其它机动车控制器并由此发送到其它机动车控制器中的其它应用模块和/或补充模块,或者由这些模块评价消息,在优选的实施例中规定,已经在加工机动车控制器时对于补充模块的消息储备一个或多个消息识别(标识),它们由控制器利用,用于发送补充模块信息,或者用于传递信息到补充模块。
在一实施例中规定,所述通讯接口是以消息为基础的接口,并且对各个机动车控制器附设通讯识别并且储备至少一通讯识别、最好一组通讯识别,它们用于,可以传递和接收机动车控制器补充模块的消息或者传递消息到补充模块。所述通讯识别可以在CAN总线中作为消息识别使用。在Flexray总线系统中所述通讯识别可以作为ID使用。
附图说明
下面参照附图详细解释本发明。附图示出:
图1组合到机动车里面的机动车控制器的示意图。
具体实施方式
在图1中简示出机动车1,具有多个位于其中的控制器11-14。控制器11-14通过总线15通讯技术地相互连接。此外通过总线15连接机动车外部的测试仪16,通过它可以在机动车1的控制器11-14上进行诊断和维修工作。在正常行驶运行中,测试仪16当然不与机动车1连接。
控制器的总量在机动车中是可以变化的,在这里示例放大地示出控制器11-14中的一个控制器11。其它控制器12-14最好结构类似地构造。
控制器11的功能设置成可以事后改变和/或扩展,该控制器包括处理器单元21和与其耦联的存储器22。控制器11还包括通讯接口25,它能够实现在机动车总线15上的存取。控制器还具有其它接口26,27。它们与传感器28,29连接。代替传感器28,29也可以使致动器、执行环节(元件)或类似部件与控制器通过接口连接。现有接口的数量取决于控制器在机动车中所执行的一个功能或多个功能。
存储器22通常包括程序存储区31和数据存储区32。它们在硬件技术上可以是不同或相同的,甚至在同一存储模块中执行。程序存储区31在各种情况下都必需是非易失的存储器。对于数据存储器的前提是,使它适合于作为读写存储器。例如可以使用闪存或者EEPROM存储器。但是作为数据存储器也可以使用内存块(存储功能块),它们提供易失性存储器,如同专业人员公知的那样。
在存储器22里面存储运行系统41的程序编码40。对运行系统静态地附设对于其执行必需的数据或工作存储器42。此外在存储器22里面储备并静态分配用于应用模块、在所示示例中例如用于h应用模块的存储区。每个应用模块51-1至51-h包括程序编码52-1至52-h,它存储在存储器22的程序存储器31里面。对每个应用模块此外还同样分配数据存储器53-1至53-h的范围,相应的应用模块需要该范围作为数据和工作存储器,用于提供其功能。对每个应用模块51-1至51-h正好提供必需数量的存储器供使用,由此保证,在执行所有应用模块的时候,不会导致资源瓶颈。事先排除如资源竞争条件、例如存储区的副作用。在这种实施例中运行系统也可以作为几乎等值的应用模块考虑,它承担功能,尤其在各个应用模块51-1至51-h之间分布在处理器21上的计算时间。
对各个应用模块51-1至51-h静态地分配在处理器21上的固定存取时间。由此可以保证,每个应用模块51-1至51-h得到必需的处理器时间,用于执行其功能。在各个应用模块51-1至51-h之间可以非常高性能地通过利用公共的存储区实现所谓的中间模块通讯。这也能够在静态分配时实现,通过对不同的应用模块分配相同的存储区,它们用于中间模块通讯。此外应用模块51-1至51-h可以相互间出现交互作用,通过允许调用功能,它由于固定的存储器分配通过不同的应用模块51-1至51-h以简单的方式实现。但是这种方式存在缺陷,分配给一个应用的处理器时间在调用另一模块的功能时总体上延长。由此可能导致,不能“及时地完成”一个应用模块的功能,如果这个功能调用另一应用模块的功能的时候。只在附加的执行时间对于研制时刻是准确已知的时候,才能够使用中间模块通讯的这种方法,并且在分配必需的处理器时间的时候可以考虑这种方法。
但是优选通过静态提供的所谓的信息队列执行中间模块通讯。这是在其中以所谓的消息(信息)的形式在队列中存储要交换的数据的存储区。其它过程然后可以异步地调出并处理在那里存储的数据,并且以新的消息的形式在同一或另一信息队列(消息队列)中存储同样的结果。尽管在从信息队列不能及时调出消息的最不利的情况下,这种中间模块通讯可能导致信息队列的溢出,但是这不会不利地影响发送、即存储消息的过程。发送者和接收者分别以交换数据的自身复制(副本)来工作,因此避免由于在同一存储器上的不一致的共同存取产生不利地相互影响。
在按照现有技术的控制器中对于扩展控制器功能必需改变应用模块的程序编码,或者必需添加新的用于模块的程序编码,而在这里所述的控制器实施例中建议另一种实现方式。对于加工控制器的时刻确定初始存在的应用模块,并且对这些应用模块分配由其必需的存储区。此外分别确定必需的处理器时间并且静态地分配给应用模块。不仅在现有的存储器方面、而且在现有的处理器时间方面保留的资源静态地分配给在这里称为运行时间环境模块61,51-h的应用模块,。这样构成这个运行时间环境模块61,它翻译程序编码72-1至72-i,通常以脚本编码(SC)的形式,并且转换成现有处理器的机器命令,并且由此补充模块71-1至71-i可以执行。这种方式的主要优点是,初始在控制器11中规定的、通过应用模块51-1至51-h-1提供的功能通过补充模块71-1至71-i的执行几乎不受影响。补充模块71-1至71-i既不在应用模块51-1至51-h-1的存储区上存取,也不会不利地影响其处理器时间,该处理器时间分别静态地分配给它们用于其执行。只在分配给运行时间环境模块61的处理器时间中发生补充模块71-1至71-i的执行,即,各补充模块71-1至71-i的程序编码72-1至72-i的执行。
对于应用模块51-1至51-h、包括运行时间环境模块51-h,61分别在确定的存取时间保证直接在处理器上存取,而动态地通过运行时间环境确定分别供执行补充模块71-1至71-i使用的执行时间。执行时间翻译编码并且在运行时间环境中执行该编码。由各个补充模块71-1至71-i分别利用的数据存储器73-1至73-i也分别动态地对于各模块的执行时间分配各个补充模块71-1至71-i。由此可以实现更好的资源消耗。为此只利用静态分配给运行时间环境模块的存储器。
优选这样构成应用模块51-1至51-h,使它们相互间通过静态信息队列(sMqi)91-1至91-m相互通讯。为了对补充模块给出可以在应用模块51-1至51-h-1提供的功能或接口上存取、包括在数据总线15上存取的可能性,必需在控制器的结构中定义且提供为此所需的通讯对象。
对于补充模块71-1至71-i的中间模块通讯以及对于与应用模块51-1至51-h-1的处理器的通讯在运行时间环境模块61,51-h的运行时间环境中实现所谓的信息桥94。这个信息桥提供补充模块71-1至71-i在静态信息队列91-1至91-m上的存取可能性供使用,通过使它们在运行时间环境模块61,51-h的数据存储区53-h中集中92-1至92-m。附加地补充模块71-1至71-i可以产生并利用用于通讯的彼此动态的信息队列93-1至93-n。
附加地不仅应用模块51-1至51-h的过程、而且补充模块71-1至71-i都可以定义参数,它们影响其执行并且可以由外部测试仪16读出和/或改变。用于应用模块的参数已经在加工控制器时在类型和值域方面被确定,而对于这些参数只需定义存储区和进行静态分配,该存储区存储参数值101-1至101-h。因此这些参数存储在参数存储器100里面,它存储在存储器22的非易失存储区里面,该存储区也可以用作程序存储区31。在参数存储器100里面还可以存储用于补充模块的参数。它们最好作为密码值对被存储(Key-Value存储)102-1至102-I。密码值对分别具有一密码,它明确地表征参数并且附加地具有参数值和必要时的参数类型。通过密码也能够在不了解存储密码值对的存储器地址时找到相应的参数值,由此可以通过相应的补充模块71-1至71-i利用这个参数值。因为不允许在非静态分配给运行时间环境模块61,51-h的存储区上存取补充模块71-1至71-i,参数值存储器100被映射在运行时间环境模块61的存储器里面、最好在非易失的存储区里面。因此在那里存在参数值存储器100的复制(副本)110,在其中复制的参数值111-1至111-k以及密码值对112-1至112-l作为复制出现。备选地也可以使指示运行时间环境61的其中一个补充模块71-1至71-i在参数存储器100上存取并且将数值提供给补充模块71-1至71-i。
为了将用于扩展或改变控制器11的功能的新的补充模块组合到控制器里面,应用模块51-1至51-h-1中的一个设计成所谓的更新模块62。这个功能经常通过应用模块提供,它也提供所谓的统一诊断服务。这个应用模块51-1,62提供功能,通过它测试仪16可以命令,使传递到控制器11上的补充模块71-1至71-i的程序编码72-1至72-i安装在运行时间环境模块61,51-h的非易失程序存储器52-h里面。
在一个优选的实施例中规定,对补充模块71-1至71-i分别附设元(meta)信息74-1至74-i,在其中给出必需的资源、例如以必需的通讯对象、存储器需求、处理器功率的形式等等。
在控制器11里面存在元(meta)数据存储器95,在其中存储从属的、在控制器11里面现有的资源(例如还可供使用的存储器52h,53h、未使用的处理器时间、供使用的信息队列)。在安装新的补充模块71-1至71-i的过程中更新模块51-1,62利用补充模块71-1至71-i的传递的元(meta)数据74-1至74-i检验,是否可以在控制器里面执行这个补充模块。如果检验(比较)过程是正面的(积极的),则补充模块71-1至71-i的程序编码被安装在运行时间环境模块61的程序存储器52-h里面。否则,中断、拒绝程序编码72-1至72-i的下载,或者通过消除相应的程序编码72-1至72-i撤销已经完成的程序编码数据的存储。利用添加到补充模块71-1至71-i的元数据74-1至74-i使元数据存储器95以那个资源、例如新的信息队列进行补充,它供相应的补充模块71-1至71-i使用。在相同的步骤中减少还可以供使用的未利用的资源。
因此所述的控制器以及用于更新的方法能够实现方便地匹配机动车控制器11的功能,同时保护,已经在初始应用模块51-1至51-h中提供的功能不会不利地受到补充模块71-1至71-i的影响。应用模块51-1至51-h在初始方案中已经这样调整,使它们提供必需的通讯对象(例如信息队列),由此接着使补充模块71-1至71-i可以与它们共同作用。为了也能够与其它控制器12-14通讯,有利的是,在方案中消息标识已经对于未来可能添加的补充模块71-1至71-i被储备和保持,或者说设有机构,通过它补充模块71-1至71-i可以通知总线接口16,相应的补充模块71-1至71-i的哪些消息对于其功能是必需的。
不言而喻,仅仅描述了示例性的实施例。
附图标记清单
1机动车
11-14 控制器
15 总线
16 测试仪
21 处理器(CPU)
22 存储器
25 通讯接口
26,27 接口
28,29 传感器
31 程序存储区
32 数据存储区
40 运行系统的程序编码
41 控制器的运行系统
42 工作存储器
51-1-51-h 应用模块
52-1-52-h 应用模块的程序编码
53-1-53-h 应用模块的数据存储器
61 运行时间环境模块
62 更新模块
71-1-71-i 补充模块
72-1-72-i 补充模块的程序编码
72-1-73-i 补充模块的数据存储器/工作存储器
72-1-74-i 补充模块的元数据(meta数据)
91-1-91-m 静态消息队列
92-1-92-m 映射的(复制的)静态消息队列
93-1-93-n 动态消息队列
94 信息桥
95 元数据存储器(meta数据存储器)
100 参数存储器
101-1-101-k 参数值
102-1-102-I 密码值对
110 参数存储器复制
111-1-111-k 参数值复制
112-1-112-I 密码值对复制

Claims (9)

1.一种机动车控制器(11)包括:
至少一处理器(21),
与处理器耦联的存储器(22),
其中,在存储器中存储可以在处理器(21)上执行的运行系统(41)的程序编码(40;52-1至52-h)和多个应用模块(51-1至51-h),它们提供机动车控制器(11)的功能,以及
至少一用于与其它机动车控制器(12-14)或外部的机动车装置(16)交换数据的通讯接口(25),
其中,对应用模块(51-1至51-h)分别静态地附设对于其各自的执行所需的存储器(22)的程序存储区和数据存储区,并且
其中,所述运行系统(41)设计成,为了执行应用模块的程序编码(52-1至52-h)在先前静态确定的时间段允许各个应用模块(51-1至51-h)在处理器(21)上存取,
其中,多个应用模块中的一个(51-1)设计成更新模块(62),用于通过至少一通讯接口(25)接收一个或多个补充模块(71-1至71-i)的程序编码(72-1-72-i)并且存储在存储器(22)里面,用于扩展和/或改变机动车控制器(11)的功能,
其特征在于,
多个应用模块(51-1至51-h)中的一个设计成运行时间环境模块(61),它提供运行时间环境,用于执行一个或多个补充模块(71-1至71-i)的程序编码,并且
所述更新模块设计成,将补充模块(71-1至71-i)的程序编码(72-1至72-i)存储在附属于运行时间环境模块(61)的程序存储器(52-h)里面,其中该运行时间环境模块(61)设计成,在运行时间上动态地划分分配给它的数据存储区(53-h)以及供它使用的处理器存取时间,用于执行所述一个或所述多个补充模块(71-1至71-i)的程序编码(72-1至72-i)。
2.如权利要求1所述的机动车控制器(11),其特征在于,所述存储器(22)包括非易失参数存储器(100),在其中存储或可以存储用于应用模块(51-1至51-h)的参数(101-1至101-h),其中所述应用模块(51-1至51-h)中的一个提供功能,该功能允许通过至少一通讯接口(25)的通讯读出和/或设置参数,其中用于补充模块(71-1至71-i)的参数以密码值对(102-1至102-h)的形式存储在参数存储器(100)里面。
3.如权利要求1或2所述的机动车控制器(11),其特征在于,在控制器(11)中的通讯结构在机动车控制器制造时被静态地确定,它包括信息队列(91-1至91-m),通过它们所述运行时间环境模块(61)可以与其余的应用模块(51-1至51-h-1)交换数据。
4.如权利要求3所述的机动车控制器(11),其特征在于,所述运行时间环境模块(61)在其运行时间环境中提供信息队列管理(94),它提供静态的运行时间环境信息队列(92-1至92-m),它们被映射在运行系统级的静态信息队列(91-1至91-m)上并且能够使补充模块(71-1至71-i)与其余的应用模块(51-1至51-h-1)的通讯,并且允许在运行时间上形成动态的信息队列(93-1至93-n),用于实现补充模块(71-1至71-i)之间的通讯。
5.如权利要求1或2所述的机动车控制器(11),其特征在于,所述运行时间环境模块(61)包括堆栈机形式的虚拟机(VM)。
6.如权利要求1或2所述的机动车控制器(11),其特征在于,所述通讯接口(25)作为以消息为基础的接口,并且对各个机动车控制器附设通讯识别并且确定至少一通讯识别,它们被设置用于补充模块(71-1至71-i)的通讯或与补充模块(71-1至71-i)的通讯。
7.如权利要求1或2所述的机动车控制器(11),其特征在于,所述通讯接口(25)作为以消息为基础的接口,并且对各个机动车控制器附设通讯识别并且确定一组通讯识别,它们被设置用于补充模块(71-1至71-i)的通讯或与补充模块(71-1至71-i)的通讯。
8.一种用于补充如上述权利要求中任一项所述的机动车控制器(11)功能的方法,包括步骤:
提供或产生补充模块(71-1至71-i)的程序编码(72-1至72-i),它在其执行时引起机动车控制器(11)的新的或改变的功能,
通过至少一通讯接口(15)构成与机动车控制器(11)更新模块(51-1)的通讯连接,
传递补充模块(71-1至71-i)的程序编码(72-1至72-i)到机动车控制器并且将程序编码(72-1至72-i)存储在分配给运行时间环境模块(61)的程序存储区(52-h)中,由此运行时间环境模块(61)执行补充模块(71-1至71-i)的程序编码(72-1至72-i)。
9.如权利要求8所述的方法,其特征在于,对补充模块(71-1至71-i)的程序编码(72-1至72-i)添加元数据,它们至少包括关于为了执行所必需的资源的要求信息,并且所述元数据(74-1至74-i)在传递程序编码(72-1至72-i)之前或者与程序编码(72-1至72-i)一起传递到机动车控制器(11),并且所述更新模块(51-1)利用元数据(74-1至74-i)检验,所述机动车控制器(11)是否满足所必需的资源方面的要求,并且当不满足时,中断、拒绝、丢弃或者由存储器中再消除补充模块(71-1至71-i)的程序编码的传递。
CN201380024821.2A 2012-05-12 2013-05-08 功能可扩展的机动车控制器和用于补充机动车控制器的功能的方法 Active CN104272255B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE102012009482.5 2012-05-12
DE102012009482.5A DE102012009482B4 (de) 2012-05-12 2012-05-12 Funktional erweiterbares Fahrzeugsteuergerät und Verfahren zum Ergänzen der Funktionalität eines Fahrzeugsteuergeräts
PCT/EP2013/059663 WO2013171122A2 (de) 2012-05-12 2013-05-08 Funktional erweiterbares fahrzeugsteuergerät und verfahren zum ergänzen der funktionalität eines fahrzeugsteuergeräts

Publications (2)

Publication Number Publication Date
CN104272255A CN104272255A (zh) 2015-01-07
CN104272255B true CN104272255B (zh) 2017-05-10

Family

ID=48407562

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380024821.2A Active CN104272255B (zh) 2012-05-12 2013-05-08 功能可扩展的机动车控制器和用于补充机动车控制器的功能的方法

Country Status (4)

Country Link
US (1) US9880927B2 (zh)
CN (1) CN104272255B (zh)
DE (1) DE102012009482B4 (zh)
WO (1) WO2013171122A2 (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102011079399A1 (de) * 2011-07-19 2013-01-24 Bayerische Motoren Werke Aktiengesellschaft Steuervorrichtung für ein Kraftfahrzeug, Programmiervorrichtung und Programmiersystem
US9779247B2 (en) * 2015-05-29 2017-10-03 GM Global Technology Operations LLC Boot control systems and methods for vehicles
DE102015213522A1 (de) * 2015-07-17 2017-01-19 Robert Bosch Gmbh Bussystem, Teilnehmerstation dafür und Verfahren zur Konfiguration eines statischen Bussystems für eine dynamische Kommunikation
DE102015214376A1 (de) * 2015-07-29 2017-02-02 Robert Bosch Gmbh Verfahren und Vorrichtung zur On-Board-Diagnose bei einem Steuergerät mit einem Hypervisor und mindestens einem unter dem Hypervisor betriebenen Gastsystem
US10223294B2 (en) 2015-09-01 2019-03-05 Nxp Usa, Inc. Fast secure boot from embedded flash memory
DE102015115855A1 (de) * 2015-09-21 2017-03-23 Knorr-Bremse Systeme für Nutzfahrzeuge GmbH System und Verfahren zur Verteilung und/oder Aktualisierung von Software in vernetzten Steuereinrichtungen eines Fahrzeugs
US10235218B2 (en) * 2016-05-03 2019-03-19 International Business Machines Corporation Automatic correction of cryptographic application program interfaces
DE102016217636A1 (de) * 2016-09-15 2018-03-15 Robert Bosch Gmbh Bildverarbeitungsalgorithmus
DE102016221108A1 (de) * 2016-10-26 2018-04-26 Volkswagen Aktiengesellschaft Verfahren zum Aktualisieren einer Software eines Steuergeräts eines Fahrzeugs
DE102017200669A1 (de) * 2017-01-17 2018-07-19 Robert Bosch Gmbh Verfahren und Vorrichtung zum Betreiben eines Steuergeräts, Computerprogramm und Verfahren zum Generieren des Computerprogramms
DE102018131134A1 (de) 2018-12-06 2020-06-10 Bayerische Motoren Werke Aktiengesellschaft Modulares elektronisches Steuergerät für ein Kraftfahrzeug sowie Kraftfahrzeug mit einem solchen Steuergerät und Rechenmoduleinheit für das Steuergerät
US10606786B2 (en) * 2019-01-29 2020-03-31 Intel Corporation Upgradable vehicular computing methods and apparatuses
DE102020116714A1 (de) * 2020-06-25 2021-12-30 Audi Aktiengesellschaft Steuergerät für ein Fahrzeug, System, Verfahren und Kraftfahrzeug mit einem solchen Steuergerät
CN113859391A (zh) * 2021-10-13 2021-12-31 秦皇岛奥卡深软件开发有限公司 通过添加车型连接模块应用汽车新零部件的方法
CN116954942A (zh) * 2023-06-29 2023-10-27 广州汽车集团股份有限公司 接口调用方法、装置、车辆及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102008036711A1 (de) * 2008-08-07 2010-02-11 Volkswagen Ag Verfahren zum Ändern einer softwarebasierten Fahrzeugfunktion eines Kraftfahrzeugs
CN102202940A (zh) * 2008-09-03 2011-09-28 株式会社东芝 车载显示装置、扩展装置以及个别功能装置
CN102262540A (zh) * 2011-08-11 2011-11-30 浙江大学 一种应用于autosar ecu配置的基础软件参数定义扩展方法

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0636955B1 (en) 1993-07-26 1998-11-04 Hitachi, Ltd. Control unit for vehicle and total control system therefor
JP3424548B2 (ja) 1998-04-08 2003-07-07 松下電器産業株式会社 組み込み機器用ソフトウエア論理シミュレータ
US6487717B1 (en) 1999-01-15 2002-11-26 Cummins, Inc. System and method for transmission of application software to an embedded vehicle computer
US8090811B2 (en) * 2000-06-06 2012-01-03 Panasonic Electric Works Co., Ltd. Service provider for embedded devices using a message store
US7779407B2 (en) 2002-05-29 2010-08-17 Adams Phillip M Computer-hardware, life-extension apparatus and method
US7389411B2 (en) * 2003-08-29 2008-06-17 Sun Microsystems, Inc. Secure transfer of host identities
US20050090941A1 (en) * 2003-10-22 2005-04-28 General Motors Corporation Telematics based programming gateway
US7376945B1 (en) 2003-12-02 2008-05-20 Cisco Technology, Inc. Software change modeling for network devices
US7844964B2 (en) * 2004-09-23 2010-11-30 Hewlett Packard Development Company, L.P. Network for mass distribution of configuration, firmware and software updates
US7730472B2 (en) 2004-09-24 2010-06-01 Hewlett-Packard Development Company, L.P. Dynamic linking of modules in a pre-operating system environment
NZ561149A (en) * 2005-02-22 2010-07-30 Connectif Solutions Inc Distributed asset management system and method
DE102005050304A1 (de) 2005-10-17 2007-04-19 Netccm Gmbh Verfahren und Programm für die Generierung automatisch verteilbarer Clients von Application-Servern
US7823020B2 (en) * 2006-08-30 2010-10-26 International Business Machines Corporation System and method for applying a destructive firmware update in a non-destructive manner
US8352231B2 (en) 2007-08-30 2013-01-08 International Business Machines Corporation System for performing a co-simulation and/or emulation of hardware and software
US20090119657A1 (en) * 2007-10-24 2009-05-07 Link Ii Charles M Methods and systems for software upgrades
US8332838B2 (en) * 2007-11-14 2012-12-11 Continental Automotive Systems, Inc. Systems and methods for updating device software
US8490074B2 (en) * 2007-11-27 2013-07-16 The Boeing Company Aircraft software part library
US8190322B2 (en) 2009-01-13 2012-05-29 GM Global Technology Operations LLC Autonomous vehicle maintenance and repair system
DE102009018761A1 (de) 2009-04-27 2010-10-28 Bayerische Motoren Werke Aktiengesellschaft Verfahren zur Aktualisierung von Softwarekomponenten
US8296411B2 (en) 2010-03-01 2012-10-23 International Business Machines Corporation Programmatically determining an execution mode for a request dispatch utilizing historic metrics
US20110238402A1 (en) * 2010-03-23 2011-09-29 Fujitsu Limited System and methods for remote maintenance in an electronic network with multiple clients
US9197314B1 (en) * 2013-11-08 2015-11-24 Gogo Llc Data delivery to devices on vehicles using multiple forward links

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102008036711A1 (de) * 2008-08-07 2010-02-11 Volkswagen Ag Verfahren zum Ändern einer softwarebasierten Fahrzeugfunktion eines Kraftfahrzeugs
CN102202940A (zh) * 2008-09-03 2011-09-28 株式会社东芝 车载显示装置、扩展装置以及个别功能装置
CN102262540A (zh) * 2011-08-11 2011-11-30 浙江大学 一种应用于autosar ecu配置的基础软件参数定义扩展方法

Also Published As

Publication number Publication date
DE102012009482B4 (de) 2020-06-25
CN104272255A (zh) 2015-01-07
US20150154113A1 (en) 2015-06-04
DE102012009482A1 (de) 2013-11-14
WO2013171122A3 (de) 2014-01-16
WO2013171122A2 (de) 2013-11-21
US9880927B2 (en) 2018-01-30

Similar Documents

Publication Publication Date Title
CN104272255B (zh) 功能可扩展的机动车控制器和用于补充机动车控制器的功能的方法
CN103713932B (zh) 一种电子控制单元中应用程序的更新方法及装置
CN103777983B (zh) 一种星载软件在轨维护及升级方法
CN111886576A (zh) 用于更新远程网络设备的方法和装置
CN103218569A (zh) 用以替换引导加载器公共密钥的方法
CN102263698B (zh) 虚拟通道的建立方法、数据传输的方法及线卡
US9751474B2 (en) Method for configuring a control unit, control unit and vehicle
CN104417072A (zh) 存储器组、耗材芯片、耗材芯片组和成像盒
WO2011043424A1 (ja) 制御装置、制御方法及びコンピュータプログラム
CN1122929C (zh) 在远程存储器中控制原子操作的方法以及实现这种方法的装置
CN107771388A (zh) 用于在机动车中的软件组件之间通信的方法
CN109835278A (zh) 一种车载计算平台
CN111475191A (zh) 基于多核技术的汽车控制器软件升级系统及方法
WO2023272570A1 (zh) 电子控制单元ecu更新的方法、ecu和终端
CN114185572A (zh) 数据的刷写方法、装置、设备及存储介质
CN111791886B (zh) 用于车辆的实时控制系统以及经由实时控制系统执行车辆控制的方法
ITMI20072178A1 (it) Procedimento per il funzionamento di un'unita' di calcolo
CN115668130A (zh) 用于管理机动车辆的电子控制单元的设备和方法
CN103688243A (zh) 用于机动车的控制装置、编程装置和编程系统
CN103370665A (zh) 用于运行作业机器的方法和作业机器
JP2009107358A (ja) 車載制御装置
CN114144759A (zh) 用于更新车辆的车载计算机的软件的更新方法和更新装置,所述车载计算机包括执行存储器、备份存储器和检查存储器
WO2023175752A1 (ja) 車載プログラム更新システム、車載プログラム更新方法
US20240036941A1 (en) Vehicle-mounted computer, computer execution method, and computer program
KR101575258B1 (ko) 차량 데이터 제어 방법 및 그 장치

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant