IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ キヤノン株式会社の特許一覧

特開2024-174763情報処理装置、情報処理方法、及びプログラム
<>
  • 特開-情報処理装置、情報処理方法、及びプログラム 図1
  • 特開-情報処理装置、情報処理方法、及びプログラム 図2
  • 特開-情報処理装置、情報処理方法、及びプログラム 図3
  • 特開-情報処理装置、情報処理方法、及びプログラム 図4
  • 特開-情報処理装置、情報処理方法、及びプログラム 図5
  • 特開-情報処理装置、情報処理方法、及びプログラム 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024174763
(43)【公開日】2024-12-17
(54)【発明の名称】情報処理装置、情報処理方法、及びプログラム
(51)【国際特許分類】
   G06F 8/65 20180101AFI20241210BHJP
【FI】
G06F8/65
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2023092777
(22)【出願日】2023-06-05
(71)【出願人】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110003281
【氏名又は名称】弁理士法人大塚国際特許事務所
(72)【発明者】
【氏名】木村 雄介
【テーマコード(参考)】
5B376
【Fターム(参考)】
5B376CA14
(57)【要約】      (修正有)
【課題】ファームウェアのバージョンダウンを安全に行う情報処理装置、情報処理方法、及びプログラムを提供する。
【解決手段】方法は、情報処理装置の第1の制御部を動作させる第1のファームウェアの更新が、ファームウェアのバージョンダウンであるか否かの判定を行う工程S604と、第1のファームウェアの更新がバージョンダウンであると判定された場合に、第1の制御部の、第1のファームウェアに参照されるシステムデータの初期化を行う工程S605と、初期化に第1のファームウェアの更新を行う工程S654と、を備える。
【選択図】図6
【特許請求の範囲】
【請求項1】
情報処理装置の第1の制御部を動作させる第1のファームウェアの更新が、ファームウェアのバージョンダウンであるか否かの判定を行う判定手段と、
前記第1のファームウェアの更新がバージョンダウンであると判定された場合に、前記第1の制御部の、前記第1のファームウェアに参照されるシステムデータの初期化を行う初期化手段と、
前記初期化後に前記第1のファームウェアの更新を行う更新手段と、
を備えることを特徴とする、情報処理装置。
【請求項2】
前記第1のファームウェアに参照されるシステムデータが、データファイル形式が前記第1のファームウェアのバージョンに依存するシステムデータであることを特徴とする、請求項1に記載の情報処理装置。
【請求項3】
前記判定手段は、前記第1のファームウェアの更新指示を受信した場合に、前記第1の制御部を現在動作させている第1のファームウェアのバージョンと、前記更新指示に含まれる第1のファームウェアのバージョンと、を比較することにより、前記第1のファームウェアの更新がファームウェアのバージョンダウンであるか否かの判定を行うことを特徴とする、請求項1に記載の情報処理装置。
【請求項4】
前記第1の制御部は、外部装置との通信の制御を行う制御部であることを特徴とする、請求項1に記載の情報処理装置。
【請求項5】
前記第1の制御部は、Z-Wave規格、Wi-Fi Neighbor Awareness Networking規格、ZigBee規格、又はBluetooth規格の少なくとも1つ以上に準拠した無線通信方式のネットワークにより、外部装置の通信の制御を行うことを特徴とする、請求項4に記載の情報処理装置。
【請求項6】
前記第1のファームウェアとは異なる第2のファームウェアにより動作する第2の制御部により、前記第1の制御部の動作に関する設定値を記憶部に格納する格納手段をさらに備え、
前記初期化手段は、前記第1のファームウェアの更新がバージョンダウンであると判定された場合に、前記記憶部における前記設定値をさらに初期化することを特徴とする、請求項1に記載の情報処理装置。
【請求項7】
情報処理装置の第1の制御部を動作させる第1のファームウェアの更新が、ファームウェアのバージョンダウンであるか否かの判定を行う工程と、
前記第1のファームウェアの更新がバージョンダウンであると判定された場合に、前記第1の制御部の、前記第1のファームウェアに参照されるシステムデータの初期化を行う工程と、
前記初期化後に前記第1のファームウェアの更新を行う工程と、
を備えることを特徴とする、情報処理方法。
【請求項8】
コンピュータを、請求項1乃至6の何れか一項に記載の情報処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法、及びプログラムに関する。
【背景技術】
【0002】
センサ機能を有したセンサデバイスからセンサデータを収集する無線ネットワークの通信規格として、Z-Wave(登録商標)という規格が存在する。このような無線ネットワークにおいて、センサ機能を有したセンサデバイス(子機)から通知を受信すると、予め設定された条件に従ってカメラを所定のポジションへ向けるように設定することが可能なネットワークカメラがある。
【0003】
一般に、ネットワークカメラに代表されるデバイスは新規に導入される際に、顧客環境に応じた初期設定作業が必要となる。デバイスの初期設定作業には多くの時間と手間がかかる。そのため、複数台のデバイスに対し、同様の初期設定作業を行う場合には、予め指定されたファームウェアバージョン、必要なソフトウェア及び設定情報、並びに検証用のデータなどの共通データを用意しておく。そして、それらの共通データを設定指示情報に従って処理していくことで、デバイスの設定に詳しくない作業者(例えば、顧客先へネットワークカメラを設置するSIer)であっても、効率良く初期設定作業を行うことが可能となる。このような処理において、ファームウェアを指定されたバージョンに変更する際、通常はファームウェアのバージョンアップが行われる。
【0004】
しかしながら、ネットワークカメラのファームウェアのバージョン変更では、監視範囲を拡張するためにデバイスを追加購入したユーザが、新しい機能の利用を希望するとは限らない。特に、バージョンの変更後にシステムのソフトウェアの統合性を維持するための追加作業が必要になる場合、バージョンアップではなく、安定稼働している既存のファームウェアへバージョンダウンしてネットワークカメラを運用する場合がある。
【0005】
また、ネットワークカメラに限らずオフィスなどで使用されるデバイスには、ファームウェアの種類が、通常ファームウェアに加え、商談ファームウェア又は個別ファームウェアなど様々な種類が存在する。通常ファームウェアとは一般のユーザがネットワークカメラで使用するファームウェアである。商談ファームウェアとは特定の商談用にカスタマイズされたファームウェアである。個別ファームウェアとは特定の障害などを直して個別にリリースされるファームウェアである。その中で、商談ファームウェアは商談先でしか使用されないファームウェアであり、バージョンが長期に渡って変更されずに固定である場合が多い。
【0006】
これらの場合、工場出荷のファームウェアバージョンは、定期的に上がっていくため、初期設定作業時の指定ファームウェアのバージョンが、工場出荷されたファームウェアバージョンより下回ることが発生する。この場合には、初期設定作業において、ファームウェアバージョンダウンが発生する。
【0007】
ファームウェアのバージョンアップでは、機能拡張又は不具合修正のため、データファイルの形式などが変更される場合がある。バージョンアップを行う場合には、バージョンアップ先のファームウェアが、バージョンアップに伴うデータファイル形式の変更を知っているため、バージョンアップと同時にデータファイルの形式変更を行うことができる。しかしながら、バージョンダウンの場合、バージョンダウン先のファームウェアはデータファイル形式の変更を知らないため、データファイル形式を認識できない。そのため、バージョンダウン後の起動時に正しくデータファイルを読み込めず、デバイスが正常に起動できない可能性がある。
【0008】
特許文献1には、プログラムのバージョンダウンと同期して、バージョンダウンされるプログラムが使用するデータをバージョンダウン後のプログラムが使用可能な形式にバージョンダウンする技術が開示されている。また特許文献2には、バージョンダウンを行う場合に、予め初期化の予約をしてから、バージョンダウンを行い、その後データ領域の初期化を行う技術が開示されている。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】特開2012-256300号公報
【特許文献2】特開2020-47139号公報
【発明の概要】
【発明が解決しようとする課題】
【0010】
しかしながら、特許文献1に記載の技術では、バージョンダウンするプログラムが使用できるようデータファイルの形式変更を行っている。そのため、データファイル形式が公開されていない第三者製のファームウェアを搭載した場合には、データファイルの形式変換を行うことが出来ず、バージョンダウン後にデバイスを正常起動することができない。
【0011】
また、特許文献2に記載の技術では、バージョンダウンのためのファームウェア更新後にデータ領域の削除が行われる。そのため、バージョンダウンが原因でデバイスを正常起動できなくなった場合にはデータ領域の削除を実行できず、問題が解決しない。
【0012】
本発明は、ファームウェアのバージョンダウンを安全に行うことを目的とする。
【課題を解決するための手段】
【0013】
本発明の目的を達成するために、例えば、一実施形態に係る情報処理装置は以下の構成を備える。すなわち、情報処理装置の第1の制御部を動作させる第1のファームウェアの更新が、ファームウェアのバージョンダウンであるか否かの判定を行う判定手段と、前記第1のファームウェアの更新がバージョンダウンであると判定された場合に、前記第1の制御部の、前記第1のファームウェアに参照されるシステムデータの初期化を行う初期化手段と、前記初期化後に前記第1のファームウェアの更新を行う更新手段と、を備える。
【発明の効果】
【0014】
ファームウェアのバージョンダウンを安全に行う。
【図面の簡単な説明】
【0015】
図1】情報処理装置を含む通信システムの構成の一例を示す図。
図2】情報処理装置を含む各装置のハードウェア構成の一例を示すブロック図。
図3】第1の制御部により管理されるデータ領域の一例を示す図。
図4】更新が行われるファームウェアの説明を行うための図。
図5】ファームウェアの更新時にユーザに提示される画面の一例を示す図。
図6】各制御部により実行される情報処理の一例を示すフローチャート。
【発明を実施するための形態】
【0016】
以下、添付図面を参照して実施形態を詳しく説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定するものではない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
【0017】
[実施形態1]
図1は、実施形態1に係る情報処理装置を含む通信システムの構成の一例を示す図である。図1に示す通信システムは、ネットワークカメラ(情報処理装置)101、通信装置としてのセンサデバイス102、及び通信制御装置としての情報端末104を含む。本実施形態に係る情報処理装置101はネットワークカメラに内蔵される装置であるものとするが、ネットワークカメラに対して同様の処理が可能であれば、情報処理装置101とネットワークカメラとが別体の装置であってもよい。
【0018】
情報処理装置101は、ネットワーク103を介してセンサデバイス102と通信可能に接続している。また、情報処理装置101はネットワーク105を介して情報端末104と通信可能に接続している。センサデバイス102は、情報処理装置101と通信を確立するためのペアリングボタン106を有する。センサデバイス102はセンサデバイスであり、1つであってもよく複数であってもよい。
【0019】
本実施形態に係る情報処理装置101は、撮像機能を有するカメラを有し、撮像した画像若しくは映像を、有線又は無線のネットワーク105を介して情報端末104に配信可能であるネットワークカメラを含む。情報端末104はネットワーク105を介して、情報処理装置101の撮像動作、画角の制御、パン若しくはチルトなどの姿勢制御、又は映像の録画制御のうちの少なくとも1つを制御できる。また、情報端末104は、情報処理装置101との通信に関する設定などを行うことができる。
【0020】
本実施形態に係るセンサデバイス102は、例えば煙若しくは一酸化炭素などのガスの濃度、温度、又はドアの開閉などの被写体の所定の動作など、センサにより検知される条件のうちの少なくとも1つを検知することができるセンサである。センサデバイス102は、予め設定された条件を検知することに従って、情報処理装置101に通知を送信する。センサデバイス102は、温度などのセンサ情報だけでなく、温度が一定基準を超えたこと又はドアなどの所定の被写体の所定の動作(開閉)が生じたことなどを通知してもよく、センサデバイスの交換タイミングなどを通知してもよい。
【0021】
ネットワーク103は、情報処理装置101とセンサデバイス102とを通信可能に接続する。本実施形態に係るネットワーク103は、Z-Wave(登録商標)規格に準拠した無線通信方式による無線通信のネットワークである。この場合、センサデバイス102は、Z-Wave規格で規定されたプロファイルを利用して、情報処理装置101に通知を実行することができる。なお、ネットワーク103はZ-Wave規格には限定されず、Wi-Fi NAN規格、又はZigBee(登録商標)規格の少なくとも1つ以上に準拠した無線通信方式による無線通信のネットワークが用いられてもよい。ネットワーク103は、センサデバイス102が予め設定された条件を検知したことに従って、ネットワーク103を介して通信可能な、情報処理装置101などの外部装置に通知することができるネットワークであれば有線でも無線でもよい。
【0022】
ネットワーク105は、情報処理装置101と情報端末104とを通信可能に接続するネットワークである。本実施形態に係るネットワーク105は、有線LANなどの有線通信方式に準拠した有線通信のネットワークであってもよく、IEEE802.11シリーズ規格などの無線通信方式に準拠した無線通信のネットワークであってもよい。その場合、情報処理装置101はネットワーク105を構築するアクセスポイントとして動作してもよく、情報端末104又は不図示のアクセスポイントが構築したネットワーク105に参加するステーションとして動作してもよい。
【0023】
なお、ネットワーク105は、Wi-Fi Direct(登録商標)規格、又はWi-Fi NAN規格などの無線通信方式に準拠したネットワークであってもよい。また、ネットワーク105は、IEEE802.11シリーズ規格である必要はなく、Bluetooth(登録商標)、NFC、UWB、MBOA、ZigBee(登録商標)、Z-Waveなどの無線通信方式に準拠したネットワークであってもよい。
【0024】
なお、NANはNeighbor Awareness Networkingの略であり、NFCはNear Field Communicationの略である。また、UWBはUltra Wide Bandの略である。MBOAはMulti Band OFDM(Orthogonal Frequency Division Multiplexing)Allianceの略である。UWBには、ワイヤレスUSB、ワイヤレス1394、及びWiNETなどが含まれる。
【0025】
以下、本実施形態に係る通信システムにおいて、情報処理装置101がファームウェアの更新を行う処理について説明を行う。図2は、本実施形態において用いられる各装置のハードウェア構成の一例を示すブロック図である。図2(A)、図2(B)、図2(C)及び図2(D)は、それぞれ情報処理装置101、センサデバイス、情報端末104、及び第1の制御部204(後述)のハードウェア構成の一例を示すブロック図である。なお、図2に示す各装置の構成は一例であり、各装置がその他の構成部を有していてもよい。
【0026】
本実施形態に係る情報処理装置101は、第2の制御部201、記憶部202、通信部203、第1の制御部204、撮像部205、画像処理部206、及びパンチルト駆動部207を備える。
【0027】
第2の制御部201は、CPU又はMPUなどの1以上のプロセッサにより構成され、後述の記憶部202に格納された第2のファームウェアを実行することにより情報処理装置101全体を制御する中央処理装置である。なお、第2の制御部201は、記憶部202に格納されたファームウェア及びOS(Operating System)との協働により、情報処理装置101全体を制御するようにしてもよい。なお、CPUはCentral Processing Unitの略であり、MPUはMicro Processing Unitの略である。また、第2の制御部201がマルチコアなどの複数のプロセッサを備え、複数のプロセッサにより情報処理装置101全体を制御するようにしてもよい。
【0028】
ここで図4を参照して、本実施形態に係る情報処理装置101により更新されるファームウェアの一例について説明を行う。ファームウェア400は第2の制御部を制御するための第2のファームウェア401と、第1の制御部を制御するための第1のファームウェア404とで構成されている。第2のファームウェア401は、付加情報として少なくともファームウェアバージョン402と、更新可能なハードウェア識別子403とを含んでいる。第1のファームウェア404は、付加情報として少なくともファームウェアバージョン405と、更新可能なハードウェア識別子406とを含んでいる。ファームウェアバージョン402及び405は、それぞれ第2のファームウェア401のバージョン情報と第1のファームウェア404のバージョンとを示す情報である。
【0029】
第2の制御部201は、情報処理装置101に伝達されたコマンドを解析し、コマンドに応じた処理を行う。例えば第2の制御部201は、ユーザが情報端末104を介して入力した指示に応じたコマンドを情報端末104から受信し、受信したコマンドに基づいた処理を実行することができる。具体的には、第2の制御部201は、情報端末104からアップロードされた第2のファームウェア401及び第1のファームウェア404を記憶部202へ書き込む。また、第2の制御部は、第1の制御部204に対して第1のファームウェア404を転送し、第1の制御部204のファームウェアを更新することができる。なお、本実施形態に係るファームウェアの更新処理は、ファームウェアのバージョンアップとバージョンダウンとを含む。
【0030】
さらに、第2の制御部201は、情報処理装置101が保持する内部パラメータの変化を検知し、その検知結果をイベントトリガーとした処理を行ってもよい。例えば第2の制御部201は、情報処理装置101に保持されている、センサデバイス102の状態を示す情報が変更された場合、当該変更を検知したことに応じた処理を実行することができる。
【0031】
記憶部202は、ROM又はRAMなどの1以上のメモリにより構成され、各種動作を行うための第2のファームウェア、第1の制御部204のファームウェア更新用の第1のファームウェア、及び無線通信のための通信パラメータなどの各種情報を格納する。ROMはRead Only Memoryの略であり、RAMはRandom Access Memoryの略である。なお、記憶部202は、ROM又はRAMなどのメモリの他に、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD-ROM、CD-R、磁気テープ、不揮発性のメモリカード、若しくはDVDなどの記憶媒体を少なくとも1つ含んでもよい。さらに、記憶部202は、情報処理装置101の再起動時に以前設定した値を用いることが可能となるように、画質調整のためのパラメータ又はネットワークの設定などの設定値を格納しておいてもよい。
【0032】
通信部203は、有線LAN又は無線LANによる通信の制御を行う。具体的には、通信部203はネットワーク105を介した通信の制御を行う。
【0033】
第1の制御部204は、Z-Wave規格に準拠した通信の制御を行う。第1の制御部204の具体的な構成については図2(D)を参照して後述する。
【0034】
なお、本実施形態において、情報処理装置101は、外部装置と通信を行う通信部として、通信部203と第1の制御部204とを個別に有しているが、1つの通信部によってネットワーク105を介した通信とネットワーク103を介した通信とを行ってもよい。
【0035】
撮像部205は、レンズ及びCMOSセンサなどの撮像素子から構成され、レンズにより形成された光学像を撮像素子が光電変換して撮像信号として出力する。画像処理部206は、撮像部205から出力された撮像信号に画像処理及び圧縮符号化処理を行い、画像データ又は映像データを生成する。パンチルト駆動部207は、(ここでは、第2の制御部201からの命令により)カメラをパン又はチルト方向に駆動する制御を行う。
【0036】
本実施形態に係るセンサデバイス102は、制御部211、記憶部212、無線通信部213、及び検知部214を備える。
【0037】
制御部211は、CPU又はMPUなどの1以上のプロセッサにより構成され、後述の記憶部212に格納されたコンピュータプログラムを実行することによりセンサデバイス102全体を制御する。
【0038】
記憶部212は、ROM又はRAMなどの1以上のメモリにより構成され、各種動作を行うためのコンピュータプログラム、及び無線通信のための通信パラメータなどの各種情報を格納する。また、記憶部212は、親機である情報処理装置101との通信に関する通信情報を格納する。
【0039】
無線通信部213は、Z-Wave(登録商標)規格に準拠した通信の制御を行う。具体的には、無線通信部213は、ネットワーク103を介した通信の制御を行う。
【0040】
検知部214は、センサ機能によって例えばドア開閉を検知した場合に、検知結果として検知信号を出力する。なお、本実施形態に係るセンサデバイス102は、検知部214のみを有している例を挙げたが、その他の検知部を追加で有していてもよい。
【0041】
本実施形態に係る情報端末104は、制御部221、記憶部222、通信部223、無線通信部224、操作部225、画像処理部226、及び表示部227を備える。
【0042】
制御部221は、コンピュータとしてのCPUやMPUなどの1以上のプロセッサにより構成され、記憶部222に記憶されたコンピュータプログラムを実行することにより、情報端末104、情報処理装置101、又はセンサデバイス102を制御する。
【0043】
記憶部222は、ファームウェア及び通信情報などの各種情報を格納する。本実施形態に係る記憶部222は、記憶部202と同様の構成とすることが可能であり、重複する説明は省略する。
【0044】
通信部223は、有線LAN又は無線LANによりネットワーク105を介した通信の制御を行う。また、情報端末104は、無線通信部224を備え、Z-Wave規格に準拠してネットワーク103を介した通信の制御を行うようにしてもよい。なお、本実施形態に係る情報端末104は、通信手段として通信部223と無線通信部224とを個別に有しているものとして説明を行うが、1つの通信部のみによってネットワーク105を介した通信を行ってもよい。
【0045】
操作部225は、マウス、キーボード、又はタッチパネルなどのユーザ操作を受け付けるためのものである。画像処理部226は、画像データ又は映像データを処理して表示用の表示信号などを生成する。表示部227は、画像データ又は映像データを表示するためのLCDなどの表示デバイスを含み、例えば図5のような画面を表示することができる。
【0046】
また、本実施形態に係る操作部225及び表示部227は別々の機能部であるものとして説明を行うが、情報端末104は、例えば操作部225と表示部227とを兼ねるタッチパネルなどを有していてもよい。
【0047】
なお、情報端末104は、表示部227に図5の画面を表示させた状態で、注釈やアクションルールを設定するためのユーザ操作を受け付けることができる。情報端末104内の制御部221は上記の制御を行うための制御手段として機能している。
【0048】
本実施形態に係る第1の制御部204は、制御部231、記憶部232、及び無線通信部233を備える。
【0049】
制御部231は、第2の制御部201から伝達されたコマンドを解析し、センサデバイス102との通信制御に関するコマンドに応じた処理を行う。例えば、第2の制御部201からファームウェア更新に関するコマンド、又は第1のファームウェア404を受信すると、第1のファームウェア404を記憶部232へ書き込み、ファームウェアを更新することができる。
【0050】
記憶部232は、第1のファームウェア404又はブートローダーを格納しておくことで、情報処理装置101の起動にあわせて、第2の制御部201によって制御可能な状態で待機することが可能である。また、記憶部232は、センサデバイス102と通信するネットワーク103の設定など設定値を格納しておくことで、情報処理装置101が再起動された場合であっても、以前設定した設定値を用いることが可能である。さらに、記憶部232は、子機であるセンサデバイス102との通信に関する通信情報、及びセンサデバイス102から取得したセンサ情報などを格納することができる。
【0051】
なお、このように第2の制御部201により、記憶部232
【0052】
無線通信部233は、Z-Wave規格に準拠した通信の制御を行う。具体的には、無線通信部233は、ネットワーク103を介した通信の制御を行う。
【0053】
本実施形態に係る情報処理装置101(第2の制御部201)は、第1のファームウェアの更新がバージョンダウンであるか否かの判定を行う。例えば、第2の制御部201は、情報端末104からファームウェアの更新指示を受信した場合に、現在の第1のファームウェアのバージョンと、更新指示に含まれるファームウェアのバージョンとを比較して、更新がバージョンダウンであるか否かの判定を行うことが出来る。
【0054】
第2の制御部201は、実行されるファームウェアの更新がバージョンダウンであると判定した場合には、第1のファームウェアを更新する前に、第1のファームウェアに参照される、第1の制御部204のシステムデータの初期化を行う。本実施形態に係る第2の制御部201は、第1のファームウェアに参照されるシステムデータとして、データファイル形式が第1のファームウェアのバージョンに依存するシステムデータの初期化を行うことができる。後述する図3の例では、システム領域302及びシステムデータ領域303が第1のファームウェアのバージョンに依存する領域であり、これらの領域におけるシステムデータが初期化処理により削除される。当該初期化後、第2の制御部201は、第1のファームウェアの更新を行う。
【0055】
図3は、記憶部232内で管理格納されているデータ領域を示す構成図である。ブートローダー領域301は、第1の制御部204の初期化、ファームウェア更新、及びファームウェアの起動などの各処理を実行可能なブートローダーが格納されている領域である。本実施形態に係るブートローダー領域301は、ファームウェアのバージョンに依存しないデータが格納されている領域であるものとする。
【0056】
システム領域302は、第1のファームウェアの一部が展開されている領域である。本実施形態に係る第1のファームウェアは、コントローラ、組み込みアプリケーション、又はミドルウェアを含んでいる。ファームウェアのバージョンを変更する場合、システム領域302は、変更後のファームウェアで上書きされることになる。
【0057】
システムデータ領域303は、センサデバイス102と通信するネットワーク103の設定値などが格納されている領域である。本実施形態に係るシステムデータ領域303は、第1のファームウェアにより参照される、データファイル形式が第1のファームウェアのバージョンに依存するシステムデータを格納する。本実施形態においては、初期状態(なにもファームウェアが書き込まれていない状態)のシステム領域302に対して、初めて第1のファームウェアを書き込む際に、システムデータ領域が構築されることを前提とする。
【0058】
システムデータ領域303は、ファームウェアのバージョンによってデータファイル形式が異なる可能性があるため、ファームウェアバージョンに依存する領域である。そのため、ファームウェアを更新する場合には、バージョンアップ時にシステムデータ領域303内のシステムデータが古いデータファイル形式から新しいデータファイル形式に自動変換される。ファームウェアのバージョンアップ時のデータ変換に関しては、公知の技術を任意に用いて実行することが可能であり、詳細な説明は省略する。
【0059】
また、逆にファームウェアのバージョンダウンを行う場合は、古いバージョンのファームウェアは新しいデータファイル形式に対応していないため、システムデータのデータファイル形式を自動で変換できない。そのため、バージョンダウンの場合は、システム領域302及びシステムデータ領域303を初期化(削除)し、新たにファームウェアを書き込むことで、システムデータ領域303を再構築する必要がある。ファームウェアのバージョンダウン時の処理に関しては、図6のフローチャートを参照して後述する。
【0060】
ユーザデータ領域304は、第1のファームウェアとは別に管理されている、工場で書き込まれるシリアルナンバーなどの付加情報を書き込む領域であり、ファームウェアのバージョン変更をしても影響を受けない領域である。そのため、情報処理装置101は、バージョンアップ時及びバージョンダウン時において、ユーザデータ領域304についてはデータファイル形式の変換又は削除を行う必要はない。ユーザデータ領域304は、上述のシリアルナンバーに加え、工場出荷時に決定されるアンテナ調整値など、情報処理装置101に固有の値を任意に格納可能である。一方で、システム領域302並びにシステムデータ領域303は、初期設置におけるファームウェアのバージョンダウン時に、削除及び再構築が必要となる。
【0061】
このように、本実施形態に係る第1の制御部201は、第1のファームウェアのバージョンダウンを行う前に、システム領域302と、システムデータ領域303と、の初期化を行う。ブートローダー領域に格納されているブートローダー、及びユーザデータ領域304に格納されている付加情報などは、データファイル形式がファームウェアのバージョンに依存しないため、バージョンダウン前に初期化する必要はない。
【0062】
図5は、情報処理装置101のファームウェア更新をする際の、情報端末104において表示される画面の一例を示す図である。画面500は、管理画面の一部の画面であり、情報処理装置101の初期設定を行う際に、情報端末104は画面500を介してユーザ操作を受け付ける。画面500は、ファームウェア更新画面の表示要求を情報端末104から情報処理装置101の第2の制御部201に送信した時に、情報端末104の表示部227に表示される画面であるものとする。
【0063】
画面500は、第2の制御部201に書き込まれている第2のファームウェア401に含まれるファームウェアバージョン402を表示するバージョン表示501、更新を行うファームウェアを選択する選択ボタン502、及び更新ボタン505を表示している。また画面100は、ファームウェアの更新内容を選択するためのボタンとして、現在の設定を引き継いで更新する標準アップグレードのラジオボタン503、工場出荷時の設定に戻して更新するラジオボタン504を表示している。ここでは、ラジオボタン504を選択してファームウェアの更新を行うことにより、ファームウェアのバージョンダウンが実行されるものとする。
【0064】
例えば、本実施形態では、ユーザが選択ボタン502をクリックし、バージョンダウンするファームウェア400を選択する。次に、ユーザはファームウェアのバージョンダウンを実行するためにラジオボタン504を選択して、更新ボタン505をクリックする。このようなユーザ操作が入力されたことに応じて、第2の制御部201は、ファームウェア更新処理を開始する。
【0065】
以下、このような情報処理装置101が行う処理について、図6を参照して説明を行う。図6は、画面500において受け付けたユーザ操作に応じた指示を受けて開始する、情報処理装置101によるファームウェアのバージョンダウン処理の一例を説明するフローチャートである。
【0066】
S601からS612は第2の制御部201による処理であり、S651からS655は第1の制御部204による処理である。なお、図6の処理は、情報処理装置101が情報端末104からファームウェアの更新指示を受信した場合に開始するものとする。また、図6の処理を開始するにあたり、更新用のファームウェア400が、更新指示に含まれる形で情報端末104から情報処理装置101にアップロードされているものとして以下の説明を行う。
【0067】
S601で第2の制御部201は、記憶部202に格納されている、アップロードされたファームウェア400を解析し、第2のファームウェア401のハードウェア識別子403を取得する。
【0068】
S602で第2の制御部201は、解析により取得したハードウェア識別子403に基づいて、アップロードされたファームウェアが更新可能か否かを判定する。例えば、第2の制御部201は、ファームウェア400の中に含まれる第2のファームウェア401のハードウェア識別子403が、現状の第2の制御部201のハードウェアのものと一致する場合には更新可能と判定することができる。更新可能である場合には、第2の制御部201はS603へ処理を進める。更新不可能である場合には、第2の制御部201は、S612へ処理を進め、画面500にダイアログなどでエラーメッセージを表示し、ファームウェア更新処理を終了する。
【0069】
S603で第2の制御部201は、記憶部202に格納されている、アップロードされたファームウェア400を解析し、第1のファームウェアのファームウェアバージョン405を取得する。
【0070】
S604で第2の制御部201は、第1のファームウェア404の現在のファームウェアバージョンを取得し、解析により取得したファームウェアバージョン405と比較して、実行する更新処理がバージョンダウンかどうか判定する。ここでは、取得したファームウェアのバージョンが現在のファームウェアバージョンよりも古い場合に、実行する更新処理がバージョンダウンであるものと判定されるものとする。バージョンダウンである場合には処理はS605へ進み、バージョンが同一又はバージョンアップである場合には処理がS606へ進む。
【0071】
S605で、第2の制御部201は、第1の制御部204のシステム領域302及びシステムデータ領域303を削除するために、第1の制御部204の初期化を要求し、処理を第1の制御部204によるS651へと進める。例えば第2の制御部201は、第1の制御部204の制御ピンを制御することにより、第1の制御部204に初期化を実行させることができる。
【0072】
S651で第1の制御部204は、ブートローダーを起動し、システム領域302及びシステムデータ領域303を削除できる状態にする。S652で第1の制御部204は、システム領域302及びシステムデータ領域303を削除する。S653で第1の制御部204は、第1の制御部204の再起動を行い、処理を第2の制御部のS606へと進める。第1の制御部204は、ファームウェア(第1のファームウェア)が削除されているため、ブートローダーが起動した状態で待機する。
【0073】
S606で第2の制御部201は、記憶部202にある第2の制御部201のシステム領域302に対して第2のファームウェア401を書き込み、第1のファームウェア404を作業領域へ書き込む。S607で第2の制御部201は、第2のファームウェア401に更新するために情報処理装置101を再起動する。S608で第2の制御部201は、記憶部202のシステム領域に書き込まれている第2のファームウェア401を展開し、更新された第2のファームウェア401を実行する。
【0074】
S609で第2の制御部201は、第1の制御部204から現在のファームウェアバージョンを取得する。S610で第2の制御部201は、記憶部202の作業領域に格納されている第1のファームウェア404を解析し、解析により取得したファームウェアバージョン405と第1の制御部204の現在のファームウェアバージョンが異なるか否かを判定する。ファームウェアバージョンが異なる場合には、第1のファームウェアを更新するため処理はS611へと進み、そうでなければファームウェアを更新せず処理が終了する。ここで、第1の制御部204のシステム領域302に何もファームウェアが書き込まれていない場合(例えば、S605でシステム領域302が初期化されている場合)、バージョンを取得できないため、S610における判定ではファームウェアバージョンが異なるものと判定される。
【0075】
S611及びS654~S655で、第2の制御部201は、第1の制御部204のファームウェアの更新を行う。S611で第2の制御部201は、第1の制御部204に対してファームウェアの更新指示を送信し、処理を第1の制御部によるS654へと進める。S611においては、例えば第2の制御部201は、第1の制御部204の起動中のブートローダーに対して、ファームウェア更新処理開始を指示し、ブートローダーをファームウェアの受信待ち状態にする。次いで第2の制御部201は、第1の制御部204に対して、作業領域に格納されている第1のファームウェア404を転送する。
【0076】
S654で第1の制御部204は、受信した第1のファームウェア404をシステム領域302に書き込み、システムデータ領域303を構築する。もし、既にシステム領域302が書き込まれている場合には、第1の制御部204は、システムデータ領域303の構築をスキップする。
【0077】
S655で第1の制御部204は、第1の制御部204を再起動し、更新した第1のファームウェア405を展開し、第1のファームウェア405を実行する。以上をもって、第2の制御部201及び第1の制御部204のファームウェア更新処理を終了する。
【0078】
このような処理によれば、第1の制御部204のファームウェアの更新がバージョンダウンであるかを判定し、バージョンダウンである場合には、データファイル形式がファームウェアのバージョンに依存するシステムデータの初期化を更新前に行うことができる。したがって、ファームウェアのバージョンダウン後にシステムデータを正しく読み込めなくなることがなくなり、ファームウェアのバージョンダウンを安全に行うことが可能となる。特に、システムデータ領域のデータ形式が開示されていない第三者製ファームウェアを搭載した製品を用いる場合など、バージョンダウン先のファームウェアが更新前の内部データ構造に対応していない場合であっても、安全にファームウェアのバージョンダウンを行うことができる。
【0079】
なお、第2の制御部201の記憶部202において、第1の制御部204の動作に関する設定値(例えば、ネットワーク103を介した通信の設定値)を格納しておくことが考えられる。そのような場合、第2の制御部201は、S605で第1の制御部204の初期化を要求することに加えて、記憶部202に格納された第1の制御部204の動作に関する設定値も初期化してもよい。
【0080】
なお、本実施形態において説明した、ネットワークカメラとしての情報処理装置は一例であり、特にこのような態様に限定するわけではない。例えば、カメラとしてデジタルスチルカメラ、デジタルムービーカメラ、カメラ付きのスマートフォン、カメラ付きのタブレットコンピュータ、車載カメラ、ドローンカメラ、ロボットに搭載されたカメラなどの撮像機能を有する電子機器を用いてもよい。また、同様の処理が実行可能なのであれば、情報処理装置101が行うものとして説明した機能の一部又は全てが、ネットワークカメラの外部の装置により行われてもよい。
【0081】
本明細書の開示は、以下の情報処理装置、情報処理方法、撮像システム、及びプログラムを含む。
【0082】
(項目1)
情報処理装置の第1の制御部を動作させる第1のファームウェアの更新が、ファームウェアのバージョンダウンであるか否かの判定を行う判定手段と、
前記第1のファームウェアの更新がバージョンダウンであると判定された場合に、前記第1の制御部の、前記第1のファームウェアに参照されるシステムデータの初期化を行う初期化手段と、
前記初期化後に前記第1のファームウェアの更新を行う更新手段と、
を備えることを特徴とする、情報処理装置。
(項目2)
前記第1のファームウェアに参照されるシステムデータが、データファイル形式が前記第1のファームウェアのバージョンに依存するシステムデータであることを特徴とする、項目1に記載の情報処理装置。
(項目3)
前記判定手段は、前記第1のファームウェアの更新指示を受信した場合に、前記第1の制御部を現在動作させている第1のファームウェアのバージョンと、前記更新指示に含まれる第1のファームウェアのバージョンと、を比較することにより、前記第1のファームウェアの更新がファームウェアのバージョンダウンであるか否かの判定を行うことを特徴とする、項目1又は2に記載の情報処理装置。
(項目4)
前記第1の制御部は、外部装置との通信の制御を行う制御部であることを特徴とする、項目1乃至3の何れか一項目に記載の情報処理装置。
(項目5)
前記第1の制御部は、Z-Wave規格、Wi-Fi Neighbor Awareness Networking規格、ZigBee規格、又はBluetooth規格の少なくとも1つ以上に準拠した無線通信方式のネットワークにより、外部装置の通信の制御を行うことを特徴とする、項目4に記載の情報処理装置。
(項目6)
前記第1のファームウェアとは異なる第2のファームウェアにより動作する第2の制御部により、前記第1の制御部の動作に関する設定値を記憶部に格納する格納手段をさらに備え、
前記初期化手段は、前記第1のファームウェアの更新がバージョンダウンであると判定された場合に、前記記憶部における前記設定値をさらに初期化することを特徴とする、項目1乃至5の何れか一項目に記載の情報処理装置。
(項目7)
情報処理装置の第1の制御部を動作させる第1のファームウェアの更新が、ファームウェアのバージョンダウンであるか否かの判定を行う工程と、
前記第1のファームウェアの更新がバージョンダウンであると判定された場合に、前記第1の制御部の、前記第1のファームウェアに参照されるシステムデータの初期化を行う工程と、
前記初期化後に前記第1のファームウェアの更新を行う工程と、
を備えることを特徴とする、情報処理方法。
(項目8)
コンピュータを、項目1乃至6の何れか一項に記載の情報処理装置の各手段として機能させるためのプログラム。
【0083】
(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【0084】
発明は上記実施形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、発明の範囲を公にするために請求項を添付する。
【符号の説明】
【0085】
101:情報処理装置、102:センサデバイス、103:ネットワーク、104:情報端末、105:ネットワーク
図1
図2
図3
図4
図5
図6