(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-15
(45)【発行日】2023-11-24
(54)【発明の名称】通信機器及び制御方法
(51)【国際特許分類】
G06F 8/65 20180101AFI20231116BHJP
【FI】
G06F8/65
(21)【出願番号】P 2021567214
(86)(22)【出願日】2020-12-10
(86)【国際出願番号】 JP2020046097
(87)【国際公開番号】W WO2021131753
(87)【国際公開日】2021-07-01
【審査請求日】2022-06-23
(31)【優先権主張番号】P 2019233507
(32)【優先日】2019-12-24
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000006633
【氏名又は名称】京セラ株式会社
(74)【代理人】
【識別番号】110001106
【氏名又は名称】弁理士法人キュリーズ
(72)【発明者】
【氏名】中井 完途
【審査官】▲はま▼中 信行
(56)【参考文献】
【文献】特開2017-228077(JP,A)
【文献】国際公開第2019/009020(WO,A1)
【文献】特開2015-176234(JP,A)
【文献】特開2005-228200(JP,A)
【文献】特開2019-036111(JP,A)
【文献】米国特許出願公開第2019/0210545(US,A1)
【文献】米国特許出願公開第2019/0042227(US,A1)
【文献】米国特許出願公開第2018/0115522(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/65
(57)【特許請求の範囲】
【請求項1】
無線通信を行う通信機器であって、
センサにより得られたセンサデータをサーバに送信する送信処理を行う通信部と、
前記通信機器のファームウェア更新に用いる更新用ファイルを前記サーバに問い合わせて取得するファームウェア更新機能を有する制御部と、
記憶部と、を備え、
前記制御部は、前記送信処理の後に前記通信部を介して前記サーバから取得される前記ファームウェア更新機能を起動することを示す起動情報に基づいて、前記ファームウェア更新機能を起動し、
前記ファームウェア更新機能は、前記制御部によって起動されるまで停止状態に維持され
、
前記制御部は、前記ファームウェア更新機能を起動した後、前記ファームウェア更新機能によって前記ファームウェア更新が完了した場合、前記ファームウェア更新機能を前記停止状態に戻し、
前記制御部は、
前記送信処理の際に、前記ファームウェア更新機能を起動することを示す前記起動情報を前記サーバから取得した場合、前記ファームウェア更新機能を起動することを示すフラグ情報を前記記憶部に書き込むとともに、前記制御部を初期化する第1初期化処理を行い、
前記第1初期化処理の後、前記記憶部に前記フラグ情報が書き込まれていることに応じて前記ファームウェア更新機能を起動する
通信機器。
【請求項2】
前記制御部は、前記ファームウェア更新機能によって前記ファームウェア更新が完了した場合、前記フラグ情報を前記記憶部から削除する
請求項
1に記載の通信機器。
【請求項3】
前記制御部は、
前記ファームウェア更新機能によって前記ファームウェア更新を行った後、前記制御部を初期化する第2初期化処理を行い、
前記第2初期化処理の後、前記制御部が更新後のファームウェアにより正常に動作している場合、前記ファームウェア更新の完了を前記サーバに通知する
請求項1
又は2に記載の通信機器。
【請求項4】
無線通信を行う通信機器
であって、通信部と、制御部と、記憶部と、を備える通信機器を制御する制御方法であって、
前記制御部が、前記通信機器のファームウェア更新に用いる更新用ファイルをサーバに問い合わせて取得するファームウェア更新機能を停止状態に維持することと、
前記通信部が、センサにより得られたセンサデータを前記サーバに送信する送信処理を行うことと、
前記制御部が、前記送信処理の後に前記サーバから取得される前記ファームウェア更新機能を起動することを示す起動情報に基づいて、前記ファームウェア更新機能を起動することと、
前記制御部が、前記ファームウェア更新機能を起動した後、前記ファームウェア更新機能によって前記ファームウェア更新が完了した場合、前記ファームウェア更新機能を前記停止状態に戻すことと、
前記制御部が、前記送信処理の際に、前記ファームウェア更新機能を起動することを示す前記起動情報を前記サーバから取得した場合、前記ファームウェア更新機能を起動することを示すフラグ情報を前記記憶部に書き込むとともに、前記制御部を初期化する第1初期化処理を行うことと、
前記制御部が、前記第1初期化処理の後、前記記憶部に前記フラグ情報が書き込まれていることに応じて前記ファームウェア更新機能を起動することと、
を有する
制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、通信機器、サーバ、及び制御方法に関する。
【背景技術】
【0002】
近年、機器に組み込まれる制御プログラムであるファームウェアを無線通信によって配信及び更新するFOTA(Firmware Over the Air)と呼ばれる技術が広く用いられている(例えば、特許文献1参照)。
【0003】
FOTAには、ファームウェア更新があるときにサーバから機器に対して差分ファイル(更新用ファイル)を配信するプッシュ型の方法と、機器がファームウェア更新の有無をサーバに問い合わせたうえで機器がサーバから差分ファイルを取得するプル型の方法とがある。
【0004】
また、プッシュ型でファームウェア更新を行う方法としては、OMA(Open Mobile Alliance)で策定されたLwM2M(Lightweight Machine to Machine)のプロトコルを用いたファームウェア更新方法が知られている。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【0006】
第1の態様に係る通信機器は、無線通信を行う機器であって、センサにより得られたセンサデータをサーバに送信する送信処理を行う通信部と、前記通信機器のファームウェア更新に用いる更新用ファイルを前記サーバに問い合わせて取得するファームウェア更新機能を有する制御部とを備える。前記制御部は、前記送信処理の際に前記通信部を介して前記サーバから取得される起動情報に基づいて、前記ファームウェア更新機能を起動する。前記ファームウェア更新機能は、前記制御部によって起動されるまで停止状態に維持される。
【0007】
第2の態様に係るサーバは、通信機器との通信を行うサーバであって、前記通信機器がセンサにより得たセンサデータを前記通信機器から受信する受信処理を行う通信部と、前記通信機器のファームウェア更新の必要がある場合、前記受信処理の際に前記通信部を介して前記通信機器に起動情報を通知する制御部とを備える。前記起動情報は、前記通信機器が有するファームウェア更新機能を起動させる。前記ファームウェア更新機能は、前記ファームウェア更新に用いる更新用ファイルを前記通信機器が前記サーバに問い合わせて取得する機能である。
【0008】
第3の態様に係る制御方法は、無線通信を行う通信機器を制御する制御方法であって、前記通信機器のファームウェア更新に用いる更新用ファイルをサーバに問い合わせて取得するファームウェア更新機能を停止状態に維持することと、センサにより得られたセンサデータを前記サーバに送信する送信処理を行うことと、前記送信処理の際に前記サーバから取得される起動情報に基づいて、前記ファームウェア更新機能を起動することとを有する。
【0009】
第4の態様に係る制御方法は、通信機器との通信を行うサーバを制御する制御方法であって、前記通信機器がセンサにより得たセンサデータを前記通信機器から受信する受信処理を行うことと、前記通信機器のファームウェア更新の必要がある場合、前記受信処理の際に前記通信機器に起動情報を通知することとを有する。前記起動情報は、前記通信機器が有するファームウェア更新機能を起動させる。前記ファームウェア更新機能は、前記ファームウェア更新に用いる更新用ファイルを前記通信機器が前記サーバに問い合わせて取得する機能である。
【図面の簡単な説明】
【0010】
【
図1】一実施形態に係る通信システムの構成を示す図である。
【
図2】一実施形態に係る通信機器の構成を示す図である。
【
図3】一実施形態に係るサーバの構成を示す図である。
【
図4】ファームウェア更新の必要がない場合の動作例を示す図である。
【
図5】ファームウェア更新の必要がある場合の動作例を示す図である(その1)。
【
図6】ファームウェア更新の必要がある場合の動作例を示す図である(その2)。
【発明を実施するための形態】
【0011】
プッシュ型のファームウェア更新方法に機器が対応していない場合、プル型のファームウェア更新方法を利用することになるが、次のような問題がある。
【0012】
具体的には、プル型のファームウェア更新方法において、機器は、アップロードすべきデータが存在しないような場合であっても、定期的にサーバにアクセスしてファームウェア更新の有無を確認する必要がある。よって、このようなファームウェア更新の有無を確認する処理に起因して、機器の消費電力及びデータ通信に関わるリソース使用量が増加するという問題があった。
【0013】
そこで、本開示は、プル型のファームウェア更新方法を利用する場合であっても、ファームウェア更新のための消費電力及びリソース使用量の増加を抑制することを目的とする。
【0014】
図面を参照して実施形態について説明する。図面の記載において、同一又は類似の部分には同一又は類似の符号を付している。
【0015】
(通信システムの構成)
まず、一実施形態に係る通信システムの構成について説明する。
図1は、一実施形態に係る通信システム1の構成を示す図である。
【0016】
図1に示すように、通信システム1は、通信機器100と、ネットワーク200と、サーバ300と、端末400とを有する。
【0017】
通信機器100は、通信機能を有する機器であって、例えば遠隔監視等のセンシングの用途で用いる機器である。通信機器100は、センシングに関する様々なサービスに対応可能とするために、測定に使用するセンサの種類をユーザがカスタマイズ可能な構成を有する。
【0018】
例えば、通信機器100は、センサ170を着脱可能な構成を有しており、汎用性が高く、且つ低コストで提供可能である。ここで「着脱可能」とは、センサ170が通信機器100に物理的に取り付け(装着)及び取り外しが可能である場合に限らず、センサ170が通信機器100にケーブル等を介して電気的に接続及び切断が可能である場合も含む。但し、通信機器100は、センサ170を予め搭載していてもよい。
【0019】
通信機器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)であってもよい。
【0020】
ネットワーク200には、通信機器100との無線通信を行う基地局201が設けられている。ネットワーク200は、広域通信網(WAN:Wide Area Network)を含む。ネットワーク200は、インターネットをさらに含んでもよい。
【0021】
サーバ300は、ネットワーク200に接続されている。サーバ300は、ネットワーク200を介して通信機器100との通信を行う。例えば、サーバ300は、通信機器100に対する各種の設定を行ったり、通信機器100からセンサデータを収集したりする。サーバ300は、必ずしも専用のサーバでなくてもよい。サーバ300は、所定のアプリケーションプログラムがインストールされた汎用の端末であってもよいし、クラウドサーバであってもよい。
【0022】
サーバ300は、通信機器100のファームウェア更新が必要な場合、通信機器100の現在のファームウェアに対する変更内容を示す差分ファイル(更新用ファイル)を通信機器100に提供する。差分ファイル(更新用ファイル)は、更新の前後におけるファームウェアの差分に対応する差分プログラムと、更新後のファームウェアのバージョンを示すバージョン番号とを含む。なお、サーバ300は、センサデータを収集するサーバ機能と差分ファイルを提供するサーバ機能とに物理的又は論理的に分割されていてもよい。
【0023】
ファームウェア更新の方法としては、プル型のファームウェア更新方法を利用する。通信機器100は、サーバ300にアクセスし、ファームウェア更新の有無をサーバ300に問い合わせたうえでサーバ300から差分ファイルを取得する。
【0024】
端末400は、ネットワーク200を介してサーバ300にアクセスし、サーバ300から情報を受信し、受信した情報を表示する。例えば、端末400は、通信機器100に対する各種の設定を行うための設定画面を表示したり、サーバ300が収集したセンサデータを遠隔監視画面上に表示したりする。端末400は、可搬型の端末、例えばスマートフォン、タブレット端末、ノートPC、又はウェアラブル端末であってもよい。端末400は、据置の端末、例えばデスクトップPCであってもよい。
【0025】
端末400には、サーバ300から受信する情報を表示するための専用のアプリケーションソフトウェアがインストールされていてもよい。端末400には、サーバ300から受信する情報を表示するための汎用のWebブラウザがインストールされていてもよい。
【0026】
(通信機器の構成)
次に、一実施形態に係る通信機器100の構成について説明する。
図2は、一実施形態に係る通信機器100の構成を示す図である。
【0027】
図2に示すように、通信機器100は、アンテナ110と、RF(Radio Frequency)部120と、通信部130と、制御部140と、バッテリ150と、センサインターフェイス160とを有する。
【0028】
アンテナ110及びRF部120は、無線信号を送受信する。具体的には、RF部120は、アンテナ110が受信する無線信号に対して増幅処理及びフィルタ処理等を行い、無線信号をベースバンド信号(受信信号)に変換して通信部130に出力する。また、RF部120は、通信部130から出力されるベースバンド信号(送信信号)を無線信号に変換し、増幅処理等を行ってアンテナ110から送信する。
【0029】
通信部130は、LPWA方式に準拠する通信処理を行う通信用プロセッサ131を有する。通信用プロセッサ131は、モデム又はベースバンドプロセッサと呼ばれることがある。通信処理は、OSI参照モデルのレイヤ1及びレイヤ2の処理を含む。例えば、通信用プロセッサ131は、RF部120が出力する受信信号に対する復調処理及び復号処理等を行って、受信データを制御部140に出力する。また、通信用プロセッサ131は、制御部140が出力する送信データに対する符号化処理及び変調処理等を行って、送信信号をRF部120に出力する。
【0030】
通信部130は、通信用メモリ132を有する。通信用メモリ132は、通信用プロセッサ131により実行される通信用ファームウェアを記憶するとともに、通信用プロセッサ131の作業領域として利用される。通信用メモリ132は、通信用ファームウェア等を記憶する不揮発性のメモリ(ROM)と、作業領域として利用される揮発性のメモリ(RAM)とを含む。
【0031】
制御部140は、通信機器100における各種の処理及び制御を行う。制御部140は、制御用プロセッサ141を有する。制御用プロセッサ141は、アプリケーションプロセッサと呼ばれることがある。例えば、制御用プロセッサ141は、アプリケーション、FOTA、デバイスドライバ、及びOS(Operating System)の各プログラム(ファームウェア)を実行する。制御用プロセッサ141の詳細については後述する。
【0032】
制御部140は、制御用メモリ142を有する。制御用メモリ142は、制御用プロセッサ141により実行される制御用ファームウェアを記憶するとともに、制御用プロセッサ141の作業領域として利用される。制御用メモリ142は、通信用ファームウェア等を記憶する不揮発性のメモリ(ROM)と、作業領域として利用される揮発性のメモリ(RAM)とを含む。
【0033】
なお、通信用メモリ132の少なくとも一部と制御用メモリ142の少なくとも一部とが物理的に一体化されていてもよい。例えば、通信用メモリ132に含まれるROMと制御用メモリ142に含まれるROMとが物理的に一体化されていてもよいし、通信用メモリ132に含まれるRAMと制御用メモリ142に含まれるRAMとが物理的に一体化されていてもよい。
【0034】
バッテリ150は、一次電池又は二次電池により構成され、通信機器100を駆動する電力を供給する。
【0035】
センサインターフェイス160は、センサ170が電気的に接続されるインターフェイスである。例えば、センサインターフェイス160は、USB(Universal Serial Bus)規格、UART(Universal Asynchronous Receiver/Transmitter)規格、又はI2C(Inter-Integrated Circuit)規格のいずれかに準拠して構成される。センサインターフェイス160は、ケーブルを介さずにセンサ170と接続されてもよい。
【0036】
センサインターフェイス160に接続され得るセンサ170は、例えば、温度センサ171、湿度センサ172、位置センサ173、加速度センサ174、地磁気センサ175、照度センサ176、気圧センサ177、及びジャイロセンサ178のうち少なくとも1つである。通信機器100のユーザは、自身のニーズに応じたセンサ170を必要に応じて購入し、このセンサ170を通信機器100に装着する。通信機器100に装着されたセンサ170は、ユーザにより取り外し又は取り替え可能である。通信機器100は、複数のポート161a,161b,・・・を有する。各ポートには、個別のセンサ170が電気的に接続される。
【0037】
なお、温度センサ171は、温度を測定し、温度データをセンサデータとして出力するセンサである。湿度センサ172は、湿度を測定し、湿度データをセンサデータとして出力するセンサである。位置センサ173は、位置を測定し、位置データをセンサデータとして出力するセンサである。例えば、位置センサ173は、GNSS受信機を含んで構成される。加速度センサ174は、加速度を測定し、加速度データをセンサデータとして出力するセンサである。加速度センサ174は、一軸の加速度センサであってもよいし、多軸の加速度センサであってもよい。地磁気センサ175は、地磁気を測定し、地磁気データをセンサデータとして出力するセンサである。照度センサ176は、照度を測定し、照度データをセンサデータとして出力するセンサである。気圧センサ177は、気圧を測定し、気圧データをセンサデータとして出力するセンサである。ジャイロセンサ178は、角速度を測定し、角速度データをセンサデータとして出力するセンサである。
【0038】
このように構成された通信機器100において、制御部140は、センサ170により得られたセンサデータをサーバ300に送信する送信処理(以下、「データ送信処理」と呼ぶ)を行うように通信部130を制御する。例えば、制御部140は、予め設定された送信条件が満たされたか否かを判定する。通信部130は、送信条件が満たされたときにデータ送信処理を行う。送信条件は、特定のセンサ170のセンサデータ(センサ値)が閾値を超えた又は下回ったという条件であってもよい。或いは、制御部140は、データ送信処理を周期的に実行するように通信部130を制御してもよい。
【0039】
通信部130は、データ送信処理を行わない期間において省電力モードに設定される。省電力モードは、RF部120及び通信部130への給電が停止されるモードであってもよい。省電力モードは、3GPP(Third Generation Partnership Project)規格で規定されるPSM(Power Saving Mode)又はeDRX(extended Discontinuous Reception)であってもよい。
【0040】
制御部140の制御用プロセッサ141は、アプリケーション処理部141aと、FOTA機能部141bとを有する。アプリケーション処理部141aは、制御用ファームウェアの一種であるアプリケーションプログラムに対応する機能部である。FOTA機能部141bは、FOTAによるファームウェア更新を行うファームウェア更新機能に対応する機能部である。
【0041】
FOTA機能部141bは、プル型のファームウェア更新方法を利用する。具体的には、FOTA機能部141bは、サーバ300にアクセスし、ファームウェア更新の有無をサーバ300に問い合わせたうえでサーバ300から差分ファイルを取得する。FOTA機能部141bは、取得した差分ファイルを用いて、更新対象のファームウェアを更新する。更新対象のファームウェアは、制御用ファームウェアであってもよいし、通信用ファームウェアであってもよい。
【0042】
一般的なプル型のファームウェア更新方法では、FOTA機能部141b(ファームウェア更新機能)は、常時、起動状態に維持される。このため、FOTA機能部141b(ファームウェア更新機能)は、実際にはファームウェア更新が必要ではない場合であっても、ファームウェア更新の有無をサーバ300に問い合わせる。このような定常的な問い合わせはデータ通信量の増加及び消費電力の増加を引き起こす。このため、一実施形態においては、ファームウェア更新が必要な場合に限ってFOTA機能部141bを起動することを可能とする。
【0043】
具体的には、FOTA機能部141b(ファームウェア更新機能)は、制御部140によって起動されるまで停止状態に維持される。停止状態とは、ファームウェア更新に関する動作を行わない状態をいう。例えば、停止状態にあるFOTA機能部141bは、ファームウェア更新の有無をサーバ300に問い合わせる動作を行わない。このため、FOTA機能部141bが停止状態にある間は、ファームウェア更新に関する動作に起因する消費電力の増加及びリソース使用量の増加は生じない。
【0044】
制御部140は、サーバ300へのデータ送信処理の際に通信部130を介してサーバ300から起動情報を取得する。そして、制御部140は、取得される起動情報に基づいてFOTA機能部141bを起動する。以下、このような起動情報を「FOTA起動情報」と呼ぶ。FOTA機能部141bが起動した起動状態では、ファームウェア更新に関する動作が行われるようになる。そして、FOTA機能部141bは、起動後において、ファームウェア更新の有無をサーバ300に問い合わせる動作を行うことでファームウェア更新を行う。
【0045】
一実施形態において、制御部140は、FOTA機能部141bを起動した後、FOTA機能部141bによってファームウェア更新が完了した場合、FOTA機能部141bを停止状態に戻す。よって、FOTA機能部141bは、ファームウェア更新が必要なときにだけ起動状態になり、ファームウェア更新が完了すると停止状態に戻る。
【0046】
一実施形態において、制御部140は、データ送信処理の際に、FOTA機能部141bを起動することを示すFOTA起動情報をサーバ300から取得した場合、FOTA機能部141bを起動することを示すフラグ情報を制御用メモリ142(記憶部)に書き込むとともに、制御部140を初期化する第1初期化処理を行う。制御部140の初期化は、制御用メモリ142の揮発性のメモリ領域を初期化すること、及び制御用プロセッサ141の動作を初期化することの少なくとも一方を含む。フラグ情報は、制御用メモリ142の不揮発性のメモリ領域に書き込まれることが好ましい。
【0047】
制御部140は、第1初期化処理の後、制御用メモリ142にフラグ情報が書き込まれていることに応じて、FOTA機能部141bを起動する。その後、制御部140は、FOTA機能部141bによってファームウェア更新が完了した場合、制御用メモリ142からフラグ情報を削除する。
【0048】
一実施形態において、制御部140は、FOTA機能部141bによってファームウェア更新を行った後、制御部140を初期化する第2初期化処理を行う。そして、制御部140は、第2初期化処理の後、制御部140が更新後のファームウェアにより正常に動作している場合、ファームウェア更新の完了をサーバ300に通知する。この更新完了通知は、更新後のファームウェアのバージョンを示すバージョン番号を含んでもよい。
【0049】
ここで、ファームウェア更新の完了をサーバ300に通知するタイミングとしては、FOTA機能部141bによってファームウェア更新を行った直後のタイミングとすることも考えられる。しかし、ファームウェアが正しく更新されていない場合、第2初期化処理の後に制御部140が正しく動作しないことがある。このため、制御部140は、ファームウェア更新を行った直後のタイミングではなく、ファームウェアを更新して第2初期化処理を行った後のタイミングで、ファームウェア更新の完了をサーバ300に通知することとしている。
【0050】
(サーバの構成)
次に、一実施形態に係るサーバ300の構成について説明する。
図3は、一実施形態に係るサーバ300の構成を示す図である。
【0051】
図3に示すように、サーバ300は、通信部310と、制御部320とを有する。通信部310は、例えば、有線通信インターフェイスを含んで構成される。通信部310は、ネットワーク200と接続され、ネットワーク200を介して通信機器100との通信を行う。
【0052】
制御部320は、サーバ300における各種の処理及び制御を行う。制御部320は、プロセッサ321及びメモリ322を有する。メモリ322は、プロセッサ321により実行されるプログラムを記憶するとともに、プロセッサ321の作業領域として利用される。メモリ322は、HDD又はSSD等の補助記憶装置を含む。
【0053】
制御部320は、通信機器100からのセンサデータを収集及び管理する処理と、通信機器100のファームウェアを更新するために差分ファイルを通信機器100に提供する処理とを実行する。
【0054】
センサデータを収集するために、通信部310は、通信機器100がセンサ170により得たセンサデータを通信機器100から受信する受信処理(以下、「データ受信処理」と呼ぶ)を行う。制御部320は、通信機器100から受信したセンサデータを記憶及び管理する。
【0055】
通信機器100のファームウェア更新の必要がある場合、制御部320は、データ受信処理の際に、通信部310を介して通信機器100にFOTA起動情報を通知する。FOTA起動情報は、通信機器100が有するFOTA機能部141bを起動させるための情報である。FOTA起動情報は、FOTA機能部141bの起動を指示又は要求する情報であってもよいし、ファームウェア更新の必要があることを通知する情報であってもよい。
【0056】
通信機器100がFOTA機能部141bを起動した後、通信部310は、ファームウェア更新の有無の問い合わせを通信機器100から受信する。制御部320は、問い合わせの受信に応じて、ファームウェア更新(差分ファイル)があることを通信機器100に通知し、差分ファイルを通信機器100に配信する。
【0057】
通信機器100がファームウェア更新を完了した後、通信部310は、ファームウェア更新の完了通知を通信機器100から受信する。制御部320は、完了通知の受信に応じて、通信機器100のファームウェア更新が完了したと判定する。一方、制御部320は、ファームウェアを配信してから所定時間以内に通信部310が完了通知を受信しない場合、通信機器100のファームウェア更新が失敗したと判定してもよい。
【0058】
(通信システムの動作例)
次に、一実施形態に係る通信システム1の動作例について説明する。
【0059】
(a)ファームウェア更新の必要がない場合の動作例:
図4は、ファームウェア更新の必要がない場合の動作例を示す図である。
【0060】
図4に示すように、ステップS101において、通信機器100の制御部140(FOTA機能部141b)は停止状態にある。
【0061】
ステップS102において、通信機器100の制御部140(アプリケーション処理部141a)は、センサデータの送信条件が満たされたと判定し、省電力モードから復帰する。省電力モードから復帰すると、通信機器100の通信部130がデータ送信可能な状態になる。
【0062】
ステップS103において、通信機器100の制御部140(アプリケーション処理部141a)は、通信部130を介してセンサデータをサーバ300に送信する。サーバ300の通信部310は、センサデータを受信する。サーバ300の制御部320は、通信機器100に配信するべき差分ファイルを有していないことから、FOTA起動情報を通信機器100に通知しない。
【0063】
ステップS104において、通信機器100の制御部140(アプリケーション処理部141a)は、センサデータの送信が完了すると、再び省電力モードに移行する。
【0064】
そして、ファームウェア更新の必要が生じるまではステップS102乃至S104の動作を繰り返すが、その間は、FOTA機能部141bが停止状態に維持される。
【0065】
(b)ファームウェア更新の必要がある場合の動作例:
図5及び
図6は、ファームウェア更新の必要がある場合の動作例を示す図である。
【0066】
図5に示すように、ステップS201において、通信機器100の制御部140(FOTA機能部141b)は停止状態にある。
【0067】
ステップS202において、通信機器100に配信するべき差分ファイルがサーバ300の制御部320に登録される。
【0068】
ステップS203において、通信機器100の制御部140(アプリケーション処理部141a)は、センサデータの送信条件が満たされたと判定し、省電力モードから復帰する。省電力モードから復帰すると、通信機器100の通信部130がデータ送信可能な状態になる。
【0069】
ステップS204において、通信機器100の制御部140(アプリケーション処理部141a)は、通信部130を介してセンサデータをサーバ300に送信する。サーバ300の通信部310は、センサデータを受信する。
【0070】
ステップS205において、サーバ300の制御部320は、通信機器100に配信するべき差分ファイルを有していることから、FOTA起動情報を通信機器100に通知する。通信機器100の通信部130は、FOTA起動情報を受信する。この場合、通信機器100の制御部140は、センサデータの送信が完了しても、省電力モードに移行しない。
【0071】
ステップS206において、通信機器100の制御部140(アプリケーション処理部141a)は、FOTA機能部141bを起動することを示すフラグ情報であるFOTA有効フラグを制御用メモリ142に書き込む。FOTA有効フラグは、“0”又は“1”の1ビットのフラグとしてもよいし、2ビット以上のデータであってもよい。FOTA有効フラグは、FOTAを有効にするデータと読み替えてもよい。
【0072】
ステップS207において、通信機器100の制御部140は、初期化処理(第1初期化処理)を行う。但し、ステップS207の処理は必須ではない。従来の方法では、FOTA機能部141bは通信機器100の電源投入後、常に起動状態にあるが、本実施形態では、FOTA機能部141bは基本的には停止状態にある。FOTA機能部141bを起動するトリガが初期化処理である場合、ステップS207の処理が必要になる。
【0073】
ステップS208において、通信機器100の制御部140(FOTA機能部141b)は、第1初期化処理の後、制御用メモリ142内のFOTA有効フラグを確認し、制御用メモリ142にFOTA有効フラグが書き込まれていることに応じてFOTA機能部141bを起動する。
【0074】
ステップS209において、通信機器100の制御部140(アプリケーション処理部141a)は、通信部130を介してセンサデータをサーバ300に送信する。サーバ300の通信部310は、センサデータを受信する。但し、ステップS209におけるセンサデータの送信は必須ではなく、ステップS209を実行せずにステップS210に進んでもよい。
【0075】
ステップS210において、通信機器100の制御部140(FOTA機能部141b)は、通信部130を介して、ファームウェア更新の有無の確認(すなわち、差分ファイルの有無の確認)を要求する差分有無確認情報をサーバ300に送信する。サーバ300の通信部310は、差分有無確認情報を受信する。
【0076】
ステップS211において、サーバ300の制御部320は、通信機器100に配信するべき差分ファイルを有していることから、配信するべき差分ファイルがあることを示す応答情報(ACK)を通信機器100に送信する。通信機器100の通信部130は、応答情報(ACK)を受信する。
【0077】
図6に示すように、ステップS212において、通信機器100の制御部140(FOTA機能部141b)は、応答情報(ACK)の受信に応じて、ファームウェア更新処理を開始する。
【0078】
ステップS213において、通信機器100の制御部140(FOTA機能部141b)は、通信部130を介して、HTTPs通信で差分ファイルをサーバ300からダウンロードし、ダウンロードした差分ファイルを用いてファームウェアを更新する。但し、差分ファイルをダウンロードする際に用いる通信プロトコルはHTTPsに限定されず、他の通信プロトコルを用いてもよい。
【0079】
ステップS214において、通信機器100の制御部140(FOTA機能部141b)は、ファームウェア更新処理を終了する。
【0080】
ステップS215において、通信機器100の制御部140は、初期化処理(第2初期化処理)を行う。
【0081】
ステップS216において、通信機器100の制御部140(FOTA機能部141b)は、第2初期化処理の後、制御部140が更新後のファームウェアにより正常に動作することを確認し、ファームウェア更新の完了をサーバ300に通知する。
【0082】
ステップS217において、通信機器100の制御部140(FOTA機能部141b)は、FOTA有効フラグを制御用メモリ142から削除する。
【0083】
ステップS218において、通信機器100の制御部140(FOTA機能部141b)は、FOTA機能を終了し、FOTA機能を停止状態に戻す。
【0084】
(実施形態のまとめ)
以上説明したように、無線通信を行う通信機器100は、センサ170により得られたセンサデータをサーバ300に送信するデータ送信処理を行う通信部130と、通信機器100のファームウェア更新に用いる更新用ファイルをサーバ300にアクセスすることで取得するFOTA機能部141bを有する制御部140とを備える。制御部140は、センサデータのデータ送信処理の際に通信部130を介してサーバ300から取得されるFOTA起動情報に基づいて、FOTA機能部141bを起動する。FOTA機能部141bは、制御部140によって起動されるまで停止状態に維持される。
【0085】
これにより、通信機器100は、ファームウェア更新の必要があるときにだけFOTA機能部141bを起動できるため、サーバ300にアクセスしてファームウェア更新の有無を確認する処理を行う回数を最小限に抑えることができる。このため、FOTA機能部141bを常時起動させておく従来の方法に比べて、通信機器100の消費電力及びリソース使用量の増加を抑制できる。
【0086】
一実施形態において、制御部140は、FOTA機能部141bを起動した後、FOTA機能部141bによってファームウェア更新が完了した場合、FOTA機能部141bを停止状態に戻す。これにより、FOTA機能部141bを常時起動させておく従来の方法に比べて、通信機器100の消費電力及びリソース使用量の増加を抑制できる。
【0087】
一実施形態において、制御部140は、FOTA起動情報の受信に応じて、FOTA機能部141bを起動することを示すFOTA有効フラグを制御用メモリ142に書き込むとともに、制御部140を初期化する第1初期化処理を行う。制御部140は、第1初期化処理の後、制御用メモリ142にFOTA有効フラグが書き込まれていることに応じてFOTA機能部141bを起動する。これにより、制御部140は、制御用メモリ142内のFOTA有効フラグを確認するだけで、FOTA機能部141bの起動の要否を判定し、FOTA機能部141bを適切に起動できる。
【0088】
一実施形態において、制御部140は、FOTA機能部141bによってファームウェア更新が完了した場合、FOTA有効フラグを制御用メモリ142から削除する。これにより、ファームウェア更新が完了した後に、不必要にFOTA機能部141bを起動することを防止できる。
【0089】
一実施形態において、制御部140は、FOTA機能部141bによってファームウェア更新を行った後、制御部140を初期化する第2初期化処理を行う。制御部140は、第2初期化処理の後、制御部140が更新後のファームウェアにより正常に動作することを確認した場合、ファームウェア更新の完了をサーバ300に通知する。これにより、サーバ300は、ファームウェアが正常に更新されたことを把握できるため、その後は次のファームウェア更新のタイミングまでFOTA機能部141bを起動させないようにすることができる。
【0090】
(その他の実施形態)
通信機器100又はサーバ300が行う各処理をコンピュータに実行させるプログラムが提供されてもよい。プログラムは、コンピュータ読取り可能媒体に記録されていてもよい。コンピュータ読取り可能媒体を用いれば、コンピュータにプログラムをインストールすることが可能である。ここで、プログラムが記録されたコンピュータ読取り可能媒体は、非一過性の記録媒体であってもよい。非一過性の記録媒体は、特に限定されるものではないが、例えば、CD-ROMやDVD-ROM等の記録媒体であってもよい。
【0091】
また、通信機器100が行う各処理を実行する機能部(回路)を集積化し、通信機器100の少なくとも一部を半導体集積回路(チップセット、SoC)として構成してもよい。
【0092】
以上、図面を参照して実施形態について詳しく説明したが、具体的な構成は上述のものに限られることはなく、要旨を逸脱しない範囲内において様々な設計変更等をすることが可能である。
【0093】
本願は、日本国特許出願第2019-233507号(2019年12月24日出願)の優先権を主張し、その内容の全てが本願明細書に組み込まれている。