JP2005115614A - Data processor and method - Google Patents
Data processor and method Download PDFInfo
- Publication number
- JP2005115614A JP2005115614A JP2003348286A JP2003348286A JP2005115614A JP 2005115614 A JP2005115614 A JP 2005115614A JP 2003348286 A JP2003348286 A JP 2003348286A JP 2003348286 A JP2003348286 A JP 2003348286A JP 2005115614 A JP2005115614 A JP 2005115614A
- Authority
- JP
- Japan
- Prior art keywords
- data
- update
- storage area
- program
- updating
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
Description
本発明は、データの更新処理を行なうためのデータ処理装置およびデータ処理方法に関するものである。 The present invention relates to a data processing apparatus and a data processing method for performing data update processing.
電気的に書き換え可能であって、電源を切った後でもデータの保持が可能な不揮発性メモリとして、EEPROMやフラッシュメモリ等が知られている。
特にフラッシュメモリは、高集積化が可能であるため、大容量のデータを格納でき、またオンボード上での書き換えも可能であることから、広範な用途に利用されている。たとえば、頻繁にアプリケーションプログラムをバージョンアップ(更新)する用途では、そのアプリケーションプログラムを通常オンボードでの書き換えが難しいCPUに搭載されたROM等に書き込まずに、フラッシュメモリ上に格納し、バージョンアップに応じて、アプリケーションプログラムを通信装置によって書き換える(更新する)ことが行われている。
その際、RAMのように単にメモリに対してアクセスするだけではデータの更新ができず、専用の書き込みフロー(データ更新モード)が必要となる。
As a non-volatile memory that can be electrically rewritten and can retain data even after the power is turned off, an EEPROM, a flash memory, or the like is known.
In particular, a flash memory can be highly integrated, can store a large amount of data, and can be rewritten on an on-board. For example, in applications where application programs are frequently upgraded (updated), the application programs are usually stored on flash memory instead of being written to a ROM or the like mounted on a CPU that is difficult to rewrite on-board. In response, the application program is rewritten (updated) by the communication device.
At that time, the data cannot be updated simply by accessing the memory as in the RAM, and a dedicated write flow (data update mode) is required.
しかし、受信したデータに基づいて、フラッシュメモリやEEPROM上のデータを書き換えている間に、メモリが搭載されている機器の電源が遮断し、または、電源ラインに重畳したサージ電圧の影響によりリセットがかかると、メモリ上でデータは破壊される可能性があり、一度破壊されると再度当該機器の電源を立ち上げてリセットをかけても、メモリ上のデータが回復されないという問題があった。
また、更新するデータが通常使用するアプリケーションプログラムであって、更新後にバグ等があるために正常動作しない場合には、そのアプリケーションプログラムを更新するためのデータ更新モードに入れないときがあり、最悪の場合、フラッシュメモリを作成しなおさなければならなかった。
However, while the data on the flash memory or EEPROM is being rewritten based on the received data, the power supply of the device in which the memory is mounted is shut off or reset due to the surge voltage superimposed on the power supply line. In such a case, there is a possibility that the data on the memory may be destroyed. Once the data is destroyed, there is a problem that the data on the memory is not recovered even if the power of the device is turned on again and reset.
In addition, if the data to be updated is an application program that is normally used and does not operate normally due to bugs after the update, the data update mode for updating the application program may not be entered. If you had to recreate the flash memory.
したがって、本発明の目的は、更新中に、データ処理を規定するデータの更新が電源遮断などの要因で適切に終了しなかった場合に、次に上記データ処理を開始する際に、そのデータ処理の動作を保証することができるデータ処理装置およびその方法を提供することにある。 Therefore, an object of the present invention is to perform data processing when the data processing is started next time when the data processing that defines the data processing is not properly terminated due to a power interruption or the like. It is an object of the present invention to provide a data processing apparatus and method that can guarantee the operation of the above.
上記課題を解決するための本発明の第1の観点は、データ処理手段と、前記データ処理手段の処理を規定し更新対象となる第1のデータと、前記データ処理手段の更新処理を規定し更新対象とならない第2のデータと、更新状態データとを記憶する記憶手段とを有し、前記データ処理手段は、前記更新処理が行われている期間内に更新中を示し、それ以外の期間に非更新中を示すように前記記憶手段に記憶される前記更新状態データを設定し、前記第1のデータで規定された処理の実行に先立って、前記記憶手段に記憶されている前記第2のデータで規定された前記更新処理を行って前記更新状態データを検証し、前記更新状態データが前記更新中を示す場合に、前記記憶手段に記憶されている前記第1のデータの前記更新処理を行い、前記更新状態データが前記非更新中を示す場合に、前記記憶手段に記憶されている前記第1のデータで規定された処理を実行する。 A first aspect of the present invention for solving the above-described problem is to define data processing means, first data to be updated by defining the processing of the data processing means, and updating processing of the data processing means. Storage means for storing second data not to be updated and update status data, wherein the data processing means indicates that the update process is being performed during the period during which the update process is being performed; The update state data stored in the storage unit is set so as to indicate non-updating, and the second stored in the storage unit prior to the execution of the process defined by the first data When the update state data is verified by performing the update process defined by the data, and the update state data indicates that the update is being performed, the update process of the first data stored in the storage unit Do the above If the new status data indicates in said non-updated, and executes processing was defined by the first data stored in said storage means.
好適には、前記記憶手段は、前記更新処理により前記第1のデータとなる第3のデータをさらに記憶し、前記データ処理手段は、前記記憶手段に記憶された前記第3のデータを検証してその正当性を確認すると前記更新状態データを更新中を示すように設定し、続いて、前記第3のデータで前記第1のデータを更新し、更新後の前記第1のデータと前記第2のデータとの一致を確認すると前記更新状態データを非更新中を示すように設定する。 Preferably, the storage means further stores third data to be the first data by the update process, and the data processing means verifies the third data stored in the storage means. When the validity is confirmed, the update status data is set to indicate that it is being updated, and then the first data is updated with the third data, and the updated first data and the first data are updated. When the coincidence with the data 2 is confirmed, the update state data is set to indicate that it is not being updated.
上記課題を解決するための本発明の第2の観点は、データ処理を規定する第1のデータを更新処理するデータ処理方法であって、前記更新処理が行われている期間内に更新中を示し、それ以外の期間に非更新中を示すように更新状態データを設定する第1の工程と、前記第1のデータで規定された処理の実行に先立って、前記更新処理の対象とならない第2のデータで規定された前記更新処理を行って前記更新状態データを検証する第2の工程と、前記第2の工程で前記更新状態データが前記更新中を示す場合に、前記第1のデータの前記更新処理を行う第3の工程と、前記第2の工程で前記更新状態データが前記非更新中を示す場合に、前記第1のデータで規定された処理を実行する第4の工程とを有する。 A second aspect of the present invention for solving the above problem is a data processing method for updating the first data defining data processing, wherein the update is being performed within the period during which the update processing is performed. A first step of setting update status data so as to indicate non-updating during other periods, and a first step that is not subject to the update process prior to execution of the process defined by the first data. A second step of verifying the update state data by performing the update process defined by the data of 2 and the first data when the update state data indicates that the update is being performed in the second step A third step of performing the update process, and a fourth step of executing the process defined by the first data when the update state data indicates the non-updating state in the second step. Have
更新中に、データ処理を規定するデータの更新が電源遮断などの要因で適切に終了しなかった場合に、次に上記データ処理を開始する際に、そのデータ処理の動作を保証することができるという利点がある。 If the update of data that defines data processing does not end properly due to factors such as power interruption during the update, the data processing operation can be guaranteed when the data processing starts next time. There is an advantage.
本発明の実施形態
以下、本発明の第1の実施形態について説明する。
図1は、本実施形態を説明するためのブロック図である。
データ処理装置1は、CPU10と、フラッシュメモリ20と、ディップスイッチ30とを有し、外部のデータ通信装置100と通信ラインにより接続され、データやプログラムを受信する。受信したこれらのデータやプログラムにより、データ処理装置1がすでに有しているデータやプログラムが更新される。
このようなデータやプログラムは、データ処理装置100から、たとえば放送電波を通して定期的に更新するために送出されるほか、データやプログラムの更新が成功しなかった場合等に、ユーザがデータ処理装置1を操作して発信する更新要求信号に応じて送出される。
以下の説明においては、更新のために受信するデータやプログラムを、更新用プログラムと言うことにする。また、データ処理装置1が後述する格納エリアA1に有しており、後述するデータ更新プログラムの実行により、更新用プログラムにとって代えられるデータやプログラムを、アプリケーションプログラムまたは単にプログラムと言うことにする。
受信する更新用プログラムには、データの正当性をデータ処理装置1によりチェックできるようなチェック用データ(たとえば、CRCやチェックサムのためのデータ)が含まれている。
Embodiments of the present invention will now be described a first embodiment of the present invention.
FIG. 1 is a block diagram for explaining the present embodiment.
The
Such data and programs are sent from the
In the following description, data and programs received for updating are referred to as updating programs. Data or a program that the
The received update program includes check data (for example, data for CRC or checksum) that allows the
なお、本発明のデータ処理手段は、本実施形態におけるCPU10に対応する。
本発明の第1のデータは、本実施形態におけるアプリケーションプログラムに対応する。
本発明の第2のデータは、本実施形態におけるデータ更新プログラムに対応する。
本発明の第3のデータは、本実施形態における更新用プログラムに対応する。
本発明の更新状態データは、本実施形態におけるデータ更新フラグに対応する。
本発明の記憶手段は、本実施形態におけるフラッシュメモリ20に対応する。
The data processing means of the present invention corresponds to the
The first data of the present invention corresponds to the application program in the present embodiment.
The second data of the present invention corresponds to the data update program in the present embodiment.
The third data of the present invention corresponds to the update program in the present embodiment.
The update status data of the present invention corresponds to the data update flag in the present embodiment.
The storage means of the present invention corresponds to the
CPU10は、データ処理装置1が起動すると、通常、後述するフラッシュメモリ20の格納エリアA2に格納されたプログラム群から実行し、その後、後述する格納エリアA1に格納されたアプリケーションプログラムを実行する。
CPU10には、通常動作モードとデータ更新モードの2つの制御モードを有しており、CPUの初期化(ハードウエア設定等)を行うブートプログラムの実行の後に、制御モードの判断を行う。
これらの制御モードの切替えは、データ通信装置100から送出される所定の専用コマンドをCPU10が受信する、または、ディップスイッチ30の操作を通してCPU10の専用ポートがアクティブ等にされ、そのポートのレベルをチェックすることにより行われる。
通常動作モードでは、更新対象であるアプリケーションプログラムを実行する。
データ更新モードは、通常動作中(通常動作モード)に実行されるアプリケーションプログラムを更新するための専用モードである。
When the
The
To switch these control modes, the
In the normal operation mode, the application program to be updated is executed.
The data update mode is a dedicated mode for updating an application program executed during normal operation (normal operation mode).
フラッシュメモリ20は、電気的書き換えが可能であり、また、電源を切った後でもデータの保持が可能な不揮発性メモリである。後述するように、格納エリアA1〜4の4つの領域から構成される。
ディップスイッチ30は、手動で操作できる機械式スイッチである。なお、これとは別にデータ処理装置100からの信号線、または、コマンド指示でも切替えられるようになっている。
ディップスイッチ30は、ON−OFFの1接点のスイッチであり、そのスイッチをONにすると、CPU10の専用ポートをアクティブにする等により、そのポートレベルがチェックされることで、データ更新モードに選択することが可能となるように構成されている。
The
The
The
図2は、本実施形態におけるフラッシュメモリ20の格納エリアを示すブロック図である。本実施の形態においては、図2に示すとおり、フラッシュメモリ20は大きく4つの格納エリアに分かれている。
ここで、各格納エリアは、フラッシュメモリ20の消去単位であるセクタ単位(たとえば、64Kbyte)で構成されている。
以下、4つの格納エリアについて、その構成を説明する。
FIG. 2 is a block diagram showing a storage area of the
Here, each storage area is constituted by a sector unit (for example, 64 Kbytes) which is an erase unit of the
Hereinafter, the configuration of the four storage areas will be described.
まず、格納エリアA1は、アプリケーションプログラムが格納されるエリアである。
CPU10は、ブートプログラム等を実行した後に、この格納エリアA1に格納されるアプリケーションプログラムにアクセスする。
格納エリアA1に格納されるプログラムが、本実施形態におけるデータ更新対象であり、データ通信装置100からデータ処理装置1が受信する更新用プログラムに基づいて、CPU10がデータ更新プログラムを実行することにより、データ更新を行う。
一般に、フラッシュメモリは、データのコピーを行うときは、消去単位であるセクタ毎に、まずコピー先のデータを消去してから新しいデータを書き込む必要があるので、本実施の形態においては、後述する格納エリアA3に一時的に格納した受信データを格納エリアA1にコピーするときには、格納エリアA1の内容をすべて消去(イレーズ)してから行われる。たとえば、格納エリアA1が3セクタで構成されている場合、3セクタ分すべてイレーズする。
First, the storage area A1 is an area where application programs are stored.
After executing the boot program and the like, the
The program stored in the storage area A1 is a data update target in the present embodiment, and the
Generally, when data is copied in a flash memory, it is necessary to first erase the copy destination data and then write new data for each sector as an erasing unit. When the received data temporarily stored in the storage area A3 is copied to the storage area A1, the contents of the storage area A1 are completely erased. For example, when the storage area A1 is composed of three sectors, all three sectors are erased.
格納エリアA2は、ハードウエアの設定等CPU10が動作するために必要な最低限の作業を司るブートプログラムと、データ更新が途中でフェイルした場合にCPU10のリセットによりデータ更新を完了させるリカバリープログラム(リカバリー処理)と、データ更新モードおよび通常動作モードのいずれかのモードであるかを判断するプログラム(制御モード判断プログラム)と、格納エリアA1のプログラムを更新するためのデータ更新プログラムが格納される。
ここで、これらのプログラムを格納エリアA2に格納する理由は、格納エリアA1の更新に失敗した場合には更新エリアA1のアプリケーションプログラムが破壊されている可能性が高く、このような場合に、データ更新モードに入ることができないとすれば、そのアプリケーションプログラムをもはや更新することができなくなるおそれがあるためである。したがって、データ更新モードに入るためのプログラム群を、データ更新対象である格納エリアA1と分離して配置する必要がある。
そうすることで、アプリケーションプログラムの更新に失敗した場合であっても、CPU10のリセットにより、制御モードが判断されるため、データ更新モードへ移行することが可能となる。
リカバリープログラムとデータ更新プログラムについては後述する。
The storage area A2 includes a boot program that manages the minimum work necessary for the
Here, the reason for storing these programs in the storage area A2 is that if the update of the storage area A1 fails, the application program in the update area A1 is highly likely to be destroyed. This is because if the update mode cannot be entered, the application program may no longer be updated. Therefore, it is necessary to arrange the program group for entering the data update mode separately from the storage area A1 that is the data update target.
By doing so, even if the update of the application program fails, the control mode is determined by resetting the
The recovery program and data update program will be described later.
格納エリアA3は、データ更新のためのワークエリアであり、本実施形態においては、データ通信装置100から受信した更新用プログラムを直接格納エリアA1に格納せず、一時的に、この格納エリアA3に保持する。
また、格納エリアA3は、格納エリアA1と同数のセクタで構成されている。たとえば、コピー元の格納エリアA1が3セクタで構成されていれば、コピー先の格納エリアA3も3セクタで構成される。
受信した更新用プログラムを格納エリアA1へコピーする場合は、コピー先である格納エリアA1のデータをすべて一括して消去(イレーズ)した後に、格納エリアA3の全データが一括してコピーされる。
The storage area A3 is a work area for data update. In the present embodiment, the update program received from the
The storage area A3 is composed of the same number of sectors as the storage area A1. For example, if the copy source storage area A1 is composed of three sectors, the copy destination storage area A3 is also composed of three sectors.
When copying the received update program to the storage area A1, all the data in the storage area A3 is copied in a lump after erasing all the data in the storage area A1 that is the copy destination.
格納エリアA4は、リカバリープログラムの実行に必要な後述するデータ更新フラグを格納する。格納エリアA4は、消去単位の1セクタで構成される。
但し、本実施形態においては、受信単位で1セクタにつき1フラグのデータ更新フラグを設定するので、受信する更新用プログラムがデータとプログラムの2種類のデータを含む場合は、格納エリアA4は2セクタで構成し、各受信単位(データ,プログラム)毎にそれぞれデータ更新フラグが設定される。
すなわち、格納エリアA1およびA3において、データとプログラムがそれぞれ3セクタずつの計6セクタ分存在する場合には、3セクタ分のデータと3セクタ分のプログラムのそれぞれに対して、各1フラグを設定するため、格納エリアA4は、計2セクタで構成される。
以下説明する本実施形態においては、プログラムのみを受信するための1セクタ1フラグの場合の例を示す。
このように、1セクタをすべて使用してデータ更新フラグを設定する理由は、データ更新フラグを変更する場合も消去単位であるセクタ単位でイレーズする必要があることから、セクタを部分的にデータ更新フラグのために割り当てる意味がないためである。
また、1セクタに複数のフラグを設定した場合には、セクタ内のどのフラグを変更した場合でも、そのセクタのイレーズ処理が必要であり、その際に電源遮断が起こった場合には各フラグデータの復旧が非常に困難となるが、1セクタに1フラグであれば、そのような電源遮断が起こった場合でも、容易に適切な処置を取ることが可能となる利点がある。
The storage area A4 stores a later-described data update flag necessary for executing the recovery program. The storage area A4 is composed of one sector as an erasing unit.
However, in this embodiment, since one data update flag is set for each sector in the reception unit, when the received update program includes two types of data, data and program, the storage area A4 has two sectors. The data update flag is set for each reception unit (data, program).
That is, in the storage areas A1 and A3, when there are 6 sectors of data and 3 programs each, 1 flag is set for each of 3 sectors of data and 3 sectors of program. Therefore, the storage area A4 is composed of a total of two sectors.
In the present embodiment described below, an example in the case of 1
As described above, the reason for setting the data update flag using all one sector is that even when the data update flag is changed, it is necessary to erase in units of sectors which are erasure units. This is because there is no meaning to assign for the flag.
In addition, when multiple flags are set for one sector, even if any flag in the sector is changed, the erase process for that sector is required. However, if one flag is used for one sector, there is an advantage that an appropriate measure can be easily taken even when such a power shutdown occurs.
上述したように、アプリケーションプログラムの更新が失敗する可能性を考慮して、データ更新対象である格納エリアA1と分離してブートプログラム等を配置させるため、図2に示すように、格納エリアA2は、格納エリアA1と別の物理領域が割り当てられている。したがって、格納エリアA2は、データ更新対象とはならない。
もちろん、格納エリアA2に格納するブートプログラム、リカバリープログラム、制御モード判断プログラムおよびデータ更新プログラムにバグがあれば、以降のデータ更新ができないおそれがあるので、これらのプログラムは十分にテストを行い、検証しておくことが前提となることは言うまでもない。
As described above, in consideration of the possibility that the update of the application program fails, the storage area A2 is arranged as shown in FIG. 2 in order to arrange the boot program and the like separately from the storage area A1 that is the data update target. A physical area different from the storage area A1 is allocated. Therefore, the storage area A2 is not a data update target.
Of course, if there are bugs in the boot program, recovery program, control mode determination program, and data update program stored in the storage area A2, there is a possibility that subsequent data update may not be possible. Needless to say, this is a prerequisite.
以下に、本実施形態におけるデータ処理装置1において、データ通信装置100から更新用プログラムを受信して、格納エリアA1に格納されるプログラムを更新するの動作について説明する。この動作は、格納エリアA2に格納されるデータ更新プログラムに基づいてCPU10により実行される。
Hereinafter, the operation of receiving the update program from the
図3は、データ更新モードにおけるデータ更新プログラムのフローチャートである。
以下に、図3のフローチャートの各ステップについて説明する。
FIG. 3 is a flowchart of the data update program in the data update mode.
Below, each step of the flowchart of FIG. 3 is demonstrated.
ステップST10:
まず、CPU10は、データ通信装置100から更新用プログラムの受信を開始する。
前述したように、更新用プログラムは、データ処理装置100から、たとえば放送電波を通して定期的に更新するために送出されるほか、更新用プログラムによる更新が成功しなかった場合等に、ユーザがデータ処理装置1を操作して発信する更新要求信号に応じて送出される。
データの受信は、CPU10に備えられた通信制御部の指示により、IICやRS23
2Cなどの通信インターフェースを備えた通信専用IC部(図示しない)を通して行われる。
なお、データ通信装置100からの受信動作が失敗した場合は、更新用プログラムが、データ処理装置100から、たとえば放送電波を通して定期的に更新するために送出されている場合は、CPU10は、次回の送出時に受信動作を行うものとする。また、たとえば、データ通信装置100は、ユーザがデータ処理装置1を操作して発信する更新要求信号に応じて再度更新用プログラムを送出する場合は、CPU10はこれを受信するものとする。
Step ST10:
First, the
As described above, the update program is sent from the
The data is received in accordance with an instruction from a communication control unit provided in the
This is done through a communication-dedicated IC unit (not shown) having a communication interface such as 2C.
When the reception operation from the
ステップST11:
ステップST10で行われた受信動作が最初の受信動作であるか否かが確認される。
一般にフラッシュメモリに格納されるデータの更新を行うためには、格納対象領域を消去(イレーズ)しなければならないため、以前に受信動作がなされてフラッシュメモリ20の格納エリアA3にデータが格納されている場合には、そのデータを消去する必要がある。
Step ST11:
It is confirmed whether or not the reception operation performed in step ST10 is the first reception operation.
In general, in order to update the data stored in the flash memory, the storage target area must be erased, so that the data is stored in the storage area A3 of the
ステップST12:
ステップST11において、今回のデータ受信が最初であることが確認された場合には、更新ワークエリアである格納エリアA3に格納されるデータを消去する(イレーズ処理)。データ通信装置100から一回に送られてくるデータサイズは、セクタサイズと同サイズではなく、通常はより小さい場合が多い。したがって、セクタ全部をイレーズすると、すでに受信してセクタに格納された分も含めて消去されるおそれがあるため、データ受信を最初に行なったときに、格納エリアA3をすべてイレーズ処理することとしている。
そして、ステップST11において、今回のデータ受信が最初でないことが確認された場合には、本ステップはスキップされる。
Step ST12:
If it is confirmed in step ST11 that the current data reception is the first, the data stored in the storage area A3, which is the update work area, is erased (erase processing). The size of data sent from the
If it is confirmed in step ST11 that the current data reception is not the first time, this step is skipped.
ステップST13:
次に、受信した更新用プログラムがフラッシュメモリ20の格納エリアA3(更新ワーク)に書き込まれる。
ステップST14:
受信した更新用プログラム(受信データ)のデータ量が大きい場合は、複数回に分けて
受信が行われる。したがって、受信データがまだ存在する場合には、ステップST10に戻り、以上のステップST10〜13のステップが繰返し行われる。
Step ST13:
Next, the received update program is written into the storage area A3 (update work) of the
Step ST14:
When the data amount of the received update program (received data) is large, reception is performed in a plurality of times. Therefore, if the received data still exists, the process returns to step ST10, and the above steps ST10 to ST13 are repeated.
ステップST15:
更新用プログラムをデータ処理装置100からすべて受信して、受信した更新用プログラム(受信データ)がすべて格納エリアA3に格納されると、その受信データが正当であるか否かがチェックされる。受信データには、たとえばCRCやチェックサムなどの正当性の確認のために必要なデータが含まれている。
たとえば、送信側であるデータ通信装置100が送信データの一部に基づいてCRCやチェックサムの演算を行ない、その演算結果を送信データに付加し、一方、受信側のCPU10は、同様に受信データの一部に基づいてCRCやチェックサムの演算を行なった結果、受信データに付加された演算結果と一致した場合は、受信データが正当であると判断する。
その結果、受信データが正当でないと判断された場合は、エラー処理が行われる。エラー処理において、チェックサム計算プログラム等が正しいか否か等分析が行われる。
Step ST15:
When all the update programs are received from the
For example, the
As a result, if it is determined that the received data is not valid, error processing is performed. In error processing, an analysis is performed to determine whether the checksum calculation program is correct.
ステップST16:
ステップST15において、受信した更新用プログラム(受信データ)が正当であると判断された場合は、格納エリアA4に格納されるデータ更新フラグをセットする。
データ更新フラグは2値をとり、本実施形態においては、格納エリアA1のデータ更新中でない場合には「0」を、データ更新中であって、格納エリアA3に正当な受信データが格納された場合は「1」を示す。したがって、受信動作を行っていない場合、または、受信動作を行っている場合であっても、すべての正当な受信データが格納エリアA3に格納されるまでは、データ更新フラグは「0」であり、すべての受信データが格納エリアA3に格納され、受信データの正当性が確認されて、はじめてデータ更新フラグは「1」にセットされる。
本ステップにおいては、データ更新フラグは「1」にセットされる。
Step ST16:
If it is determined in step ST15 that the received update program (received data) is valid, a data update flag stored in the storage area A4 is set.
The data update flag takes a binary value. In this embodiment, when the data in the storage area A1 is not being updated, “0” is displayed, and data is being updated and valid received data is stored in the storage area A3. In this case, “1” is indicated. Therefore, even when the reception operation is not performed or the reception operation is performed, the data update flag is “0” until all the valid reception data is stored in the storage area A3. The data update flag is set to “1” only after all the received data is stored in the storage area A3 and the validity of the received data is confirmed.
In this step, the data update flag is set to “1”.
ステップST17:
次に、更新対象である格納エリアA1(更新エリア)に受信データを転送する前に、格納エリアA1のデータ内容を消去する(イレーズ処理)。上述したとおり、一般にフラッシュメモリに格納されるデータの更新を行うためには、格納対象領域を消去(イレーズ)しなければならないためである。
ステップST18:
格納対象エリアである格納エリアA1がイレーズ処理されると、ワークエリアである格納エリアA3に一時的に格納した受信データを、格納エリアA1に転送する(コピー処理)。
Step ST17:
Next, before transferring the received data to the storage area A1 (update area) to be updated, the data contents in the storage area A1 are erased (erase processing). This is because, as described above, in order to update data stored in the flash memory in general, it is necessary to erase (erase) the storage target area.
Step ST18:
When the storage area A1 as the storage target area is erased, the reception data temporarily stored in the storage area A3 as the work area is transferred to the storage area A1 (copy process).
ステップST19:
格納エリアA3に格納するすべての受信データを格納エリアA1に転送する処理(コピー)が終了すると、転送処理が正しく実行されたか否かを確認するために、格納エリアA3の受信データと格納エリアA1の転送データが一致するか否かを比較する。
ステップST20:
ステップST19において、受信データと転送データが一致しない場合は、エラー処理が行われる。エラー処理においては、本ステップに係るデータ更新プログラムのバグ修正等が検討される。
Step ST19:
When the process (copy) for transferring all the received data stored in the storage area A3 to the storage area A1 is completed, the received data in the storage area A3 and the storage area A1 are checked in order to confirm whether the transfer process has been executed correctly. It is compared whether or not the transfer data matches.
Step ST20:
In step ST19, if the received data does not match the transferred data, error processing is performed. In error processing, bug correction of the data update program according to this step is considered.
ステップST21:
ステップST20において、受信データと転送データが一致する場合は、受信データが格納エリアA1に正しく転送できたと判断できるので、データ更新フラグを「0」(格納エリアA1は更新中でないことを示す)として、これによりデータの更新が終了する(ステップST22)。
Step ST21:
If the received data and the transferred data match in step ST20, it can be determined that the received data has been correctly transferred to the storage area A1, so the data update flag is set to “0” (indicating that the storage area A1 is not being updated). Thus, the data update is completed (step ST22).
ここで、ステップST16において、いったん受信データの正当性が確認されてデータ更新フラグが「1」にセットされた後のデータ更新中に、たとえばデータ処理装置1の電源電圧の遮断によりCPU10にリセットが発生した場合は、データ更新フラグは「1」が維持される。これにより、後述するリセット後のリカバリープログラム(リカバリー処理)の実行により、データ更新フラグが「1」であることが認識されるので、正当性が確認された受信データに基づいて、データの更新完了が可能となる。
Here, in step ST16, during the data update after the validity of the received data is once confirmed and the data update flag is set to “1”, the
以上、データ更新プログラムに基づいて、フラッシュメモリ20のデータを更新するフローを説明した。
The flow for updating the data in the
次に、図4を用いて、データ処理装置1の電源電圧の遮断等よりCPU10にリセットが発生した場合のデータ処理装置1のCPU10の動作について説明する。
Next, the operation of the
ステップST30:
データ処理装置1の起動または電源電圧の遮断により、データ処理装置1のCPU10にリセットが発生する。
ステップST31:
リセット後、CPU10は、フラッシュメモリ20の格納エリアA2に格納されるブートプログラムから実行する。そして、格納エリアA1に格納するアプリケーションプログラムは、ブートプログラムをはじめとするリカバリー処理、制御モード判断の後に、実行される。
Step ST30:
When the
Step ST31:
After the reset, the
ブートプログラムは、CPU10の初期化、ハードウエアの設定などCPU10が機能するための最低限の設定のみを行う。これにより、データ更新モードに移行させることが可能となる。
本実施形態においては、ブートプログラムを更新対象であるアプリケーションプログラムを格納する格納エリアA1と分離し、非更新対象である格納エリアA2に配置させているので、更新に失敗して格納エリアA1のアプリケーションプログラムが破壊された場合であっても、CPU10のリセット後は、ブートプログラムの実行により、制御モードをデータ更新モードに移行させることが可能となる。
なお、本ステップの内容は、制御モードが通常動作モードであるか、データ更新モードであるかに関わらず、実行される。
The boot program performs only minimum settings for the
In the present embodiment, the boot program is separated from the storage area A1 for storing the application program to be updated, and is arranged in the storage area A2 to be non-updated. Even when the program is destroyed, after the
The contents of this step are executed regardless of whether the control mode is the normal operation mode or the data update mode.
ステップST32:
次に、格納エリアA4に格納されるデータ更新フラグ(1:格納エリアA3の受信データ正当,0:格納エリアA1が更新中でない)がチェックされる。
データ更新フラグは、すでに述べたとおり、データ処理装置100から受信したデータ(更新用プログラム)を格納エリアA3(ワークエリア)に一時的に保持した後に、受信データの正当性があることが確認されてから「1」にセットされ、格納対象である格納エリアA1に受信データが格納されてワークエリアのデータと一致していることが確認されて、「0」に戻される。
したがって、CPU10のリセット後に、データ更新フラグがまだ「1」にセットされているということは、データ更新中の電源遮断等により、前回のデータ更新が正しく終了しなかったことを意味しているので、次のステップにおいてリカバリー処理が実行される。
Step ST32:
Next, the data update flag stored in storage area A4 (1: received data valid in storage area A3, 0: storage area A1 is not being updated) is checked.
As described above, the data update flag is confirmed to be valid for the received data after temporarily storing the data (update program) received from the
Therefore, the fact that the data update flag is still set to “1” after the reset of the
ステップST33:
ステップST32において、データ更新フラグが「1」にセットされている場合には、リカバリー処理が行われる。
図2に示すとおり、リカバリー処理のためのリカバリープログラムは、更新対象ではない格納エリアA2に格納されているので、格納エリアA1に格納される前回の更新データが完全でない場合でも、実行が可能である。
リカバリー処理は、データ更新プログラムの実行の際に行われるステップST17〜21までの各処理が行われる。すなわち、以下の処理が順に行われる。
Step ST33:
In step ST32, when the data update flag is set to “1”, recovery processing is performed.
As shown in FIG. 2, since the recovery program for the recovery process is stored in the storage area A2 that is not the update target, it can be executed even if the previous update data stored in the storage area A1 is not complete. is there.
In the recovery process, each process from steps ST17 to ST21 performed when the data update program is executed is performed. That is, the following processing is performed in order.
(1)イレーズ処理
更新対象である格納エリアA1に受信データを転送する前に、格納エリアA1のデータ内容を消去する(イレーズ処理)。
(2)コピー処理
格納対象エリアである格納エリアA1のイレーズ処理されると、ワークエリアである格納エリアA3に一時的に格納した受信データの転送処理を行う(コピー処理)。
(3)データの同一性確認処理
格納エリアA3に格納する受信データについて、格納エリアA1への転送処理が終了すると、転送処理が正しく実行されたか否かを確認するために、格納エリアA3と格納エリアA1のデータが一致するか否かを比較する。
(4)データ更新フラグのセット
ステップST19において、受信データと転送データが一致する場合は、受信データが格納エリアA1に正しく転送できたと判断できるので、データ更新フラグを「0」(格納エリアA1は更新中でないことを示す)とする。これにより、データの更新が完了する。
(1) Erase Process Before receiving data is transferred to the storage area A1 to be updated, the data contents in the storage area A1 are erased (erase process).
(2) Copying process When the erasing process of the storage area A1, which is the storage target area, is performed, the received data temporarily stored in the storage area A3, which is the work area, is transferred (copying process).
(3) Data identity confirmation process When the transfer process to the storage area A1 is completed for the received data stored in the storage area A3, the data is stored in the storage area A3 in order to confirm whether or not the transfer process has been executed correctly. It is compared whether the data in area A1 match.
(4) Setting of data update flag In step ST19, if the received data and the transfer data match, it can be determined that the received data has been correctly transferred to the storage area A1, so the data update flag is set to “0” (the storage area A1 is Indicates that the update is not in progress. Thereby, the update of data is completed.
前述したように、以上の処理は、データ更新モードであるか、または通常動作モードであるかにかかわらず、CPU10のリセットにより常に実行される。したがって、データ更新中に電源遮断等によりデータの更新が完全になされず、格納エリアA1のアプリケーションプログラムが破壊されてしまった場合であっても、その後のCPU10のリセットにより、データ更新フラグをチェックして、正当性が確認された格納エリアA3に格納された受信データ(更新用プログラム)に基づいて、確実にデータ更新を完了させることが可能となる。
本ステップの動作をデータ処理装置1のユーザの観点から見ると、ユーザは、リカバリー処理のために特別な操作を行う必要はなく、またリカバリー処理が行われたことを意識することもない。
As described above, the above processing is always executed by resetting the
From the viewpoint of the user of the
また、データ更新フラグがフラグの更新中に、電源遮断等によりCPU10のリセットが発生した場合でも、データ更新フラグは2値(1または0)で構成しているため、フラッシュデータ20がハードウエアとして破壊されていない限り、「1」または「0」の値をとることになる。したがって、上述したリカバリー処理により、データ更新フラグが「1」であれば、データ更新が完了される。データ更新フラグが「0」の場合、格納エリアA1に正当な受信データが完全なコピーされた後にはじめて「0」に戻るように構成したため、格納エリアA1には、少なくとも更新前または更新後のアプリケーションプログラムが格納されているので、後述する通常動作モードにおいてアプリケーションプログラムを実行することが可能となる。
Even if the
ステップST34:
次に、制御モードが判断される。
制御モードには、すでに述べたとおり、格納エリアA1に格納されるアプリケーションプログラムを実行する通常動作モードと、そのアプリケーションプログラムのデータ更新を行うためのデータ更新モードとの2つのモードがある。
制御モードがデータ更新モードであると判断した場合には、図3において説明したステップST10〜22のデータ更新処理が行われる。
ステップST35:
ステップST34において、制御モードが通常動作モードであると判断した場合には、格納エリアA1に格納されたアプリケーションプログラムを実行する。
Step ST34:
Next, the control mode is determined.
As described above, the control mode includes two modes: a normal operation mode for executing an application program stored in the storage area A1, and a data update mode for updating data of the application program.
When it is determined that the control mode is the data update mode, the data update process in steps ST10 to ST22 described in FIG. 3 is performed.
Step ST35:
If it is determined in step ST34 that the control mode is the normal operation mode, the application program stored in the storage area A1 is executed.
以上、図3および4のフローチャートを用いて説明したように、本実施形態におけるフラッシュメモリ20は、通常モードで実行されるアプリケーションプログラムを格納する格納エリアA1(更新対象エリア)と、受信した更新用プログラムが格納され、データ更新のための一時的ワークエリアとしての格納エリアA3と、CPUの初期化等のために最低限必要なブートプログラムやリカバリープログラム、制御モード判断プログラム、およびデータ更新プログラム、を格納する格納エリアA2(非更新対象エリア)と、データ更新状況を管理するデータ更新フラグをセクタ単位で格納する格納エリアA4と、を備え、更新対象である格納エリアA1と非更新対象である格納エリアA2を、フラッシュメモリ20のそれぞれ異なる物理領域に格納するように構成し、格納エリアA2に格納するデータ更新プログラムが実行されることにより、データ処理装置100から受信した受信データをワークエリア(格納エリアA3)に一時的に保持し、正当性を検証した後にデータ更新フラグを「1」にセットして、格納対象エリア(格納エリアA1)に転送し、完全に転送した時点でデータ更新フラグを「0」に戻す。
そして、CPU10のリセット後は、アプリケーションプログラムを実行する前に、ブートプログラムに続いて実行されるリカバリー処理において、常にデータ更新フラグがチェックされ、データ更新フラグが「1」の場合は、前回のデータ更新に失敗した可能性があると判断して、格納エリアA3に格納され、正当性が確認された受信データに基づいて更新動作を完了させるので、以下の効果を得ることができる。
As described above with reference to the flowcharts of FIGS. 3 and 4, the
After the
すなわち、電源遮断等により受信データによるアプリケーションプログラムの更新が途中で中断されて、アプリケーションプログラムが破壊された場合であっても、その後のCPU10のリセットにより、更新非対象エリアに格納されるブートプログラムによりCPU10の初期化が行われ、さらにリカバリー処理が実行されることにより、ワークエリアの受信データに基づいて、データの更新を完了させるので、電源が遮断された場合でも確実に更新動作を完了させることが可能となる。そして、この更新動作完了は、ユーザが意識することなく、また、特別な操作をすることなく行われるので、データ更新の利便性が高い。
さらに、1セクタをすべて使用してデータ更新フラグ(1フラグ)を設定しているので、データ更新フラグの信頼性が高い。すなわち、1セクタに複数のフラグを設定した場合には、セクタ内のどのフラグを変更した場合でも、そのセクタのイレーズ処理が必要であり、その際に電源遮断が起こった場合には各フラグデータの復旧が非常に困難となるが、1セクタに1フラグであれば、そのような電源遮断が起こった場合でも、容易に適切な処置を取ることが可能となる。
また、正常に受信動作が完了したアプリケーションプログラムにバグ等があり、正常にアプリケーションプログラムが動作しない場合でも、CPU10は、アプリケーションプログラムを実行する前に、制御モードを判断するので、データ更新プログラムを実行することにより、問題のあるアプリケーションプログラムを確実に更新させることもできる。
That is, even when the application program update by the received data is interrupted in the middle due to power interruption or the like, and the application program is destroyed, the
Furthermore, since the data update flag (1 flag) is set using all one sector, the reliability of the data update flag is high. That is, when a plurality of flags are set in one sector, any flag in the sector needs to be erased, and if the power is cut off at that time, each flag data However, if one flag is used for one sector, an appropriate measure can be easily taken even if such a power shutdown occurs.
Even if there is a bug in the application program that has been successfully received, and the application program does not operate normally, the
本発明の実施形態は上述した内容に拘泥されることなく、様々な変更が可能である。
たとえば、本実施形態におけるフラッシュメモリは、オンボードでデータの更新が可能な不揮発性メモリであればよく、EEPROM等でもよい。
また、更新対象とならない格納エリアA2に格納されるプログラム群は、必ずしもフラッシュメモリ20の中に存在する必要はなく、データ処理装置1の中に別に設けられるフラッシュメモリ等(図示しない)に格納するようにしてもよい。
また、制御モードを移行させるためには、ディップスイッチ30でなくても、ハードウエアとしてCPUに直接入力されるデータ通信装置100からの信号線でもよい。
Various modifications can be made to the embodiment of the present invention without being limited to the above-described contents.
For example, the flash memory in this embodiment may be a non-volatile memory that can update data on board, and may be an EEPROM or the like.
In addition, the program group stored in the storage area A2 not to be updated does not necessarily exist in the
Further, in order to shift the control mode, the signal line from the
1…データ処理装置、10…CPU、20…フラッシュメモリ、30…ディップスイッチ、100…データ通信装置
DESCRIPTION OF
Claims (5)
前記データ処理手段の処理を規定し更新対象となる第1のデータと、前記データ処理手段の更新処理を規定し更新対象とならない第2のデータと、更新状態データとを記憶する記憶手段と
を有し、
前記データ処理手段は、
前記更新処理が行われている期間内に更新中を示し、それ以外の期間に非更新中を示すように前記記憶手段に記憶される前記更新状態データを設定し、
前記第1のデータで規定された処理の実行に先立って、前記記憶手段に記憶されている前記第2のデータで規定された前記更新処理を行って前記更新状態データを検証し、
前記更新状態データが前記更新中を示す場合に、前記記憶手段に記憶されている前記第1のデータの前記更新処理を行い、
前記更新状態データが前記非更新中を示す場合に、前記記憶手段に記憶されている前記第1のデータで規定された処理を実行する
データ処理装置。 Data processing means;
Storage means for storing first data to be updated by defining the processing of the data processing means, second data not to be updated by defining update processing of the data processing means, and update status data Have
The data processing means includes
The update state data stored in the storage means is set so as to indicate that the update process is being performed within a period during which the update process is being performed, and non-update is being performed during other periods.
Prior to the execution of the process defined by the first data, the update process defined by the second data stored in the storage means is performed to verify the update state data,
When the update status data indicates that the update is being performed, the update process of the first data stored in the storage unit is performed,
A data processing device that executes a process defined by the first data stored in the storage means when the update status data indicates that the update is not being performed.
前記データ処理手段は、
前記記憶手段に記憶された前記第3のデータを検証してその正当性を確認すると前記更新状態データを更新中を示すように設定し、続いて、前記第3のデータで前記第1のデータを更新し、更新後の前記第1のデータと前記第2のデータとの一致を確認すると前記更新状態データを非更新中を示すように設定する
請求項1に記載のデータ処理装置。 The storage means further stores third data to be the first data by the update process,
The data processing means includes
When the third data stored in the storage means is verified and its validity is confirmed, the update status data is set to indicate that updating is in progress, and then the first data is set with the third data. The data processing apparatus according to claim 1, wherein the update state data is set to indicate non-updating when confirming a match between the updated first data and the second data.
をさらに有し、
前記データ処理部は、
起動時に、前記制御モード選択部によって前記更新モードが選択されていることを条件に前記更新処理を行う
請求項1記載のデータ処理装置。 A control mode selection unit that selects one of an update mode for performing the update process and a non-update mode for which the update process is not performed;
The data processing unit
The data processing apparatus according to claim 1, wherein the update process is performed on condition that the update mode is selected by the control mode selection unit at startup.
前記更新処理が行われている期間内に更新中を示し、それ以外の期間に非更新中を示すように更新状態データを設定する第1の工程と、
前記第1のデータで規定された処理の実行に先立って、前記更新処理の対象とならない第2のデータで規定された前記更新処理を行って前記更新状態データを検証する第2の工程と、
前記第2の工程で前記更新状態データが前記更新中を示す場合に、前記第1のデータの前記更新処理を行う第3の工程と、
前記第2の工程で前記更新状態データが前記非更新中を示す場合に、前記第1のデータで規定された処理を実行する第4の工程と
を有するデータ処理方法。 A data processing method for updating first data defining data processing,
A first step of setting update state data to indicate that updating is being performed within a period during which the update process is being performed, and to indicate non-updating during other periods;
Prior to execution of the process defined by the first data, a second step of performing the update process defined by the second data not subject to the update process and verifying the update state data;
A third step of performing the update process of the first data when the update state data indicates that the update is being performed in the second step;
A data processing method comprising: a fourth step of executing a process defined by the first data when the update state data indicates the non-updating in the second step.
前記更新処理により前記第1のデータとなる第2のデータを検証してその正当性を確認すると前記更新状態データを更新中を示すように設定し、更新後の前記第1のデータと前記第2のデータとの一致を確認すると、前記更新状態データを非更新中を示すように設定する
請求項4に記載のデータ処理方法。
The first step includes
When the second data to be the first data is verified by the update process and its validity is confirmed, the update status data is set to indicate updating, and the updated first data and the first data are updated. 5. The data processing method according to claim 4, wherein when the coincidence with the data of 2 is confirmed, the update state data is set to indicate non-updating.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003348286A JP2005115614A (en) | 2003-10-07 | 2003-10-07 | Data processor and method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003348286A JP2005115614A (en) | 2003-10-07 | 2003-10-07 | Data processor and method |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005115614A true JP2005115614A (en) | 2005-04-28 |
Family
ID=34540533
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003348286A Pending JP2005115614A (en) | 2003-10-07 | 2003-10-07 | Data processor and method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005115614A (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007115065A (en) * | 2005-10-21 | 2007-05-10 | Meidensha Corp | Program rewriting method for digital terminal |
JP2007115066A (en) * | 2005-10-21 | 2007-05-10 | Meidensha Corp | Boot program rewriting method for digital terminal |
JP2020106888A (en) * | 2018-12-26 | 2020-07-09 | 株式会社Subaru | Data verification apparatus |
-
2003
- 2003-10-07 JP JP2003348286A patent/JP2005115614A/en active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007115065A (en) * | 2005-10-21 | 2007-05-10 | Meidensha Corp | Program rewriting method for digital terminal |
JP2007115066A (en) * | 2005-10-21 | 2007-05-10 | Meidensha Corp | Boot program rewriting method for digital terminal |
JP2020106888A (en) * | 2018-12-26 | 2020-07-09 | 株式会社Subaru | Data verification apparatus |
JP7145749B2 (en) | 2018-12-26 | 2022-10-03 | 株式会社Subaru | data verification device |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110231952B (en) | ECU program backup and cyclic upgrade control method and device | |
US9678761B2 (en) | Technology for selectively updating memory-resident images | |
US6442067B1 (en) | Recovery ROM for array controllers | |
US5987605A (en) | Methods and apparatus for dual-boot memory selection, update, and recovery in a programmable device | |
TWI515660B (en) | Firmware variable update method | |
US7206971B2 (en) | Selectable and updatable computer boot memory | |
US6317827B1 (en) | Method and apparatus for fault tolerant flash upgrading | |
US6757838B1 (en) | Hardware independent implementation of computer system BIOS recovery | |
US8595716B2 (en) | Failsafe firmware updates | |
US6601132B2 (en) | Nonvolatile memory and method of writing data thereto | |
KR101427755B1 (en) | Device and method for firmware upgrade using usb | |
US7558949B2 (en) | Data processing apparatus and control method for verifying that version codes in selected boot sector and main sector match | |
US7017038B1 (en) | Method and system to provide first boot to a CPU system | |
WO2020062887A1 (en) | Firmware upgrading method and system based on flash micro-controller, and flash micro-controller | |
US20080082814A1 (en) | Electronic system with nand flash memory storing boot code and highly reliable boot up method | |
WO2012071945A1 (en) | Method and device for backing up and upgrading bootstrap | |
KR20010072128A (en) | Method and apparatus for updating a nonvolatile memory | |
JP2008293555A (en) | Semiconductor integrated circuit device and memory control method | |
JP2007287022A (en) | Information storage method for electronic control device | |
US20080098388A1 (en) | Safe Flashing | |
JP2001043101A (en) | Method and device for changing memory contents of controller | |
US7428635B2 (en) | Method of writing non-volatile memory that avoids corrupting the vital initialization code | |
JP2005115614A (en) | Data processor and method | |
JP6575157B2 (en) | Firmware download method and firmware embedded device | |
JP2002175193A (en) | Device and method for rewriting program |