程序更新系统、配送装置以及程序更新方法与流程

文档序号:15884259发布日期:2018-11-09 18:32阅读:175来源:国知局
程序更新系统、配送装置以及程序更新方法与流程

本发明涉及一种程序更新系统、配送装置以及程序更新方法。本申请主张基于2016年12月6日提出申请的日本申请第2016-236942号的优先权,援引在所述日本申请中记载的全部记载事项。

背景技术

使用多个进行基于计算机程序(下面简称为程序)的控制的控制装置的控制系统在各种领域中被利用。在车辆控制的领域中,在车辆内,作为控制装置而配设有大量ecu(electroniccontrolunit,电子控制单元),各ecu构成为经由车载lan(localareanetwork,局域网)收发信息,协调并协作来进行多种多样的处理。

在追加或变更上述控制装置的功能的情况下,或在要解除程序的不佳状况的情况下等,有时需要更新控制装置的处理器所执行的程序。作为程序的更新方法,一般采用如下方法:特定的控制装置将从外部通过有线或无线通信而接收到的更新程序向作为对象的控制装置发送,由接收到该更新程序的控制装置来更新程序。

在这样的控制系统中更新程序的情况下,例如在采用在更新的对象装置中更新程序覆写更新前的旧程序的方法时,有可能由于更新的中断而基于旧程序的执行无法进行,更新的再次开始也变得无法进行。

对此,在专利文献1中公开了如下车载装置:在不作为重新编程(程序的更新)的对象的内存块中预先储存有简易通信程序,在重新编程时执行基于简易通信程序的简易通信,从而即使在重新编程中断而破坏了旧程序的情况下,也能够通过简易通信来再次开始重新编程。

现有技术文献

专利文献

专利文献1:日本特开2013-192092号公报



技术实现要素:

本发明的一个方式涉及程序更新系统,具备处理器的多个装置以能够通信的方式被连接,所述处理器执行基于存储器中存储有的计算机程序的处理,所述程序更新系统通过配送计算机程序的配送装置及通信装置相互收发通信信号及新的计算机程序,而使配送给所述通信装置的新的计算机程序存储于本装置的存储器而更新计算机程序,其中,所述配送装置及通信装置分别具备用于存储进展信息的存储部,所述进展信息表示所述通信信号及新的计算机程序的收发的进展,所述配送装置具备:第一更新部,根据所述收发的进展,来更新存储于本装置的存储部的进展信息;第一发送部,将由该第一更新部更新后的进展信息向所述通信装置发送;第一接收部,在由该第一发送部发送了进展信息的情况下,从所述通信装置接收存储于所述通信装置的存储部的进展信息;以及确定部,根据由该第一接收部接收到的进展信息,来确定在所述配送装置与所述通信装置之间接下来应该收发的通信信号或新的计算机程序,所述通信装置具备:第二接收部,接收从所述配送装置发送的进展信息;第二更新部,基于由该第二接收部接收到的进展信息,来更新存储于本装置的存储部的进展信息;以及第二发送部,将由该第二更新部更新后的进展信息向所述配送装置发送。

本发明的一个方式涉及程序更新系统,具备处理器的多个装置以能够通信的方式被连接,所述处理器执行基于存储器中存储有的计算机程序的处理,所述程序更新系统通过配送计算机程序的配送装置及保持应该配送的计算机程序的更新装置相互收发通信信号以及新的计算机程序,而将所述配送装置所取得的新的计算机程序向通信装置配送,使配送给该通信装置的新的计算机程序存储于本装置的存储器来更新计算机程序,其中,所述配送装置及更新装置分别具备用于存储进展信息的存储部,所述进展信息表示所述通信信号及新的计算机程序的收发的进展,所述配送装置具备:第一更新部,根据所述收发的进展,来更新存储于本装置的存储部的进展信息;第一发送部,将由该第一更新部更新后的进展信息向所述更新装置发送;第一接收部,在由该第一发送部发送了进展信息的情况下,从所述更新装置接收存储于所述更新装置的存储部的进展信息;以及确定部,根据由该第一接收部接收到的进展信息,来确定在所述配送装置与所述更新装置之间接下来应该收发的通信信号或新的计算机程序,所述更新装置具备:第二接收部,接收从所述配送装置发送的进展信息;第二更新部,基于由该第二接收部接收到的进展信息,来更新存储于本装置的存储部的进展信息;以及第二发送部,将由该第二更新部更新后的进展信息向所述配送装置发送。

本发明的一个方式涉及配送装置,以能够通信的方式与执行基于存储器中存储有的计算机程序的处理的外部装置连接,通过在所述配送装置与所述外部装置之间相互收发通信信号及新的计算机程序,而将所述新的计算机程序向所述外部装置配送而使计算机程序更新,其中,具备:存储部,用于存储进展信息,所述进展信息表示所述通信信号及新的计算机程序的收发的进展;更新部,根据所述收发的进展,来更新存储于所述存储部的进展信息;发送部,将由该更新部更新后的进展信息向所述外部装置发送;接收部,从所述外部装置接收基于由该发送部发送的进展信息而由所述外部装置更新后的进展信息;以及确定部,根据由该接收部接收到的进展信息,来确定在所述配送装置与所述外部装置之间接下来应该收发的通信信号或新的计算机程序。

本发明的一个方式涉及一种程序更新方法,在具备执行基于存储器中存储有的计算机程序的处理的处理器的多个装置以能够通信的方式被连接的通信系统中,通过配送计算机程序的配送装置及通信装置相互收发通信信号及新的计算机程序,而使配送给所述通信装置的新的计算机程序存储于本装置的存储器而更新计算机程序,其中,所述配送装置及通信装置分别具备用于存储进展信息的存储部,所述进展信息表示所述通信信号及新的计算机程序的收发的进展,所述配送装置根据所述收发的进展来更新存储于本装置的存储部的进展信息,将更新后的进展信息向所述通信装置发送,从所述通信装置接收存储于所述通信装置的存储部的进展信息,并根据接收到的进展信息来确定在所述配送装置与所述通信装置之间接下来应该收发的通信信号或新的计算机程序,所述通信装置接收从所述配送装置发送的进展信息,基于接收到的进展信息来更新存储于本装置的存储部的进展信息,并将更新后的进展信息向所述配送装置发送。

本发明的一个方式涉及一种程序更新方法,在具备执行基于存储器中存储有的计算机程序的处理的处理器的多个装置以能够通信的方式被连接的通信系统中,通过配送计算机程序的配送装置及保持应该配送的计算机程序的更新装置相互收发通信信号及新的计算机程序,而将所述配送装置所取得的新的计算机程序向通信装置配送,使配送给该通信装置的新的计算机程序存储于本装置的存储器而更新计算机程序,其中,所述配送装置及更新装置分别具备用于存储进展信息的存储部,所述进展信息表示所述通信信号及新的计算机程序的收发的进展,所述配送装置根据所述收发的进展来更新存储于本装置的存储部的进展信息,将更新后的进展信息向所述更新装置发送,从所述更新装置接收存储于所述更新装置的存储部的进展信息,并根据接收到的进展信息来确定在所述配送装置与所述更新装置之间接下来应该收发的通信信号或新的计算机程序,所述更新装置接收从所述配送装置发送的进展信息,基于接收到的进展信息来更新存储于本装置的存储部的进展信息,并将更新后的进展信息向所述配送装置发送。

此外,本申请不仅能够作为具备这样的特征性的处理部的程序更新系统、配送装置以及程序更新方法而实现,还能够作为用于使计算机执行进行上述特征性的处理的步骤的计算机程序而实现。另外,能够将程序更新系统或配送装置的一部分或全部作为半导体集成电路而实现,或作为包括程序更新系统或配送装置的其他系统而实现。

附图说明

图1是示出本发明的实施方式1的程序更新系统的结构例的框图。

图2是示出在ecu之间收发的通信信号及更新用控制程序的序列图。

图3是示出每当收发通信信号以及更新文件时收发包括步骤编号的下位信号的cpu的处理次序的流程图。

图4是示出收发进行步骤编号的要求、响应以及通知的下位信号的cpu的处理次序的流程图。

图5是示出本发明的实施方式3的程序更新系统的结构例的框图。

图6是示出在更新装置和ecu之间收发的通信信号及更新用控制程序的序列图。

具体实施方式

[本发明要公开的课题]

然而,在专利文献1所记载的技术中,未考虑在中断了程序的更新的情况下从更新处理的中断点起再次开始的情形,所以,在从由特定的控制装置识别的中断点起再次开始程序的更新时,有可能程序的更新不能正常完成。另外,在特定的控制装置与更新的对象装置之间执行的信号的收发中有可能产生进展的偏离。

本发明是鉴于上述情形而完成的,其目的在于,提供一种能够防止在一控制装置与其他控制装置之间执行的信号的收发中产生进展的偏离的程序更新系统、配送装置以及程序更新方法。

[本发明的效果]

根据上述,能够防止在一个控制装置与其他控制装置之间执行的信号的收发中产生进展的偏离。

[本发明的实施方式的说明]

首先,列举本发明的实施方式来说明。另外,也可以将以下记载的实施方式的至少一部分任意地组合。

(1)本发明的一个方式涉及一种程序更新系统,具备处理器的多个装置以能够通信的方式被连接,所述处理器执行基于存储器中存储有的计算机程序的处理,所述程序更新系统通过配送计算机程序的配送装置及通信装置相互收发通信信号及新的计算机程序,而使配送给所述通信装置的新的计算机程序存储于本装置的存储器而更新计算机程序,其中,所述配送装置及通信装置分别具备用于存储进展信息的存储部,所述进展信息表示所述通信信号及新的计算机程序的收发的进展,所述配送装置具备:第一更新部,根据所述收发的进展,来更新存储于本装置的存储部的进展信息;第一发送部,将由该第一更新部更新后的进展信息向所述通信装置发送;第一接收部,在由该第一发送部发送了进展信息的情况下,从所述通信装置接收存储于所述通信装置的存储部的进展信息;以及确定部,根据由该第一接收部接收到的进展信息,来确定在所述配送装置与所述通信装置之间接下来应该收发的通信信号或新的计算机程序,所述通信装置具备:第二接收部,接收从所述配送装置发送的进展信息;第二更新部,基于由该第二接收部接收到的进展信息,来更新存储于本装置的存储部的进展信息;以及第二发送部,将由该第二更新部更新后的进展信息向所述配送装置发送。

(8)本发明的一个方式涉及一种程序更新方法,在具备执行基于存储器中存储有的计算机程序的处理的处理器的多个装置以能够通信的方式被连接的通信系统中,通过配送计算机程序的配送装置及通信装置相互收发通信信号及新的计算机程序,而使配送给所述通信装置的新的计算机程序存储于本装置的存储器而更新计算机程序,其中,所述配送装置及通信装置分别具备用于存储进展信息的存储部,所述进展信息表示所述通信信号及新的计算机程序的收发的进展,所述配送装置根据所述收发的进展来更新存储于本装置的存储部的进展信息,将更新后的进展信息向所述通信装置发送,从所述通信装置接收存储于所述通信装置的存储部的进展信息,并根据接收到的进展信息来确定在所述配送装置与所述通信装置之间接下来应该收发的通信信号或新的计算机程序,所述通信装置接收从所述配送装置发送的进展信息,基于接收到的进展信息来更新存储于本装置的存储部的进展信息,并将更新后的进展信息向所述配送装置发送。

在本方式中,在配送装置及通信装置相互收发通信信号及新的计算机程序的期间,使从配送装置配送给通信装置的新的计算机程序存储于本装置的存储器,从而更新存储器内的计算机程序。配送装置根据收发的进展而将表示通信信号及新的计算机程序的收发的进展的进展信息存储于本装置的存储部而进行更新,并且,将更新后的进展信息向通信装置发送。通信装置基于从配送装置接收到的表示进展的进展信息,来更新存储于本装置的存储部的进展信息,并且将更新后的进展信息向配送装置发送。然后,配送装置根据从通信装置接收到的进展信息,来确定在配送装置与通信装置之间接下来应该收发的通信信号或新的计算机程序。由此,根据伴随着通信信号及新的计算机程序(下面将它们统一简称为信号)的收发的进展而由通信装置更新后的进展信息,来确定在配送装置与通信装置之间接下来应该收发的通信信号或新的计算机程序,所以防止配送装置和通信装置之间的信号的收发的进展偏离。

(2)本发明的一个方式涉及一种程序更新系统,具备处理器的多个装置以能够通信的方式被连接,所述处理器执行基于存储器中存储有的计算机程序的处理,所述程序更新系统通过配送计算机程序的配送装置及保持应该配送的计算机程序的更新装置相互收发通信信号以及新的计算机程序,而将所述配送装置所取得的新的计算机程序向通信装置配送,使配送给该通信装置的新的计算机程序存储于本装置的存储器来更新计算机程序,其中,所述配送装置及更新装置分别具备用于存储进展信息的存储部,所述进展信息表示所述通信信号及新的计算机程序的收发的进展,所述配送装置具备:第一更新部,根据所述收发的进展,来更新存储于本装置的存储部的进展信息;第一发送部,将由该第一更新部更新后的进展信息向所述更新装置发送;第一接收部,在由该第一发送部发送了进展信息的情况下,从所述更新装置接收存储于所述更新装置的存储部的进展信息;以及确定部,根据由该第一接收部接收到的进展信息,来确定在所述配送装置与所述更新装置之间接下来应该收发的通信信号或新的计算机程序,所述更新装置具备:第二接收部,接收从所述配送装置发送的进展信息;第二更新部,基于由该第二接收部接收到的进展信息,来更新存储于本装置的存储部的进展信息;以及第二发送部,将由该第二更新部更新后的进展信息向所述配送装置发送。

(9)本发明的一个方式涉及一种程序更新方法,在具备执行基于存储器中存储有的计算机程序的处理的处理器的多个装置以能够通信的方式被连接的通信系统中,通过配送计算机程序的配送装置及保持应该配送的计算机程序的更新装置相互收发通信信号及新的计算机程序,而将所述配送装置所取得的新的计算机程序向通信装置配送,使配送给该通信装置的新的计算机程序存储于本装置的存储器而更新计算机程序,其中,所述配送装置及更新装置分别具备用于存储进展信息的存储部,所述进展信息表示所述通信信号及新的计算机程序的收发的进展,所述配送装置根据所述收发的进展来更新存储于本装置的存储部的进展信息,将更新后的进展信息向所述更新装置发送,从所述更新装置接收存储于所述更新装置的存储部的进展信息,并根据接收到的进展信息来确定在所述配送装置与所述更新装置之间接下来应该收发的通信信号或新的计算机程序,所述更新装置接收从所述配送装置发送的进展信息,基于接收到的进展信息来更新存储于本装置的存储部的进展信息,并将更新后的进展信息向所述配送装置发送。

在本方式中,在配送装置及更新装置相互收发通信信号及新的计算机程序的期间,配送装置从更新装置取得新的计算机程序。配送装置将所取得的新的计算机程序向通信装置配送,通信装置使配送了的新的计算机程序存储于本装置的存储器,从而更新存储器内的计算机程序。配送装置根据收发的进展而将表示通信信号及新的计算机程序的收发的进展的进展信息存储于本装置的存储部而进行更新,并且将更新后的进展信息向更新装置发送。更新装置基于从配送装置接收到的表示进展的进展信息,更新存储于本装置的存储部的进展信息,并且将更新后的进展信息向配送装置发送。然后,配送装置接收在更信装置的存储部中存储的进展信息,确定在配送装置与更信装置之间接下来应该收发的通信信号或新的计算机程序。由此,根据伴随着信号的收发的进展而由更信装置更新后的进展信息,来确定在配送装置与更信装置之间接下来应该收发的通信信号或新的计算机程序,所以防止配送装置和更信装置之间的信号的收发的进展偏离。

(3)所述配送装置优选在中断了所述通信信号及新的计算机程序的收发的情况下,所述配送装置根据应该再次开始收发的通信信号或新的计算机程序,来更新通过所述第一更新部存储于本装置的存储部的进展信息。

在中断了在配送装置与通信装置或更新装置之间进行的通信信号及新的计算机程序的收发的情况下,配送装置根据在再次开始时应该收发的通信信号或计算机程序,来更新存储于本装置的存储部的进展信息,并将更新后的进展信息向通信装置或更新装置发送。之后,进展信息的交换如上所述地进行。由此,在再次开始后,以使配送装置的存储部中存储的进展信息与通信装置或更新装置的存储部中存储的进展信息相匹配的方式,确定在配送装置与通信装置或更新装置之间接下来应该收发的通信信号或新的计算机程序,所以防止在配送装置与通信装置或更新装置之间的信号的收发的进展偏离。

(4)优选的是,所述配送装置还具备:第三发送部,在中断了所述通信信号及新的计算机程序的收发的情况下,将要求发送存储于所述通信装置或更新装置的存储部的进展信息的信号向所述通信装置或更新装置发送;第三接收部,在由该第三发送部发送了信号的情况下,从所述通信装置或更新装置接收存储于所述通信装置或更新装置的存储部的进展信息;比较部,对由该第三接收部接收到的进展信息与存储于本装置的存储部的进展信息进行比较;第二确定部,基于该比较部的比较结果,来确定表示较慢的进展的进展信息;第三更新部,将由该第二确定部确定出的进展信息存储于本装置的存储部而进行更新;以及第四发送部,将由该第三更新部更新后的进展信息向所述通信装置或更新装置发送,所述通信装置或更新装置还具备:第四接收部,从所述配送装置接收要求发送所述进展信息的信号;第五发送部,在由该第四接收部接收到信号的情况下,将存储于本装置的存储部的进展信息向所述配送装置发送;第五接收部,在由该第五发送部发送了进展信息的情况下,从所述配送装置接收存储于所述配送装置的存储部的进展信息;以及第四更新部,将由该第五接收部接收到的进展信息存储于本装置的存储部而进行更新。

在本方式中,在中断了在配送装置与通信装置或更新装置之间的通信信号及新的计算机程序的收发的情况下,配送装置将要求发送通信装置或更新装置的存储部中存储的进展信息的信号向通信装置或更新装置发送,接收到该信号的通信装置或更新装置将自身的存储部中存储的进展信息向配送装置发送。接收到该进展信息的配送装置对接收到的进展信息与自身的存储部中存储的进展信息进行比较,确定表示较慢的进展的进展信息,将确定出的进展信息存储于自身的存储部而进行更新,并且将更新后的进展信息向通信装置或更新装置发送。接收到该进展信息的通信装置或更新装置将接收到的进展信息存储于自身的存储部而进行更新。由此,配合配送装置和通信装置或更新装置中的信号的收发的进展较慢的一方,确定接下来应该收发的通信信号或新的计算机程序,所以防止在配送装置与通信装置或更新装置之间的信号的收发的进展偏离。

(5)优选的是,所述通信装置或更新装置还具备判定部,该判定部判定由所述第二接收部接收到的进展信息所表示的进展与存储于本装置的存储部的进展信息所表示的进展相比,是否早了所述通信信号及新的计算机程序中的某一方的收发的2次以上,所述第二更新部在由所述判定部判定为没有早2次以上的情况下,将由所述第二接收部接收到的进展信息存储于本装置的存储部而进行更新,无论所述判定部的判定结果如何,所述第二发送部都将存储于本装置的存储部的进展信息向所述配送装置发送。

在本方式中,通信装置或更新装置在不判定为从配送装置接收到的进展信息所表示的进展与自身的存储部中存储的进展信息所表示的进展相比早了通信信号以及新的计算机程序中的某一方的收发(发送或接收)的2次以上的情况下,将接收到的进展信息存储于自身的存储部而进行更新,无论在更新的情况下还是在不更新的情况下,都将存储于自身的存储部的进展信息向配送装置发送。由此,通信装置或更新装置在根据所接收到的进展信息而判定为配送装置中的信号的收发的进展比预定的进展早的情况下,将存储于自身的存储部的进展信息不更新而向配送装置发送,所以能够使得在配送装置中不使信号的收发发生进展。另外,通信装置或更新装置在根据所接收到的进展信息而判定为配送装置中的信号的收发的进展不比预定的进展早的情况下,将所接收到的进展信息向配送装置发送,所以能够使存储于通信装置或更新装置的存储部的进展信息与配送装置中的信号的收发的进展相匹配。

(6)优选的是,所述新的计算机程序被分割成多个,所述配送装置与所述通信装置或更新装置之间依次相互收发分割后的计算机程序。

在本方式中,在配送装置与所述通信装置或更新装置之间依次收发被分割成多个的新的计算机程序。由此,关于分割后的一个个计算机程序,防止收发的进展偏离。

(7)本发明的一个方式涉及一种配送装置,以能够通信的方式与执行基于存储器中存储有的计算机程序的处理的外部装置连接,通过在所述配送装置与所述外部装置之间相互收发通信信号及新的计算机程序,而将所述新的计算机程序向所述外部装置配送而使计算机程序更新,其中,具备:存储部,用于存储进展信息,所述进展信息表示所述通信信号及新的计算机程序的收发的进展;更新部,根据所述收发的进展,来更新存储于所述存储部的进展信息;发送部,将由该更新部更新后的进展信息向所述外部装置发送;接收部,从所述外部装置接收基于由该发送部发送的进展信息而由所述外部装置更新后的进展信息;以及确定部,根据由该接收部接收到的进展信息,来确定在所述配送装置与所述外部装置之间接下来应该收发的通信信号或新的计算机程序。

在本方式中,配送装置当在与外部装置之间相互收发通信信号以及新的计算机程序的期间,将新的计算机程序向外部装置配送并使存储器内的计算机程序更新。配送装置根据收发的进展而将表示通信信号及新的计算机程序的收发的进展的进展信息存储于存储部而进行更新,并且将更新后的进展信息向外部装置发送。配送装置从外部装置接收基于发送到外部装置的进展信息而由外部装置更新后的进展信息,根据接收到的进展信息,来确定在配送装置与外部装置之间接下来应该收发的通信信号或新的计算机程序。由此,根据伴随着信号的收发的进展而由外部装置更新后的进展信息,来确定在配送装置与外部装置之间接下来应该收发的通信信号或新的计算机程序,所以防止配送装置和外部装置之间的信号的收发的进展偏离。

[本发明的实施方式的详细内容]

下面,参照附图,对本发明的实施方式的程序更新系统的具体例进行说明。此外,本发明不限定于这些示例,而是意图包含通过权利要求书来表示且与权利要求书等同的含义以及范围内的全部变更。另外,在各实施方式中记载的技术特征能够相互组合。

(实施方式1)

图1是示出本发明的实施方式1的程序更新系统的结构例的框图。程序更新系统构成为包括控制未图示的车载设备的一个或多个ecu2(相当于通信装置以及外部装置)以及经由通信线4而以能够通信的方式与该ecu2连接的ecu1a(相当于配送装置)。ecu1a例如也可以是接收从连接于一通信线的ecu2发送的信号并向连接于其他通信线的ecu2发送的中继装置。

ecu1a包括具有cpu(centralprocessingunit,中央处理单元)11(相当于处理器)的微型计算机而成。cpu11与存储控制程序120(相当于计算机程序)等信息的rom(readonlymemory,只读存储器)12(相当于存储器)、存储临时地产生的信息的ram(randomaccessmemory,随机存取存储器)13(相当于存储部)以及对经过时间等进行计时的计时器15相互进行总线连接。rom12包括闪存存储器、eprom(erasableprogrammablereadonlymemory,可擦除可编程只读存储器)、eeprom(electricallyeprom:注册商标)等非易失性存储器。ram13包含dram(dynamicrandomaccessmemory,动态随机存取存储器)、sram(staticrandomaccessmemory,静态随机存取存储器)等能够改写的存储器。

进一步地,在cpu11总线连接有进行基于can(controllerareanetwork,控域网)、lin(localinterconnectnetwork,局域互连网络)、most(mediaorientedsystemstransport,面向媒体的运输系统)、tcp/ip(transmissioncontrolprotocol/internetprotocol,传输控制协议/互联网协议)、avtp(audiovideotransportprotocol,音频视频传输协议)、flexray(注册商标)等通信标准的通信的通信部14以及内部存储装置16。内部存储装置16例如是硬盘装置或闪存存储器,从未图示的外部装置转送应该向ecu2发送的更新用控制程序160(相当于新的计算机程序)并进行存储。

ecu2包括具有cpu21(相当于处理器)的微型计算机而成。cpu21与存储控制程序220(相当于计算机程序)等信息的rom22(相当于存储器)、存储临时地产生的信息的ram23(相当于存储部)以及进行基于与通信部14相同的通信标准的通信的通信部24进行总线连接。rom22例如是闪存存储器等能够改写的存储器。

在上述结构中,ecu1a以及ecu2分别使用通信部14以及24来相互收发通信信号及更新用控制程序160(下面将它们统一简称为信号),从而ecu1a将更新用控制程序160向ecu2配送。这里所说的收发是指将1个通信信号或更新用控制程序160从ecu1a以及ecu2中的一方发送、并由另一方接收的处理。ecu2为了将从ecu1a配送的更新用控制程序160覆写存储于rom22的控制程序220而使该更新用控制程序160存储于rom22,从而更新控制程序220。

图2是示出在ecu1a和ecu2之间收发的通信信号及更新用控制程序160的序列图。下面,用步骤编号(相当于表示收发的进展的进展信息)表示收发的进展。在图2中,将控制程序220记为“软件”,将其版本记为“ver”。另外,将与控制程序220的更新相关的处理称为重新编程或重编程。在本实施方式1中,更新用控制程序160被分割成更新文件161、162··,但不限定于此。更新文件161、162··的一个个是在ecu1a和ecu2之间收发的信号。图2所示的序列是一个例子,不限定于此。

在执行重新编程时,ecu1a将当前的软件ver信息要求(通信信号之一)向ecu2发送(步骤1),接收到它的ecu2将表示控制程序220的当前版本的信息包含在当前的软件ver响应(通信信号之一)中而回送给ecu1a(步骤2)。接下来,ecu1a确认控制程序220的版本是重新编程的对象版本,并将重编程准备完成通知(通信信号之一)向ecu2发送(步骤3),接收到它的ecu2在自身是能够重新编程的状态的情况下,将可开始重编程响应(通信信号之一)向ecu1a(步骤4)回送。

接下来,ecu1a将更新文件161、162··依次向ecu2发送(步骤5、6··)。一方的ecu2依次接收更新文件161、162··,并临时存储到ram23内的缓冲区域(未图示)。ecu1a在将分割成多个的更新用控制程序160全部发送之后,将更新文件发送完成通知(通信信号之一)向ecu2发送(步骤a),接收到它的ecu2在正常接收到更新用控制程序160的情况下,将更新文件接收完成响应(通信信号之一)向ecu1a回送(步骤a+1)。

其后,ecu1a将软件更新要求(通信信号之一)向ecu2发送(步骤a+2),接收到它的ecu2在将存储于上述缓冲区域的更新用控制程序160覆写控制程序220并执行软件更新之后,将软件更新完成响应(通信信号之一)向ecu1a回送(步骤a+3)。

在ecu1a以及ecu2各自的控制程序120以及220中,包括按以上的序列收发各通信信号以及更新文件161、162··的任务(处理例程)。在本实施方式1中,将执行图2所示的收发的序列的任务称为“上位任务”,省略其流程图的记载。在基于这些上位任务的处理次序中,当在ecu1a和ecu2之间通信临时地中断的情况下等,在ecu1a侧与ecu2侧收发的进展有时不匹配。因此,分别在ecu1a侧以及ecu2侧,在上述上位任务的下位设置下位任务,在下位任务中使收发的进展匹配。

具体来说,在本实施方式1中,分别由ecu1a以及ecu2将步骤编号预先存储于ram13以及23中。然后,每当在上位任务之间收发通信信号以及更新文件161、162··时,就在下位任务之间收发包括步骤编号的各种信号(下面称为下位信号),从而使在ram13以及23中分别存储的步骤编号相匹配。

例如,在中断了更新文件163的发送的情况下(参照图中的“×”记号),上位任务预先将与在再次开始时应该收发的更新文件163对应的步骤编号(在图2的例子中是步骤7)交接给下位任务,再次开始更新文件163的发送。以后,如果预先将通过下位任务而在ram13和23之间匹配了的步骤编号从下位任务通知给上位任务,则可保持更新文件161、162、163··的收发的连续性。关于在图2中用内部白色箭头表示的处理,在后述的实施方式2中进行说明。下面,针对在位于上位任务的下位的下位任务中收发下位信号的ecu1a以及ecu2的动作,使用表示该动作的流程图来进行说明。

图3是示出每当收发通信信号以及更新文件161、162··时收发包括步骤编号的下位信号的cpu11以及cpu21的处理次序的流程图。图3所示的ecu1a侧的下位任务的处理在重新编程从步骤1起开始时起动。另外,ecu2侧的下位任务的处理在重新编程能够从步骤1起开始时适时起动。在图3所示的ecu1a侧以及ecu2侧各自的处理起动的情况下,将存储于ram13以及23的步骤编号初始化为例如表示是步骤1的前一个步骤的“步骤0”。cpu11设为每当上位任务收发通信信号以及更新文件161、162··中的某一方时,从上位任务指示步骤编号。关于重新编程是否完成,由上位任务进行管理。

图3所示的处理的概要如下所述。ecu1a的cpu11为了跟踪由上位任务实施的通信信号以及更新文件161、162··的收发的进展,将从上位任务通知的收发的步骤编号存储到ram13中而进行更新,将包括更新后的步骤编号的下位信号向ecu2发送。接收到该下位信号的ecu2的cpu21判定所接收到的下位信号中所包括的步骤编号(下面将所接收到的各下位信号中所包括的步骤编号称为所接收到的步骤编号)是否比存储于ram23中的步骤编号大2以上。该判定是判定ecu1a侧的基于上位任务的信号的收发是否比ecu2侧更早地进展。

当在上述判定中判定为大2以上的情况下,cpu21不将所接收到的步骤编号存储到ram23中,所以在相比预定的进展而紧邻之前执行的收发的步骤编号保持于ram23。另一方面,当在上述判定中判定为不大2以上的情况下,cpu21将所接收到的步骤编号存储到ram23中而进行更新,所以,将最后执行了的收发的步骤编号存储到ram23中。因此,存储于ram23而进行更新的步骤编号不会通过1次更新而增大2以上,在上位任务之间的收发如预定那样进展的情况下,通过每1次更新而增大1。在上位任务再次执行过去的收发的情况下,存储于ram23而进行更新的步骤编号有时不变化,也有时减少。

cpu21进一步地将包括存储于ram23中的步骤编号的下位信号向ecu1a回送。此处回送的下位信号中包括的步骤编号是确认了ecu1a和ecu2之间的匹配性的步骤编号。接收到被回送了的下位信号的ecu1a的cpu11确定对所接收到的步骤编号加1而得到的步骤编号,并通知给上位任务。上位任务根据所通知的步骤编号,能够决定在与ecu2之间接下来应该收发的通信信号或更新文件。

在图3的各处理实际起动的情况下,在ecu1a侧,cpu11判定是否有来自上位(任务)的步骤编号的指示(s11),在没有指示的情况下(s11:“否”),待机直至有指示为止。在有步骤编号的指示的情况下(s11:“是”),cpu11将所通知的步骤编号存储到ram13中而进行更新(s12:相当于第一更新部),并且将更新后的步骤编号包含于信息通知信号并向ecu2发送(s13:相当于第一发送部以及发送部)。

在一方的ecu2中,cpu21判定是否接收到信息通知信号(s21:相当于第二接收部),在未接收到的情况下(s21:“否”),待机直至接收到为止。在接收到信息通知信号的情况下(s21:“是”),cpu21将所接收到的步骤编号通知给上位(任务)(s22)。上位任务优选根据所通知的步骤编号,变更接下来应该发送的信号,或变更接下来应该接收的信号的等待。

接下来,cpu21判定所接收到的步骤编号是否为存储于ram23的步骤编号+2以上(s23:相当于判定部),在不为所存储的步骤编号+2以上的情况下(s23:“否”),将所接收到的步骤编号存储到ram23中而进行更新(s24:相当于第二更新部)。在结束步骤s24的处理的情况下,或在所接收到的步骤编号为所存储的步骤编号+2以上的情况下(s23:“是”),cpu21将存储于ram23的步骤编号包含于信息响应信号并向ecu1a发送(s25:相当于第二发送部)。

此外,由ecu2接收到的信息通知信号中所包括的步骤编号所表示的进展与存储于ram23的步骤编号所表示的进展相比早了信号(通信信号及更新用控制程序160)的收发的1次的情况相当于最后的信号的收发的进展如预定那样的情况,没有早1次以上的情况相当于再次执行了过去的信号的收发的情况。

其后,cpu21判定重新编程是否完成(s26),在完成的情况下(s26:“是”),结束图3的处理。与此相对,在重新编程未完成的情况下(s26:“否”),cpu21使处理转移到步骤s21,返回到信息通知信号的接收等待。

在另一方的ecu1a中,cpu11在结束步骤s13的处理时,在开始由计时器15实施的规定时间的计时(s14)后,判定是否接收到信息响应信号(s15:相当于第一接收部以及接收部)。这里的规定时间优选比在上位任务中监视信号的响应的时间短。在未接收到信息响应信号的情况下(s15:“否”),cpu11判定规定时间的计时是否结束(s16),在未结束的情况下(s16:“否”),使处理转移到步骤s15。

在规定时间的计时结束的情况下(s16:“是”),cpu11将存储于ram13的步骤编号向上位(任务)通知(s17),使处理转移到步骤s11,返回到来自上位(任务)的指示等待。由此,上位任务能够判定为需要再次发送最后收发了的信号。在步骤s17中,也可以不通知步骤编号而通知表示超时的意思,在上位任务中决定其后的信号的收发的变更。

当在步骤s15中接收到信息响应信号的情况下(s15:“是”),cpu11确定比所接收到的步骤编号大1个号的步骤编号,并通知给上位(任务)(s18:相当于确定部)。由此,决定在上位任务中接下来应该收发的通信信号或更新文件。此处通知给上位任务的步骤编号是和与上位任务预定接下来收发的信号相关的步骤编号一致、或是比它小的编号。ecu1a侧的上位任务例如对与接下来预定发送的更新文件相关的步骤编号和从下位任务通知的步骤编号进行核对。在核对结果一致的情况下,上位任务发送预定的更新文件。在核对结果不一致的情况下,上位任务使与更新文件相关的步骤编号返回到所通知的步骤编号。由此,上位任务能够以仅再次发送已发送的多个更新文件的一部分的形式,继续进行一系列的更新文件161、162··的发送。

其后,cpu11判定重新编程是否完成(s19),在完成的情况下(s19:“是”),结束图3的处理。与此相对,在重新编程未完成的情况下(s19:“否”),cpu11使处理转移到步骤s11,返回到来自上位(任务)的指示等待。

参照图2,分成以下的案例来说明通过基于以上的流程图的处理而ecu1a侧以及ecu2侧各自的ram13以及23中存储的步骤编号相匹配的情形。

(a)从ecu1a发送的通信信号(例如,当前的软件ver信息要求)未由ecu2接收到、并且与该通信信号相应地从ecu1a发送的下位信号(信息通知信号)由ecu2接收到的案例。

(b)从ecu1a发送的通信信号(例如,当前的软件ver信息要求)由ecu2接收到、并且与该通信信号相应地从ecu1a发送的下位信号(信息通知信号)未由ecu2接收到的案例。

(c)从ecu2发送的通信信号(例如,当前的软件ver响应)未由ecu1a接收到的案例。

(d)从ecu1a发送的更新文件161、162··(例如,更新文件161)未由ecu2接收到、并且与该更新文件161相应地从ecu1a发送的下位信号(信息通知信号)由ecu2接收到的案例。

(e)与从ecu1a发送的更新文件161、162··(例如,更新文件161)相应地从ecu1a发送的下位信号(信息通知信号)未由ecu2接收到的案例。

(f)由于某些原因,ecu1a侧的上位任务中断了图2所示的序列的案例。

(a)的案例:在根据当前的软件ver信息要求,而从ecu1a发送了信息通知信号的情况下,分别存储于ram13以及23的步骤编号是步骤1。其后,将对由ecu1a接收到的信息响应信号中包括的步骤编号(在这里是步骤1)加1而得到的编号的步骤2通知给上位任务,但由于上位任务无法接收到当前的软件ver响应,所以忽略该通知而再次发送当前的软件ver信息要求。与该再次发送相应地从ecu1a发送的信息通知信号中包括的步骤编号是步骤1,所以不产生步骤编号的不匹配。

(b)的案例:在根据该当前的软件信息要求而从ecu1a发送的信息通知信号未由ecu2接收到的状态下,将当前的软件ver响应从ecu2发送并由ecu1a接收到,从而在从ecu1a发送了接下来的信息通知信号的情况下,分别存储于ram13以及23的步骤编号是步骤2以及步骤1。接下来,在将对由ecu1a接收到的信息响应信号中包括的步骤编号(在这里是步骤1)加1而得到的编号的步骤2通知给上位任务的情况下,上位任务为了使步骤编号不前进到步骤3而返回到步骤2,再次发送当前的软件ver信息要求。与该再次发送相应地从ecu1a发送的信息通知信号中包括的步骤编号是步骤1,所以,存储于ram13的步骤编号成为步骤1,解除步骤编号的不匹配。

(c)的案例:在根据当前的软件ver信息要求而从ecu1a发送了信息通知信号的情况下,分别存储于ram13以及23的步骤编号是步骤1。ecu1a的上位任务无法接收到当前的软件ver响应,所以再次发送当前的软件ver信息要求。与该再次发送相应地从ecu1a发送的信息通知信号中包括的步骤编号仍然是步骤1,所以不产生步骤编号的不匹配。

(d)的案例:在与最先的更新文件161相应地从ecu1a发送了信息通知信号的情况下,分别存储于ram13以及23的步骤编号是步骤5。其后,能够构成为在从ecu1a发送的更新文件162由ecu2接收到的情况下,ecu2的上位任务检测到更新文件的不连续而对ecu1a要求再次发送。其后,与再次发送的更新文件161相应地从ecu1a发送的信息通知信号中包括的步骤编号仍然是步骤5,所以不产生步骤编号的不匹配。

(e)的案例:与前一个可开始重编程响应相应地从ecu1a发送了信息通知信号,其结果,分别存储于ram13以及23的步骤编号是步骤4。其后,当在与更新文件161相应地从ecu1a发送的信息通知信号未由ecu2接收到的状态下与更新文件162相应地从ecu1a发送了信息通知信号的情况下,分别存储于ram13以及23的步骤编号成为步骤6以及步骤4。接下来,将对由ecu1a接收到的信息响应信号中包括的步骤编号(在这里是步骤4)加1而得到的编号的步骤5通知给上位任务,所以上位任务再次发送更新文件161。与该再次发送相应地从ecu1a发送的信息通知信号中包括的步骤编号是步骤5,所以分别存储于ram13以及23的步骤编号均成为步骤5,不匹配解除。此外,在该案例中,即使在最初的更新文件161未由ecu2接收到的情况下,也不需要上位任务间的再次发送次序。

(f)的案例:ecu1a侧的上位任务预先设成使图3所示的ecu1a侧的处理从步骤s11起再次开始、并等待指示步骤编号的状态,针对该处理,指示再次开始时的步骤编号。与此相应,图3所示的ecu1a侧的处理将在步骤s11中指示的步骤编号存储到ram13中,从而将包括所存储的步骤编号的信息通知信号发送到ecu2,再次开始图3所示的整个处理。其后,以使存储于ram13以及23的步骤编号相匹配的方式使处理推进,这通过上述案例(a)至(e)的说明而明确。

如上所述,根据本实施方式1,在ecu1a及ecu2相互收发通信信号及更新用控制程序160的期间,使从ecu1a配送给ecu2的更新用控制程序160存储于本装置的rom22中,从而更新rom22内的控制程序220。ecu1a根据收发的进展而将表示通信信号及更新用控制程序160的收发的进展的步骤编号存储于ram13而进行更新,并且将更新后的步骤编号包含于信息通知信号而向ecu2发送。ecu2基于从ecu1a接收到的信息通知信号中所包括的步骤编号,更新存储于ram23中的步骤编号,并且将更新后的步骤编号包含于信息响应信号并向ecu1a发送。然后,ecu1a根据从ecu2接收到的信息响应信号中所包括的步骤编号,来确定在与ecu2之间接下来应该收发的通信信号或更新用控制程序160。由此,根据信号的收发的进展和由ecu2更新后的步骤编号,来确定在ecu1a与ecu2之间接下来应该收发的通信信号或更新用控制程序160,所以能够防止ecu1a和ecu2之间的信号的收发的进展偏离。

另外,根据实施方式1,ecu1a当在与ecu2之间相互收发通信信号及更新用控制程序160的期间,将更新用控制程序160向ecu2配送来使rom22内的控制程序220更新。ecu1a根据收发的进展而将表示通信信号及更新用控制程序160的收发的进展的步骤编号存储于ram13而进行更新,并且,将更新后的步骤编号包含于信息通知信号并向ecu2发送。ecu1a从ecu2接收包括基于包含于信息通知信号地发送到ecu2的步骤编号而由ecu2更新后的步骤编号的信息响应信号,根据所接收到的信息响应信号中所包括的步骤编号,来确定在与ecu2之间接下来应该收发的通信信号或更新用控制程序160。由此,根据信号的收发的进展和由ecu2更新后的步骤编号,来确定在与ecu2之间接下来应该收发的通信信号或更新用控制程序160,所以能够防止ecu1a和ecu2之间的信号的收发的进展偏离。

进一步地,根据实施方式1,ecu2在不判定为从ecu1a接收到的信息通知信号中所包括的步骤编号所表示的进展与ram23中存储的步骤编号所表示的进展相比早了通信信号及更新用控制程序160中的某一方的收发(发送或接收)的2次以上的情况下,将所接收到的步骤编号存储于ram23而进行更新,无论在更新的情况下还是在不更新的情况下,都将存储于ram23的步骤编号包含于信息响应信号并向ecu1a发送。由此,ecu2在通过所接收到的步骤编号而判定为ecu1a中的信号的收发的进展比预定的进展早的情况下,并不更新存储于ram23中的步骤编号而是将其向ecu1a发送,所以能够使得在ecu1a中使信号的收发不发生进展。另外,ecu2在通过所接收到的步骤编号而判定为ecu1a中的信号的收发的进展不比预定的进展早的情况下,将所接收到的步骤编号向ecu1a发送,所以能够使存储于ecu2的ram23中的步骤编号与ecu1a中的信号的收发的进展相匹配。

进一步地,根据实施方式1,在中断了在ecu1a与ecu2之间进行的通信信号及更新用控制程序160的收发的情况下,ecu1a根据在再次开始时应该收发的通信信号或更新用控制程序160,来更新存储于ram13中的步骤编号,并将更新后的步骤编号向ecu2发送。以后,步骤编号的交换如上所述地进行。因此,在再次开始后,以使ecu1a的ram13中存储的步骤编号与ecu2的ram23中存储的步骤编号相匹配的方式,确定在ecu1a与ecu2之间接下来应该收发的通信信号或更新用控制程序160,所以能够防止ecu1a和ecu2之间的信号的收发的进展偏离。

(实施方式2)

实施方式1是基于ecu2中的判定而由ecu1a使分别在ecu1a以及ecu2中存储的步骤编号匹配的方式,与此相对,实施方式2是由ecu1a作为主体地使步骤编号匹配的方式。实施方式2中的程序更新系统的结构与实施方式1的情况相同,所以,对与实施方式1对应的部位附加相同的符号,并省略其说明。

在实施方式1的例子中,包括在规定时间内无法接收到信息响应信号的情况(参照图3的步骤s17)在内地,在再次开始了暂时中断的序列的情况下(参照(f)的案例),上位任务只要未能准确地掌握在再次开始时应该收发的信号的步骤编号,有时就无法防止ecu1a和ecu2之间的信号的收发的进展偏离。

因此,在本实施方式2中,如实施方式1的图2中的内部白色箭头所示,ecu1a对ecu2主动地询问步骤编号,对所取得的步骤编号与存储于ram13的步骤编号进行核对,将取得匹配的步骤编号向ecu2通知。以下,针对在位于执行图2所示的收发的序列的上位任务的下位的下位任务中收发下位信号的ecu1a以及ecu2的动作,使用表示该动作的流程图来进行说明。

图4是示出收发进行步骤编号的要求、响应以及通知的下位信号的cpu11以及cpu21的处理次序的流程图。图4所示的ecu1a侧以及ecu2侧的下位任务的处理在暂时中断的重新编程再次开始时起动。在ecu2侧,例如也可以在信息通知信号的接收(参照图3的步骤s21)在一定时间内未完成时起动。

图4所示的处理的概要如下所述。ecu1a的cpu11对ecu2发送要求步骤编号的响应的下位信号。接收到该下位信号的ecu2将包括存储于ram23中的步骤编号的下位信号向ecu1a发送。接收到该下位信号的ecu1a对所接收到的步骤编号与存储于ram13的步骤编号进行比较,确定号较小的步骤编号,将所确定的步骤编号存储于ram13而进行更新,并且,将包括更新后的步骤编号的下位信号向ecu2发送。接收到该下位信号的ecu2将所接收到的步骤编号存储于ram23而进行更新。由此,存储于ram13以及23的步骤编号相匹配。

在图4的处理实际起动的情况下,在ecu1a侧,cpu11发送信息要求信号(s31:相当于第三发送部)。

在一方的ecu2中,cpu21判定是否接收到信息要求信号(s41:相当于第四接收部),在未接收到的情况下(s41:“否”),待机直至接收到为止。在接收到信息要求信号的情况下(s41:“是”),cpu21读出存储于ram23的步骤编号(s42),将所读出的步骤编号包含于信息响应信号并向ecu1a发送(s43:相当于第五发送部)。

在另一方的ecu1a中,cpu11判定是否接收到信息响应信号(s32:相当于第三接收部),在未接收到的情况下(s32:“否”),待机直至接收到为止。在接收到信息响应信号的情况下(s32:“是”),cpu11对所接收到的步骤编号与ram13中存储的步骤编号进行比较(s33:相当于比较部),基于比较结果,确定编号较小的步骤编号(s34:相当于第二确定部)。

接下来,cpu11将确定出的步骤编号存储于ram13而进行更新(s35:相当于第三更新部),并且将更新后的步骤编号包含于信息变更信号并向ecu2发送(s36:相当于第四发送部)。cpu11在将表示应该变更为更新后的步骤编号的意思通知给上位(s37)后,使处理向步骤s11(参照图3)转移。以后,cpu11执行图3所示的ecu1a侧的处理。从下位任务通知了步骤编号的变更的上位任务例如将与更新文件相关的步骤编号变更为所通知的步骤编号。由此,上位任务能够从一系列的更新文件161、162··的发送的中途再次开始处理。

在一方的ecu2中,cpu21判定是否接收到信息变更信号(s44:相当于第五接收部),在未接收到的情况下(s44:“否”),待机直至接收到为止。在接收到信息变更信号的情况下(s44:“是”),cpu21在将所接收到的步骤编号存储于ram23而进行更新(s45:相当于第四更新部)、并且将表示应该变更为更新后的步骤编号的意思通知给上位(s46)后,使处理向步骤s21(参照图3)转移。以后,cpu21执行图3所示的ecu2侧的处理。

如上所述,根据本实施方式2,在中断了ecu1a与ecu2之间的计算机程序的收发的情况下,ecu1a将要求发送ecu2的ram23中存储的步骤编号的信息要求信号向ecu2发送,接收到该信息要求信号的ecu2将ram23中存储的步骤编号包含于信息响应信号而向ecu1a发送。接收到该信息响应信号的ecu1a对信息响应信号中包括的步骤编号与ram23中存储的步骤编号进行比较,确定编号较小的步骤编号,将确定出的步骤编号存储于ram13而进行更新,并且,将更新后的步骤编号包含于信息变更信号并向ecu2发送。接收到该信息变更信号的ecu2将在信息变更信号中所包括的步骤编号存储于ram23而进行更新。由此,配合ecu1a以及ecu2中的信号的收发的进展较慢的一方,确定接下来应该收发的通信信号或更新用控制程序160,所以能够防止ecu1a和ecu2之间的信号的收发的进展偏离。

(实施方式3)

实施方式1是ecu1a将存储于内部存储装置16的更新用控制程序160向ecu2发送、并且接收到它的ecu2更新存储于rom22的控制程序220的方式。与此相对,实施方式3是更新装置3将存储(保持)于内部存储装置的更新用控制程序向ecu1b发送、ecu1b将所接收到的更新用控制程序进一步地向ecu2发送、并且接收到它的ecu2更新存储于rom22的控制程序220的方式。

图5是示出本发明的实施方式3的程序更新系统的结构例的框图。程序更新系统包括一个或多个ecu2(相当于通信装置)、ecu1b(相当于配送装置)以及更新装置3,它们经由通信线4以能够通信的方式连接。更新装置3例如也可以经由ecu1b的未图示的obd(on-boarddiagnostics,车上诊断系统)连接器,用连接电缆进行连接。

ecu1b与实施方式1的图1所示的ecu1a相比,缺少内部存储装置16,其他结构与ecu1a相同。

更新装置3包括具有cpu31(相当于处理器)的微型计算机而成。cpu31与存储控制程序320(相当于计算机程序)等信息的rom32(相当于存储器)、存储临时地产生的信息的ram33(相当于存储部)、进行基于与通信部14、24相同的通信标准的通信的通信部34、对经过时间等进行计时的计时器35以及内部存储装置36进行总线连接。

内部存储装置36例如是硬盘装置或闪存存储器,预先存储有应该向ecu1b发送的更新用控制程序360(相当于新的计算机程序)。此外,对与实施方式1对应的部位附加相同的符号,并省略其说明。

在上述结构中,ecu1b以及更新装置3分别使用通信部14以及34来相互收发通信信号及更新用控制程序360(下面将它们统一简称为信号),从而ecu1b从更新装置3取得更新用控制程序360。ecu1b将所取得的更新用控制程序360按实施方式1所示的次序向ecu2配送,ecu2为了将配送了的更新用控制程序360覆写存储于rom22的控制程序220而使该更新用控制程序360存储于rom22,从而更新控制程序220。

图6是示出在更新装置3、ecu1b和ecu2之间收发的通信信号及更新用控制程序360的序列图。在本实施方式3中,将更新用控制程序360分割成更新文件361、362··,但不限定于此。更新文件361、362··的一个个是在更新装置3和ecu1b之间以及ecu1b和ecu2之间收发的信号。图6所示的序列是一个例子,不限定于此。下面,主要说明更新装置3和ecu1b之间的通信序列。例如,更新用控制程序360的收发中断以及再次开始的情况下的序列包括进行步骤编号的询问、核对、通知的情况,与实施方式1的图2所示的序列相同,所以,省略向图6的记载。关于ecu1b和ecu2之间的通信序列,由于在实施方式1中已经说明,所以在这里省略说明。

在执行重新编程时,ecu1b将软件新ver有无确认要求(通信信号之一)向更新装置3发送(步骤1),接收到它的ecu2在更新用控制程序360存储于内部存储装置36中的情况下,将软件新ver有无响应(有)(通信信号之一)向ecu1b回送(步骤2)。接下来,ecu1b确认ecu2的控制程序220的版本是重新编程的对象版本,将更新文件dl准备要求(通信信号之一)向更新装置3发送(步骤3),接收到它的更新装置3将更新文件发送准备完成响应(通信信号之一)向ecu1b回送(步骤4)。

接下来,ecu1b将更新文件发送要求(通信信号之一)向更新装置3发送(步骤5),接收到它的更新装置3将更新文件361、362··依次向ecu1b发送(步骤6、7··)。更新装置3在将分割成多个的更新用控制程序360全部发送之后,将更新文件发送结束通知(通信信号之一)向ecu1b发送(步骤a)。接收到它的ecu1b在正常接收到更新用控制程序360的情况下,将更新文件接收完成响应(通信信号之一)向更新装置3回送(步骤a+1)。其后,在ecu1b和ecu2之间的处理次序结束的情况下,ecu1b将重编程完成响应(通信信号之一)向更新装置3发送(步骤a+2),结束重新编程。

在ecu1b及更新装置3各自的控制程序120及320中,包括按以上的序列收发各通信信号以及更新文件361、362··的上位任务。在这里,省略执行图6所示的收发的序列的上位任务的流程图的记载。在这些由上位任务实施的处理次序中,当在ecu1b和更新装置3之间通信临时地中断的情况等下,在ecu1b侧与更新装置3侧收发的进展有时不匹配。因此,分别在ecu1b侧以及更新装置3侧,在上述上位任务的下位设置下位任务,在下位任务中使收发的进展匹配。

具体来说,在本实施方式3中,分别由ecu1b以及更新装置3将步骤编号预先存储于ram13以及33中。然后,每当在上位任务之间收发通信信号以及更新文件361、362··时,就在下位任务之间收发包括步骤编号的下位信号,从而使分别存储于ram13以及33的步骤编号匹配。

此外,关于示出由ecu1b以及更新装置3收发下位信号的下位任务的动作的流程图,由于与在实施方式1的图3中用ecu1b以及更新装置3分别置换ecu1a以及ecu2而得到的流程图相同,所以省略流程图的图示及其说明。

参照图6,分成以下的案例来说明通过基于图3所示的流程图的处理而ecu1b侧以及更新装置3侧各自的ram13以及33中存储的步骤编号相匹配的情形。

(a)从ecu1b发送的通信信号(例如,软件新ver有无确认要求)未由更新装置3接收到、并且与该通信信号相应地从ecu1b发送的下位信号(信息通知信号)由更新装置3接收到的案例。

(b)从ecu1b发送的通信信号(例如,软件新ver有无确认要求)由更新装置3接收到、并且与该通信信号相应地从ecu1b发送的下位信号(信息通知信号)未由更新装置3接收到的案例。

(c)从更新装置3发送的通信信号(例如,软件新ver有无响应)未由ecu1b接收到的案例。

(d)从更新装置3发送的更新文件361、362··(例如,更新文件361)未由ecu1b接收到、并且与该更新文件361相应地从ecu1b发送的下位信号(信息通知信号)由更新装置3接收到的案例。

(e)与从更新装置3发送的更新文件361、362··(例如,更新文件361)相应地从ecu1b发送的下位信号(信息通知信号)未由更新装置3接收到的案例。

(f)由于某些原因,ecu1b侧的上位任务中断了图6所示的序列的案例。

关于(a)、(b)以及(c)各自的案例,与实施方式1的(a)、(b)以及(c)的情况同样地,不产生不匹配是清楚的,所以省略详细说明。

(d)的案例:在与最初的更新文件361相应地从ecu1b发送了信息通知信号的情况下,分别存储于ram13以及33的步骤编号是步骤6。其后,能够构成为在从更新装置3发送的更新文件362由ecu1b接收到的情况下,ecu1b的上位任务检测到更新文件的不连续,对更新装置3要求再次发送。其后,与再次发送的更新文件361相应地从ecu1b发送的信息通知信号中包括的步骤编号仍然是步骤6,所以不产生步骤编号的不匹配。

(e)的案例:作为与前一个更新文件发送要求相应地从ecu1b发送了信息通知信号的结果,分别存储于ram13以及33的步骤编号是步骤5。其后,当在与更新文件361相应地从ecu1b发送的信息通知信号未由更新装置3接收到的状态下与更新文件362相应地从ecu1b发送了信息通知信号的情况下,分别存储于ram13以及33的步骤编号成为步骤7以及步骤5。接下来,将对由ecu1b接收到的信息响应信号中包括的步骤编号(在这里是步骤5)加1而得到的编号的步骤6通知给上位任务,所以上位任务再次发送更新文件361。与该再次发送相应地从ecu1b发送的信息通知信号中包括的步骤编号是步骤6,所以分别存储于ram13以及33的步骤编号均成为步骤6,不匹配解除。此外,在该案例中,即使在最初的更新文件361未由ecu1b接收到的情况下,也不需要上位任务间的再次发送次序。

(f)的案例:ecu1b侧的上位任务预先设成使图3所示的ecu1a(在上述置换后是ecu1b)侧的处理从步骤s11起再次开始、等待指示步骤编号的状态,针对该处理,指示再次开始时的步骤编号。与此相应,图3所示的ecu1a(1b)侧的处理将在步骤s11中指示的步骤编号存储于ram13,从而将包括ram13中存储的步骤编号的信息通知信号向ecu2发送(在上述置换后是更新装置3),再次开始图3所示的整个处理。其后,以使存储于ram13以及33的步骤编号相匹配的方式使处理推进,这通过上述案例(a)至(e)的说明而清楚。

此外,在本实施方式3中,将表示ecu1b和更新装置3之间的信号的收发的进展的步骤编号设为与实施方式1中的ecu1a和ecu2之间的信号的收发的情况相同的连续编号,但也可以明示地区分这些步骤编号。例如,也可以设为软件新ver有无确认要求:步骤1_1、软件新ver有无响应:步骤1_2、更新文件dl准备要求:步骤1_3····,并且设为当前的软件ver信息要求:步骤2_1、当前的软件ver响应:步骤2_2、重编程准备完成通知:步骤2_3…。

另外,例如,为了用作为连续编号的步骤编号来表示ecu1b、更新装置3和ecu2相互间的信号的收发的进展,也可以设为软件新ver有无确认要求:步骤1、软件新ver有无响应:步骤2、当前的软件ver信息要求:步骤3、当前的软件ver响应:步骤4、更新文件dl准备要求:步骤5····。在如上述2个例子那样明示地区分全部步骤编号的情况下,ecu1b也可以不需要区分下位信号的发送目的地,对信息通知信号进行广播。

如上所述,根据本实施方式3,在ecu1b以及更新装置3相互收发通信信号及更新用控制程序360的期间,ecu1b从更新装置3取得新的计算机程序。ecu1b将所取得的新的计算机程序向ecu2配送,ecu2使配送了的新的计算机程序存储于本装置的rom22,从而更新存储器内的计算机程序。ecu1b根据收发的进展而将表示通信信号及更新用控制程序360的收发的进展的步骤编号存储于ram13而进行更新,并且,将更新后的步骤编号包含于信息通知信号而向更新装置3发送。更新装置3基于从ecu1b接收到的信息通知信号中所包括的步骤编号,来更新存储于ram33的步骤编号,并且,将更新后的步骤编号包含于信息响应信号而向ecu1b发送。然后,ecu1b根据从更新装置3接收到的信息响应信号中所包括的步骤编号,来确定在与更新装置3之间接下来应该收发的通信信号或更新用控制程序360。由此,根据伴随着信号的收发的进展而由更新装置3更新后的步骤编号,来确定在ecu1b与更新装置3之间接下来应该收发的通信信号或更新用控制程序360,所以能够防止ecu1b和更新装置3之间的信号的收发的进展偏离。

另外,根据实施方式1,在中断了在ecu1b与更新装置3之间进行的通信信号及更新用控制程序360的收发的情况下,ecu1b根据在再次开始时应该收发的通信信号或更新用控制程序360,来更新存储于ram13中的步骤编号,将更新后的步骤编号向更新装置3发送。之后,步骤编号的交换如上所述地进行。因此,在再次开始后,以使ecu1b的ram13中存储的步骤编号与更新装置3的ram33中存储的步骤编号相匹配的方式,确定在ecu1b与更新装置3之间接下来应该收发的通信信号或更新用控制程序360,所以能够防止ecu1b和更新装置3之间的信号的收发的进展偏离。

进一步地,根据实施方式1(或3),在ecu1a和ecu2之间(或ecu1b和更新装置3之间)依次收发分割成多个的更新用控制程序160(或更新用控制程序360)。由此,关于分割而得到的更新文件161、162··(或更新文件361、362··),能够防止收发的进展偏离。

标号说明

1a、1b、2ecu

11、21、31cpu

12、22、32rom

120、220、320控制程序

13、23、33ram

14、24、34通信部

15、35计时器

16、36内部存储装置

160、360更新用控制程序

3更新装置

4通信线。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1