JP7232062B2 - 電子制御装置及びプログラム更新方法 - Google Patents

電子制御装置及びプログラム更新方法 Download PDF

Info

Publication number
JP7232062B2
JP7232062B2 JP2019011939A JP2019011939A JP7232062B2 JP 7232062 B2 JP7232062 B2 JP 7232062B2 JP 2019011939 A JP2019011939 A JP 2019011939A JP 2019011939 A JP2019011939 A JP 2019011939A JP 7232062 B2 JP7232062 B2 JP 7232062B2
Authority
JP
Japan
Prior art keywords
program
storage area
inactive
electronic control
written
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.)
Active
Application number
JP2019011939A
Other languages
English (en)
Other versions
JP2020119419A (ja
Inventor
基樹 巽
真由美 前田
敏央 新井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Astemo Ltd
Original Assignee
Hitachi Astemo Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hitachi Astemo Ltd filed Critical Hitachi Astemo Ltd
Priority to JP2019011939A priority Critical patent/JP7232062B2/ja
Priority to EP20749462.6A priority patent/EP3920020A4/en
Priority to US17/421,670 priority patent/US11914871B2/en
Priority to CN202080011242.4A priority patent/CN113383390A/zh
Priority to PCT/JP2020/002808 priority patent/WO2020158675A1/ja
Publication of JP2020119419A publication Critical patent/JP2020119419A/ja
Application granted granted Critical
Publication of JP7232062B2 publication Critical patent/JP7232062B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
    • G11C16/105Circuits or methods for updating contents of nonvolatile memory, especially with 'security' features to ensure reliable replacement, i.e. preventing that old data is lost before new data is reliably written
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

本発明は、電子制御装置及びプログラム更新方法に関する。
自動車などの車両に搭載された電子制御装置は、機能追加、不具合改修などによってプログラムが更新される場合がある。従来では、車両をディーラなどに持ち込んで、電子制御装置のプログラムを更新していた。この場合、車両ユーザの利便性が良くないことから、特開2018-86894号公報(特許文献1)に記載されるように、無線通信を使用したOTA(Over The Air)によって、ユーザの手元でプログラムを更新する技術が提案されている。
特開2018-86894号公報
OTAによってプログラムを更新する場合、車両走行中などにもプログラムを更新できることが望ましい。これを実現するため、電子制御装置の不揮発性メモリに確保された2つの記憶領域を交互に使用し、一方の記憶領域に実行対象のプログラムを書き込んでおき、他方の記憶領域をプログラムの更新用の予約領域とすることが考えられる。そして、予約領域に更新プログラムを書き込み、例えば、再起動時などのタイミングで更新プログラムに切り替えることで、車両走行中などにもプログラムを更新できるようになる。
このようにした場合、更新プログラムに不具合が発生したとき、更新前のプログラムに切り替えることで、制御対象を継続して制御することができる。しかしながら、2つの記憶領域に格納されているプログラムが異なっているため、更新プログラムから更新前のプログラムに切り替えると、車両の運転者などが違和感を覚えてしまうおそれがある。
そこで、本発明は、プログラムの切り替えによる違和感を覚え難くした、電子制御装置及びプログラム更新方法を提供することを目的とする。
アクティブ状態とインアクティブ状態とを排他的に切り替え可能な2つの記憶領域が不揮発性メモリに確保された電子制御装置は、アクティブ状態の記憶領域にプログラムが書き込まれた状態で、外部からの指示に応答して、インアクティブ状態の記憶領域にプログラムを書き込んで更新し、アクティブ状態の記憶領域をインアクティブ状態に切り替え、インアクティブ状態の記憶領域をアクティブ状態に切り替える。そして、電子制御装置は、アクティブ状態の記憶領域に書き込まれたプログラムとインアクティブ状態の記憶領域に書き込まれたプログラムとが起動時に異なる場合、アクティブ状態に切り替えられた記憶領域に書き込まれたプログラムをインアクティブ状態の記憶領域にコピーして同一にする。
本発明によれば、アクティブ状態の記憶領域に書き込まれたプログラムとインアクティブ状態の記憶領域に書き込まれたプログラムとが同一となるので、プログラムの切り替えによる違和感を覚え難くすることができる。
電子制御装置のプログラムを更新するシステム図である。 電子制御装置の一例を示す内部構成図である。 コードフラッシュメモリのデータ構造図である。 従来技術によるプログラムの更新方法の説明図である。 プログラム更新処理の一例を示すフローチャートである。 第1の初期化処理の一例を示すフローチャートである。 2つの記憶領域でプログラムのリビジョンを同一とする方法の説明図である。 第2の初期化処理の一例を示すフローチャートである。 アクティブROM診断処理の一例を示すフローチャートである。 異常が発生したプログラムを修復する方法の説明図である。 コードフラッシュメモリの他のデータ構造図である。 プログラム書き込み処理の一例を示すフローチャートである。 プログラムA1~F1が書き込まれた初期状態における記憶領域のデータ構造図である。 プログラムA2~D2を書き込んで更新した状態における記憶領域のデータ構造図である。 プログラムE2を書き込んで更新した状態における記憶領域のデータ構造図である。 プログラムF2を書き込んで更新した状態における記憶領域のデータ構造図である。
以下、添付された図面を参照し、本発明を実施するための実施形態について詳述する。
図1は、OTAを利用して、車両VHに搭載された電子制御装置のプログラムを更新するシステムの一例を示している。更新プログラムは、OTAセンターと呼ばれるデータセンター(図示せず)に接続された基地局BSから無線通信で車両VHに配信される。車両VHに配信された更新プログラムは、無線送受信機、ゲートウェイ及び車載ネットワークを介して電子制御装置に送られ、電子制御装置の不揮発性メモリに書き込まれる。ここで、基地局BSが、外部の一例として挙げられる。
図2は、車両VHに搭載された電子制御装置100の一例を示している。
電子制御装置100は、プロセッサ120と、コードフラッシュメモリ140と、データフラッシュメモリ160と、RAM(Random Access Memory)180と、入出力回路200と、通信回路220と、これらを相互通信可能に接続する内部バス240と、を備えている。ここで、コードフラッシュメモリ140が、不揮発性メモリの一例として挙げられる。なお、図2においては、1つの電子制御装置100のみが図示されているが、車両VHには、CAN(Controller Area Network)などの車載ネットワークに接続された、複数の電子制御装置100が搭載されている。
プロセッサ120は、プログラムに記述された命令セット(データの転送、演算、加工、制御、管理など)を実行するハードウエアであって、演算装置、命令や情報を格納するレジスタ、周辺回路などから構成されている。コードフラッシュメモリ140は、電気的にデータを書き換え可能な不揮発性メモリからなり、例えば、エンジン、自動変速機、燃料噴射装置などを制御するプログラムなどを格納する。データフラッシュメモリ160は、電気的にデータを書き換え可能な不揮発性メモリからなり、例えば、学習値などのデータを格納する。RAM180は、電源供給遮断によってデータが消失する揮発性メモリからなり、プロセッサ120の一時的な記憶領域を提供する。
入出力回路200は、A/Dコンバータ、D/Aコンバータ、D/Dコンバータなどからなり、外部機器に対するアナログ信号及びデジタル信号の入出力機能を提供する。通信回路220は、CANトランシーバなどからなり、車載ネットワークに接続する機能を提供する。内部バス240は、各デバイス間でデータを交換するための経路であって、アドレスを転送するためのアドレスバス、データを転送するためのデータバス、アドレスバスやデータバスで実際に入出力を行うタイミングや制御情報を遣り取りするコントロールバスを含んでいる。
また、電子制御装置100の通信回路220は、ゲートウェイ260を介して、基地局BSと無線通信する無線送受信機280に接続されている。ここで、ゲートウェイ260は、基地局BSから送信されたデータのプロトコルを通信回路220で処理可能なプロトコルに変換すると共に、電子制御装置100で処理されるデータのプロトコルを基地局BSで処理可能なプロトコルに変換する機能を提供する。
従って、基地局BSから配信された更新プログラムは、車両VHに搭載された無線送受信機280で受信され、ゲートウェイ260によってプロトコル変換されつつ、通信回路220及び内部バス240を介してプロセッサ120に送られる。そして、プロセッサ120は、例えば、コードフラッシュメモリ140に予め格納された書き換えプログラムに従って、以下で詳細に説明するように、コードフラッシュメモリ140のプログラムを更新する。なお、コードフラッシュメモリ140に予め格納された書き換えプログラム自体も、更新対象となり得る。
コードフラッシュメモリ140には、ここに書き込まれる各プログラムについて、図3に示すように、アクティブ状態とインアクティブ状態とを排他的に切り替え可能な2つの記憶領域として、バンクAとバンクBとが予め確保されている。図示の例では、アクティブ状態のバンクAに、電子制御装置100の制御対象を制御するためのプログラムA~Fが書き込まれ、インアクティブ状態のバンクBにデータが書き込まれていない状態を示している。ここで、インアクティブ状態のバンクBは、プログラムA~Fを更新するための予約領域として使用される。なお、以下の説明においては、アクティブ状態のバンクを「アクティブROM」、インアクティブ状態のバンクを「インアクティブROM」と呼ぶこととする。
ここで、従来技術の問題点について説明する。
電子制御装置100の初期状態では、図4に示すように、アクティブROMにリビジョン1.0のプログラムが書き込まれ、インアクティブROMが未使用となっている。この初期状態において、アクティブROMに書き込まれているプログラムを更新する場合、インアクティブROMにリビジョン2.0のプログラムが書き込まれ、例えば、電子制御装置100の再起動時などの所定のタイミングで、アクティブROMがインアクティブROMに切り替えられ、インアクティブROMがアクティブROMに切り替えられる。従って、電子制御装置100は、その後、アクティブROMに書き込まれたリビジョン2.0のプログラムを実行し、例えば、機能追加、不具合改修などが行われた制御を実行することができる。
そして、アクティブROMに書き込まれているリビジョン2.0のプログラムを更に更新する場合、インアクティブROMにリビジョン3.0のプログラムが書き込まれ、所定のタイミングで、アクティブROMがインアクティブROMに切り替えられ、インアクティブROMがアクティブROMに切り替えられる。このようにすることで、車両VHが走行中であってもプログラムを更新することができる。
しかしながら、図4から明確なように、アクティブROMに書き込まれているプログラムは、インアクティブROMに書き込まれているプログラムとはリビジョンが異なっている。このため、アクティブROMに書き込まれているプログラムに異常が発生して、アクティブROMとインアクティブROMとが切り替えられると、制御内容が微妙に異なることから車両運転者が違和感を覚えてしまうおそれがある。そこで、以下で詳細に説明するように、電子制御装置100は、アクティブROMに書き込まれているプログラムとインアクティブROMに書き込まれているプログラムとが異なる場合、アクティブROMに書き込まれているプログラムをインアクティブROMにコピーすることで、アクティブROM及びインアクティブROMに書き込まれているプログラムのリビジョンを同一にする。
図5は、電子制御装置100のプロセッサ120が、プログラムの更新要求を受信したことを契機として、コードフラッシュメモリ140に書き込まれている更新プログラムに従って実行する、プログラム更新処理の一例を示している。ここで、電子制御装置100のデータフラッシュメモリ160には、起動バンク情報及びコピー要求を格納する領域が予め確保され、図3に示すデータ構造においては、初期値として、起動バンク情報が「バンクA」にセットされ、コピー要求が「要求なし」にセットされている。なお、起動バンク情報及びコピー要求を格納する領域は、データフラッシュメモリ160に限らず、コードフラッシュメモリ140に予め確保されていてもよい。
ステップ1(図では「S1」と略記する。以下同様。)では、電子制御装置100のプロセッサ120が、データフラッシュメモリ160から起動バンク情報を読み込む。ここで、起動バンク情報は、アクティブROMを特定可能な情報であって、アクティブROMを特定することでインアクティブROMも特定することができる。
ステップ2では、電子制御装置100のプロセッサ120が、起動バンク情報に基づいてインアクティブROMを特定する。即ち、電子制御装置100のプロセッサ120は、起動バンク情報に「バンクA」が設定されていれば、インアクティブROMは「バンクB」であると特定し、起動バンク情報に「バンクB」が設定されていれば、インアクティブROMは「バンクA」であると特定する。
ステップ3では、電子制御装置100のプロセッサ120が、基地局BSから配信されたプログラムを受信し、これをインアクティブROMに書き込む。このとき、プログラムのサイズが大きい場合、電子制御装置100のプロセッサ120は、所定サイズに分割されたプログラムを順次受信し、これをインアクティブROMに順次書き込むようにしてもよい。また、基地局BSから配信されたプログラムは、共通キーにより暗号化されていてもよく、所定規則により圧縮されていてもよい。さらに、基地局BSから配信されたプログラムは、アクティブROMに書き込まれているプログラムの差分であってもよい。なお、電子制御装置100のプロセッサ120は、例えば、CRC(Cyclic Redundancy Check)やチェックサムなどを使用して、プログラムの受信及び書き込みが正常に行われたかを判断し、必要に応じてプログラムの再送を要求するようにしてもよい。
ステップ4では、電子制御装置100のプロセッサ120が、例えば、電子制御装置100の起動時などの所定タイミングでインアクティブROMをアクティブROMに切り替えることで、そこに書き込まれたプログラムによって制御を開始できるように起動バンク情報をセットする。具体的には、電子制御装置100のプロセッサ120は、バンクAにプログラムを書き込んだ場合には、起動バンク情報に「バンクA」をセットし、バンクBにプログラムを書き込んだ場合には、起動バンク情報に「バンクB」をセットする。なお、インアクティブROMをアクティブROMに切り替える所定タイミングは、電子制御装置100の起動時に限らず、アイドリングストップ時やリセット時などであってもよい(以下の処理についても同様)。
ステップ5では、電子制御装置100のプロセッサ120が、アクティブROMに書き込まれているプログラムとインアクティブROMに書き込まれているプログラムのリビジョンが同一となるように、アクティブROMに書き込まれているプログラムをインアクティブROMにコピーするコピー要求をセットする。
かかるプログラム更新処理によれば、電子制御装置100のプロセッサ120は、プログラムの更新要求を受信すると、インアクティブROMに更新プログラムを書き込み、起動バンク情報の更新、及びコピー要求をセットする。従って、電子制御装置100のプロセッサ120は、その後の処理において、最新のプログラムを使用した制御対象の制御、並びにアクティブROM及びインアクティブROMのプログラムの整合性をとる準備をすることができる。
図6は、電子制御装置100が起動されたことを契機として、電子制御装置100のプロセッサ120が、コードフラッシュメモリ140に書き込まれている初期化プログラムに従って実行する、第1の初期化処理の一例を示している。また、電子制御装置100のプロセッサ120は、第1の初期化処理に続いて、制御対象であるエンジン、自動変速機、モータなどを制御する通常制御を実行する。
ステップ11では、電子制御装置100のプロセッサ120が、データフラッシュメモリ160から起動バンク情報を読み込む。
ステップ12では、電子制御装置100のプロセッサ120が、起動バンク情報に応じて、アクティブROM及びインアクティブROMを特定する。具体的には、電子制御装置100のプロセッサ120は、起動バンク情報が「バンクA」であれば、アクティブROMは「バンクA」であり、インアクティブROMが「バンクB」であると特定する。また、電子制御装置100のプロセッサ120は、起動バンク情報が「バンクB」であれば、アクティブROMは「バンクB」であり、インアクティブROMは「バンクA」であると特定する。
ステップ13では、電子制御装置100のプロセッサ120が、コードフラッシュメモリ140のコピー要求を参照し、コピー要求がセットされているか否か、要するに、コピー要求があるか否かを判定する。そして、電子制御装置100のプロセッサ120は、コピー要求があると判定すれば(Yes)、処理をステップ14へと進める。一方、電子制御装置100のプロセッサ120は、コピー要求がないと判定すれば(No)、第1の初期化処理を終了させて通常制御へと移行する。
ステップ14では、電子制御装置100のプロセッサ120が、コピー要求があったので、アクティブROMのプログラム、即ち、更新プログラムをインアクティブROMにコピーする。従って、アクティブROMのプログラムとインアクティブROMのプログラムを同一とすることができる。
ステップ15では、電子制御装置100のプロセッサ120が、コピー要求に応答したので、コピー要求をリセット、要するに、データフラッシュメモリ160に格納されているコピー要求を「要求なし」に変更する。その後、電子制御装置100のプロセッサ120は、第1の初期化処理を終了させて通常制御へと移行する。
かかる第1の初期化処理によれば、図7に示すように、アクティブROMであるバンクAにリビジョン1.0のプログラムが書き込まれている初期状態において、外部からの更新指示に応答して、インアクティブROMであるバンクBにリビジョン2.0のプログラムが書き込まれる。その後、電子制御装置100が起動すると、アクティブROMがインアクティブROMに切り替えられると共に、インアクティブROMがアクティブROMに切り替えられ、アクティブROMであるバンクBに書き込まれているリビジョン2.0のプログラムがインアクティブROMであるバンクAにコピーされる。
また、この状態において、外部からの更新指示が再度あると、その更新指示に応答して、インアクティブROMであるバンクAにリビジョン3.0のプログラムが書き込まれる。その後、電子制御装置100が起動すると、アクティブROMがインアクティブROMに切り替えられると共に、インアクティブROMがアクティブROMに切り替えられ、アクティブROMであるバンクAに書き込まれているリビジョン3.0のプログラムがインアクティブROMであるバンクBにコピーされる。
従って、車両VHの走行中にもプログラムを更新可能としつつ、アクティブROMのプログラムとインアクティブROMのプログラムを同一とすることができ、例えば、アクティブROMの異常によってインアクティブROMに切り替えても、車両運転者などが違和感を覚え難くすることができる。また、アクティブROMに異常が発生しても、インアクティブROMに書き込まれているプログラムによって同一の制御が継続されるため、例えば、フェイルセーフモードなどの縮退運転を回避することができる。
ところで、アクティブROMに書き込まれているプログラムは、例えば、ノイズなどによって書き換わって所要の機能を発揮できなくなる可能性がある。そこで、以下説明するように、電子制御装置100の起動時にアクティブROMのプログラムを診断し、そのプログラムに異常が発生していれば、異常が発生していないと考えられるプログラムをコピーして修復するようにする。
図8は、電子制御装置100が起動されたことを契機として、電子制御装置100のプロセッサ120が、コードフラッシュメモリ140に書き込まれている初期化プログラムに従って実行する、第2の初期化処理の一例を示している。ここで、電子制御装置100のデータフラッシュメモリ160には、起動バンク情報及びコピー要求を格納する領域に加え、修復要求を格納する領域が予め確保され、その初期値として、修復要求が「要求なし」にセットされている。修復要求を格納する領域は、データフラッシュメモリ160に限らず、コードフラッシュメモリ140に予め確保されていてもよい。また、電子制御装置100のプロセッサ120は、第2の初期化処理に続いて、制御対象であるエンジン、自動変速機、モータなどを制御する通常制御を実行する。なお、第1の初期化処理と共通する処理については、重複説明を排除する目的でその説明を簡単にする。必要があれば、第1の初期化処理の説明を参照されたい。
ステップ21では、電子制御装置100のプロセッサ120が、データフラッシュメモリ160から起動バンク情報を読み込む。
ステップ22では、電子制御装置100のプロセッサ120が、起動バンク情報により特定されるアクティブROMについて、そこに書き込まれているプログラムに異常が発生しているか否かを診断する、アクティブROM診断を行うサブルーチンをコールする。ここで、アクティブROM診断においては、詳細を後述するように、アクティブROMに異常が発生していれば、アクティブROMがインアクティブROMに切り替えられ、インアクティブROMがアクティブROMに切り替えられ、かつ修復要求がセットされる。なお、アクティブROM診断は、サブルーチン形式に限らず、第2の初期化処理に組み込むようにしてもよい。
ステップ23では、電子制御装置100のプロセッサ120が、コピー要求があるか否かを判定する。そして、電子制御装置100のプロセッサ120は、コピー要求があると判定すれば(Yes)、処理をステップ24へと進める。一方、電子制御装置100のプロセッサ120は、コピー要求がないと判定すれば(No)、処理をステップ26へと進める。
ステップ24では、電子制御装置100のプロセッサ120が、コピー要求があったので、アクティブROMのプログラムをインアクティブROMにコピーする。
ステップ25では、電子制御装置100のプロセッサ120が、コピー要求をリセットする。その後、電子制御装置100のプロセッサ120は、第2の初期化処理を終了させて通常制御へと移行する。
ステップ26では、電子制御装置100のプロセッサ120が、コードフラッシュメモリ140の修復要求を参照し、修復要求がセットされているか否か、要するに、修復要求があるか否かを判定する。そして、電子制御装置100のプロセッサ120は、修復要求があると判定すれば(Yes)、処理をステップ27へと進める。一方、電子制御装置100のプロセッサ120は、修復要求がないと判定すれば(No)、第2の初期化処理を終了させて通常制御へと移行する。
ステップ27では、電子制御装置100のプロセッサ120が、修復要求があったので、アクティブROMのプログラム、即ち、異常が発生していないと考えられるプログラムをインアクティブROMにコピーして修復する。従って、異常が発生したプログラムが修復され、アクティブROMのプログラムとインアクティブROMのプログラムを同一とすることができる。
ステップ28では、電子制御装置100のプロセッサ120が、修復要求に応答したので、修復要求をリセット、要するに、データフラッシュメモリ160に格納されている修復要求を「要求なし」に変更する。その後、電子制御装置100のプロセッサ120は、第2の初期化処理を終了させて通常制御へと移行する。
図9は、サブルーチン形式をとるアクティブROM診断処理の一例を示している。
ステップ31では、電子制御装置100のプロセッサ120が、起動バンク情報により特定されるアクティブROMについて、例えば、CRCやチェックサムなどを使用して、アクティブROMに書き込まれているプログラムに異常が発生しているか否かを判定する。そして、電子制御装置100のプロセッサ120は、アクティブROMに書き込まれているプログラムに異常が発生していると判定すれば(Yes)、処理をステップ32へと進める。一方、電子制御装置100のプロセッサ120は、アクティブROMに書き込まれているプログラムに異常が発生していない、即ち、そのプログラムは正常であると判定すれば(No)、アクティブROM診断処理を終了させて第2の初期化処理へとリターンする。
ステップ32では、電子制御装置100のプロセッサ120が、異常が発生していない可能性が高いインアクティブROMに書き込まれているプログラムにより制御対象を制御すべく、起動バンク情報をインアクティブROMに更新する。要するに、電子制御装置100のプロセッサ120は、アクティブROMに書き込まれたプログラムに異常が発生した場合、後の処理において、アクティブROMとインアクティブROMとを切り替え、アクティブROMに書き込まれているプログラムにより制御対象を継続して制御すべく、起動バンク情報を更新する。なお、プログラムのコピーによって異常が修復され得ることを鑑み、起動バンク情報を更新しなくてもよい。
ステップ33では、電子制御装置100のプロセッサ120が、異常が発生していないプログラムを異常が発生したプログラムに上書きして修復することを要求する、修復要求をセット、要するに、修復要求に「要求あり」をセットする。
ステップ34では、電子制御装置100のプロセッサ120が、第2の初期化処理を最初から実行すべく、ソフトウエアリセットを実行する。ソフトウエアリセットを実行すると、本明細書で説明していない初期化処理が再実行され、予期せぬ処理が行われることを回避することができる。なお、ソフトウエアリセットの実行により、必然的に、アクティブROM診断処理が終了する。
かかる第2の初期化処理及びアクティブROM診断処理によれば、第1の初期化処理の作用及び効果に加え、アクティブROMに書き込まれているプログラムに異常が発生すると、これに異常が発生していないと考えられるプログラムが上書きされ、その異常が修復される。従って、プログラムの更新後において、何らかの理由によってアクティブROMに書き込まれているプログラムに異常が発生しても、アクティブROMに書き込まれているプログラムとインアクティブROMに書き込まれているプログラムのリビジョンを同一とすることができる。また、アクティブROMに書き込まれているプログラムに異常が発生するとソフトウエアリセットが実行されるので、これを契機として、アクティブROMとインアクティブROMとが切り替えられ、アクティブROMに書き込まれているプログラムにより制御対象が継続して制御される。
図10に示す具体的な事例を参照し、アクティブROMに書き込まれているプログラムに異常が発生した場合、これをどのようにして修復するかについて説明する。アクティブROMであるバンクA及びインアクティブROMであるバンクBにリビジョン1.0のプログラムが夫々書き込まれている初期状態において、何らかの理由によってアクティブROMであるバンクAに格納されているプログラムに異常が発生した場合を考察する。バンクAのプログラムに異常が発生したことが検知されると、起動バンク情報が「バンクB」に切り替えられると共に修復要求がセットされ、その後、ソフトウエアリセットが実行される。そして、第2の初期化処理が最初から実行され、修復要求のセットに応答して、異常が発生していないと考えられるバンクBに書き込まれているプログラムをバンクAにコピーし、異常が発生しているプログラムを正常なプログラムで上書きして修復する。
コードフラッシュメモリ140に確保されたインアクティブROMは、プログラムを更新するためだけに使用されるため、コードフラッシュメモリ140の利用可能な記憶領域が小さくなってしまう欠点がある。そこで、コードフラッシュメモリ140を効率的に利用することを目的として、インアクティブROMが未使用である場合、そこに故障情報などの任意のデータを書き込むようにしてもよい。
また、コードフラッシュメモリ140に確保されたバンクA及びBの一方、例えば、バンクBは、図11に示すように、複数のプログラムの中から所定規則によって選定された少なくとも1つのプログラムの専用領域と、他の少なくとも1つのプログラムで共用する共用領域と、に区画されていてもよい。図示の例では、バンクBは、プログラムAの専用領域A、プログラムBの専用領域B、及びプログラムC~Fで共用する共用領域に区画されているが、そのデータ構造は任意とすることができる。さらに、所定規則としては、車両VHを制御するプログラムの重要度、例えば、安全性に関する重要度などとすることができる。なお、バンクA及びBは、各プログラムについて、一方をアクティブROM、他方をインアクティブROMに排他的に切り替えることができる。
図12は、電子制御装置100のプロセッサ120が、コードフラッシュメモリ140に書き込まれている書き込みプログラムに従って、インアクティブROMにプログラムを書き込むときに実行するプログラム書き込み処理の一例を示している。
ステップ41では、電子制御装置100のプロセッサ120が、例えば、各プログラムについて専用領域又は共用領域に書き込むかを定義したテーブルを参照し、書き込み対象のプログラムを共用領域に書き込むか否かを判定する。ここで、テーブルは、プログラムの重要度などを考慮して作成され、例えば、コードフラッシュメモリ140に予め格納されている。そして、電子制御装置100のプロセッサ120は、書き込み対象のプログラムを共用領域に書き込むと判定したならば(Yes)、処理をステップ42へと進める。一方、電子制御装置100のプロセッサ120は、書き込み対象のプログラムを共用領域に書き込まない、即ち、その重要度が高いために専用領域に書き込むと判定したならば(No)、処理をステップ46へと進める。
ステップ42では、電子制御装置100のプロセッサ120が、コードフラッシュメモリ140のバンクBを参照し、その共用領域に空きがあるか否か、即ち、書き込み対象のプログラムを書き込むことができるか否かを判定する。そして、電子制御装置100のプロセッサ120は、共用領域に空きがないと判定したならば(Yes)、処理をステップ43へと進める。一方、電子制御装置100のプロセッサ120は、共用領域に空きがあると判定したならば(No)、処理をステップ45へと進める。
ステップ43では、電子制御装置100のプロセッサ120が、バンクBの共用領域に書き込まれているプログラムの中から、例えば、重要度の低いもの、タイムスタンプが最古のもの、プログラムサイズが近いものなどを考慮し、消去する少なくとも1つのプログラムを選択する。なお、消去する少なくとも1つのプログラムは、上記の例に限らず、任意の規則によって選定することができる。
ステップ44では、電子制御装置100のプロセッサ120が、バンクBの共用領域に書き込まれているプログラムの中から、ステップ43で選択された少なくとも1つのプログラムを消去する。従って、バンクBの共用領域には、書き込み対象のプログラムを書き込むためのスペースが生まれる。
ステップ45では、電子制御装置100のプロセッサ120が、バンクBの共用領域に書き込み対象のプログラムを書き込む。その後、電子制御装置100のプロセッサ120は、プログラム書き込み処理を終了させ、これに続く処理を引き続いて実行する。
ステップ46では、電子制御装置100のプロセッサ120が、バンクBの専用領域に書き込み対象のプログラムを書き込む。その後、電子制御装置100のプロセッサ120は、プログラム書き込み処理を終了させ、これに続く処理を引き続いて実行する。
かかるプログラム書き込み処理によれば、重要度の高いプログラムは、これと一対一に関連付けられた専用領域を使用して更新され、重要度の低いプログラムは、複数のプログラムで共用する共用領域を使用して更新される。このとき、共用領域に書き込み対象のプログラムを書き込む余裕がなければ、例えば、プログラムの重要度などに応じて選定された少なくとも1つのプログラムが消去され、そこにプログラムが書き込まれる。従って、コードフラッシュメモリ140に確保された予約領域が小さくなり、コードフラッシュメモリ140の記憶領域を効率的に利用することができる。
ここで、具体的な事例を想定し、バンクBの共用領域をどのように使用して、プログラムを更新するかについて説明する。
コードフラッシュメモリ140の初期状態では、図13に示すように、バンクAにプログラムA1、B1、C1、D1、E1及びF1が書き込まれており、バンクBにプログラムA及びBの専用領域とプログラムC~Fで共用する共用領域が確保されている。そして、外部からの更新要求に応じて、プログラムA2、B2、C2及びD2を書き込んで更新すると、図14に示すように、バンクBの専用領域にプログラムA2及びB2が書き込まれ、バンクBの共用領域にプログラムC2及びD2が書き込まれる。この状態では、バンクBの共用領域には空きがなく、ここに他のプログラムを書き込んで更新することができない。
外部からの更新要求に応じてプログラムE2を書き込んで更新する場合、バンクBの共用領域に空きがないため、プログラムC2及びD2の少なくとも一方を消去しなければならない。そこで、図15に示すように、バンクBの共用領域について、例えば、タイムスタンプが最古のプログラムC2を消去し、そこにプログラムE2を書き込んで更新する。
その後、外部からの更新要求に応じてプログラムF2を書き込んで更新する場合、バンクBの共用領域に空きがないため、プログラムD2及びE2の少なくとも一方を消去しなければならない。そこで、図16に示すように、バンクBの共用領域について、例えば、タイムスタンプが最古のプログラムD2を消去し、そこにプログラムF2を書き込んで更新する。
なお、当業者であれば、上記実施形態の様々な技術的思想について、その一部を省略したり、その一部を適宜組み合わせたり、その一部を置換したりすることで、新たな実施形態を生み出せることを容易に理解できるであろう。
100 電子制御装置
120 プロセッサ
140 コードフラッシュメモリ(不揮発性メモリ)

Claims (10)

  1. アクティブ状態とインアクティブ状態とを排他的に切り替え可能な2つの記憶領域が不揮発性メモリに確保され、前記アクティブ状態の記憶領域にプログラムが書き込まれた状態で、外部からの指示に対応して、前記インアクティブ状態の記憶領域にプログラムを書き込んで更新し、前記アクティブ状態の記憶領域をインアクティブ状態に切り替え、前記インアクティブ状態の記憶領域をアクティブ状態に切り替える電子制御装置であって、
    前記アクティブ状態の記憶領域に書き込まれたプログラムと前記インアクティブ状態の記憶領域に書き込まれたプログラムとが起動時に異なる場合、前記アクティブ状態に切り替えられた記憶領域に書き込まれたプログラムを前記インアクティブ状態の記憶領域にコピーして同一にする、
    電子制御装置。
  2. 前記アクティブ状態の記憶領域に書き込まれたプログラムに異常が発生した場合、前記アクティブ状態の記憶領域をインアクティブ状態に切り替え、前記インアクティブ状態の記憶領域をアクティブ状態に切り替え、前記アクティブ状態に切り替えた記憶領域に書き込まれているプログラムにより制御対象を継続して制御する、
    請求項1に記載の電子制御装置。
  3. ソフトウエアリセットを契機として、前記アクティブ状態の記憶領域をインアクティブ状態に切り替え、前記インアクティブ状態の記憶領域をアクティブ状態に切り替える、
    請求項2に記載の電子制御装置。
  4. 前記アクティブ状態の記憶領域に書き込まれたプログラムに異常が発生した場合、前記インアクティブ状態の記憶領域に書き込まれたプログラムを前記アクティブ状態の記憶領域にコピーして修復する、
    請求項1~請求項3のいずれか1つに記載の電子制御装置。
  5. 前記プログラムの修復は、起動時に実行される、
    請求項4に記載の電子制御装置。
  6. 前記インアクティブ状態の記憶領域は、複数のプログラムの中から所定規則によって選定された少なくとも1つのプログラムの専用領域と、他の少なくとも1つのプログラムで共用する共用領域と、に区画される、
    請求項1~請求項5のいずれか1つに記載の電子制御装置。
  7. 前記所定規則は、プログラムの重要度である、
    請求項6に記載の電子制御装置。
  8. 前記インアクティブ状態の記憶領域に書き込まれるプログラムは、無線通信によって取得される、
    請求項1~請求項7のいずれか1つに記載の電子制御装置。
  9. 前記インアクティブ状態の記憶領域が未使用である場合、前記インアクティブ状態の記憶領域に任意のデータが書き込まれる、
    請求項1~請求項8のいずれか1つに記載の電子制御装置。
  10. アクティブ状態とインアクティブ状態とを排他的に切り替え可能な2つの記憶領域が不揮発性メモリに確保され、前記アクティブ状態の記憶領域にプログラムが書き込まれた状態で、外部からの指示に応答して、前記インアクティブ状態の記憶領域にプログラムを書き込んで更新し、前記アクティブ状態の記憶領域をインアクティブ状態に切り替え、前記インアクティブ状態の記憶領域をアクティブ状態に切り替える電子制御装置が、前記アクティブ状態の記憶領域に書き込まれたプログラムと前記インアクティブ状態の記憶領域に書き込まれたプログラムとが起動時に異なる場合、前記アクティブ状態に切り替えられた記憶領域に書き込まれたプログラムを前記インアクティブ状態の記憶領域にコピーして同一にする、
    プログラム更新方法。
JP2019011939A 2019-01-28 2019-01-28 電子制御装置及びプログラム更新方法 Active JP7232062B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2019011939A JP7232062B2 (ja) 2019-01-28 2019-01-28 電子制御装置及びプログラム更新方法
EP20749462.6A EP3920020A4 (en) 2019-01-28 2020-01-27 ELECTRONIC CONTROL DEVICE AND PROGRAM UPDATE METHOD
US17/421,670 US11914871B2 (en) 2019-01-28 2020-01-27 Electronic control device and program-update method
CN202080011242.4A CN113383390A (zh) 2019-01-28 2020-01-27 电子控制装置以及程序更新方法
PCT/JP2020/002808 WO2020158675A1 (ja) 2019-01-28 2020-01-27 電子制御装置及びプログラム更新方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019011939A JP7232062B2 (ja) 2019-01-28 2019-01-28 電子制御装置及びプログラム更新方法

Publications (2)

Publication Number Publication Date
JP2020119419A JP2020119419A (ja) 2020-08-06
JP7232062B2 true JP7232062B2 (ja) 2023-03-02

Family

ID=71841766

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019011939A Active JP7232062B2 (ja) 2019-01-28 2019-01-28 電子制御装置及びプログラム更新方法

Country Status (5)

Country Link
US (1) US11914871B2 (ja)
EP (1) EP3920020A4 (ja)
JP (1) JP7232062B2 (ja)
CN (1) CN113383390A (ja)
WO (1) WO2020158675A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7128763B2 (ja) * 2019-03-18 2022-08-31 日立Astemo株式会社 電子制御装置及び制御データの設定方法
JP7448585B2 (ja) 2022-05-31 2024-03-12 トヨタ自動車株式会社 情報処理装置、情報処理方法、及び情報処理プログラム
CN114840449B (zh) * 2022-06-30 2022-10-18 广州万协通信息技术有限公司 基于MCU片内flash的数据存储方法、装置、设备及存储介质
CN117742588B (zh) * 2023-11-30 2024-06-04 武汉芯必达微电子有限公司 使用Flash模拟EEPROM的数据存储方法及系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002333990A (ja) 2001-03-05 2002-11-22 Omron Corp プログラム更新装置およびプログラム更新方法
JP2003140915A (ja) 2001-11-01 2003-05-16 Anten Corp コンピュータ装置及びプログラムのダウンロード方法
WO2005059862A1 (ja) 2003-12-15 2005-06-30 Hitachi, Ltd. 車載制御装置の情報更新方法と更新情報通信システム、および、車両搭載制御装置と情報管理基地局装置
JP2006301960A (ja) 2005-04-20 2006-11-02 Denso Corp 自動車用制御ユニット
JP2009044543A (ja) 2007-08-09 2009-02-26 Sharp Corp テレビ受信機
JP2011085977A (ja) 2009-10-13 2011-04-28 Hitachi Kokusai Electric Inc 信号処理装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05197629A (ja) * 1992-01-20 1993-08-06 Hitachi Ltd 記憶保護方式
JPH06274320A (ja) * 1993-03-17 1994-09-30 Nec Corp システム立ち上げ時のパラメータによる動向システム生成方式
US6601212B1 (en) * 2000-03-29 2003-07-29 Hewlett-Packard Development Company, Lp. Method and apparatus for downloading firmware to a non-volatile memory
JP2002333390A (ja) * 2001-05-08 2002-11-22 Fujita Corp コンクリート試験体の作製方法およびコンクリートの含水率測定方法
US7340638B2 (en) * 2003-01-30 2008-03-04 Microsoft Corporation Operating system update and boot failure recovery
US20060041738A1 (en) * 2004-08-17 2006-02-23 Yu-Chen Lai Recovery method for master boot record of hard disk drive
US8464038B2 (en) * 2009-10-13 2013-06-11 Google Inc. Computing device with developer mode
JP6354566B2 (ja) * 2014-12-19 2018-07-11 株式会社デンソー マイクロコンピュータ
JP2018086894A (ja) 2016-11-28 2018-06-07 トヨタ自動車株式会社 リプログラミング制御装置
EP3376391A1 (en) * 2017-03-17 2018-09-19 Ricoh Company Ltd. Information processing apparatus, updating method, and carrier means

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002333990A (ja) 2001-03-05 2002-11-22 Omron Corp プログラム更新装置およびプログラム更新方法
JP2003140915A (ja) 2001-11-01 2003-05-16 Anten Corp コンピュータ装置及びプログラムのダウンロード方法
WO2005059862A1 (ja) 2003-12-15 2005-06-30 Hitachi, Ltd. 車載制御装置の情報更新方法と更新情報通信システム、および、車両搭載制御装置と情報管理基地局装置
JP2006301960A (ja) 2005-04-20 2006-11-02 Denso Corp 自動車用制御ユニット
JP2009044543A (ja) 2007-08-09 2009-02-26 Sharp Corp テレビ受信機
JP2011085977A (ja) 2009-10-13 2011-04-28 Hitachi Kokusai Electric Inc 信号処理装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
反町孝幸,異常時のユーザ不安感低減,デンソー公開技報,株式会社デンソー,2003年07月15日,第140号,2ページ表面-裏面,ISSN 1342-7970

Also Published As

Publication number Publication date
WO2020158675A1 (ja) 2020-08-06
WO2020158675A9 (ja) 2021-07-29
JP2020119419A (ja) 2020-08-06
CN113383390A (zh) 2021-09-10
EP3920020A4 (en) 2022-11-16
US20220091762A1 (en) 2022-03-24
US11914871B2 (en) 2024-02-27
EP3920020A1 (en) 2021-12-08

Similar Documents

Publication Publication Date Title
JP7232062B2 (ja) 電子制御装置及びプログラム更新方法
US11467818B2 (en) Software update device, software update method, and software update system
US8539472B2 (en) Method and system of updating shared memory
US11392368B2 (en) Electronic control system for updating circuit
WO2019123747A1 (ja) 自動車用電子制御装置及びその制御方法
JP2023168511A (ja) 制御装置、方法、プログラム、および車両
US11449329B2 (en) Vehicle control device and program update system
US11945453B2 (en) Onboard device, information generating method, non-transitory storage medium, and vehicle
JP2018160207A (ja) 車載制御装置、及び、プログラム更新ソフトウェア
JP7216559B2 (ja) 電子制御装置及び不揮発性メモリの使用方法
WO2021024792A1 (ja) 車両制御装置、更新プログラム、プログラム更新システム、及び書込み装置
JPWO2018173911A1 (ja) 車載制御装置、及び、プログラム更新ソフトウェア
JP2018160208A (ja) 車載制御装置、及び、プログラム更新ソフトウェア
US20240160414A1 (en) Vehicle Electronic Control Device and Program Rewriting Method
JP6984203B2 (ja) 電子制御装置及び更新ソフトウェア配信システム
CN114144759A (zh) 用于更新车辆的车载计算机的软件的更新方法和更新装置,所述车载计算机包括执行存储器、备份存储器和检查存储器
US20230333838A1 (en) Method and device for updating software of an onboard computer in a vehicle, comprising a runtime memory, a backup memory and a control memory
US20230143921A1 (en) Electronic control system, storage medium storing data structure of software package, and storage medium storing computer program
JPWO2018150820A1 (ja) 情報処理装置
WO2021153224A1 (ja) 情報処理装置および情報処理方法
JP2023119314A (ja) 電子制御装置
JP5016604B2 (ja) 情報処理装置および情報処理方法
JP2024048008A (ja) 電子制御装置及びソフトウェア更新方法
JP2022126194A (ja) Otaマスタ、センタ、システム、方法、プログラム、及び車両
JPH08286973A (ja) フラッシュメモリ回路装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210603

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220809

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221011

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230124

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230217

R150 Certificate of patent or registration of utility model

Ref document number: 7232062

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150