(57)【要約】      （修正有）【課題】仕向け地によってライフサイクルに含まれるステージの種類やステージの内容が異なっていても、機器の制御モジュールを共通化する。【解決手段】１又は複数の制御モジュールが搭載される機器は、機器が時間の経過にともなって変化する複数の状態のうち、現在の状態に応じて、１又は複数の制御モジュールの状態を管理する状態管理部１６４と、複数の状態における状態遷移が要求された場合又は複数の状態のいずれかの状態における処理内容の変更が要求された場合の処理内容を規定する状態データ１５０Ｋを格納する記憶部と、新たに入力される状態データに基づいて、記憶部に格納された状態データ１５０Ｋを編集するアクセス制御部１６２とを備える。状態管理部１６４は、状態遷移が要求された場合、アクセス制御部１６２によって編集された状態データ１５０Ｋに従がって１又は複数の制御モジュールを管理する。【選択図】図５
2016001459.tif 000002
【特許請求の範囲】
【請求項１】
１または複数の制御モジュールが搭載される機器であって、
当該機器が時間の経過にともなって変化する複数の状態のうち、現在の状態に応じて、前記１または複数の制御モジュールを管理する状態管理部と、
前記複数の状態における状態遷移が要求された場合または前記複数の状態のいずれかの状態における処理内容の変更が要求された場合の処理内容を規定する状態データを格納する記憶部と、
新たに入力される状態データに基づいて、前記記憶部に格納された状態データを編集するメモリアクセス制御部と
を備え、
前記状態管理部は、前記状態遷移が要求された場合、前記メモリアクセス制御部によって編集された状態データにしたがって前記１または複数の制御モジュールを管理する、機器。
【請求項２】
前記メモリアクセス制御部は、前記新たに入力される状態データとともに入力される前記新たに入力される状態データへ遷移する条件を、前記新たに入力される状態データへ遷移する元となる状態データに書き込む、請求項１に記載の機器。
【請求項３】
利用者からのアクセス要求に応じて認証する認証部
を備え、
前記メモリアクセス制御部は、前記認証部によってアクセスが許可された利用者の権限に応じて、前記記憶部に格納された状態データを編集する、請求項１または２に記載の機器。
【請求項４】
前記機器が時間の経過にともなって変化する複数の状態のうち、現在の状態に応じて、前記１または複数の制御モジュールに格納されるデータへのアクセスを制御するデータアクセス制御部
を備える、請求項３に記載の機器。
【請求項５】
前記メモリアクセス制御部は、前記認証部によってアクセスが許可されてから、所定の時間が経過した後に、前記記憶部に格納された状態データの編集をできないようにする、請求項３又は４に記載の機器。
【請求項６】
前記記憶部は、
書き換え不可能なデータを格納する第１の記憶部と、
書き換え可能なデータを格納する第２の記憶部と
を備え、
前記メモリアクセス制御部は、前記新たに入力される状態データに基づいて前記記憶部に格納された状態データを編集する際に、前記第１の記憶部または前記第２の記憶部の領域を指定する、請求項１ないし５のいずれか１項に記載の機器。
【請求項７】
１または複数の制御モジュールが搭載される機器の制御方法であって、
当該機器が時間の経過にともなって変化する複数の状態のうち、現在の状態に応じて、前記１または複数の制御モジュールを管理し、
前記複数の状態における状態遷移が要求された場合または前記複数の状態のいずれかの状態における処理内容の変更が要求された場合の処理内容を規定する状態データを格納する記憶部に格納された状態データを、新たに入力される状態データに基づいて編集し、
前記状態遷移が要求された場合、編集された状態データにしたがって前記１または複数の制御モジュールを管理する、機器の制御方法。
【請求項８】
１または複数の制御モジュールが搭載される機器に、
当該機器が時間の経過にともなって変化する複数の状態のうち、現在の状態に応じて、前記１または複数の制御モジュールを管理させ、
前記複数の状態における状態遷移が要求された場合または前記複数の状態のいずれかの状態における処理内容の変更が要求された場合の処理内容を規定する状態データを格納する記憶部に格納された状態データを、新たに入力される状態データに基づいて編集させ、
前記状態遷移が要求された場合、編集された状態データにしたがって前記１または複数の制御モジュールを管理させる、機器制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機器、および機器の制御方法に関する。
【背景技術】
【０００２】
組み込み機器の技術分野においては、その組み込み機器を構成するモジュール内に重要な電子情報を格納するようになり、その電子情報を守るために高度なセキュリティが必要とされつつある。ここで組み込み機器とは、特定の機能を実現するために家電製品や機械などの機器にモジュールを組み込んだものである。
【０００３】
また、組み込み機器では、製造、物流、廃棄などのステージ（段階）を複数含むライフサイクルを通して安全性を保つこと、つまり一貫して機器が安全であることが求められている。例えば、ライフサイクルに応じて主たる利用者が変更される場合に安全性を確保する必要性が高い。
【０００４】
電子情報資産を持つ機器に対して、ライフサイクル状態に基づいて機器操作機能や、アクセス制御機能を提供するライフサイクル管理システムが知られている（例えば、特許文献１参照）。例えば、ライフサイクル状態に基づいて電子情報へのアクセスが可能な人物を制御することで、ライフサイクル状態の変化と同時に、電子情報にアクセスできる人物を変化させるとともに、セキュリティホールになりうる電子情報の消去を可能とする。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、仕向けによっては、ライフサイクルに含まれるステージの種類が異なることが想定される。例えば、ライフサイクルに廃棄が含まれる仕向けと、廃棄の代わりにリサイクルが含まれる仕向けとが想定される。また、ステージの内容が異なることが想定される。例えば、物流において、車両を用いる場合、船便による場合などにおいてその内容が異なることが想定される。
【０００６】
従来技術では、組み込み機器を構成するモジュール(以下、「制御モジュール」という)において、ライフサイクルに含まれるステージの種類やステージの内容を変更できなかった。このため、ライフサイクルに含まれるステージの種類やステージの内容が異なる仕向け毎に制御モジュールを設計、製造する必要があり、設計する手間や、製造するコストがかかっていた。
【０００７】
そこで、本発明は、仕向けによってライフサイクルに含まれるステージの種類やステージの内容が異なっていても、機器の制御モジュールを共通化することを目的とする。
【課題を解決するための手段】
【０００８】
開示の一実施例の機器は、
１または複数の制御モジュールが搭載される機器であって、
当該機器が時間の経過にともなって変化する複数の状態のうち、現在の状態に応じて、前記１または複数の制御モジュールの状態を管理する状態管理部と、
前記複数の状態における状態遷移が要求された場合または前記複数の状態のいずれかの状態における処理内容の変更が要求された場合の処理内容を規定する状態データを格納する記憶部と、
新たに入力される状態データに基づいて、前記記憶部に格納された状態データを編集するメモリアクセス制御部と
を備え、
前記状態管理部は、前記状態遷移が要求された場合、前記メモリアクセス制御部によって編集された状態データにしたがって前記１または複数の制御モジュールの状態を管理する。
【発明の効果】
【０００９】
開示の実施例によれば、仕向けによってライフサイクルに含まれるステージの種類やステージの内容が異なっていても、機器の制御モジュールを共通化することができる。
【図面の簡単な説明】
【００１０】
【図１】ライフサイクルの一例を示す図である。
【図２】組み込み機器の一実施例を示す図である。
【図３】ライフサイクル状態管理モジュールの一実施例を示す図である。
【図４】制御モジュールの一実施例を示す図である。
【図５】ライフサイクル状態管理モジュールの一実施例を示す機能ブロック図である。
【図６】状態データの一実施例を示す図である。
【図７】状態データの追加処理を示す図である。
【図８】状態データの書き換え処理を示す図（その１）である。
【図９】状態データの書き換え処理を示す図（その２）である。
【図１０】ライフサイクル状態管理モジュールの動作を示す図である。
【図１１】ライフサイクル状態管理モジュールの動作を示す図である。
【図１２】ライフサイクル状態管理モジュールの一実施例を示す図である。
【図１３】ライフサイクル状態管理モジュールの動作を示すフローチャートである。
【図１４】ライフサイクル状態管理モジュールへ入力されるデータの一例を示す図である。
【図１５】ライフサイクル状態管理モジュールへ格納されるデータの一例を示す図である。
【図１６】ライフサイクル状態管理モジュールの動作の一実施例を示す図である。
【図１７】ライフサイクル状態管理モジュールの動作の一実施例を示すフローチャートである。
【図１８】ライフサイクル状態管理モジュールの動作の一変形例を示すフローチャートである。
【図１９】ライフサイクル状態管理モジュールの一変形例を示す図である。
【図２０】ライフサイクル状態管理モジュールの動作の一変形例を示すフローチャートである。
【図２１】ライフサイクル状態管理モジュールの適用例を示す図である。
【発明を実施するための形態】
【００１１】
次に、本発明を実施するための形態を、以下の実施例に基づき図面を参照しつつ説明する。以下で説明する実施例は一例に過ぎず、本発明が適用される実施の形態は、以下の実施例に限られない。
なお、実施例を説明するための全図において、同一機能を有するものは同一符号を用い、繰り返しの説明は省略する。
【００１２】
＜実施例＞
＜ライフサイクル＞
図１は、組み込み機器のライフサイクルの一例を示す。組み込み機器のライフサイクルには、一例として、ユーザが単にその組み込み機器を利用する過程だけでなく、工場で組み込み機器を製造する生産ステージ１、販売するためにトラックなどの輸送手段で運搬する物流ステージ２、販売店で組み込み機器を販売する販売ステージ３、ユーザが利用している最中に組み込み機器が故障した場合などに修理を行うなどのサービスを提供するサービスステージ４、環境保護の観点から組み込み機器を回収し、リサイクルする回収リサイクルステージ５などの複数の段階（ステージ）がある。組み込み機器によっては、回収リサイクル過程とともに、またはその代わりに組み込み機器を廃棄する廃棄ステージがあるものもある。
【００１３】
図１に示されるライフサイクルは、国や地域などの仕向けによって異なることがあるが、本実施例では、一例としてこれらの各ステージを通じて組み込み機器を運用することを総称してライフサイクルという。つまり、ライフサイクルとは、組み込み機器が時間の経過にともなって変化する複数のステージ（段階や状態を意味する）を組み合わせたものをいう。例えば、環境保護の観点から確実に回収を行いリサイクルすることや、廃棄後に悪用されないために、正規のルートで（正規のステージを通じて）ライフサイクルが運用されるように制御するとともに、運用されていることを証明する。
【００１４】
＜組み込み機器＞
ライフサイクル状態管理機能を搭載した機器の一例として、ライフサイクル状態管理機能を備えた車両などの組み込み機器（以下、「機器」という）について説明する。つまり、機器の一例は、組み込み機器である。
【００１５】
図２は、ライフサイクル状態管理機能を備えた車両の制御モジュール構成の一実施例を示す。本実施例に係る車両は、車両全体のライフサイクルの各ステージ（状態）を管理するライフサイクル状態管理モジュール１００、およびライフサイクルの各ステージに応じてアクセス制御ポリシーが定義されたデータを格納する１または複数の制御モジュールによって構成される。ライフサイクル状態管理モジュール１００、および１または複数の制御モジュールのいくつかは、バス５０によって接続されることによってＣＡＮ(Controller Area Network)、ＬＩＮ(Local Interconnect Network)、イーサネット(Ethernet)（登録商標）、ＬＡＮ(Local Area Network)などのネットワークを構成する。これらのネットワークに限らず、ライフサイクル状態管理モジュール１００、および１または複数の制御モジュールをＦｌｅｘＲａｙによって接続することもできる。図１に示される例では、ライフサイクル状態管理モジュール１００、および複数の制御モジュールのいくつかは、バス５０によって接続される。図１には、複数の制御モジュールの例として、駆動制御モジュール２００、エンジン制御モジュール３００、ナビゲーションモジュール４００、および車載カメラモジュール５００が示される。
【００１６】
ライフサイクル状態管理モジュール１００は、機器全体に対して、唯一つのライフサイクルの各ステージを管理するとともに、機器利用者の認証情報を管理する。ライフサイクル状態管理モジュール１００は、機器の１または複数の制御モジュールの構成を把握し、その１または複数の制御モジュールに制御指示を与える。ライフサイクルの各ステージに応じて、機器の１または複数の制御モジュールのライフサイクルの各ステージに応じて設定されるアクセス制御ポリシー（以下、「状態アクセス制御ポリシー」という）がライフサイクル状態管理モジュール１００に格納される。ライフサイクル状態管理モジュール１００は、ライフサイクルの各ステージにおいて、制御の対象となる制御モジュールの状態アクセス制御ポリシーをベースに制御指示を行ったり、各制御の対象となる制御モジュールからの要求を受け付ける。ライフサイクル状態管理モジュール１００は、各制御モジュールからの要求に従い、バス５０を介して機器のライフサイクル状態と、機器を利用するためにアクセスした者（以下、「アクセス者」という）の持つロールを通知する。ここで、ロールはアクセス者の役割を示し、アクセス者がアクセスする権限があるか否かを判断する際に利用される。ロールは人に対して設定することができるし、会社における部署、工場などの人以外のものにも設定できる。
【００１７】
例えば、ライフサイクルの販売ステージ３において営業がアクセス可能な制御モジュールへの制御指示およびデータと、ライフサイクルのサービスステージ４において修理が必要な場合に整備士がアクセス可能な制御モジュールへの制御指示およびデータとはその内容が異なることが想定される。ライフサイクル状態管理モジュール１００は、車両のアクセス者（営業、整備士）の認証情報を管理し、車両のアクセス者と状態アクセス制御ポリシーと関連づける。これにより、営業が修理の際に必要な情報にアクセスしてしまうことによって、整備士が修理の際にアクセスする制御モジュールの情報を壊してしまうことなどを防止できる。
【００１８】
駆動制御モジュール２００は、車両の駆動制御を行う。エンジン制御モジュール３００は、車両のエンジンを制御する。ナビゲーションモジュール４００は、車両を目的地まで導くナビゲーションを行う。車載カメラモジュール５００は、車両に搭載されたカメラを制御する。
【００１９】
駆動制御モジュール２００、エンジン制御モジュール３００、ナビゲーションモジュール４００、および車載カメラモジュール５００には、状態アクセス制御ポリシーが定義されたデータが格納される。状態アクセス制御ポリシーには、ライフサイクルの各ステージに応じてアクセス可能なロールが記載されている。つまり、ライフサイクルにおけるステージが変更されることによって、アクセス可能なロールが変更されうる。
【００２０】
駆動制御モジュール２００、エンジン制御モジュール３００、ナビゲーションモジュール４００、および車載カメラモジュール５００は、必要に応じて、ライフサイクル状態管理モジュール１００から、その時点でのライフサイクルにおけるステージ、およびアクセス者の持つロールを受け取り、データへのアクセス可否の判定を行う。ライフサイクルにおけるステージに基づいて車両に搭載された全制御モジュールの各々に対して一斉にアクセス可能なロールが変更されることによって、個別に変更することによる変更忘れ、変更誤りなどを防止できる。
【００２１】
また、ライフサイクル状態管理モジュール１００にアクセス制御ポリシーが定義されたデータが格納される場合、ライフサイクル状態管理モジュール１００のライフサイクルにおけるステージ、およびアクセス者の持つロールを受けてデータへのアクセス可否の判定を行う場合もある。
【００２２】
ライフサイクル状態管理モジュール１００と各制御モジュールとの間の接続は、ライフサイクル状態管理モジュール１００、駆動制御モジュール２００、ナビゲーションモジュール４００、および車載カメラモジュール５００のようにバス５０を介して直接データをやり取りできるように接続される。また、駆動制御モジュール２００、およびエンジン制御モジュール３００のように、ライフサイクル状態管理モジュール１００が特定の制御モジュールを介して、間接的にデータをやりとりできるように接続することもできる。また、バス５０を介して接続することに加え、ネットワークケーブルなどの有線によって接続することもできるし、無線ネットワークによって接続することもできる。いずれにしても、特定のプロトコルに従って、各制御モジュール間で通信ができるように設定される。
【００２３】
上述したように、駆動制御モジュール２００、エンジン制御モジュール３００、ナビゲーションモジュール４００、および車載カメラモジュール５００は、状態アクセス制御ポリシーを持ち、データに対するアクセス権の確認を各制御モジュールが個別に行うことができる。アクセス権の確認を各制御モジュールが個別に行う方法以外に、ライフサイクル状態管理モジュール１００に各制御モジュールの持つデータの識別子、およびそのデータに対する状態アクセス制御ポリシーを紐付けることによって対応付けたものを備えることもできる。この場合、ライフサイクル状態管理モジュール１００は、各制御モジュールの持つデータに対して紐付けられた状態アクセス制御ポリシーに基づいてアクセス権の有無を判定し、各制御モジュールに判定結果を通知する。各制御モジュールはライフサイクル状態管理モジュール１００から送信される判定結果を取得し、判定結果にしたがってデータへのアクセスを許可するなどの動作を行う。
【００２４】
ライフサイクル状態管理機能を搭載する対象である機器は、共通のライフサイクルにより制御される制御モジュール群全てを指す。つまり、車両を同一のライフサイクルで管理する場合は車両がライフサイクルを持つ機器になるし、ある商材に積まれたボード上の制御モジュールを同一のライフサイクルで管理する場合は、そのボードがライフサイクルを持つ機器になる。特に、機器に搭載される制御モジュールの各々に格納されるデータの寿命と、機器の寿命とが一致する場合に有効である。
【００２５】
＜ライフサイクル状態管理モジュール１００のハードウェア構成＞
図３は、本実施形態に係るライフサイクル状態管理モジュール１００のハードウェア構成図である。図３に示されているように、本実施形態のライフサイクル状態管理モジュール１００は、ライフサイクル状態管理モジュール１００全体の動作を制御するＣＰＵ(Central Processing Unit)１０２、ＩＰＬ(Initial Program Loader)等のＣＰＵ１０２の駆動に用いられるプログラムを記憶したＲＯＭ(Read Only Memory)１０４、およびＣＰＵ１０１のワークエリアとして使用されるＲＡＭ(Random Access Memory)１０６を備える。記憶部の例はＲＯＭ１０４、およびＲＡＭ１０６であり、さらに第１の記憶部の一例はＲＯＭ１０４であり、第２の記憶部の一例はＲＡＭ１０６である。
【００２６】
さらに、ライフサイクル状態管理モジュール１００は、バス５０との間のＩ/Ｆ(Interface)であり、ライフサイクル状態管理モジュール１００から各制御モジュールへ出力する操作信号などの制御信号や、制御の対象となる制御モジュールからのアクセスを受け付けるバスＩ/Ｆ１０８を備える。
【００２７】
さらに、ライフサイクル状態管理モジュール１００は、機器全体（車両に搭載される制御の対象となる制御モジュール）を制御する際に、アクセス者が許可されたユーザか否かを判断する認証部１１０、および認証部１１０によってアクセス者が許可されたユーザであると判断した場合に、アクセス者のロールに合わせてＲＯＭ１０４、およびＲＡＭ１０６にアクセス可能なエリアを設定するメモリアクセスコントローラ１１２を備える。メモリアクセス制御部の一例は、メモリアクセスコントローラ１１２である。
【００２８】
さらに、ライフサイクル状態管理モジュール１００は、仕向け毎にＲＯＭ１０４、およびＲＡＭ１０６へのデータ、およびプログラムの追加、修正、削除などの編集を行うためのデータ転送を行う入出力部１１４、および上記各構成要素を図３に示されているように電気的に接続するためのアドレスバスやデータバスなどのバスライン１５０を備える。
【００２９】
ＣＰＵ１０２、ＲＯＭ１０４、ＲＡＭ１０６、メモリアクセスコントローラ１１２、および認証部１１０をマイコンとして構成することもできる。また、認証部１１０は認証装置などのハードウェアによって構成することも、ソフトウェアとして構成することもできる。
【００３０】
ＣＰＵ１０２は、ＲＯＭ１０４、およびＲＡＭ１０６のいずれかまたは両方に展開されている、ユーザデータ、状態データ、制御対象データ、ライフサイクル状態管理モジュール用のプログラムなどを読み込み、実行することで、プログラムされた機能を提供する。ユーザデータ、状態データ、制御対象データ、およびライフサイクル状態管理モジュール用のプログラムについては後述する。
【００３１】
認証部１１０は、入出力部１１４から入力されるアクセス者の認証情報に基づいてアクセス者を認証する。認証部１１０は、入出力部１１４から入力される認証情報のアクセスＩＤ、およびパスワードと、ユーザデータに基づいて、認証情報を入力したアクセス者を認証する。
【００３２】
認証部１１０は、上述したパスワード認証以外にも、チャレンジレスポンス認証、ワンタイムパスワード、指紋、声紋、虹彩などの人間の生体情報を用いたバイオメトリクス認証、ＰＫＩ(Public Key Infrastructure)などの認証技術によって、アクセス者にアクセス権があるか否かを確認することもできる。ＰＫＩによってアクセス者にアクセス権があるか否かを確認する際には、アクセス者は、認証局に対して公開鍵を提出して証明書の発行を依頼する。認証局は、提出された申請書類などに基づき公開鍵の所有者であるアクセス者を審査し、デジタル証明書を発行する。デジタル証明書には公開鍵の所有者情報などとともに、認証局のデジタル署名が付加されている。アクセス者は、ライフサイクル状態管理モジュール１００に対し、デジタル証明書を送付する。ライフサイクル状態管理モジュール１００の認証部１１０はデジタル証明書を認証局の公開鍵で復号し、デジタル証明書中のアクセス者の情報と認証局の署名を確認すると同時にアクセス者の公開鍵を入手することができる。アクセス者の情報と認証局の署名を確認することによって、アクセス者にアクセス権があるか否かを確認できる。
【００３３】
認証部１１０によってアクセス者がアクセス許可されていると認証できた場合、メモリアクセスコントローラ１１２は、認証部１１０からの指示とアクセス者のロールに基づいて、ＲＯＭ１０４、およびＲＡＭ１０６にアクセス可能なエリアを設定することによって、アクセス者にそのロールに合わせてプログラムを格納することを許可する。例えば、アクセス者は、仕向け毎に異なるプログラムを格納することができ、これによってアクセス可能な制御対象モジュールを限定することができる。さらに、アクセス者は、アクセス可能な制御対象モジュールにおいても、ＲＯＭ１０４、およびＲＡＭ１０６のいずれかまたは両方に展開されている状態アクセス制御ポリシーに基づいて、その制御の対象となる制御モジュールにおいてアクセスできる情報を制限できる。
【００３４】
認証部１１０によってアクセス者がアクセス許可されていないと判断した場合、認証部１１０からの指示に基づいて、ＣＰＵ１０２は、機器全体（車両全体）を利用できない状態に設定する。
【００３５】
入出力部１１４は、ユーザ認証のための認証情報を入力するとともに、仕向け毎にＲＯＭ１０４、およびＲＡＭ１０６のいずれかまたは両方へ配置するデータを入力する。これによって、ＲＯＭ１０４、およびＲＡＭ１０６のいずれかまたは両方にプログラムを追加するなどの編集を行うことができる。また、入出力部１１４は、ＲＯＭ１０４、およびＲＡＭ１０６のいずれかまたは両方に格納されたプログラムを修正したり、削除するなどの編集を行ったりすることができる。
【００３６】
入出力部１１４は、ＩＣカードリーダ、車両の鍵穴にキーを差し込むことで、車両のキーに格納されたアクセス者を証明する認証情報を読み取る装置などの認証部１１０に認証情報を入力できる装置によって構成される。入出力部１１４へ認証情報を入力する手段は有線、無線のどちらでも適用できる。例えば、スマートフォン、携帯電話などの携帯端末によって無線で認証情報を入力できる。
【００３７】
また、入出力部１１４をＲＳ２３２Ｃなどの規格に準拠したＩ／Ｆによって構成し、そのＩ／Ｆからデータを入力するようにしてもよい。また、入出力部１１４をネットワーク装置によって構成し、スマートフォンなどの携帯端末からネットワーク装置へデータを無線送信するようにしてもよい。
【００３８】
なお、上記ライフサイクル状態管理モジュール用のプログラムは、インストール可能な形式または実行可能な形式のファイルで、記録メディアやＣＤ−ＲＯＭ等のコンピュータで読み取り可能な記録媒体に記録して流通させるようにしてもよい。
【００３９】
＜駆動制御モジュール２００のハードウェア構成＞
図４は、本実施形態に係る駆動制御モジュール２００のハードウェア構成図である。図４に示されているように、本実施形態の駆動制御モジュール２００は、駆動制御モジュール２００全体の動作を制御するＣＰＵ２０２、およびＩＰＬ等のＣＰＵ２０２の駆動に用いられるプログラムを記憶したＲＯＭ２０４を備える。さらに、駆動制御モジュール２００は、ＣＰＵ２０２のワークエリアとして使用されるＲＡＭ２０６、およびバス５０との間のＩ/Ｆであり、駆動制御モジュール２００から各制御モジュールへ出力する操作信号（制御信号）や、制御の対象となる制御モジュールからのアクセスを受け付けるバスＩ/Ｆ２０８を備える。さらに、駆動制御モジュール２００は、上記各構成要素を図４に示されているように電気的に接続するためのアドレスバスやデータバスなどのバスライン２５０を備える。駆動制御モジュール２００に、他のハードウェアブロックを含めて構成するようにしてもよい。
【００４０】
ＣＰＵ２０２は、ＲＯＭ２０４に格納されているデータをＲＡＭ２０６に展開するとともに、そのデータを読み込み、実行することで、ＲＯＭ２０４内に格納される駆動制御モジュール用にプログラムされた機能を提供する。このプログラムは、ＣＰＵ２０２にライフサイクル状態に基づいてアクセス制御を行わせる。
【００４１】
バスＩ／Ｆ２０８は、駆動制御モジュール２００の外部へ、ライフサイクルにおけるステージを通知することを要求するライフサイクル状態通知要求を出力する出力手段として使われるとともに、ライフサイクル状態通知要求に応じてライフサイクル状態管理モジュール１００から送信されるライフサイクルにおけるステージ、およびアクセス者の持つロールの通知を入力する入力手段として使われる。
【００４２】
また、駆動制御モジュール２００にアクセス者の認証情報の入力を受け付けるＩ／Ｆを備えるように構成し、バスＩ／Ｆ２０８は、その認証情報をライフサイクル状態管理モジュール１００に通知する出力手段としても用いるようにしてもよい。
【００４３】
なお、バスＩ／Ｆ２０８以外にも、ネットワークＩ／Ｆを接続するようにしてもよい。また、駆動制御モジュール２００にバスＩ／Ｆ２０８を単独で接続するようにしてもよいし、バスＩＦ２０８に加え、ネットワークＩ／Ｆを接続することによって、複数接続するようにしてもよい。
【００４４】
なお、上記駆動制御モジュール用のプログラムは、インストール可能な形式または実行可能な形式のファイルで、記録メディアやＣＤ−ＲＯＭ等のコンピュータで読み取り可能な記録媒体に記録して流通させるようにしてもよい。
【００４５】
＜エンジン制御モジュール３００のハードウェア構成＞
エンジン制御モジュール３００は、上述した駆動制御モジュール２００と同様のハードウェア構成を適用できる。但し、ＲＯＭ２０４には、エンジン制御モジュール３００を制御するためのエンジン制御モジュール用プログラムが記録されている。この場合も、エンジン制御モジュール用プログラムは、インストール可能な形式または実行可能な形式のファイルで、記録メディアやＣＤ−ＲＯＭ等のコンピュータで読み取り可能な記録媒体に記録して流通させるようにしてもよい。
【００４６】
＜ナビゲーションモジュール４００のハードウェア構成＞
ナビゲーションモジュール４００は、上述した駆動制御モジュール２００と同様のハードウェア構成を適用できる。但し、ＲＯＭ２０４には、ナビゲーションモジュール４００を制御するためのナビゲーションモジュール用プログラムが記録されている。この場合も、ナビゲーションモジュール用プログラムは、インストール可能な形式または実行可能な形式のファイルで、記録メディアやＣＤ−ＲＯＭ等のコンピュータで読み取り可能な記録媒体に記録して流通させるようにしてもよい。
【００４７】
＜車載カメラモジュール５００のハードウェア構成＞
車載カメラモジュール５００は、上述した駆動制御モジュール２００と同様のハードウェア構成を適用できる。但し、ＲＯＭ２０４には、車載カメラモジュール５００を制御するための車載カメラモジュール用プログラムが記録されている。この場合も、車載カメラモジュール用プログラムは、インストール可能な形式または実行可能な形式のファイルで、記録メディアやＣＤ−ＲＯＭ等のコンピュータで読み取り可能な記録媒体に記録して流通させるようにしてもよい。
【００４８】
なお、着脱可能な記録媒体の他の例として、ＣＤ−Ｒ(Compact Disc Recordable)、ＤＶＤ(Digital Versatile Disk)、ブルーレイディスク等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよい。
【００４９】
＜実施形態の機能構成＞
次に、本実施形態の機能構成について説明する。図５は、本実施形態の機器を構成するライフサイクル状態管理モジュール１００の機能ブロック図である。図５には、ライフサイクル状態管理モジュール１００の機能ブロック図とともに、ＲＯＭ１０４、およびＲＡＭ１０６のいずれかまたは両方に格納されるデータについても記載される。
【００５０】
＜ライフサイクル状態管理モジュール１００の機能構成＞
ライフサイクル状態管理モジュール１００は、利用者認証部１６０、アクセス制御部１６２、および状態管理部１６４を有している。データアクセス制御部の一例は、アクセス制御部１６２である。これら各部は、図３に示されている各構成要素のいずれかが、ＲＯＭ１０４からＲＡＭ１０６上に展開されたライフサイクル状態管理モジュール用プログラムである、利用者認証プログラム、アクセス制御プログラム、および状態管理プログラムに従ったＣＰＵ１０２からの命令によって動作することで実現される機能、または機能される手段である。
【００５１】
つまり、利用者認証部１６０は、ＲＯＭ１０４からＲＡＭ１０６上に展開された利用者認証プログラムに従ったＣＰＵ１０２からの命令によって動作することで実現される機能、または機能される手段である。また、アクセス制御部１６２は、ＲＯＭ１０４からＲＡＭ１０６上に展開されたアクセス制御プログラムに従ったＣＰＵ１０２からの命令によって動作することで実現される機能、または機能される手段である。また、状態管理部１６４は、ＲＯＭ１０４からＲＡＭ１０６上に展開された状態管理プログラムに従ったＣＰＵ１０２からの命令によって動作することで実現される機能、または機能される手段である。なお、プログラムの依存関係は一例であり、異なる依存関係を有するプログラムでも同様にライフサイクル状態管理機能を実現できる。
【００５２】
（ライフサイクル状態管理モジュール１００の各機能構成）
次に、図３および図５を用いて、ライフサイクル状態管理モジュール１００の各機能構成について詳細に説明する。なお、以下では、ライフサイクル状態管理モジュール１００の各機能構成部を説明するにあたって、図３に示されている各構成要素のうち、ライフサイクル状態管理モジュール１００の各機能構成部を実現させるための主な構成要素との関係も説明する。
【００５３】
図５に示されているライフサイクル状態管理モジュール１００の利用者認証部１６０は、図３に示されているＣＰＵ１０２からの命令、図３に示されている入出力部１１４、およびＲＯＭ１０４に格納されるユーザデータ１００１−１００Ｎ（Ｎは、Ｎ＞０の整数）によって実現される。ユーザデータ１００１−１００Ｎは、予め登録することができ、Ｎはユーザ数を表す。さらに、ＲＯＭ１０４には、ユーザデータ１００１−１００Ｎの各々について、認証データ１１０１−１１０Ｎ、およびロール１２０１−１２０Ｎがそれぞれ格納される。
【００５４】
利用者認証部１６０は、入出力部１１４からアクセス者の認証情報が入力されることによって動作し、その認証情報と、ユーザデータ１００１−１００Ｎのいずれかの認証データに基づいて、アクセス者にアクセス権があることを確認する。利用者認証部１６０は、アクセス者の認証結果と、アクセス者にアクセス権があることを確認できた場合にはそのアクセス者のロールを出力する。具体的には、利用者認証部１６０は、入出力部１１４から入力されるアクセス者の認証情報に含まれるアクセスＩＤを、ユーザデータ１００１−１００Ｎの認証データ１１０１−１１０Ｎから検索し、認証できるユーザがいるか否かを判断する。認証できるユーザがいる場合には、認証部１１０は、認証情報に含まれるパスワードが、検索の結果特定されたユーザデータの認証データと一致するか否かを判断することによって、アクセス者にアクセス権があるか否かを確認することによって認証する。認証部１１０は、アクセス者にアクセス権があることを確認できた場合には、アクセス制御部１６２に、アクセス者にアクセス権があることを表す情報と、アクセス者のロールを出力する。
【００５５】
図５に示されているライフサイクル状態管理モジュール１００のアクセス制御部１６２は、図３に示されるＣＰＵ１０２からの命令、メモリアクセスコントローラ１１２、およびＲＯＭ１０４に格納される制御対象データ１３０１−１３０Ｍ（Ｍは、Ｍ＞０の整数）よって実現される。さらに、ＲＯＭ１０４には、制御対象データ１３０１−１３０Ｍの各々について、状態アクセス制御ポリシー１４０１−１４０Ｍがそれぞれ格納される。ここで、制御対象データ１３０１−１３０Ｍは、車両に搭載される、駆動制御モジュール２００、エンジン制御モジュール３００、ナビゲーションモジュール４００、車載カメラモジュール５００などの各制御モジュールと紐付けることによって対応付けるようにしてもよい。つまり、車両に搭載される制御モジュールの各々が制御データを有する。
【００５６】
アクセス制御部１６２は、特定のライフサイクル状態において、アクセス者が制御対象データ１３０１−１３０Ｍにアクセス可能であるか否かを判定する。制御対象データ１３０１−１３０Ｍには、それぞれ状態アクセス制御ポリシー１４０１−１４０Ｍが含まれ、状態アクセス制御ポリシー１４０１−１４０Ｍには、特定のライフサイクル状態においてアクセス可能なユーザ情報、およびアクセス可能なロール情報が格納される。アクセス制御部１６２は、状態アクセス制御ポリシー１４０１−１４０Ｍを参照することによって、アクセス者が制御対象データにアクセス権があるか否かを判断する。
【００５７】
具体的には、アクセス制御部１６２は、状態管理部１６４を呼び出すことによってライフサイクル状態情報を取得し、利用者認証部１６０を呼び出すことによって該当するアクセス者のロールを取得する。アクセス制御部１６２は、制御対象データ１３０１−１３０Ｍの状態アクセス制御ポリシー１４０１−１４０Ｍを参照することで、各制御対象データについて、状態管理部１６４から取得したライフサイクルのステージにおけるアクセス可能なロールを特定し、その特定したロールにアクセス者のロールが含まれるか否かを判定することによってアクセス者がアクセス可能であるか否かを判定する。
【００５８】
図５に示されているライフサイクル状態管理モジュール１００の状態管理部１６４は、図３に示されるＣＰＵ１０２からの命令、およびＲＯＭ１０４に格納される状態データ１５０１−１５０Ｋ（Ｋは、Ｋ＞０の整数）よって実現される。ここで、状態データ１５０１−１５０Ｋは、車両に搭載される、駆動制御モジュール２００、エンジン制御モジュール３００、ナビゲーションモジュール４００、車載カメラモジュール５００などの各制御モジュールと紐付けられることによって対応付けるようにしてもよい。また、状態データ１５０１−１５０Ｋは、制御対象データ１３０１−１３０Ｋと紐付けられることによって対応付けるようにしてもよい。状態データ１５０１−１５０Ｋには、状態遷移の要求があった場合の処理内容を規定する。さらに、ＲＯＭ１０４には、状態データ１５０１−１５０Ｋの各々について、遷移条件１６０１−１６０Ｋ、エントリ（Ｅｎｔｒｙ）動作１７０１−１７０Ｋ、およびエグジット（Ｅｘｉｔ）動作１８０１−１８０Ｋがそれぞれ格納される。
【００５９】
遷移条件１６０１−１６０Ｋには、特定のデータが存在していることや、あるデータが特定の形式を満たす場合に遷移することなどの条件が定義される。Ｅｎｔｒｙ動作１７０１−１７０Ｋには、セキュリティ情報の初期設定などの状態遷移の後のライフサイクルを安全に使うための処理が定義される。例えば、Ｅｎｔｒｙ動作１７０１−１７０Ｋには、通信に使用する秘密鍵などを設定する処理などが定義される。Ｅｘｉｔ動作１８０１−１８０Ｋには、ライフサイクルにおける状態を変更する上で、次の状態へ移行する際に残しておくことがセキュリティ上の脆弱性につながるような情報の消去、もしくはそのようなセキュリティ上の脆弱性につながるような情報を書き換える処理が定義される。例えば、Ｅｘｉｔ動作１７０１−１７０Ｋには、前のライフサイクル状態における機器の主要な利用者の個人情報につながるログデータの削除、秘密鍵の改ざん防止のために書き込みを不可とする設定が定義される。
【００６０】
状態管理部１６４は、アクセス制御部１６２からのアクセス要求に応じて、ライフサイクル状態データ１６６を参照し、そのアクセス要求時点のライフサイクルにおけるステージを取得し、アクセス制御部１６２へ通知する。ここで、ライフサイクル状態データ１６６は、機器全体における、その時点でのライフサイクルにおけるステージを示すデータであり、機器全体を通して唯一つ管理されている。ライフサイクル状態データ１６６は、ライフサイクルにおけるステージが変更される状態遷移の度に変更される。例えば、ライフサイクルにおける各ステージにおいて、ステージを変更する人によって変更させるようにしてもよい。状態管理部１６４は、状態遷移が要求された場合に、状態データ１５０１−１５０Ｋに規定される処理を実行する。また、状態管理部１６４は、異なる仕向け毎に、機器利用者に新たなサービスを提供するために、状態データ１５０１−１５０Ｋの内容を編集することによって更新する。なお、異なる仕向けに合わせて、状態データ１５０１−１５０Ｋに加え、状態データ１５０１−１５０Ｋ以外のデータ、およびプログラムをライフサイクルの運用中に書き換えるようにしてもよい。
【００６１】
＜状態データの内容を編集する処理＞
以下、状態データ１５０１−１５０Ｋの内容を編集する処理について説明する。
【００６２】
ここで説明する処理の前提について説明する。ライフサイクル状態管理モジュール１００のＲＯＭ１０４、およびＲＡＭ１０６のいずれかまたは両方には、状態データ１５０２−１５０５が格納される。図６は、状態データ１５０２−１５０５の内容を編集する前の状態を示す。状態データ１５０２−１５０５のうち、状態データ１５０２に新たに状態データ２００２を追加する。状態データ１５０２−１５０５では、新たに追加する状態データ２００２のために、遷移条件１６０２ｂ−１６０５ｂは、遷移条件が確定されていない状態でＲＡＭ１０６に保持されている。図６において、実線は書き換え不可能なデータを示し、破線は書き換え可能なデータを示す。
【００６３】
図７は、新たに状態データ２００２を追加する対象となる状態データ１５０２と、新たに追加する状態データ２００２を示す。図７に示すように、状態データ１５０２−１５０５のうち、状態データ１５０２に状態データ２００２が新たに追加される。
【００６４】
新たに追加される状態データ２００２は、追加される対象である元の状態データ１５０２と紐付けられることによって関連付けられる。図３に示される入出力部１１４から新たに追加する状態データ２００２、および状態データ１５０２の遷移条件１６０２ｂが転送される。転送されるデータについては後述する。遷移条件１６０２ｂには新たに追加する状態データ２００２に遷移する条件などが書き込まれる。
【００６５】
図８、図９は、状態データを編集するために、ＲＯＭ１０４、およびＲＡＭ１０６のいずれかまたは両方の領域を制御する処理を示す。図８は、ライフサイクルの生産ステージ１などの初期のステージの状態データの一例を示す。ライフサイクル状態管理モジュール１００のＲＯＭ１０４、およびＲＡＭ１０６のいずれかまたは両方には、状態データ１５０１−１５０Ｋが格納される。状態データ１５０１−１５０Ｋのうち、書き換え不可能なデータは、状態データ１５０１、状態データ１５０２の遷移条件１６０２ａおよびＥｎｔｒｙ動作１７０２、および状態データ１５０３のＥｘｉｔ動作１８０３であり、書き換え可能なデータは、状態データ１５０２の遷移条件１６０２ｂおよびＥｘｉｔ動作１８０２、状態データ１５０３の遷移条件１６０３、およびＥｎｔｒｙ動作１７０３、および状態データ１５０Ｋである。メモリアクセスコントローラ１１２は、状態データ１５０１−１５０Ｋの遷移条件１６０１−１６０Ｋ、Ｅｎｔｒｙ動作１７０１−１７０Ｋ、およびＥｘｉｔ動作１８０１−１８０Ｋ毎にアクセス権を定義する。
【００６６】
図９は、ライフサイクル状態管理モジュール１００のＲＯＭ１０４、およびＲＡＭ１０６に格納されるデータを示す。ライフサイクル状態管理モジュール１００のＲＯＭ１０４には、書き換え不可能なデータ、具体的には、状態データ１５０１（遷移条件１６０１、Ｅｎｔｒｙ動作１７０１、Ｅｘｉｔ動作１８０１）、状態データ１５０２の遷移条件１６０２ａおよびＥｎｔｒｙ動作１７０２、および状態データ１５０３のＥｘｉｔ動作１８０３が格納される。これにより、ライフサイクルのステージにおいて、あるロールの機器利用者（アクセス者）が一度データを追加した場合に、同じロールの別の機器利用者（アクセス者）が更新できないようにできる。
【００６７】
また、ライフサイクル状態管理モジュール１００のＲＡＭ１０６には、書き換え可能なデータ、具体的には、状態データ１５０２の遷移条件１６０２ｂおよびＥｘｉｔ動作１８０２、状態データ１５０３の遷移条件１６０３、およびＥｎｔｒｙ動作１７０３、および状態データ１５０Ｋ（遷移条件１６０Ｋ、Ｅｎｔｒｙ動作１７０Ｋ、Ｅｘｉｔ動作１８０Ｋ）が格納される。これにより、ＲＡＭ１０６に格納されているデータについては、状態データの追加、削除、修正などの編集を行うことができる。
【００６８】
＜アクセス認証から状態データの書き込みを開始するまでの動作＞
図１０は、アクセス者の認証からメモリアクセスコントローラ１１２へ状態データの書き込みを開始するまでの手順を示す。
【００６９】
（１）では、機器を利用するユーザ（アクセス者）が入出力部１１４から、認証情報を認証部１１０へ送信する。
【００７０】
（２）では、認証部１１０は、入出力部１１４から送られてきた認証情報をＲＯＭ１０４に格納されているユーザデータと照合する。認証情報（アクセスＩＤ、パスワード）とユーザデータとが一致する場合、認証部１１０は入出力部１１４にアクセス者がメモリアクセスコントローラ１１２へアクセスすることを許可する。一方、認証情報とユーザデータとが一致しない場合、認証部１１０は何もしない。つまり、認証情報とユーザデータとが一致しない場合であっても、悪意のあるアクセス者から守るために、認証情報とユーザデータとが一致しなかったことをアクセス者には直接何も知らせない。こうすることであたかもメモリアクセスコントローラ１１２にアクセスできているかのようにみせかけ、実際にはＲＯＭ１０４、およびＲＡＭ１０６への更新が行われていない状態を作ることができ、悪意あるアクセス者の再度のアクセスを防止できる。
【００７１】
（３）では、ユーザ認証によってアクセス者のアクセスが許可された場合、認証部１１０は、メモリアクセスコントローラ１１２にアクセスが許可されること、アクセス者のロールを通知する。これによって、メモリアクセスコントローラ１１２は、アクセス者がアクセス可能な領域を指示できる。
【００７２】
（４）では、アクセス者は、状態データの更新を行うために入出力部１１４からメモリアクセスコントローラ１１２へのデータ転送を開始する。メモリアクセスコントローラ１１２は、入出力部１１４から転送されたデータに応じて、ＲＯＭ１０４、またはＲＡＭ１０６へ格納する。メモリアクセスコントローラ１１２が、入出力部１１４から転送されたデータをどのようにしてＲＯＭ１０４、またはＲＡＭ１０６へ振り分けるかは後述する。
【００７３】
図１１は、ライフサイクルの販売ステージ３において、販売業者が、新たなサービスを提供するために状態データを追加する処理の一例を示す。
【００７４】
販売業者がお客様に故障検出サービスなどの新たなサービスを提供するために、状態データを追加する。図１０に示した手順に従って、運用中の状態データ１５０２の遷移条件１６０２ｂに「故障を検出したら、故障検出サービスに遷移する」という条件を追加する。
【００７５】
（１）では、アクセス者としての販売業者が入出力部１１４を使って、認証情報を認証部１１０へ送信する。
【００７６】
（２）では、認証部１１０は、入出力部１１４から送られてきた認証情報をＲＯＭ１０４に格納されているユーザデータと照合することによって、正規の販売業者か否かを確認するためにユーザ認証を実行する。認証情報とユーザデータとが一致する場合、認証部１１０は入出力部１１４にアクセス者がメモリアクセスコントローラ１１２へアクセスすることを許可するための許可信号を送信する。入出力部１１４に許可信号が受信される結果、入出力部１１４は、メモリアクセスコントローラ１１２へアクセス者が入出力部１１４へ入力するデータを送信できる状態となる。一方、認証情報とユーザデータとが一致しない場合、認証部１１０は何もしない。
【００７７】
（３）では、ユーザ認証によってアクセス者のアクセスが許可された場合、認証部１１０は、メモリアクセスコントローラ１１２にアクセス者がアクセスすることが許可されること、アクセス者のロールを通知する。これによって、メモリアクセスコントローラ１１２は、アクセス者のロールにあわせて、書き換え可能エリアなどのアクセス者がアクセス可能な領域の情報を指示することができる。
【００７８】
（４）では、入出力部１１４は、状態データの書き換えを行うためにメモリアクセスコントローラ１１２へのデータ転送を開始する。転送されるデータは、状態データ１５０２の遷移条件１６０２ｂ、および状態データ２００２である。遷移条件１６０２ｂには、「故障の条件に一致すると故障検出サービスの状態データへ遷移する」ことが記載されている。この場合の故障検出サービスの状態データは、新たに追加する状態データ２００２である。新たに追加する状態データ２００２には、例えば、Ｅｎｔｒｙ動作２２０２として、「故障箇所のデータを取得し、故障対象の部品情報をナビゲーションモジュール４００に送り、修理工場を表示させる」動作が定義される。
【００７９】
メモリアクセスコントローラ１１２は、入出力部１１４から転送された状態データ２００２をＲＡＭ１０６に配置することによって格納する。
【００８０】
これにより、故障の条件に一致すると状態データ２００２へ遷移し、故障箇所のデータを取得し、故障対象の部品情報をナビゲーションモジュール４００に送り、修理工場を表示させる処理を追加することができる。
【００８１】
＜アクセス者の認証後のメモリアクセスコントローラ１１２における処理＞
図１２は、認証部１１０によってアクセス者の認証が行われた後にメモリアクセスコントローラ１１２によるデータの処理について説明する。
【００８２】
メモリアクセスコントローラ１１２は、認証状態判断部１１２２を備える。アクセス者の認証情報とユーザデータとが一致する場合、認証部１１０は入出力部１１４にアクセス者がメモリアクセスコントローラ１１２へアクセスすることを許可するための許可信号などの制御信号を送信するとともに、認証状態判断部１１２２にＲＯＭ１０４、またはＲＡＭ１０６のいずれかまたは両方へアクセス者がアクセスすることを許可するための許可信号などの制御信号を送信する。認証状態判断部１１２２は、転送データが入力される際に、転送データがバスＩ／Ｆ１０８経由であるか入出力部１１４経由であるかを判断する。転送データがバスＩ／Ｆ１０８経由であるか入出力部１１４経由であるかは、ＡＭＢＡ(Advanced Microcontroller Bus Architecture)などのバスプロトコルに存在するＩＤを利用して判断される。また、転送データにバスＩ／Ｆ１０８経由であるか入出力部１１４経由であるかを判断できるデータを含めるようにしてもよい。この場合、上記のプロトコルに限られず、他のプロトコルを適用できる。
【００８３】
認証状態判断部１１２２は、転送データがバスＩ／Ｆ１０８経由である場合には、ＲＯＭ１０４、またはＲＡＭ１０６へのアクセスを可能とする。バスＩ／Ｆ１０８経由で転送されるデータは、最初から機器に存在する構成物であるため、認証されていると想定される。また、認証状態判断部１１２２は、転送データが入出力部１１４経由である場合には、認証部１１０によって認証済みであり、且つＲＯＭ１０４、またはＲＡＭ１０６へのアクセスを許可するための許可信号を受信している場合には、ＲＯＭ１０４、またはＲＡＭ１０６へのアクセスを可能とする。一方、認証状態判断部１１２２は、転送データが入出力部１１４経由である場合には、認証部１１０によって認証されておらず、認証部１１０によって認証されている場合でもＲＯＭ１０４、またはＲＡＭ１０６へのアクセスを許可するための許可信号を受信していない場合には、ＲＯＭ１０４、またはＲＡＭ１０６へのアクセスを不可とする。
【００８４】
図１３は、メモリアクセスコントローラ１１２の処理を示し、主に認証状態判断部１１２２の処理の一実施例を示す。
【００８５】
ステップＳ１３０２では、認証状態判断部１１２２は、バスＩ／Ｆ１０８経由のアクセスか、入出力部１１４経由のアクセスであるかを判断する。
【００８６】
ステップＳ１３０４では、入出力部１１４経由のアクセスであると判断した場合、認証状態判断部１１２２は、認証部１１０から送信される許可信号を確認し、認証済みか否かを判断する。
【００８７】
ステップＳ１３０６では、認証済みでないと判断した場合、認証状態判断部１１２２は、入出力部１１４経由のアクセスによって送信されるデータを破棄する。
【００８８】
ステップＳ１３０８では、ステップＳ１３０２によってバスＩ／Ｆ１０８経由のアクセスであると判断した場合、またはステップＳ１３０４によって認証済みであると判断した場合、認証状態判断部１１２２は、ＲＯＭ１０４、またはＲＡＭ１０６へのアクセスを許可する。ＲＯＭ１０４、またはＲＡＭ１０６へのアクセスを許可した結果、バスＩ／Ｆ１０８経由で入力されるデータまたは入出力部１１４経由で入力されるデータは、ＲＯＭ１０４、またはＲＡＭ１０６へ格納される。
【００８９】
図１４は、入出力部１１４からメモリアクセスコントローラ１１２へ転送されるデータの一実施例を示す。ここでは、転送されるデータに付帯される情報を示す。
【００９０】
認証部１１０によって認証されたアクセス者は入出力部１１４にデータを入力する。入力されるデータには、現在ＲＯＭ１０４、またはＲＡＭ１０６に記憶されている状態データのうち、状態データを追加する対象となる元の状態データの識別情報と、新たに追加する状態データの識別情報が関連付けられて付帯される。図１４では、状態データを追加する元の状態データ１５０２、および新たに追加する状態データ２００２が関連付けられる。
【００９１】
入出力部１１４から転送されるデータには、状態データを追加する対象である状態データ１５０２を表す情報が先頭に付帯される。次に、新たに追加する状態データ２００２への遷移条件が付帯される。図１４では、遷移条件として、「故障の条件に一致すると状態データ２００２へ遷移する」ことが付帯される。次に、転送されるデータには、追加する状態データ２００２の識別情報（例えば、番号（Ｎｏ．））などの状態データ２００２を表す情報が付帯され、その状態データ２００２の名称が付帯される。図１４では、状態データ２００２の名称として、「修理サービス」が付帯される。次に、転送されるデータには、新たに追加する状態データ２００２からの遷移条件が付帯される。図１４では、遷移条件として、「修理完了時、状態データ１５０２へ戻る」ことが付帯される。次に、転送されるデータには、遷移条件のアクセス権が付帯される。図１４では、遷移条件のアクセス権は「読み出し専用（Ｒｅａｄ  Ｏｎｌｙ）」とされるため、遷移条件はＲＯＭ１０４へ格納される。
【００９２】
次に、転送されるデータには、追加するＥｎｔｒｙ動作が付帯される。図１４では、新たに追加するＥｎｔｒｙ動作として、「制御対象の制御モジュールの状態を収集する」ことが付帯される。次に、転送されるデータには、Ｅｎｔｒｙ動作のアクセス権が付帯される。図１４では、Ｅｎｔｒｙ動作のアクセス権は「読み出し書き込み可能（Ｒｅａｄ／Ｗｒｉｔｅ）」とされるため、Ｅｎｔｒｙ動作はＲＡＭ１０６へ格納される。
【００９３】
次に、転送されるデータには、追加するＥｘｉｔ動作が付帯される。図１４では、新たに追加するＥｘｉｔ動作として、「修理完了をユーザへ知らせる」ことが付帯される。次に、転送されるデータには、Ｅｘｉｔ動作のアクセス権が付帯される。図１４では、Ｅｘｉｔ動作のアクセス権は「読み出し書き込み可能（Ｒｅａｄ／Ｗｒｉｔｅ）」とされるため、Ｅｘｉｔ動作はＲＡＭ１０６へ格納される。以上のデータは、テキストデータなどの所定のデータ形式で送信される。
【００９４】
図１４に示されるデータに付帯される情報の配置は一例であり、メモリアクセスコントローラ１１２が解釈できるデータ構造であれば、データの並びを異なるようにしてもよい。また、データの信頼性を確保するためチェックサムなどの誤り検出符号を付与するようにしてもよい。
【００９５】
図１５は、ＲＯＭ１０４、およびＲＡＭ１０６への状態データの格納例であり、状態データの遷移条件、Ｅｎｔｒｙ動作、およびＥｘｉｔ動作の具体的な配置例を示す。
【００９６】
メモリアクセスコントローラ１１２は、アクセス者のロールに応じて設定されるアクセス権に応じて、入出力部１１４から転送されるデータをＲＯＭ１０４、またはＲＡＭ１０６に振り分ける。メモリアクセスコントローラ１１２は、入出力部１１４から転送されるデータのアクセス権がＲｅａｄ  ＯｎｌｙであればＲＯＭ１０４へ、Ｒｅａｄ／ＷｒｉｔｅであればＲＡＭ１０６へ配置する。
【００９７】
例えば、図１５に示される例では、状態データを追加する元の状態データ１５０２はライフサイクルの生産ステージ１にて書き換え不可としてＲＯＭ１０４に格納されており、これに新たに追加する状態データ２００２について追加する遷移条件や、追加する状態データ２００２、追加する状態データ２００２の名称は、ＲＯＭ１０４に格納される。これにより、運用時に、状態データを書き換えできないようにできる。また、状態データを追加する元の状態データ１５０２、これに新たに追加する状態データ２００２の追加する遷移条件や、追加する状態データ２００２、追加する状態データ２００２の名称をＲＡＭ１０６に格納するようにしてもよい。これにより、制御対象の制御モジュールの振る舞いや認証されたユーザが運用時に書き換え可能とできる。
【００９８】
追加する遷移条件、追加するＥｎｔｒｙ動作、および追加するＥｘｉｔ動作は、メモリアクセスコントローラ１１２が状態データの識別情報（例えば、番号（Ｎｏ．））から必要なデータにアクセスできるようにするため、追加する状態データ２００２が付与されることによって関連付けされている。
【００９９】
メモリアクセスコントローラ１１２は、図１４に示したデータから追加する遷移条件のアクセス権を読み込んで、Ｒｅａｄ  Ｏｎｌｙであることを判断し、追加する遷移条件をＲＯＭ１０４へ配置する。また、メモリアクセスコントローラ１１２は、図１４に示したデータから追加するＥｎｔｒｙ動作のアクセス権を読み込んで、Ｒｅａｄ／Ｗｒｉｔｅであることを判断し、追加するＥｎｔｒｙ動作をＲＡＭ１０６へ配置する。また、メモリアクセスコントローラ１１２は、図１４に示したデータから追加するＥｘｉｔ動作のアクセス権を読み込んで、Ｒｅａｄ／Ｗｒｉｔｅであることを判断し、追加するＥｘｉｔ動作をＲＡＭ１０６へ配置する。
【０１００】
図１５に示したＲＯＭ１０４、およびＲＡＭ１０６のデータ配置は一例であり、メモリアクセスコントローラ１１２が解釈できるデータ構造であれば、異なるように配置するようにしてもよい。また、データの信頼性を確保するためチェックサムなどの誤り検出符号を付与するようにしてもよい。
【０１０１】
図１６は、メモリアクセスコントローラ１１２が、ＲＯＭ１０４、またはＲＡＭ１０６に入出力部１１４から転送されたデータを配置する処理の一実施例を示す。
【０１０２】
メモリアクセスコントローラ１１２には、状態データ書き換え部１１２４が搭載され、状態データ書き換え部１１２４は、入出力部１１４から転送されたデータのデータ構造を解釈し、図１５に示したデータ構造で、ＲＯＭ１０４、またはＲＡＭ１０６に配置する。
【０１０３】
図１７は、メモリアクセスコントローラ１１２の状態データ書き換え部１１２４の処理の一実施例を示す。
【０１０４】
ステップＳ１７０２では、状態データ書き換え部１１２４は、入出力部１１４から転送される状態データ１５０２がＲＯＭ１０４、またはＲＡＭ１０５に存在するか否かを判断する。
【０１０５】
ステップＳ１７０４では、状態データ１５０２がＲＯＭ１０４、またはＲＡＭ１０６に存在する場合、状態データ書き換え部１１２４は、ＲＯＭ１０４に、状態データ１５０２、および追加する遷移条件を配置する。例えば、追加する遷移条件として、「故障の条件に一致すると故障検出サービスの状態データへ遷移する」ことが配置される。
【０１０６】
ステップＳ１７０６では、状態データ書き換え部１１２４は、ＲＯＭ１０４に、追加する状態データの識別情報（例えば、番号Ｎｏ．）、および追加する状態データの名称を配置する。例えば、追加する状態データの識別情報として「状態データ２００２」、および追加する状態データの名称として「故障検出サービス」が配置される。ここでは、状態データの遷移条件、および追加する状態データの名称は変更しないことを想定してＲＯＭ１０４へ配置するが、運用次第では変更することを想定してＲＡＭ１０６への配置するようにしてもよい。
【０１０７】
ステップＳ１７０８では、状態データ書き換え部１１２４は、追加する遷移条件のアクセス権を確認する。
【０１０８】
ステップＳ１７１０では、追加する遷移条件のアクセス権が「Ｒｅａｄ  Ｏｎｌｙ」である場合、状態データ書き換え部１１２４は、ＲＯＭ１０４へ、追加する状態データの識別情報、および追加する遷移条件を配置する。図１６では、追加する遷移条件のアクセス権が「Ｒｅａｄ  Ｏｎｌｙ」であるため、状態データ書き換え部１１２４は、ＲＯＭ１０４へ、追加する状態データとして「状態データ２００２」、および追加する遷移条件として「修理完了時、状態データ１５０２へ遷移する」ことを配置する。
【０１０９】
ステップＳ１７１２では、追加する遷移条件のアクセス権が「Ｒｅａｄ／Ｗｒｉｔｅ」である場合、状態データ書き換え部１１２４は、ＲＡＭ１０６へ、追加する状態データの識別情報、および追加する遷移条件を配置する。
【０１１０】
ステップＳ１７１４では、状態データ書き換え部１１２４は、追加するＥｎｔｒｙ動作のアクセス権を確認する。
【０１１１】
ステップＳ１７１６では、追加するＥｎｔｒｙ動作のアクセス権が「Ｒｅａｄ  Ｏｎｌｙ」である場合、状態データ書き換え部１１２４は、ＲＯＭ１０４へ、追加する状態データの識別情報、および追加するＥｎｔｒｙ動作を配置する。
【０１１２】
ステップＳ１７１８では、追加するＥｎｔｒｙ動作のアクセス権が「Ｒｅａｄ／Ｗｒｉｔｅ」である場合、状態データ書き換え部１１２４は、ＲＡＭ１０６へ、追加する状態データの識別情報、および追加するＥｎｔｒｙ動作を配置する。図１６では、追加するＥｎｔｒｙ動作のアクセス権が「Ｒｅａｄ／Ｗｒｉｔｅ」であるため、状態データ書き換え部１１２４は、ＲＡＭ１０６へ、追加する状態データとして「状態データ２００２」、および追加するＥｎｔｒｙ動作として「制御対象の制御モジュールの状態を収集する」ことを配置する。
【０１１３】
ステップＳ１７２０では、状態データ書き換え部１１２４は、追加するＥｘｉｔ動作のアクセス権を確認する。
【０１１４】
ステップＳ１７２２では、追加するＥｘｉｔ動作のアクセス権が「Ｒｅａｄ  Ｏｎｌｙ」である場合、状態データ書き換え部１１２４は、ＲＯＭ１０４へ、追加する状態データの識別情報、および追加するＥｘｉｔ動作を配置する。
【０１１５】
ステップＳ１７２４では、追加するＥｘｉｔ動作のアクセス権が「Ｒｅａｄ／Ｗｒｉｔｅ」である場合、状態データ書き換え部１１２４は、ＲＡＭ１０６へ、追加する状態データの識別情報、および追加するＥｘｉｔ動作を配置する。図１６では、追加するＥｘｉｔ動作のアクセス権がＲｅａｄ／Ｗｒｉｔｅであるため、状態データ書き換え部１１２４は、ＲＡＭ１０６へ、追加する状態データとして「状態データ２００２」、および追加するＥｎｔｒｙ動作として「修理完了をユーザへ知らせる」ことを配置する。
【０１１６】
なお、ライフサイクルにおけるステージの遷移するタイミングと、状態データを編集するタイミングとが一致した場合には、遷移する前のステージで状態データを編集するようにしてもよいし、遷移した後のステージで、アクセス者のロールに応じて、状態データを編集するようにしてもよい。遷移する前のステージで状態データを編集するようにする場合には、その編集が終了するまでステージを遷移させる処理は中断される。
【０１１７】
また、複数の認証要求を処理できる装置を予め用意し、その装置から複数の車両へ認証要求を無線送信し、状態データを編集することによって、仕向けが同じ複数の車両に対して、状態データを編集するようにしてもよい。これによって、状態データの編集を早くできる。
【０１１８】
組み込み機器の一実施例によれば、ライフサイクルにおける生産ステージで搭載される状態データを、生産ステージ後の組み込み機器の運用中のステージで、認証された利用者によって、編集できる。状態データを編集することによって、ライフサイクルにおける状態をプログラミングできるため、仕向け毎に予めプログラミングする必要がないため、組み込み機器に搭載される制御モジュールの設計コストを下げることができるとともに、製造コストも下げることができる。
【０１１９】
＜変形例（その１）＞
ライフサイクル状態管理モジュール１００の一変形例（その１）は、図１２を適用できる。ライフサイクル状態管理モジュール１００の一変形例は、ユーザ認証に有効期間を持たせたものである。メモリアクセスコントローラ１１２の認証状態判断部１１２２は、タイマを有する。認証状態判断部１１２２は、認証部１１０から、ＲＯＭ１０４、またはＲＡＭ１０６へのアクセスを許可するための許可信号が入力された際にタイマを起動する。
【０１２０】
認証状態判断部１１２２は、タイマを起動してから予め設定された時間が経過するまでの間は、ＲＯＭ１０４、またはＲＡＭ１０６へのアクセスを可能とし、タイマを起動してから予め設定された時間が経過した後は、ＲＯＭ１０４、またはＲＡＭ１０６へのアクセスを不可能とする。具体的には、予めタイマの閾値が設定され、認証状態判断部１１２２は、タイマの値とタイマの閾値とを比較し、タイマの値がタイマの閾値を超えない場合にはＲＯＭ１０４、またはＲＡＭ１０６へのアクセスを可能とし、タイマの値がタイマの閾値を超えた場合にはＲＯＭ１０４、またはＲＡＭ１０６へのアクセスを不可能とする。認証状態判断部１１２２は、タイマの値がタイマの閾値を超えたことによってＲＯＭ１０４、またはＲＡＭ１０６へのアクセスを不可能とした場合には、認証部１１０へＲＯＭ１０４、またはＲＡＭ１０６へのアクセスを不可能としたことを通知する。認証部１１０は、ＲＯＭ１０４、またはＲＡＭ１０６へのアクセスを不可能としたことが通知されたことによって、ユーザに再度認証を要求する。これにより、メモリアクセスコントローラ１１２へアクセスすることを認証された後に、その認証されたアクセス者以外のアクセス者がデータを入力した場合でも、予め設定された時間が経過した後には、ＲＯＭ１０４、またはＲＡＭ１０６へのアクセスができなくなるため、セキュリティを高めることができる。
【０１２１】
図１８は、メモリアクセスコントローラ１１２の処理を示し、主に認証状態判断部１１２２の処理の一実施例を示す。図１８において、図１３に対して追加された処理を破線で示す。
【０１２２】
ステップＳ１８０２では、認証状態判断部１１２２は、バスＩ／Ｆ１０８経由のアクセスか、入出力部１１４経由のアクセスであるかを判断する。
【０１２３】
ステップＳ１８０４では、入出力部１１４経由のアクセスであると判断した場合、認証状態判断部１１２２は、認証部１１０から送信される許可信号を確認し、認証済みか否かを判断する。
【０１２４】
ステップＳ１８０６では、認証済みでないと判断した場合、認証状態判断部１１２２は、入出力部１１４経由のアクセスによって送信されるデータを破棄する。
【０１２５】
ステップＳ１８０８では、ステップＳ１８０２によってバスＩ／Ｆ１０８経由のアクセスであると判断した場合、またはステップＳ１８０４によって認証済みであると判断した場合、認証状態判断部１１２２は、タイマの値を初期化する。
【０１２６】
ステップＳ１８１０では、認証状態判断部１１２２は、ＲＯＭ１０４、またはＲＡＭ１０６へのアクセスを許可する。ＲＯＭ１０４、またはＲＡＭ１０６へのアクセスを許可した結果、バスＩ／Ｆ１０８経由で入力されるデータまたは入出力部１１４経由で入力されるデータは、ＲＯＭ１０４、またはＲＡＭ１０６へ格納される。
【０１２７】
ステップＳ１８１２では、認証状態判断部１１２２は、データ転送が行われている間のアイドル時間がタイマの閾値を超えているか否かを判断する。データ転送が行われている間のアイドル時間がタイマの閾値を超えている場合には、終了し、再度ステップＳ１８０２からの処理が実行される。一方、データ転送が行われている間のアイドル時間がタイマの閾値を超えていない場合には、ステップＳ１８１０へ戻る。
【０１２８】
＜変形例（その２）＞
図１９は、ライフサイクル状態管理モジュール１００の一変形例（その２）を示す。ライフサイクル状態管理モジュール１００の一変形例は、メモリアクセスコントローラ１１２によってアクセスできるＲＯＭ１０４、およびＲＡＭ１０６における領域を複数のブロックに分割し、ブロックを単位として、メモリアクセスコントローラ１１２は、アクセスできる範囲を指定する。ライフサイクル状態管理モジュール１００は、図１６に示したライフサイクル状態管理モジュールにおいて、ＲＯＭ１０４を複数のブロックに分割し、各ブロックをＲＯＭ１０４２、１０４４、および１０４６とし、ＲＡＭ１０６を複数のブロックに分割し、各ブロックをＲＡＭ１０６２、１０６４、および１０６６としたものである。さらに、メモリアクセスコントローラ１１２に、状態データアクセス管理部１１２６を備えたものである。ここで、ＲＯＭ１０４、およびＲＡＭ１０６における領域の分割数は３個に限られず、２個としてもよいし、４個以上としてもよい。また、ＲＯＭ１０４、およびＲＡＭ１０６の分割数を異なるようにしてもよい。
【０１２９】
状態データアクセス管理部１１２６は、状態データを参照し、状態データの遷移条件に一致する場合、ＲＯＭ１０４、およびＲＡＭ１０６を構成する各ブロックのうち、アクセスできるブロックをスイッチングすることによって切り替える。これによって、状態データアクセス管理部１１２６によって切り替えられなかったブロックには全くアクセスできないため、編集することが不可能となり、データの信頼性をさらに向上できる。
【０１３０】
図２０は、メモリアクセスコントローラ１１２の動作の一変形例を示し、特に状態データアクセス管理部１１２６の動作を示す。
【０１３１】
ステップＳ２００２では、状態データアクセス管理部１１２６は、状態データの遷移条件に一致するか否かを判定する。状態データの遷移条件に一致しない場合、終了する。
【０１３２】
ステップＳ２００４では、状態データの遷移条件に一致する場合、状態データアクセス管理部１１２６は、アクセスできる領域をスイッチする。
【０１３３】
図２１は、ライフサイクル状態管理モジュール１００の適用例を示す。悪意のあるユーザが機器を利用するために、鍵を使って車両のエンジンをかけようとする。
【０１３４】
（１）では、指紋認証付きの鍵を使用して車両のエンジンがかけられることによって、駆動制御モジュール２００からライフサイクル状態管理モジュール１００のバスＩ／Ｆ１０８を経由して、指紋データが認証部１１０へ入力される。ここで、指紋認証付きの鍵は一例であり、電子式の鍵を使用するようにしてもよい。例えば、スマートフォンから鍵データを送信し、入出力部１１４を介し、認証部１１０へ入力させるようにしてもよい。
【０１３５】
（２）では、認証部１１０は、メモリアクセスコントローラ１１２へアクセスし、状態データ、およびユーザデータ１００１−１００Ｎを参照する。さらに、認証部１１０は、入力された指紋データが、車両のユーザデータの認証データと一致するか否かを判断する。例えば、状態データには、遷移条件として「所有者のユーザデータと指紋データが不一致だった場合には、盗難サービス状態へ遷移する」ことが定義され、Ｅｎｔｒｙ動作として「ユーザへの通知および警察への通知」が定義されている。認証部１１０は、入力された指紋データが、車両のユーザデータの認証データと一致しない場合には、状態データに定義されている遷移条件と一致するため、盗難サービス状態へ遷移する。
【０１３６】
（３）では、盗難サービス状態へ遷移すると、認証部１１０は、盗難サービスのＥｎｔｒｙ動作で定義されている「ユーザへの通知および警察への通知」にしたがって、盗難サービス状態へ遷移したことを入出力部１１４へ入力する。
【０１３７】
（４）では、入出力部１１４は、外部のネットワークへ盗難サービス状態に遷移したことを電子メールなどで通知する。ここで、電子メールは一例であり、何らかの通知手段があるのであれば、電子メール以外の方法でも通知できる。
【０１３８】
具体的には、例えば、認証されていない中古車販売業者が入出力部１１４に鍵データを送った場合でも、認証部１１０がその鍵データを確認した結果ユーザデータと不一致となる。これによって、状態データで定義されているＥｎｔｒｙ動作の振る舞いに応じて、正規ディーラーへ通知することなどが可能となる。
【０１３９】
本発明は特定の実施例、変形例を参照しながら説明されてきたが、各実施例、変形例は単なる例示に過ぎず、当業者は様々な変形例、修正例、代替例、置換例等を理解するであろう。説明の便宜上、本発明の実施例に従った装置は機能的なブロック図を用いて説明されたが、そのような装置はハードウェアで、ソフトウエアでまたはそれらの組み合わせで実現されてもよい。本発明は上記実施例に限定されず、本発明の精神から逸脱することなく、様々な変形例、修正例、代替例、置換例等が包含される。
【符号の説明】
【０１４０】
５０  バス
１００  ライフサイクル状態管理モジュール
１０２  ＣＰＵ
１０４  ＲＯＭ
１０６  ＲＡＭ
１０８  バスＩ／Ｆ
１１０  認証部
１１２  メモリアクセスコントローラ
１１４  入出力部
１６０  利用者認証部
１６２  アクセス制御部
１６４  状態管理部
１６６  ライフサイクル状態データ
２００  駆動制御モジュール
２０２  ＣＰＵ
２０４  ＲＯＭ
２０６  ＲＡＭ
２０８  バスＩ／Ｆ
２５０  バスライン
３００  エンジン制御モジュール
４００  ナビゲーションモジュール
５００  車載カメラモジュール
１００１−１００Ｎ  ユーザデータ
１１０１−１１０Ｎ  認証データ
１２０１−１２０Ｎ  ロール
１３０１−１３０Ｍ  制御対象データ
１４０１−１４０Ｍ  状態アクセス制御ポリシー
１５０１−１５０ｋ  状態データ
１６０１−１６０ｋ  遷移条件
１７０１−１７０ｋ  Ｅｎｔｒｙ動作
１８０１−１８０ｋ  Ｅｘｉｔ動作
【先行技術文献】
【特許文献】
【０１４１】
【特許文献１】特開２００９−７５９６８号公報
【図１】
2016001459.tif 000003
【図２】
2016001459.tif 000004
【図３】
2016001459.tif 000005
【図４】
2016001459.tif 000006
【図５】
2016001459.tif 000007
【図６】
2016001459.tif 000008
【図７】
2016001459.tif 000009
【図８】
2016001459.tif 000010
【図９】
2016001459.tif 000011
【図１０】
2016001459.tif 000012
【図１１】
2016001459.tif 000013
【図１２】
2016001459.tif 000014
【図１３】
2016001459.tif 000015
【図１４】
2016001459.tif 000016
【図１５】
2016001459.tif 000017
【図１６】
2016001459.tif 000018
【図１７】
2016001459.tif 000019
【図１８】
2016001459.tif 000020
【図１９】
2016001459.tif 000021
【図２０】
2016001459.tif 000022
【図２１】
2016001459.tif 000023