(57)【要約】      （修正有）【課題】装置の通信部分およびアプリケーション部分の一方を容易に交換することができる装置を提供する。【解決手段】装置６は、プロセッサ１００および通信部１０２を有する通信モジュール１０と、通信モジュールと着脱可能に結合されるアプリケーションモジュール１４とを備え、アプリケーションモジュールは、センサ１６０、アクチュエータ１６１、並びに外部センサ７および外部アクチェータ８の少なくとも１つと接続するための通信ポート１６２のうちの少なくとも１つを含む機能ユニット１４４と、プロセッサが実行するファームウェアを格納するアプリケーションモジュールメモリ１４２とを有する。【選択図】図１
2020187651.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサおよび通信部を有する通信モジュールと、
前記通信モジュールと着脱可能に結合されるアプリケーションモジュールと
を備え、
前記アプリケーションモジュールは、
センサ、アクチュエータ、並びに外部センサおよび外部アクチェータの少なくとも１つと接続するための通信ポートのうちの少なくとも１つを含む機能ユニットと、
前記プロセッサが実行するファームウェアを格納するアプリケーションモジュールメモリと
を有する装置。
【請求項２】
前記プロセッサは、前記ファームウェアを実行することにより、前記機能ユニットを制御し、かつ前記通信部を介して当該装置の接続先の機器との間の通信を行う請求項１に記載の装置。
【請求項３】
前記通信モジュールは、前記アプリケーションモジュールから取得した前記ファームウェアを記憶するファームウェア領域を有するファームウェアメモリを更に有し、
前記プロセッサは、前記ファームウェアメモリのファームウェア領域に記憶されたファームウェアを実行する
請求項１または２に記載の装置。
【請求項４】
前記プロセッサは、起動処理中に、
前記通信モジュールに結合された前記アプリケーションモジュールから識別情報を取得し、
取得された識別情報と、前記ファームウェアメモリに格納されたファームウェアに対応付けられた識別情報とが一致しなかったことに応じて、前記アプリケーションモジュールメモリに格納されたファームウェアを取得して前記ファームウェアメモリのファームウェア領域へ記憶する
請求項３に記載の装置。
【請求項５】
前記アプリケーションモジュールメモリは、１または複数の前記ファームウェアを格納し、
前記プロセッサは、起動処理中に、前記アプリケーションモジュールメモリに格納された１または複数のファームウェアのうち、前記通信モジュールが用いる通信プロトコルに対応するファームウェアを前記ファームウェアメモリへ記憶する
請求項４に記載の装置。
【請求項６】
前記アプリケーションモジュールメモリは、ファームウェアに対応付けてファームウェアのバージョン情報を格納し、
前記プロセッサは、起動処理中に、前記ファームウェアメモリに格納されたファームウェアのバージョン情報、および前記アプリケーションモジュールメモリに格納されたファームウェアに対応付けられたバージョン情報を比較した結果に基づいて、前記アプリケーションモジュールメモリに格納されたファームウェアを前記ファームウェアメモリのファームウェア領域へ記憶するか否かを決定する
請求項３から５のいずれか一項に記載の装置。
【請求項７】
前記プロセッサは、起動処理中に、前記アプリケーションモジュールメモリに格納されたファームウェアを前記ファームウェアメモリのバックアップ領域に記憶して前記プロセッサを再起動し、
再起動中に、前記ファームウェアメモリの前記バックアップ領域に記憶されたファームウェアを、前記ファームウェアメモリの前記ファームウェア領域に記憶する
請求項４から６のいずれか一項に記載の装置。
【請求項８】
前記プロセッサは、当該装置の接続先の機器からファームウェアをダウンロードして前記アプリケーションモジュールメモリへと格納する請求項１から７のいずれか一項に記載の装置。
【請求項９】
前記アプリケーションモジュールメモリは、前記プロセッサが前記少なくとも１つの機能ユニットおよび前記通信部に関するデータを更に格納し、
前記プロセッサは、前記アプリケーションモジュールメモリに格納された前記データを前記通信モジュール内のデータメモリへと記憶させて、該記憶されたデータを使用して処理を行う
請求項１から８のいずれか一項に記載の装置。
【請求項１０】
センサ、アクチュエータ、並びに外部センサおよび外部アクチェータの少なくとも１つと接続するための通信ポートのうちの少なくとも１つを含む機能ユニットを有するアプリケーションモジュールを着脱可能に結合するための接続部と、
プロセッサと、
通信部と
を備え、
前記プロセッサは、前記接続部によって結合された前記アプリケーションモジュールが有するアプリケーションモジュールメモリに格納されたファームウェアを実行する
通信モジュール。
【請求項１１】
プロセッサおよび通信部を有する通信モジュールを着脱可能に結合するための接続部と、
センサ、アクチュエータ、並びに外部センサおよび外部アクチェータの少なくとも１つと接続するための通信ポートのうちの少なくとも１つを含む機能ユニットと、
前記プロセッサが実行するファームウェアを格納するアプリケーションモジュールメモリと
を備え、
前記アプリケーションモジュールメモリに格納されたファームウェアを前記プロセッサに提供する
アプリケーションモジュール。
【請求項１２】
プロセッサおよび通信部を有する通信モジュールが、センサ、アクチュエータ、並びに外部センサおよび外部アクチェータの少なくとも１つと接続するための通信ポートのうちの少なくとも１つを含む機能ユニット及び前記プロセッサが実行するファームウェアを格納するアプリケーションモジュールメモリを有する、前記通信モジュールと着脱可能なアプリケーションモジュールと結合することと、
前記アプリケーションモジュールが、前記プロセッサが実行するファームウェアを前記プロセッサに提供することと、
前記プロセッサが、前記アプリケーションモジュールから提供されたファームウェアを実行することと
を備える方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、装置、通信モジュール、アプリケーションモジュールおよび方法に関する。
【背景技術】
【０００２】
近年、モノのインターネット（ＩｏＴ）および産業用ＩｏＴ（ＩＩｏＴ）が注目されている。たとえば工場の製造ライン等のプラントにおいては、センサまたはアクチュエータ等を含む通信機能を有するフィールド機器を多数配置し、これらの接続先となるシステムによって製造ライン等の監視または制御を統括することが進められている。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
従来のフィールド機器は、通信を行う通信部分と測定等を行うアプリケーション部分とが１つのモジュールに一体的に組み込まれていたため、ユーザ側でどちらか一方を分離して新しいものに交換することが難しかった。また、機器を動作させるファームウェアはアプリケーション部分の外部に格納されていたため、ユーザはセンサ等の一部のみを変更したい場合でも、機器全体を変更する必要があった。
【課題を解決するための手段】
【０００４】
上記課題を解決するために、本発明の第１の態様においては、装置を提供する。装置は、プロセッサおよび通信部を有する通信モジュールを備えてよい。装置は、通信モジュールと着脱可能に結合されるアプリケーションモジュールを備えてよい。アプリケーションモジュールは、センサ、アクチュエータ、並びに外部センサおよび外部アクチェータの少なくとも１つと接続するための通信ポートのうちの少なくとも１つを含む機能ユニットを有してよい。アプリケーションモジュールは、プロセッサが実行するファームウェアを格納するアプリケーションモジュールメモリを有してよい。
【０００５】
プロセッサは、ファームウェアを実行することにより、機能ユニットを制御し、かつ通信部を介して当該装置の接続先の機器との間の通信を行ってよい。
【０００６】
通信モジュールは、前記アプリケーションモジュールから取得したファームウェアを記憶するファームウェア領域を有するファームウェアメモリを更に有してよい。プロセッサは、ファームウェアメモリのファームウェア領域に記憶されたファームウェアを実行してよい。
【０００７】
プロセッサは、起動処理中に、通信モジュールに結合されたアプリケーションモジュールから識別情報を取得し、取得された識別情報と、ファームウェアメモリに格納されたファームウェアに対応付けられた識別情報とが一致しなかったことに応じて、アプリケーションモジュールメモリに格納されたファームウェアを取得してファームウェアメモリのファームウェア領域へ記憶してよい。
【０００８】
アプリケーションモジュールメモリは、１または複数のファームウェアを格納してよい。プロセッサは、起動処理中に、アプリケーションモジュールメモリに格納された１または複数のファームウェアのうち、通信モジュールが用いる通信プロトコルに対応するファームウェアをファームウェアメモリへ記憶してよい。
【０００９】
アプリケーションモジュールメモリは、ファームウェアに対応付けてファームウェアのバージョン情報を格納してよい。プロセッサは、起動処理中に、ファームウェアメモリに格納されたファームウェアのバージョン情報、およびアプリケーションモジュールメモリに格納されたファームウェアに対応付けられたバージョン情報を比較した結果に基づいて、アプリケーションモジュールメモリに格納されたファームウェアをファームウェアメモリのファームウェア領域へ記憶するか否かを決定してよい。
【００１０】
プロセッサは、起動処理中に、アプリケーションモジュールメモリに格納されたファームウェアをファームウェアメモリのバックアップ領域に記憶してプロセッサを再起動してよい。プロセッサは、再起動中に、ファームウェアメモリのバックアップ領域に記憶されたファームウェアを、ファームウェアメモリのファームウェア領域に記憶してよい。
【００１１】
プロセッサは、当該装置の接続先の機器からファームウェアをダウンロードしてアプリケーションモジュールメモリへと格納してよい。
【００１２】
アプリケーションモジュールメモリは、プロセッサが少なくとも１つの機能ユニットおよび通信部に関するデータを更に格納してよい。プロセッサは、アプリケーションモジュールメモリに格納されたデータを通信モジュール内のデータメモリへと記憶させて、該記憶されたデータを使用して処理を行ってよい。
【００１３】
本発明の第２の態様においては、通信モジュールを提供する。通信モジュールは、センサ、アクチュエータ、並びに外部センサおよび外部アクチェータの少なくとも１つと接続するための通信ポートのうちの少なくとも１つを含む機能ユニットを有するアプリケーションモジュールを着脱可能に結合するための接続部を備えてよい。通信モジュールは、プロセッサを備えてよい。通信モジュールは、通信部を備えてよい。プロセッサは、接続部によって結合されたアプリケーションモジュールが有するアプリケーションモジュールメモリに格納されたファームウェアを実行してよい。
【００１４】
本発明の第３の態様においては、アプリケーションモジュールを提供する。アプリケーションモジュールは、プロセッサおよび通信部を有する通信モジュールを着脱可能に結合するための接続部を備えてよい。アプリケーションモジュールは、センサ、アクチュエータ、並びに外部センサおよび外部アクチェータの少なくとも１つと接続するための通信ポートのうちの少なくとも１つを含む機能ユニットを備えてよい。アプリケーションモジュールは、プロセッサが実行するファームウェアを格納するアプリケーションモジュールメモリを備えてよい。アプリケーションモジュールは、アプリケーションモジュールメモリに格納されたファームウェアをプロセッサに提供してよい。
【００１５】
本発明の第４の態様においては、方法を提供する。方法は、プロセッサおよび通信部を有する通信モジュールが、センサ、アクチュエータ、並びに外部センサおよび外部アクチェータの少なくとも１つと接続するための通信ポートのうちの少なくとも１つを含む機能ユニット及びプロセッサが実行するファームウェアを格納するアプリケーションモジュールメモリを有する、通信モジュールと着脱可能なアプリケーションモジュールと結合することを備えてよい。方法は、アプリケーションモジュールが、プロセッサが実行するファームウェアをプロセッサに提供することを備えてよい。方法は、プロセッサが、アプリケーションモジュールから提供されたファームウェアを実行することを備えてよい。
【００１６】
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【図面の簡単な説明】
【００１７】
【図１】本実施形態に係るシステム１を示す。
【図２】本実施形態に係るファームウェアメモリ１０６の構成を示す。
【図３】本実施形態に係るアプリケーションモジュールメモリ１４２の構成を示す。
【図４】本実施形態に係る装置６の起動処理実行中のブートローダーの動作を示す。
【図５】本実施形態に係る装置６の起動処理実行中および固有機能実行中の動作を示す。
【図６】本実施形態に係るアプリケーションモジュールメモリ１４２へのダウンロードファイルの構成を示す。
【図７】本実施形態に係るダウンロードファイルをアプリケーションモジュールメモリ１４２へダウンロードするフローを示す。
【図８】本実施形態に係る拡張装置８０を外部センサ７および外部アクチュエータ８とともに示す。
【図９】本実施形態に係る外部メモリ８３０の構成を示す。
【図１０】本発明の複数の態様が全体的または部分的に具現化されてよいコンピュータ２２００の例を示す。
【発明を実施するための形態】
【００１８】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１９】
図１は、本実施形態に係るシステム１を示す。システム１は、たとえばプラント等における製造ライン等の各機器を監視または制御する。システム１は、ネットワーク２と、サーバ３と、端末４と、ゲートウェイ５と、１または複数の装置６と、外部センサ７と、外部アクチュエータ８とを備える。たとえば、プラントは、化学等の工業プラント、ガス田や油田等の井戸元やその周辺を管理制御するプラント、水力・火力・原子力等の発電を管理制御するプラント、太陽光や風力等の環境発電を管理制御するプラント、または上下水やダム等を管理制御するプラント等がある。尚、上記のプラントは、あくまでも例示であり、上記のプラントに制限されない。
【００２０】
ネットワーク２は、サーバ３、端末４、および装置６の間を無線または有線により接続する。ネットワーク２は、インターネット、ワイドエリアネットワーク、またはローカルエリアネットワーク等であってよい。
【００２１】
サーバ３は、ネットワーク２を介して１または複数の装置６に各種情報を提供する。サーバ３は、端末４からの要求に応じた情報を装置６に提供する。サーバ３は、装置６から受信した各種情報を端末４に送信し、端末４のユーザに当該情報を提供する。サーバ３は、サーバ・コンピュータ等のコンピュータにより実現されてもよく、複数のコンピュータで実現された装置であってもよい。サーバ３は、クラウドコンピューティングシステムを提供してもよい。
【００２２】
端末４は、サーバ３を介してまたは直接、ユーザからの入力を装置６に送信する。端末４は、ＰＣ（パーソナルコンピュータ）、タブレット型コンピュータ、スマートフォン、ワークステーション、サーバコンピュータ、または汎用コンピュータ等のコンピュータであってよく、複数のコンピュータが接続されたコンピュータシステムであってもよい。
【００２３】
ゲートウェイ５は、装置６をネットワーク２に接続する上で、装置６および接続先の機器（たとえばサーバ３、端末４または外部のサーバ等）の通信プロトコルが異なる場合にプロトコル変換を行う。
【００２４】
装置６は、フィールド機器であってよい。装置６は、例えば流量計や温度センサ等のセンサ機器、流量制御弁や開閉弁等のバルブ機器、ファンやモータ等のアクチュエータ機器、および／またはその他のプラントの現場に設置される機器を有してよい。尚、上記の機器は、あくまでも例示であり、上記の機器に制限されない。装置６は、センサ等による測定若しくは監視またはアクチュエータ等の制御を行う。装置６は、通信モジュール１０と、アプリケーションモジュール１４とを備える。通信モジュール１０とアプリケーションモジュール１４とは、通信モジュール１０が有する接続部１２０とアプリケーションモジュール１４が有する接続部１８０とによって着脱可能に結合される。
【００２５】
通信モジュール１０は、ゲートウェイ５を介して装置６をネットワーク２に接続させる。通信モジュール１０はまた、ファームウェアを実行して当該通信モジュール１０に接続されたアプリケーションモジュール１４の各種制御を行う。ファームウェアは、通信モジュール１０がネットワーク２に接続するために用いる通信プロトコルの種類およびアプリケーションモジュール１４の機能（機能ユニット１４４）の種類ごとに存在し、各ファームウェアは、対応する通信モジュール１０およびアプリケーションモジュール１４の測定、制御または通信等の機能を実現するために実行されるプログラムである。一例として、通信モジュール１０は、内蔵センサ１６０または外部センサ７からセンサ情報を取得し、ネットワーク２を介して当該センサ情報を接続先の機器へ送信する。一例として、通信モジュール１０は、接続先の機器から受信した制御情報をアプリケーションモジュール１４に提供して内蔵アクチュエータ１６１または外部アクチュエータ８を制御する。通信モジュール１０はまた、接続先の機器から１または複数のファームウェアを受信し、ファームウェアを更新する。通信モジュール１０は、プロセッサ１００と、通信部１０２と、第１データメモリ１０４と、ファームウェアメモリ１０６と、第２データメモリ１０８と、電源部１１０と、接続部１２０とを有する。
【００２６】
プロセッサ１００は、通信部１０２、第１データメモリ１０４、ファームウェアメモリ１０６、第２データメモリ１０８、電源部１１０および接続部１２０に接続される。プロセッサ１００は、ファームウェアを実行することにより、アプリケーションモジュール１４の機能ユニット１４４を制御し、かつ通信部１０２を介して装置６の接続先の機器との間の通信を有線または無線により行う。ここでプロセッサ１００は、接続部１２０、１８０によって結合されたアプリケーションモジュール１４が有するアプリケーションモジュールメモリ１４２に格納されたファームウェアを実行する。例えば、プロセッサ１００は、機能ユニット１４４に対し、内蔵センサ１６０からセンサ情報を取得させ、内蔵アクチュエータ１６１を動作させる制御を行う。
【００２７】
通信部１０２は、ゲートウェイ５または有線を介して、ネットワーク２に接続される。通信部１０２は、プロセッサ１００によるプロトコル制御により、通信仕様に応じて接続先の機器と通信を行ってよい。また通信部１０２は、ＮＦＣ（Ｎｅａｒ  Ｆｉｅｌｄ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ）またはＢｌｕｅｔｏｏｔｈ（登録商標）通信技術を用いて、ネットワーク２を介さずに接続先の機器と通信を行ってよい。通信部１０２は、有線により端末４等に直接接続され、または無線により端末４等に通信可能に接続され、ネットワーク２を介さずに接続先の機器（端末４等）と通信を行ってよい。
【００２８】
第１データメモリ１０４は、プロセッサ１００が少なくとも１つの機能ユニット１４４および通信部１０２に関するデータを格納する。第１データメモリ１０４は、プロセッサ１００が少なくとも１つの機能ユニット１４４および通信部１０２を制御するために使用するデータを格納してよい。第１データメモリ１０４は、センサ情報等に用いる補正係数（定数）を格納してよい。第１データメモリ１０４はまた、通信部１０２を介して接続先の機器または接続部１２０、１８０を介してアプリケーションモジュール１４から受け取った各種情報を記憶してよい。第１データメモリ１０４は、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）または静的ランダムアクセスメモリ（ＳＲＡＭ）等の揮発性メモリであってよい。
【００２９】
ファームウェアメモリ１０６は、プロセッサ１００によって実行されるファームウェアを記憶する。ファームウェアメモリ１０６は、消去可能プログラマブルリードオンリメモリ（ＥＰＲＯＭ若しくはフラッシュメモリ）、電気的消去可能プログラマブルリードオンリメモリ（ＥＥＰＲＯＭ）、強誘電体メモリ（ＦＲＡＭ（登録商標））、コンパクトディスクリードオンリメモリ（ＣＤ-ＲＯＭ）またはデジタル多用途ディスク（ＤＶＤ）等の不揮発性メモリであってよい。
【００３０】
第２データメモリ１０８は、通信モジュール１０固有の情報を記憶する。たとえば第２データメモリ１０８は、電源部１１０のバッテリーの種類、残量または使用電力量を記憶する。第２データメモリ１０８は、消去可能プログラマブルリードオンリメモリ（ＥＰＲＯＭ若しくはフラッシュメモリ）、ＥＥＰＲＯＭ、ＦＲＡＭ（登録商標）、ＣＤ−ＲＯＭまたはＤＶＤ等の不揮発性メモリであってよい。
【００３１】
電源部１１０は、接続部１２０に接続される。電源部１１０は、通信モジュール１０の各要素に電力を供給するとともに、接続部１２０、１８０を介して、アプリケーションモジュール１４に電力を供給する。電源部１１０はバッテリを有してよく、プロセッサ１００の要求に応じて適宜バッテリ容量の診断を行ってよい。
【００３２】
接続部１２０は、アプリケーションモジュール１４の接続部１８０と着脱可能に接続される。接続部１２０は、接続部１８０と電気的に接続され、通信モジュール１０およびアプリケーションモジュール１４を通信可能に接続する。接続部１２０は、コネクタ端子を含んでよい。
【００３３】
アプリケーションモジュール１４は、内蔵センサ１６０、内蔵アクチュエータ１６１、外部センサ７および外部アクチュエータ８を搭載し、内蔵センサ１６０および外部センサ７による測定、通信モジュール１０へのセンサ情報の提供または通信モジュール１０から提供された制御情報に基づく内蔵アクチュエータ１６１および外部アクチュエータ８の制御を行う。アプリケーションモジュール１４はまた、ファームウェアメモリ１０６を介して、アプリケーションモジュールメモリ１４２に格納されたファームウェアをプロセッサ１００に提供する。アプリケーションモジュール１４は、装着制御部１４０と、アプリケーションモジュールメモリ１４２と、機能ユニット１４４と、接続部１８０とを有する。
【００３４】
装着制御部１４０は、接続部１８０に接続される。装着制御部１４０は、通信モジュール１０からアプリケーションモジュール１４が通信モジュール１０に装着されているか否かを確認するための装着確認信号を受信したことに応じて、通信モジュール１０に装着信号を送信する。また装着制御部１４０は通信モジュール１０から装着確認信号を受信するまでの間、アプリケーションモジュール１４の消費電力を抑えるための電力制御を行ってよい。
【００３５】
アプリケーションモジュールメモリ１４２は、プロセッサ１００が実行するファームウェアを格納する。アプリケーションモジュールメモリ１４２は、ＥＰＲＯＭ、フラッシュメモリ、ＥＥＰＲＯＭ、ＦＲＡＭ（登録商標）、ＣＤ−ＲＯＭまたはＤＶＤ等の不揮発性メモリであってよい。
【００３６】
機能ユニット１４４は、接続部１８０に接続され、センス機能またはアクチュエータ機能を提供する。機能ユニット１４４は、内蔵センサ１６０、内蔵アクチュエータ１６１、並びに通信ポート１６２と、アナログ制御部１６４と、測定部１６６とを含む。
【００３７】
内蔵センサ１６０または内蔵アクチュエータ１６１は、アナログ制御部１６４に接続され、当該内蔵センサ１６０が取得したセンサ情報をアナログ制御部１６４に提供し、またはアナログ制御部１６４から提供される制御信号に応じた動作を実行する。内蔵センサ１６０は、一例として、熱電対センサ等の温度センサ、湿度センサ、圧力センサ、振動センサ、腐食センサ、環境センサ、流量センサまたはレベルセンサであってよい。内蔵アクチュエータ１６１は、リレー、電動バルブまたはヒータであってよい。
【００３８】
通信ポート１６２は、外部センサ７および外部アクチェータ８の少なくとも１つと接続するために用いられる。通信ポート１６２は、有線または無線により、外部センサ７および外部アクチェータ８の少なくとも１つと通信可能に接続されてよい。通信ポート１６２は、一例として、ＮＦＣ通信またはＢｌｕｅｔｏｏｔｈ（登録商標）通信技術を用いて、外部センサ７および外部アクチェータ８の少なくとも１つと通信可能に接続されてよい。通信ポート１６２はまた、アナログ制御部１６４に接続される。通信ポート１６２は外部センサ７からセンサ情報を取得し、アナログ制御部１６４に当該センサ情報を提供する。また通信ポート１６２は、アナログ制御部１６４から取得した制御信号を外部アクチュエータ８に提供する。通信ポート１６２は、汎用のＩ／Ｏ端子および通信ケーブルを有してよい。また通信ポート１６２は、外部センサ７および外部アクチェータ８に電気的に接続する導電ケーブルを有してもよい。
【００３９】
アナログ制御部１６４は、測定部１６６に接続される。アナログ制御部１６４は、プロセッサ１００の要求に応じて、測定部１６６若しくは通信ポート１６２から提供される信号の増幅およびフィルタリング等の信号の前処理または後処理を行う。一例として、アナログ制御部１６４は、内蔵センサ１６０または外部センサ７から取得したセンサ信号を増幅またはフィルタリングする。またアナログ制御部１６４は、通信モジュール１０から取得した制御情報に応じた電流を内部アクチュエータ１６１または外部アクチュエータ８に供給してよい。アナログ制御部１６４は、一例として、増幅器、フィルター、アナログスイッチまたはコンパレータを含んでよい。
【００４０】
測定部１６６は、接続部１８０に接続される。測定部１６６は、プロセッサ１００の要求に応じてＡ／Ｄ変換処理等の信号処理を行い、またプロセッサ１００との間で情報の送受信を行う。測定部１６６は、ＳＰＩ（Ｓｅｒｉａｌ  Ｐｅｒｉｐｈｅｒａｌ  Ｉｎｔｅｒｆａｃｅ）またはＵＡＲＴ（Ｕｎｉｖｅｒｓａｌ  Ａｓｙｎｃｈｒｏｎｏｕｓ  Ｒｅｃｅｉｖｅｒ  Ｔｒａｎｓｍｉｔｔｅｒ）通信等の汎用的な通信を用いてプロセッサ１００と通信してよい。測定部１６６は、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）または小型のＣＰＵを含んでよい。測定部１６６はまた、１または複数の汎用入出力（ＧＰＩＯ）を用いてプロセッサ１００により直接制御されてよい。測定部１６６はさらに、Ａ／Ｄ変換器、Ｄ／Ａ変換器またはカウンタを含んでよい。
【００４１】
接続部１８０は、プロセッサ１００および通信部１０２を有する通信モジュール１０をアプリケーションモジュール１４に着脱可能に結合させるために用いられる。接続部１８０は、コネクタ端子を含んでよい。本実施形態において、接続部１８０は、接続部１２０との間でシリアル通信のプロトコルを用いた通信を可能にしてよい。接続部１８０および接続部１２０の間の通信は、一例としてＳＰＩ通信またはＵＡＲＴ通信であってよい。
【００４２】
外部センサ７または外部アクチュエータ８は、通信ポート１６２を介して、当該外部センサ７が取得したセンサ情報をアナログ制御部１６４に提供し、またはアナログ制御部１６４から提供される制御信号に応じた動作を実行する。外部センサ７は、一例として、熱電対センサ等の温度センサ、湿度センサ、圧力センサ、振動センサ、腐食センサ、環境センサ、流量センサまたはレベルセンサであってよい。外部アクチュエータ８は、リレー、電動バルブまたはヒータであってよい。
【００４３】
以上のシステム１によれば、通信モジュール１０およびアプリケーションモジュール１４は接続部１２０、１８０によって着脱可能に結合されているため、ユーザは一方を容易に分離させ、新しいものに交換することができる。
【００４４】
またシステム１によれば、アプリケーションモジュール１４がファームウェアを保有するため、通信モジュール１０は、結合されるアプリケーションモジュール１４に対応したファームウェアをあらかじめ保有する必要がない。このためユーザは、既存の通信モジュール１０に対して、その通信仕様に対応するファームウェアを有する異なる機能の種類のアプリケーションモジュール１４を組み合わせることができる。これにより、新しいアプリケーションモジュール１４が開発および販売された場合に、ユーザは新しいアプリケーションモジュール１４のみを購入すれば、既存の通信モジュール１０を結合させて直ちに装置６を動作させることができる。開発者にとっても、アプリケーションモジュール１４の機能を変更するたびに装置６全体のバージョンアップおよび機器ごとのファームウェアのリリーステストを行う必要がなくなるため、開発工程の削減および開発期間の短縮が実現されるという利点がある。
【００４５】
そしてシステム１によれば、ファームウェアがアプリケーションモジュール１４内のアプリケーションモジュールメモリ１４２に格納されるため、たとえばユーザがバッテリ交換等のために通信モジュール１０ごと交換する場合でも、交換後の装置６はアプリケーションモジュール１４内のファームウェアを実行することにより、交換前の装置６の処理を引き続き容易に行うことができる。
【００４６】
図２は、本実施形態に係るファームウェアメモリ１０６の構成を示す。ファームウェアメモリ１０６は、プロセッサのブートローダー領域２００、アプリケーションモジュール１４から取得したファームウェアを記憶するファームウェア領域２２０、およびバックアップ領域２４０を有する。
【００４７】
ブートローダー領域２００は、ファームウェアを起動させるためのブートローダーを格納する。ブートローダーは、結合されるアプリケーションモジュール１４の種類によらず、共通の初期化処理等を装置６に実行させるためのプログラムであってよい。
【００４８】
ファームウェア領域２２０は、プロセッサ１００が読み出して実行するファームウェアを記憶する。ファームウェア領域２２０はさらに、当該ファームウェアが実行された場合に制御対象となる機能ユニット１４４を有するアプリケーションモジュール１４の識別情報２２２と、当該ファームウェアによって実行される通信処理の通信プロトコルに対応するプロトコル情報２２４と、当該ファームウェアのバージョン情報２２６とを記憶する。なおファームウェア領域２２０は、通信モジュール１０の工場出荷時等の初期状態において、便宜上通信モジュール１０のプロセッサ１００がファームウェアを実行して通信を行うために用いる通信プロトコルに対応する任意のファームウェアを記憶してよい。
【００４９】
バックアップ領域２４０は、アプリケーションモジュール１４から提供されるファームウェアのバックアップを記憶する。バックアップ領域２４０はさらに、バックアップされたファームウェアがサポートするアプリケーションモジュール１４の識別情報２４２と、当該ファームウェアのプロトコル情報２４４と、当該ファームウェアのバージョン情報２４６とを記憶する。
【００５０】
識別情報は、アプリケーションモジュール１４またはそれに搭載されるセンサ／アクチュエータを識別する情報である。識別情報は、アプリケーションモジュール１４またはセンサ／アクチュエータの型番等を示す製品識別情報であってよい。識別情報はまた、温度センサまたは圧力センサ等の、アプリケーションモジュール１４またはセンサ／アクチュエータの製品種別を示す識別情報であってよい。識別情報は、数字若しくは文字列であってよく、または数字と文字列の組み合わせであってもよい。
【００５１】
プロトコル情報は、通信モジュール１０のプロセッサ１００がファームウェアを実行してサーバ３または端末４等と通信を行うための通信プロトコルを示す情報である。プロトコル情報は、一例として、ＬｏＲａ（登録商標）、ＳＩＧＦＯＸ（登録商標）、Ｒａｎｄｏｍ  Ｐｈａｓｅ  Ｍｕｌｔｉｐｌｅ  Ａｃｃｅｓｓ（ＲＰＭＡ）、Ｎａｒｒｏｗ  Ｂａｎｄ  ＩｏＴ（ＮＢ−ＩｏＴ）、ＨＡＲＴ（登録商標）、ＢＲＡＩＮ、ファウンデーションフィールドバス（登録商標）、ＷｉｒｅｌｅｓｓＨＡＲＴ（登録商標）またはＩＳＡ１００．１１ａ等で規定される通信プロトコル等の通信プロトコルを示してよい。
【００５２】
バージョン情報は、対応するファームウェアのバージョンまたはリビジョンを示す情報である。バージョン情報は、新機能の追加、バグの修正または仕様の変更等の、ファームウェアの改訂によって更新される。バージョン情報は、数字若しくは文字列であってよく、または数字と文字列の組み合わせであってもよい。バージョン情報の数字部分は小数点を含んでよく、数字部分は値が大きいほど新しく開発されたファームウェアであることを示してよい。
【００５３】
図３は、本実施形態に係るアプリケーションモジュールメモリ１４２の構成を示す。本実施形態において、アプリケーションモジュールメモリ１４２は、識別情報３００を格納する識別情報記憶領域と、１または複数のファームウェアを格納する１または複数のファームウェア領域３１０と、ファームウェア領域３１０に格納されるファームウェアに対応してそれぞれ設けられる１または複数のデータ領域３２０とを有する。図３においては、アプリケーションモジュールメモリ１４２は、複数のファームウェアを格納し、識別情報記憶領域と、通信プロトコルが異なる複数のファームウェア領域３１０と、複数のデータ領域３２０とを有する。
【００５４】
識別情報記憶領域は、複数のファームウェア領域３１０に格納されるファームウェアの識別情報３００を記憶する。これに代えて識別情報３００は、アプリケーションモジュール１４内の別のＲＯＭまたはレジスタ等に格納されてもよい。
【００５５】
複数のファームウェア領域３１０は、識別情報が同じ複数のファームウェアを格納してよい。たとえば、ファームウェア領域３１１〜３１４は同じ型番の温度センサを動作させるファームウェアであり、ファームウェア領域３１１、３１２、３１３および３１４はそれぞれプロトコルＡ、Ｂ、ＣおよびＤに対応してよい。なお、アプリケーションモジュールメモリ１４２内のすべてのファームウェア領域３１０はファームウェアを格納してよく、ファームウェアを格納していない空のファームウェア領域３１０があってもよい。
【００５６】
各ファームウェア領域３１１〜３１４は、自己のファームウェア領域３１１〜３１４内に第１ファームウェア領域３０００および第２ファームウェア領域３２００を有してよい。第１ファームウェア領域３０００および第２ファームウェア領域３２００のうち一方はアクティブ領域であり、接続部１２０、１８０を介してプロセッサ１００によりアクセスされてよい。他方は非アクティブ領域であり、プロセッサ１００は非アクティブ領域にアクセスすることができない。アクティブ領域は、プロセッサ１００に使用され得る最新のファームウェアを格納し、非アクティブ領域は、それ以前にダウンロードされたファームウェアを格納してよい。本実施形態において第１ファームウェア領域３０００および第２ファームウェア領域３２００はさらに、ファームウェアに対応付けてファームウェアのプロトコル情報３００２およびバージョン情報３００４を格納してよい。
【００５７】
各データ領域３２０は、サポートする通信プロトコルが異なる各ファームウェアに対応するデータを格納する。データは、対応するファームウェアまたはアプリケーションモジュール１４に固有の情報を含む。たとえばデータは、対応するファームウェアがサポートする通信アドレスを含んでよく、一例として、通信機器に一意に割り当てられる６４ビットの識別子であるＥＵＩ−６４識別子を含んでよい。またデータは、サポートする通信プロトコルが無線通信に対応する場合、プロビジョニングにより予め装置６とゲートウェイ５との間で交換した暗号キーを含んでよい。データは、サポートする通信プロトコルがフィールドバス通信に対応する場合、接続先の機器から設定されたスケジューリング情報を含んでよい。データはまた、対応するファームウェアの制御対象であるセンサ／アクチュエータの校正値またはセンサ情報若しくはアクチュエータの制御情報に用いる補正係数等のパラメータを含んでよく、アプリケーションモジュール１４の機器のシリアル番号を含んでもよい。
【００５８】
本実施形態によれば、アプリケーションモジュールメモリ１４２はサポートする通信プロトコルが異なる複数のファームウェアおよびデータを格納するため、通信モジュールが、自身がサポートする通信プロトコルに対応する、アプリケーションモジュールメモリ１４２に格納されたファームウェアおよびデータを実行することによって、既存のアプリケーションモジュール１４を動作させることができる。したがって、アプリケーションモジュールメモリ１４２は、特定の通信モジュール１０との組み合わせに限定されない。たとえば、ユーザは、通信環境を変更する場合においても、通信モジュール１０のみを変更すれば、既存のアプリケーションモジュール１４を引き続き使用することができる。またアプリケーションモジュールメモリ１４２は各種のデータを格納するため、ユーザは、電池交換時等に通信モジュール１０だけ交換しても、同一の設定内容で速やかに装置６の使用を開始して、同一の動作を引き続き実行することができる。
【００５９】
なお、アプリケーションモジュールメモリ１４２は、ファームウェアまたはデータが格納されていない空のファームウェア領域３１０および空のデータ領域３２０を有してよい。またアプリケーションモジュールメモリ１４２が、１のファームウェアを格納する場合、アプリケーションモジュールメモリ１４２は、１のファームウェア領域３１０と１のデータ領域３２０とを有してもよく、複数のファームウェア領域３１０と複数のデータ領域３２０とを有してもよい。アプリケーションモジュールメモリ１４２が複数のファームウェア領域３１０と複数のデータ領域３２０とを有する場合、ファームウェアは１つであるため、ファームウェアまたはデータが格納されていない空のファームウェア領域３１０および空のデータ領域３２０を有してよい。
【００６０】
図４は、本実施形態に係る装置６の起動処理実行中のブートローダーの動作を示す。Ｓ４００において、ユーザは、通信モジュール１０の電源部１１０の電源をＯＮにして、通信モジュール１０の各要素に電力を供給させる。
【００６１】
Ｓ４０２において、プロセッサ１００は、ファームウェアメモリ１０６内のブートローダー領域２００に格納されるブートローダーを読み出して実行する。プロセッサ１００は、ブートローダーの実行前または実行中に、メモリサイズの確認、メモリの動作確認若しくは通信環境の確認等の各種自己診断または各種初期化処理を行ってよい。
【００６２】
Ｓ４０４において、プロセッサ１００は、バックアップ領域２４０に新しい情報が格納されているか否かを判定する。プロセッサ１００は、新しい情報が格納されていると判定すれば、処理をＳ４０６に進める。プロセッサ１００は、新しい情報が確認されなければ、処理をＳ４０８に進める。たとえばプロセッサ１００は、ファームウェア領域２２０に格納されるファームウェアおよびバックアップ領域２４０に格納されるファームウェアの識別情報、プロトコル情報並びにバージョン情報が一致するか否かを判定してよい。プロセッサ１００は、一致しないと判定すれば、処理をＳ４０６に進め、一致すると判定すれば、処理をＳ４０８に進めてよい。
【００６３】
Ｓ４０６において、プロセッサ１００は、バックアップ領域２４０に格納されたファームウェア、識別情報２４２、プロトコル情報２４４およびバージョン情報２４６をファームウェア領域２２０の各対象領域に書込むことにより、ファームウェア領域２２０の情報を更新する。
【００６４】
Ｓ４０８において、プロセッサ１００は、ファームウェア領域２２０に格納されたファームウェアの共通機能を起動させる。ここでファームウェアの共通機能とは、装置６の全てのファームウェアが共通して有する機能を指す。当該共通機能は、図５のＳ５００〜Ｓ５１０に示す処理を参照して以下で説明する。
【００６５】
以上のように、プロセッサ１００は、装置６の起動時にブートローダーを実行して、バックアップ領域２４０からファームウェア領域２２０にファームウェアをコピーする。このため、バックアップ領域２４０のファームウェアが更新されることに応じて、ファームウェア領域２２０のファームウェアも自動で更新されることができる。
【００６６】
図５は、本実施形態に係る装置６の起動処理実行中および固有機能実行中の動作を示す。図５は、装置６が起動処理実行中において、図４のＳ４０８に示すファームウェアの共通機能を実行してからファームウェアの固有機能を実行するまでの動作を示す。Ｓ５００において、電源部１１０が、プロセッサ１００の要求に応じて、接続部１２０を介してアプリケーションモジュール１４に電力を供給する。
【００６７】
Ｓ５０２において、装着制御部１４０は、接続部１２０、１８０を介して、アプリケーションモジュール１４が通信モジュール１０に装着されていることを示す装着信号を通信モジュール１０に送信する。本実施形態において、装着制御部１４０は、アプリケーションモジュール１４が通信モジュール１０に装着されていることを確認する装着確認信号を通信モジュール１０から受信したことに応じて、通信モジュール１０に装着信号を送信してよい。プロセッサ１００は、装着制御部１４０からの装着信号を受信したと判定すれば、処理をＳ５０４に進め、受信しないと判定すれば、Ｓ５０２において装着制御部１４０からの装着信号を受信するまで待機する。
【００６８】
Ｓ５０４において、プロセッサ１００は、通信モジュール１０に結合されたアプリケーションモジュール１４内のアプリケーションモジュールメモリ１４２から識別情報３００を取得し、取得された識別情報３００と、ファームウェアメモリ１０６内のファームウェア領域２２０に格納されたファームウェアに対応付けられた識別情報２２２とが一致するか否かを判定する。たとえば、電池交換等でユーザが前回の起動時と同じアプリケーションモジュール１４を使用する場合、またはユーザがアプリケーションモジュール１４を前回の起動時と同じ種類の新しいモデルに変更する場合、両識別情報は一致する。一方で、たとえばユーザが温度センサから圧力センサに変更する等、アプリケーションモジュール１４を前回の起動時と異なる製品種別のものに変更した場合、両識別情報は一致しない。プロセッサ１００は、両識別情報が一致すると判定すれば、処理をＳ５０６に進め、両識別情報が一致しないと判定すれば、処理をＳ５１４に進める。
【００６９】
Ｓ５０６において、プロセッサ１００は、アプリケーションモジュールメモリ１４２に格納された１または複数のファームウェアのうち、通信モジュール１０が用いる通信プロトコルに対応するファームウェアがあるか否かを判定する。本実施形態において、プロセッサ１００は、アプリケーションモジュールメモリ１４２内の各ファームウェア領域３１０のアクティブ領域に格納されるプロトコル情報３００２と、ファームウェアメモリ１０６内のファームウェア領域２２０に格納されるプロトコル情報２２４とを比較することによって、当該判定を行ってよい。プロセッサ１００は、プロトコル情報が一致するファームウェアがあれば、処理をＳ５０８に進め、プロトコル情報が一致するファームウェアがなければ、処理をＳ５２０に進める。
【００７０】
Ｓ５０８において、プロセッサ１００は、アプリケーションモジュールメモリ１４２内のファームウェア領域３１０に格納されたファームウェアのうち、Ｓ５０６において通信プロトコルが一致すると判定されたファームウェアに対応付けられたバージョン情報３００４とファームウェアメモリ１０６内のファームウェア領域２２０のアクティブ領域に格納されたファームウェアのバージョン情報２２６とを比較する。そしてプロセッサ１００は、比較結果に基づいて、アプリケーションモジュールメモリ１４２に格納されたファームウェアをファームウェアメモリ１０６へ記憶するか否かを決定する。本実施形態において、プロセッサ１００は、アプリケーションモジュールメモリ１４２内のバージョン情報３００４を有するファームウェアがファームウェアメモリ１０６内のバージョン情報２２６を有するファームウェアよりも新しいものである場合、アプリケーションモジュールメモリ１４２のアクティブ領域に格納されたファームウェアをファームウェアメモリ１０６へとコピーすることを決定してよい。プロセッサ１００は、両バージョン情報が一致する等、バージョン情報３００４を有するファームウェアがバージョン情報２２６を有するファームウェアよりも新しいものでないと判定すれば、処理をＳ５１０に進め、両バージョン情報が一致せず、アプリケーションモジュールメモリ１４２内のバージョン情報３００４を有するファームウェアがファームウェアメモリ１０６内のバージョン情報２２６を有するファームウェアよりも新しいものであると判定すれば、処理をＳ５１６に進める。
【００７１】
またプロセッサ１００は、アプリケーションモジュールメモリ１４２内のバージョン情報３００４を有するファームウェアがファームウェアメモリ１０６内のバージョン情報２２６を有するファームウェアよりも古いものである場合、アプリケーションモジュールメモリ１４２のアクティブ領域に格納されたファームウェアをファームウェアメモリ１０６へとコピーして実行することを決定してよい。一例として、プロセッサ１００は、ダウングレード処理を指示するユーザからの信号を受け取ったことに応じて、当該決定をしてよい。たとえば、プロセッサ１００は、ユーザが操作する接続先の機器からダウングレード処理の指示を受信することに応じて、当該決定をしてよい。またプロセッサ１００は、装置６がユーザからのダウングレード処理の指示が入力される入力手段を有する場合は、当該入力手段への入力に応じて、当該決定をしてよい。この場合、プロセッサ１００は、両バージョン情報が一致する等、アプリケーションモジュールメモリ１４２内のバージョン情報３００４を有するファームウェアがファームウェアメモリ１０６内のバージョン情報２２６を有するファームウェアよりも古いものでないと判定すれば、処理をＳ５１０に進め、古いものであると判定すれば、処理をＳ５１６に進める。
【００７２】
Ｓ５１０において、プロセッサ１００は、アプリケーションモジュール１４内のデータ領域３２０のうち、通信モジュール１０が用いる通信プロトコルに対応するデータ（たとえば、通信アドレスまたは  センサ／アクチュエータの校正値等）を通信モジュール１０内の第１データメモリ１０４へと記憶させる。他の実施形態において、プロセッサ１００に代えて、不図示の外部コントローラ（たとえばＤｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ（ＤＭＡ）コントローラ等）が、アプリケーションモジュールメモリ１４２から第１データメモリ１０４へデータを記憶させてもよい。
【００７３】
Ｓ５１２において、プロセッサ１００は、第１データメモリ１０４に記憶されるデータを使用し、ファームウェアメモリ１０６のファームウェア領域２２０に記憶されたファームウェアを読み出して、当該ファームウェアの固有機能を実行し、処理を終了させる。ファームウェアの固有機能とは、対象のアプリケーションモジュール１４が目的の機能を実現するためにファームウェアごとに設定されたプログラムを指す。たとえばプロセッサ１００は、端末４の要求に応じてまたは定期的に、内蔵センサ１６０および外部センサ７から取得したセンサ情報を、サーバ３を介して端末４に提供してよい。またプロセッサ１００は、端末４の要求に応じてまたは定期的に、サーバを介して端末４から制御情報を受信し、制御情報に基づいて内蔵アクチュエータおよび外部アクチュエータを制御してよい。
【００７４】
また装置６の動作中に、プロセッサ１００は、第１データメモリ１０４からデータを読み出してよい。プロセッサ１００は、データを変更する必要がある場合、第１データメモリ１０４に書き込みを行い、一定期間経過後に第１データメモリ１０４内のデータをアプリケーションモジュールメモリ１４２に書き込んでよい。これによりアプリケーションモジュールメモリ１４２への書き込み回数を減らすとともに、ファームウェア全体のパフォーマンスを改善することができる。
【００７５】
Ｓ５１４において、プロセッサ１００は、Ｓ５０４において両識別情報が一致しなかったことに応じて、Ｓ５０６と同様にアプリケーションモジュールメモリ１４２に格納された１または複数のファームウェアのうち、通信モジュール１０がサポートする通信プロトコルに対応するファームウェアがあるか否かを判定する。プロセッサ１００は、プロトコル情報が一致するファームウェアがあれば、処理をＳ５１６に進め、プロトコル情報が一致するファームウェアがなければ、処理をＳ５２０に進める。
【００７６】
Ｓ５１６において、プロセッサ１００は、アプリケーションモジュールメモリ１４２内のファームウェア領域３１０に格納された１または複数のファームウェアのうち、通信モジュール１０が用いる通信プロトコルに対応するファームウェアを取得して、ファームウェアメモリ１０６のバックアップ領域２４０へ記憶する。本実施形態において、プロセッサ１００は、アプリケーションモジュール１４に対して読出要求を送信する。アプリケーションモジュール１４は、読出要求を受信したことに応じて、アプリケーションモジュールメモリ１４２のファームウェア領域３１０のアクティブ領域に格納されたファームウェアを、プロセッサ１００に送信する。プロセッサ１００は、アプリケーションモジュール１４から受信したファームウェアをファームウェアメモリ１０６のバックアップ領域２４０に記憶する。他の実施形態において、プロセッサ１００に代えて、不図示の外部コントローラが、アプリケーションモジュールメモリ１４２からバックアップ領域２４０にファームウェアをコピーしてよい。またプロセッサ１００は、アプリケーションモジュールメモリ１４２内のファームウェア領域３１０に格納される、コピーするファームウェアに対応するプロトコル情報３００２およびバージョン情報３００４を、ファームウェアメモリ１０６のバックアップ領域２４０の対象領域２４４、２４６へ記憶させる。
【００７７】
Ｓ５１８において、プロセッサ１００は、装置６を再起動させ、処理を終了させる。この場合プロセッサ１００は、再起動中に処理を図４のＳ４０２に戻してブートローダーを実行させた後、図４のＳ４０４〜４０６においてファームウェアメモリ１０６内のバックアップ領域２４０に記憶されたファームウェアを、ファームウェアメモリ１０６内のファームウェア領域２２０に記憶する。
【００７８】
Ｓ５２０において、プロセッサ１００は、Ｓ５０６またはＳ５１４においてプロトコル情報が一致するファームウェアがないと判定したことに応じて、通信モジュール１０の通信プロトコルに対応するファームウェアがなかったことを示す信号を出力し、処理を終了させる。プロセッサ１００は、通信部１０２を介して、端末４にエラー信号を送信してよい。
【００７９】
このように、本実施形態によれば、プロセッサ１００は、各機器およびファームウェアが変更されていなければ、起動処理時に通信モジュール１０がサポートする通信プロトコルに対応するデータをアプリケーションモジュールメモリ１４２から第１データメモリ１０４にコピーした後、ファームウェアメモリ１０６にすでに格納されているファームウェアをそのまま読み出して実行することができる。したがって、プロセッサは、前回のファームウェア実行時における処理を、引き続き容易に行うことができる。
【００８０】
本実施形態によれば、通信モジュール１０に、前回の起動時と異なる識別情報のアプリケーションモジュール１４が通信モジュール１０に結合されている場合、プロセッサ１００は、通信モジュール１０がサポートする通信プロトコルに対応したファームウェアをアプリケーションモジュール１４から自動でコピーして実行する。このため、たとえばセンサ等の製品種別を変更する場合に、ユーザは既存の通信モジュール１０を用いて、変更後のアプリケーションモジュール１４を迅速に動作させることができる。
【００８１】
本実施形態によれば、通信モジュール１０に、前回の起動時と異なるバージョンのファームウェアを保有するアプリケーションモジュール１４が結合されている場合、プロセッサ１００は、新しいバージョンのファームウェアをアプリケーションモジュール１４から自動でコピーして実行する。このため、プロセッサ１００は、アプリケーションモジュール１４に格納される常に新しいバージョンのファームウェアを動作させることができる。
【００８２】
本実施形態によれば、プロセッサ１００は、通信モジュール１０の通信プロトコルに対応するファームウェアをコピーして実行するため、通信環境の変更によって通信モジュール１０を交換しても、既存のアプリケーションモジュール１４に変更後の通信プロトコルに対応するファームウェアが格納されていれば、ユーザは引き続き既存のアプリケーションモジュール１４を使用することができる。
【００８３】
本実施形態によれば、ロードされたファームウェアは、プロセッサ１００によって起動処理中にバックアップ領域２４０に格納され、再起動後にファームウェア領域２２０にコピーされるため、ロードされたファームウェアを安定して動作させることができる。
【００８４】
なお、プロセッサ１００は、アプリケーションモジュールメモリ１４２に格納されるファームウェアおよびデータをファームウェアメモリ１０６を介さず直接読み出すことによって、ファームウェアを実行してもよい。この場合、図４のＳ４０４およびＳ４０６並びに図５のＳ５０４、Ｓ５０８〜Ｓ５１０およびＳ５１４〜Ｓ５１８に示す処理は省略されてよい。プロセッサ１００は、図４のＳ４０８に代えて、アプリケーションモジュール１４２に格納される任意のファームウェアを実行することにより、ファームウェアの共通機能を起動させてよい。そして図５のＳ５０６において、プロセッサ１００は、Ｓ５０２において装着信号を通信モジュール１０から受信したことに応じて、アプリケーションモジュールメモリ１４２に通信モジュール１０がサポートする通信プロトコルに対応するファームウェアがあるか否かを判定する。プロセッサ１００は、アプリケーションモジュールメモリ１４２内に通信プロトコルに対応するファームウェアがあれば、Ｓ５１２に代えて、アプリケーションモジュールメモリ１４２内の当該ファームウェアおよび対応するデータを読み出して、当該ファームウェアの固有機能を実行してよい。プロセッサ１００は、アプリケーションモジュールメモリ１４２内に通信プロトコルに対応するファームウェアがなければ、Ｓ５２０に処理を進め、エラー信号を送信してよい。
【００８５】
図６は、本実施形態に係るアプリケーションモジュールメモリ１４２へのダウンロードファイルの構成を示す。ダウンロードファイルは識別情報６００と、１または複数のファームウェア６１０〜６４０と、各ファームウェア６１０〜６４０に対応するプロトコル情報６５０およびバージョン情報６６０とを含む。ダウンロードファイルのファームウェア６１０〜６４０は、それぞれ異なる通信プロトコルに対応してよい。一例としてファームウェア６１０、６２０、６３０および６４０は、それぞれプロトコルＡ、Ｂ、Ｃ、およびＤに対応してよい。ファームウェア６１０、６２０、６３０および６４０は、それぞれ同じバージョン情報を有してもよい。装置６の開発効率向上のため、ダウンロードファイルのファームウェア６１０〜６４０はそれぞれ独立し、互いに干渉しないように設計されてよい。図６に示すダウンロードファイルを装置６のアプリケーションモジュールメモリ１４２へダウンロードするフローを以下で詳述する。
【００８６】
図７は、本実施形態に係るダウンロードファイルをアプリケーションモジュールメモリ１４２へダウンロードするフローを示す。Ｓ７００において、プロセッサ１００は、装置６の接続先の機器（たとえば、サーバ３、端末４または外部のサーバ等）の要求に応じて、通信部１０２を介して当該接続先の機器からファームウェアを含むダウンロードファイルを受信し、ダウンロードを開始する。
【００８７】
Ｓ７０２において、プロセッサ１００は、アプリケーションモジュールメモリ１４２に格納された識別情報３００と、ダウンロードファイルの識別情報６００とが一致するか否かを判定する。プロセッサ１００は、両識別情報が一致すると判定すれば、処理をＳ７０４に進め、一致しないと判定すれば、処理をＳ７１２に進める。
【００８８】
Ｓ７０４において、プロセッサ１００は、Ｓ７０２において両識別情報が一致すると判定したことに応じて、アプリケーションモジュールメモリ１４２内のファームウェア領域３１０の非アクティブ領域を消去する。たとえば、第１ファームウェア領域３０００がアクティブ領域である場合、第２ファームウェア領域３２００内のファームウェア等を消去してよい。
【００８９】
Ｓ７０６において、プロセッサ１００は、プロトコル情報ごとに、ダウンロードファイルのファームウェアをファームウェア領域３１０の消去した領域に書き込んで保存する。
【００９０】
Ｓ７０８において、プロセッサ１００は、ファームウェア領域３１０の非アクティブ領域をアクティブ化し、アクティブ領域を非アクティブ化する。プロセッサ１００は、アクティブ領域と非アクティブ領域の切り替えをファームウェアの書き込みに応じて行ってもよく、接続先の機器からの要求に応じて行ってもよい。
【００９１】
Ｓ７１０において、プロセッサ１００は、装置６を再起動させて、処理を終了させる。
【００９２】
Ｓ７１２において、プロセッサ１００は、Ｓ７０２において両識別情報が一致しないと判定したことに応じて、ダウンロードファイルをアプリケーションモジュールメモリ１４２にダウンロードすることができない旨のエラー信号を送信する。プロセッサ１００は、通信部１０２を介して接続先の機器にエラー信号を送信してよい。
【００９３】
なお、Ｓ７０４〜Ｓ７０６に代えて、プロセッサ１００は、Ｓ７０２において両識別情報が一致すると判定したことに応じて、アプリケーションモジュールメモリ１４２およびダウンロードファイルに格納されるファームウェアのプロトコル情報を比較し、両プロトコル情報３００２、６５０が一致すると判定すれば、対象のファームウェア領域３１０の非アクティブ領域にダウンロードファイルのファームウェアを書き込んでよい。プロセッサ１００は、Ｓ７０２において両プロトコル情報が一致しないと判定すれば、アプリケーションモジュールメモリ１４２に空き領域があるか否かを判定し、空き領域がある場合に当該空き領域にダウンロードファイルのファームウェアを書き込んでよい。プロセッサ１００は、空き領域がない場合は、接続先の機器に対してエラー信号を送信してよい。
【００９４】
また、プロセッサ１００は、ダウンロードファイルから特定のファームウェアのみをダウンロードしてもよい。たとえばプロセッサ１００は、アプリケーションモジュール１４内のファームウェアのうち動作中のファームウェアとは異なるファームウェアに障害が見つかった場合等において、ファームウェアを動作させたまま当該障害のあるファームウェアのみを更新することができる。
【００９５】
以上のように、装置６は、接続先の機器からファームウェアをダウンロードしてアプリケーションモジュールメモリ１４２へと格納することによって、ファームウェアを更新する。このためユーザは、バージョンアップしたファームウェアがリリースされる度にアプリケーションモジュール１４を交換しなくても、常に新しいバージョンのファームウェアを保有する装置６を使用することができる。また装置６によれば、１回のダウンロード作業で、アプリケーションモジュールメモリ１４２内の異なる通信プロトコルに対応する複数のファームウェアを一括して更新することができる。このため、ユーザがファームウェアごとにファームウェアをダウンロードする手間を省くことができ、バージョン管理が簡素化され保守性が大幅に改善される。また装置６は、現在動作中のファームウェアを用いて将来利用する通信プロトコルに対応するファームウェアを事前に準備することができるため、新しい通信環境へ迅速に移行することができる。開発者にとっては、複数のファームウェアを１つのダウンロードファイルに集約することができるため、管理工数を大幅に削減することができる。なお、装置６によれば、ファームウェア領域３１０の非アクティブ領域にダウンロードファイルのファームウェアを書き込み、アクティブ領域に直前のファームウェアを残すことができる。このため、装置６は、ダウンロード処理の途中で不具合が生じても、直前の状態に復元することが容易となる。
【００９６】
図８は、本実施形態に係る拡張装置８０を外部センサ７および外部アクチュエータ８とともに示す。本図における、図１と同じ符号を付した構成要素は、基本的には図１〜図７に示した説明と同様であるから、以下相違点を中心に説明する。図８に示す拡張装置８０は、図１に示す装置６と同様の構成および機能を有するが、ただし、通信モジュール１０が外部メモリ８３０を有する拡張通信モジュール８２である。
【００９７】
外部メモリ８３０は、１または複数の識別情報を含む複数のファームウェアを格納する。外部メモリ８３０は、拡張通信モジュール８２に接続されるＵＳＢメモリまたはＳＤカード等のリムーバブル記憶メディアを含んでよい。
【００９８】
プロセッサ１００は、バージョンアップされた複数のファームウェアを接続先の機器から受信する代わりに、当該ファームウェアを外部メモリ８３０から読み出す。プロセッサ１００は、読み出したファームウェアを接続部１２０、１８０を介してアプリケーションモジュールメモリ１４２に格納する。プロセッサ１００は、起動時に外部メモリ８３０内のファームウェアを読み出し、図７のＳ７０２〜Ｓ７１２と同様の処理を行うことで、ファームウェアをアプリケーションモジュールメモリ１４２に格納してよい。
【００９９】
以上の拡張装置８０によれば、プロセッサ１００は、ネットワーク２を介して接続先の機器からファームウェアをダウンロードせず、装置６内の外部メモリ８３０からファームウェアを入手することができるため、迅速にファームウェアを取得することができる。
【０１００】
図９は、本実施形態に係る外部メモリ８３０の構成を示す。外部メモリ８３０は、１または複数の外部メモリファイル９０〜９２を有する。各外部メモリファイル９０〜９２は、識別情報９００に対応して、複数のファームウェア９１０〜９４０と、各ファームウェア９１０〜９４０に対応するプロトコル情報９４０およびバージョン情報９５０とを含む。
【０１０１】
このように外部メモリ８３０は、複数の識別情報９００を含むファームウェアを有し得るため、アプリケーションモジュール１４は装着時に当該アプリケーションモジュール１４に適切なファームウェアを選択して格納することができる。したがってユーザは、１つの拡張通信モジュール８２に対して、複数種類のアプリケーションモジュール１４を組み合わせて使用することができる。たとえばユーザは、複数種類のアプリケーションモジュール１４に対して１つの拡張通信モジュール８２を順番に装着させて起動させるだけで、複数種類のアプリケーションモジュール１４のファームウェアを次から次へと更新することができる。したがって現場の保守作業が大幅に低減される。なおファームウェア更新後は、ユーザがアプリケーションモジュール１４から拡張通信モジュール８２を外して以前の通信モジュール１０を取り付けても、引き続き新しいファームウェアを利用することができる。
【０１０２】
システム１は、ゲートウェイ５を備えなくてもよい。また、アプリケーションモジュール１４は、内蔵センサ１６０、内蔵アクチュエータ１６１、外部センサ７および外部アクチュエータ８のうちの少なくとも１つを有し、全てを有さなくてもよい。したがって、機能ユニット１４４は内蔵センサ１６０、内蔵アクチュエータ１６１、並びに通信ポート１６２のうち少なくとも１つを有し、全てを有さなくてもよい。
【０１０３】
第２データメモリ１０８はさらに、第１データメモリ１０４に加えてまたは第１データメモリ１０４に代えて、プロセッサ１００が機能ユニット１４４および通信部１０２に関するデータを格納してもよい。この場合、図５における説明中の第１データメモリ１０４は、第２データメモリ１０８に置き換えられてよい。
【０１０４】
装着制御部１４０は、アプリケーションモジュール１４に代えて、通信モジュール１０または拡張通信モジュール８２に含まれてよい。このとき図５のＳ５０２に代えて、プロセッサ１００は、装着制御部１４０が接続部１２０内の物理的変化を検出したことに応じて、アプリケーションモジュール１４が通信モジュール１０に装着されているか否かを判定してよい。たとえば、装着制御部１４０は、プロセッサ１００の要求に応じて接続部１２０に対して電流を流し、接続部１２０内の抵抗値の変化を検出したことに応じて、プロセッサ１００に装着信号を提供してよい。プロセッサ１００は、装着信号を受信したと判定すれば、処理をＳ５０４に進め、受信しないと判定すれば、処理をＳ５０２に戻してよい。
【０１０５】
装置６または拡張装置８０は、１または複数のアプリケーションモジュール１４を備えてよい。装置６または拡張装置８０が複数のアプリケーションモジュール１４を備える場合は、１つの通信モジュール１０または１つの拡張通信モジュール８２と複数のアプリケーションモジュール１４とが結合されてよい。通信モジュール１０または拡張通信モジュール８２は、複数の接続部１２０を有してよい。このとき、通信モジュール１０または拡張通信モジュール８２のファームウェアメモリ１０６は、通信モジュール１０または拡張通信モジュール８２に接続される複数のアプリケーションモジュール１４の機能ユニット１４４に対応するファームウェアを格納する複数のファームウェア領域２２０および複数のバックアップ領域２４０を有してよい。プロセッサ１００は、通信モジュール１０または拡張通信モジュール８２に接続される複数のアプリケーションモジュール１４について、アプリケーションモジュールメモリ１４２から対応する複数のファームウェアを取得し、上記の各種処理を時分割または並列的に実行してよい。
【０１０６】
図１０は、本発明の複数の態様が全体的または部分的に具現化されてよいコンピュータ２２００の例を示す。コンピュータ２２００にインストールされたプログラムは、コンピュータ２２００に、本発明の実施形態に係る装置に関連付けられる操作または当該装置の１または複数のセクションとして機能させることができ、または当該操作または当該１または複数のセクションを実行させることができ、これに加えて、またはこれに代えて、コンピュータ２２００に、本発明の実施形態に係るプロセスまたは当該プロセスの段階を実行させることができる。そのようなプログラムは、コンピュータ２２００に、本明細書に記載のフローチャートおよびブロック図のブロックのうちのいくつかまたはすべてに関連付けられた特定の操作を実行させるべく、ＣＰＵ２２１２によって実行されてよい。
【０１０７】
本実施形態によるコンピュータ２２００は、ＣＰＵ２２１２、ＲＡＭ２２１４、グラフィックコントローラ２２１６、およびディスプレイデバイス２２１８を含み、それらはホストコントローラ２２１０によって相互に接続されている。コンピュータ２２００はまた、通信インターフェイス２２２２、ハードディスクドライブ２２２４、ＤＶＤ−ＲＯＭドライブ２２２６、およびＩＣカードドライブのような入出力ユニットを含み、それらは入出力コントローラ２２２０を介してホストコントローラ２２１０に接続されている。コンピュータはまた、ＲＯＭ２２３０およびキーボード２２４２のようなレガシの入出力ユニットを含み、それらは入出力チップ２２４０を介して入出力コントローラ２２２０に接続されている。
【０１０８】
ＣＰＵ２２１２は、ＲＯＭ２２３０およびＲＡＭ２２１４内に格納されたプログラムに従い動作し、それにより各ユニットを制御する。グラフィックコントローラ２２１６は、ＲＡＭ２２１４内に提供されるフレームバッファ等またはそれ自体の中にＣＰＵ２２１２によって生成されたイメージデータを取得し、イメージデータがディスプレイデバイス２２１８上に表示されるようにする。
【０１０９】
通信インターフェイス２２２２は、ネットワークを介して他の電子デバイスと通信する。ハードディスクドライブ２２２４は、コンピュータ２２００内のＣＰＵ２２１２によって使用されるプログラムおよびデータを格納する。ＤＶＤ−ＲＯＭドライブ２２２６は、プログラムまたはデータをＤＶＤ−ＲＯＭ２２０１から読み取り、ハードディスクドライブ２２２４にＲＡＭ２２１４を介してプログラムまたはデータを提供する。ＩＣカードドライブは、プログラムおよびデータをＩＣカードから読み取り、これに加えて、またはこれに代えてプログラムおよびデータをＩＣカードに書き込む。
【０１１０】
ＲＯＭ２２３０はその中に、アクティブ化時にコンピュータ２２００によって実行されるブートプログラム等、およびコンピュータ２２００のハードウェアに依存するプログラムの少なくとも１つを格納する。入出力チップ２２４０はまた、様々な入出力ユニットをパラレルポート、シリアルポート、キーボードポート、マウスポート等を介して、入出力コントローラ２２２０に接続してよい。
【０１１１】
プログラムが、ＤＶＤ−ＲＯＭ２２０１またはＩＣカードのようなコンピュータ可読媒体によって提供される。プログラムは、コンピュータ可読媒体から読み取られ、コンピュータ可読媒体の例でもあるハードディスクドライブ２２２４、ＲＡＭ２２１４、またはＲＯＭ２２３０にインストールされ、ＣＰＵ２２１２によって実行される。これらのプログラム内に記述される情報処理は、コンピュータ２２００に読み取られ、プログラムと、上記様々なタイプのハードウェアリソースとの間の連携をもたらす。装置または方法が、コンピュータ２２００の使用に従い情報の操作または処理を実現することによって構成されてよい。
【０１１２】
例えば、通信がコンピュータ２２００および外部デバイス間で実行される場合、ＣＰＵ２２１２は、ＲＡＭ２２１４にロードされた通信プログラムを実行し、通信プログラムに記述された処理に基づいて、通信インターフェイス２２２２に対し、通信処理を命令してよい。通信インターフェイス２２２２は、ＣＰＵ２２１２の制御下、ＲＡＭ２２１４、ハードディスクドライブ２２２４、ＤＶＤ−ＲＯＭ２２０１、またはＩＣカードのような記録媒体内に提供される送信バッファ処理領域に格納された送信データを読み取り、読み取られた送信データをネットワークに送信し、またはネットワークから受信された受信データを記録媒体上に提供される受信バッファ処理領域等に書き込む。
【０１１３】
また、ＣＰＵ２２１２は、ハードディスクドライブ２２２４、ＤＶＤ−ＲＯＭドライブ２２２６（ＤＶＤ−ＲＯＭ２２０１）、ＩＣカード等のような外部記録媒体に格納されたファイルまたはデータベースの全部または必要な部分がＲＡＭ２２１４に読み取られるようにし、ＲＡＭ２２１４上のデータに対し様々なタイプの処理を実行してよい。ＣＰＵ２２１２は次に、処理されたデータを外部記録媒体にライトバックする。
【０１１４】
様々なタイプのプログラム、データ、テーブル、およびデータベースのような様々なタイプの情報が記録媒体に格納され、情報処理を受けてよい。ＣＰＵ２２１２は、ＲＡＭ２２１４から読み取られたデータに対し、本開示の随所に記載され、プログラムの命令シーケンスによって指定される様々なタイプの操作、情報処理、条件判断、条件分岐、無条件分岐、情報の検索，置換等を含む、様々なタイプの処理を実行してよく、結果をＲＡＭ２２１４に対しライトバックする。また、ＣＰＵ２２１２は、記録媒体内のファイル、データベース等における情報を検索してよい。例えば、各々が第２の属性の属性値に関連付けられた第１の属性の属性値を有する複数のエントリが記録媒体内に格納される場合、ＣＰＵ２２１２は、第１の属性の属性値が指定される、条件に一致するエントリを当該複数のエントリの中から検索し、当該エントリ内に格納された第２の属性の属性値を読み取り、それにより予め定められた条件を満たす第１の属性に関連付けられた第２の属性の属性値を取得してよい。
【０１１５】
上で説明したプログラムまたはソフトウェアモジュールは、コンピュータ２２００上またはコンピュータ２２００近傍のコンピュータ可読媒体に格納されてよい。また、専用通信ネットワークまたはインターネットに接続されたサーバーシステム内に提供されるハードディスクまたはＲＡＭのような記録媒体が、コンピュータ可読媒体として使用可能であり、それによりプログラムを、ネットワークを介してコンピュータ２２００に提供する。
【０１１６】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【０１１７】
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【符号の説明】
【０１１８】
１  システム、２  ネットワーク、３  サーバ、４  端末、５  ゲートウェイ、６  装置、７  外部センサ、８  外部アクチュエータ、１０  通信モジュール、１４  アプリケーションモジュール、１００  プロセッサ、１０２  通信部、１０４  第１データメモリ、１０６  ファームウェアメモリ、１０８  第２データメモリ、１１０  電源部、１２０  接続部、１４０  装着制御部、１４２  アプリケーションモジュールメモリ、１４４  機能ユニット、１６０  内蔵センサ、１６１  内蔵アクチュエータ、１６２  通信ポート、１６４  アナログ制御部、１６６  測定部、１８０  接続部、２００  ブートローダー領域、２２０  ファームウェア領域、２２２  識別情報、２２４  プロトコル情報、２２６  バージョン情報、２４０  バックアップ領域、２４２  識別情報、２４４  プロトコル情報、２４６  バージョン情報、３００  識別情報、３１０  ファームウェア領域、３１１〜３１４  ファームウェア領域、３２０  データ領域、３２１〜３２４  データ領域、３０００  第１ファームウェア領域、３００２  プロトコル情報、３００４  バージョン情報、３２００  第２ファームウェア領域、６００  識別情報、６１０〜６４０  ファームウェア、６５０  プロトコル情報、６６０  バージョン情報、８０  拡張装置、８２  拡張通信モジュール、８３０  外部メモリ、９０〜９２  外部メモリファイル、９００  識別情報、９１０〜９４０  ファームウェア、９４０  プロトコル情報、９５０  バージョン情報、２２００  コンピュータ、２２０１  ＤＶＤ−ＲＯＭ、２２１０  ホストコントローラ、２２１２  ＣＰＵ、２２１４  ＲＡＭ、２２１６  グラフィックコントローラ、２２１８  ディスプレイデバイス、２２２０  入出力コントローラ、２２２２  通信インターフェイス、２２２４  ハードディスクドライブ、２２２６  ＤＶＤ−ＲＯＭドライブ、２２３０  ＲＯＭ、２２４０  入出力チップ、２２４２  キーボード
【図１】
2020187651.tif 000003
【図２】
2020187651.tif 000004
【図３】
2020187651.tif 000005
【図４】
2020187651.tif 000006
【図５】
2020187651.tif 000007
【図６】
2020187651.tif 000008
【図７】
2020187651.tif 000009
【図８】
2020187651.tif 000010
【図９】
2020187651.tif 000011
【図１０】
2020187651.tif 000012