控制装置及向控制装置的数据写入方法与流程

文档序号:18235882发布日期:2019-07-24 08:42阅读:154来源:国知局
控制装置及向控制装置的数据写入方法与流程

本发明涉及车辆用的控制装置及向该控制装置的数据写入方法。



背景技术:

车辆用的电子控制装置(称作“电子控制单元(ECU:Electronic Control Unit)”)搭载有可电擦除和电写入数据的非易失性存储器。ECU通过在非易失性存储器中保存的控制程序及校准数据等,对车载装置(例如燃料喷射装置)进行控制。通过缩短控制程序及校准数据向非易失性存储器的写入所需的时间,从而ECU的生产效率得到提高。

在专利文献1中公开了并行地执行以下处理的情况:ECU接收将写入数据分割而成的分割数据,并相对于第一缓冲区域及第二缓冲区域中的一个缓冲区域复制接收到的分割数据的接收处理;以及使用另一个缓冲区域,来将保存在另一个缓冲区域中的分割数据写入到ROM(Read-Only Memory,只读存储器)的处理。另外,还公开了以下情况:ECU将在接收处理中所使用的缓冲区域使用于下次的写入处理,并且将在写入处理中所使用的缓冲区域使用于下次的接收处理。

现有技术文献

专利文献

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



技术实现要素:

发明要解决的问题

但是,向ECU的存储器写入的数据量正在增大,为了提高ECU的生产效率,要求进一步缩短向该存储器进行数据写入处理所需的整体时间。

本发明的目的在于,缩短向控制装置(ECU)的存储器进行数据写入处理所需的整体时间。

解决问题的方案

本发明的一实施方式的控制装置具备:第一存储部;第二存储部,数据的输入输出速度比第一存储部快,且具有能够存储规定数量的数据块的第一存储区域及第二存储区域;以及控制部,进行以下控制:将第一存储区域及第二存储区域中的一者设定为传送目的地存储区域,使从写入装置发送的数据块存储于传送目的地存储区域,并将该数据块的校验值发送到写入装置。写入装置判定从控制部发送的校验值是否正确,在判定为该校验值正确的情况下,在发送接下来的数据块之前,对控制部发送块发送开始请求。控制部当在传送目的地存储区域中存储有规定数量的数据块,且从写入装置接收到块发送开始请求的情况下,将传送目的地存储区域切换为第一存储区域及第二存储区域中的另一者,并且使得在切换前的传送目的地存储区域中存储的规定数量的数据块被写入到第一存储部。

发明效果

根据本发明,能够缩短向控制装置(ECU)的存储器进行数据写入处理所需的整体时间。

附图说明

图1是表示本实施方式的控制装置的构成例的图。

图2是表示数据写入处理的例子的序列图。

图3是表示写入装置中的数据写入处理的例子的流程图。

图4是表示ECU的CPU(Central Processing Unit,中央处理器)中的数据写入处理的例子的流程图。

具体实施方式

以下,参照附图对本发明的实施方式进行说明。

图1是表示本实施方式的控制装置的构成例的图。

在工厂中,从写入装置10对作为车辆用的控制装置的一例的ECU20写入数据,该写入装置10是用于写入ECU20所需的数据的装置。ECU20所需的数据例如是发动机控制程序或与发动机控制相关的校准数据。写入装置10通过作为通信网络的一例的CAN(Controller Area Network,控制器局域网)12,向ECU20写入数据。

ECU20具备:通信I/F(Interface,接口)22、DMAC(Direct Memory Access Controller,直接存储器访问控制器)26、闪存28、RAM(Random Access Memory,随机存储器)24、以及CPU30。

通信I/F22及DMAC26通过第一总线40可双向通信地连接。CPU30、DMAC26、闪存28及RAM24通过第二总线42可双向通信地连接。第二总线42的通信速度比第一总线40快。

通信I/F22是对遵循CAN12的通信协议的数据的发送接收进行控制的I/F。通信I/F22具备通信缓冲器23,将从写入装置10通过CAN12发送的帧数据暂时保存在通信缓冲器23。

闪存28(作为本发明的第一存储部而发挥功能)是对从CPU30读出的发动机控制程序及校准数据等进行保存的非易失性存储器。此外,例如,也可以使用SRAM(Static RAM,静态随机存储器)或EEPROM(Electrically Erasable Programmable Read-Only Memory,电可擦可编程只读存储器)等非易失性存储器来代替闪存28。

RAM24(作为本发明的第二存储部而发挥功能)是暂时地保存由CPU30执行的程序及数据的存储器。RAM24可以是易失性存储器也可以是非易失性存储器,但I/O(输入/输出)速度比闪存28快。

DMAC26控制在通信缓冲器23中保存的数据向RAM24的传送。通过DMAC26控制向RAM24的传送,从而能减轻CPU30的与I/O控制相关的负荷。

在车辆行驶时,CPU30通过执行在闪存28中保存的程序及数据,来实现ECU20(作为本发明的控制部而发挥功能)所具有的功能。

但是,在本实施方式中,CPU30在工厂等中的ECU20的生产工序中,执行实现向闪存28的数据写入处理的程序(称作“闪存写入程序(Flash Write Program)”)。闪存写入程序保存于ECU20的规定的非易失性存储器中,通过CPU30从写入装置10接收工厂模式开始请求来执行闪存写入程序。因此,在通常的车辆行驶时不执行闪存写入程序。另外,在ECU20的生产工序中,在RAM24中确保两个传送目的地区域:RAM第一区域50A和RAM第二区域50B。

在ECU20的生产工序中,CPU30对DMAC26指定一个传送目的地区域(例如RAM第一区域50A)作为从写入装置10发送的数据块的传送目的地。DMAC26将从写入装置10发送的数据块向一个传送目的地区域(例如RAM第一区域50A)传送。DMAC26在将一个数据块向一个传送目的地区域传送结束的情况下,向CPU30通知该情况。CPU30接收该通知,并将传送到一个传送目的地区域的一个数据块的校验值(例如校验和)发送至写入装置10。

写入装置10判定从CPU30发送的校验值是否正确,在判定为该校验值正确的情况下,在发送接下来的数据块之前,对CPU30发送块发送开始请求。例如,写入装置10事先保留向CPU30发送的数据块的校验值,判定是否与从CPU30发送的该数据块的校验值一致。

CPU30在规定数量的数据块传送到一个传送目的地存储区域(例如RAM第一区域50A),且从写入装置10接收到块发送开始请求的情况下,对DMAC26指定另一个传送目的地区域(例如RAM第二区域50B)作为数据块的传送目的地。

DMAC26在从CPU30接收到上述的另一个传送目的地区域的指定的情况下,对闪存28的控制器(称作“闪存控制器”)发出表示将一个传送目的地区域内的规定数量的数据块写入到闪存28的指示(称作“闪存写入指示”)。

此外,DMAC26也可以构成为,不接收来自CPU30的传送目的地区域的指定,而例如在将规定数量的数据块向传送目的地区域传送结束的情况下,发出闪存写入指示。

根据上述结构,以向另一个传送目的地区域传送的最初的数据块的块发送开始请求的接收为触发条件,将数据块的传送目的地切换为另一个传送目的地区域,并将一个传送目的地区域内的规定数量的数据块写入到闪存28。块发送开始请求是用于进行写入装置10是否可以对ECU20发送接下来的数据块的问询的信息,不是用于从写入装置10对ECU20指示传送目的地区域的切换的信息。因此,在写入装置10与CPU30之间不需要进行用于切换传送目的地区域的信息的交换,其结果,从写入装置10向ECU20的数据发送所需的时间缩短。另外,通过在写入装置10侧基于从CPU30发送的校验值来检验数据块的损坏,从而CPU30的处理负荷得到减轻,其结果,向闪存28的数据写入所需的时间缩短。由于这些时间的缩短,从而向闪存28的数据写入处理的整体时间缩短,ECU20的生产效率提高。

写入装置10将数据块分割为多个帧并按顺序发送。DMAC26将从写入装置10发送的多个帧,按照接收到的顺序向被CPU30所指定的传送目的地区域传送。

根据上述结构,能够不需要表示数据块中的帧的位置的编号信息。由此,能够减少从写入装置10向ECU20的数据发送量。

接着,参照图2对ECU20的生产工序中的、向ECU20的数据写入处理的具体例进行说明。在本实施方式中,RAM第一区域50A及RAM第二区域50B的大小分别为16块。1块的大小为256帧。1帧的大小为8字节(Byte)。

图2是表示数据写入处理的例子的序列图。

首先,写入装置10对CPU30发送工厂模式开始请求(ST10)。

接着,CPU30若接收到ST10的工厂模式开始请求,则开始工厂模式。即,执行上述的闪存写入程序。然后,CPU30对写入装置10发送工厂模式开始响应(ST12)。

写入装置10若接收到ST12的工厂模式开始响应,则对CPU30发送块发送开始请求,作为针对第1块的开始处理(ST16)。

CPU30若接收到ST16的块发送开始请求,则对DMAC26指定RAM第一区域50A,作为接下来在通信缓冲器23中保存的256×16个(也就是16块)的帧的传送目的地区域(ST18)。将该切换传送目的地区域的处理称作“传送目的地切换处理”。

接着,CPU30对写入装置10发送块发送开始响应(ST20)。这时,CPU30对块发送开始请求的接收数进行计数。

写入装置10若接收到ST20的块发送开始响应,则将第1块分割为多个帧,并依次向通信I/F22发送。DMAC26将保存在通信缓冲器23中的帧按照接收到的顺序,向作为传送目的地区域的RAM第一区域50A传送(D1)。

DMAC26若将256个帧(第1块)向RAM第一区域50A传送结束,则向CPU30发送完成通知(ST21)。

CPU30若接收到ST21的完成通知,则计算传送到RAM第一区域50A的第1块的校验值。然后,CPU30将该计算出的校验值发送至写入装置10(ST22)。校验值例如是第1块的数据的校验和值。另外,CPU30对来自DMAC26的完成通知的接收数进行计数。

写入装置10若接收到ST22的第1块的校验值,则判定该接收到的校验值是否正确(ST24)。例如,若接收到的校验值与所发送的第1块的预先保留的校验值一致,则写入装置10将该校验值判定为正确,另一方面,若与校验值不一致,则判定为不正确。在判定为该校验值不正确的情况下,写入装置10中止该数据写入处理。这是因为保存在RAM24中的数据损坏了。

在判定为该校验值正确的情况下,写入装置10对CPU30发送块发送开始请求,作为针对接下来的第2块的处理。针对第2块的处理与针对上述的第1块的处理相同,因此省略说明,对针对第16块的处理(D16)以后的处理进行说明。

DMAC26若将第16块向RAM第一区域50A传送结束,也就是,若第16块的接收帧数到达“256个”,则向CPU30发送完成通知(ST30)。

CPU30若接收到ST30的完成通知,则计算保存在RAM第一区域50A中的第16块的校验值。然后,CPU30将该计算出的校验值发送至写入装置10(ST32)。另外,CPU30对从DMAC26接收到的完成通知的数量进行计数。其结果,完成通知的数量到达与RAM第一区域50A的大小相当的“16个”,因此CPU30得知在RAM第一区域50A中最大限度地保存了块数据。

写入装置10在判定为第16块的校验值正确的情况下(ST34),对CPU30发送块发送开始请求,作为针对第17块的处理(ST44)。

CPU30如上述那样得知在RAM第一区域50A中最大限度地保存了块数据,因此若接收到ST44的块发送开始请求,则执行传送目的地切换处理。即,CPU30对DMAC26指定RAM第二区域50B作为接下来在通信缓冲器23中保存的256×16个(也就是16块)的帧的传送目的地区域(ST46)。由此,将第17块~第32块的传送目的地切换为RAM第二区域50B。

接着,CPU30对写入装置10发送块发送开始响应(ST50)。CPU30不等待下述的闪存写入处理的完成通知(ST54),而发送该块发送开始响应。这是因为,接下来将接收的第17块~第32块会被传送到切换后的RAM第二区域50B。

写入装置10若接收到ST50的块发送开始响应,则将第17块分割为多个帧,并依次向通信I/F22发送。DMAC26将保存在通信缓冲器23中的帧按照接收到的顺序,向作为传送目的地区域的RAM第二区域50B传送(D17)。

此外,由于接收帧数到达“256×16个”,因此在上次的闪存写入处理完成的情况下,DMAC26对闪存控制器发出表示将保存在RAM第一区域50A中的第1块~第16块写入至闪存28的指示(闪存写入指示)(ST52)。

接收到ST52的指示的闪存控制器开始将RAM第一区域50A的第1块~第16块写入至闪存28的处理(W1)。该将RAM第一区域50A或RAM第二区域50B的数据写入到闪存28的处理称作闪存写入处理。闪存控制器若完成该闪存写入处理,则对CPU30发出完成通知(ST54)。

根据上述的处理,能够并列地执行以下处理:将在RAM第一区域50A或RAM第二区域50B中保存完成的数据写入到闪存28的处理;以及将从写入装置10发送的数据向RAM第一区域50A或RAM第二区域50B传送的处理。

接着,叙述从写入装置10发送了最终块的帧之后的处理。

写入装置10在将最终块的数据发送结束后,对CPU30发送全部块验证请求(ST72)。

CPU30若接收到ST72的全部块验证请求,则等待从闪存控制器发送来最终数据的完成通知(ST74)。

CPU30若接收到ST74的完成通知,则验证是否将全部块正确地写入到闪存28中,将包含其验证结果的全部块验证响应发送至写入装置10(ST76)。

写入装置10若接收到ST76的全部块验证响应,则对该响应中包含的验证结果进行确认(ST78)。在ST78的验证结果为“异常”的情况下,写入装置10使该数据写入处理异常结束。这是因为写入到闪存28中的数据损坏了。

在ST78的验证结果为“正常”的情况下,写入装置10对CPU30发送工厂模式结束请求(ST80)。

CPU30若接收到工厂模式结束请求,则结束工厂模式,对写入装置10发送工厂模式结束响应(ST82)。

写入装置10若接收到ST82的工厂模式结束请求,则使该数据写入处理正常结束。

图3是表示写入装置10中的数据写入处理的例子的流程图。

写入装置10对ECU20发送工厂模式开始请求(ST100)。

接着,写入装置10在从ECU20接收到针对ST100的工厂模式开始响应的情况下,对ECU20发送块发送开始请求(ST102)。

接着,写入装置10在从ECU20接收到针对ST102的块发送开始响应的情况下,对ECU20依次发送帧(ST104)。

接着,写入装置10在将1块的帧发送结束后,待机直至从ECU20发送来1块的校验值(ST106:“否”)。

写入装置10在接收到该校验值的情况下(ST106:“是”),判定在ST104中所发送的1块的校验值与在ST106中接收到的校验值是否一致(ST108)。

在ST108的判定结果为“不一致”的情况下(ST108:“否”),写入装置10使数据写入处理异常结束。

另一方面,在ST108的判定结果为“一致”的情况下(ST108:“是”),写入装置10判定是否已将全部块发送完成(ST110)。

在ST110的判定的结果为剩余有未发送的块的情况下(ST110:“否”),写入装置10返回ST102,发送剩余的未发送的块。

在ST110的判定的结果为已将全部块发送完成的情况下(ST110:“是”),写入装置10对ECU20发送全部块验证请求(ST112)。

接着,写入装置10在从ECU20接收到全部块验证响应之后,判定全部块验证响应的结果是否正常(ST114)。

在ST114的判定结果为“异常”的情况下(ST114:“否”),写入装置10使数据写入处理异常结束。

在ST114的判定结果为“正常”的情况下(ST114:“是”),写入装置10在ST116中对ECU20发送工厂模式结束请求。

写入装置10在从ECU20接收到工厂模式结束响应之后(ST116),使数据写入处理正常结束。

图4是表示CPU30中的数据写入处理的例子的流程图。

CPU30若从写入装置10接收到工厂模式开始请求,则开始工厂模式,对写入装置10发送工厂模式开始响应(ST200)。

接着,CPU30判定是否从写入装置10发送来了块发送开始请求(ST202)。CPU30在块发送开始请求未被发送的情况下(ST202:“否”),使处理返回至ST202之前。

CPU30在接收到块发送开始请求的情况下(ST202:“是”),对DMAC26指定接下来在通信缓冲器23中保存的256×16个的帧的传送目的地区域(ST204)。如图2所说明的那样,在每接收16块的数据时,传送目的地区域在RAM第一区域50A和RAM第二区域50B之间交替切换。

接着,CPU30对写入装置10发送块发送开始响应(ST206)。

接着,CPU30判定是否从DMAC26发送来了向传送目的地区域的1块的传送完成通知(ST208)。CPU30在该完成通知未被发送的情况下(ST208:“否”),使处理返回至ST208之前。

CPU30在接收到ST208的完成通知的情况下(ST208:“是”),计算该完成通知所涉及的1块的数据的校验值(ST210)。然后,CPU30将该计算出的校验值发送至写入装置10。

接着,CPU30判定是否向传送目的地区域传送了16块的数据(ST212)。CPU30在还未向传送目的地区域传送16块的数据的情况下(ST212:“否”),使处理返回ST202,待机直至接下来的块发送开始请求被发送来为止。

CPU30在已向传送目的地区域传送了16块的数据的情况下(ST212:“是”),判定是否从写入装置10发送来了块发送开始请求(ST214)。

CPU30在接收到块发送开始请求的情况下(ST214:“是”),使处理返回至ST204。在该ST204中,CPU30对DMAC26指示与上次不同的传送目的地区域,作为接下来在发送缓冲器23中保存的256×16个的帧的传送目的地区域。由此,ST214所涉及的块会被传送到切换后的传送目的地区域。

此外,DMAC26在从CPU30接收到与上次不同的传送目的地区域的指示的情况下,对闪存控制器发出针对上次的传送目的地区域内的16块的闪存写入指示。

CPU30在块发送开始请求未被发送来的情况下(ST214:“否”),判定是否从写入装置10发送来了全部块验证请求(ST220)。

CPU30在全部块验证请求未被从写入装置10发送来的情况下(ST220:“否”),使数据写入处理异常结束。这是因为,在未从写入装置10发送块发送开始请求,且全部块验证请求也未被发送的情况下,能够推定为在上述ST210中发送的校验值不一致。即,这是因为能够推定为,保存在传送目的地区域中的16块的数据中包含错误。

CPU30在从写入装置10接收到全部块验证请求的情况下(ST220:“是”),等待从闪存控制器发送来最终块的闪存写入处理的完成通知(ST222)。

CPU30在接收到最终块的闪存写入处理的完成通知后,验证写入到闪存28的全部数据,并将该验证结果发送至写入装置10(ST224)。验证结果中包含“正常”和“异常”中的某一个。

接着,CPU30若从写入装置10接收到工厂模式结束请求,则对写入装置10发送工厂模式结束响应,结束工厂模式(ST226)。

由此,能够并列地执行以下处理:将从写入装置10发送的帧向RAM第一区域40A和RAM第二区域50B中的一者传送的处理;以及将在RAM第一区域50A或RAM第二区域50B的另一者中保存完成的规定数量的块数据写入到闪存28的处理。由此,能够缩短向闪存28的数据写入所需的时间。

<变形例>

能够通过削减从写入装置10向ECU20的数据发送量,来进一步削减该发送所需的时间。以下,示出一例。

在按数据的项目来定义数据长度(称作“项目数据长度”)的情况下,不足该数据长度的部分被以规定的数据(例如“0xFF”)填补(也就是,填充)。

因此,写入装置10在各项目的数据的开头赋予该数据的实质的数据长度(称作“实质数据长度”),并删除填充数据。然后,写入装置10连结删除了这些填充数据后的数据,并如上述图2那样,将该连结数据分割为块及帧,并向ECU20依次发送。

接收到该连结数据的ECU20参照实质数据长度,提取项目数据。然后,ECU20将不足项目数据长度的部分填充,并写入到闪存28。

实质数据长度比填充后的数据长度小,由此,从写入装置10向ECU20的数据发送量、即该发送所需的时间进一步得到削减。其结果,向ECU20所具备的闪存28的数据写入处理所需的整体时间进一步缩短。

<效果>

根据上述实施方式,CPU30能够以块发送开始请求的接收为触发条件,来执行传送目的地区域的切换、以及向闪存28的写入开始,该块发送开始请求是用于进行写入装置10是否可以对ECU20发送接下来的数据块的问询的信息。因此,在写入装置10与CPU30之间,不需要进行用于切换传送目的地区域的信息的交换,其结果,从写入装置10向ECU20的数据发送所需的时间缩短。

另外,通过在写入装置10侧基于从CPU30发送的校验值来检验数据块的损坏,从而CPU30的处理负荷得到减轻。

另外,能够并列地执行以下处理:将在RAM第一区域50A或RAM第二区域50B中保存完成的数据写入到闪存28的处理;以及将从写入装置10发送的数据向RAM第一区域50A或RAM第二区域50B传送的处理。

其结果,向闪存28的数据写入处理所需的整体时间缩短。ECU20的生产效率得到提高。

<附注>

上述实施方式都不过是表示实施本发明时的具体的一例,并非限定地解释本发明的技术范围。即,能够不脱离其要点或其主要特征地以各种形式实施本发明。

本申请基于在2016年12月7日提出的日本专利申请(日本专利申请特愿2016-237752),其内容在此作为参照而引入。

工业实用性

本发明能够用于车辆用的控制装置。

附图标记说明

10 写入装置

20 ECU

22 通信I/F

23 通信缓冲器

24 RAM

26 DMAC

28 闪存

30 CPU

40 第一总线

42 第二总线

50A RAM第一区域

50B RAM第二区域

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