CN102666211B - 程序执行无效化方法、程序存储方法以及安全气囊控制装置 - Google Patents

程序执行无效化方法、程序存储方法以及安全气囊控制装置 Download PDF

Info

Publication number
CN102666211B
CN102666211B CN201080052705.8A CN201080052705A CN102666211B CN 102666211 B CN102666211 B CN 102666211B CN 201080052705 A CN201080052705 A CN 201080052705A CN 102666211 B CN102666211 B CN 102666211B
Authority
CN
China
Prior art keywords
machine language
program
language program
ineffective treatment
air bag
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
CN201080052705.8A
Other languages
English (en)
Other versions
CN102666211A (zh
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.)
Vinninger Swedish Security Systems
Original Assignee
Autoliv Development AB
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 Autoliv Development AB filed Critical Autoliv Development AB
Publication of CN102666211A publication Critical patent/CN102666211A/zh
Application granted granted Critical
Publication of CN102666211B publication Critical patent/CN102666211B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R21/00Arrangements or fittings on vehicles for protecting or preventing injuries to occupants or pedestrians in case of accidents or other traffic risks
    • B60R21/01Electrical circuits for triggering passive safety arrangements, e.g. airbags, safety belt tighteners, in case of vehicle accidents or impending vehicle accidents

Landscapes

  • Engineering & Computer Science (AREA)
  • Mechanical Engineering (AREA)
  • Stored Programmes (AREA)
  • Air Bags (AREA)
  • Storage Device Security (AREA)

Abstract

本发明提供一种程序执行无效化方法,该方法为在废弃安全气囊时可以将用于使计算机执行强制性展开安全气囊处理的执行代码,容易且可靠地转换为不能执行的状态。该方法具备以下步骤:通过将用于执行强制性展开安全气囊处理的执行代码的源程序中包含的一部分指令代码代替为其他指令代码,或者将该源程序中包含的一部分参照存储地址代替为其他参照存储地址,从而转换为不能展开安全气囊的源程序的步骤;将使安全气囊不能展开的源程序编译为非执行代码的步骤;制作复原数据的步骤,用于将非执行代码恢复为能够使安全气囊强制性展开的所述执行代码。

Description

程序执行无效化方法、程序存储方法以及安全气囊控制装置
技术领域
本发明涉及一种在安全气囊废弃时,将用于使计算机执行强制性展开该安全气囊处理的机器语言程序转换为执行无效状态的程序执行无效化方法,将该机器语言程序转换为执行无效状态并存储到存储部的程序存储方法,以及存储了处于执行无效状态的机器语言程序的安全气囊控制装置。
背景技术
安装有安全气囊的车辆在废弃时,为了防止安全气囊误爆,需要预先使安全气囊强制性展开,在使安全气囊强制展开后再与充气器等一同进行废弃车辆的处理。关于汽车用安全气囊废弃处理的ISO-26021标准中规定,不管在何种情况下,为了避免非废弃处理时安全气囊误爆,需要将废弃处理用执行代码作为非执行代码存储于安全气囊控制装置的存储部。该非执行代码被存储在安全气囊控制装置的ROM(只读内存)里,必须仅在特定条件下,即与废弃工具之间的一系列手续均被确认后的情况下,才能在RAM(随机存储器)上作为执行代码被恢复执行。
关于仅在特定条件下能够执行的非执行代码的制作方法,可以考虑使用CPU(中央处理器)的错误指令或未定义指令的方法。具体为,在生成机器语言的执行代码后通过部分地分开存储各指令,使该执行代码在正规的处理步骤下处于无法执行的状态。总而言之,进行处理使得执行代码的各指令转换为CPU的错误指令或未定义指令。
图16A以及图16B是从概念上显示历来的非执行代码化以及非执行代码复原方法的说明图。图16A是从概念上显示通过部分地分开存储执行代码来进行非执行代码化处理的说明图。由画有影线的四个格子构成的矩形条代表执行代码。1个格子代表1字节长,图16A所示的执行代码为4字节长。在图16A所示的例子中,通过分离图中左侧的执行代码前头的1字节,该执行代码变成了非执行代码。空白的格子代表从执行代码中分离出来的数据部分。该数据部分是能够将执行代码变为未定义指令或错误指令的任意数据。例如,所述数据部分为“0000000”的1字节长的数据。此外,被分离的前头1字节数据,作为用于恢复非执行代码的屏蔽数据,与非执行代码一同存储在ROM处。
图16B是从概念上显示分离的非执行代码的恢复处理的说明图。被存储在ROM的非执行代码具有执行代码的后段3字节长的数据,由于屏蔽数据具有执行代码的前头1字节长的数据,因此使用非执行代码和屏蔽数据,可以恢复执行代码。
技术文献
专利文献
专利文献1:日本专利特开平11-301390号公报
发明内容
发明要解决的课题
然而,将执行数据的一部分分开存储的方法是由编译器等在机器语言的执行代码生成后进行的。因此,该方法需要特别规定执行代码的函数长度以及存储地址以进行处理,此外,指令为可变长度格式时,还要进行执行代码的指令解析,因此存在非执行代码化的工序非常复杂的问题。
另外,安全方面的顾虑也不能忽视,例如,分离后的非执行代码为CPU的未定义或错误指令,在未得到CPU制造方对运作的保证时,甚至无法验证和掌握由于CPU的异常运作等导致非执行代码在变为执行代码前便被执行时CPU的运作等问题。
本发明是鉴于上述问题所完成的,其目的在于提供一种程序执行无效化方法、程序存储方法以及存储了执行无效化机器语言程序的安全气囊控制装置,其中,将用于使计算机执行强制性展开安全气囊处理的机器语言程序的源程序中包含的部分指令代码代替为其他指令代码,或者将该源程序中包含的部分参照存储地址代替为其他参照存储地址,通过编译进行非执行代码化,从而使能够使安全气囊强制性展开的机器语言程序在生成后没必要进行执行无效化机器语言程序的生成处理,即使在执行代码化之前,执行无效化机器语言程序被执行了,也能够掌握和确保一切运作。
解决课题的手段
本发明所涉及的程序执行无效化方法是一种在安全气囊废弃时,将用于使计算机执行强制性展开安全气囊处理的机器语言程序,转换为执行无效状态的程序执行无效化方法,其特征在于具有以下步骤:通过将所述机器语言程序的源程序中包含的部分指令代码代替为其他指令代码,或者将该源程序中包含的部分参照存储地址代替为其他参照存储地址,从而转换为不能展开安全气囊的源程序的步骤;将使安全气囊不能展开的源程序编译为执行无效化机器语言程序的步骤;制作用于将该执行无效化机器语言程序恢复为能够使安全气囊强制性展开的所述机器语言程序的复原数据的步骤。
在本发明中,通过将用于使计算机执行强制性展开安全气囊处理的机器语言程序的源程序中包含的部分指令代码代替为其他指令代码,或者将该源程序中包含的部分参照存储地址代替为其他参照存储地址,使该机器语言程序转换为不能展开安全气囊的源程序。用于代替的其他指令代码为用于使计算机CPU运作的正规代码,可保证计算机的运作。例如,将“或”运算的指令代码,代替为“异或”的指令代码。另外,参照地址是存在参照对象的有效地址。并且,参照地址是广义上的地址,包含进行数据读写时需要的一切地址,参照地址里包含RAM、CPU的闪存、寄存器、用于输入输出数据的存储器,以及其他存储装置的地址等。
然后,编译代替后的源程序,制作执行无效化机器语言程序。此外,制作用于将执行无效化机器语言程序恢复为能够使安全气囊强制性展开的所述机器语言程序的复原数据。并且,制作复原数据步骤与制作执行无效化机器语言程序步骤的执行顺序可以随意。
因此,将不需要从编译后的机器语言程序中生成执行无效化机器语言程序的处理。此外,能够验证以及掌握CPU的运作。
本发明所涉及的程序执行无效化方法的特征在于,所述复原数据包括显示了所述执行无效化机器语言程序与所述机器语言程序的差分的数据。
在本发明中,复原数据包括显示了执行无效化机器语言程序与能够执行的机器语言程序的差分的数据。因此,使用复原数据能够将执行无效化机器语言程序恢复为能够执行的机器语言程序。并且,复原数据既可以人工生成,也可以由计算机生成。
本发明所涉及的程序执行无效化方法的特征在于,所述复原数据包括所述执行无效化机器语言程序与所述机器语言程序的“异或”。
在本发明中,复原数据是执行无效化机器语言程序和机器语言程序的“异或”。因此,很容易生成复原数据。此外,也很容易恢复执行无效化机器语言程序。并且,通过
“异或”显示执行无效化机器语言程序与能够执行的机器语言程序的差分时,能够通过相同的思考程序或运算、即“异或”来实现机器语言程序的执行无效化以及恢复。因此,没有必要区分执行无效化时的运算方法和恢复时的运算方法。尤其是人工生成复原数据时,不再需要考虑执行无效化时的运算方法是什么或者恢复时的运算方法是什么等问题。
此外,通过“异或”生成复原数据时,既可以人工生成,也可以由计算机生成。
本发明所涉及的程序存储方法的特征在于,具有将使用上述程序执行无效化方法制成的所述执行无效化机器语言程序以及复原数据存储在存储部的步骤。
在本发明中,使用上述安全气囊废弃用程序执行无效化方法,制成执行无效化机器语言程序以及复原数据,将制成的执行无效化机器语言程序以及复原数据存储在存储部里。因此,强制性展开安全气囊的机器语言程序,在不能执行的状态下存储在存储部里。并且,存储部可以是一个也可以是多个。此外,也可以将执行无效化机器语言程序和复原数据存储到不同的存储部里。
本发明所涉及的程序存储方法的特征在于,具有将复原机器语言程序存储在存储部的步骤,其中复原机器语言程序用于使计算机进行利用所述复原数据将所述执行无效化机器语言程序恢复为所述机器语言程序的处理。
在本发明中,复原机器语言程序用于利用复原数据以及执行无效化机器语言程序,恢复为能够展开安全气囊的机器语言程序,将该复原机器语言程序存储在存储部里。因此,通过使CPU执行复原机器语言程序,利用复原数据和执行无效化机器语言程序,可以恢复能够展开安全气囊的机器语言程序。
本发明所涉及的安全气囊控制装置的特征在于具备,存储了利用上述程序执行无效化方法制成的所述执行无效化机器语言程序以及复原数据的存储部;根据该存储部存储的所述执行无效化机器语言程序以及复原数据,将所述执行无效化机器语言程序恢复为所述机器语言程序,并执行该机器语言程序的控制部;按照执行了所述机器语言程序的所述控制部的控制而展开安全气囊的电路。
在本发明中,即使由于安全气囊控制装置的控制部的错误操作导致执行无效化机器语言程序被执行,安全气囊也不会展开。控制部能够利用复原数据将执行无效化机器语言程序恢复为能够使安全气囊强制性展开的机器语言程序并执行。安全气囊按照该机器语言程序执行后的控制部的控制而展开。
本发明所涉及的安全气囊控制装置的特征在于具备存储部、控制部以及电路,其中所述存储部存储有执行无效化机器语言程序以及用于将该执行无效化机器语言程序恢复为所述机器语言程序的复原数据,所述执行无效化机器语言程序在安全气囊废弃时,通过将用于执行强制性展开安全气囊处理的机器语言程序中包含的部分指令代码代替为其他指令代码,或者将该机器语言程序中包含的部分参照存储地址代替为其他参照存储地址而获得;所述控制部根据该存储部存储的所述执行无效化机器语言程序以及复原数据,将所述执行无效化机器语言程序恢复为所述机器语言程序,并执行该机器语言程序;所述电路根据所述机器语言程序执行后的所述控制部的控制而展开安全气囊。
在本发明中,安全气囊控制装置的存储部存储了执行无效化机器语言程序,该执行无效化机器语言程序将用于使计算机执行强制性展开安全气囊处理的机器语言程序中包含的部分指令代码代替为其他指令代码,或者将该机器语言程序中包含的部分参照存储地址代替为其他参照存储地址。用于代替的其他指令代码为用于使计算机CPU运作的正规代码,可保证计算机的运作。并且,参照地址是存在参照对象的有效地址。另外,存储部还存储了复原数据,复原数据用于将执行无效化机器语言程序恢复为能够使安全气囊强制性展开的所述机器语言程序。
因此,即使由于安全气囊控制装置的控制部的错误操作导致执行无效化机器语言程序被执行,安全气囊也不会展开。控制部能够利用复原数据将执行无效化机器语言程序恢复为能够使安全气囊强制性展开的机器语言程序并执行。安全气囊根据该机器语言程序执行后的控制部的控制而展开。
发明效果
本发明使能够使安全气囊强制性展开的机器语言程序在生成后不需进行执行无效化机器语言程序的生成处理,即使在执行代码化之前,执行无效化机器语言程序被执行了,也能够掌握和确保一切运作。因此,跟以往的执行无效化方法相比,能够容易地制作安全性较高的执行无效化机器语言程序,并存储在计算机存储部里。
附图说明
[图1]是本发明实施方式所涉及的安全气囊控制装置以及废弃装置的一个结构例子的模式示意框图。
[图2]是本发明实施方式所涉及的程序执行无效化方法以及程序存储方法的示意流程图。
[图3]是显示执行源代码中记述的处理步骤的一部分的流程图。
[图4A]是显示将执行源代码转换为非执行源代码的方法的流程图。
[图4B]是显示将执行源代码转换为非执行源代码的方法的流程图。
[图5]是显示非执行数据的处理步骤的一部分的流程图。
[图6A]是用机器语言对执行源代码以及非执行源代码进行记述后的执行代码以及非执行代码的示意说明图。
[图6B]是用机器语言对执行源代码以及非执行源代码进行记述后的执行代码以及非执行代码的示意说明图。
[图7]是屏蔽数据的示意说明图。
[图8A]是“异或”运算的真值表以及维恩图。
[图8B]是“异或”运算的真值表以及维恩图。
[图9]是显示要废弃的安全气囊控制装置以及废弃装置的处理步骤的流程图。
[图10]是从概念上显示使用屏蔽数据恢复执行代码的一般方法的说明图。
[图11A]是从概念上显示使用屏蔽数据恢复执行代码的具体方法的说明图。
[图11B]是从概念上显示使用屏蔽数据恢复执行代码的具体方法的说明图。
[图12]是恢复后的执行代码在RAM展开的安全气囊控制装置以及废弃装置的一个结构例子的模式示意框图。
[图13]是变形例1所涉及的程序执行无效化方法以及程序存储方法的示意流程图。
[图14A]是用机器语言对变形例1中的执行源代码以及非执行源代码进行记述后的执行代码以及非执行代码的示意说明图。
[图14B]是用机器语言对变形例1中的执行源代码以及非执行源代码进行记述后的执行代码以及非执行代码的示意说明图。
[图15]是显示变形例1所涉及的屏蔽数据的说明图。
[图16A]是从概念上显示以往的非执行代码化和非执行代码的复原方法的说明图。
[图16B]是从概念上显示以往的非执行代码化和非执行代码的复原方法的说明图。
具体实施方式
下面将根据实施方式的示意图对本发明进行详述。
图1是本发明实施方式所涉及的安全气囊控制装置以及废弃装置的一个结构例子的模式示意框图。
安全气囊控制装置1被收纳在未图示的收纳体内,配置在车辆上例如仪表盘附近等适合的地方。安全气囊控制装置1具备CPU11,以控制构成该安全气囊控制装置1的各构成部的动作。CPU11通过总线连接有ROM12和RAM13。此外,通过连接总线的未图示的I/O端口,CPU11连接了加速度传感器14、点火电路15以及通信电路16。
CPU11由未图示的控制电路、逻辑运算电路、指令译码器、地址寄存器、数据寄存器、指令寄存器、程序计数器、暂存堆栈器、通用寄存器等各种寄存器和指令译码器等构成。由于各种电路和寄存器的结构和运作是众所周知的技术,因此在此省略其详情。此外,为了便于制图和说明,图1中仅显示一种通用寄存器的r16寄存器。另外,CPU11通过调压器连接搭载在车辆上的电源3,点火开关为ON状态时,将向CPU11施加规定的电压,例如5V。
ROM存储部12是本实施方式所涉及的非执行代码即执行无效化机器语言程序以及复原代码即复原机器语言程序的非易失性存储器。非执行代码用以即使CPU11直接被RAM13展开并执行,也会终止而不会执行强制性展开安全气囊处理。复原代码是用于将非执行代码恢复为可以强制性展开安全气囊的执行代码即机器语言程序的程序。执行代码是在安全气囊废弃时,用于使CPU11执行强制性展开安全气囊处理的程序。非执行代码以及复原代码的详情将在后面述说。此外,ROM12存储了程序,用于在检测出车辆碰撞时展开安全气囊。
此外,ROM12里包含了掩模ROM和PROM(可编程序的只读存储器)。另外,ROM12只是存储器的一个例子,也可以将非执行代码和复原代码存储在EPROM(可擦可编程只读存储器)、EEPROM(电子可擦可编程只读存储器),闪存以及其他非易失性存储器。
RAM13是暂时存储CPU11在执行执行代码和其他各种程序时产生的数据的易失性存储器。
加速度传感器14是用于检测车辆碰撞的电路,将作用于车辆的加速度所对应的信号输出至CPU11。
点火电路15是连接了发火管15a的电路,其根据从CPU11输出的信号,向发火管15a施加电压,展开安全气囊。
发火管15a被收纳在配置于方向盘或仪表盘等的充气器内,其周围分布有火药。发火管15a通过未图示的升压电路与电源3连接,具有因导电而发热的灯丝等。
点火电路15具备用于切断向发火管15a通电的开关。例如,该开关为MOSFET,栅极端子与CPU11的I/O端口连接,漏极端子与发火管15a连接,源端子接地。
通信电路16具备用于通过导线连接废弃装置2的连接头。通信电路16是按照CPU11的控制,在与废弃装置2之间发送/接收各种用于强制性展开安全气囊数据的电路。
废弃装置2具备控制部21、通信电路22和操作部23。
控制部21是一台微型计算机,具备控制废弃装置2各构成部分动作的CPU,该CPU连接有未图示的ROM、RAM和I/O端口。
通信电路22具备用于通过导线连接安全气囊控制装置1的连接头。通信电路22按照控制部21的控制,在与安全气囊控制装置1之间发送/接收各种用于强制性展开安全气囊的数据的电路。
操作部23是在安全气囊废弃时,用于实施强制性展开安全气囊操作的按钮、开关和触摸传感器等部件,通过控制部21可检测操作部23的操作状态。
图2是本发明实施方式所涉及的程序执行无效化方法以及程序存储方法的示意流程图。程序执行无效化方法以及程序存储方法的使用者,首先准备用低级语言记述,用于执行强制性展开安全气囊处理的执行源代码即源程序,即步骤S11。低级语言例如可以是汇编语言。并且,低级语言是记述源程序的语言的一个例子,包括除机器语言外的所有计算机语言。
图3是显示执行源代码中记述的处理步骤的一部分的流程图。CPU11通过编译执行源代码所获得的执行代码,执行以下的处理。首先,CPU11将以从废弃装置2发送的数据为基础的数值代入变量A,即步骤S31。然后,CPU11判断变量A的数值是否为规定值,例如是否为“0×AA”,即步骤S32。安全气囊控制装置1在与废弃装置2之间进行用于强制性展开安全气囊的一系列手续时,使变量A存储“0×AA”。此外,“0×AA”用十六进制数表示时显示数值“AA”,用十进制数表示时为“170”。
判断变量A为“0×AA”时,即步骤S32为YES时,CPU11通过将用于展开安全气囊的展开信号输出至点火电路15,使安全气囊展开并废弃,结束处理,即步骤S33。判断变量A不是“0×AA”时,即步骤S32为NO时,CPU11结束处理。
如图2所示,使用者结束步骤S11的工序后,接着,将执行源代码中包含的一部分指令代码代替为其他指令代码,从而转换为非执行源代码,即步骤S12。
图4A以及图4B是显示将执行源代码转换为非执行源代码的方法的说明图。图4A显示了用汇编语言记述的执行源代码的一部分。并且,图4A以及图4B所示的汇编代码,是“NEC V850ES系列微型计算机”使用的语言。图4A所示的执行源代码对应图3所示的步骤S32的处理。具体为,通过第1行的程序,CPU11将1字节长变量A的内容读出到r16寄存器,通过第2行的程序,CPU11将读出到r16寄存器的1字节长的数据signed扩张为4字节长数据。signed扩张是用于使CPU11执行符号扩张从而对数值进行正负数值的正确处理的指令。并且,通过第3行的程序,CPU11执行r16寄存器的数据和该r16寄存器自身数据的“或”运算,通过第4行的程序,在r16寄存器中加入“0×56”。此外,“0×56”用十六进制数表示时显示数值“56”,用十进制数表示时为“86”。
根据以上处理,变量A的内容为“0×AA”时,r16寄存器的内容为“0×00”,变量A的内容为“0×AA”以外的情况下时,r16寄存器的内容为“0×00”以外。并且,在以下处理中,r16寄存器的内容为“0×00”时,执行强制性展开安全气囊处理,r16寄存器的内容为“0×00”以外的情况下时,设置程序使其强制结束。
因此,要将非执行源代码转换为上述执行源代码时,不管是怎样的条件,只要不在r16寄存器中存储“0×00”即可。例如,在将要执行第4行的“addi”指令之前,r16寄存器的内容只要是“0×00”即可。在这种情况下,通过第4行的程序,r16寄存器的内容变为“0×56”。这与在执行代码的变量A处存储了“0×AA”以外的值的情况相同,程序将在安全气囊不展开的情况下强制结束。
图4B是非执行源代码的一个例子。在图4B中,如上所述,在将要执行第4行的“addi”指令之前,转换执行源代码中包含的指令代码的一部分以使r16寄存器的内容变为“0×00”。具体为,将第2行的“s×b”指令代替为“z×b”指令,将第3行的“or”指令代替为“xor”指令。尤其是,通过代替后的第3行的程序,CPU11执行r16寄存器数据与该r16寄存器自身数据的“异或”运算。参照图8A以及图8B可知,用二进制数表示的数据“1”,和与“1”的“异或”等于“0”,“0”,和与“0”的“异或”也等于“0”。因此,参照图8A以及图8B可知,同一数据的“异或”运算的结果是,r16寄存器的内容为“0×00”。
然而,第2行的“z×b”指令是,使CPU11执行符号扩张的指令从而对数值中所有正负数字进行作为正的数据处理。
图5是显示非执行数据的处理步骤的一部分的流程图。执行非执行代码时,CPU11执行以下处理。首先,CPU11将基于从废弃装置2发送的数据的数值代入变量A,即步骤S131。接着,CPU11判断变量A的数值是否是规定值,例如是否是“0×AA”,即步骤S132。然而在非执行代码中,不管变量A的数值是多少,一般可判断变量A不是规定值。因此,CPU11一般判断变量A不是规定值,即步骤S132为NO,从而强制结束处理。
如图2所示,使用者结束步骤S12的工序后,接着制作屏蔽数据即复原数据,用于将代替后的指令代码恢复为代替前的指令代码,即将非执行代码恢复为执行代码,也就是步骤S13。
图6A以及图6B是用机器语言对执行源代码以及非执行源代码进行记述后的执行代码以及非执行代码的示意说明图。图6A是用机器语言记述执行源代码的执行代码,图6B是用机器语言记述非执行源代码的非执行代码。数据内容中因为代替指令代码而更改的部分划有下划线。并且,r,R是显示指定寄存器数据的数据,d是显示存储器参照地址的数据,i是显示增加值的数据。
图7是屏蔽数据的示意说明图,图8A以及图8B是“异或”运算的真值表以及维恩图。用于将非执行数据恢复为执行数据的屏蔽数据,由执行数据和非执行数据的“异或”运算得到。如图8A、B所示,当“异或”运算的第1输入和第2输入数值相同时,输出为“0”,当第1输入和第2输入数值不同时,输出为“1”,因此通过屏蔽数据能够显示执行数据和非执行数据的数据差分。具体为,在图6A以及图6B中,用于恢复记述在第2行以及第3行的指令代码的屏蔽数据均是“0000000000100000”。此外,也最好预先制作指令代码中没被代替的那一部分的屏蔽数据。因为这样恢复时的运算将变得容易。指令代码中不需要恢复的那一部分的屏蔽数据为“0000…”。并且,毋庸赘言的是,没有必要制作对应所有指令代码的屏蔽数据,只制作指令代码代替部分的屏蔽数据即可。此外,屏蔽数据既可以由使用者利用汇编语言和机器语言转换表(table)人工制作,也可以通过使计算机执行执行代码和非执行代码的“异或”运算来制成。
然而,虽然举例说明了以“异或”作为屏蔽数据的制作方法,但是并不限制于此,只要能够制作显示执行代码和非执行代码差分的数据,也可以采用其他方法。例如,也可以以从执行代码减去非执行代码所得的值作为屏蔽数据。这时,通过用非执行代码加上屏蔽数据,可以恢复执行代码。此外,也可以以执行代码加上非执行代码所得的值作为屏蔽数据。这时,通过从屏蔽数据减去非执行代码,可以恢复执行代码。此外,还可以使用在执行代码和非执行代码之间,通过乘法、除法或者其他可逆运算计算屏蔽数据。
如图2所示,使用者结束步骤S13的工序后,接着编译非执行代码、屏蔽数据以及复原用程序,即步骤S14。复原用程序是通过执行非执行代码和屏蔽数据的“异或”运算,将非执行代码恢复为执行代码,在RAM13中展开恢复后的执行代码的程序。并且,毋庸赘言的是,既可以利用计算机进行编译,也可以由使用者通过汇编语言和机器语言转换表(table)进行人工编译。
接着,使用者将编译后的非执行代码和包含屏蔽数据的复原代码存储在ROM12里,即步骤S15。并且,屏蔽数据没有必要和复原代码为一体,只要能够使用屏蔽数据将非执行代码恢复为执行代码,也可以分别存储在ROM12。此外,也没有必要将非执行代码和包含屏蔽数据的复原代码存储在一个ROM12里。例如,也可以将非执行代码存储在安全气囊控制装置1的ROM12里,将包含屏蔽数据的复原代码存储在安全气囊控制装置1中未图示的EEPROM里。此外,还可以仅将屏蔽数据存储在安全气囊控制装置1中未图示的EEPROM里。
图9是显示要废弃的安全气囊控制装置1以及废弃装置2的处理步骤的流程图。下面将对处理内容进行说明,其前提是安全气囊控制装置1连接有废弃装置2,通过通信电路16、22接收/发送数据。
废弃装置2的控制部21通过监视操作部23的操作状态,判断是否指示了开始安全气囊废弃处理,即步骤S51。判断为还没指示开始废弃处理时,即步骤S51为NO时,控制部21再次将处理返回步骤S51。判断为已经指示开始废弃处理时,即步骤S51为YES时,控制部21将用于要求恢复非执行代码的复原执行数据,通过通信电路22发送至安全气囊控制装置1,即步骤S52。
安全气囊控制装置1的CPU11通过通信电路16接收从废弃装置2发出的复原执行数据,即步骤S53。接收复原执行数据时,CPU11通过执行ROM12存储的复原代码即复原机器语言程序,从ROM12存储的非执行代码和屏蔽数据中恢复执行代码,将恢复后的执行代码在RAM13里展开,即步骤S54。
图10是从概念上显示使用屏蔽数据恢复执行代码的一般方法的说明图,图11A以及图11B是从概念上显示使用屏蔽数据恢复执行代码的具体方法的说明图,图12是恢复后的执行代码在RAM13展开的安全气囊控制装置1以及废弃装置2的一个结构例子的模式示意框图。如图10所示,通过从前头按规定字节执行非执行代码和屏蔽数据的“异或”运算恢复非执行代码,例如用于执行“异或”运算的寄存器为16字节时,按照每16字节的顺序执行。即,通过从前头按规定字节次序执行图6B所示的非执行数据和图7所示的屏蔽数据的“异或”运算,恢复非执行代码。具体为,对应屏蔽数据的数值“1”部分的非执行数据的内容从“1”转换为“0”,或者从“0”转换为“1”。其结果如图11A所示,“z×b”指令恢复为“s×b”指令,如图11B所示,“xor”指令恢复为“or”指令。根据以上处理,图6B所示的非执行代码被恢复为图6A所示的执行代码,恢复后的执行代码如图12所示,在RAM13里展开。
接着,CPU11通过通信电路16将通知结束恢复的复原结束通知数据发送至废弃装置2,即步骤S55。
废弃装置2的控制部21通过通信电路22接收由安全气囊控制装置1发出的复原结束通知数据,即步骤S56。接着,控制部21通过监视操作部23的操作状态,判断是否指示了执行安全气囊废弃处理,即步骤S57。判断还没指示执行安全气囊废弃处理时,即步骤S57为NO时,控制部21使处理再次回到S57。判断已经指示执行安全气囊废弃处理时,即步骤S57为YES时,控制部21将指示执行废弃处理的废弃执行数据,通过通信电路22发送至安全气囊控制装置1,即步骤S58。
安全气囊控制装置1的CPU11通过通信电路16接收由废弃装置2发出的废弃执行数据,即步骤S59。接收废弃执行数据后,CPU11执行恢复后的执行代码,即步骤S60,结束处理。由于变量A里含有数值“0×AA”,因此只要用于强制性展开安全气囊的一系列手续在其与废弃装置2之间正确进行并且执行代码正确恢复,步骤S60中图3所示处理被执行时,发火管15a便点火,安全气囊强制性展开。
根据本实施方式所涉及的程序执行无效化方法、程序存储方法以及安全气囊控制装置,生成用机器语言记述的执行代码后,没有必要进行非执行代码的生成处理。此外,即使由于CPU11的错误操作导致恢复前执行了非执行代码,也能够掌握和确保一切运作。因此,跟以往的执行无效化方法相比,可以制作安全性高的非执行代码,并存储在ROM12里。
此外,屏蔽数据是通过执行代码和非执行代码的“异或”所制成的。在恢复非执行代码时,能够按照非执行代码和屏蔽数据的“异或”,将执行代码恢复为非执行代码。因此,能够容易地制作屏蔽数据和恢复执行代码。即,通过“异或”表示执行数据和非执行数据的差分时,能够利用相同的思考程序或运算,即“异或”来实现执行代码的执行无效化以及恢复。因此,没有必要区别执行无效化时的运算方法和恢复时的运算方法,尤其是人工生成复原数据时,不再需要考虑执行无效化时的运算方法是什么,恢复时的运算方法是什么等问题。
(变形例1)
变形例1所涉及的安全气囊控制装置1、程序执行无效化方法以及程序存储方法,只是非执行化方法不同,因此下面主要就上述不同点进行说明。变形例1所涉及的程序存储方法通过将执行源程序所包含的部分参照地址,代替为其他参照地址,从而使其不能执行。
图13是变形例1所涉及的程序执行无效化方法以及程序存储方法的示意流程图。在变形例1中,与上述实施方式相同,程序存储方法的使用者首先准备好用低级语言记述的,并用于执行强制性展开安全气囊处理的执行源代码,即步骤S111。接着,使用者通过将执行源代码中包含的部分参照地址代替为其他参照地址,使其转换为非执行源代码,即步骤S112。下面,在步骤S113至步骤S115中,执行与步骤S13至S15的处理。
图14A和图14B是用机器语言对变形例1中的执行源代码以及非执行源代码进行记述后的执行代码以及非执行代码的示意说明图。如图14A和图14B所示,变量A的参照地址为“0000000000001000”。在步骤S112中,使用者将变量A的参照地址代替为“0000000000010000”。为了诸如代替后的参照地址经常存储数值“0×00”等,使执行代码的变量A与存储了“0×AA”以外值时结果一致,而将参照地址进行变更。这时,程序将在安全气囊不展开的情况下强制终止。
此外,由于存在因CPU11的错误操作而导致存储在地址的数值被代替为无法预知的数值的可能性,因此最好与指令代码一起代替为其他指令代码。下面为了便于说明,以仅代替参照存储地址为例进行说明。
图15是显示变形例1所涉及的屏蔽数据的说明图。能够制作屏蔽数据,该屏蔽数据通过进行变量A的参照地址“0000000000001000”与代替后的参照地址“0000000000010000”的“异或”运算,将代替后的参照地址恢复为代替前的参照地址。此外,与上述事实方式相同,图15也可以制作未代替的其他指令代码对应的屏蔽数据。
根据变形例1所涉及的程序执行无效化、程序存储方法以及安全气囊控制装置,可以得到与实施方式相同的效果。尤其是,通过组合变形例1所涉及的方法与实施方式所涉及的方法,能够增强容错性,更有效地防止错误操作。
上面公开的实施方式只是针对所有方面的一个示例,并不受其限制。本发明的范围不限于上述内容,而应该包括权利要求书所述并与权利要求书具有相同意思及范围内所有变更的情况。
符号说明

Claims (7)

1.一种程序执行无效化方法,该方法为在废弃安全气囊时,将用于使计算机执行强制性展开安全气囊处理的机器语言程序转换为不能执行的状态,其特征在于,具备以下步骤:
通过将所述机器语言程序的源程序中包含的一部分指令代码代替为用于使所述计算机的CPU运作的正规的其他指令代码,或者将该源程序中包含的一部分参照存储地址代替为存在有参照对象的有效的其他参照存储地址,从而转换为使安全气囊不能展开的源程序的步骤;
将使安全气囊不能展开的源程序编译为执行无效化机器语言程序的步骤;
制作复原数据的步骤,所述复原数据用于将该执行无效化机器语言程序恢复为能够使安全气囊强制性展开的所述机器语言程序。
2.如权利要求1所述的程序执行无效化方法,其特征在于,
所述复原数据包括显示所述执行无效化机器语言程序和所述机器语言程序的差分的数据。
3.如权利要求1所述的程序执行无效化方法,其特征在于,
所述复原数据包括所述执行无效化机器语言程序和所述机器语言程序的“异或”。
4.一种程序存储方法,其特征在于,
具备将使用如权利要求1至3中任一项所述的程序执行无效化方法制成的所述执行无效化机器语言程序以及复原数据存储在存储部的步骤。
5.如权利要求4所述的程序存储方法,其特征在于,
具备将复原机器语言程序存储在存储部的步骤,其中复原机器语言程序利用所述复原数据,使计算机执行将所述执行无效化机器语言程序恢复为所述机器语言程序的处理。
6.一种安全气囊控制装置,其特征在于,具备:
存储了利用如权利要求1至3中任一项所述的程序执行无效化方法制成的所述执行无效化机器语言程序以及复原数据的存储部;
基于该存储部存储的所述执行无效化机器语言程序以及复原数据,将所述执行无效化机器语言程序恢复为所述机器语言程序,并执行该机器语言程序的控制部;
按照执行了所述机器语言程序的所述控制部的控制而展开安全气囊的电路。
7.一种安全气囊控制装置,其特征在于,具备:
存储了执行无效化机器语言程序和复原数据的存储部,其中,所述执行无效化机器语言程序在废弃安全气囊时,通过将用于执行强制性展开该安全气囊处理的机器语言程序中包含的一部分指令代码代替为其他指令代码,或者将该机器语言程序中包含的一部分参照存储地址代替为其他参照存储地址而获得;所述复原数据用于将该执行无效化机器语言程序恢复为所述机器语言程序;
基于该存储部存储的所述执行无效化机器语言程序以及复原数据,将所述执行无效化机器语言程序恢复为所述机器语言程序并执行该机器语言程序的控制部;
按照执行了所述机器语言程序的所述控制部的控制而展开安全气囊的电路。
CN201080052705.8A 2009-11-20 2010-10-29 程序执行无效化方法、程序存储方法以及安全气囊控制装置 Active CN102666211B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2009265329 2009-11-20
JP2009-265329 2009-11-20
PCT/JP2010/069261 WO2011062044A1 (ja) 2009-11-20 2010-10-29 プログラム実行不能化方法、プログラム格納方法及びエアバッグ制御装置

Publications (2)

Publication Number Publication Date
CN102666211A CN102666211A (zh) 2012-09-12
CN102666211B true CN102666211B (zh) 2014-09-17

Family

ID=44059527

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080052705.8A Active CN102666211B (zh) 2009-11-20 2010-10-29 程序执行无效化方法、程序存储方法以及安全气囊控制装置

Country Status (3)

Country Link
JP (1) JP5468086B2 (zh)
CN (1) CN102666211B (zh)
WO (1) WO2011062044A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104670145B (zh) * 2013-11-27 2019-06-07 博世汽车部件(苏州)有限公司 提供汽车安全缓冲的方法和装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1677285A (zh) * 2004-03-29 2005-10-05 三菱电机株式会社 车载电子控制装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3501208B2 (ja) * 1997-05-15 2004-03-02 トヨタ自動車株式会社 乗員保護装置の起動装置
JP3898340B2 (ja) * 1998-04-24 2007-03-28 株式会社ケーヒン エアバッグの廃棄装置
JP3898339B2 (ja) * 1998-04-24 2007-03-28 株式会社ケーヒン エアバッグの廃棄装置
JP3898338B2 (ja) * 1998-04-24 2007-03-28 株式会社ケーヒン エアバッグの廃棄装置
JP3898337B2 (ja) * 1998-04-24 2007-03-28 株式会社ケーヒン エアバッグの廃棄装置
DE19849079A1 (de) * 1998-10-24 2000-04-27 Bayerische Motoren Werke Ag Verfahren zur Entschärfen von pyrotechnischen Aktuatoren in einem Fahrzeug
EP1613510B1 (de) * 2003-04-01 2007-08-29 Robert Bosch Gmbh Steuergerät für ein rückhaltesystem
JP2006256371A (ja) * 2005-03-15 2006-09-28 Toyota Motor Corp 乗員保護装置の起動装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1677285A (zh) * 2004-03-29 2005-10-05 三菱电机株式会社 车载电子控制装置

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
JP特开平11-301387A 1999.11.02
JP特开平11-301388A 1999.11.02
JP特开平11-301390A 1999.11.02
JP特开平11-301391A 1999.11.02

Also Published As

Publication number Publication date
JPWO2011062044A1 (ja) 2013-04-04
CN102666211A (zh) 2012-09-12
JP5468086B2 (ja) 2014-04-09
WO2011062044A1 (ja) 2011-05-26

Similar Documents

Publication Publication Date Title
EP2221724B1 (en) Vehicular Memory Management Apparatus
EP3076291B1 (en) Method for assignment of verification numbers
US8095257B2 (en) Electronic control apparatus having self-diagnosis function
CN102467401A (zh) 电源供应单元的微控制器单元的固件更新方法与系统
US20140142781A1 (en) Vehicle Unit And Method For Operating The Vehicle Unit
CN103577211A (zh) 一种新的Android ROM系统打包和烧录、更新方式
CN106648768B (zh) 一种升级设备的方法及系统
CN102666211B (zh) 程序执行无效化方法、程序存储方法以及安全气囊控制装置
CN104965776A (zh) 移动终端在恢复模式下查看日志的方法和系统
JP3886539B2 (ja) オペレーティングシステムをロードする方法
CN111090443A (zh) 一种保障linux系统安全升级的方法、设备和存储介质
CN105183580A (zh) 一种引导程序的存储方法、故障恢复方法及设备
JP2001043101A (ja) 制御装置のメモリ内容変更方法及びその装置
US7263421B2 (en) Control unit for a restraint system
US9304171B2 (en) Computer-implemented method for generating software, a battery, and a motor vehicle
KR20230004235A (ko) 제어 장치, 제어 방법, 및 프로그램
WO2019064644A1 (ja) 電子制御装置及び制御プログラム検証方法
JPH0793006A (ja) 車両用電子制御装置
CN116185461B (zh) 固件升级方法及系统
JP4715189B2 (ja) ディスク装置およびファームウェアの判定方法
CN115509641A (zh) 一种双BootLoader启动方法及装置
US20050034010A1 (en) Program-controlled unit
CN112988188A (zh) 一种应用于汽车方向盘转角传感器的软件升级方法
JP6512156B2 (ja) 制御装置
JP2020030589A (ja) 制御装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20180704

Address after: Sweden Wogaerda

Patentee after: Vennell Sweden

Address before: Sweden Wogaerda

Patentee before: AUTOLIV DEVELOPMENT AB

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20230518

Address after: Stockholm, SWE

Patentee after: Vinier Passive Systems Co.,Ltd.

Address before: Sweden Wogaerda

Patentee before: Vennell Sweden

CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: Stockholm, SWE

Patentee after: Vinninger Swedish Security Systems

Address before: Stockholm, SWE

Patentee before: Vinier Passive Systems Co.,Ltd.