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

文档序号:3933047阅读:164来源:国知局

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