微计算机及其动作方法

文档序号:6351486阅读:161来源:国知局
专利名称:微计算机及其动作方法
技术领域
本发明涉及一种微计 算机的动作方法。更详细地说涉及一种在微计算机的中央处理装置(CPU)中发生了所谓的失控等错误的情况下使CPU自动恢复的电路及其使用方法。
背景技术
在微计算机的CPU中,由于外部的电噪声、静电、电源电压的不稳定以及其它原因而发生致命错误。由此,有时该CPU无法执行程序。作为这样的致命错误的状态的例子,可列举所谓的CPU失控等。作为针对该微计算机的CPU的致命错误的对策,众所周知的看门狗(watchdog)的方法较为普遍。该方法设置与软件处理的重复(循环)时间相比足够长的计时器,在软件处理的循环中将该计时器复位。在CPU中发生了致命错误的情况下,由于软件处理不正常地进行动作,因此计时器不被复位而结束,以计时器的结束为触发,对微计算机整体施加复位。另一方面,在CPU正常地进行动作的情况下(在没有发生致命错误的情况下),由于计时器在结束之前被复位,因此微计算机不会被复位。但是,在该方法中,CPU的致命错误状态有可能会持续从计时器的开始至结束为止的较长时间。因而,在如从CPU的致命错误发生起至计时器结束为止的时间对微计算机的使用带来不良影响那样的环境或者如由于该时间内的微计算机的错误动作而对使用者带来危险那样的环境中,看门狗未必有效,但是由于除此之外没有更好的方法,因此仍采用了看门狗。并且,在使用了看门狗的针对CPU的致命错误的对策中,在CPU中发生了致命错误之后,难以使该CPU的状态恢复到发生这种错误之前的状态。其理由是,直到检测出CPU的致命错误为止花费了较长时间,因此检测出CPU的致命错误的时刻的CPU寄存器的信息等的状态不同于刚发生致命错误之前的状态。以往,微计算机当检测出CPU的致命错误时,废弃在检测出CPU的致命错误的时刻的CPU寄存器的信息等,而将微计算机整体进行初始化。因而,以往为了使CPU从致命错误中恢复,除了用于检测该CPU的致命错误的时间以外,还需要用于将微计算机整体进行初始化的时间。而且,为了使微计算机恢复到在CPU中发生致命错误之前的状态,而必须在CPU的初始化之后对在发生该错误之前正在执行的处理(应用程序(applicationprogram)的处理)进行再现。对过去正在执行的处理进行再现并不容易,并且需要用于执行该再现的处理时间。因而,根据正在使用微计算机的环境,使微计算机从CPU的致命错误中恢复有可能成为大问题。例如有可能在从CPU的致命错误开始至初始化为止的时间内机械无法停止而发生事故,还有可能发生钱款的结算丢失等严重的情况。—般来说,在使用微计算机的单片微计算机(One ChipMicrocomputer)中,仅使用了一个用于初始化的信号。因此,初始化是针对微计算机整体进行的。因此,假定在值得将微计算机整体初始化的重大错误的情况下进行微计算机的初始化。因而,认为从CPU的致命错误中恢复要花费很长时间或发生该致命错误之前的信息等丢失这些问题在以往是没有办法解决的。
并且,作为其它的方法,还存在如专利文献I所记载的那样代替周期性的中断而仅对CPU周期性地施加复位的方法。在使用该方法的情况下,在CPU上执行的应用程序的执行开始至结束的时间必须在复位的周期内。理由是如果在执行应用程序的过程中CPU被复位,则程序计数器、堆栈等CPU寄存器的信息也被复位,关于应用程序中的命令的地址被删除。因而,在仅将CPU周期性地复位的情况下,需要将应用程序形成为如处理开始至结束的时间收敛在CPU的复位周期的间隔内那样的极小的大小。因此,与普通的程序相比,所需的应用程序的大小变小。由此,该应用程序的数量变得庞大。还存在如下问题应用程序的制作者不仅要考虑应用程序的处理内容,还必须考虑复位的周期来进行应用程序的制作。专利文献I :日本特开平6-71024号公报专利文献2 :日本特开平9-319602号公报

发明内容
发明要解决的问题本发明的目的在于在微计算机的CPU中发生了致命错误的情况下不进行微计算机整体的初始化或者复位而仅对CPU进行复位来使微计算机的CPU在极短的时间内从致命错误状态恢复。另外,本发明的目的在于不对在微计算机上正在执行的应用程序带来影响地将CPU复位。用于解决问题的方案本发明的微计算机具备CPU ;RAM,其通过CPU总线与该CPU进行连接;中断请求信号输出单元,其将用于请求开始执行中断处理的中断请求信号输出到CPU;以及CPU复位信号输出单元,其在该中断请求信号输出单元输出中断请求信号之后,将用于请求开始CPU复位处理的CPU复位信号输出到CPU,其中,CPU当接收到中断请求信号时,中断在该CPU上正在执行的应用程序的处理,并且将CPU寄存器的信息作为恢复信息保存到RAM中,然后,当接收到CPU复位信号时,CPU被复位,并且能够将保存在RAM中的恢复信息复制到CPU寄存器。本发明的微计算机能够还具备计时计数器电路,该计时计数器电路周期性地产生CPU复位信号和中断请求信号。在本发明的微计算机中,计时计数器电路能够具备附加计时器,CPU判断CPU寄存器的信息是否正常,仅在判断为该CPU寄存器的信息正常的情况下,附加计时器进行动作,禁止在向CPU提供CPU复位信号的期间的CPU复位处理的执行。本发明的微计算机能够构成为还具备系统复位信号源和逻辑或电路,该系统复位信号源用于将微计算机整体复位,CPU复位信号输出单元和系统复位信号源连接在逻辑或电路的输入侧,CPU连接在逻辑或电路的输出侧。本发明的微计算机的动作方法能够包括以下步骤将用于请求开始执行中断处理的中断请求信号从计时计数器电路输出到CPU ;该CPU在接收到中断请求信号时,中断在CPU上正在执行的应用程序的处理;由CPU将其CPU寄存器的信息作为恢复信息保存到RAM中;在输出中断请求信号之后,将用于请求开始CPU复位处理的CPU复位信号输出到CPU ;CPU在接收到CPU复位信号时,将CPU复位;以及由该CPU将保存在RAM中的恢复信息复制到CPU寄存器。
本发明的微计算机的动作方法能够由计时计数器电路周期性地产生CPU复位信号和中断请求信号。本发明的微计算机的动作方法能够还包括以下步骤由CPU判断CPU寄存器的信息是否正常,仅在判断为CPU寄存器的信息正常的情况下,在向CPU提供CPU复位信号的期间,禁止执行将CPU复位的步骤。发明的效果通过提早检测出在微计算机的CPU中发生了致命错误的情形并能够从致命错误 中恢复,由此能够大幅减少使用了微计算机的应用装置的异常的动作、有时是造成危险等的错误动作。特别是在对汽车、飞机、船舶、工业用机器人等领域中使用的机械系统进行控制的设备中,这些设备的错误动作有可能会引起很大的事故(例如汽车的制动控制、转向控制等)。与对机械系统进行控制的设备中的错误动作的检测以及从该错误动作中恢复所需要的时间相比,利用本发明使微计算机的CPU从致命错误中恢复所需要的时间非常短。因此,在微计算机中进行由于微计算机的CPU的致命错误引起的这些设备的错误动作的检测以及用于从该错误动作中恢复的处理而不是在设备中进行这些处理是有效的。另外,在上述领域中,与其它领域的设备相比更多地发生电噪声等引发致命错误的原因。因而,通过将本发明用于控制机械系统的设备,能够大幅减少以往针对电噪声等的很多的对策,还能够实施比以往更有力的对策,因此能够同时实现成本降低和可靠性的提高。另外,在微计算机的CPU中持续地发生致命错误的情况下,检测CPU的持续的致命错误,还能够根据其检测结果,通过输入输出接口提供用于对设备的错误动作进行警告的信息。并且,在微计算机的CPU中发生了致命错误的情况下,本发明不是将微计算机整体复位,而是仅将CPU复位,因此能够在极短的时间内进行从致命错误的恢复。另外,本发明能够在中断在CPU中发生致命错误的时刻正在执行的应用程序之后将CPU复位,然后使应用程序从发生该致命错误之前的时刻起再启动。列举期望有效利用本发明的领域中的一例,在电梯在动作过程中由于雷电、电源的噪声、设计上的缺陷所引起的噪声而在进行电梯控制的微计算机的CPU中发生致命错误从而通过该CPU使电梯进行了错误动作的情况下,也能够通过在电梯的微计算机中采用本发明的微计算机来使电梯在极短的时间内恢复到稳定状态的动作。


图I是表示本发明的一个实施例所涉及的微计算机的整体的框图。图2是更详细地示出图I的时钟产生电路、计时计数器电路以及CPU的框图。图3是表示第一实施例的微计算机的动作的流程图。图4是表示第二实施例的微计算机的动作的流程图。图5是表示中断处理的动作的流程图。图6是表示CPU复位处理的动作的流程图。图7是关于CPU正常地进行动作时的第一实施例的时序图。图8是关于在CPU中发生了致命错误时的第一实施例的时序图。图9是关于在CPU中发生了致命错误时的第二实施例的时序图。
具体实施例方式图I是表示本发明的一个实施例所涉及的微计算机的整体的框图。在此,微计算机100具备中央处理装置(CPU) 101、主存储装置(RAM) 105,ROM 110、通信用电路115、通用计数计时器120、输入输出端口 125、逻辑或电路(0R电路)130、系统复位信号源135、时钟产生电路140、计时计数器电路145、附加计时器150、看门狗电路155、非法指令检测电路及不正确外部访问检测电路160、系统复位用总线165、CPU总线170。
系统复位信号源135在电源被接通时等产生系统复位用信号,通过系统复位用总线165发送系统复位用信号。系统复位用信号是用于使微计算机整体复位的信号。系统复位用信号不仅用于对CPU 101进行复位,例如还用于对输入输出端口 125、通信用电路115、通用计数计时器120等进行复位。看门狗电路155以及非法指令检测电路及不正确外部访问检测电路160分别判断CPU 101是否正常地进行动作。在判断为CPU 101没有正常地进行动作的情况下,看门狗电路155或非法指令检测电路及不正确外部访问检测电路160通过系统复位用总线165向CPU 101、通信用电路115等发送系统复位用信号,将微计算机100整体进行复位。时钟产生电路140是产生系统的时钟信号的电路。计时计数器电路145是产生第一处理信号(中断请求信号)和第二处理信号(CPU复位信号)的电路。逻辑或电路130是用于通过防止来自计时计数器电路145的CPU复位信号被发送到系统复位用总线165来将CPU复位信号仅提供给CPU 101的电路。CPU复位信号和系统复位用信号作为输入被提供给逻辑或电路。因而,CPU复位信号不被提供给CPU 101以外的通信用电路115、通用计数计时器120等。CPU 101是执行用于微计算机100的控制及运算的电路。图2是更详细地示出图I的时钟产生电路140、计时计数器电路145以及CPU 101的框图。CPU 101具备CPU寄存器235。时钟产生电路140包括时钟产生器210和分频器215。计时计数器电路145包括计数器220、附加计时器225、比较器230、寄存器255、CPU复位信号用触发器电路240、中断请求信号用触发器电路245、系统复位用触发器电路250。CPU 101通过CPU总线170与寄存器255及系统复位用触发器电路250相连接。时钟产生器210是产生系统的时钟信号的电路。时钟产生器210所产生的第一时钟信号被提供给CPU 101和分频器215。分频器215将第一时钟信号的频率变更为适当频率的第二时钟信号。分频器215将第二时钟信号提供给计数器220。计数器220对第二时钟信号进行计数。对第二时钟信号进行计数直到第二时钟信号的计数值达到计数上限值为止。在此,第二时钟信号的计数值是计数器220对第二时钟信号进行计数得到的值。在第二时钟信号的计数值达到了计数上限值的情况下,计数器220产生CPU复位信号,对CPU复位信号用触发器电路240进行设置,在足以将CPU复位的数量的时钟之后,将触发器电路240复位。并且,计数器220在第二时钟信号的计数值达到了计数上限值之后,将第二时钟信号的计数值清零,并重新开始计数。作为其它的实施例,能够构成为=CPU 101在初始化处理等中设定上述计数上限值。此外,即使由于电噪声等的影响而第二时钟信号的计数值被变更,作为自由振荡(free run)计数器的计数器220也不会停止第二时钟信号的计数。
作为其它的实施例,时钟产生器210不使用分频器215而能够将第一时钟信号提供给计数器220。在这种情况下,计数器220使用第一时钟信号作为时钟信号以代替第二时钟信号CPU复位信号用触发器电路240将从计数器220接收到的CPU复位信号波形整形为短脉宽的脉冲信号,并提供给CPUlOl。作为其它的实施例,在计数器220能够以短脉宽的脉冲信号的形式产生CPU复位信号的情况下,计数器220不经由CPU复位信号用触发器电路240就能够直接向CPU 101提供CPU复位信号。在电源接通时等,通过系统复位用总线165向CPU 101提供系统复位用信号。CPU101当接收到系统复位用信号时,将系统复位用触发器电路250复位。作为其它的实施例,也能够设为在电源接通时等,系统复位信号源135通过系统复位用总线将系统复位用触发器电路250复位。作为其它的实施例,也能够设为CPU 101将系统复位用信号提供给计时计数器电路145,将计时计数器电路145内的要素的全部或一部分复位。之后,CPU 101在初始化处理中对系统复位用触发器电路250进行设置。计数器220在系统复位用触发器电路250复位的期间不对第二时钟信号进行计数。当在初始化处理中对系统复位用触发器电路250进行了设置时,计数器220开始第二时钟信号的计数。在初始化处理中,CPU 101将作为规定的数值的比较对象值通过CPU总线170提供给寄存器255。寄存器255保存该比较对象值。比较器230将第二时钟信号的计数值与寄存器255所保存的比较对象值进行比较。在第二时钟信号的计数值与比较对象值一致的情况下,比较器230产生中断请求信号并提供给中断请求信号用触发器电路245。中断请求信号用触发器电路245将从比较器230接收到的中断请求信号调整为短脉宽的脉冲信号后提供给CPU 101。作为其它的实施例,在比较器230能够以短脉宽的脉冲信号的形式产生中断请求信号的情况下,比较器230不经由中断请求信号用触发器电路245就能够直接将中断请求信号提供给CPU 101。作为其它的实施例,计数器220能够具备附加计时器225。附加计时器225使计时器在预先设定的时间内进行动作。附加计时器225在计时器进行动作的期间,通过控制计数器220,能够禁止计数器220向CPU复位信号用触发器电路240提供CPU复位信号。作为其它的实施例,附加计时器225在计时器进行动作的期间,将CPU复位信号用触发器电路240复位,禁止CPU复位信号用触发器电路240向CPU 101提供CPU复位信号。实施例I下面说明图2的电路的动作。首先,在电源被接通时,系统复位信号源135将计时计数器电路145内的计数器220以及所有的触发器电路240、245及250复位。作为其它的实施例,也可以通过CPU 101将系统复位用触发器电路250复位。在电源被接通之后,CPU 101进行初始化处理。在初始化处理中,CPU 101首先对寄存器255设定合适的比较对象值。比较对象值是在比较器230产生中断请求信号时使用的值。比较器230将第二时钟信号的计数值与比较对象值进行比较,在两者一致的情况下产生中断请求信号。然后,CPU 101接收中断请求信号,并执行中断处理。因而,在第二时钟信号的计数开始之后经过进行计数直到第二时钟信号的计数值达到比较对象值为止的期间的时间(比较对象时间)时执行中断处理。因而,每隔规定的时间间隔产生中断请求信号。由此,CPU 101以规定的时间间隔接收中断请求信号,并执行中断请求处理。在此,比较对象时间是进行计数直到第二时钟信号的计数值达到比较对象值为止的期间的时间,是利用(第二时钟信号的周期)X (比较对象值)得到的。在此,中断处理是指处理的优先级至少高于应用程序的处理。而且,当中断处理被触发时,CPU 101中断应用程序的处理并开始中断处理。系统复位用触发器电路250仅在微计算机100的电源接通时等产生了系统复位用信号的情况下,通过CPU 101或系统复位信号源135而被复位。之后,在初始化处理中,CPU101对系统复位用触发器电路250进行设置。在系统复位用触发器电路250被设置之后,计数器220开始第二时钟信号的计数。不设置以软件方式进行复位的单元的理由是,为了防止在CPU中发生了致命错误的情况下系统复位用触发器电路250被复位。在保证了在CPU中发生了致命错误时进行动作以防止系统复位用触发器电路250被复位的情况下,也可以 设置通过软件将系统复位用触发器电路250复位的单元。比较器230将第二时钟信号的计数值与寄存器255所保存的比较对象值进行比较。也就是说,确认从第二时钟信号的计数开始或重新开始起是否经过了比较对象时间。在第二时钟信号的计数值与比较对象值一致的情况下,比较器230产生中断请求信号,对中断请求信号用触发器电路245进行设置,并在几个时钟之后进行复位。中断请求信号用触发器电路245将中断请求信号波形整形为短脉宽的脉冲信号。被整形为脉冲信号的中断请求信号被提供给CPU 101。作为其它的实施例,在比较器230能够以短脉宽的脉冲信号的形式产生中断请求信号的情况下,比较器230不经由中断请求信号用触发器电路245就能够向CPU 101提供中断请求信号。CPU 101当接收到中断请求信号时,执行中断处理。计数器220确认第二时钟信号的计数值是否达到了计数上限值。也就是说,计数器220确认从第二时钟信号的计数开始或重新开始起是否经过了计数上限时间。在此,计数上限时间是进行计数直到第二时钟信号的计数值达到计数上限值为止的期间的时间,是利用(第二时钟信号的周期)X (计数上限值)得到的。计数器220当确认出第二时钟信号的计数值达到了计数上限值时,产生CPU复位信号,对CPU复位信号用触发器电路240进行设置。CPU复位信号用触发器电路240将CPU复位信号波形整形为短脉宽的脉冲信号。被整形为脉冲信号的CPU复位信号被提供给CPU101。作为其它的实施例,在计数器220能够以短脉宽的脉冲信号的形式产生CPU复位信号的情况下,计数器220不经由CPU复位信号用触发器电路240就能够将CPU复位信号提供给CPU 101。CPU 101当接收到CPU复位信号时,执行CPU复位处理。CPU复位信号用触发器电路240在被设置之后立即通过计数器220等被复位。说明通过接收到中断请求信号而被执行的中断处理的执行开始至结束的时间(中断处理的执行时间)。在此,比较对象时间是比计数上限时间短的时间。而且,在从计数器220开始或重新开始第二时钟信号的计数时、即计数开始时起达到了比较对象时间时执行中断处理。在从该计数开始时或重新开始时起达到了计数上限时间时执行CPU复位处理。而且,中断处理需要在CPU复位处理执行前结束。稍后记述其理由。因而,从计数上限时间减去比较对象时间得到的时间必须是比中断处理的执行时间长的时间。具体来说,在执行中断处理所需的时间是50微秒的情况下,(计数上限时间)-(比较对象时间)需要比50微秒长。因而,在计数上限时间是5毫秒的情况下,比较对象时间必须少于4950微秒。优选将中断处理的执行时间设定为计数器220的上限时间的29Γ5%左右的时间。实施例2 计时计数器电路145还能够具备附加计时器225。附加计时器225在中断处理中通过CPU 101等开始启动。附加计时器225用于在CPU复位信号产生时(在从计数开始或重新开始时起达到了计数上限时间时)禁止CPU复位信号的产生。附加计时器225将用于禁止对CPU复位信号用触发器电路240进行设置的信号即CPU复位禁止信号提供给该触发器电路240。作为其它的实施例,也能够设为附加计时器225通过控制计数器220来禁止由计数器220产生CPU复位信号。第二实施例的微计算机100由于不是定期地执行CPU复位处理,因此与第一实施例的微计算机100相比,能够减轻对CPU 101等产生的负担。图3是表示第一实施例的微计算机100的动作的流程图。首先,对微计算机100接通电源(步骤305)。然后,在初始化处理中进行微计算机100的初始化(步骤310)。在初始化处理结束之后,计数器220对被提供的时钟信号进行计数(步骤315)。比较器230判断时钟信号的计数值是否达到了比较对象值(步骤320)。在此,时钟信号的计数值是计数器220对时钟信号进行计数得到的值。在时钟信号的计数值未达到比较对象值的情况下,比较器230进行待机直到时钟信号的计数值变为比较对象值为止。在时钟信号的计数值达到了比较对象值的情况下,比较器230产生中断请求信号并提供给CPU 101 (步骤 325)。CPU 101当接收到中断请求信号时,中断正在执行的应用程序的处理,并且执行中断处理(步骤330)。稍后记述中断处理。当中断处理结束时,计数器220进行待机直到时钟信号的计数值达到计数上限值为止(步骤335)。在时钟信号的计数值达到了计数上限值之后,计数器220产生CPU复位信号并提供给CPUlOl (步骤340)。并且,计数器220将时钟信号的计数值清零,并且再次开始时钟信号的计数。CPU 101当接收到CPU复位信号时,执行CPU复位处理(步骤345)。稍后记述CPU
复位处理。图4是表示第二实施例的微计算机100的动作的流程图。图4的流程图的一部分与图3的流程图相同。图4的步骤405、410、415、420、425、430、450、455及460分别相当于图 3 的步骤 305、310、315、320、325、330、335、340 及 345。图4的流程图相当于在图3的流程图中追加该图4的流程图的步骤445、450及455得到的图。下面,说明图3与图4的不同点。CPU 101获取CPU寄存器235的信息(步骤435)。CPU 101判断所获取的信息是否正常(步骤440)。能够通过CPU寄存器235的值是否收敛于正常的范围、或者是否为合适的值等来判断CPU寄存器235的信息是否正常。在判断为所获取的信息不正常的情况下,执行分别相当于图3的流程图的步骤335,340及345的步骤450、455及460。在判断为所获取的信息正常的情况下,附加计时器225禁止CPU复位信号的产生(步骤445)。此外,还能够使CPU 101启动附加计时器225。因而,在CPU 101中发生了致命错误的情况下,由于附加计时器225不被启动,因此附加计时器225无法禁止CPU复位信号的产生。由此,CPU复位信号被提供给CPU,从而CPU复位处理被执行。作为附加计时器225不被启动时的例子,存在由于在CPU 101中发生了致命错误而CPU 101不受理用于启动附加计时器225的处理即中断处理的情况等。图5是表示中断处理的动作的流程图。通过CPU 101接收中断请求信号来执行中断处理(参照图3的步骤325及330或者图4的步骤425及430)。首先,CPU 101将中断开始时刻(应用程序中断时刻)的CPU寄存器235的信息保存到RAM 105中(步骤505)。然后,CPU 101判断该中断处理是否为正常的动作(步骤510)。CPU 101通过确认被保存在RAM 105中的特定的信息是否正确来判断该中断处理是否为正常的动作。例如,在初始化处理中,CPU 101将一个或两个以上的规定的值预先保存到RAM105中,然后,在中断处理中,确认该值是否未被变更。在此,在CPU 101正常地进行动作的情况下,这些规定的值在初始化处理以外的处理中不被变更,但是在CPU 101中发生了致命错误的情况下,例如由于CPU 101的错误动作而有可能这些规定的值被变更。在规定的值被变更的情况下,意味着发生了致命错误。另外,在前次的中断处理中,CPU 101将该中断处理开始时刻的CPU寄存器235的信息作为恢复信息保存到RAM 105中,然后,在当前执行的中断处理中,CPU 101将保存在RAM 105中的当前的中断处理开始时刻的CPU寄存器235的信息与保存在RAM 105中的前次的中断处理时刻的恢复信息进行比较,判断规定的数据是否正常。进一步,CPU 101确认规定的标志是否为0N,来判断规定的数据是否正常。作为规定的标志的例子,能够将中断处理结束标志设置在RAM 105中。在中断处理结束标志为ON的情况下,CPU 101判断为保存在RAM 105中的信息是正确的。在使用中断处理结束标志的情况下,CPU 101在步骤510之后将中断处理结束标志设为0FF,在中断处理结束时恢复为0N。由此,在执行前次的中断处理的期间发生了致命错误的情况下,由于在当前的中断处理时的步骤510中中断处理结束标志为0FF,因此CPU 101判断为保存在RAM 105中的特定的信息不正确。并且,在前次的中断处理中,CPU 101不仅能够将上述CPU寄存器235的信息和/或上述规定的标志保存在RAM 105的区域的一个位置上,也能够保存在两个位置以上。然后,在当前执行的中断处理中,CPU 101确认被保存在RAM 105中的前次中断处理时刻的上述两个以上的CPU寄存器235的信息和/或上述两个以上的规定的标志是否分别相同。然后,在这些信息和/或标志相同的情况下,CPU 101判断为规定的数据是正常的。由此,能够更正确地执行规定的数据是否正常的判断。作为一个实施例,还能够将所保存的上述信息或标志的数量设为三个。由此,即使这三个信息或标志中的一个不同,CPU 101也能够将剩余的两个信息或标志作为正确的信息或标志来使用。由此,即使RAM 105上的数据一部分被破损,CPU 101也能够进行规定的数据是否正常的判断。关于这些判断的实施例是个例示,也能够通过其它的实施例同样地进行判断。在判断为中断处理是正常的动作的情况下,CPU 101判断被保存在RAM 105中的中断处理开始时刻的CPU寄存器235的信息是否正常(步骤515)。能够通过CPU寄存器235的信息的值是否收敛于正常的范围、或者是否为合适的值来判断中断处理开始时刻的 CPU寄存器235的信息是否正常。
在判断为中断处理开始时刻的CPU寄存器235的信息正常的情况下,CPU 101将判断为正常的CPU寄存器235的信息作为恢复信息保存到RAM 105的其它区域(步骤520)。作为其它的实施例,CPU 101能够将在以前的中断处理中已经保存在RAM105中的恢复信息复制到RAM 105的其它位置,并对恢复信息的历史记录进行管理。并且,作为其它的实施例,在使用中断处理结束标志的情况下,将中断处理结束标志设为0N。在步骤510中判断为中断处理不是正常的动作的情况下,CPU 101判断被保存在 RAM 105中的信息是否正常(步骤525)。利用被保存在上述RAM 105中的特定的信息等来执行步骤525的判断。在步骤525中判断为被保存在RAM 105中的信息不正常的情况下,进行系统复位以将微计算机100整体复位(步骤530)。在进行了系统复位之后,步骤530以后的处理被中止,微计算机100被初始化。在其它的实施例中,能够在步骤530中不对输入输出端口125等不容易受到CPU的致命错误的影响的要素进行复位。在步骤515中判断为被保存在RAM 105中的CPU寄存器235的信息不正常的情况下、或者在步骤525中判断为中断处理开始时刻的CPU寄存器235的信息正常的情况下,CPU 101使用作为历史记录被保存在RAM 105中的恢复信息等,来进行CPU寄存器235的信息的恢复处理(步骤535)。作为其它的实施例,能够构成为在步骤535之后执行步骤510。作为恢复处理的一个实施例,CPU 101能够使用作为历史记录被保存在RAM 105中的恢复信息来恢复CPU寄存器235。作为其它的实施例,还能够构成为中断处理仅包括步骤505和步骤520。图6是表示CPU复位处理的动作的流程图。通过CPU 101接收CPU复位信号来执行CPU复位处理(参照图3的步骤340及345或图4的步骤455及460)。首先,进行CPU 101的复位(步骤610)。由此,CPU寄存器235的信息也被清空。作为用于执行CPU复位处理(步骤345或步骤460)的触发的CPU复位信号一定会周期性地从计时计数器提供。因此,即使中断处理(步骤330或步骤430)不在CPU复位处理(步骤345或步骤460)之前执行,CPU复位处理也会被执行。因而,即使由于在CPU 101中发生了致命错误而不执行中断处理,CPU复位处理也不依赖于中断处理而被执行。CPU 101将保存在RAM 105中的恢复信息复制到CPU寄存器235 (步骤615)。由此,CPU寄存器235的信息是在中断处理中保存的信息(图5的步骤520),因此在执行中断处理之前所执行的应用程序不会受到复位CPU 101所产生的影响,而再启动。作为其它的实施例,也可以构成为CPU 101在将恢复信息复制到CPU寄存器235之前,检查恢复信息是否为正常的值、或者恢复信息是否合适等。由此,在恢复信息不是正常或合适的值的情况下,能够进行系统复位等。另外,在CPU 101中发生了致命错误之后该CPU 101被复位的情况下,通过步骤615的处理,用被保存在RAM 105中的恢复信息覆盖CPU寄存器235的信息。因而,在恢复信息未受到由CPU 101中的致命错误所引起的影响的情况下,即使在CPU 101中发生了致命错误,本发明也能够使CPU 101从致命错误中恢复。在此,上述的、中断处理需要在CPU复位处理执行前结束的理由是在CPU 101中没有发生致命错误的情况下,为了在CPU复位处理的步骤615中将保存在RAM 105中的恢复信息复制到CPU寄存器235而需要将恢复信息预先保存在RAM 105中(参照图5的步骤520),中断处理正常结束,CPU 101为了执行CPU复位处理而需要进入待机状态。
作为其它的实施例,能够在CPU寄存器235或RAM 105中保存可执行CPU复位处理的标志。例如在中断处理中恢复信息被保存到RAM 105中时,CPU 101将可执行CPU复位处理的标志设为0N。然后,仅在可执行CPU复位处理的标志为ON的情况下,执行CPU复位处理,在CPU复位处理完成时,CPU 101将可执行CPU复位处理的标志设为OFF。由此,能够避免在CPU中发生致命错误并在中断处理中恢复信息不被更新到RAM 105的情况下在CPU复位处理中继续使用在发生致命错误之前所保存的恢复信息。在中断处理中恢复信息不被更新到RAM 105的情况下,通过将微计算机100整体复位等的其它方法,能够避免CPU 101的致命错误。作为其它的实施例,CPU复位处理能够包括以下步骤在CPU复位以后(步骤610以后),如果被保存在RAM 105中的恢复信息不正常,则使恢复信息恢复。在此,CPU 101能够通过恢复信息的值是否收敛于正常的范围、或者是否为合适的值等来判断恢复信息是否正常。作为使恢复信息恢复的处理的例子,CPU 101能够从保存在RAM 105中的恢复信息的历史记录中选择正常的恢复信息,将所选择的恢复信息复制到CPU寄存器235。作为又、一个其它的实施例,中断处理能够包括以下步骤在CPU复位以后(步骤610以后),如果无法使微计算机正常地进行动作,则进行系统复位。在此,能够通过由CPU101确认被保存在RAM 105中的特定的信息是否正确来判断是否能够使微计算机正常地进行动作。在此,通过判断仅在初始化处理中变更的特定的信息是否由于发生致命错误而通过初始化处理以外的处理被变更,来判断特定的信息是否正确。并且,能够通过由CPU 101确认作为历史记录被保存在RAM 105中的多个恢复信息中是否存在正常范围或作为合适的值的恢复信息,来判断是否能够使微计算机正常地进行动作。在没有正常范围或作为合适的值的恢复信息的情况下,判断为微计算机无法正常地进行动作。图7是关于CPU 101正常地进行动作时的第一实施例(参照图3)的时序图。该时序图表示时间按照时刻TpTfTpT6的顺序流逝的情形。状态701、715以及730表示正在执行应用程序的处理。状态705和720表示正在执行中断处理。状态710和725表示正在执行CPU复位处理。在时刻T1之前,正在执行应用程序的处理(状态701)。在时刻T1, CPU 101接收到中断请求信号。CPU 101以中断请求信号的接收为触发来中断应用程序的处理,开始中断处理(状态705)。在中断处理中,CPU 101将中断处理开始时刻的CPU寄存器235的信息作为恢复信息保存到RAM 105中。在时刻T2,中断处理结束,CPU 101接收CPU复位信号。CPU 101以CPU复位信号的接收为触发,开始CPU复位处理(状态710)。在CPU复位处理中,在CPU 101被复位之后,CPU 101将保存在RAM 105中的恢复信息复制到CPU寄存器235。由此,在时刻T3, CPU101使被中断的应用程序从T1时刻的处理起再启动。在时刻T4、T5以及T6,与时刻 \、τ2以及T3同样地执行应用程序的中断、中断处理以及CPU复位处理。图8是关于在CPU 101中发生了致命错误时的第一实施例(参照图3)的时序图。在时刻Tp T2以及T3执行应用程序的处理、中断处理以及CPU复位处理(状态801、805以及810)。在状态805的中断处理中,CPU 101将时刻T1的作为CPU寄存器235的信息的恢复信息保存到RAM 105中。
假设在正执行应用程序的处理的(状态815) T4在CPU 101中发生了致命错误。由此,CPU 101无法正常地执行处理,因此状态820表示没有执行应用程序的处理。并且,状态825表示没有执行中断处理。在时刻T6,CPU 101接收CPU复位信号。CPU 101以CPU复位信号的接收为触发来开始CPU复位处理(状态830)。在CPU复位处理中,在CPU 101被复位之后,CPU 101将保存在RAM 105中的恢复信息复制到CPU寄存器235。由此,在时刻T7,CPU 101使被中断的应用程序从T1时刻的处理起再启动(状态835)。图9是关于在CPU 101中发生了致命错误时的第二实施例(参照图4)的时序图。在时刻Tp T2执行应用程序的处理、中断处理(状态901和905)。在状态905的中断处理中,CPU 101将时刻T1的作为CPU寄存器235的信息的恢复信息保存到RAM 105中。在时刻T2执行禁止CPU复位信号的产生的处理(状态910)。由此,不执行CPU复 位处理。由于不执行CPU复位处理,因此在中断处理结束之后,在时刻T2再启动应用程序的处理(状态915)。假设在正执行应用程序的处理的(状态915) T4在CPU 101中发生了致命错误。由此,CPU 101无法正常地执行处理,因此不执行状态920的应用程序的处理以及状态925的中断处理,并且也不执行在时刻T2曾执行的禁止CPU复位信号的产生的处理。由于未执行禁止CPU复位信号的产生的处理,因此在时刻T6CPU 101接收到CPU复位信号。CPU 101以CPU复位信号的接收为触发来开始CPU复位处理(状态930)。在CPU复位处理中,在CPU 101被复位之后,CPU 101将保存在RAM 105中的恢复信息复制到CPU寄存器235中。由此,CPU 101在时刻T7时使被中断的应用程序从T1时刻的处理起再启动(状态940)。根据本发明,在CPU中发生了所谓失控等致命错误的情况下,不将微计算机整体进行复位,而是仅将CPU进行复位,由此,能够使微计算机从致命错误中恢复。由此,能够更高速且简单地实现针对在产业界广泛使用的嵌入用微计算机的CPU中发生的致命错误的对策。在机械电子化、机器人、包括柏青哥和柏青嫂的游戏设备、汽车的发动机控制、制动器的控制、电梯的控制等领域中,微计算机中的CPU的致命错误有可能引发事故、危险乃至金钱的损失。因而,在这种领域中,通过使用本发明的微计算机,能够大幅减少事故、损失。附图标记说明100 :微计算机;101 :中央处理装置(CPU) ;105:主存储装置(RAM) ;110 =ROM 115 :通信用电路;120 :通用计数计时器;125 :输入输出端口 ;130 :逻辑或电路(0R电路);135 :系统复位信号源;140 :时钟产生电路;145 :计时计数器电路;150 :附加计时器;155 看门狗电路;160 :非法指令检测电路及不正确外部访问检测电路;165 :系统复位用总线;170 =CPU总线;210 :时钟产生器;215 :分频器;220 :计数器;225 :附加计时器;230 :比较器;235 =CPU寄存器;240 =CPU复位信号用触发器电路;245 :中断请求信号用触发器电路250 :系统复位用触发器电路;255 :寄存器。
权利要求
1.一种微计算机,其特征在于,具备 CPU ; RAM,其通过CPU总线与上述CPU进行连接; 中断请求信号输出单元,其将用于请求开始执行中断处理的中断请求信号输出到上述CPU ;以及 CPU复位信号输出单元,其在上述中断请求信号输出单元输出上述中断请求信号之后,将用于请求开始CPU复位处理的CPU复位信号输出到上述CPU, 其中,上述CPU当接收到上述中断请求信号时,中断在该CPU上正在执行的应用程序的处理,并且将该CPU的CPU寄存器的信息作为恢复信息保存到上述RAM中,然后,当接收到上述CPU复位信号时,该CPU被复位,并且将保存在该RAM中的该恢复信息复制到该CPU寄 存器。
2.根据权利要求I所述的微计算机,其特征在于, 还具备计时计数器电路,该计时计数器电路周期性地产生上述CPU复位信号和上述中断请求信号。
3.根据权利要求2所述的微计算机,其特征在于, 上述计时计数器电路具备附加计时器, 上述CPU判断上述CPU寄存器的信息是否正常,仅在判断为上述CPU寄存器的信息正常的情况下,上述附加计时器进行动作,禁止在向上述CPU提供上述CPU复位信号的期间的上述CPU复位处理的执行。
4.根据权利要求Γ3中的任一项所述的微计算机,其特征在于, 还具备系统复位信号源和逻辑或电路,该系统复位信号源用于将微计算机整体复位,上述CPU复位信号输出单元和上述系统复位信号源连接在上述逻辑或电路的输入侧,上述CPU连接在上述逻辑或电路的输出侧。
5.一种微计算机的动作方法,其包括以下步骤 将用于请求开始执行中断处理的中断请求信号从计时计数器电路输出到CPU ; 上述CPU在接收到上述中断请求信号时,中断在该CPU上正在执行的应用程序的处理; 由上述CPU将该CPU的CPU寄存器的信息作为恢复信息保存到RAM中; 在输出上述中断请求信号之后,将用于请求开始CPU复位处理的CPU复位信号从上述计时计数器电路输出到上述CPU ; 上述CPU在接收到上述CPU复位信号时,将该CPU复位;以及 由上述CPU将保存在上述RAM中的上述恢复信息复制到上述CPU寄存器。
6.根据权利要求5所述的微计算机的动作方法,其特征在于, 由上述计时计数器电路周期性地产生上述CPU复位信号和上述中断请求信号。
7.根据权利要求6所述的微计算机的动作方法,其特征在于,还包括以下步骤 由上述CPU判断上述CPU寄存器的信息是否正常,仅在判断为上述CPU寄存器的信息正常的情况下,在向上述CPU提供上述CPU复位信号的期间,禁止执行将上述CPU复位的步骤。
全文摘要
本发明的目的在于,微计算机的CPU即使由于外部的噪声、电源电压的不稳定、其它原因而不能执行其程序从而发生所谓失控等致命错误,也能够在极短的时间内恢复为初始的状态而尽可能不进行系统整体的初始化。在执行普通的软件处理的过程中,在任意的定时输出中断信号和复位信号,在判断为微计算机的CPU变为失控状态时,读出作为恢复信息保存在RAM中的数据,来使CPU恢复为失控前的状态。由此,正在执行的软件在短时间内从致命错误中恢复,因此如同没有发生致命错误那样能够继续进行软件处理。
文档编号G06F1/24GK102656568SQ20108005735
公开日2012年9月5日 申请日期2010年10月15日 优先权日2009年10月15日
发明者辰野功 申请人:株式会社雷捷电子科技
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1