JP7377893B2 - 通信機器及びプログラム - Google Patents

通信機器及びプログラム Download PDF

Info

Publication number
JP7377893B2
JP7377893B2 JP2021567215A JP2021567215A JP7377893B2 JP 7377893 B2 JP7377893 B2 JP 7377893B2 JP 2021567215 A JP2021567215 A JP 2021567215A JP 2021567215 A JP2021567215 A JP 2021567215A JP 7377893 B2 JP7377893 B2 JP 7377893B2
Authority
JP
Japan
Prior art keywords
firmware
update
storage area
communication
block
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
JP2021567215A
Other languages
English (en)
Other versions
JPWO2021131754A5 (ja
JPWO2021131754A1 (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.)
Kyocera Corp
Original Assignee
Kyocera Corp
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 Kyocera Corp filed Critical Kyocera Corp
Publication of JPWO2021131754A1 publication Critical patent/JPWO2021131754A1/ja
Publication of JPWO2021131754A5 publication Critical patent/JPWO2021131754A5/ja
Application granted granted Critical
Publication of JP7377893B2 publication Critical patent/JP7377893B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Description

本開示は、通信機器及びプログラムに関する。
近年、機器に組み込まれる制御プログラムであるファームウェアを無線通信によって配信及び更新するFOTA(Firmware Over the Air)と呼ばれる技術が広く用いられている(例えば、特許文献1参照)。
FOTAでは、機器は、ファームウェアに対する更新内容を表す差分ファイル(更新用ファイル)を無線通信により受信する。機器は、ファームウェアを記憶するファームウェア記憶領域から読み出し、更新用記憶領域を用いてファームウェアを差分ファイルと比較することでファームウェアを更新し、更新後のファームウェアをファームウェア記憶領域に書き込む。
特開2018-45406号公報
第1の態様に係る通信機器は、無線通信を行う通信機器であって、前記通信機器のファームウェアを記憶するファームウェア記憶領域と、前記ファームウェアを更新する更新処理に用いる更新用記憶領域と、前記ファームウェアに対する更新内容を表す差分ファイルを前記無線通信により受信する通信部と、前記差分ファイルに基づいて前記更新処理を実行する更新処理部とを備える。前記更新処理部は、前記ファームウェア記憶領域に記憶された前記ファームウェアを複数のブロックに分割し、前記更新用記憶領域を用いて1ブロックごとに前記更新処理を実行する。
第2の態様に係るプログラムは、通信機器のファームウェアに対する更新内容を表す差分ファイルを配信するための情報処理装置に、未更新のファームウェア及び更新されたファームウェアのそれぞれを複数のブロックに分割する処理と、前記未更新のファームウェアに対する前記更新されたファームウェアの更新内容を表す差分データをブロック単位で抽出する処理と、前記ブロック単位での前記差分データを含む前記差分ファイルを生成する処理とを実行させる。
一実施形態に係る通信システムの構成を示す図である。 一実施形態に係る通信機器の構成を示す図である。 一実施形態に係る通信用ファームウェアの更新処理を示す図である。 一実施形態に係る制御用ファームウェアの更新処理を示す図である。 一実施形態に係るサーバの構成を示す図である。 一実施形態に係る通信機器におけるファームウェア更新動作を示す図である。 一実施形態に係る通信機器の動作の詳細を示す図である。 実施形態の変更例1に係る通信機器の動作を示す図である。 変更例2に係る情報処理装置が差分ファイルを生成する際のデータフローを示す図である。 変更例2に係る情報処理装置が差分ファイルを生成する際の動作フローを示す図である。 変更例2に係る通信機器の動作を示す図である。
FOTAでは、ファームウェア更新に用いる更新用記憶領域の記憶容量として、ファームウェア全体を記憶可能な大きな記憶容量を確保する必要がある。特に、機器の通信部(例えば、LPWA通信部)のファームウェアはサイズが大きいため、このファームウェアのサイズに合わせて機器のメモリ容量を設計すると、大容量のメモリを機器に搭載する必要がある。よって、FOTAによるファームウェア更新を行う機器は、メモリ容量の増大に起因してコストが増大するという問題があった。
そこで、本開示は、FOTAによるファームウェア更新を小容量のメモリで実現することを目的とする。
図面を参照して実施形態について説明する。図面の記載において、同一又は類似の部分には同一又は類似の符号を付している。
(通信システムの構成)
まず、一実施形態に係る通信システムの構成について説明する。図1は、一実施形態に係る通信システム1の構成を示す図である。
図1に示すように、通信システム1は、通信機器100と、ネットワーク200と、サーバ300と、端末400とを有する。
通信機器100は、通信機能を有する機器であって、例えば遠隔監視等のセンシングの用途で用いる機器である。通信機器100は、センシングに関する様々なサービスに対応可能とするために、測定に使用するセンサの種類をユーザがカスタマイズ可能な構成を有する。一実施形態において、通信機器100がセンシングの用途で用いる機器である一例について説明するが、通信機器100は、FOTAを用いる機器であって、搭載するメモリの記憶容量が小さい機器であれば、どのような機器であってもよい。
一実施形態において、通信機器100は、センサ170を着脱可能な構成を有しており、汎用性が高く、且つ低コストで提供可能である。ここで「着脱可能」とは、センサ170が通信機器100に物理的に取り付け(装着)及び取り外しが可能である場合に限らず、センサ170が通信機器100にケーブル等を介して電気的に接続及び切断が可能である場合も含む。但し、センサ170を着脱可能な構成に通信機器100に限定されるものではなく、センサ170を通信機器100に搭載していてもよい。
通信機器100は、ネットワーク200に含まれる基地局201との無線通信を介して、センサ170が出力するセンサデータをサーバ300に送信する。例えば、通信機器100は、LPWA(Low Power Wide Area)方式の無線通信を行う。LPWA方式は、消費電力を抑えつつ遠距離通信を実現する無線通信の方式である。LPWA方式は、例えば、セルラLPWA、Sigfox、又はLoRaWANである。セルラLPWAは、3GPP(3rd generation partnership project)規格において規定されたeMTC(enhanced Machine Type Communications)又はNB-IoT(Narrow Band-Internet of Things)であってもよい。
ネットワーク200には、通信機器100との無線通信を行う基地局201が設けられている。ネットワーク200は、域通信網(WAN:Wide Area Network)を含む。ネットワーク200は、インターネットをさらに含んでもよい。
サーバ300は、ネットワーク200に接続されている。サーバ300は、ネットワーク200を介して通信機器100との通信を行う。例えば、サーバ300は、通信機器100に対する各種の設定を行ったり、通信機器100からセンサデータを収集したりする。サーバ300は、必ずしも専用のサーバでなくてもよい。サーバ300は、所定のアプリケーションプログラムがインストールされた汎用の端末であってもよいし、クラウドサーバであってもよい。
サーバ300は、通信機器100のファームウェア更新が必要な場合、通信機器100の現在のファームウェアに対する変更内容を示す差分ファイルを通信機器100に提供する。差分ファイルは、更新の前後におけるファームウェアの差分に対応する差分プログラムと、更新後のファームウェアのバージョンを示すバージョン番号とを含む。なお、サーバ300は、センサデータを収集するサーバ機能と差分ファイルを提供するサーバ機能とに物理的又は論理的に分割されていてもよい。
通信機器100は、無線通信によって差分ファイルを受信し、受信した差分ファイルに基づいてファームウェア更新を行う。このようなFOTAには、ファームウェア更新があるときにサーバ300から通信機器100に対して差分ファイルを配信するプッシュ型の方法がある。プッシュ型でファームウェア更新を行う方法としては、OMA(Open Mobile Alliance)で策定されたLwM2M(Lightweight Machine to Machine)のプロトコルを用いたファームウェア更新方法がある。また、FOTAには、通信機器100がファームウェア更新の有無をサーバ300に問い合わせたうえで通信機器100がサーバ300から差分ファイルを取得するプル型の方法がある。
端末400は、ネットワーク200を介してサーバ300にアクセスし、サーバ300から情報を受信し、受信した情報を表示する。例えば、端末400は、通信機器100に対する各種の設定を行うための設定画面を表示したり、サーバ300が収集したセンサデータを遠隔監視画面上に表示したりする。端末400は、可搬型の端末、例えばスマートフォン、タブレット端末、ノートPC、又はウェアラブル端末であってもよい。端末400は、据置の端末、例えばデスクトップPCであってもよい。
端末400には、サーバ300から受信する情報を表示するための専用のアプリケーションソフトウェアがインストールされていてもよい。端末400には、サーバ300から受信する情報を表示するための汎用のWebブラウザがインストールされていてもよい。
(通信機器の構成)
次に、一実施形態に係る通信機器100の構成について説明する。図2は、一実施形態に係る通信機器100の構成を示す図である。
図2に示すように、通信機器100は、アンテナ110と、RF(Radio Frequency)部120と、通信部130と、制御部140と、バッテリ150と、センサインターフェイス160とを有する。
アンテナ110及びRF部120は、無線信号を送受信する。具体的には、RF部120は、アンテナ110が受信する無線信号に対して増幅処理及びフィルタ処理等を行い、無線信号をベースバンド信号(受信信号)に変換して通信部130に出力する。また、RF部120は、通信部130から出力されるベースバンド信号(送信信号)を無線信号に変換し、増幅処理等を行ってアンテナ110から送信する。
通信部130は、LPWA方式に準拠する通信処理を行う通信用プロセッサ131を有する。通信用プロセッサ131は、モデム又はベースバンドプロセッサと呼ばれることがある。通信処理は、OSI参照モデルのレイヤ1及びレイヤ2の処理を含む。例えば、通信用プロセッサ131は、RF部120が出力する受信信号に対する復調処理及び復号処理等を行って、受信データを制御部140に出力する。また、通信用プロセッサ131は、制御部140が出力する送信データに対する符号化処理及び変調処理等を行って、送信信号をRF部120に出力する。
通信部130は、通信用メモリ132を有する。通信用メモリ132は、通信用プロセッサ131により実行される通信用ファームウェアを記憶するとともに、通信用プロセッサ131の作業領域として利用される。通信用メモリ132は、通信用ファームウェア等を記憶する不揮発性メモリ(ROM)と、作業領域として利用される揮発性メモリ(RAM)とを含む。
制御部140は、通信機器100における各種の処理及び制御を行う。制御部140は、マイクロコントローラ又はマイクロコンピュータと呼ばれることがある。制御部140は、制御用プロセッサ141を有する。制御用プロセッサ141は、アプリケーションプロセッサと呼ばれることがある。例えば、制御用プロセッサ141は、アプリケーション、FOTA、デバイスドライバ、及びOS(Operating System)の各プログラム(ファームウェア)を実行する。制御用プロセッサ141の詳細については後述する。
制御部140は、制御用メモリ142を有する。制御用メモリ142は、制御用プロセッサ141により実行される制御用ファームウェアを記憶するとともに、制御用プロセッサ141の作業領域として利用される。制御用メモリ142は、通信用ファームウェア等を記憶する不揮発性メモリ(ROM)と、作業領域として利用される揮発性メモリ(RAM)とを含む。
なお、通信用メモリ132の少なくとも一部と制御用メモリ142の少なくとも一部とが物理的に一体化されていてもよい。例えば、通信用メモリ132に含まれるROMと制御用メモリ142に含まれるROMとが物理的に一体化されていてもよいし、通信用メモリ132に含まれるRAMと制御用メモリ142に含まれるRAMとが物理的に一体化されていてもよい。
バッテリ150は、一次電池又は二次電池により構成され、通信機器100を駆動する電力を供給する。
センサインターフェイス160は、センサ170が電気的に接続されるインターフェイスである。例えば、センサインターフェイス160は、USB(Universal Serial Bus)規格、UART(Universal Asynchronous Receiver/Transmitter)規格、又はI2C(Inter-Integrated Circuit)規格のいずれかに準拠して構成される。センサインターフェイス160は、ケーブルを介さずにセンサ170と接続されてもよい。
センサインターフェイス160に接続され得るセンサ170は、例えば、温度センサ171、湿度センサ172、位置センサ173、加速度センサ174、地磁気センサ175、照度センサ176、気圧センサ177、及びジャイロセンサ178のうち少なくとも1つである。通信機器100のユーザは、自身のニーズに応じたセンサ170を必要に応じて購入し、このセンサ170を通信機器100に装着する。通信機器100に装着されたセンサ170は、ユーザにより取り外し又は取り替え可能である。通信機器100は、複数のポート161a,161b,・・・を有する。各ポートには、個別のセンサ170が電気的に接続される。
なお、温度センサ171は、温度を測定し、温度データをセンサデータとして出力するセンサである。湿度センサ172は、湿度を測定し、湿度データをセンサデータとして出力するセンサである。位置センサ173は、位置を測定し、位置データをセンサデータとして出力するセンサである。例えば、位置センサ173は、GNSS受信機を含んで構成される。加速度センサ174は、加速度を測定し、加速度データをセンサデータとして出力するセンサである。加速度センサ174は、一軸の加速度センサであってもよいし、多軸の加速度センサであってもよい。地磁気センサ175は、地磁気を測定し、地磁気データをセンサデータとして出力するセンサである。照度センサ176は、照度を測定し、照度データをセンサデータとして出力するセンサである。気圧センサ177は、気圧を測定し、気圧データをセンサデータとして出力するセンサである。ジャイロセンサ178は、角速度を測定し、角速度データをセンサデータとして出力するセンサである。
このように構成された通信機器100において、制御部140は、センサ170により得られたセンサデータをサーバ300に送信する送信処理(以下、「データ送信処理」と呼ぶ)を行うように通信部130を制御する。例えば、制御部140は、予め設定された送信条件が満たされたか否かを判定する。通信部130は、送信条件が満たされたときにデータ送信処理を行う。送信条件は、特定のセンサ170のセンサデータ(センサ値)が閾値を超えた又は下回ったという条件であってもよい。或いは、制御部140は、データ送信処理を周期的に実行するように通信部130を制御してもよい。
通信部130は、データ送信処理を行わない期間において省電力モードに設定されてもよい。省電力モードは、RF部120及び通信部130への給電が停止されるモードであってもよい。省電力モードは、3GPP(Third Generation Partnership Project)規格で規定されるPSM(Power Saving Mode)又はeDRX(extended Discontinuous Reception)であってもよい。
制御部140の制御用プロセッサ141は、アプリケーション処理部141aと、更新処理部141bとを有する。アプリケーション処理部141aは、制御用ファームウェアの一種であるアプリケーションプログラムに対応する機能部である。更新処理部141bは、FOTAによるファームウェア更新を行うファームウェア更新機能に対応する機能部である。
更新処理部141bは、プル型のファームウェア更新方法を利用してもよい。具体的には、更新処理部141bは、サーバ300にアクセスし、ファームウェア更新の有無をサーバ300に問い合わせたうえでサーバ300から差分ファイルを取得する。更新処理部141bは、取得した差分ファイルを用いて、更新対象のファームウェアを更新する。
更新対象のファームウェアは、制御用ファームウェアであってもよいし、通信用ファームウェアであってもよい。一般的に、通信用ファームウェアのサイズは、制御用ファームウェアのサイズよりも大きい。
図3は、一実施形態に係る通信用ファームウェアの更新処理を示す図である。
図3に示すように、通信部130に設けられた通信用メモリ132は、通信用ファームウェアを記憶する通信用ファームウェア記憶領域132aを含む。例えば、通信用ファームウェア記憶領域132aは、通信用メモリ132に含まれる不揮発性メモリに設けられる。
制御部140に設けられた制御用メモリ142は、制御用ファームウェアを記憶する制御用ファームウェア記憶領域142aと、通信用ファームウェアの更新処理に用いる更新用記憶領域142bとを含む。例えば、制御用ファームウェア記憶領域142aは、制御用メモリ142に含まれる不揮発性メモリに設けられる。更新用記憶領域142bは、制御用メモリ142に含まれる揮発性メモリに設けられる。
通信用ファームウェアを更新するためのFOTAが開始されると、通信部130は、通信用ファームウェアに対する更新内容を表す差分ファイルを無線通信により受信する。更新処理部141bは、通信部130が受信した差分ファイルを制御用メモリ142(更新用記憶領域142b又は他の記憶領域)に記憶させる。
更新処理部141bは、この差分ファイルに基づいて通信用ファームウェアの更新処理を実行する。ここで、更新処理部141bは、通信用ファームウェア記憶領域132aに記憶された通信用ファームウェアを複数のブロック(図3の例では、ブロック#1乃至#5)に分割し、更新用記憶領域142bを用いて1ブロックごとに更新処理を実行する。図3において、通信用ファームウェアの複数のブロックのそれぞれのサイズ(ブロックサイズ)が固定である一例を示している。ブロックサイズは、更新用記憶領域142bの記憶容量のサイズ以下のサイズである。
例えば、更新処理部141bは、更新用記憶領域142bを用いて1ブロックごとに更新処理を実行するとき、1)複数のブロック#1乃至#5に含まれる対象ブロック(例えば、ブロック#1)を通信用ファームウェア記憶領域132aから読み出すとともに、この対象ブロックを更新用記憶領域142bに書き込み、2)更新用記憶領域142b内で対象ブロックを差分ファイルと比較することで対象ブロックを更新し、3)更新された対象ブロックを更新用記憶領域142bから読み出すとともに、更新された対象ブロックを通信用ファームウェア記憶領域132aに書き込む(書き戻す)。例えば、更新処理部141bは、通信用ファームウェアのブロック#1を更新した場合、更新前のブロック#1を更新後のブロック#1で上書きする。
更新処理部141bは、更新された対象ブロックを通信用ファームウェア記憶領域132aに書き込むとともに、正しく書き込みが完了したか否かを確認する。更新処理部141bは、正しく書き込みが完了したことが確認されると、次のブロック(例えば、ブロック#2)を対象ブロックとして、上記1)乃至3)の更新処理を実行する。
このような更新処理部141bの動作を用いることで、更新用記憶領域142bの記憶容量は、通信用ファームウェア全体のサイズに合わせた大きな記憶容量ではなく、1ブロックのサイズに合わせた小さな記憶容量で済むことになるため、メモリのコストを削減できる。
また、通信用メモリ132が入出力する通信用ファームウェアはブロック単位に分割されているため、悪意のある第三者がメモリ入出力データを取得及び解析しても、通信用ファームウェアの内容を見破ることが難しいため、セキュリティを強化できる。
図4は、一実施形態に係る制御用ファームウェアの更新処理を示す図である。
図4に示すように、制御部140に設けられた制御用メモリ142は、制御用ファームウェアを記憶する制御用ファームウェア記憶領域142aと、制御用ファームウェアの更新処理に用いる更新用記憶領域142bとを含む。
更新用記憶領域142bは、上述した通信用ファームウェアの更新処理だけではなく、制御用ファームウェアの更新処理にも用いられる。すなわち、通信用ファームウェアの更新処理及び制御用ファームウェアの更新処理において更新用記憶領域142bを共通化している。これにより、更新用記憶領域142bを通信用メモリ132に設ける必要が無くなるため、通信用メモリ132の記憶容量を削減できる。
制御用ファームウェアを更新するためのFOTAが開始されると、通信部130は、制御用ファームウェアに対する更新内容を表す差分ファイルを無線通信により受信する。更新処理部141bは、通信部130が受信した差分ファイルを制御用メモリ142(更新用記憶領域142b又は他の記憶領域)に記憶させる。
更新処理部141bは、この差分ファイルに基づいて制御用ファームウェアの更新処理を実行する。ここで、更新処理部141bは、制御用ファームウェア記憶領域142aに記憶された制御用ファームウェアを複数のブロック(図4の例では、ブロック#1乃至#3)に分割し、更新用記憶領域142bを用いて1ブロックごとに更新処理を実行する。図4において、制御用ファームウェアの複数のブロックのそれぞれのサイズ(ブロックサイズ)が固定である一例を示している。ブロックサイズは、更新用記憶領域142bの記憶容量のサイズ以下のサイズである。
例えば、更新処理部141bは、更新用記憶領域142bを用いて1ブロックごとに更新処理を実行するとき、1)複数のブロック#1乃至#3に含まれる対象ブロック(例えば、ブロック#1)を制御用ファームウェア記憶領域142aから読み出すとともに、この対象ブロックを更新用記憶領域142bに書き込み、2)更新用記憶領域142b内で対象ブロックを差分ファイルと比較することで対象ブロックを更新し、3)更新された対象ブロックを更新用記憶領域142bから読み出すとともに、更新された対象ブロックを制御用ファームウェア記憶領域142aに書き込む(書き戻す)。例えば、更新処理部141bは、制御用ファームウェアのブロック#1を更新した場合、更新前のブロック#1を更新後のブロック#1で上書きする。
更新処理部141bは、更新された対象ブロックを制御用ファームウェア記憶領域142aに書き込むとともに、正しく書き込みが完了したか否かを確認する。更新処理部141bは、正しく書き込みが完了したことが確認されると、次のブロック(例えば、ブロック#2)を対象ブロックとして、上記1)乃至3)の更新処理を実行する。
このような更新処理部141bの動作を用いることで、更新用記憶領域142bの記憶容量は、制御用ファームウェア全体のサイズに合わせた大きな記憶容量ではなく、1ブロックのサイズに合わせた小さな記憶容量で済む。
(サーバの構成)
次に、一実施形態に係るサーバ300の構成について説明する。図5は、一実施形態に係るサーバ300の構成を示す図である。
図5に示すように、サーバ300は、通信部310と、制御部320とを有する。通信部310は、例えば、有線通信インターフェイスを含んで構成される。通信部310は、ネットワーク200と接続され、ネットワーク200を介して通信機器100との通信を行う。
制御部320は、サーバ300における各種の処理及び制御を行う。制御部320は、プロセッサ321及びメモリ322を有する。メモリ322は、プロセッサ321により実行されるプログラムを記憶するとともに、プロセッサ321の作業領域として利用される。メモリ322は、HDD又はSSD等の補助記憶装置を含む。
制御部320は、通信機器100からのセンサデータを収集及び管理する処理と、通信機器100のファームウェアを更新するために差分ファイルを通信機器100に提供する処理とを実行する。センサデータを収集するために、通信部310は、通信機器100がセンサ170により得たセンサデータを通信機器100から受信する受信処理を行う。制御部320は、通信機器100から受信したセンサデータを記憶及び管理する。
(通信機器の動作例)
図6は、一実施形態に係る通信機器100におけるファームウェア更新動作を示す図である。ここでは、通信用ファームウェアの更新動作を例に挙げて説明する。
図6に示すように、ステップS1において、更新処理部141bは、差分ファイルをダウンロードする。
ステップS2において、更新処理部141bは、通信用ファームウェア記憶領域132aに記憶された通信用ファームウェアの対象ブロック(例えば、ブロック#1)を読み出すとともに、この対象ブロックを更新用記憶領域142bに書き込む。
ステップS3において、更新処理部141bは、更新用記憶領域142b内で対象ブロックを差分ファイルと比較することで、この対象ブロックを更新する。
ステップS4において、更新処理部141bは、更新された対象ブロック(更新済みブロック)を更新用記憶領域142bから読み出すとともに、更新済みブロックを通信用ファームウェア記憶領域132aに書き込む(書き戻す)。
ステップS5において、更新処理部141bは、通信用ファームウェア記憶領域132aに対する更新済みブロックの書き込みが正しく完了したか否かを判定する。
ステップS5で「NO」の場合、ステップS7において、更新処理部141bは、エラー処理を実行する。エラー処理は、通信用ファームウェア記憶領域132aに対する更新済みブロックの書き込みを再度試行する処理であってもよい。エラー処理は、同じ対象ブロックについてステップS2からやり直す処理であってもよい。エラー処理は、ファームウェア更新失敗として更新動作を終了する処理であってもよい。
ステップS5で「YES」の場合、ステップS6において、更新処理部141bは、全ブロックについて更新が完了したか否かを判定する。ステップS6で「YES」の場合、更新動作が終了する。
ステップS6で「NO」の場合、ステップS8において、更新処理部141bは、次のブロックを対象ブロックとして選択する。そして、更新処理部141bは、次のブロックについてステップS2以降の処理を実行する。
(実施形態のまとめ)
以上説明したように、通信機器100は、通信用ファームウェア又は制御用ファームウェアを複数のブロックに分割し、更新用記憶領域142bを用いて1ブロックごとに更新処理を実行する。これにより、更新用記憶領域142bの記憶容量は、ファームウェア全体のサイズに合わせた大きな記憶容量ではなく、1ブロックのサイズに合わせた小さな記憶容量で済むため、制御用メモリ142として小容量のメモリを搭載できる。このため、通信部130の低コスト化を実現できる。
一実施形態において、更新処理部141bは、更新された対象ブロックを通信用ファームウェア記憶領域132a又は制御用ファームウェア記憶領域142aに書き込むとともに、正しく書き込みが完了したか否かを確認し、正しく書き込みが完了したことが確認されると、次のブロックを対象ブロックとして更新処理を実行する。これにより、ファームウェア更新の信頼性を高めることができる。
一実施形態において、更新処理部141bは、通信用ファームウェアに対する更新処理及び制御用ファームウェアに対する更新処理で、同じ更新用記憶領域142bを用いる。これにより、通信用ファームウェアに対する更新処理及び制御用ファームウェアに対する更新処理で別々の更新用記憶領域を用いる場合に比べて、全体的なメモリの記憶容量を削減できる。
一実施形態において、複数のブロックのそれぞれのサイズが固定である。例えば、1ブロックのサイズに合わせて、更新用記憶領域142bを小さな記憶容量とすることが容易である。
(変更例1)
次に、実施形態の変更例1について説明する。
上述したように、FOTAは、無線通信を用いてファームウェアを更新するものであるが、機能の追加や改善だけでなく、重大な不具合を修正する際にも利用される。そのため、通常のアプリケーションでは揮発性メモリ(RAM)を共用することが一般的であるが、FOTAでは、必ず動作できるよう専用にRAMを確保している。しかし、FOTAは頻繁に動作する機能ではないため、小メモリの機器においてRAMを有効利用する観点では、FOTAで使用するメモリを少しでも削減することが望まれる。
ここで、変更例1に係る動作の説明に先立ち、上述した実施形態に係る動作の詳細について説明する。図7は、実施形態に係る通信機器100の動作の詳細を示す図である。なお、図面において、ファームウェアをFWと略記している。
図7に示すように、通信機器100は、不揮発性メモリ領域を構成するROMと、揮発性メモリ領域を構成するRAM1乃至RAM3とを有する。ROMは、フラッシュメモリ等のEEPROM(Electrically Erasable Programmable Read-Only Memory)であってもよい。
ROMは、制御用メモリ142及び/又は通信用メモリ132に含まれる不揮発性メモリである。RAM1乃至RAM3は、制御用メモリ142及び/又は通信用メモリ132に含まれる揮発性メモリである。変更例1において、RAM1乃至RAM3は、更新用記憶領域142bを構成する。
ROMは、通信部130が無線通信により受信した差分ファイルを記憶する記憶領域R1と、作業領域として用いる記憶領域R2と、プログラム(ファームウェア)を記憶する記憶領域R3とを有する。記憶領域R3は、制御用ファームウェア記憶領域142a又は通信用ファームウェア記憶領域132aに相当する記憶領域である。
図7のステップS101において、更新処理部141bは、ROMの記憶領域R1から読み出した差分ファイル(差分データ)をRAM1に書き込む。ここで、差分ファイルは、圧縮された状態にある。
ステップS102において、更新処理部141bは、RAM1に記憶された差分ファイルを解凍し、解凍した差分ファイルをRAM2に書き込む。
ステップS103において、更新処理部141bは、ROMの記憶領域R3から未更新ファームウェアの1ブロック(対象ブロック)を読み出し、読み出した対象ブロックをRAM3に書き込む。
ステップS104において、更新処理部141bは、RAM2に記憶された解凍済みの差分ファイル(差分データ)と、RAM3に記憶された対象ブロックとを比較することで対象ブロックを更新する。ここで、RAM3は、比較処理のための不揮発性メモリとして用いられる。なお、更新後の対象ブロックは、更新されたファームウェアの1ブロックを構成する。
ステップS105において、更新処理部141bは、RAM3に記憶された更新済みの対象ブロックを読み出し、読み出した更新済みの対象ブロックをROMの記憶領域R2に書き込む。ここで、更新済みの対象ブロックを作業領域である記憶領域R2に書き込むのは、突然の電源断等が生じた場合に中断点から再開することを可能とするためである。
ステップS106において、更新処理部141bは、ROMの記憶領域R2に記憶された更新済みの対象ブロックを読み出し、読み出した更新済みの対象ブロックをROMの記憶領域R3に書き込む。ここで、更新処理部141bは、未更新のファームウェアの対象ブロックを、更新済みの対象ブロックで上書きしてもよい。
このような動作を全ブロックについて行うことにより、ROMの記憶領域R3に記憶されたファームウェアが更新される。しかしながら、このような動作において、RAM1乃至RAM3の合計3つのRAMが必要である。
次に、実施形態の変更例1に係る通信機器100の動作について説明する。図8は、実施形態の変更例1に係る通信機器100の動作を示す図である。ここでは、図7の動作との相違点について主として説明する。
図8に示すように、ステップS201において、更新処理部141bは、ROMの記憶領域R1から読み出した差分ファイル(差分データ)をRAM1に書き込む。ここで、差分ファイルは、圧縮された状態にある。
ステップS202において、更新処理部141bは、RAM1に記憶された差分ファイルを解凍し、解凍した差分ファイルをRAM2に書き込む。
ステップS203において、更新処理部141bは、RAM2に記憶された解凍済みの差分ファイル(差分データ)を読み出し、読み出した解凍済みの差分ファイルをROMの記憶領域R2に書き込む。すなわち、更新処理部141bは、RAM2に記憶された解凍済みの差分ファイルをROMの作業領域(記憶領域R2)に退避させる。
ステップS204において、更新処理部141bは、ROMの記憶領域R3から未更新ファームウェアの1ブロック(対象ブロック)を読み出し、読み出した対象ブロックをRAM2に書き込む。すなわち、RAM2が再利用される。
ステップS205において、更新処理部141bは、ROMの記憶領域R2に記憶された解凍済みの差分ファイル(差分データ)と、RAM2に記憶された対象ブロックとを比較することで対象ブロックを更新する。更新後の対象ブロックは、更新されたファームウェアの1ブロックを構成する。
ステップS206において、更新処理部141bは、RAM2に記憶された更新済みの対象ブロックを読み出し、読み出した更新済みの対象ブロックをROMの記憶領域R2に書き込む。
ステップS207において、更新処理部141bは、ROMの記憶領域R2に記憶された更新済みの対象ブロックを読み出し、読み出した更新済みの対象ブロックをROMの記憶領域R3に書き込む。ここで、更新処理部141bは、未更新のファームウェアの対象ブロックを、更新済みの対象ブロックで上書きしてもよい。
このような動作を全ブロックについて行うことにより、ROMの記憶領域R3に記憶されたファームウェアが更新される。
変更例1に係る更新処理部141bは、圧縮ファイルである差分ファイルを揮発性メモリ領域(RAM2)において解凍すると、解凍した差分ファイルを不揮発性メモリ領域(ROMの記憶領域R2)に退避させる。そして、更新処理部141bは、対象ブロックを揮発性メモリ領域(RAM2)に書き込むと、揮発性メモリ領域(RAM2)に記憶された対象ブロックを、不揮発性メモリ領域(ROMの記憶領域R2)に記憶された差分ファイルと比較することで対象ブロックを更新する。
解凍した差分ファイルを不揮発性メモリ領域(ROMの記憶領域R2)に退避させることにより、揮発性メモリ領域(RAM2)を比較処理に再利用できるため、比較処理用のRAM3を不要とすることができる。よって、FOTAに必要なRAMを3つから2つに削減できるため、省メモリの機器においてもFOTAを実現し易くすることができる。
(変更例2)
次に、実施形態の変更例2について説明する。
FOTAによる更新処理中に差分ファイルを解凍した際に、未更新ファームウェア(旧FW)及び更新されたファームウェア(新FW)のデータパターンに依存して、解凍済みの差分ファイルが予め用意したRAM領域を超えてしまう場合があり得る。この場合、RAMサイズオーバが発生し、FOTAによる更新に失敗してしまうという問題がある。変更例2は、このような問題を解決するための実施例である。
具体的には、差分ファイルを作成する情報処理装置は、あるブロックに対応する差分データのサイズが、通信機器100で予め用意したRAMサイズを超えてしまう場合、そのブロックは差分データではなく新FWのブロックを差分データとして扱って処理を継続する。
ここで、差分ファイルを作成する情報処理装置とは、図1に示すサーバ300であってもよいし、サーバ300に差分ファイルを提供する装置であってもよい。情報処理装置は、少なくとも1つのプロセッサ及び少なくとも1つのメモリを有する少なくとも1つのコンピュータである。
そして、情報処理装置は、差分データに代えて新FWのブロックを追加する場合、該当するブロックのヘッダに、差分データではないことを示す情報を追加する。通信機器100の更新処理部141bは、FOTA処理において、ヘッダを読みだした際に、差分データではない場合、該当するブロックの差分適用処理をスキップする。
図9は、変更例2に係る情報処理装置が差分ファイルを生成する際のデータフローを示す図である。
図9(a)及び(b)に示すように、情報処理装置は、未更新ファームウェア(旧FW)を複数のブロックに分割するとともに、更新されたファームウェア(新FW)を複数のブロックに分割する。各ブロックのサイズ及びブロック分割数は固定であってもよい。
図9(c)に示すように、情報処理装置は、未更新ファームウェアの1つのブロック(以下、「未更新ブロック」と呼ぶ)を取得するとともに、更新されたファームウェアの対応する1つのブロック(以下、「更新されたブロック」と呼ぶ)を取得し、未更新ブロックと更新されたブロックとの差分を抽出し、差分データを生成する。
図9(d)に示すように、情報処理装置は、生成した差分データのサイズが所定サイズ(最大RAMサイズ)を超えるか否かを判定し、超えない場合には差分データを選択し、超える場合には更新されたブロックを差分データとして選択する。
図9(e)に示すように、情報処理装置は、選択した差分データ(更新されたブロックであり得る)を圧縮する。
図9(f)及び(g)に示すように、情報処理装置は、圧縮した差分データに連結するヘッダを生成する。ここで、情報処理装置は、圧縮した差分データが更新されたブロックである場合、差分抽出していないデータであることを示す情報を含むヘッダを生成し、圧縮した差分データにヘッダを連結する。圧縮した差分データとヘッダとが連結されたものをファイルと呼ぶ。
情報処理装置は、このような動作を全ブロックについて適用することにより、複数のブロックに対応する複数のファイルからなる差分ファイルを生成する。そして、情報処理装置により生成された差分ファイルは、図1に示すサーバ300から通信機器100に対して配信される。
図10は、変更例2に係る情報処理装置が差分ファイルを生成する際の動作フローを示す図である。
図10に示すように、ステップS301において、情報処理装置は、未更新ファームウェアの1つの未更新ブロックを読み込む。
ステップS302において、情報処理装置は、更新されたファームウェアの対応する1つのブロック(更新されたブロック)を読み込む。
ステップS303において、情報処理装置は、未更新ブロックと更新されたブロックとの差分を抽出し、差分データを生成する。
ステップS304において、情報処理装置は、生成した差分データのサイズが所定サイズ(最大RAMサイズ)未満であるか否かを判定する。生成した差分データのサイズが所定サイズ未満である場合(ステップS304:YES)、情報処理装置は、処理をステップS307に進める。
一方、生成した差分データのサイズが所定サイズ以上である場合(ステップS304:NO)、情報処理装置は、更新されたブロックをそのまま差分データとして使用し(ステップS305)、該当するブロックのヘッダ情報に差分抽出していないことを示す情報を追加し(ステップS306)、処理をステップS307に進める。
ステップS307において、情報処理装置は、差分データ(更新されたブロックであり得る)を圧縮する。
ステップS308において、情報処理装置は、ヘッダを付加する。そして、情報処理装置は、圧縮した差分データにヘッダを連結する(ステップS309)。
ステップS310において、情報処理装置は、該当するブロックが最終ブロックであるか否かを判定する。該当するブロックが最終ブロックである場合(ステップS310:YES)、本動作が終了する。一方、該当するブロックが最終ブロックではない場合(ステップS310:NO)、情報処理装置は、処理をステップS301に戻し、次のブロックを対象として動作を再開する。
次に、変更例2に係る通信機器100の動作について説明する。図11は、変更例2に係る通信機器100の動作を示す図である。ここでは、図8の動作との相違点について主として説明する。
図11に示すように、通信機器100の更新処理部141bは、ROMの記憶領域R1から読み出した差分ファイル(差分データ)をRAM1に書き込み(ステップS201)、RAM1に記憶された差分ファイルを解凍し、解凍した差分ファイルをRAM2に書き込む(ステップS202)。
ここで、更新処理部141bは、該当するブロックの差分データのヘッダを解読し、差分抽出していないことを示す情報がヘッダに含まれるか否かを判定する。差分抽出していないことを示す情報がヘッダに含まれていない場合、当該ヘッダに対応する差分データについては、上述の実施形態の変更例1と同様にして処理する。
一方、差分抽出していないことを示す情報がヘッダに含まれている場合、更新処理部141bは、当該ヘッダに対応する差分データを更新されたブロックとして取り扱い(ステップS401)、当該更新されたブロックをROMの記憶領域R2に書き込む(ステップS206)。すなわち、更新処理部141bは、差分ファイルに含まれる付加情報(ヘッダ情報)に基づいて、差分ファイルを構成する複数のファイルの中から、更新されたファームウェアのブロックを含むファイルを特定し、当該更新されたファームウェアのブロックをROM(ファームウェア記憶領域)に書き込む。
このように、変更例2において、差分ファイルを配信するための情報処理装置は、未更新のファームウェア及び更新されたファームウェアのそれぞれを複数のブロックに分割する処理と、未更新のファームウェアに対する更新されたファームウェアの更新内容を表す差分データをブロック単位で抽出する処理と、ブロック単位での差分データを含む差分ファイルを生成する処理とを実行する。情報処理装置は、特定のブロックに対応する差分データのサイズが所定サイズを超える場合、特定のブロックに対応する差分データを差分ファイルに含めることに代えて、特定のブロックに対応する更新されたファームウェアを差分ファイルに含める。
これにより、解凍済みの差分ファイル(差分データ)のサイズが予め用意したRAM領域を超えてしまうことを防止し、RAMサイズオーバの発生を抑制できるため、FOTAによる更新に失敗してしまう可能性を低減できる。
(その他の実施形態)
上述した実施形態において、複数のブロックのそれぞれのサイズが固定である一例について説明したが、複数のブロックのそれぞれのサイズが可変であってもよい。ブロックサイズを可変にすることで、例えばファームウェアのサイズに応じて最適な分割方法を指定可能になる。ブロックサイズを可変にする場合、差分ファイルには、複数のブロックのそれぞれのサイズを決定するための付加情報が付加されてもよい。付加情報は、ファームウェアの分割数を示す情報及び各ブロックのサイズを示す情報のうち少なくとも1つを含む。更新処理部141bは、付加情報に基づいて複数のブロックのそれぞれのサイズを決定し、決定した各ブロックのサイズに従ってファームウェアを分割する。
通信機器100又は情報処理装置が行う各処理をコンピュータに実行させるプログラムが提供されてもよい。プログラムは、コンピュータ読取り可能媒体に記録されていてもよい。コンピュータ読取り可能媒体を用いれば、コンピュータにプログラムをインストールすることが可能である。ここで、プログラムが記録されたコンピュータ読取り可能媒体は、非一過性の記録媒体であってもよい。非一過性の記録媒体は、特に限定されるものではないが、例えば、CD-ROMやDVD-ROM等の記録媒体であってもよい。
また、通信機器100が行う各処理を実行する機能部(回路)を集積化し、通信機器100の少なくとも一部を半導体集積回路(チップセット、SoC)として構成してもよい。
以上、図面を参照して実施形態について詳しく説明したが、具体的な構成は上述のものに限られることはなく、要旨を逸脱しない範囲内において様々な設計変更等をすることが可能である。
本願は、日本国特許出願第2019-233509号(2019年12月24日出願)及び日本国特許出願第2020-110969号(2020年6月26日出願)の優先権を主張し、その内容の全てが本願明細書に組み込まれている。

Claims (7)

  1. 無線通信を行う通信機器であって、
    前記通信機器のファームウェアを記憶するファームウェア記憶領域と、
    前記ファームウェアを更新する更新処理に用いる更新用記憶領域と、
    前記ファームウェアに対する更新内容を表す差分ファイルを前記無線通信により受信する通信部と、
    前記差分ファイルに基づいて前記更新処理を実行する更新処理部と、を備え、
    前記更新処理部は、前記ファームウェア記憶領域に記憶された前記ファームウェアを複数のブロックに分割し、前記更新用記憶領域を用いて1ブロックごとに前記更新処理を実行し、
    前記ファームウェア記憶領域は、不揮発性メモリ領域を含み、
    前記更新用記憶領域は、揮発性メモリ領域を含み、
    前記更新処理部は、前記更新用記憶領域を用いて1ブロックごとに前記更新処理を実行するとき、
    圧縮ファイルである前記差分ファイルを前記揮発性メモリ領域において解凍すると、解凍した差分ファイルを不揮発性メモリ領域に退避させ、
    前記差分ファイルを前記不揮発性メモリ領域に退避させた後、前記複数のブロックに含まれる対象ブロックを前記ファームウェア記憶領域から読み出すとともに、前記対象ブロックを前記差分ファイルの解凍に用いられた前記揮発性メモリ領域に書き込み
    前記揮発性メモリ領域に記憶された前記対象ブロックを、前記不揮発性メモリ領域に記憶された前記差分ファイルと比較することで前記対象ブロックを更新し、
    前記更新された対象ブロックを前記揮発性メモリ領域から読み出すとともに、前記更新された対象ブロックを前記ファームウェア記憶領域に書き込む
    通信機器。
  2. 前記更新処理部は、
    前記更新された対象ブロックを前記ファームウェア記憶領域に書き込むとともに、正しく書き込みが完了したか否かを確認し、
    正しく書き込みが完了したことが確認されると、次のブロックを前記対象ブロックとして前記更新処理を実行する
    請求項1に記載の通信機器。
  3. 前記複数のブロックのそれぞれのサイズが固定である
    請求項1又は2に記載の通信機器。
  4. 前記複数のブロックのそれぞれのサイズが可変であり、
    前記差分ファイルには、前記複数のブロックのそれぞれのサイズを決定するための付加情報が付加され、
    前記更新処理部は、前記付加情報に基づいて前記複数のブロックのそれぞれのサイズを決定する
    請求項1又は2に記載の通信機器。
  5. 前記ファームウェアには、通信用ファームウェア及び制御用ファームウェアがあり、
    前記更新処理部は、前記通信用ファームウェアに対する前記更新処理及び前記制御用ファームウェアに対する前記更新処理で、同じ前記更新用記憶領域を用いる
    請求項1乃至4のいずれか1項に記載の通信機器。
  6. 前記通信部を制御する制御部をさらに備え、
    前記制御部は、
    前記更新処理部として動作する制御用プロセッサと、
    前記更新用記憶領域を含む制御用メモリと、を有する
    請求項1乃至5のいずれか1項に記載の通信機器。
  7. 前記差分ファイルは、前記ファームウェア記憶領域に記憶された前記複数のブロックに対応する複数のファイルを含み、
    前記更新処理部は、
    前記差分ファイルに含まれる付加情報に基づいて、前記複数のファイルの中から、更新されたファームウェアのブロックを含むファイルを特定し、
    前記特定されたファイルに含まれる前記更新されたファームウェアのブロックを前記ファームウェア記憶領域に書き込む
    請求項1乃至6のいずれか1項に記載の通信機器。
JP2021567215A 2019-12-24 2020-12-10 通信機器及びプログラム Active JP7377893B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JP2019233509 2019-12-24
JP2019233509 2019-12-24
JP2020110969 2020-06-26
JP2020110969 2020-06-26
PCT/JP2020/046098 WO2021131754A1 (ja) 2019-12-24 2020-12-10 通信機器及びプログラム

Publications (3)

Publication Number Publication Date
JPWO2021131754A1 JPWO2021131754A1 (ja) 2021-07-01
JPWO2021131754A5 JPWO2021131754A5 (ja) 2022-08-23
JP7377893B2 true JP7377893B2 (ja) 2023-11-10

Family

ID=76575512

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021567215A Active JP7377893B2 (ja) 2019-12-24 2020-12-10 通信機器及びプログラム

Country Status (3)

Country Link
US (1) US20220318000A1 (ja)
JP (1) JP7377893B2 (ja)
WO (1) WO2021131754A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116400946A (zh) * 2023-02-24 2023-07-07 深圳市丰润达科技有限公司 基于区块差异的交换机升级方法、装置、设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012190075A (ja) 2011-03-08 2012-10-04 Clarion Co Ltd 更新差分データ作成装置、データ更新システムおよび更新差分データ作成プログラム
WO2016121442A1 (ja) 2015-01-26 2016-08-04 日立オートモティブシステムズ株式会社 車載制御装置、プログラム書き込み装置、プログラム生成装置及びプログラム
JP2016151979A (ja) 2015-02-19 2016-08-22 Necソリューションイノベータ株式会社 メンタルヘルスケア支援システム、装置、方法およびプログラム
WO2017172953A1 (en) 2016-03-30 2017-10-05 Square, Inc. Compressed firmware update
JP2019135662A (ja) 2014-09-03 2019-08-15 日本電気株式会社 休職予測システム、休職予測方法及びプログラム
JP6562121B1 (ja) 2018-06-07 2019-08-21 富士通株式会社 学習用データ生成プログラムおよび学習用データ生成方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6356961B1 (en) * 1994-06-03 2002-03-12 Motorola, Inc. Method and apparatus for minimizing an amount of data communicated between devices and necessary to modify stored electronic documents
US5832520A (en) * 1996-07-03 1998-11-03 Miller, Call, Plauck And Miller Automatic file differencing and updating system
US5918194A (en) * 1996-08-01 1999-06-29 Keithley Instruments, Inc. Integrated modular measurement system having configurable firmware architecture and modular mechanical parts
JP3863118B2 (ja) * 2002-04-01 2006-12-27 松下電器産業株式会社 受信装置、印刷装置およびファームウェア更新システム
JP4063615B2 (ja) * 2002-08-30 2008-03-19 Necエレクトロニクス株式会社 不揮発性メモリおよびその書き込み処理方法
US7320009B1 (en) * 2003-03-28 2008-01-15 Novell, Inc. Methods and systems for file replication utilizing differences between versions of files
JP4847930B2 (ja) * 2007-08-14 2011-12-28 富士通株式会社 無線端末装置
US20090083475A1 (en) * 2007-09-24 2009-03-26 Mediatek Inc. Apparatus and method for updating firmware stored in a memory
ES2371995T3 (es) * 2007-12-13 2012-01-12 Telefonaktiebolaget Lm Ericsson (Publ) Actualización del firmware de un dispositivo electrónico.
TWI384367B (zh) * 2008-12-31 2013-02-01 Askey Computer Corp 韌體更新系統及方法
JP5342302B2 (ja) * 2009-03-30 2013-11-13 株式会社日立ソリューションズ ファームウェア更新システム、ファームウェア配信サーバ、及びプログラム
JP5478986B2 (ja) * 2009-08-21 2014-04-23 株式会社日立ソリューションズ 情報機器及びプログラム
US20120144380A1 (en) * 2010-12-07 2012-06-07 Samsung Electronics Co. Ltd. Method for generating delta file using basic blocks
JP6609508B2 (ja) * 2016-04-27 2019-11-20 日立オートモティブシステムズ株式会社 車両用電子制御装置、プログラム更新方法
JP2018160208A (ja) * 2017-03-24 2018-10-11 日立オートモティブシステムズ株式会社 車載制御装置、及び、プログラム更新ソフトウェア
CN110402428B (zh) * 2017-03-24 2024-01-30 日立安斯泰莫株式会社 车载控制装置、及程序更新软件
EP3647944A1 (en) * 2018-10-30 2020-05-06 Shenzhen Goodix Technology Co., Ltd. Memory optimized block-based differential update algorithm

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012190075A (ja) 2011-03-08 2012-10-04 Clarion Co Ltd 更新差分データ作成装置、データ更新システムおよび更新差分データ作成プログラム
JP2019135662A (ja) 2014-09-03 2019-08-15 日本電気株式会社 休職予測システム、休職予測方法及びプログラム
WO2016121442A1 (ja) 2015-01-26 2016-08-04 日立オートモティブシステムズ株式会社 車載制御装置、プログラム書き込み装置、プログラム生成装置及びプログラム
JP2016151979A (ja) 2015-02-19 2016-08-22 Necソリューションイノベータ株式会社 メンタルヘルスケア支援システム、装置、方法およびプログラム
WO2017172953A1 (en) 2016-03-30 2017-10-05 Square, Inc. Compressed firmware update
JP6562121B1 (ja) 2018-06-07 2019-08-21 富士通株式会社 学習用データ生成プログラムおよび学習用データ生成方法

Also Published As

Publication number Publication date
WO2021131754A1 (ja) 2021-07-01
US20220318000A1 (en) 2022-10-06
JPWO2021131754A1 (ja) 2021-07-01

Similar Documents

Publication Publication Date Title
EP3171242B1 (en) Electronic device and method for configuring display thereof
EP3206110B1 (en) Method of providing handwriting style correction function and electronic device adapted thereto
CN107273160A (zh) 一种版本升级的方法及装置
CN106020875B (zh) 嵌入式终端的固件更新管理方法和装置
US9710340B2 (en) Replacement of a corrupt driver variable record
WO2018113298A1 (zh) 一种提示用户更新应用版本的方法及设备
JP7325523B2 (ja) 電子機器及び制御方法
CN106066686A (zh) 一种信息处理方法及终端设备
US20170083261A1 (en) Electronic device and method of analyzing fragmentation of electronic device
JP7377893B2 (ja) 通信機器及びプログラム
CN103294464A (zh) 便携终端中验证主机设备的操作系统的设备和方法
CN102740279B (zh) 一种无线网络接入终端及其运行方法
CN112148337A (zh) 一种固件升级方法及装置
CN104850425A (zh) 信息处理装置以及该装置中的设定值的更新方法
CN109791485B (zh) 基于网状网络的空中调制解调器固件升级
KR20150019813A (ko) 컨텐츠 무결성 제어 방법 및 그 전자 장치
CN106990988A (zh) 一种程序更新的方法及装置
CN107608923B (zh) 测试的处理方法及相关产品
CN103699571A (zh) 一种文件同步方法、装置及电子设备
CN105740025A (zh) 基于蓝牙的固件程序升级方法和装置
JP7386261B2 (ja) 通信機器及び制御方法
KR20190021773A (ko) 전자 장치 및 그의 데이터 운용 방법
CN117150478A (zh) 一种基于片上系统的信任根、芯片以及数据校验方法
US20170168800A1 (en) Reporting Marine Electronics Data and Performing Software Updates on Marine Electronic Peripheral Devices
CN109933471A (zh) Android设备及其产测方法、装置、计算机可读存储介质

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220623

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220623

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230509

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230707

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230822

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231006

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: 20231017

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231030

R150 Certificate of patent or registration of utility model

Ref document number: 7377893

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150