首页> 中国专利> 用于控制在非易失性存储器中重写数据的交通工具控制器

用于控制在非易失性存储器中重写数据的交通工具控制器

摘要

一种交通工具控制器,包括用来存储至少一个数据块的第一个缓冲区,用来存储至少一个数据块的第二个缓冲区,以及用来存储控制交通工具的信息的可重写非易失性存储器。该控制器从外部重写装置接收数据块并将其存储在第一个缓冲区。存储在第一个缓冲区的数据块传输到第二个缓冲区。存储在第二个缓冲区中的数据块写入第二个缓冲区。当第一个数据块写入存储器中时,接收随后的数据块。因此,减少了重写存储在非易失性存储器中的数据的所需要的时间。

著录项

  • 公开/公告号CN1412631A

    专利类型发明专利

  • 公开/公告日2003-04-23

    原文格式PDF

  • 申请/专利权人 本田技研工业株式会社;

    申请/专利号CN02145716.6

  • 发明设计人 屋敷哲也;松浦正典;

    申请日2002-10-09

  • 分类号G05B15/02;G11C17/00;

  • 代理机构11021 中科专利商标代理有限责任公司;

  • 代理人王玮

  • 地址 日本东京都

  • 入库时间 2023-12-17 14:40:20

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2013-12-04

    未缴年费专利权终止 IPC(主分类):G05B15/02 授权公告日:20061004 终止日期:20121009 申请日:20021009

    专利权的终止

  • 2006-10-04

    授权

    授权

  • 2004-11-17

    实质审查的生效

    实质审查的生效

  • 2003-04-23

    公开

    公开

说明书

技术领域    

本发明涉及一种重写系统,其中用从外部重写装置接收的数据重写存储在交通工具控制器的非易失性存储器中的数据。

背景技术

目前,交通工具控制包括基于空气-燃料比例,燃料注入量,喷射等等的引擎控制,以及诸如动力车窗,安全气袋,与ABS之类部件的车体控制。这种控制由电子控制单元实现,下文中称之为“ECU”。根据安装在交通工具上的各种传感器检测到的交通工具的状况,一个或多个ECU以各种方式控制交通工具。

ECU包括中央处理器(CPU),存储要执行的程序和数据的ROM(只读存储器),在运行时间提供操作空间以存入操作结果的RAM(随机存取寄存器),以及用来从各种传感器中接收信号和向每一个发动机元件发送控制信号的输入/输出接口。ROM可以包括一个可重写非易失性存储器,如闪速存储器和EEPROM。

用来重写存储在这种非易失性存储器中的数据的系统是已知的。这种系统通常包括重写装置,ECU,和用于互连重写装置及EUC的串行通信路径。在操作中,ECU擦除存储在非易失性存储器的数据,并通过串行通信路径接收从重写装置中发出的数据。接收到的数据写入非易失性存储器中的预定区。在经过将数据写入到非易失性存储器所需的时间后,重写装置向ECU发送下一个要写入存储器的数据。

例如,未经审查的日本专利申请公开(Kokai)No.S63-223901公开了一种方法,通过SCI(串行通信接口)终端更新存储在交通工具的ECU的EEPROM中的程序,以响应来自于外部重写装置的请求,而不用将ECU从交通工具中卸下。

图12所示的是用于在这种传统的重写系统中的重写操作的时序图。外部重写装置发送数据块1给ECU。数据块1从重写装置到达ECU所需时间为Ttx。ECU接收数据块1并开始将数据块1写入存储器。将数据块1写入到存储器中所需的时间是Twr。在完成数据块1写入到存储器之后,重写装置发送下一个数据块2给ECU。ECU接收数据块2并开始将数据块2写入存储器。因此,发送和写数据块可以顺序地执行。

如图12所示,假设每个数据块的大小是相等的,重写操作要花至少“(Ttx+Twr)×Ntx”的时间。如上所述,Ttx表示从重写装置发送一个数据块给ECU所需要的时间。Twr表示将一个数据块写入存储器中所需要的时间。Ntx表示发送数据的次数。

写时间Twr取决于非易失性存储器的规格。发送的次数取决于要重写的数据的数量。因此,为了缩短在非易失性存储器中重写数据所需要的时间,发送时间Ttx需要降低。

通信速度需要增加,以使发送时间Ttx降低。然而,重写装置和ECU通常通过串行通信互连。只要使用了串行通信,就不容易获得通信速度的增加,因为通信速度是由电缆的规格限定的。

因此,需要一种装置和方法,降低重写存储在非易失性存储器中的数据的时间,而不增加通信的速度。

发明内容

根据本发明的一个方面,交通工具控制器包括用于存储至少一个数据块的第一个缓冲区,用于存储至少一个数据块的第二个缓冲区,以及存储信息来控制交通工具的可重写非易失性存储器。控制器从外部的重写装置接收数据块以将它存储在第一个缓冲区中。存储在第一个缓冲区中的数据块传输到第二个缓冲区中。存储在第二个缓冲区中的数据块写入存储器中。当第一个数据块写入存储器中时,接收随后的数据。因此,降低了重写存储在非易失性存储器中的数据所需要的时间。第一个和第二个缓冲区可以由一个存取时间比非易失性存储器快的存储器来实现。

根据本发明的一个实施例,响应第一个数据块传输的完成,控制器开始接收随后的数据块。

根据本发明的另一个实施例,控制器判断第一个缓冲区中是否有空闲空间。如果第一个缓冲区中有空闲空间,控制器开始从外部的重写装置中接收随后的数据块。

根据本发明的一个实施例,响应完成将第一个数据块写入存储器中,控制器开始从第一个缓冲区向第二个缓冲区传输后续数据块。

根据本发明的一个方面,在完成将第一个数据块写入存储器之后,如果随后的数据块通过传输装置存储在第二个缓冲区中,控制器开始将随后的数据块写入存储器中。在写第一个数据块结束和写随后的数据块开始之间的延时等于或小于从第一个缓冲区向第二个缓冲区传输第一数据块所需要的时间。在写操作中获得了降低的延时。

根据本发明的另一个实施例,在完成接收第一个数据块之后,如果传输装置在第一个缓冲区中产生了空闲空间,控制器开始接收随后的数据块。在接收第一个数据块的结束和接收随后的数据块的开始之间的延时等于或小于从第一个缓冲区向第二个缓冲区传输第一个数据块所需要的时间。在接收操作中获得了降低的延时。

根据本发明的一个实施例,第二个缓冲区存储两个或更多的数据块。响应完成接收随后的数据块,控制器从第一个缓冲区向第二个缓冲区传输随后的数据块。响应第一个数据块写入存储器的完成,控制器开始将随后的数据块写入存储器。在写第一个数据块的结束和写随后的数据块的开始之间没有延时。

根据本发明的另一个实施例,第一个缓冲区存储两个或更多的数据块。响应接收第一个数据块的完成,控制器开始接收随后的数据块。在接收第一个数据块的结束和接收随后的数据块的开始之间没有延时。

根据本发明的一个方面,在第一个缓冲区和第二个缓冲区之间至少提供一个中间缓冲区。控制器进行将存储在第一个缓冲区中的数据块传输到中间缓冲区中的第一传输。控制器还进行将存储在中间缓冲区中的数据块传输到第二个缓冲区中的第二传输。如果完成从中间缓冲区传输第一个数据块到第二个缓冲区,以在中间缓冲区中产生空闲空间,则开始第一传输。如果完成将第一个数据块写入存储器以在第二个缓冲区中产生空闲空间,则开始第二传输。因此所提供的中间缓冲区调整了写时间的变化。附图说明

图1是根据本发明一个实施例的表示重写系统的方框图。

图2是根据本发明第一个实施例的一序列重写操作。

图3是根据本发明第二个实施例的一序列重写操作。

图4是根据本发明一个实施例,当提供一个接收缓冲区和一个写缓冲区时用于重写操作的时序图。

图5是根据本发明一个实施例,当提供两个接收缓冲区和两个写缓冲区时用于重写操作的时序图。

图6是根据本发明一个实施例,当提供一个接收缓冲区和两个写缓冲区时用于重写操作的时序图。

图7是根据本发明一个实施例,当提供一个接收缓冲区,一个写缓冲区和一个中间缓冲区时用于重写操作的时序图。

图8是根据本发明第一个实施例,表示接收控制过程的流程图。

图9是根据本发明第二个实施例,表示接收控制过程的流程图。

图10是根据本发明一个实施例,表示写控制过程的流程图。

图11是根据本发明一个实施例,表示当提供中间缓冲区时写控制过程的流程图。

图12是根据常规方式的写操作的时序图。

具体实施方式

参考附图描述本发明使用从外部重写装置接收的数据重写存储在交通工具控制器的非易失性存储器中的数据。

图1是表示根据本发明一个实施例的重写系统的示意结构。重写系统包括ECU 10和外部重写装置20。重写装置20是由交通工具的生产商认可的。当重写装置20通过串行通信总线和ECU 10连接时,存储在ECU10的ROM 16中的数据和程序可以通过重写装置20重写。

ECU 10由微型计算机和相关的电路元件组成。ECU 10包括中央处理器(此后简称为“CPU”),用于存储将要执行的程序和数据的非易失性存储器或ROM 16(只读存储器),用于在执行时提供工作区和存储计算结果等的RAM(随机.存储器),以及用于接收由各种传感器探测的信号和给各种发动机部件发送控制信号的输入/输出接口。由各种传感器探测的信号包括发动机转速,发动机温度,入口温度,电池电压,点火开关,等等。CPU调用存储在ROM中的控制程序和数据并根据来自于输入/输出接口的探测信号执行操作。CPU通过输入/输出接口将结果输出到交通工具不同的部件,以控制交通工具的各种功能。

为了简明,在图1的ECU 10中只显示了这些元件中的ROM 16。将描述一个重写存储在ROM 16中的数据的实施例。然而,下面的描述适用于重写存储在ROM 16中的程序的实施例。

ECU 10还包括接口(未示出),它可以和重写装置20通信。通过该接口,ECU 10和重写装置20执行串行通信。

ROM 16是非易失性存储器,可以从中擦除存储的数据并可写入新数据。例如ROM 16可以由闪速存储器或者EEPROM实现。

接收元件11,传输元件13和写元件15通常由程序实现。例如,这些程序存储在非可重写ROM(未示出)中。非可重写ROM是非易失性存储器,其中存储的数据不能改变。作为选择,接收元件11,传输元件13和写元件15可以由硬件和/或固件元件来实现。

可利用掩模型ROM来实现非可重写ROM,该掩模型ROM的数据在制造过程中已固定且不能够随后从其擦除或向其写入数据,或通过使用只能写一次数据的PROM来实现非可重写ROM。作为选择,非可重写ROM可以通过指定可重写ROM存储区域的一部分作为不可更改区来实现。

例如,在一个EEPROM中,已经指定存储程序等的非可重写区之后,用存储器的未满空间中的起始和结束地址规定可重写区。

接收缓冲区12和写缓冲区14通常用RAM来实现,与ROM相比,向RAM写数据和擦除其中数据的速度更高。例如,可以使用SRAM,SDRAM(同步DRAM)等。接收缓冲区12和写缓冲区14可以在物理上分离。作为选择,接收缓冲区12和写缓冲区14可以用单一的RAM来实现。

参考图1和图2,将描述根据本发明第一个实施例用从重写装置20接收的数据来重写存储在ROM 16中的数据的操作。

来自于重写装置20的数据以数据块的形式发送给ECU 10。为了简明,假设顺序发送数据块1,数据块2,数据块3,......。一个周期包括在一个期间执行的序列步骤,该周期是从重写装置发送数据块到数据块写入ROM 16中的时间。还假设接收缓冲区12和写缓冲区14各有存储一个数据块的空间。

在重写装置20和ECU 10连接后,通过操作重写装置20开始重写操作。作为选择,重写操作可以通过操作ECU 10开始。

在步骤S41,重写装置20发送给ECU 10一个信号,该信号表示请求释放安全。ECU 10响应这个信号开始验证过程,以确定特许的重写装置连接至此。如果ECU 10验证出了重写装置20,ECU 10向重写装置20发送表示验证成功的信号。如果ECU 10未能验证该重写装置20,ECU 10向重写装置20发送表示验证失败的信号。

如果ECU 10验证出重写装置20,过程进行到步骤S42,其中重写装置20向ECU 10发送表示开始重写的信号。ECU 10通过返回一个重写许可信号响应该信号。

在步骤S43,重写装置20发送给ECU 10一个转移到重写控制模式的请求。ECU 10通过例如设置重写控制标志为1,发送转移许可信号并转移到重写控制模式。在步骤S44,重写装置20查询ECU 10关于转移到重写控制模式的完成情况。如果转移完成,ECU 10发送给重写装置20一个转移完成信号。

在步骤S45,重写装置20请求ECU 10擦除存储在ROM 16中的数据。具体地说,重写装置20发送其中存储有要擦除数据的ROM 16的存储器地址。ECU 10根据接收的存储器地址,擦除在ROM 16中的数据。当完成了数据的擦除后,ECU 10向重写装置20发送擦除完成信号。

在步骤S46,ECU 10的接收元件11向重写装置20发送一个发送许可信号。当完成向重写控制模式的转移后,接收缓冲区空闲,因为没有已接收的数据块。作为选择,在接收元件11确认在接收缓冲区中有空闲空间后,它可以发送许可信号。如果重写装置20接收了发送许可信号,它向ECU 10发送数据块1。ECU 10的接收元件11接收数据块1并将其存储在接收缓冲区12中。

在此时,写缓冲区14是空的,因为没有数据块已写入ROM 16中。传输元件13读出存储在接收缓冲区12中的数据块1,并将其存储在写缓冲区14中。作为选择,在传输元件13确认写缓冲区14空闲后,传输元件13可以开始传输数据块1。

当完成从接收缓冲区12传输数据块1到写缓冲区14后,传输元件13从接收缓冲区12中擦除数据块1。换句话来说,传输元件13将数据块1从接收缓冲区12移到写缓冲区14。

当传输完成时,传输元件13发出一个传输完成信号。该传输完成信号表示接收缓冲区12中产生了空闲空间。响应该传输完成信号,接收元件11发送给重写装置20一个发送许可信号,许可重写装置20发送下一个数据块2。

写元件15读出存储在写缓冲区14中的数据块1。写元件15提取包括在数据块1中的地址,以便将数据块1写入由提取的地址表示的ROM 16的地址中。当完成将数据块1写入ROM 16后,写元件15从写缓冲区14中擦除数据块1。写元件15发出一个写完成信号。写完成信号表示写缓冲区14中产生了空闲空间。

如果重写装置20接收到了下一个数据块2的发送许可信号,它向ECU 10发送数据块2。ECU 10的接收元件11在接收缓冲区12中存储接收的数据块2。

响应前一个周期中数据块1的写完成信号,传输元件13读出存储在接收缓冲区12中的数据块2并将其存储在写缓冲区14中。

当完成从接收缓冲区12传输数据块2到写缓冲区14时,传输元件13从接收缓冲区12中擦除数据块2。传输元件13发出一个传输完成信号。该传输完成信号表示接收缓冲区12中产生了空闲空间。响应该传输完成信号,接收元件11向重写装置20发送一个许可信号,以许可重写装置20发送下一个数据块3。

写元件15读出存储在写缓冲区14中的数据块2。写元件15提取包括在数据块2中的地址,以便将数据块2写入由提取的地址表示的ROM 16的地址中。当完成将数据块2写入ROM 16后,写元件15从写缓冲区14中擦除数据块2。写元件15发出一个写完成信号。写完成信号表示在写缓冲区14中产生了空闲空间。

步骤S46不断重复直到所有的数据块通过重写装置20发送给ECU10。例如,当发送一个程序时,将该程序分成了多个数据块,每个数据块有预定的长度。步骤S46不断重复直到发送所有组成程序的数据块。

在步骤S47中,重写装置20向ECU 10发送一个信号,表示请求释放重写控制模式。当完成将所有的数据块写入ROM 16时,通过例如将重写控制标志复位为0,ECU 10从重写控制模式转移到通常的控制模式。ECU 10向重写装置20发送一个信号,表示释放了重写控制模式。

图3表示根据本发明第二个实施例的一序列重写操作。除了在步骤S46中从重写装置20接收数据块的控制不同之外,在第二个实施例中的序列和在第一个实施例中执行的序列相同。写控制和第一个实施例的相同,所以不再描述。

如果接收到了擦除完成信号,过程进行到步骤S46,其中重写装置20向ECU 10发送一个写请求信号。ECU 10的接收元件11判断接收缓冲区12中是否有空闲空间。如果接收缓冲区12中有空闲空间,接收元件11向重写装置20发送一个发送许可信号。如果接收缓冲区12中没有空闲空间,接收元件11发送给重写装置20一个拒绝信号。

如果重写装置20接收到了拒绝信号,在例如预定的时间经过之后,重写装置20重新发送给ECU 10一个写请求信号。如果重写装置20接收到发送许可信号,重写装置20向ECU 10发送数据块1。ECU 10的接收元件11接收数据块1并将其存储在接收缓冲区12中。当完成将数据块1存储在接收缓冲区12中时,接收元件11发送给重写装置20一个接收完成信号。

如果重写装置20接收到完成信号,它为下一个数据块2向ECU 10发送写请求信号。ECU 10的接收元件11判断接收缓冲区12中是否有空闲空间。如果接收缓冲区12中有空闲空间,接收元件11发送给重写装置20一个发送许可信号。如果接收缓冲区12中没有空闲空间,接收元件11发送给重写装置20一个拒绝信号。如上所述,当数据块1通过传输元件13从接收缓冲区12传输到写缓冲区14中时,在接收缓冲区12中产生了空闲空间。

如果重写装置20接收到了拒绝信号,在例如预定的时间经过之后,重写装置20重新发送给ECU 10一个写请求信号。重写装置20接收到发送许可信号时,重写装置20发送给ECU 10下一个数据块2。ECU 10的接收元件11接收数据块2并将其存储在接收缓冲区12中。当完成将数据块2存储在接收缓冲区12中时,接收元件11发送给重写装置20一个接收完成信号。

在第一个和第二个实施例中,当在接收缓冲区12中产生空闲空间时,接收元件11从重写装置20中接收下一个数据块。当在写缓冲区14中产生空闲空间以及接收缓冲区12中包含要传输的数据块时,传输元件13开始从接收缓冲区12中将数据块传输到写缓冲区14中。当目前周期的数据块写入接收缓冲区12中时,把前一周期存储在写缓冲区14中的数据块写入ROM 16中。写数据块和接收随后数据块是并行执行的,降低了重写非易失性存储器所需要的时间。

作为选择,接收元件11和传输元件13可以以固定的时间间隔检查接收缓冲区和写缓冲区,以判断在这些缓冲区中是否有空闲空间。

更可取地是,在一个周期内发送的数据块的大小是固定的(例如,8个字节)。当每个数据块的大小预先指定时,每个接收和写缓冲区的大小可以调整成数据块的大小。此外,以很高的并行速度接收和写数据块是可能的。然而,数据块的大小是可以改变的。

参考图4到7,将描述根据本发明一个实施例的重写操作的时序图的一些例子。如图2和3所示的实施例适用于这些时序图中的任意一个。

图4所示的是重写操作的时序图的一个例子,其中提供了一个接收缓冲区12和一个写缓冲区14。假设每个数据块的大小是相等的。Ttx表示从重写装置20发送一个数据块到ECU 10所需要的时间。Twr表示将一个数据块写入ROM 16所需要的时间。

在时间t1,ECU 10开始接收由重写装置20发送的数据块1。在时间t2,接收数据块1结束且将数据块1存储在接收缓冲区12中。此时,写缓冲区14空闲,因为没有数据块已写入ROM 16中。在时间t2,开始将存储在接收缓冲区12的数据块1传输到写缓冲区14。在时间t3,当完成从接收缓冲区12到写缓冲区14的传输时,开始将存储在写缓冲区14中的数据块1写入ROM 16中。

在时间t3,在接收缓冲区12中产生了空闲空间,因为完成了数据块1向写缓冲区14的传输。因此,在时间t3,ECU 10开始从重写装置20接收数据块2。在时间t4,结束接收数据块2且将数据块2存储在接收缓冲区12中。

在时间t5,完成将数据块1写入ROM 16,在写缓冲区14中产生了空闲空间。因此,存储在接收缓冲区12的数据块2传输到写缓冲区14。在时间t6,当完成从接收缓冲区12传输数据块2到写缓冲区14时,开始将数据块2写入ROM 16中。

在时间t6,在接收缓冲区中产生了空闲空间,因为完成了数据块2向写缓冲区14的传输。因此,在时间t6,开始从重写装置20接收数据块3。在时间t7,结束接收数据块3且将数据块3存储在接收缓冲区12中。

在时间t8,完成将数据块2写入ROM 16,写缓冲区14中产生了空闲空间。因此,在时间t8,开始将存储在接收缓冲区12中的数据块3传输到写缓冲区14。在时间t9,当将数据块3从接收缓冲区12传输到写缓冲区14结束时,开始将数据块3写入ROM 16中。

与图12相比可以看出,根据本发明的重写控制,当一个数据块写入存储器中时,接收随后的数据块。因此,重写存储在ROM中所需要的时间减少。根据图12所示的常规重写操作,Nx周期的重写时间至少是“(Ttx+Twr)×Nx”。更确切地,Nx周期的重写时间可以表示成“(Ttx+Twr+α)×Nx”,其中,α表示在接收数据块的结束时间和写数据块的开始时间之间的延时时间的总数,以及在写数据块的结束时间和接收另一个数据块的开始时间之间的延时时间。

在图4所示的例子中,Nx周期的重写时间是“(Twr+β)×Nx”(然而,重写时间不包括第一个周期内从t1到t2的发送时间以及从t2t3的传输时间)。这里,β表示在从接收缓冲区12传输数据块到写缓冲区14的开始时间和将数据块写入写缓冲区14中的开始时间之间的延时时间(例如,“t6-t5”)。β比Twr的值小得多,因为接收缓冲区12和写缓冲区14通常由提供快速存取的RAM来实现。因此,如图4所示,写数据块和发送随后的数据块并行执行,重写时间减少了一半。

当如图4所示Ttx<Twr时,Nx周期的重写时间可表示为“(Twr+β)×Nx”。相反地,当Ttx>Twr时,它可以表示成“(Ttx+β)×Nx”。从这些方程式可以看出,为了再降低重写时间,更可取的是选择数据块的大小,因此一个数据块的发送时间Ttx和写时间Twr大约是相同的。

图5所示的是重写操作时序图的另一个例子,其中提供两个接收缓冲区121和122以及两个写缓冲区141和142。假设每个数据块的大小是相等的。还假设发送时间Ttx和写时间Twr大约是相同的。

在时间t1,ECU 10开始接收由重写装置20发送的数据块1。在时间t2,完成接收数据块1且将数据块1存储在接收缓冲区121中。此时,写缓冲区141和142空闲,因为没有数据块已写入ROM 16中。因此,在时间t2,将存储在接收缓冲区121中的数据块1传输到写缓冲区141。在时间t3,当完成数据块1从接收缓冲区121向写缓冲区141的传输时,读出存储在写缓冲区141中的数据块1并开始将其写入ROM 16中。

在时间t2,在接收缓冲区121中没有空闲空间,因为从接收缓冲区121向写缓冲区141的传输还没有完成。另一个接收缓冲区122空闲。因此,ECU 10开始从重写装置20中接收下一个数据块2。在时间t4,完成接收数据块2,且将数据块2存储在接收缓冲区122中。

在时间t4,在写缓冲区141中没有空闲空间,因为还没有完成将数据块1写入ROM 16。另一个写缓冲区142空闲。因此,存储在接收缓冲区122中的数据块2传输到写缓冲区142。

在时间t5,当完成将数据块1写入ROM 16时,从写缓冲区142中读出数据块2以开始将其写入ROM 16。

另一方面,在时间t3,使接收缓冲区121空闲。因此,在时间t4,ECU 10开始从重写装置20接收数据块3。在时间t6,接收数据块3结束且将数据块3存储在接收缓冲区121中。

在时间t5,使写缓冲区141空闲,因为完成了将数据块写入到ROM16。因此,在时间t6,存储在接收缓冲区121中的数据块3传输到写缓冲区141中。在时间t7,开始将数据块3写入到ROM 16。

如图5所示,当写时间Twr和发送时间Ttx大约相同时,所提供的两个接收缓冲区和两个写缓冲区排除了上述在从接收缓冲区传输到写缓冲区的开始时间和写入ROM的开始时间之间的延时时间“β”。因此,Nx周期的重写时间可表示为“Ttx(或Twr)×Nx”(然而,重写时间不包括第一个周期内从t1到t2的发送时间以及从t2到t3的传输时间)。因此,和图4中的比较,进一步减少了重写时间。

图6所示的是重写操作时序图的另一个例子,其中提供一个接收缓冲区121和两个写缓冲区141与142。假设每个数据块的大小是相等的。还假设写时间Twr比发送时间Ttx长。

在时间t1,ECU 10开始接收由重写装置20发送的数据块1。在时间t2,接收数据块1结束且将数据块1存储在接收缓冲区121中。此时,写缓冲区141和142空闲,因为没有数据块已写入ROM 16中。因此,在时间t2,将存储在接收缓冲区121中的数据块1传输到写缓冲区141中。在时间t3,当完成将数据块1从接收缓冲区12传输到写缓冲区14时,读出存储在写缓冲区141中的数据块1,以开始将其写入ROM 16中。

在时间t3,在接收缓冲区121中产生了空闲空间,因为完成了从接收缓冲区121到写缓冲区141的传输。因此,在时间t3,开始从重写装置20接收下一个数据块2。在时间t4,接收数据块2结束且将数据块2存储在接收缓冲区121中。

在时间t4,在写缓冲区141中没有空闲空间,因为还没有完成将数据块1写入ROM 16。另一个写缓冲区142空闲。因此,在时间t4,开始将存储在接收缓冲区121中的数据块2传输到写缓冲区142中。该传输在时间t5完成。在时间t6,当数据块1写入ROM 16完成时,从写缓冲区142中读出数据块2并开始将其写入ROM 16中。写数据块2在时间t9完成。

另一方面,在时间t5,当完成从接收缓冲区121中传输数据块2到写缓冲区142中后,在接收缓冲区121中产生了空闲空间。因此,ECU 10开始从重写装置20中接收数据块3。接收数据块3在时间t7完成,且将接收的数据块3存储在接收缓冲区121中。

在时间t6,当数据块1写入ROM 16完成,在写缓冲区141中产生了空闲空间。因此,在时间t7,存储在接收缓冲区121中的数据块3传输到写缓冲区141中。该传输在时间t8完成。在时间t9,当数据块2写入ROM 16完成时,从写缓冲区141中读出数据块3,以开始将其写入ROM16中。写数据块3在时间t10完成。

如图6所示,更可取地是,当写时间Twr比发送时间Ttx长时,数据块的写操作连续不断地执行。确定写缓冲区的个数要超过接收缓冲区的个数,以便写操作可以不断地执行。根据图6所示的例子,Nx个周期的写时间表示为“Twr×Nx”(然而,重写时间不包括第一个周期内从t1到t3的时间)。因此,即使当发送时间Ttx和写时间Twr不同时,通过调整接收缓冲区和写缓冲区的个数可以降低重写时间。

当发送时间Ttx比写时间Twr长时,更可取地是,数据块的接收操作连续不断地执行。在此例中,确定接收缓冲区的个数要超过写收缓冲区的个数。Nx个周期的重写时间表示为“Ttx×Nx”。

图7所示的是重写操作的时序图的另一个例子,其中在接收缓冲区12和写缓冲区14之间设置一个中间缓冲区(在图1中并没有示出)。写时间中存在变化,该变化取决于包括在数据块中的数据和计算机环境。不论是否每个数据块的大小相等或不同,这种变化都要发生。在此例中,中间缓冲区调节写时间的变化。

在时间t1,ECU 10开始接收重写装置20发送的数据块1。在时间t2,接收数据块1结束且将数据块1存储在接收缓冲区12中。此时,中间缓冲区和写缓冲区14空闲,因为数据块仍未写入ROM 16中。存储在接收缓冲区12中的数据块1传输到中间缓冲区中。传输到中间缓冲区的数据块1再传输到接收缓冲区14。在时间t4,当向写缓冲区的传输完成时,开始将存储在写缓冲区14中的数据块1写入ROM 16中。

在时间t3,在接收缓冲区12中产生了空闲空间,因为完成了数据块1到中间缓冲区的传输。因此,在时间t3,ECU 10开始从重写装置20接收数据块2。在时间t5,接收数据块2结束且将数据块2存储在接收缓冲区12中。在时间t5,由于中间缓冲区空闲,存储在接收缓冲区12中的数据块2传输到中间缓冲区。

在时间t7,当把数据块1写入到ROM 16结束时,在写缓冲区14中产生了空闲空间。在时间t7,开始将存储在中间缓冲区的数据块2传输到写缓冲区14。在时间t8,当完成从中间缓冲区到写缓冲区14中的传输时,开始将数据块2写入ROM 16中。

在时间t6,在接收缓冲区12中产生了空闲空间,因为数据块2向中间缓冲区的传输完成。ECU 10开始从重写装置20中接收数据块3。在时间t9,完成接收数据块3且将数据块3存储在接收缓冲区12中。在时间t9,因为中间缓冲区空闲,存储在接收缓冲区12中的数据块3传输到中间缓冲区中。

在时间t11,当完成将数据块2写入到ROM 16时,在写缓冲区14中产生了空闲空间。因此,在时间t11,开始将存储在中间缓冲区中的数据块3传输到写缓冲区14中。在时间t12,当传输完成时,开始将数据块3写入ROM 16中。

在时间t10,在接收缓冲区12中产生了空闲空间,因为数据块3到中间缓冲区的传输完成。ECU 10开始从重写装置20接收数据块4。在时间t11,接收数据块4接收且将数据块4存储在接收缓冲区12中。在时间t12,当完成将数据块3传输到写缓冲区14中后,在中间缓冲区中产生了空闲空间。因此,在时间t12,开始将数据块4从接收缓冲区12传输到中间缓冲区。

在时间t14,数据块3写入到ROM 16结束,在写缓冲区14中产生了空闲空间。在时间t14,开始将存储在中间缓冲区的数据块4传输到写缓冲区14。在时间t15,当传输完成时,开始将数据块4写入ROM 16中。

因此,通过提供中间缓冲区,使接收缓冲区空闲,而不用等待写数据块的开始。具体地说,在图4所示的例子中,当写数据块开始时,使接收缓冲区空闲。在图7所示的例子中,借助中间缓冲区,在一个数据块的写入期间使接收缓冲区空闲(例如,时间t6和t10)。因此,即使在由图7中的数据块1和数据块2所示的写时间Twr比发送时间Ttx长时,当把在当前的周期内接收的数据块写入存储器中时,能够接收下一个或者随后周期的数据块。

因此,在将接收的一系列数据块包括各具有写时间Twr比发送时间Ttx长的数据块(如数据块1和2所示)以及各具有写时间Twr比发送时间Ttx短的数据块(如数据块3和4所示)的情况下,通过提供中间缓冲区来调节写时间的变化。结果是,数据块的接收操作和写操作可以连续执行以降低重写时间。

作为选择,在接收缓冲区和写缓冲区之间可以设置多个中间缓冲区。例如,可以设置第一个中间缓冲区和第二个中间缓冲区。这种情况下,当写操作完成且在写缓冲区中产生了空闲空间时,存储在第一个缓冲区的数据块传输到第二个中间缓冲区。当向第二个中间缓冲区的传输完成时,且在第一个中间缓冲区中产生了空闲空间时,存储在接收缓冲区中的数据块传输到第一个中间缓冲区。通过设置多个中间缓冲区,中间缓冲区可以调节的写时间的变化范围增加。

图8是流程图,显示了根据图2所示的第一个实施例由用于数据块接收控制的ECU 10的接收元件11执行的过程。在步骤S201中,判断要进行的过程的周期是否是第一个周期。如果是,跳过步骤S202。如果要进行的过程的周期是第二或随后的周期,过程执行步骤S202。在第一个周期中,没有发出一个传输完成信号,因为仍未接收到要写入ROM 16的数据块。因此,该过程跳过步骤S202。在第一个周期中,接收缓冲区12是空的。

在步骤S202中,判断是否已经发出了传输完成信号。换句话来说,判断在前一个周期中接收的数据块是否已经传输给了写缓冲区14。如果该传输已经完成,则表示在接收缓冲区12中有空闲空间。过程进行到步骤S203,其中将发送许可信号发送给重写装置20。在步骤S204中,从重写装置20接收一个数据块并将接收的数据块存储在接收缓冲区12。如果在步骤S202中判断仍没有发出传输完成信号,则表示在接收缓冲区中没有空闲空间,该过程退出程序。

因此,根据第一个实施例,传输完成信号使得ECU 10可以判断接收缓冲区12中是否有空闲空间。如果它判断在接收缓冲区中有空闲空间,ECU 10请求重写装置20发送一个数据块以开始接收数据块。

图9是流程图,显示了根据图3所示的第二个实施例由用于数据块的接收控制的ECU 10的接收部分11执行的过程。

在步骤S251中,判断是否已经从重写装置20接收到了一个写请求信号。如果没有接收到写请求信号,该过程退出程序。如果接收到了写信号,判断在接收缓冲区12中是否有空闲空间(S252)。如果没有空闲空间,发送给重写装置20一个拒绝信号(S253)。如果有空闲空间,发送给重写装置20一个发送许可信号(S254)。

在步骤S225,接收从重写装置20发送的数据块并存储在接收缓冲区12中。该过程进行到步骤S256,其中向重写装置20发送一个接收完成信号。

因此,根据第二个实施例,响应于来自重写装置20的写请求,检查接收缓冲区12中的空闲空间。当判断出在接收缓冲区中有空闲空间时,ECU请求重写装置20发送一个数据块并开始接收该数据块。

图10是用于数据块的写控制过程的流程图,其中至少提供了一个写缓冲区和至少一个接收缓冲区(参考图4到6),通过传输元件13和写元件15执行。

在步骤S301中,判断存储在第一个缓冲区中的数据块是否是在第一个周期内接收的数据块。如果是,过程进行到步骤S303。如果不是,过程进行到步骤S302。如果存储在第一个缓冲区中的数据块是在第一个周期内接收的数据块,则不发出写完成信号,因为仍未将数据块写入ROM16中。因此,这种情况下,跳过步骤S302。

在步骤S302中,判断是否已为前一个周期中接收的数据块发出了写完成信号。如果没有发出写完成信号,则表示写数据块仍未结束,该过程退出程序。如果已经发出了写完成信号,读出存储在接收缓冲区12中的当前周期的数据块并存储在写缓冲区14(S303)中。在步骤S304中,从接收缓冲区12中擦除在步骤S303中传输的数据块,在接收缓冲区12中产生空闲空间。在步骤S350中,发出传输完成信号。

在步骤S306中,读出传输给写缓冲区14的数据块并写入ROM 16中。如果完成将数据块写入ROM 16,从接收缓冲区12中擦除在步骤S306中读出的数据块,在写缓冲区14中产生了空闲空间(S307)。过程进行到步骤S308,其中发出写完成信号。

图10中所示的写控制可应用于图8和9中所示的接收控制。然而,图9中所示的接收控制没有请求图10中所示的写控制来发送如步骤S305所示的传输完成信号。

图11是一个数据块的写控制过程的流程图,其中在接收缓冲区和写缓冲区之间设置了一个中间缓冲区(参考图7),由传输元件13和写元件15来执行该中间缓冲区。

在步骤S351,判断第一个缓冲区中存储的数据块是否是在第一个周期内接收的数据块。如果是,过程进行到步骤S353。如果不是,过程进行到步骤S352。

在步骤S352,判断是否已经发出了第二个传输完成信号。当完成从中间缓冲区向写缓冲区的数据块传输时,将要发出第二个传输完成信号。如果没有发出第二个传输完成信号,则表示中间缓冲区中没有产生空闲空间,该过程退出程序。如果第二个传输完成信号已经发出,读出存储在接收缓冲区12中的数据块并存储在中间缓冲区(S353)中。在步骤S354,从接收缓冲区12中擦除在步骤S353中传输的数据块,接收缓冲区12中产生了空闲空间。在步骤S355,发出传输完成信号。

在步骤S356,判断存储在中间缓冲区中的数据块是否是在第一个周期内接收的数据块。如果是,则过程进行到步骤S358,如果不是,过程进行到步骤S357。

在步骤S357,判断是否已经发出一个写完成信号。如果没有发出写完成信号,则表示写入还没有完成且在写缓冲区14中没有空闲空间,过程退出程序。如果已经发出了写完成信号,读出存储在中间缓冲区中的数据块并存储在写缓冲区14中(S358)。在步骤S359,从中间缓冲区擦除在步骤S358中传输的数据块,中间缓冲区中产生了空闲空间。在步骤S360中,发出第二个传输完成信号。

过程进行到步骤S361,其中读出传输到写缓冲区14中的数据块并写入ROM 16。如果将数据块写入ROM 16结束,从写缓冲区14中擦除在步骤S361中读出的数据块(S362)。过程进行到步骤S363,其中发出一个写完成信号。

图11所示的写控制可应用于图8和9所示的接收控制。然而,图9所示的接收控制没有请求写控制发出如图11中的步骤S355所示的传输完成信号。

因此,用来接收数据块以存储在接收缓冲区中的过程和用来传输另一个数据块到写缓冲区中以写入ROM中的过程是并行执行的。结果是,减少了重写时间降。

在上述的实施例中,当完成从接收缓冲区向写缓冲区传输数据块时,从接收缓冲区中擦除该数据块。当完成将数据块写入ROM中时,也从写缓冲区中擦除该数据块。然而,当接收缓冲区和写缓冲区能够存储多个数据块时,每当传输和写操作完成时,不必执行这种擦除操作。只要在完成传输和写操作时,有足够的空闲空间来存储至少一个数据块,擦除操作可以在任一合适的时间执行。例如,擦除操作可以以先进先出的方式执行。作为例子,如果接收缓冲区可以存储5个数据块,依次接收数据块1到5并传输到写缓冲区。当数据块5已经传输到写缓冲区中时,从接收缓冲区12中擦除最早的数据块1,接收缓冲区12中产生了空闲空间。相似的方式可应用于写缓冲区。当然,这种先进先出方式可以应用于中间缓冲区。

此外,在图4到6中所示的例子中,当前一个周期的数据块正在写入ROM中时,接收当前周期的数据块。然而,如果接收缓冲区和/或写缓冲区能够存储多个数据块,当前一个周期的数据块正在写入ROM中时,可以接收下一个或随后的周期的数据块。虽然按照数据块的顺序来执行接收操作和写操作,在一特定周期内数据块的接收操作可以和在任一周期内的数据块的写操作并行执行。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号