CN112400162A - 模拟装置及其方法、以及ecu装置 - Google Patents

模拟装置及其方法、以及ecu装置 Download PDF

Info

Publication number
CN112400162A
CN112400162A CN201980031431.5A CN201980031431A CN112400162A CN 112400162 A CN112400162 A CN 112400162A CN 201980031431 A CN201980031431 A CN 201980031431A CN 112400162 A CN112400162 A CN 112400162A
Authority
CN
China
Prior art keywords
function
processing
ecu
timing
time
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
Application number
CN201980031431.5A
Other languages
English (en)
Inventor
村岛康哲
福岛悠史
成泽文雄
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.)
Hitachi Astemo Ltd
Original Assignee
Hitachi Automotive Systems Ltd
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 Hitachi Automotive Systems Ltd filed Critical Hitachi Automotive Systems Ltd
Publication of CN112400162A publication Critical patent/CN112400162A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/10Geometric CAD
    • G06F30/15Vehicle, aircraft or watercraft design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/12Timing analysis or timing optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Geometry (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Automation & Control Theory (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明的目的在于提供一种能够通过简便的方法使PC模拟环境的执行定时接近实际ECU的模拟装置及其方法、以及ECU装置。一种模拟装置,其特征在于,所述模拟装置由第一计算机构成,该第一计算机具有:第一性能测定功能,其得到在第一计算机中执行应用软件时的第一处理定时;以及定时调整功能,其根据第一处理定时与在第二计算机中执行应用软件时的第二处理定时之间的时间差,进行第一计算机中的应用软件的执行时刻的定时调整。

Description

模拟装置及其方法、以及ECU装置
技术领域
本发明涉及具备使执行定时一致的功能的模拟装置及其方法、以及ECU装置,例如涉及在汽车的电子控制装置(ECU:Electronic Control Unit)的软件开发时开发者使用的模拟装置及其方法、以及ECU装置。
背景技术
在面向ECU的软件开发中,在开发初期阶段制作硬件试验机的情况很少。因此,一般采用如下的流程:最初在个人计算机PC上进行设计后,在PC环境(模拟环境)中进行动作确认,将在PC环境中验证过的软件移植到作为硬件试验机的实际ECU环境中,进行动作确认。
另外,即使在制作了硬件试验机后,也经常有分配给软件开发者的硬件试验机的数量很少的情况,例如,有时10人的软件开发者会共用1台硬件试验机。
在这种情况下,出现在作为硬件试验机的实际ECU环境与PC环境两者中进行软件SW等的动作确认的情形。
在这种开发流程中,由于个人计算机PC与ECU的HW(硬件)性能差,经常发生在PC环境与实际ECU环境中应用软件的动作结果产生差异这一情况。
由于在PC环境与实际ECU环境中应用软件的执行定时出现差异,会出现只在其中一个环境中发生的不良情况。
另外,不仅是PC环境与实际ECU环境的差异,在开发中使用的个人计算机PC的规格大多因开发者而不同,因此,也会发生原本仅发生在实际ECU与特定的PC中的状况。
在使用PC模拟器的软件开发的上游工序中,为了提高软件的质量,针对使用的每台个人计算机PC使PC模拟环境下的处理定时接近实际ECU处理定时很重要。
关于这些内容,在专利文献1的技术方案2中,记载有“能够实现模拟开发环境仅以实际使用开发机器的微处理器单元的时间为测定对象的时钟中断的模拟”。
现有技术文献
专利文献1
专利文献1:日本特开平5-282160号公报
发明内容
发明要解决的问题
在专利文献1中,虽然能够基于时钟中断使处理开始定时一致,但由于不能调整这以后的处理定时,所以会出现HW性能所引起的差异。
例如,当在多任务操作系统上运行多个应用的情况下,有时在任务间共享的变量的更新定时会在模拟环境与实际ECU环境中出现差异。作为其结果,由于参照变量的定时发生变化,有时应用软件的动作会出现差异。
另外,即使存在用于进行定时调整以提高PC模拟器中的重现性的结构,开发者使用的每台个人计算机PC的性能(时钟频率等)也存在差异,定时调整用参数需要针对每台个人计算机PC进行单独调整。
然而,作为用于确定定时调整用参数的信息,有CPU时钟比,但也有外部存储器访问性能的差异、在个人计算机PC上运行的其他进程的影响等因素,难以仅靠固定的计算式来算出有效的参数。
因此,本发明的目的在于提供一种能够通过简便的方法使PC模拟环境的执行定时接近实际ECU的模拟装置及其方法、以及ECU装置。
用于解决问题的手段
根据以上情况,在本发明中,设为“一种模拟装置,其特征在于:所述模拟装置由第一计算机构成,该第一计算机具有:第一性能测定功能,其得到在第一计算机中执行应用软件时的第一处理定时;以及定时调整功能,其根据第一处理定时与在第二计算机中执行应用软件时的第二处理定时之间的时间差,进行第一计算机中的应用软件的执行时刻的定时调整。”。
另外,在本发明中,设为“一种模拟装置,其特征在于,具备:第一计算机,具有:第一性能测定功能,其得到在第一计算机中执行应用软件时的第一处理定时;以及定时调整功能,其根据第一处理定时与在第二计算机中执行应用软件时的第二处理定时之间的时间差,进行第一计算机中的应用软件的执行时刻的定时调整;第二计算机,具有:第二性能测定功能,其得到执行应用软件时的处理定时来作为第二处理定时;以及通信装置,其连接第一计算机与第二计算机。”。
另外,在本发明中,设为“一种ECU装置,其特征在于,具备:性能测定功能,其用于在执行应用软件时获得第二处理定时;测定结果存储部,其存储第二处理定时;以及通信装置,其用于将第二处理定时发送到外部。”。
另外,在本发明中,设为“一种模拟方法,其特征在于:根据在第一计算机中执行应用软件时的第一处理定时与在第二计算机中执行应用软件时的第二处理定时之间的时间差,进行所述第一计算机中的所述应用软件的执行时刻的定时调整。”。
发明效果
根据本发明,能够使PC模拟环境中的执行定时接近实际ECU。由于可以针对每个PC进行定时的调整,所以能够针对每个开发者的PC环境来调整延迟量。
进而,根据本发明的实施例,即使是在开发过程中的实际ECU试验机的台数较少的状态下,也能够在接近实际ECU中的处理定时的环境下验证软件,能够更加有助于确保上游工序中的软件的品质。
附图说明
图1是表示本发明的模拟装置中的实际ECU环境与PC环境的结构例的图。
图2是表示构成模拟装置的个人计算机PC的、特别是关于延迟注入功能SW11的硬件结构以及主要的处理功能的图。
图3是表示到使用模拟装置制作移植到ECU装置的软件为止的生成过程的图。
图4是表示本发明的实施例2的与应用开发第一阶段有关的处理的图。
图5是表示本发明中使用的C语言程序例的图。
图6是表示延迟参数文件Fi3的表设定例的图。
图7是表示实际ECU、没有定时调整的情况、实施了定时调整的情况下的模拟器中的执行定时例的图。
图8是表示ECU的处理速度比个人计算机的处理速度快的情况下的定时例的图。
图9是表示实际ECU的CPU时钟数与模拟器运行的个人计算机PC的时钟数的比率的图。
图10是表示由实际ECU执行情况下的处理定时与由PC模拟器执行情况下的处理定时的图。
图11是表示任务A和B的任务的优先级的关系的图。
图12是表示多任务中的中断处理的情况下的定时调整的方案的图。
图13是表示与构成模拟装置的个人计算机PC以及实际环境机S的延迟量确定、调整功能有关的处理流程的图。
图14是表示关于延迟量确定、调整功能的方案的图。
图15是表示本发明中使用的C语言程序例的图。
图16是表示为了延迟量确定和定时调整而执行的个人计算机PC及实际环境机S中的处理内容的概略流程图。
图17是表示ECU测定结果文件Fi1、PC测定结果文件Fi2的结构例的图。
图18是表示定时调整前后的时间关系的图。
图19是表示更新延迟参数文件Fi3的具体处理流程的图。
图20是表示性能比较前的初始状态下的延迟参数表的一例的图。
图21是表示在图20的初始状态的延迟参数表中反映了每个子函数的延迟量的延迟参数表的图。
图22是表示发生了多任务的上下文切换时的执行定时例的图。
图23是表示各任务存储的开始、结束时刻的一例的图。
具体实施方式
以下,参照附图详细说明本发明的模拟装置。此外,由于本发明的实施例涉及多方面,所以在实施例1中以模拟装置的、特别是硬件结构为主体进行说明,在实施例2至实施例5中,对执行用于使PC模拟环境的执行定时接近实际ECU的延迟处理的例子进行说明,在实施例6以后,说明针对每台个人计算机PC确定用于使PC模拟环境的执行定时接近实际ECU的延迟量,并在PC模拟环境中的执行时一边在规定的位置执行延迟处理一边进行定时调整的例子。
实施例1
在实施例1中,以模拟装置的特别是硬件结构为主体进行说明。图1表示本发明的模拟装置中的实际ECU环境与PC环境的结构例。
图1的右侧表示实现实际ECU环境的实际环境机S的结构例,左侧表示实现PC环境的个人计算机PC的结构例。实际环境机S与多台个人计算机PC(PCa、PCb......PCn)通过通信装置180与外部系统/总线181连接。此外,个人计算机PC基本上具有相同的结构、功能,因此,以下以个人计算机PCa为代表例子进行说明。
由于实际环境机S和个人计算机PC都由计算机系统构成,所以其硬件结构众所周知,构成为在系统/总线101上连接CPU102、主存储装置(RAM)103、硬盘驱动器(HDD)104或ROM108等。另外,个人计算机PC上还连接有用于开发者执行模拟操作和模拟结果的验证的键盘105、鼠标106、显示器107。
实际环境机S和个人计算机PC的硬件结构如上所述,但是是在硬盘驱动器104或ROM108中搭载有这里实现的主要功能。
首先,在实现PC环境的个人计算机PC的硬盘驱动器104中,作为在PC模拟环境下运行的软件SW,存储有ECU应用软件SW1、性能比较软件SW2、进行与ECU的通信的通信软件SW3。此外,ECU应用软件SW1具备延迟注入功能SW11和性能测定功能SW12,性能比较软件SW2具备测定结果比较/延迟参数设定部SW21、比较结果显示部SW22,通信软件SW3具备测定结果接收部SW31。此外,ECU应用软件SW1表示个人计算机PC中的模拟软件(PC模拟软件)。
另外,在实现PC环境的个人计算机PC的硬盘驱动器104中,作为与在PC模拟环境下运行时使用的各种数据有关的数据文件Fi,存储有保存了ECU中的测定结果的ECU测定结果文件Fi1、保存了PC测定结果的PC测定结果文件Fi2、比较两个测定结果的内容并保存了确定出的延迟参数的延迟参数文件Fi3。
另一方面,在实现实际ECU环境的实际环境机S的ROM108中存储有ECU应用软件SW4。ECU应用软件SW4具有性能测定功能SW41和测定结果发送部SW42。另外,在实现实际ECU环境的实际环境机S的主存储装置(RAM)103中,作为与在实际ECU环境下运行时使用的各种数据有关的数据文件Fi,存储有保存了ECU中的测定结果的ECU测定结果文件Fi4。
此外,图1所说明的结构和处理是作为一个实施例来说明的,应该理解,并未意图将本发明的技术范围限定于该实施例来解释。
在使用图1说明的各种处理中,个人计算机PC的硬盘驱动器104中的ECU应用软件SW1中的延迟注入功能SW11涉及执行用于使PC模拟环境的执行定时接近实际ECU的延迟处理,将在实施例2至实施例5中进行说明。另外,图1中的其他处理功能涉及针对每台个人计算机PC确定用于使PC模拟环境的执行定时接近实际ECU的延迟量,并在PC模拟环境中的执行时一边在规定的位置执行延迟处理一边进行定时调整,将在实施例6以后进行说明。
实施例2
在本发明的实施例2至实施例5的说明中,对构成模拟装置的个人计算机PC的、特别是关于延迟注入功能SW11的硬件结构以及主要的处理功能进行说明。另外,对到使用模拟装置制作移植到ECU装置的软件为止的生成过程进行说明。
首先,使用图2,说明构成模拟装置的个人计算机PC的、特别是关于延迟注入功能SW11的硬件结构和主要处理功能。
如图1中所述,图2的模拟装置由一般的个人计算机PC构成,作为其硬件结构,在个人计算机PC的系统/总线101上连接有CPU102、主存储装置(RAM)103、硬盘驱动器(HDD)104、键盘105、鼠标106以及显示器107等。
图2的模拟装置具体地对图1的延迟注入功能SW11进行功能展开,可以表示为形成于硬盘驱动器104内的各种功能或产物。具体而言,延迟注入功能SW11可以表示为保存或形成有关于ECU应用软件的ECU源代码111、用于生成面向实际ECU的执行文件的交叉编译器112、用于生成PC模拟用的执行文件的编译器113、通过使用交叉编译器112构建应用软件111而生成的实际ECU用执行文件114、以及通过使用编译器113构建应用软件111而生成的PC模拟器用执行文件115。
根据图2,存在根据ECU应用软件的源代码111形成PC模拟器用执行文件115的处理流程F1、以及根据ECU应用软件的源代码111形成实际ECU用执行文件114的处理流程F2,这些处理流程F1、F2按照图3所示的后述的步骤来执行。
此外,在ECU源代码111中具有在实际ECU和PC模拟器两者中运行的ECU应用软件121、以及仅在PC模拟器环境中运行的延迟注入用函数122。
另外,在个人计算机PC的硬盘驱动器104中存储有保存了仅在PC模拟器环境中使用的延迟信息的延迟参数文件Fi3。
另外,在PC模拟器用编译器113中具有用于将延迟注入用功能调用处理挂接(hooking)到ECU软件内的编译选项131。当通过编译器113指定编译选项131来对ECU源代码111进行编译时,PC模拟器用执行文件115内包含延迟注入用执行代码141。延迟注入用执行代码141具有执行与记载于延迟参数文件Fi3中的延迟量相应的延迟处理的功能。
此外,通过处理流程F1中的编译处理,在PC模拟器用执行文件115内生成并存储ECU应用执行代码142和延迟注入用执行代码141,通过处理流程F2中的编译处理,在实际ECU用执行文件114内生成并存储ECU应用执行代码143。
此外,在此说明的结构和处理是作为一个实施例来说明的,应该理解的是,并未意图将本发明的技术范围限定于该实施例进行解释。
图3是表示到使用模拟装置制作移植到ECU的软件为止的以往的生成过程的图。
图3的(a)表示应用开发第一阶段,例如,关于ECU中的制动操作的ECU应用软件121通过PC模拟器用编译器113而被转换,在PC模拟器用执行文件115内生成ECU应用执行代码142。这个处理的流程用处理流程F1表示。
另外,在该阶段,在个人计算机PC内执行使用了ECU应用执行代码142的各种模拟,该结果被适当地显示在显示器107等上。开发者M接收显示在显示器107上的模拟的结果,使用鼠标106、键盘105等输入单元适当改变ECU应用软件121,最终得到应用软件121A。另外最终得到ECU应用执行文件代码142A(未图示)。
图3的(b)表示应用开发第二阶段,通过实际ECU用交叉编译器112来转换在应用开发第一阶段最终生成的ECU应用软件121A,在实际ECU用执行文件114内生成ECU应用执行代码143。这个处理的流程用处理流程F2表示。
图3的(c)表示ECU确认阶段,将在应用开发第二阶段最终得到的ECU应用执行代码143移植到ECU中,由实际机器执行各种检查等。
图3所示的上述步骤表示到使用模拟装置制作移植到ECU的软件为止的以往的生成过程,但该情况下的问题点在于,由于构成模拟装置的第一计算机即个人计算机PC与构成ECU的第二计算机之间的HW性能差(硬件性能差),在个人计算机PC环境与ECU环境中应用软件的动作结果会出现差异。
此外,作为第一计算机与第二计算机之间的HW性能差,在以下的例子中以时钟频率的差异为例进行说明。此外,在实施例2中,示出了ECU的时钟频率fe为1000Hz,个人计算机PC的时钟频率fp为3000Hz,个人计算机PC的性能比ECU高的事例。另外,在实施例3中,示出了ECU的性能比个人计算机PC高的事例。
本发明的实施例2改善了图3的(a)的与应用开发第一阶段有关的处理。图4示出了本发明的实施例2的与应用开发第一阶段有关的处理。
在图4的应用开发第一阶段中,对图3的(a)的应用开发第一阶段进一步追加了以下的功能、处理。这些功能、处理是追加在ECU源代码111中的延迟注入用函数122、在个人计算机PC上创建的延迟参数文件Fi3、追加在PC模拟器用编译器113中的函数结合选项131、以及追加在PC模拟器用执行文件115中的延迟注入用执行代码141。
此外,根据图4的构成,可以设为根据有无编译选项的指定来附加、分离执行定时调整处理的构成。
这些追加的功能总之是在最终形成的程序(PC模拟器用执行文件115中生成的ECU应用执行代码142)中,“在预定的定时设定预定的延迟时间”的功能,因此,本发明的计算机中的编程语言优选采用C语言、C++语言、JAVA(注册商标)。此外,在下文中将这些语言简称为C语言。
图5是表示本发明中使用的C语言程序例的图。在C语言程序中,如图5所例示,是在Main函数中调用func1函数,在func1函数结束后执行剩余Main函数的简单程序。此外,在Main函数中,可以调用多个func函数使其进行处理。此外,有时将Main函数称为母函数,将func函数称为子函数。
图2的追加在ECU源代码111中的延迟注入用函数122是C语言的func函数中的、用于实现“在预定的定时设定预定的延迟时间”的功能的函数,以在程序的开头位置设定延迟时间的目的而使用的是prologue函数,以在程序的末尾设定延迟时间的目的而使用的是epilogue函数。
此外,ECU是组装在车辆中使用的所谓控制用计算机。因此,例如单任务的ECU以10(ms)周期启动,以每次启动将记述在Main函数中的一系列处理在该期间内充裕地完成处理的方式加以运用。因此,作为模拟装置的个人计算机PC也同样地以作为控制用计算机进行处理为前提而构成运用。此外,在多任务的ECU的情况下,例如具有以5(ms)周期启动的其他体系的控制周期,以适当的优先顺序加以运用。
在图6中,记载了图2中规定的延迟参数文件Fi3的本实施例中的表设定例。这里,针对Main函数、func1函数、Default,记述了延迟时间设定位置的区别、调用源函数名、延迟量、备注的要件等。图6的表示出了结束延迟量的设定后的状态。关于在本表中设定的延迟量Δt4~Δt7,用图7的定时例进行图示。
例如,在与Main函数有关的行201中,Δt4被设定为在Main函数的Prologue函数(以下将该函数的处理称为序言(プロローグ)处理)中执行的延迟量。
在与func1函数有关的行202中,将Δt7设定为func1函数的Epilogue函数(以下将该函数的处理称为尾声处理)中的延迟量。此外,Default意味着对在Main函数或func函数等中未定义的部分进行标准设定。在本例中,在未记载的函数的序言处理和尾声处理中,将执行的延迟量设为0(不进行延迟处理)。
关于图6中记载的调整组203,之后在实施例7中叙述。
图7示出了实际ECU中的执行定时、没有定时调整情况下的PC模拟器中的执行定时、以及实施了定时调整情况下的PC模拟器中的执行定时的例子。
首先,对图7左侧的ECU中的执行定时进行说明。如上所述,该定时处理是在ECU的10(ms)的控制周期、且1000Hz的时钟频率下执行时的定时。这里假设在时刻t0开始了10(ms)的控制周期。
在该例子中,程序在Main函数的前级处理中需要ΔtE1的时间,在func1函数的处理中需要ΔtE2的时间,在Main函数的后级处理中需要ΔtE3的时间,并且该合计时间在ECU的10(ms)的控制周期内足够充裕地被完成。此外,将Main函数的前级处理完成时刻记为t1,将func1函数的处理完成时刻记为t2,将Main函数的后级处理完成时刻记为t3。
与此相对,在使用了个人计算机PC的模拟装置的内部,希望能够实现与ECU中的执行定时相同的定时。
关于这一点,根据图3所示的不执行时间调整的现有方式(图7中央),执行开始时间点在实际ECU和PC模拟环境中都是相同的时刻t0,但个人计算机PC的时钟频率有时是3000Hz,会在短时间内完成一系列处理。具体而言,Main函数的前级处理需要Δt1的时间,func1函数的处理需要Δt2的时间,Main函数的后级处理需要Δt3的时间,但这些时间与实际ECU的各时间相比非常快,因此执行定时与实际ECU的执行定时完全不同。在本发明中,根据实际ECU与PC模拟环境中的执行时间的差,计算并设定图6中说明的延迟参数文件Fi3的延迟量。延迟量的计算在实施例6以后进行说明。
在本发明中,通过在函数的前后适当设定延迟时间,实现与图7左侧的ECU中的执行定时接近的执行定时。此外,在图7右侧的有定时调整的事例中,与其他情况相同,控制周期的开始时间点为t0。
此时,程序从Main函数开始。最初参照图6的延迟参数文件Fi3,执行行201的Main函数的序言处理。由于Main函数的序言处理中的延迟量为Δt4,所以在经过延迟时间Δt4后执行func1函数的处理。当执行main函数时,在Δt1时间后,func1函数被调用。如果Main函数序言处理的延迟量适当,则func1函数调用的定时接近实际ECU。
接着,程序参照图6的延迟参数文件Fi3,执行行203的func1函数的序言处理,但这里,由于设定了Δt5作为延迟量,所以在经过延迟时间Δt5后,执行func1函数的处理。
func1函数的执行时间与没有定时调整的情况相同,为Δt2。通过图6的延迟参数文件Fi3中的设定,设定有延迟量Δt6来作为func1函数的尾声调整处理,通过执行Δt6的量的延迟处理,能够使main函数的后级处理开始时刻与ECU中的main函数的处理开始时刻t2一致。
同样,通过图6的延迟参数文件Fi3中的设定,设定有延迟量Δt7系数3来作为main函数的尾声调整处理,通过执行Δt7的量的延迟处理,能够使main函数的后级处理结束时刻与ECU中的main函数的后级处理结束时刻t3一致。
此外,在设定各函数中的延迟时间时,可以适当采用根据从绝对时刻(例如控制周期的开始时刻)起的时间来设定延迟时间,或者根据从上次事件(例如各函数的开始、结束时刻)的发生时刻起的时间来设定延迟时间。
这样,在本发明中,通过实现能够安装、追加仅在PC模拟环境下运行的延迟处理的结构,能够使PC模拟环境下的处理定时接近实际ECU。
另外,加入延迟处理的地方设为“函数开始时调用的序言处理”或“函数结束时调用的尾声处理”。可以在其中一方安装延迟处理,也可以在两方都加入延迟处理。
进而,延迟注入函数的调用处理可以通过追加编译选项来实施。优选使用GCC的“-finstrument-functions”选项那样的能够指定在序言和尾声时运行的函数的功能。不需要为了PC模拟环境下的测试而在应用软件内追加调用测试代码的处理。
如上所述,本发明是一种模拟装置,其用于将应用软件转换为执行代码进行验证,并将验证后的执行代码移植到其他计算机装置中,该模拟装置的特征在于,以应用的源代码的函数单位在函数开始时或结束时进行时刻调整处理,调整所述其他计算机装置中的执行定时。
实施例3
在实施例2中,以ECU的处理速度比个人计算机的处理速度慢为前提,通过在各函数之前或之后设定延迟时间,使其与ECU之间的定时一致。即,进行了延迟处理来作为时刻调整处理。
与此相对,有时ECU的处理速度比个人计算机的处理速度快。图8是表示ECU的处理速度比个人计算机的处理速度快的情况下的定时例的图。示出了该情况下的应对,例如,假定在对Main函数的处理ECU要花费ΔtE1时,在个人计算机中需要比这更长的时间。在这种情况下,优选将个人计算机中的Main函数的处理所需的时间乘以适当的系数以使其为ECU中的处理时间ΔtE1,从而进行调整。这是进行时间缩短化处理来作为时刻调整处理。
实施例4
实施例4也假定了ECU的处理速度比个人计算机PC的处理速度快的情况下的对策。
对于实施例4,使用图9和图10,说明使模拟速度比实际ECU环境低来执行的情况的例子。比较实际ECU与模拟器运行的个人计算机PC,说明实际ECU一方高速时的运用定时调整功能的情况的实施例。
以周期性执行图5所示的main函数的实施例进行说明。实际ECU的CPU时钟数与模拟器运行的个人计算机PC的时钟数的比率如图9所示。本例子以实际ECU的性能是个人计算机PC性能的2倍的环境为例。
在图10中,记述由实际ECU执行的情况下的处理定时与由PC模拟器执行的情况下的处理定时。
发生周期处理定时器事件601、602,开始main函数而开始周期处理。从Main函数中调用func1函数(603、604)。在执行Func1函数后返回main函数,在main函数结束时间点完成周期处理(605、606)。接受下一个周期处理定时器事件派发(607、608),从而下一次周期处理从main函数开始,但在本实施例的情况下,可以根据606、608的定时交替来确认由于在PC模拟器环境中CPU性能低而使得上次的周期处理未结束。
在PC模拟器环境中,由于在等倍速地执行的情况下,不能以与ECU相同的定时进行处理,所以基于CPU比率,通过1/2倍速使PC模拟环境中的定时器事件的发生间隔变为2倍,从而能够以接近实际ECU的形式执行PC模拟环境中的处理定时。
在图10的右侧,记述了在PC模拟环境下执行1/2倍速时的处理定时。定时器事件的发生(609)、func1函数的执行开始(610)、main函数的结束(611)与PC模拟环境中的等倍速重现时的执行定时没有变化,但下一个周期处理定时器事件发生定时(612)相比于等倍速重现时晚2倍,由此能够将PC模拟环境中的周期处理控制在周期内。此外,函数在PC中的执行时间比在ECU中的执行时间的2倍短的情况下的、序言和尾声中的校正方法与实施例1相同。
发生定时器事件的周期的变更实施于在程序初始化处理等中执行的函数的序言处理或尾声处理中。
作为本实施例的变形,也可以采用如下的方式,即,具备虚拟的时刻而不是PC中的实际时间,在序言、尾声中,将虚拟的时刻校正为ECU中到达该时刻的时刻。在该方式中,进行虚拟的时刻的校正而不是插入等待,因此能够削减模拟时间。
实施例5
在实施例2至实施例4中,说明了对只有一个任务在一个CPU上运行的程序(所谓的单任务)运用定时调整功能时的实施例。与此相对,在多任务方式的ECU中,需要对多个任务A、B在一个CPU上运行的程序运用定时调整功能。
在这种多任务的方式中,发生如下的切换处理,即,在一个任务执行中,进入优先级高的其他任务的处理请求,中断前者而进行后者的处理,在该处理结束后再次执行前者任务的剩余部分。
图11示出了任务A和B的任务优先级的关系。示出了任务A例如以10(ms)的控制周期启动,任务B例如以5(ms)的控制周期启动,任务B的优先级高的事例。
图12表示多任务中的中断处理的情况下的定时调整的方案。图12中左侧表示ECU中的实际处理,任务A和任务B在不同的控制周期下执行。这里,任务A的周期处理定时器启动时刻用t0A1、t0A2表示,任务B的周期处理定时器启动时刻用t0B表示。另外,在该例子中,表示时刻t0A1、t0A2之间是任务A的控制周期,由于任务B的中断处理,任务A的再次开始时刻变为t1,任务A的结束时刻变为t2。
在该图12的例子中,任务A以时刻t0A1的定时器事件为契机开始处理。此后在任务A的处理执行中的时刻t0B,派发任务B的定时器事件。此时,根据优先级的关系中断任务A的执行,开始任务B的处理。
根据本例子的事件发生定时,在实际ECU中,任务A执行处理在任务B开始之前不结束,发生向任务B的切换。在任务B的处理结束后,再次开始任务A的执行。
另一方面,根据图12中央的以往的处理,由于是比ECU高速的PC模拟器环境,所以任务A的执行在任务B开始之前已经结束,所以不发生任务切换。即,在现有方式中,无法再现多任务中的任务切换。作为该结果,即使在PC模拟器环境中能够以1个周期执行并正确动作,但在移植到实际ECU环境中并进行了动作确认的情况下,也经常发生在1个周期的期间内处理未完成的问题等。
在图12的右侧,记述有在PC模拟环境中在函数的序言、尾声处理中加入了定时调整的情况下的本发明的动作。根据该记述例,通过采取适当的延迟时间,能够形成任务A的前级处理部分,同样能够形成任务B、任务A的后级处理部分,能够实现中断处理。
这样,与实施例2同样,由于以函数单位细致地加入定时调整处理,所以当在实际ECU与PC模拟器中在相同的定时发生任务A和任务B的定时器事件时,在PC模拟器上也发生任务的切换。即,在以不同的控制周期运行的多任务方式的情况下,模拟装置能够对多个任务中的各个任务进行时刻调整处理,从而再现中断处理。
此外,在多任务方式中,为了调整定时而存储的执行时间按照每个任务进行管理,在切换任务后的定时调整处理中,优选执行将被夺取资源的任务的执行时间的递增计数停止的处理。
在本例子中,在任务B的周期处理开始时的序言函数中停止任务A的执行。在任务B开始时的序言函数中停止任务A的处理时间计数,在任务B的处理结束时的尾声函数内再次开始任务A的执行时间递增计数。此后,在定时调整定时到来时,根据被任务B夺取资源前和恢复后的执行时间,计算定时调整时间,进行定时调整。
实施例6
在实施例6以后,说明针对每台个人计算机PC确定用于使PC模拟环境的执行定时接近实际ECU的延迟量,并在PC模拟环境中的执行时一边在规定的位置执行延迟处理一边进行定时调整的例子。
图13是表示与构成模拟装置的个人计算机PC及实际环境机S的延迟量确定、定时调整功能的处理有关的流程的图。
根据图13,在实际环境机S侧执行实际ECU环境中的硬件试验机的性能试验。该试验是如下试验:在实现实际ECU环境的实际环境机S的ROM108内的ECU应用软件SW4中,性能测定功能SW41运行,在RAM103内得到ECU模拟器中的测定结果,并保存为ECU测定结果文件Fi4。
并且之后,ECU应用软件SW4内的测定结果发送部SW42运行,ECU测定结果文件Fi4经由作为个人计算机PC内的通信软件的测定结果接收部SW31,作为ECU测定结果文件Fi1保存到个人计算机PC内。
图14是表示关于延迟量确定、定时调整功能的方案的图,如果将该图与图13的处理对比来表示,则实际环境机S中的上述处理是图14的左侧的、在ECU中测定应用软件(实际ECU)的开始时刻tsE和结束时刻teE来作为硬件试验机的性能试验的结果(ECU测定结果文件Fi1或Fi4)的处理。
另一方面,在个人计算机PC侧执行PC环境中的模拟器的性能试验。该试验是如下试验:针对实现模拟器的个人计算机PC的硬盘驱动器104内的ECU应用软件SW1,性能测定功能SW12运行,在硬盘驱动器104内得到模拟器中的测定结果,并保存为PC测定结果文件Fi2。
个人计算机PC中的上述处理是图14的中央的、在个人计算机PC(无调整)中测定模拟开始时刻tsP和结束时刻teP来作为模拟器的性能试验的结果(PC测定结果文件Fi2)的处理。此外,在图14中,为了便于说明,将各个开始时刻tsE、tsP显示在同一时刻上。另外,在该状态下,没有进行基于本发明的延迟处理的定时调整。
返回图13,接下来,性能比较软件SW2内的测定结果比较/延迟参数设定部SW21运行,并且实施关于ECU测定结果文件Fi1与PC测定结果文件Fi2的比较验证。如图14所示,测定结果比较/延迟参数设定部SW21基于测定结果的差分来算出调整时间。在图示的例子中,对开始时刻tsE、tsP与结束时刻teE、teP的时间差分进行比较验证,将该结果保存在延迟参数文件Fi3中。
之后,使用所保存的延迟参数文件Fi3,在个人计算机PC上再次执行模拟器的性能试验。由此更新PC测定结果文件Fi2。
性能比较软件SW2内的测定结果比较/延迟参数设定部SW21运行,并实施关于ECU测定结果文件Fi1与PC测定结果文件Fi2的比较验证。根据测定结果的差分再次算出调整时间,生成用于进行更接近实际设备的动作的延迟参数文件Fi3。
在图13的例子中,示出了定时调整后的模拟器反映、保存在PC测定结果文件Fi2中,但也可以保存在适当的位置。此外,上述定时调整的步骤可以由测定结果比较/延迟参数设定部SW21自动执行,也可以经由比较结果显示部SW22显示在显示器107上,根据开发者的判断确定具体的定时调整内容并加以反映。
在图14的右侧示出了定时调整后的PC模拟器中的开始时刻与结束时刻的例子。在该例子中,相对于实际环境机S中的ECU实际检测时间段(开始时刻tsE、结束时刻teE),个人计算机PC从受理处理命令的时刻tsE起延迟时间ts0来作为个人计算机处理的开始时刻,个人计算机PC从其结束时刻起经过时间te0而判断为实际环境机S中的ECU实际检测时间段的结束时刻teE。即,通过设定开始前时间ts0和结束后时间te0,使PC模拟器中的时刻接近实际环境机S中的ECU的时刻。
如果将以上的流程整理在图14中,则如下文所示。首先,在实际ECU与个人计算机PC中执行ECU应用软件SW1、SW4,并在测定点(函数的开始、结束)记录时间。把实际ECU中的测定定时记在图14的左侧,把PC模拟器中的执行定时记在图14的中央。通过个人计算机PC上的性能比较软件SW2,对ECU中的测定结果与个人计算机PC中的测定结果进行比较,计算用于填补性能差的延迟量,并将延迟量存储在延迟参数文件Fi3中。
接着,在执行PC模拟器时,读入更新后的延迟参数信息,在函数的开始时和结束时执行延迟处理,之后执行ECU应用软件SW1。把执行了延迟处理情况下的处理定时记在图14的右侧。可知ECU中的处理定时(图14的左侧)与PC模拟器中的执行时间接近。
在以上的实施例6中,在ECU测定结果文件Fi1中,存储有由实际ECU测定的执行时间、定时。这里,存储在ECU测定结果文件Fi1中的执行时间、定时可称为是用于使存储在PC测定结果文件Fi2中的执行时间、定时匹配的目标数据。在实施例6中,示出了在实际环境机S中测量目标数据后,在个人计算机PC侧进行测量和比较的步骤,但如果预先得到目标数据并在ECU测定结果文件Fi1中确保了数据,则自然不需要每次都执行实际环境机S中的测量。
另外,在上述实施例中,以个人计算机PC的处理比实际环境机S的处理快,因此定时调整处理是延迟时间的处理为前提进行了叙述,但如实施例3等所述,即使在个人计算机PC的处理比实际环境机S的处理慢的情况下,也能够应对。从包含这两者的意义上讲,延迟处理指定时调整处理是合适的。本发明是在广义上进行了定时调整。
此外,本发明中的定时调整未必意图要与ECU完全一致。例如,如果能够以90%的程度相一致,就不会产生模拟上的大的不利。
另外,本发明的特征在于,在本发明的情况下,实际环境机S例如为ECU,ECU在其内部具备在执行应用软件时测量其定时的性能测定功能,并且保持有存储测定结果的ECU测定结果文件。
实施例7
在实施例7中,使用图15~图21,说明对单任务地运行的程序应用定时调整功能时的具体处理例。
图15是表示与图5所例示的相同的在本发明中使用的C语言程序例的图。省略了C语言的详细说明,图15中记载的C语言程序是在以10ms周期进行处理的Main函数171(10ms_func)中,执行func1函数172(eeprom_read)、func2函数173(nw_send)、func3函数174(eeprom_write),来作为执行小的处理单位的3组func函数的简单程序。由此,在由主函数171规定的控制周期即10ms内,执行来自eeprom的read处理、向nw的send处理、向eeprom的write处理。此外,C语言程序具有存储其处理开始时刻、结束时刻的功能。
本发明的实施例中的个人计算机PC以及实际环境机S中的处理通过上述的C语言程序来执行。图16是表示为了延迟量确定和定时调整而执行的个人计算机PC和实际环境机S中的处理内容的概略流程图。
图16的右侧例示了个人计算机PC中的处理内容,图16的左侧例示了实际环境机S中的处理内容。
在图16的处理流程中,首先在实际ECU侧的处理步骤S141中进行执行时间测量。通过执行程序内记载的性能测定代码,在处理步骤S142中记录执行定时。在处理步骤S143中,将由实际ECU记录的执行定时从实际ECU的测定结果发送部SW42发送到连接在同一网络上的个人计算机PC侧。在个人计算机PC侧,将接收到的测定结果保存为ECU测定结果文件Fi1。
接着,在个人计算机侧,在处理步骤S144中,在PC模拟环境中执行程序,并记录执行定时。使用存在于个人计算机PC内的延迟参数文件Fi3的设定值,执行程序内记载的性能测定代码,由此记录执行定时。另外,在处理步骤S145中,将在PC模拟环境中记录的执行定时保存在PC测定结果文件Fi2中。
图17表示通过上述处理创建的ECU测定结果文件Fi1、PC测定结果文件Fi2中形成的数据结构例。这些文件以相同的形式创建,在ECU和个人计算机PC中记录的信息相同。
作为图17的文件Fi1、Fi2的横轴项目,记录时间(301、305)、运行任务(302、306)、函数名(303、307)、测定定时(开始/结束)(304、308)这4个信息。使用基于C语言程序的测定对象的函数的开始部和结束部中存在的时刻测量代码,记录执行时间和运行任务。在本实施例中示出了单任务的例子,任务302、306为一个,因此全部为相同的任务A。
根据该ECU测定结果文件Fi1,表示对于任务A,Main函数171(10ms_func)的开始时刻为t0,func1函数172(eeprom_read)的开始时刻为t2,func1函数172(eeprom_read)的结束时刻为t6,func2函数173(nw_send)的开始时刻为t9,func2函数173(nw_send)的结束时刻为t11,func3函数174(eeprom_write)的开始时刻为t12,func3函数174(eeprom_write)的结束时刻为t13,Main函数171(10ms_func)的结束时刻为t14,按照上述顺序生成了数据。
同样,根据PC测定结果文件Fi2,表示对于任务A,Main函数171(10ms_func)的开始时刻为t0,func1函数172(eeprom_read)的开始时刻为t1,func1函数172(eeprom_read)的结束时刻为t3,func2函数173(nw_send)的开始时刻为t4,func2函数173(nw_send)的结束时刻为t5,func3函数174(eeprom_write)的开始时刻为t7,func3函数174(eeprom_write)的结束时刻为t8,Main函数171(10ms_func)的结束时刻为t10,按照上述顺序生成了数据。
图18是表示定时调整前后的时间关系的图。在图18的左侧的两列中,示出了测量图17的时间关系时的状况。对于ECU而言,在母函数171规定的10ms中,依次执行子函数172、173、174,各开始、结束的时刻记载在左侧纵轴上。另外,对于个人计算机PC,在母函数171中也依次执行子函数172、173、174,但各开始、结束的时刻如记载的那样,与实际环境机S相比,在高性能、高速的个人计算机PC的情况下,在经过母函数171规定的10ms的时间之前,已经完成了一系列的子函数的处理。
在备齐ECU和个人计算机PC的测定结果后,使用性能比较软件SW2进行测定结果的比较,确定在PC模拟环境中注入的延迟量,更新延迟参数文件Fi3。在图19中示出了作为此期间的处理的更新延迟参数文件Fi3的具体处理流程。
在图19的处理流程的作为最初处理的处理步骤S151中,从延迟参数文件Fi3取得延迟量,在处理步骤S152中,在PC模拟环境中实施使用了延迟参数文件Fi3的时刻测定,在处理步骤S153中,将执行结果存储在PC测定结果文件Fi2中。此期间的处理流程如图16的记载内容所示。此外,上述的一系列处理在变更延迟参数的同时重复执行多次,因此,在处理步骤S160中,在更新执行次数的同时对重复次数进行计数。
在处理步骤S154中,比较ECU测定结果与PC测定结果,算出性能差,对该具体的处理内容进行说明。在这种情况下,希望比较执行时间的基于C语言程序的函数(Main函数和多个Func函数)有多个,由于在各个函数间存在调用关系,所以从性能比较、处理小的组(不被其他函数调用的函数)开始实施。
图20表示性能比较前的初始状态下的延迟参数表的一例。在该图中,作为横轴项目,设置了函数名、任务名、调用源函数名、调整组181、开始、结束的区别、延迟量、备注栏。函数名以图15的例子来说,是作为母函数的Main函数171、作为子函数的func函数172、173、174,按照每个开始、结束的区别进行记载。调用源函数名记述了对于子函数而言的母函数,由于是性能比较前的初始状态,所以延迟量的栏被设定为0。另外,在该表中,对每个母子的关系设定调整组181,在母函数侧设定调整组“2”,在子函数侧设定调整组“1”。
处理步骤S154中的调整的顺序是从图20的延迟参数表中记载的调整组181中的小的调整组开始依次实施。在本实施例中,作为最小的函数,先选择被排序到调整组“1”的func函数172、173、174即(eeprom_read)、(nw_send)、(eeprom_write)函数,并按该顺序执行。
如果用图17、图18所例示的时间关系来说明,则实际ECU中的(eeprom_read)、(nw_send)、(eeprom_write)函数的开始、结束的执行时间分别为(t6-t2)、(t11-t9)、(t13-t12),PC模拟环境中的执行时间分别为(t3-t1)、(t5-t4)、(t8-t7)。
在图19的处理流程的处理步骤S155中,首先针对子函数(eeprom_read),判定实际ECU与PC模拟环境中的执行时间的差是否大于阈值,在大于阈值的情况下,移动到处理步骤S156,进行用于在PC模拟环境中执行指定时间量的延迟处理的延迟量计算处理。在子函数(eeprom_read)的情况下,执行时间的差被计算为((t6-t2)-(t3-t1))。
在处理步骤S157中,针对每个函数更新延迟量。首先更新子函数(eeprom_read)的延迟量。这里,设为在PC模拟环境中只加入执行时间的差分量的延迟处理,由此,接近实际ECU中的处理时间。由于延迟量调整是在函数开始时和函数结束时这两个地方进行,所以将把执行时间的差分割为2部分的量作为延迟量写入延迟参数文件Fi3中。
此外,通过之后的重复处理求出的(nw_send)、(eeprom_write)函数的执行时间的差分别为((t11-t9)-(t5-t4))、((t13-t12)-(t8-t7))。对于这些函数,也依次执行处理步骤S156、处理步骤S157的处理,确定每个子函数的延迟量。
图21表示在图20的初始状态的延迟参数表中反映了每个子函数的延迟量的第一阶段(step1)中的延迟参数表。因此,这里反映了作为子函数的(eeprom_read)、(nw_send)、(eeprom_write)函数的延迟量的更新数据。在182~187的6个地方写入了先前计算出的延迟量。
此外,作为延迟处理的例子,不是使任务休眠,而是进行延迟的时间量的无用运算或者执行无用的while循环等处理。
接着,在图19的处理步骤S158中,当作为子函数的(eeprom_read)、(nw_send)、(eeprom_write)函数的调整结束时,进行是否存在定时未调整的函数的判定。
如果假设对子函数调整结束阶段的模拟器处理的时间关系进行图示,则如图18的右起第二个的“Step1”所示。在与ECU的关系中,通过子函数成为时间关系大致一致的状况。在子函数调整结束阶段,整体上只有431所示的时间长度接近ECU的执行时间,但在时间长度432的部分,时间仍不一致。
在接下来的第二阶段(step2)中,对图20的延迟参数表中记载的调整组“2”中记述的函数(调用上述子函数的母函数)即(10ms_func)函数进行执行定时调整。在图19的处理步骤S158中确认全部子函数的完成,在处理步骤S159中将实施次数初始化为0,之后开始母函数的定时调整处理。母函数的定时调整处理与子函数的情况相同,通过依次重复执行必要次数的处理步骤S151、S152、S153、S160、S154、S155、S161、S156、S157来实现。
从图19的处理步骤S151的处理开始再次执行,再次测定与实际ECU的性能差时的执行定时在图18的右侧记述为“Step2”,是时间长度432的部分被消除的执行定时。该执行定时是针对时间长度432,以其一半的时间长度的量使母函数执行开始定时延迟的定时。因此,在个人计算机环境下,从母函数执行结束时刻起经过时间长度432的一半时间后的定时应该与ECU环境下的结束定时一致。
根据图19的一系列处理,首先对子函数执行延迟处理,然后对母函数执行延迟处理,由此结束,但是,是通过在处理步骤S158中确认没有定时未调整的函数来完成该结束判断。
此外,在一系列的处理中,优选附带进行以下的处理。首先,在处理步骤S161中,优选允许函数的延迟处理的重复次数在预先确定的上限(在图20的例子中,是由函数数目4×开始、结束的2所确定的8)的范围内的重复处理,不进行上限以上的重复。
另外优选设想使用性能比较软件SW2的延迟量调整处理没有结束的情况。在图19中说明此时的性能调整流程。例如,考虑到由于一个函数的实施定时变化的影响,其他函数的动作发生变化。作为一个例子,举出此前已进入错误处理的函数被切换到正常处理的情况等。
在图19中,在处理步骤S155的判定条件下性能差不小于阈值,处理步骤S161的判定条件为“是”的情况下(实施次数超过上限的情况),变更阈值。在图19的处理步骤S162中,缓和允许的性能差,进行延迟量调整。进行再调整,在实施次数达到上限,且性能差不小于阈值的情况下(作为判定条件的处理步骤S163的结果为“否”的情况),判定为不能进行定时调整,在图19的处理步骤S164中,对延迟参数文件Fi3的内容进行初始化(没有延迟注入),结束性能调整处理。
通过以上处理,对于1台个人计算机PC的PC模拟环境的延迟量调整处理结束。一般情况下,每个开发者使用的个人计算机PC的种类(HW规格)不同,但通过对每台个人计算机PC进行延迟量调整,可以使每个开发者的PC模拟环境中的执行定时接近实际ECU。
实施例8
在实施例7中,说明了在单任务环境下进行延迟量确定、定时调整的例子,但ECU应用软件经常在多任务环境下运行。
在多任务环境中,发生基于任务优先顺序的上下文切换。函数的结束时间根据是否发生上下文切换而发生变化。
在实施例8中,在性能比较软件SW2中的函数的执行时间计算时,通过考虑运行任务信息,即使在发生了上下文切换的情况下,也能够计算实际进行了处理的时间。
本实施例中使用的2个任务的信息如图22所示来说明。
图22表示发生了任务的上下文切换时的测定结果文件的内容与各任务的执行定时的例子。
在该例子中,有任务A和B,A、B都是通过定时器事件启动并周期性地进行处理的任务,但任务B的优先级高,在任务A的执行中启动优先级高的任务B。
按时间顺序,任务A以定时器事件201为契机,从时刻t0开始处理。在任务A的处理执行中,当任务B的定时器事件202在时刻t1被派发时,根据优先级的关系,中断任务A的执行,开始任务B的处理。此后,在时刻t2结束任务B的处理,再次开始任务A的处理,最终任务A在时刻t3结束。
此时,为了调整定时而存储的开始、结束时间针对每个任务进行管理,各任务存储上述开始、结束时刻。图23是各任务存储的开始、结束时刻的一个例子。在多任务的情况下,通过从函数的执行时间中减去其他任务正在运行期间的时间,来计算实际的执行时间。
例如,在任务A的函数(func_a)的开始、结束时间为t0、t3,任务B的函数(func_b)的开始、结束时间分别为t1、t2的情况下,被任务B中断的任务A的执行时间可以用((t3-t0)-(t2-t1))来计算。
在上述说明的本发明中,在ECU软件内具有时间测量功能和延迟注入功能。在实际ECU与PC模拟环境中执行软件,记录执行定时(启动后的经过时间)。
准备具有如下功能的性能比较软件:比较实际ECU与PC模拟器中的保存了执行定时的处理定时数据的内容,根据处理时间的差来确定PC模拟器中注入的延迟量,并保存到文件中。
使用通过执行性能比较软件而更新的延迟参数文件的信息,在PC模拟环境下再次执行ECU应用软件。通过在PC模拟环境中以调整后的延迟量进行延迟处理,能够使PC模拟环境中的执行定时接近实际ECU。
时刻测定在想要调整执行定时的函数的开始时和结束时进行记录。另外,加入延迟处理的位置是在函数开始时的时刻测量之后和函数结束之前的时刻测量之前进行的。可以在其中一个位置执行延迟处理,也可以在两个位置都加入延迟处理。
在ECU的试制HW未完成的定时,通过使用CPU的评估板、作为开发基础的ECU硬件,也可以保存为ECU中的执行定时信息,并将其作为实际ECU中的执行定时来利用。
符号说明
101:系统/总线
102:CPU
103:主存储装置
104:HDD
105:键盘
106:鼠标
107:显示器
108:ROM
S:实际环境机
PC(PCa、PCb......PCn):个人计算机
180:通信装置
181:外部系统/总线
SW1:ECU应用软件
SW2:性能比较软件
SW3:通信软件
SW11:延迟注入功能
SW12:性能测定功能
SW21:测定结果比较/延迟参数设定部
SW22:比较结果显示部
SW31:测定结果接收部
Fi1:ECU测定结果文件
Fi2:PC测定结果
Fi3:延迟参数文件
SW4:ECU应用软件
SW41:性能测定功能
SW42:测定结果发送部
Fi4:ECU测定结果文件。

Claims (10)

1.一种模拟装置,其特征在于,
所述模拟装置由第一计算机构成,该第一计算机具有:
第一性能测定功能,其得到在第一计算机中执行应用软件时的第一处理定时;以及
定时调整功能,其根据所述第一处理定时与在第二计算机中执行应用软件时的第二处理定时之间的时间差,进行所述第一计算机中的所述应用软件的执行时刻的定时调整。
2.根据权利要求1所述的模拟装置,其特征在于,
所述第一计算机经由通信装置与所述第二计算机连接,
所述第二计算机具有:第二性能测定功能,其得到在该第二计算机中执行应用软件时的所述第二处理定时。
3.一种模拟装置,其特征在于,具备:
第一计算机,具有:第一性能测定功能,其得到在第一计算机中执行应用软件时的第一处理定时;以及定时调整功能,其根据所述第一处理定时与在第二计算机中执行应用软件时的第二处理定时之间的时间差,进行所述第一计算机中的所述应用软件的执行时刻的定时调整;
第二计算机,具有:第二性能测定功能,其得到执行应用软件时的处理定时来作为所述第二处理定时;以及
通信装置,其连接所述第一计算机与所述第二计算机。
4.根据权利要求1至3中任一项所述的模拟装置,其特征在于,
所述定时调整功能使所述第一处理定时与作为目标定时的所述第二处理定时一致。
5.根据权利要求1至4中任一项所述的模拟装置,其特征在于,
所述应用软件通过在母函数中执行子函数并且记录母函数和子函数的函数开始时刻及函数结束时刻的语言来记述。
6.根据权利要求5所述的模拟装置,其特征在于,
所述第一计算机中的所述应用软件的执行时刻的定时调整中,在所述子函数的定时调整完成后,进行所述母函数的定时调整。
7.根据权利要求1至6中任一项所述的模拟装置,其特征在于,
所述第二计算机是ECU。
8.根据权利要求1至7中任一项所述的模拟装置,其特征在于,
多台所述第一计算机经由通信装置连接。
9.一种ECU装置,其特征在于,具备:
性能测定功能,其用于在执行应用软件时获得第二处理定时;
测定结果存储部,其存储所述第二处理定时;以及
通信装置,其用于将所述第二处理定时发送到外部。
10.一种模拟方法,其特征在于,
根据在第一计算机中执行应用软件时的第一处理定时与在第二计算机中执行应用软件时的第二处理定时之间的时间差,进行所述第一计算机中的所述应用软件的执行时刻的定时调整。
CN201980031431.5A 2018-07-19 2019-06-26 模拟装置及其方法、以及ecu装置 Pending CN112400162A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2018-135829 2018-07-19
JP2018135829 2018-07-19
PCT/JP2019/025303 WO2020017264A1 (ja) 2018-07-19 2019-06-26 シミュレーション装置、及びその方法、並びにecu装置

Publications (1)

Publication Number Publication Date
CN112400162A true CN112400162A (zh) 2021-02-23

Family

ID=69164715

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980031431.5A Pending CN112400162A (zh) 2018-07-19 2019-06-26 模拟装置及其方法、以及ecu装置

Country Status (5)

Country Link
US (1) US20210248288A1 (zh)
JP (1) JP7045458B2 (zh)
CN (1) CN112400162A (zh)
DE (1) DE112019002778T5 (zh)
WO (1) WO2020017264A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115202495A (zh) * 2022-09-08 2022-10-18 深圳市湘凡科技有限公司 鼠标硬件的模拟移动方法、装置、设备及存储介质

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7072697B1 (ja) * 2021-03-12 2022-05-20 三菱電機株式会社 電子制御装置、電子制御装置の試験装置、及び電子制御装置の試験方法
JP7336775B2 (ja) * 2021-03-19 2023-09-01 パナソニックIpマネジメント株式会社 検証システム、検証方法及びプログラム

Citations (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB8526610D0 (en) * 1985-11-20 1985-12-04 Stc Plc Data transmission system
CN1460367A (zh) * 2001-04-02 2003-12-03 松下电器产业株式会社 数字影像内容的影像再生装置、影像再生方法、影像再生程序、包媒体
US20060036656A1 (en) * 2004-08-12 2006-02-16 National Instruments Corporation Automatic versioning and data mutation of user-defined data types
WO2006022204A1 (ja) * 2004-08-23 2006-03-02 Pacific Design Inc. ソースプログラムの分析装置および方法
CN1834905A (zh) * 2005-03-17 2006-09-20 株式会社日立制作所 车辆控制用软件与车辆控制装置
JP2008059192A (ja) * 2006-08-30 2008-03-13 Oki Electric Ind Co Ltd ハード・ソフト協調検証用シミュレータ
CN101694628A (zh) * 2009-10-21 2010-04-14 中国人民解放军国防科学技术大学 一种串行与并行模拟相结合的并行计算机系统性能模拟方法
US20100106949A1 (en) * 2008-10-24 2010-04-29 International Business Machines Corporation Source code processing method, system and program
WO2010058981A2 (ko) * 2008-11-21 2010-05-27 고려대학교 산학협력단 고수준 언어 코드를 hdl 코드로 변환하는 방법 및 시스템
CN102043707A (zh) * 2009-10-16 2011-05-04 腾讯科技(深圳)有限公司 嵌入式应用的性能测试方法、嵌入式终端设备及网络系统
JP2012203845A (ja) * 2011-03-28 2012-10-22 Denso Wave Inc 携帯機器とプログラム実行装置を有するシステムと、そのシステムに用いられる携帯機器及びプログラム実行装置
JP2013109673A (ja) * 2011-11-22 2013-06-06 Fujitsu Semiconductor Ltd シミュレーション装置、シミュレーション方法、およびシミュレーションプログラム
CN103154890A (zh) * 2010-10-12 2013-06-12 富士通株式会社 模拟装置、方法以及程序
US20150127245A1 (en) * 2013-11-01 2015-05-07 Here Global B.V. Traffic Data Simulator
JP2015170081A (ja) * 2014-03-06 2015-09-28 三菱電機株式会社 シミュレーション装置及びシミュレーションプログラム
CN106095654A (zh) * 2015-04-28 2016-11-09 瑞萨电子株式会社 性能验证装置、具有性能验证装置的系统以及方法
EP3179371A1 (en) * 2015-12-08 2017-06-14 Gilwa GmbH embedded systems Method and device for non-intrusively collecting function trace data
CN107766602A (zh) * 2016-08-18 2018-03-06 帝斯贝思数字信号处理和控制工程有限公司 技术系统的运行软件的修正和仿真

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018022317A (ja) * 2016-08-03 2018-02-08 ルネサスエレクトロニクス株式会社 Hilシミュレーションシステム及びその制御方法

Patent Citations (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB8526610D0 (en) * 1985-11-20 1985-12-04 Stc Plc Data transmission system
CN1460367A (zh) * 2001-04-02 2003-12-03 松下电器产业株式会社 数字影像内容的影像再生装置、影像再生方法、影像再生程序、包媒体
US20060036656A1 (en) * 2004-08-12 2006-02-16 National Instruments Corporation Automatic versioning and data mutation of user-defined data types
WO2006022204A1 (ja) * 2004-08-23 2006-03-02 Pacific Design Inc. ソースプログラムの分析装置および方法
CN1834905A (zh) * 2005-03-17 2006-09-20 株式会社日立制作所 车辆控制用软件与车辆控制装置
JP2008059192A (ja) * 2006-08-30 2008-03-13 Oki Electric Ind Co Ltd ハード・ソフト協調検証用シミュレータ
US20100106949A1 (en) * 2008-10-24 2010-04-29 International Business Machines Corporation Source code processing method, system and program
WO2010058981A2 (ko) * 2008-11-21 2010-05-27 고려대학교 산학협력단 고수준 언어 코드를 hdl 코드로 변환하는 방법 및 시스템
CN102043707A (zh) * 2009-10-16 2011-05-04 腾讯科技(深圳)有限公司 嵌入式应用的性能测试方法、嵌入式终端设备及网络系统
CN101694628A (zh) * 2009-10-21 2010-04-14 中国人民解放军国防科学技术大学 一种串行与并行模拟相结合的并行计算机系统性能模拟方法
CN103154890A (zh) * 2010-10-12 2013-06-12 富士通株式会社 模拟装置、方法以及程序
JP2012203845A (ja) * 2011-03-28 2012-10-22 Denso Wave Inc 携帯機器とプログラム実行装置を有するシステムと、そのシステムに用いられる携帯機器及びプログラム実行装置
JP2013109673A (ja) * 2011-11-22 2013-06-06 Fujitsu Semiconductor Ltd シミュレーション装置、シミュレーション方法、およびシミュレーションプログラム
US20150127245A1 (en) * 2013-11-01 2015-05-07 Here Global B.V. Traffic Data Simulator
JP2015170081A (ja) * 2014-03-06 2015-09-28 三菱電機株式会社 シミュレーション装置及びシミュレーションプログラム
CN106095654A (zh) * 2015-04-28 2016-11-09 瑞萨电子株式会社 性能验证装置、具有性能验证装置的系统以及方法
EP3179371A1 (en) * 2015-12-08 2017-06-14 Gilwa GmbH embedded systems Method and device for non-intrusively collecting function trace data
CN107766602A (zh) * 2016-08-18 2018-03-06 帝斯贝思数字信号处理和控制工程有限公司 技术系统的运行软件的修正和仿真

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115202495A (zh) * 2022-09-08 2022-10-18 深圳市湘凡科技有限公司 鼠标硬件的模拟移动方法、装置、设备及存储介质
CN115202495B (zh) * 2022-09-08 2022-12-16 深圳市湘凡科技有限公司 鼠标硬件的模拟移动方法、装置、设备及存储介质

Also Published As

Publication number Publication date
US20210248288A1 (en) 2021-08-12
JP7045458B2 (ja) 2022-03-31
WO2020017264A1 (ja) 2020-01-23
DE112019002778T5 (de) 2021-05-20
JPWO2020017264A1 (ja) 2021-05-13

Similar Documents

Publication Publication Date Title
JP5535393B2 (ja) 電子制御システムをテストする方法
CN112400162A (zh) 模拟装置及其方法、以及ecu装置
JP3654910B2 (ja) コンピュータ・システムにおけるエラー訂正方法および装置
Berry SCADE: Synchronous design and validation of embedded control software
US20120101791A1 (en) Controlling simulation systems
CN108319533B (zh) 可关断地模拟控制装置内部的设备的系统和模拟器
CN111400997B (zh) 一种基于同步执行的处理器核验证方法、系统及介质
GB2486136A (en) Simulation method, system and program
US10394704B2 (en) Method and device for testing a software program
US20180157571A1 (en) Method for the realistic estimation of function run times in pil simulation
US8412496B2 (en) Simulation system, method, and program
CN114816653A (zh) 电子控制单元定时仿真
Resmerita et al. Verification of embedded control systems by simulation and program execution control
CN112236754A (zh) 模拟装置
US20100333070A1 (en) Multiple ECU Software-In-The-Loop Simulation Environment
JP2803090B2 (ja) Mpuシミュレーション方法及びmpuシミュレータ
JPH07253909A (ja) マイクロプログラム検証方法
US20230315616A1 (en) Method for testing a data processing distributed to multiple programs
US20240176926A1 (en) Method and system for simulating a control program
KR20240009786A (ko) 차량용 소프트웨어 플랫폼의 시뮬레이션을 위한 os 가상화 장치 및 방법
US20210034337A1 (en) Method and system for preparing block diagrams for code generation
JP2023066414A (ja) プログラムコードを生成する方法、制御装置を設定する方法およびコンピュータシステム
Colnaric State of the art review paper: advances in embedded hard real-time systems design
KR20240009773A (ko) 차량용 소프트웨어 플랫폼의 시뮬레이션을 위한 포트 가상화 장치 및 방법
KR20240009779A (ko) 차량용 소프트웨어 플랫폼의 시뮬레이션을 위한 디바이스 드라이버 가상화 장치 및 방법

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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: Ibaraki

Applicant after: Hitachi astemo Co.,Ltd.

Address before: Ibaraki

Applicant before: HITACHI AUTOMOTIVE SYSTEMS, Ltd.