(57)【特許請求の範囲】
【請求項１】
データ通信の安全性を満たすことが保証されていない非安全ネットワークであって、非安全層を備える非安全ネットワークを経由した非安全層データに含まれるビットエラーを検出する非安全層エラー検出を行い、前記非安全層データにビットエラーが検出されなかった場合に、前記非安全層データを安全層データに変換して安全層に転送する前記非安全層から、前記安全層データを受信する前記安全層を有し、前記非安全層は巡回冗長検査を用いて前記非安全層データを検査し、前記安全層は巡回冗長検査を用いて前記安全層データを検査する安全通信装置であって、
前記安全層データに含まれるビットエラーを検出する安全層エラー検出を行う安全プロトコルデータユニット検査部と、
単位時間当たりに受信する前記安全層データの受信レートと、前記安全層データの検査に用いる巡回冗長検査の生成多項式のパラメータとを取得する安全層パラメータ取得部と、
前記非安全層データの検査に用いる巡回冗長検査の生成多項式のパラメータを取得する非安全層パラメータ取得部と、
前記非安全ネットワークにおけるデータ通信時の１ビットあたりのエラー発生確率の上限として要求するビットエラー率に対する要求値と、前記受信レートと、前記安全層データの検査に用いる巡回冗長検査の生成多項式のパラメータと、前記非安全層データの検査に用いる巡回冗長検査の生成多項式のパラメータとに基づいて、前記単位時間当たりに受信する前記安全層データのうち、ビットエラーを含む安全層データの数の上限として要求する要求エラーレートを設定する閾値設定部と、
前記安全層エラー検出によって検出されたビットエラーを含む安全層データの数と、前記要求エラーレートとを比較し、比較結果に基づいて安全制御を行う安全監視制御部と
を備える安全通信装置。
【請求項２】
前記安全層パラメータ取得部は、前記安全層データの送信単位から定まる単位長さを取得し、
前記非安全層パラメータ取得部は、前記非安全層データの前記単位長さを取得し、
前記閾値設定部は、
前記ビットエラー率に対する要求値と、前記非安全層データの前記単位長さとに基づいて、前記非安全層データが破損していない確率である破損なし確率に対する要求値を求め、
前記破損なし確率に対する要求値と、前記ビットエラー率に対する要求値と、前記非安全層データの前記単位長さと、前記非安全層データの検査に用いる巡回冗長検査の生成多項式のパラメータとに基づいて、前記非安全層において、ビットエラーを含む前記非安全層データの内、ビットエラーを含む前記非安全層データとして検出される前記非安全層データの数の、前記非安全層に到達する前記非安全層データの総数である非安全層データ総数に対する割合である非安全層の検出エラー率に対する要求値を求め、
前記ビットエラー率に対する要求値と、前記安全層データの前記単位長さと、前記安全層データの検査に用いる巡回冗長検査の生成多項式のパラメータと、前記非安全層データの前記単位長さと、前記非安全層データの検査に用いる巡回冗長検査の生成多項式のパラメータとに基づいて、前記安全層において、ビットエラーを含む前記安全層データの内、ビットエラーを含む前記安全層データとして検出されない前記安全層データの数の、前記非安全層データ総数に対する割合である残存エラー率に対する要求値を求め、
前記破損なし確率に対する要求値と、前記非安全層の検出エラー率に対する要求値と、前記残存エラー率に対する要求値とに基づいて、前記安全層において、ビットエラーを含む前記安全層データの内、ビットエラーを含む前記安全層データとして検出される前記安全層データの数の、前記安全層に到達する前記安全層データの総数に対する割合である安全層の検出エラー率に対する要求値を求め、
前記要求エラーレートを、前記安全層の検出エラー率に対する要求値に、前記受信レートを掛けた値とする請求項１に記載の安全通信装置。
【請求項３】
前記閾値設定部が前記要求エラーレートを設定する際に用いる前記非安全層データの検査に用いる巡回冗長検査の生成多項式のパラメータが、前記非安全層において実際に使用されているか否かを検証するための検証データを受信した場合に、前記検証データに基づいて、前記非安全層データの検査に用いる巡回冗長検査の生成多項式のパラメータが、前記非安全層において実際に使用されているか否かを検証する整合性検証部を備える請求項１又は２に記載の安全通信装置。
【請求項４】
請求項１から３のいずれか１項に記載の安全通信装置と、
前記非安全ネットワークと
を備えた安全通信システム。
【請求項５】
データ通信の安全性を満たすことが保証されていない非安全ネットワークであって、非安全層を備える非安全ネットワークを経由した非安全層データに含まれるビットエラーを検出する非安全層エラー検出を行い、前記非安全層データにビットエラーが検出されなかった場合に、前記非安全層データを安全層データに変換して安全層に転送する前記非安全層から、前記安全層データを受信する前記安全層を有し、前記非安全層は巡回冗長検査を用いて前記非安全層データを検査し、前記安全層は巡回冗長検査を用いて前記安全層データを検査する安全通信装置による安全通信方法であって、
安全プロトコルデータユニット検査部が、前記安全層データに含まれるビットエラーを検出する安全層エラー検出を行い、
安全層パラメータ取得部が、単位時間当たりに受信する前記安全層データの受信レートと、前記安全層データの検査に用いる巡回冗長検査の生成多項式のパラメータとを取得し、
非安全層パラメータ取得部が、前記非安全層データの検査に用いる巡回冗長検査の生成多項式のパラメータを取得し、
閾値設定部が、前記非安全ネットワークにおけるデータ通信時の１ビットあたりのエラー発生確率の上限として要求するビットエラー率に対する要求値と、前記受信レートと、前記安全層データの検査に用いる巡回冗長検査の生成多項式のパラメータと、前記非安全層データの検査に用いる巡回冗長検査の生成多項式のパラメータとに基づいて、前記単位時間当たりに受信する前記安全層データのうち、ビットエラーを含む安全層データの数の上限として要求する要求エラーレートを設定し、
安全監視制御部が、前記安全層エラー検出によって検出されたビットエラーを含む安全層データの数と、前記要求エラーレートとを比較し、比較結果に基づいて安全制御を行う安全通信方法。
【請求項６】
データ通信の安全性を満たすことが保証されていない非安全ネットワークであって、非安全層を備える非安全ネットワークを経由した非安全層データに含まれるビットエラーを検出する非安全層エラー検出を行い、前記非安全層データにビットエラーが検出されなかった場合に、前記非安全層データを安全層データに変換して安全層に転送する前記非安全層から、前記安全層データを受信する前記安全層を有し、前記非安全層は巡回冗長検査を用いて前記非安全層データを検査し、前記安全層は巡回冗長検査を用いて前記安全層データを検査するコンピュータである安全通信装置に、
前記安全層データに含まれるビットエラーを検出する安全層エラー検出を行わせ、
単位時間当たりに受信する前記安全層データの受信レートと、前記安全層データの検査に用いる巡回冗長検査の生成多項式のパラメータとを取得させ、
前記非安全層データの検査に用いる巡回冗長検査の生成多項式のパラメータを取得させ、
前記非安全ネットワークにおけるデータ通信時の１ビットあたりのエラー発生確率の上限として要求するビットエラー率に対する要求値と、前記受信レートと、前記安全層データの検査に用いる巡回冗長検査の生成多項式のパラメータと、前記非安全層データの検査に用いる巡回冗長検査の生成多項式のパラメータとに基づいて、前記単位時間当たりに受信する前記安全層データのうち、ビットエラーを含む安全層データの数の上限として要求する要求エラーレートを設定させ、
前記安全層エラー検出によって検出されたビットエラーを含む安全層データの数と、前記要求エラーレートとを比較し、比較結果に基づいて安全制御を行わせる安全通信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、安全通信装置、安全通信システム、安全通信方法、及び、安全通信プログラムに関する。
【背景技術】
【０００２】
特許文献１に、規定の残存エラー率を達成するために、既定の残存エラー率と、ビットエラー率の閾値（ビットエラー率要求値）とを対応させることにより、安全通信を実現するシステムに関する技術が開示されている。【０００３】
背景技術のシステムでは、ビットエラー率がパラメータにより指定される閾値を超えた場合に、フェールセーフ動作を開始する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許第６９０７５４２号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、背景技術を、規格等により要求される安全度水準等の安全性を満たすことが保証されていないネットワークであるブラックチャネルを用いた通信に適用する場合に、ブラックチャネルにおいて、ビットエラーを検出し、ビットエラーを有するブラックチャネルＰＤＵ（Ｐｒｏｔｏｃｏｌ  Ｄａｔａ  Ｕｎｉｔ）を廃棄するとき、安全ＰＤＵの破損検出回数が閾値を超えた場合に、フェールセーフ動作を行うようにすると、ブラックチャネルのビットエラー率が要求値を満たすことを保証できないという課題があった。【０００６】
本発明は、規格等により要求される安全度水準等のデータ通信に関する安全性を満たすことが保証されていないネットワークを用いる通信において、ネットワークがデータ通信に関する安全性を満たすか否かを判断し、ネットワークがデータ通信に関する安全性を満たさない場合に、安全制御を行うことを目的とする。
【課題を解決するための手段】
【０００７】
本発明の安全通信装置は、
データ通信の安全性を満たすことが保証されていない非安全ネットワークであって、非安全層を備える非安全ネットワークを経由した非安全層データに含まれるビットエラーを検出する非安全層エラー検出を行い、前記非安全層データにビットエラーが検出されなかった場合に、前記非安全層データを安全層データに変換して安全層に転送する前記非安全層から、前記安全層データを受信する前記安全層を有し、前記非安全層は巡回冗長検査を用いて前記非安全層データを検査し、前記安全層は巡回冗長検査を用いて前記安全層データを検査する安全通信装置であって、
前記安全層データに含まれるビットエラーを検出する安全層エラー検出を行う安全プロトコルデータユニット検査部と、
単位時間当たりに受信する前記安全層データの受信レートと、前記安全層データの検査に用いる巡回冗長検査の生成多項式のパラメータとを取得する安全層パラメータ取得部と、
前記非安全層データの検査に用いる巡回冗長検査の生成多項式のパラメータを取得する非安全層パラメータ取得部と、
前記非安全ネットワークにおけるデータ通信時の１ビットあたりのエラー発生確率の上限として要求するビットエラー率に対する要求値と、前記受信レートと、前記安全層データの検査に用いる巡回冗長検査の生成多項式のパラメータと、前記非安全層データの検査に用いる巡回冗長検査の生成多項式のパラメータとに基づいて、前記単位時間当たりに受信する前記安全層データのうち、ビットエラーを含む安全層データの数の上限として要求する要求エラーレートを設定する閾値設定部と、
前記安全層エラー検出によって検出されたビットエラーを含む安全層データの数と、前記要求エラーレートとを比較し、比較結果に基づいて安全制御を行う安全監視制御部と
を備える。
【発明の効果】
【０００８】
この発明の安全通信装置によれば、データ通信に関する安全性を満たすことが保証されていない非安全ネットワークを用いる通信において、非安全ネットワークにおけるデータ通信時の１ビットあたりのエラー発生確率の上限として要求するビットエラー率に対する要求値と、単位時間当たりに安全通信装置が受信する安全層データの受信ビットレートとに基づいて、単位時間当たりに受信する安全層データに含まれるビットエラーの数である単位時間エラー検出数の上限として要求する要求エラーレートを設定し、単位時間エラー検出数と、要求エラーレートとを比較し、比較結果に基づいて安全制御を行うことができる。
【図面の簡単な説明】
【０００９】
【図１】安全通信の模式図。
【図２】安全ＰＤＵとブラックチャネルＰＤＵとの模式図。
【図３】安全層における安全ＰＤＵの検出率についての仮想的な例を示す表。
【図４】安全層と非安全層とにおける安全ＰＤＵの検出率についての仮想的な例を示す表。
【図５】実施の形態１に係る安全通信装置のハードウェア構成図。
【図６】実施の形態１に係る安全マスタプログラム１２０のソフトウェア構成図。
【図７】実施の形態１に係る安全スレーブプログラム２２０のソフトウェア構成図。
【図８】実施の形態１に係る安全マスタ１０の動作を示すフローチャート。
【図９】記号定義を示す表。
【図１０】記号定義を示す表。
【図１１】実施の形態２に係る安全マスタプログラム１２０のソフトウェア構成図。
【図１２】実施の形態２に係る安全スレーブプログラム２２０のソフトウェア構成図。
【発明を実施するための形態】
【００１０】
実施の形態１．
以下、本実施の形態について、図面を参照しながら詳細に説明する。
【００１１】
＊＊＊背景の説明＊＊＊
フィールドバスの機能安全に関する要求事項を定めた国際規格であるＩＥＣ（Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｅｌｅｃｔｒｏｔｅｃｈｎｉｃａｌ  Ｃｏｍｍｉｓｓｉｏｎ）  ６１７８４−３は、安全通信に対して、残存エラーレートが、安全度水準（ＳＩＬ（Ｓａｆｅｔｙ  Ｉｎｔｅｇｒｉｔｙ  Ｌｅｖｅｌ））毎に定められた基準値未満となるよう、データ破損等の通信エラーへの対策を講じることを要求している。破損は、データにビットエラーが含まれることを意味する。レートは、通信データに関連する値であって、単位時間あたりの累積値を意味する。データ破損は、通信データが破損すること、又は、ビットエラーを含むＰＤＵ（Ｐｒｏｔｏｃｏｌ  Ｄａｔａ  Ｕｎｉｔ）を指す。
【００１２】
図１は、安全通信の模式図である。
安全通信は、本図に示すような、安全層と、規格等により要求される安全度水準等の安全性を満たすことが保証されていないネットワークであるブラックチャネルとにより行われる通信である。
安全層は、データを送受信する端末等の、通信処理を行う層である。
安全通信装置は、安全層を有する。なお、安全通信装置は、安全通信装置以外の端末等と通信を行っても良い。
ブラックチャネルは、安全層の下に位置する一般通信用の通信レイヤであり、非安全層と、バス又はネットワーク等とから成る。
なお、便宜上、安全層と、ブラックチャネルとのインタフェース部分であり、ブラックチャネル側に位置する、通信エラー検査を行う層を、非安全層と呼ぶ。
層、又は、レイヤは、通信に関する機能を分類した場合における、それぞれの分類の機能を実現するソフトウェア及びハードウェアに対応する。
【００１３】
安全通信は、マスタ・スレーブ方式を採用しても良い。マスタ・スレーブ方式を採用する場合、安全マスタ側と、安全スレーブ側とがエンドポイントとなる。
【００１４】
安全層からブラックチャネルに安全ＰＤＵが送信された場合、ブラックチャネルにおいて、ブラックチャネルＰＤＵが転送される。
安全層がブラックチャネルに送信する１単位のデータを、安全ＰＤＵと呼ぶ。非安全層がブラックチャネルに送信する１単位のデータを、ブラックチャネルＰＤＵと呼ぶ。
【００１５】
図２は、安全ＰＤＵと、ブラックチャネルＰＤＵとの関係を示す図である。
本図に示すように、安全ＰＤＵは、ブラックチャネルＰＤＵにカプセル化されている。
なお、本図に示す安全ＰＤＵと、ブラックチャネルＰＤＵとは、ＣＲＣにより検査される。しかし、安全ＰＤＵと、ブラックチャネルＰＤＵとは、ＣＲＣにより検査されなくても良く、この場合、安全ＰＤＵとブラックチャネルＰＤＵとは、ＣＲＣ用の検査データを有さない。安全ヘッダは、安全ＰＤＵのヘッダであり、安全ＣＲＣは、安全ＰＤＵを検査するための検査用データである。
【００１６】
安全層は、
データの送信時に、通信エラーを検出するために、ＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ）用の検査データ等の保護情報をデータに付加して安全ＰＤＵを生成し、
データの受信時に、安全ＰＤＵの保護情報を利用して通信エラーを検出する。
【００１７】
非安全層は、
安全層がデータを送信する場合に、通信エラーを検出するために、ＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ）用の検査データ等の保護情報を安全ＰＤＵに付加してブラックチャネルＰＤＵを生成し、
安全層がデータを受信する場合に、ブラックチャネルＰＤＵの保護情報を利用して通信エラーを検出する。
【００１８】
安全通信の設計にあたり、具体例としては、安全性確保のため、安全通信に使用するブラックチャネルにおけるビットエラー率が、１０＾−４未満となること等の要求を満たすことを保証することを要求するニーズがある。ビットエラー率は、残存エラーレートに影響を与えるパラメータの一つであるため、ビットエラー率が低いことが保証される場合、残存エラーレートが低いことが保証される。
ビットエラー率は、Ｂｉｎａｒｙ  Ｓｙｍｍｅｔｒｉｃ  Ｃｈａｎｎｅｌモデルに基づいた１ビットあたりの破損確率である。このモデルにおいて、全てのビットのビットエラーが発生する確率は、ビット値を問わず、等しい。
【００１９】
このニーズに対し、背景技術として、安全通信の実施中にデータ破損に関する測定値が閾値を超えた場合に、被害を最小限に抑えるフェールセーフ動作を開始する技術が、開示されている。この測定値として、データ破損の検出回数を用いることが示唆されている。データ破損に関する測定値とは、データ破損に関連する、測定可能な値のことである。
以下、単に閾値と記載してある場合、安全状態への遷移に関する閾値を指す。安全状態は、安全通信装置が、フェールセーフ動作等、安全性が考慮された動作をしている状態のことである。
【００２０】
安全通信に使用するブラックチャネルは、多くのケースにおいて、非安全層においてデータ破損の有無の検査と、エラー検出したパケットの廃棄とを行う、Ｅｔｈｅｒｎｅｔ（登録商標）、又は、シリアルバス等を用いたフィールドネットワークである。このようなケースでは、ビットエラーを含む安全ＰＤＵの多くが安全層に配送される前に廃棄されるため、安全層におけるデータ破損の検出回数が、実態よりも少なくなってしまう。
【００２１】
従って、安全層が背景技術を採用した場合、ビットエラー率が要求の上限値を超えているときに、安全層におけるデータ破損の検出回数が閾値を超えないことがあるため、フェールセーフ動作が開始されないリスクがある。
即ち、背景技術は、ブラックチャネルがエラー検出機能を有する場合に、ビットエラー率が要求を満たすことを保証できない。
【００２２】
この問題への対策として、安全層ではなく、ブラックチャネルにおけるデータ破損の検出回数に基づいて閾値を設定することが考えられる。しかし、ブラックチャネルは、一般的に、安全層と異なりフェールセーフ設計されていない。そのため、ブラックチャネルにおける測定値は、必ずしも信頼できないという問題がある。
【００２３】
別の対策として、安全層が送信した安全ＰＤＵの数と、安全層が受信し、データ破損が検出されなかった安全ＰＤＵの数との差分から、ブラックチャネルにおけるデータ破損を含めた、データ破損の検出回数を求めることが考えられる。
この対策では、
ブラックチャネルにおける測定値に関する信頼性は問題とならないが、
データ破損だけでなく、ブラックチャネルにおいて喪失した安全ＰＤＵも検出回数に含めてしまうため、フェールセーフ動作が過剰に発生してしまい、システムの可用性が低下する問題が生じる。
【００２４】
以上のことから、背景技術のみでは、エラー検出機能を有するブラックチャネルを用いて安全通信を行う場合に、ビットエラー率が要求を満たすことを保証できない。
【００２５】
そこで、ブラックチャネルがエラー検出機能を有している場合に、安全層におけるデータ破損の検出回数に基づいて、ビットエラー率が要求を満たすことを保証する、適切な閾値を設定する必要がある。
＊＊＊解決策の説明＊＊＊
【００２６】
安全層におけるデータ破損に関する測定値が閾値を超えた場合に安全状態に遷移する点は背景技術と同様とし、安全状態に遷移するための閾値を、安全層におけるエラー検出機能に関するパラメータに加えて、ブラックチャネルにおけるエラー検出機能に関するパラメータを用いることにより、ブラックチャネルにおけるエラー検出機能に応じて適切な値に設定する方法が、解決策として挙げられる。
【００２７】
比較のため、安全層に背景技術をそのまま適用したときの閾値設定について説明する。背景技術では、安全ＰＤＵの長さと、安全層のＣＲＣ多項式とに基づいて、ビットエラー率に対する要求値に対応する安全ＰＤＵの検出率を求める方法が、示唆されている。
ここで、検出率とは、ビットエラーを含む全ての安全ＰＤＵに対する、データ破損が検出されるビットエラーを含む安全ＰＤＵの割合のことである。不検出率とは、ビットエラーを含む全ての安全ＰＤＵに対する、データ破損が検出されないビットエラーを含む安全ＰＤＵの割合のことである。
ビットエラー率に対する要求値とは、
ビットエラー率等がある値以下であることを要求されている場合には、当該ある値を指し、
ビットエラー率等がある値未満であることを要求されている場合には、当該ある値を指す。
また、以下、ビットエラー率に対する要求値に基づいて算出した値を、要求値という用語を用いて表現する。
【００２８】
図３は、安全ＰＤＵの検出率についての、仮想的な例を示す表である。
本図の分類欄において、破損なしと、破損ありとに続けてパーセント表記してある数字は、ビットエラー率から求めた、それぞれ、安全ＰＤＵがビットエラーを含まない確率と、安全ＰＤＵがビットエラーを含む確率とである。１の安全ＰＤＵのサイズは、具体例として、１００ｂｉｔである。
本図の検査結果欄において、検出と、不検出とに続けてパーセント表記してある数字は、それぞれ、安全層における、検出率と、不検出率とである。
【００２９】
本例において、背景技術をそのまま適用した安全層は、安全ＰＤＵの総数のうち０．９９９％がデータ破損として検出されるため、０．９９９％に基づいて閾値を設定する。データ破損に関する測定値がこの閾値を超えた場合、ビットエラー率が要求を満たしていないことが推察されるため、安全通信装置は、フェールセーフ動作を開始させる。
【００３０】
解決策を適用したときの、閾値を設定する方法について説明する。
解決策においては、ブラックチャネルにおけるエラー検出を考慮して、最終的に安全層に配送される安全ＰＤＵの安全層における検出率であって、ビットエラー率に対する要求値に対応する検出率を求め、閾値を設定する。
【００３１】
図４は、安全ＰＤＵの検出率についての、仮想的な例を示す表である。
本図の検査結果欄の非安全層欄において、検出と、不検出とに続けてパーセント表記してある数字は、それぞれ、非安全層における、検出率と、不検出率とである。
【００３２】
この例では、非安全層において、ビットエラーを含む安全ＰＤＵ全体の９９％（全体の０．９９％）が検出・廃棄され、ビットエラーを含む安全ＰＤＵ全体の１％（全体の０．０１％）が安全層に配送される。安全層における検出率は、元の例の０．９９９％ではなく、０．００９９％である。本解決策では、０．００９９％に基づいて閾値を設定する。
【００３３】
上記の例において、非安全層と、安全層とでの検出率を単純化して例示した。実際には、非安全層における検出率と、安全層における検出率とには、下記のような数学的関係がある。最終的な安全層におけるデータ破損の検出率の求め方については、後述する。
・非安全層と、安全層とにおける検出率は、ＰＤＵの長さ、及び、使用する多項式等のパラメータによって決まる。従って、これらのパラメータが変化した場合、検出率は変化する。
・安全層における検出率は、安全層におけるパラメータだけでなく、非安全層におけるパラメータによっても変化する。つまり、安全層における検出率は、非安全層における不検出率と、安全層単体における検出率との単純な積ではない。
【００３４】
＊＊＊構成の説明＊＊＊
図５は、本実施の形態に係る安全通信装置のハードウェア構成図である。
本図に示すように、安全通信装置は、一般的なコンピュータにより構成される。
【００３５】
本実施の形態に係る安全通信装置を用いて、マスタ・スレーブ方式による安全通信システムを実現しなくても良い。しかし、説明の便宜上、本実施の形態に係る安全通信装置により、マスタ・スレーブ方式による安全通信システムを実現した場合について説明する。
なお、安全通信装置という用語は、安全マスタ１０と、安全スレーブ２０との総称でもある。
【００３６】
本実施の形態に係る安全通信システムは、１以上の安全マスタ１０と、１以上の安全スレーブ２０とから構成される。これらの中の１の安全マスタ１０と、１の安全スレーブ２０とが、１対１の安全コネクション（安全通信に用いる論理的なコネクション）を作成し、安全通信を行う。
【００３７】
安全マスタ１０と、安全スレーブ２０とは、
フィールドネットワーク５０２を通じて接続されており、
フィールドネットワーク５０２を介して通信を行う。
【００３８】
本実施の形態に係る安全通信装置を用いてマスタ・スレーブ方式による安全通信システムを実現しない場合、安全通信装置の動作及び構成は、安全スレーブ２０との連携に関する部分を除いて、安全マスタ１０と同様である。
【００３９】
安全マスタ１０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１、メモリ１０２、フィールド通信インタフェース１０４、及び、それらを接続するバス１０５を備える。ＣＰＵ１０１は、メモリ１０２上に展開された、ソフトウェアである安全通信プログラムを実行することにより、フィールド通信インタフェース１０４を介して、対向する安全スレーブ２０と安全通信を行う。
安全層の機能は、安全通信プログラムにより実現される。
【００４０】
ＣＰＵ１０１は、バス１０５（信号線）を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
【００４１】
ＣＰＵ１０１は、安全マスタプログラム１２０、及びＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）等を実行するプロセッシング装置である。プロセッシング装置は、ＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）と呼ぶこともあり、ＣＰＵ１０１は、具体例としては、ＣＰＵ、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。ＣＰＵ１０１は、メモリ１０２に格納されたプログラムを読み出して実行する。
【００４２】
本図の安全マスタ１０は、ＣＰＵ１０１を１つだけ備えているが、安全マスタ１０及び安全スレーブ２０は、ＣＰＵ１０１を代替する複数のプロセッサを備えていても良い。これら複数のプロセッサは、安全通信プログラムの実行等を分担する。
【００４３】
メモリ１０２は、データを一時的に記憶する記憶装置であり、ＣＰＵ１０１の作業領域として使用されるメインメモリとして機能する。メモリ１０２は、具体例としては、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等のＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。メモリ１０２は、ＣＰＵ１０１の演算結果を保持する。
【００４４】
本図に示していないが、安全マスタ１０及び安全スレーブ２０は、記憶装置を備えても良い。記憶装置は、データを不揮発的に保管する記憶装置であり、ＯＳ、安全通信プログラム等を記憶する。記憶装置は、具体例としては、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）である。また、記憶装置は、メモリカード、ＳＤ（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ、登録商標）メモリカード、ＣＦ（Ｃｏｍｐａｃｔ  Ｆｌａｓｈ）、ＮＡＮＤフラッシュ、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ（登録商標）ディスク、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等の可搬記録媒体であってもよい。
【００４５】
安全スレーブ２０は、
安全マスタ１０と同様に、ＣＰＵ２０１、メモリ２０２、フィールド通信インタフェース２０４、及び、バス２０５を備え、
デバイス制御を行うための入出力インタフェース２０３を備えていても良い。
安全スレーブ２０の動作は、安全マスタ１０の動作と類似し、フィールド通信インタフェース２０４を介して、対向する安全マスタ１０と安全通信を行う。
【００４６】
図６は、本実施の形態に係る安全マスタプログラム１２０のソフトウェア構成図である。
本図に基づいて、安全マスタプログラム１２０の説明をする。安全マスタプログラム１２０は、安全マスタ１０において動作する。
【００４７】
安全通信プログラムは、安全マスタプログラム１２０と、安全スレーブプログラム２２０との総称でもある。安全通信プログラムは、独立したプログラムであっても良く、安全通信プログラムの機能の一部又は全部がＯＳ等に組み込まれていても良い。
なお、安全通信プログラムが通信データの検査にＣＲＣを用いることは具体例であり、安全通信プログラムは、他の方法により通信データを検査しても良い。
【００４８】
安全マスタ１０の安全層は、非安全層５０１と、フィールドネットワーク５０２とで構成されたブラックチャネルの上位において動作する通信アプリケーションである。
ブラックチャネルは、Ｅｔｈｅｒｎｅｔベースのフィールドネットワーク、又は、シリアルバスを用いたフィールドバス等の一般的な通信チャネルである。ブラックチャネルの構成は、特に限定されない。
【００４９】
安全アプリケーションインタフェース部１２１は、安全マスタ１０において動作する安全アプリケーションが安全スレーブ２０と交信する安全データを、安全アプリケーションと、安全マスタプログラム１２０とに受け渡す。
【００５０】
安全ＰＤＵ生成部１２２は、
安全アプリケーションにより送信を要求された安全データに、ＣＲＣ用の検査データ及び安全ヘッダの保護情報等を付加して安全ＰＤＵを生成し、
生成した安全ＰＤＵを、非安全層５０１を通じて送信する。
【００５１】
安全ＰＤＵ検査部１２３は、
非安全層５０１を介して安全マスタ１０が受信した安全ＰＤＵを受け取り、
受け取った安全ＰＤＵが含むＣＲＣ用の検査データ、及び、安全ヘッダに含まれる保護情報等を検査し、
受け取った安全ＰＤＵにエラーが検出されない場合、受け取った安全ＰＤＵを、安全アプリケーションインタフェース部１２１に渡す。
安全ＰＤＵ検査部１２３は、安全層データに含まれるビットエラーを検出する安全層エラー検出を行う。
安全ＰＤＵ検査部１２３は、安全プロトコルデータユニット検査部１２３の略記である。
【００５２】
非安全層データは、データ通信の安全性を満たすことが保証されていない非安全ネットワークであって、非安全層を備える非安全ネットワークを経由したデータのことである。
安全層データは、非安全層が非安全層データを変換したデータであって、非安全層が安全層に転送するデータである。
【００５３】
安全層パラメータ取得部１２５は、閾値設定に必要な安全層に関するパラメータを、具体例としては、安全マスタ１０のパラメータ領域等から取得する。
安全層パラメータ取得部１２５は、
単位時間当たりに受信する安全層データの受信ビットレートと、安全層エラー検出の特性に関する情報である安全層エラー検出特性とを取得し、
安全層エラー検出に用いる安全層データ検査パラメータを取得しても良い。
安全層エラー検出の特性に関する情報は、安全層データのエラー検出に何らかの関連がある情報である。
【００５４】
非安全層パラメータ取得部１２６は、閾値設定に必要な非安全層に関するパラメータを、具体例としては、安全マスタ１０のパラメータ領域等から取得する。
非安全層パラメータ取得部１２６は、
非安全層エラー検出の特性に関する情報である非安全層エラー検出特性を取得し、
非安全層エラー検出に用いる非安全層データ検査パラメータを取得しても良い。
非安全層エラー検出の特性に関する情報は、非安全層データのエラー検出に何らかの関連がある情報である。
【００５５】
閾値設定部１２７は、
ビットエラー率に対する要求値と、安全層パラメータ取得部１２５と、非安全層パラメータ取得部１２６とが取得したパラメータに基づいて、安全状態への遷移の契機となる閾値を算出し、
算出した閾値を、安全監視制御部１２４に設定する。
閾値設定部１２７は、非安全ネットワークにおけるデータ通信時の１ビットあたりのエラー発生確率の上限として要求するビットエラー率に対する要求値と、受信ビットレートと、安全層エラー検出特性と、非安全層エラー検出特性とに基づいて、単位時間当たりに受信する安全層データに含まれるビットエラーであって、安全ＰＤＵ検査部１２３が検出する安全層データに含まれるビットエラーの数である単位時間エラー検出数の上限として要求する要求エラーレートを設定する。
【００５６】
安全監視制御部１２４は、
安全ＰＤＵ検査部１２３が受信した安全ＰＤＵに対して行う検査の結果からデータ破損に関する測定値を求め、
データ破損に関する測定値が閾値設定部１２７が設定した閾値を超えた場合に、安全アプリケーションインタフェース部１２１に、安全状態への遷移を指示する。
安全監視制御部１２４は、単位時間当たりに受信する安全層データに含まれるビットエラーであって、単位時間エラー検出数と、要求エラーレートとを比較し、比較結果に基づいて安全制御を行う。
なお、要求エラーレートには、単位時間当たりに受信する安全層データのビットエラーレートに基づいて算出された値を含まれる。
【００５７】
図７は、本実施の形態に係る安全スレーブプログラム２２０のソフトウェア構成図である。
安全スレーブプログラム２２０は、安全スレーブ２０において動作する、安全通信プログラムである。
符号２２１〜２２４により表す部は、それぞれ、符号１２１〜１２４により表す部と同様である。
【００５８】
安全監視制御部２２４は、安全マスタ１０の閾値設定部１２７が生成した閾値に基づいて、データ破損に関する測定値が、閾値を越えないことを確認する。
このため、安全スレーブ２０は、
安全層パラメータ取得部１２５、非安全層パラメータ取得部１２６、及び、閾値設定部１２７に相当する部を備えず、
閾値管理部２２５を備える。
【００５９】
閾値管理部２２５は、
安全マスタ１０の閾値設定部１２７から閾値を受け取り、
この閾値を、安全監視制御部２２４に設定する。
【００６０】
安全マスタプログラム１２０と、安全スレーブプログラム２２０とのソフトウェア構成は、前述のものに限定されない。
安全スレーブプログラム２２０は、具体例として、安全マスタ１０と、安全スレーブ２０との役割分担が上記と異なることにより、安全層パラメータ取得部１２５、非安全層パラメータ取得部１２６、及び、閾値設定部１２７を備えていても良い。
【００６１】
＊＊＊動作の説明＊＊＊
図８は、安全マスタ１０の、安全通信に関する処理の流れを示すフローチャートである。ステップＳ０１からＳ０３までは、安全制御が開始される以前（安全通信の立ち上げ及び安全コネクションの確立処理中）に行われる処理であり、ステップＳ０４以降は、安全制御が開始されてから行われる処理である。
安全制御は、安全通信装置が、動作中に安全状態に遷移することが可能である制御のことである。
安全通信装置の動作手順は、安全通信方法に相当する。また、安全通信装置の動作を実現するプログラムは、安全通信プログラムに相当する。
【００６２】
（ステップＳ０１：安全層パラメータ取得処理）
安全層パラメータ取得部１２５は、下記を含む安全通信に関するパラメータを、安全マスタ１０の安全パラメータ領域等から取得する。多項式の丸括弧内のｘは、多項式の変数を表す。
・安全層におけるＣＲＣの生成多項式Ｇ１（ｘ）
・安全ＰＤＵのビット長ｎ１
・ブラックチャネルのビットエラー率に対する要求値Ｐｅ’
・安全層において１時間あたりに受信される安全ＰＤＵレートｖ
なお、安全層パラメータ取得部１２５は、ｖを取得しなくても良い。
【００６３】
（ステップＳ０２：非安全層パラメータ取得処理）
非安全層パラメータ取得部１２６が、下記を含む非安全層に関するパラメータを、安全マスタ１０の安全パラメータ領域等から取得する。
・非安全層におけるＣＲＣの生成多項式Ｇ２（ｘ）
・ブラックチャネルＰＤＵのビット長ｎ２（＞ｎ１）
【００６４】
（ステップＳ０３：閾値算出処理）
閾値設定部１２７は、ステップＳ０１及びＳ０２において取得したパラメータを用いて、閾値を算出する。閾値算出の詳細は、別途説明する。
閾値は、複数のデータ破損に関する測定値を組み合わせたものとしてもよい。
【００６５】
（ステップＳ０４：閾値設定処理）
閾値設定部１２７は、ステップＳ０３において算出した閾値を安全監視制御部１２４に設定する。
【００６６】
（ステップＳ０５：安全通信処理）
安全マスタプログラム１２０は、安全通信（安全データの交信）の開始に必要な安全コネクションの確立をし、安全通信を開始する。
【００６７】
（ステップＳ０６：データ破損に関する測定値算出処理）
安全ＰＤＵ検査部１２３は、受信した安全ＰＤＵの検査結果を安全監視制御部１２４に通知する。
安全監視制御部１２４は、下記の要素を含むデータ破損に関する測定値を求める。
・安全層におけるデータ破損検出件数
・安全層が受信したデータ破損検出なし安全ＰＤＵの件数
【００６８】
安全監視制御部１２４は、
直近の規定の長さの時間（例えば単位時間）によって定まる期間におけるデータ破損に関する測定値を求め、かつ、
長さが同じである期間におけるデータ破損に関する測定値を、対応づけて求めることが望ましい。
安全監視制御部１２４は、データ破損に関する測定値を継続的に求める。
【００６９】
（分岐Ｂ０１）
安全マスタ１０は、
ステップＳ０６において求めたデータ破損に関する測定値が閾値を越えている場合、ステップＳ０７の処理を実行し、
前記データ破損に関する測定値が閾値を越えていない場合、ステップＳ０８の処理を実行する。
【００７０】
（ステップＳ０７：制御継続処理）
安全監視制御部１２４は、ブラックチャネルのビットエラー率の実測値ＰｅがＰｅ’未満であると判断し、安全通信を継続する。
【００７１】
安全マスタ１０は、ステップＳ０６に遷移する。
【００７２】
（ステップＳ０８：安全状態遷移処理）
安全監視制御部１２４は、ＰｅがＰｅ’以上であると判断し、安全アプリケーションインタフェース部１２１に、安全状態への遷移を通知する。
【００７３】
安全アプリケーションインタフェース部１２１は、通知を受けて安全コネクションを切断するとともに、安全アプリケーションに安全状態への遷移を通知する。
【００７４】
また、安全マスタ１０によって安全コネクションが切断されることにより、安全スレーブ２０も安全状態へ遷移する。
【００７５】
安全スレーブ２０における処理は、
安全監視制御部２２４が、データ破損に関する測定値が閾値を超えているか否かを確認し、データ破損に関する測定値が閾値を超えている場合に、フェールセーフ動作を開始する動作については、安全マスタ１０における処理と同様であり、
ステップＳ０１からＳ０３までの処理が省略され、ステップＳ０４の閾値設定が、閾値管理部２２５によって行われる点が、安全マスタ１０における処理と異なる。
【００７６】
＊＊＊ステップＳ０３の動作の説明＊＊＊
ステップＳ０３の詳細について、以降で述べる。
【００７７】
図９は、数式１の解釈と、数式１の形式で用いられる記号の定義と等を示す表である。
具体例としては、Ｐ’ｅｆ，ＢＣは、「安全ＰＤＵが破損なしである事象が非安全層において観測される、安全ＰＤＵの１単位あたりの確率に対する要求値」を表す。
破損なしは、ＰＤＵがビットエラーを含まないことを表す。破損ありは、ＰＤＵがビットエラーを含むことを表す。
【００７８】
図１０は、以下で用いる記号の定義をまとめた表である。
【００７９】
［数式１］
ＸＹＺ，Ｕ
【００８０】
ステップＳ０３は、下記の５つのステップから構成される。ここでは、本実施の形態が実施可能であることを示すために、各ステップにおいて用いる式を記載する。
【００８１】
閾値算出の考え方を簡単に説明すると、閾値設定部１２７は、
ブラックチャネルにおけるビットエラー率に対する要求値と、非安全層においてエラー検出される安全ＰＤＵの割合と、安全層においてエラー検出されない安全ＰＤＵの割合とを考慮し、
安全層においてエラー検出される安全ＰＤＵの、非安全層に到達する全ての安全ＰＤＵの数に対する確率を算出し、
前記確率を用いて閾値を算出する。
【００８２】
（ステップＳ０３−１）
閾値設定部１２７は、数１に示すように、非安全層の破損なし確率に対する要求値（安全ＰＤＵが破損なしである事象が非安全層において観測される、安全ＰＤＵの１単位あたりの確率に対する要求値）Ｐ’ｅｆ，ＢＣを求める。
【００８３】
【数１】
0006987303.tif 000002
【００８４】
（ステップＳ０３−２）
閾値設定部１２７は、数式２に示すように、非安全層の検出エラー率に対する要求値（検出される破損が安全ＰＤＵに存在する事象が非安全層において観測される、安全ＰＤＵの１単位あたりの確率に対する要求値）Ｐ’ｄｅ，ＢＣを求める。
【００８５】
［数式２］
Ｐ’ｄｅ，ＢＣ  ＝  １．０−（Ｐ’ｅｆ，ＢＣ＋Ｐ’ｒｅ，ＢＣ）
【００８６】
Ｐ’ｅｆ，ＢＣは、ステップＳ０３−１で求めたものである。Ｐ’ｒｅ，ＢＣは、下記の通り求める。
ただし、Ａｉは、非安全層の多項式と、ブラックチャネルＰＤＵのビット長と等に応じて算出される。
【００８７】
【数２】
0006987303.tif 000003
【００８８】
（ステップＳ０３−３）
閾値設定部１２７は、数３に示すように、安全層の残存エラー率に対する要求値（安全層の下位に正常に動作するブラックチャネルがあると仮定したときに、検出されない破損が存在する事象が安全ＰＤＵに存在する事象が安全層で観測される、安全ＰＤＵの１単位あたりの確率に対する要求値）Ｐ’ｒｅ，ＳＣＬ｜ＢＣを求める。
【００８９】
Ｐ’ｒｅ，ＳＣＬ｜ＢＣは、非安全層と、安全層とにおいて、非安全層に到達する安全ＰＤＵ全体に対する、データ破損が検出されない安全ＰＤＵの割合である。
ただし、Ａｉ’は、非安全層の多項式と、ブラックチャネルＰＤＵのビット長と、安全層の多項式と、安全ＰＤＵのビット長と等に応じて算出される。Ｐ’ｒｅ，ＳＣＬ｜ＢＣを算出する具体的な手法は、参考文献１等に記載されている。
【００９０】
【数３】
0006987303.tif 000004
【００９１】
［参考文献１］
Ｆ．Ｓｃｈｉｌｌｅｒ，“Ａｎａｌｙｓｉｓ  ｏｆ  Ｎｅｓｔｅｄ  ＣＲＣ  ｗｉｔｈ  Ａｄｄｉｔｉｏｎａｌ  Ｎｅｔ  Ｄａｔａ  ｂｙ  Ｍｅａｎｓ  ｏｆ  Ｓｔｏｃｈａｓｔｉｃ  Ａｕｔｏｍａｔａ  ｆｏｒ  Ｓａｆｅｔｙ−ｃｒｉｔｉｃａｌ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ”，２００８．
【００９２】
（ステップＳ０３−４）
閾値設定部１２７は、数式３に示すように、安全層の検出エラー率（安全層の下位に正常に動作するブラックチャネルがあると仮定したときに、検出される破損が安全ＰＤＵに存在する事象が安全層で観測される、安全ＰＤＵの１単位あたりの確率に対する要求値）Ｐ’ｄｅ，ＳＣＬ｜ＢＣを求める。
【００９３】
［数式３］
Ｐ’ｄｅ，ＳＣＬ｜ＢＣ  ＝  １．０−（Ｐ’ｅｆ，ＢＣ  ＋  Ｐ’ｄｅ，ＢＣ  ＋  Ｐ’ｒｅ，ＳＣＬ｜ＢＣ）
【００９４】
（ステップＳ０３−５）
閾値設定部１２７は、Ｐ’ｄｅ，ＳＣＬ｜ＢＣを用いて閾値を設定する。具体例としては、１時間あたりの安全層での検出エラーのレートをデータ破損に関する測定値としたい場合、下記に示すＲ’ｄｅ，ＳＣＬ｜ＢＣを閾値とする。
【００９５】
［数式４］
Ｒ’ｄｅ，ＳＣＬ｜ＢＣ  ＝  Ｐ’ｄｅ，ＳＣＬ｜ＢＣ  ×  ｖ
【００９６】
上記以外の閾値についての具体例としては、非安全層の破損なし確率に対する要求値と、安全層の検出エラー率との比率をデータ破損に関する測定値とする場合、Ｐ’ｅｆ，ＢＣと、Ｐ’ｄｅ，ＳＣＬ｜ＢＣとの比を閾値としても良い。
【００９７】
なお、ビットエラーレートと、要求エラーレートとの比較は、
ビットエラーレートと、要求エラーレートとを直接的に比較することのみならず、
ビットエラーレートを用いて算出した値と、要求エラーレートを用いて算出した値との比較等、間接的な比較を含む。
【００９８】
なお、上記のステップＳ０３−２及びステップＳ０３−３の処理は、一般に計算量が多い。そのため、具体例としては、計算機上やクラウド上のツールで事前に計算された、Ｐ’ｄｅ，ＢＣと、Ｐ’ｒｅ，ＳＣＬ｜ＢＣとを用いることも考えられる。また、あらかじめ特定の安全層と、非安全層との組合せを想定し、あらかじめ計算してプログラムに組み込んだ閾値を用いても良い。
【００９９】
＊＊＊実施の形態１の特徴＊＊＊
本実施の形態に係る安全通信装置は、
データ通信の安全性を満たすことが保証されていない非安全ネットワークであって、非安全層５０１を備える非安全ネットワークを経由した非安全層データに含まれるビットエラーを検出する非安全層エラー検出を行い、非安全層データにビットエラーが検出されなかった場合に、非安全層データを安全層データに変換して安全層に転送する非安全層５０１から、安全層データを受信する安全層を有する安全通信装置であって、
安全層データに含まれるビットエラーを検出する安全層エラー検出を行う安全ＰＤＵ検査部１２３と、
単位時間当たりに受信する安全層データの受信ビットレートと、安全層エラー検出の特性に関する情報である安全層エラー検出特性とを取得する安全層パラメータ取得部１２５と、
非安全層エラー検出の特性に関する情報である非安全層エラー検出特性を取得する非安全層パラメータ取得部１２６と、
非安全ネットワークにおけるデータ通信時の１ビットあたりのエラー発生確率の上限として要求するビットエラー率に対する要求値と、受信ビットレートと、安全層エラー検出特性と、非安全層エラー検出特性とに基づいて、単位時間当たりに受信する安全層データに含まれるビットエラーであって、安全ＰＤＵ検査部１２３が検出する安全層データに含まれるビットエラーの数である単位時間エラー検出数の上限として要求する要求エラーレートを設定する閾値設定部１２７と、
単位時間エラー検出数と、要求エラーレートとを比較し、比較結果に基づいて安全制御を行う安全監視制御部１２４とを備える。
【０１００】
本実施の形態に係る安全層パラメータ取得部１２５は、安全層エラー検出に用いる安全層データ検査パラメータを取得し、
本実施の形態に係る非安全層パラメータ取得部１２６は、非安全層エラー検出に用いる非安全層データ検査パラメータを取得し、
本実施の形態に係る閾値設定部１２７は、要求エラーレートを設定する際に、非安全層データ検査パラメータと、安全層データ検査パラメータとを用いる。
【０１０１】
本実施の形態に係る安全通信装置は、
非安全層データの検査と、安全層データの検査とに巡回冗長検査を用いる場合に、
安全層パラメータ取得部１２５は、安全層データの送信単位から定まる単位長さと、安全層データ検査パラメータとして、安全層データの検査に用いる巡回冗長検査の生成多項式のパラメータとを取得し、
非安全層パラメータ取得部１２６は、非安全層データの単位長さと、非安全層データ検査パラメータとして、非安全層データの検査に用いる巡回冗長検査の生成多項式のパラメータとを取得し、
閾値設定部１２７は、
ビットエラー率に対する要求値と、非安全層データの単位長さとに基づいて、非安全層データが破損していない確率である破損なし確率に対する要求値を求め、
破損なし確率に対する要求値と、ビットエラー率に対する要求値と、非安全層データの単位長さと、安全層データ検査パラメータとに基づいて、非安全層において、ビットエラーを含む非安全層データの内、ビットエラーを含む非安全層データとして検出される非安全層データの数の、非安全層に到達する非安全層データの総数である非安全層データ総数に対する割合である検出エラー率に対する要求値を求め、
ビットエラー率に対する要求値と、検出エラー率に対する要求値と、安全層データの単位長さと、安全層データ検査パラメータと、前記非安全層データの前記単位長さと、前記非安全層データ検査パラメータとに基づいて、安全層において、ビットエラーを含む安全層データの内、ビットエラーを含む安全層データとして検出される安全層データの数の、非安全層データ総数に対する割合である残存エラー率に対する要求値を求め、
要求エラーレートを、残存エラー率に対する要求値に、受信ビットレートを掛けた値とする。
【０１０２】
本実施の形態に係る安全通信システムは、安全通信装置と、非安全ネットワークとを備える。
【０１０３】
＊＊＊実施の形態１の効果の説明＊＊＊
以上のように、実施の形態１の安全通信装置は、ブラックチャネルを用いる通信において、
ブラックチャネルにおけるビットエラー率に対する要求値と、ブラックチャネルの非安全層のパラメータと、安全層のパラメータとに基づいて、前記要求値に対応する閾値を閾値設定部１２７が設定し、
安全通信装置が受信する安全ＰＤＵが前記閾値を満たさない場合に、前記要求値を満たさないと判断し、安全状態に遷移する。
【０１０４】
＜変形例１＞
本実施の形態では、安全通信装置の各機能をソフトウェアで実現する場合を説明した。しかし、変形例として、前記各機能は、ハードウェアにより実現されても良い。
【０１０５】
前記各機能がハードウェアにより実現される場合には、安全マスタ１０及び安全スレーブ２０は、ＣＰＵ１０１に代えて、電子回路（処理回路）を備える。あるいは、安全マスタ１０及び安全スレーブ２０は、ＣＰＵ１０１、及び、メモリ１０２に代えて、電子回路を備える。電子回路は、前記各機能（及びメモリ１０２）を実現する専用の電子回路である。
【０１０６】
電子回路は、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックＩＣ、ＧＡ（Ｇａｔｅ  Ａｒｒａｙ）、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）が想定される。
【０１０７】
前記各機能を１つの電子回路で実現してもよいし、前記各機能を複数の電子回路に分散させて実現してもよい。
【０１０８】
あるいは、一部の前記各機能がハードウェアで実現され、他の前記各機能がソフトウェアで実現されてもよい。
【０１０９】
前述したＣＰＵ１０１とメモリ１０２と電子回路とを、総称して「プロセッシングサーキットリー」という。つまり、前記各機能は、プロセッシングサーキットリーにより実現される。
【０１１０】
実施の形態２．
以下、前述した実施の形態と異なる点について、図面を参照しながら説明する。
【０１１１】
＊＊＊構成の説明＊＊＊
図１１は、本実施の形態に係る安全マスタ１０のソフトウェア構成図である。図１２は、本実施の形態に係る安全スレーブ２０のソフトウェア構成図である。
本実施の形態に係る安全マスタ１０は、図１１に示すように、整合性検証部１２８を備える。本実施の形態に係る安全スレーブ２０は、図１２に示すように、整合性検証部２２６を備える。
【０１１２】
整合性検証部１２８及び整合性検証部２２６は、非安全層パラメータ取得後に、安全通信システムのブラックチャネルの機器が交換される等の理由により、ブラックチャネルにおいて使用されるデータ破損に関する検査の方式が変化している場合、検査方式の変化を検出する。
【０１１３】
安全マスタ１０は、かかる場合に、この検出をしないと、閾値を設定する際の前提が崩れているために、安全性を担保できない。従って、整合性検証部１２８及び整合性検証部２２６は、安全性を担保するために、非安全層のパラメータを確認する。
【０１１４】
＊＊＊動作の説明＊＊＊
本実施の形態に係る安全通信装置は、ステップＳ０２と、ステップＳ０３との間において、ステップＳ０２−２の処理を実行する。ステップＳ０２−２の処理は、非安全層において使用されている多項式が、非安全層のパラメータと一致しているか否かを検証するものである。
【０１１５】
（ステップＳ０２−１：非安全層パラメータ取得処理）
前述のステップＳ０２と同じである。
【０１１６】
（ステップＳ０２−２：整合性検証処理）
整合性検証部１２８は、
検査用の安全ＰＤＵ（検証ＰＤＵ）を生成し、
非安全層５０１を介して、安全スレーブ２０の安全層に対して送信する。
【０１１７】
なお、この検証ＰＤＵは、安全制御に使用されないことを担保するため、ヘッダ等により、安全制御用のＰＤＵと明確に区別可能とされることが望ましい。
【０１１８】
整合性検証部２２６は、
検証ＰＤＵを受信する場合、非安全層５０１が検証ＰＤＵを廃棄していないことから、非安全層５０１のパラメータと、安全マスタ１０が非安全層５０１のパラメータとして有しているパラメータとが整合していると判断し、
「パラメータ整合」を示す応答を安全マスタ１０に返す。
かかる場合、安全マスタ１０及び安全スレーブ２０は、安全通信システムの動作を継続する。
【０１１９】
整合性検証部２２６は、
検証ＰＤＵを受信しない場合、非安全層５０１におけるパラメータと、安全マスタ１０が非安全層５０１のパラメータとして有しているパラメータとが整合していないと判断し、
「パラメータ不整合」を示す応答を安全マスタ１０に返し、
かかる場合、安全マスタ１０及び安全スレーブ２０は、安全通信システムの起動を中止する。
このとき、安全マスタ１０及び安全スレーブ２０は、ユーザにブラックチャネルの不整合を通知しても良い。
【０１２０】
検証ＰＤＵは、具体例として、適切にＣＲＣ用の検査データを付加した安全ＰＤＵのペイロード部分を、前記ペイロード部分と、下記の数式６に対応するビットとの排他的論理和（ＸＯＲ）に置き換えたものである。ただし、Ｇ２（ｘ）は、数式６を満たさなければならない。
【０１２１】
この検証ＰＤＵは、
非安全層において、ＣＲＣによる検査によりエラー検出されず、
安全層において、ＣＲＣによる検査によりエラー検出される特性を有する。
【０１２２】
［数式５］
Ｇ２（ｘ）ｘｊ
【０１２３】
［数式６］
（Ｇ２（ｘ）の次数）＋ｊ＜（安全ＰＤＵのペイロードのビット長）
【０１２４】
安全通信システムは、検査を信頼できるものとするため、複数のパターンの検証ＰＤＵを用意し、検査を複数回実施することが望ましい。
【０１２５】
また、本ステップにおいて、前述のように検証ＰＤＵを生成する場合、整合性検証部１２８は、非安全層５０１がブラックチャネルＰＤＵを生成した後、即ち、非安全層５０１におけるＣＲＣの検査用データが適切に付加された後の安全ＰＤＵに対して、ビット反転等を起こすことにより、検証ＰＤＵを生成する。
このため、前述のように検証ＰＤＵを生成する場合、非安全層５０１は、整合性検証部１２８に対して、非安全層５０１のＰＤＵを書き換えるための手段を提供する。
【０１２６】
＊＊＊実施の形態２の特徴＊＊＊
本実施の形態に係る安全通信装置は、閾値設定部１２７が要求エラーレートを設定する際に用いる非安全層データ検査パラメータが、非安全層において実際に使用されているか否かを検証するための検証データ（検証ＰＤＵ）を受信した場合に、検証データに基づいて検証する整合性検証部１２８を備える。
【０１２７】
＊＊＊実施の形態２の効果の説明＊＊＊
以上のように、本実施の形態によれば、整合性検証部１２８は、安全通信装置が非安全層のパラメータとして有しているパラメータが、実際に非安全層において使用されているものであるか否かを検証するため、安全性を担保できる。
＊＊＊他の実施の形態＊＊＊
前述した各実施の形態の自由な組み合わせ、あるいは各実施の形態の任意の構成要素の変形、もしくは各実施の形態において任意の構成要素の省略が可能である。
【０１２８】
また、実施の形態は、実施の形態１から２で示したものに限定されるものではなく、必要に応じて種々の変更が可能である。
【符号の説明】
【０１２９】
１０  安全マスタ、２０  安全スレーブ、１０１  ＣＰＵ、１０２  メモリ、１０４  フィールド通信インタフェース、１０５  バス、１２０  安全マスタプログラム、１２１  安全アプリケーションインタフェース部、１２２  安全ＰＤＵ生成部、１２３  安全ＰＤＵ検査部、１２４  安全監視制御部、１２５  安全層パラメータ取得部、１２６  非安全層パラメータ取得部、１２７  閾値設定部、１２８  整合性検証部、２０１  ＣＰＵ、２０２  メモリ、２０３  入出力インタフェース、２０４  フィールド通信インタフェース、２０５  バス、２２０  安全スレーブプログラム、２２１  安全アプリケーションインタフェース部、２２２  安全ＰＤＵ生成部、２２３  安全ＰＤＵ検査部、２２４  安全監視制御部、２２５  閾値管理部、２２６  整合性検証部、５０１  非安全層、５０２  フィールドネットワーク。
【図１】
0006987303.tif 000005
【図２】
0006987303.tif 000006
【図３】
0006987303.tif 000007
【図４】
0006987303.tif 000008
【図５】
0006987303.tif 000009
【図６】
0006987303.tif 000010
【図７】
0006987303.tif 000011
【図８】
0006987303.tif 000012
【図９】
0006987303.tif 000013
【図１０】
0006987303.tif 000014
【図１１】
0006987303.tif 000015
【図１２】
0006987303.tif 000016