【文献】
Xiaomin Lv,et al.,A Sieving Method for the Optimization of Embedded CRC Codes,2012 IEEE International Conference on Information Science and Technology,2012年,p.560-566
(58)【調査した分野】(Int.Cl.,DB名)
データ通信の安全性を満たすことが保証されていない非安全ネットワークであって、非安全層を備える非安全ネットワークを経由した非安全層データに含まれるビットエラーを検出する非安全層エラー検出を行い、前記非安全層データにビットエラーが検出されなかった場合に、前記非安全層データを安全層データに変換して安全層に転送する前記非安全層から、前記安全層データを受信する前記安全層を有し、前記非安全層は巡回冗長検査を用いて前記非安全層データを検査し、前記安全層は巡回冗長検査を用いて前記安全層データを検査する安全通信装置であって、
前記安全層データに含まれるビットエラーを検出する安全層エラー検出を行う安全プロトコルデータユニット検査部と、
単位時間当たりに受信する前記安全層データの受信レートと、前記安全層データの検査に用いる巡回冗長検査の生成多項式のパラメータとを取得する安全層パラメータ取得部と、
前記非安全層データの検査に用いる巡回冗長検査の生成多項式のパラメータを取得する非安全層パラメータ取得部と、
前記非安全ネットワークにおけるデータ通信時の1ビットあたりのエラー発生確率の上限として要求するビットエラー率に対する要求値と、前記受信レートと、前記安全層データの検査に用いる巡回冗長検査の生成多項式のパラメータと、前記非安全層データの検査に用いる巡回冗長検査の生成多項式のパラメータとに基づいて、前記単位時間当たりに受信する前記安全層データのうち、ビットエラーを含む安全層データの数の上限として要求する要求エラーレートを設定する閾値設定部と、
前記安全層エラー検出によって検出されたビットエラーを含む安全層データの数と、前記要求エラーレートとを比較し、比較結果に基づいて安全制御を行う安全監視制御部と
を備える安全通信装置。
データ通信の安全性を満たすことが保証されていない非安全ネットワークであって、非安全層を備える非安全ネットワークを経由した非安全層データに含まれるビットエラーを検出する非安全層エラー検出を行い、前記非安全層データにビットエラーが検出されなかった場合に、前記非安全層データを安全層データに変換して安全層に転送する前記非安全層から、前記安全層データを受信する前記安全層を有し、前記非安全層は巡回冗長検査を用いて前記非安全層データを検査し、前記安全層は巡回冗長検査を用いて前記安全層データを検査する安全通信装置による安全通信方法であって、
安全プロトコルデータユニット検査部が、前記安全層データに含まれるビットエラーを検出する安全層エラー検出を行い、
安全層パラメータ取得部が、単位時間当たりに受信する前記安全層データの受信レートと、前記安全層データの検査に用いる巡回冗長検査の生成多項式のパラメータとを取得し、
非安全層パラメータ取得部が、前記非安全層データの検査に用いる巡回冗長検査の生成多項式のパラメータを取得し、
閾値設定部が、前記非安全ネットワークにおけるデータ通信時の1ビットあたりのエラー発生確率の上限として要求するビットエラー率に対する要求値と、前記受信レートと、前記安全層データの検査に用いる巡回冗長検査の生成多項式のパラメータと、前記非安全層データの検査に用いる巡回冗長検査の生成多項式のパラメータとに基づいて、前記単位時間当たりに受信する前記安全層データのうち、ビットエラーを含む安全層データの数の上限として要求する要求エラーレートを設定し、
安全監視制御部が、前記安全層エラー検出によって検出されたビットエラーを含む安全層データの数と、前記要求エラーレートとを比較し、比較結果に基づいて安全制御を行う安全通信方法。
データ通信の安全性を満たすことが保証されていない非安全ネットワークであって、非安全層を備える非安全ネットワークを経由した非安全層データに含まれるビットエラーを検出する非安全層エラー検出を行い、前記非安全層データにビットエラーが検出されなかった場合に、前記非安全層データを安全層データに変換して安全層に転送する前記非安全層から、前記安全層データを受信する前記安全層を有し、前記非安全層は巡回冗長検査を用いて前記非安全層データを検査し、前記安全層は巡回冗長検査を用いて前記安全層データを検査するコンピュータである安全通信装置に、
前記安全層データに含まれるビットエラーを検出する安全層エラー検出を行わせ、
単位時間当たりに受信する前記安全層データの受信レートと、前記安全層データの検査に用いる巡回冗長検査の生成多項式のパラメータとを取得させ、
前記非安全層データの検査に用いる巡回冗長検査の生成多項式のパラメータを取得させ、
前記非安全ネットワークにおけるデータ通信時の1ビットあたりのエラー発生確率の上限として要求するビットエラー率に対する要求値と、前記受信レートと、前記安全層データの検査に用いる巡回冗長検査の生成多項式のパラメータと、前記非安全層データの検査に用いる巡回冗長検査の生成多項式のパラメータとに基づいて、前記単位時間当たりに受信する前記安全層データのうち、ビットエラーを含む安全層データの数の上限として要求する要求エラーレートを設定させ、
前記安全層エラー検出によって検出されたビットエラーを含む安全層データの数と、前記要求エラーレートとを比較し、比較結果に基づいて安全制御を行わせる安全通信プログラム。
【発明を実施するための形態】
【0010】
実施の形態1.
以下、本実施の形態について、図面を参照しながら詳細に説明する。
【0011】
***背景の説明***
フィールドバスの機能安全に関する要求事項を定めた国際規格であるIEC(International Electrotechnical Commission) 61784−3は、安全通信に対して、残存エラーレートが、安全度水準(SIL(Safety Integrity Level))毎に定められた基準値未満となるよう、データ破損等の通信エラーへの対策を講じることを要求している。破損は、データにビットエラーが含まれることを意味する。レートは、通信データに関連する値であって、単位時間あたりの累積値を意味する。データ破損は、通信データが破損すること、又は、ビットエラーを含むPDU(Protocol Data Unit)を指す。
【0012】
図1は、安全通信の模式図である。
安全通信は、本図に示すような、安全層と、規格等により要求される安全度水準等の安全性を満たすことが保証されていないネットワークであるブラックチャネルとにより行われる通信である。
安全層は、データを送受信する端末等の、通信処理を行う層である。
安全通信装置は、安全層を有する。なお、安全通信装置は、安全通信装置以外の端末等と通信を行っても良い。
ブラックチャネルは、安全層の下に位置する一般通信用の通信レイヤであり、非安全層と、バス又はネットワーク等とから成る。
なお、便宜上、安全層と、ブラックチャネルとのインタフェース部分であり、ブラックチャネル側に位置する、通信エラー検査を行う層を、非安全層と呼ぶ。
層、又は、レイヤは、通信に関する機能を分類した場合における、それぞれの分類の機能を実現するソフトウェア及びハードウェアに対応する。
【0013】
安全通信は、マスタ・スレーブ方式を採用しても良い。マスタ・スレーブ方式を採用する場合、安全マスタ側と、安全スレーブ側とがエンドポイントとなる。
【0014】
安全層からブラックチャネルに安全PDUが送信された場合、ブラックチャネルにおいて、ブラックチャネルPDUが転送される。
安全層がブラックチャネルに送信する1単位のデータを、安全PDUと呼ぶ。非安全層がブラックチャネルに送信する1単位のデータを、ブラックチャネルPDUと呼ぶ。
【0015】
図2は、安全PDUと、ブラックチャネルPDUとの関係を示す図である。
本図に示すように、安全PDUは、ブラックチャネルPDUにカプセル化されている。
なお、本図に示す安全PDUと、ブラックチャネルPDUとは、CRCにより検査される。しかし、安全PDUと、ブラックチャネルPDUとは、CRCにより検査されなくても良く、この場合、安全PDUとブラックチャネルPDUとは、CRC用の検査データを有さない。安全ヘッダは、安全PDUのヘッダであり、安全CRCは、安全PDUを検査するための検査用データである。
【0016】
安全層は、
データの送信時に、通信エラーを検出するために、CRC(Cyclic Redundancy Check)用の検査データ等の保護情報をデータに付加して安全PDUを生成し、
データの受信時に、安全PDUの保護情報を利用して通信エラーを検出する。
【0017】
非安全層は、
安全層がデータを送信する場合に、通信エラーを検出するために、CRC(Cyclic Redundancy Check)用の検査データ等の保護情報を安全PDUに付加してブラックチャネルPDUを生成し、
安全層がデータを受信する場合に、ブラックチャネルPDUの保護情報を利用して通信エラーを検出する。
【0018】
安全通信の設計にあたり、具体例としては、安全性確保のため、安全通信に使用するブラックチャネルにおけるビットエラー率が、10^−4未満となること等の要求を満たすことを保証することを要求するニーズがある。ビットエラー率は、残存エラーレートに影響を与えるパラメータの一つであるため、ビットエラー率が低いことが保証される場合、残存エラーレートが低いことが保証される。
ビットエラー率は、Binary Symmetric Channelモデルに基づいた1ビットあたりの破損確率である。このモデルにおいて、全てのビットのビットエラーが発生する確率は、ビット値を問わず、等しい。
【0019】
このニーズに対し、背景技術として、安全通信の実施中にデータ破損に関する測定値が閾値を超えた場合に、被害を最小限に抑えるフェールセーフ動作を開始する技術が、開示されている。この測定値として、データ破損の検出回数を用いることが示唆されている。データ破損に関する測定値とは、データ破損に関連する、測定可能な値のことである。
以下、単に閾値と記載してある場合、安全状態への遷移に関する閾値を指す。安全状態は、安全通信装置が、フェールセーフ動作等、安全性が考慮された動作をしている状態のことである。
【0020】
安全通信に使用するブラックチャネルは、多くのケースにおいて、非安全層においてデータ破損の有無の検査と、エラー検出したパケットの廃棄とを行う、Ethernet(登録商標)、又は、シリアルバス等を用いたフィールドネットワークである。このようなケースでは、ビットエラーを含む安全PDUの多くが安全層に配送される前に廃棄されるため、安全層におけるデータ破損の検出回数が、実態よりも少なくなってしまう。
【0021】
従って、安全層が背景技術を採用した場合、ビットエラー率が要求の上限値を超えているときに、安全層におけるデータ破損の検出回数が閾値を超えないことがあるため、フェールセーフ動作が開始されないリスクがある。
即ち、背景技術は、ブラックチャネルがエラー検出機能を有する場合に、ビットエラー率が要求を満たすことを保証できない。
【0022】
この問題への対策として、安全層ではなく、ブラックチャネルにおけるデータ破損の検出回数に基づいて閾値を設定することが考えられる。しかし、ブラックチャネルは、一般的に、安全層と異なりフェールセーフ設計されていない。そのため、ブラックチャネルにおける測定値は、必ずしも信頼できないという問題がある。
【0023】
別の対策として、安全層が送信した安全PDUの数と、安全層が受信し、データ破損が検出されなかった安全PDUの数との差分から、ブラックチャネルにおけるデータ破損を含めた、データ破損の検出回数を求めることが考えられる。
この対策では、
ブラックチャネルにおける測定値に関する信頼性は問題とならないが、
データ破損だけでなく、ブラックチャネルにおいて喪失した安全PDUも検出回数に含めてしまうため、フェールセーフ動作が過剰に発生してしまい、システムの可用性が低下する問題が生じる。
【0024】
以上のことから、背景技術のみでは、エラー検出機能を有するブラックチャネルを用いて安全通信を行う場合に、ビットエラー率が要求を満たすことを保証できない。
【0025】
そこで、ブラックチャネルがエラー検出機能を有している場合に、安全層におけるデータ破損の検出回数に基づいて、ビットエラー率が要求を満たすことを保証する、適切な閾値を設定する必要がある。
***解決策の説明***
【0026】
安全層におけるデータ破損に関する測定値が閾値を超えた場合に安全状態に遷移する点は背景技術と同様とし、安全状態に遷移するための閾値を、安全層におけるエラー検出機能に関するパラメータに加えて、ブラックチャネルにおけるエラー検出機能に関するパラメータを用いることにより、ブラックチャネルにおけるエラー検出機能に応じて適切な値に設定する方法が、解決策として挙げられる。
【0027】
比較のため、安全層に背景技術をそのまま適用したときの閾値設定について説明する。背景技術では、安全PDUの長さと、安全層のCRC多項式とに基づいて、ビットエラー率に対する要求値に対応する安全PDUの検出率を求める方法が、示唆されている。
ここで、検出率とは、ビットエラーを含む全ての安全PDUに対する、データ破損が検出されるビットエラーを含む安全PDUの割合のことである。不検出率とは、ビットエラーを含む全ての安全PDUに対する、データ破損が検出されないビットエラーを含む安全PDUの割合のことである。
ビットエラー率に対する要求値とは、
ビットエラー率等がある値以下であることを要求されている場合には、当該ある値を指し、
ビットエラー率等がある値未満であることを要求されている場合には、当該ある値を指す。
また、以下、ビットエラー率に対する要求値に基づいて算出した値を、要求値という用語を用いて表現する。
【0028】
図3は、安全PDUの検出率についての、仮想的な例を示す表である。
本図の分類欄において、破損なしと、破損ありとに続けてパーセント表記してある数字は、ビットエラー率から求めた、それぞれ、安全PDUがビットエラーを含まない確率と、安全PDUがビットエラーを含む確率とである。1の安全PDUのサイズは、具体例として、100bitである。
本図の検査結果欄において、検出と、不検出とに続けてパーセント表記してある数字は、それぞれ、安全層における、検出率と、不検出率とである。
【0029】
本例において、背景技術をそのまま適用した安全層は、安全PDUの総数のうち0.999%がデータ破損として検出されるため、0.999%に基づいて閾値を設定する。データ破損に関する測定値がこの閾値を超えた場合、ビットエラー率が要求を満たしていないことが推察されるため、安全通信装置は、フェールセーフ動作を開始させる。
【0030】
解決策を適用したときの、閾値を設定する方法について説明する。
解決策においては、ブラックチャネルにおけるエラー検出を考慮して、最終的に安全層に配送される安全PDUの安全層における検出率であって、ビットエラー率に対する要求値に対応する検出率を求め、閾値を設定する。
【0031】
図4は、安全PDUの検出率についての、仮想的な例を示す表である。
本図の検査結果欄の非安全層欄において、検出と、不検出とに続けてパーセント表記してある数字は、それぞれ、非安全層における、検出率と、不検出率とである。
【0032】
この例では、非安全層において、ビットエラーを含む安全PDU全体の99%(全体の0.99%)が検出・廃棄され、ビットエラーを含む安全PDU全体の1%(全体の0.01%)が安全層に配送される。安全層における検出率は、元の例の0.999%ではなく、0.0099%である。本解決策では、0.0099%に基づいて閾値を設定する。
【0033】
上記の例において、非安全層と、安全層とでの検出率を単純化して例示した。実際には、非安全層における検出率と、安全層における検出率とには、下記のような数学的関係がある。最終的な安全層におけるデータ破損の検出率の求め方については、後述する。
・非安全層と、安全層とにおける検出率は、PDUの長さ、及び、使用する多項式等のパラメータによって決まる。従って、これらのパラメータが変化した場合、検出率は変化する。
・安全層における検出率は、安全層におけるパラメータだけでなく、非安全層におけるパラメータによっても変化する。つまり、安全層における検出率は、非安全層における不検出率と、安全層単体における検出率との単純な積ではない。
【0034】
***構成の説明***
図5は、本実施の形態に係る安全通信装置のハードウェア構成図である。
本図に示すように、安全通信装置は、一般的なコンピュータにより構成される。
【0035】
本実施の形態に係る安全通信装置を用いて、マスタ・スレーブ方式による安全通信システムを実現しなくても良い。しかし、説明の便宜上、本実施の形態に係る安全通信装置により、マスタ・スレーブ方式による安全通信システムを実現した場合について説明する。
なお、安全通信装置という用語は、安全マスタ10と、安全スレーブ20との総称でもある。
【0036】
本実施の形態に係る安全通信システムは、1以上の安全マスタ10と、1以上の安全スレーブ20とから構成される。これらの中の1の安全マスタ10と、1の安全スレーブ20とが、1対1の安全コネクション(安全通信に用いる論理的なコネクション)を作成し、安全通信を行う。
【0037】
安全マスタ10と、安全スレーブ20とは、
フィールドネットワーク502を通じて接続されており、
フィールドネットワーク502を介して通信を行う。
【0038】
本実施の形態に係る安全通信装置を用いてマスタ・スレーブ方式による安全通信システムを実現しない場合、安全通信装置の動作及び構成は、安全スレーブ20との連携に関する部分を除いて、安全マスタ10と同様である。
【0039】
安全マスタ10は、CPU(Central Processing Unit)101、メモリ102、フィールド通信インタフェース104、及び、それらを接続するバス105を備える。CPU101は、メモリ102上に展開された、ソフトウェアである安全通信プログラムを実行することにより、フィールド通信インタフェース104を介して、対向する安全スレーブ20と安全通信を行う。
安全層の機能は、安全通信プログラムにより実現される。
【0040】
CPU101は、バス105(信号線)を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
【0041】
CPU101は、安全マスタプログラム120、及びOS(Operating System)等を実行するプロセッシング装置である。プロセッシング装置は、IC(Integrated Circuit)と呼ぶこともあり、CPU101は、具体例としては、CPU、DSP(Digital Signal Processor)、GPU(Graphics Processing Unit)である。CPU101は、メモリ102に格納されたプログラムを読み出して実行する。
【0042】
本図の安全マスタ10は、CPU101を1つだけ備えているが、安全マスタ10及び安全スレーブ20は、CPU101を代替する複数のプロセッサを備えていても良い。これら複数のプロセッサは、安全通信プログラムの実行等を分担する。
【0043】
メモリ102は、データを一時的に記憶する記憶装置であり、CPU101の作業領域として使用されるメインメモリとして機能する。メモリ102は、具体例としては、SRAM(Static Random Access Memory)、DRAM(Dynamic Random Access Memory)等のRAM(Random Access Memory)である。メモリ102は、CPU101の演算結果を保持する。
【0044】
本図に示していないが、安全マスタ10及び安全スレーブ20は、記憶装置を備えても良い。記憶装置は、データを不揮発的に保管する記憶装置であり、OS、安全通信プログラム等を記憶する。記憶装置は、具体例としては、HDD(Hard Disk Drive)、SSD(Solid State Drive)である。また、記憶装置は、メモリカード、SD(Secure Digital、登録商標)メモリカード、CF(Compact Flash)、NANDフラッシュ、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVD(Digital Versatile Disk)等の可搬記録媒体であってもよい。
【0045】
安全スレーブ20は、
安全マスタ10と同様に、CPU201、メモリ202、フィールド通信インタフェース204、及び、バス205を備え、
デバイス制御を行うための入出力インタフェース203を備えていても良い。
安全スレーブ20の動作は、安全マスタ10の動作と類似し、フィールド通信インタフェース204を介して、対向する安全マスタ10と安全通信を行う。
【0046】
図6は、本実施の形態に係る安全マスタプログラム120のソフトウェア構成図である。
本図に基づいて、安全マスタプログラム120の説明をする。安全マスタプログラム120は、安全マスタ10において動作する。
【0047】
安全通信プログラムは、安全マスタプログラム120と、安全スレーブプログラム220との総称でもある。安全通信プログラムは、独立したプログラムであっても良く、安全通信プログラムの機能の一部又は全部がOS等に組み込まれていても良い。
なお、安全通信プログラムが通信データの検査にCRCを用いることは具体例であり、安全通信プログラムは、他の方法により通信データを検査しても良い。
【0048】
安全マスタ10の安全層は、非安全層501と、フィールドネットワーク502とで構成されたブラックチャネルの上位において動作する通信アプリケーションである。
ブラックチャネルは、Ethernetベースのフィールドネットワーク、又は、シリアルバスを用いたフィールドバス等の一般的な通信チャネルである。ブラックチャネルの構成は、特に限定されない。
【0049】
安全アプリケーションインタフェース部121は、安全マスタ10において動作する安全アプリケーションが安全スレーブ20と交信する安全データを、安全アプリケーションと、安全マスタプログラム120とに受け渡す。
【0050】
安全PDU生成部122は、
安全アプリケーションにより送信を要求された安全データに、CRC用の検査データ及び安全ヘッダの保護情報等を付加して安全PDUを生成し、
生成した安全PDUを、非安全層501を通じて送信する。
【0051】
安全PDU検査部123は、
非安全層501を介して安全マスタ10が受信した安全PDUを受け取り、
受け取った安全PDUが含むCRC用の検査データ、及び、安全ヘッダに含まれる保護情報等を検査し、
受け取った安全PDUにエラーが検出されない場合、受け取った安全PDUを、安全アプリケーションインタフェース部121に渡す。
安全PDU検査部123は、安全層データに含まれるビットエラーを検出する安全層エラー検出を行う。
安全PDU検査部123は、安全プロトコルデータユニット検査部123の略記である。
【0052】
非安全層データは、データ通信の安全性を満たすことが保証されていない非安全ネットワークであって、非安全層を備える非安全ネットワークを経由したデータのことである。
安全層データは、非安全層が非安全層データを変換したデータであって、非安全層が安全層に転送するデータである。
【0053】
安全層パラメータ取得部125は、閾値設定に必要な安全層に関するパラメータを、具体例としては、安全マスタ10のパラメータ領域等から取得する。
安全層パラメータ取得部125は、
単位時間当たりに受信する安全層データの受信ビットレートと、安全層エラー検出の特性に関する情報である安全層エラー検出特性とを取得し、
安全層エラー検出に用いる安全層データ検査パラメータを取得しても良い。
安全層エラー検出の特性に関する情報は、安全層データのエラー検出に何らかの関連がある情報である。
【0054】
非安全層パラメータ取得部126は、閾値設定に必要な非安全層に関するパラメータを、具体例としては、安全マスタ10のパラメータ領域等から取得する。
非安全層パラメータ取得部126は、
非安全層エラー検出の特性に関する情報である非安全層エラー検出特性を取得し、
非安全層エラー検出に用いる非安全層データ検査パラメータを取得しても良い。
非安全層エラー検出の特性に関する情報は、非安全層データのエラー検出に何らかの関連がある情報である。
【0055】
閾値設定部127は、
ビットエラー率に対する要求値と、安全層パラメータ取得部125と、非安全層パラメータ取得部126とが取得したパラメータに基づいて、安全状態への遷移の契機となる閾値を算出し、
算出した閾値を、安全監視制御部124に設定する。
閾値設定部127は、非安全ネットワークにおけるデータ通信時の1ビットあたりのエラー発生確率の上限として要求するビットエラー率に対する要求値と、受信ビットレートと、安全層エラー検出特性と、非安全層エラー検出特性とに基づいて、単位時間当たりに受信する安全層データに含まれるビットエラーであって、安全PDU検査部123が検出する安全層データに含まれるビットエラーの数である単位時間エラー検出数の上限として要求する要求エラーレートを設定する。
【0056】
安全監視制御部124は、
安全PDU検査部123が受信した安全PDUに対して行う検査の結果からデータ破損に関する測定値を求め、
データ破損に関する測定値が閾値設定部127が設定した閾値を超えた場合に、安全アプリケーションインタフェース部121に、安全状態への遷移を指示する。
安全監視制御部124は、単位時間当たりに受信する安全層データに含まれるビットエラーであって、単位時間エラー検出数と、要求エラーレートとを比較し、比較結果に基づいて安全制御を行う。
なお、要求エラーレートには、単位時間当たりに受信する安全層データのビットエラーレートに基づいて算出された値を含まれる。
【0057】
図7は、本実施の形態に係る安全スレーブプログラム220のソフトウェア構成図である。
安全スレーブプログラム220は、安全スレーブ20において動作する、安全通信プログラムである。
符号221〜224により表す部は、それぞれ、符号121〜124により表す部と同様である。
【0058】
安全監視制御部224は、安全マスタ10の閾値設定部127が生成した閾値に基づいて、データ破損に関する測定値が、閾値を越えないことを確認する。
このため、安全スレーブ20は、
安全層パラメータ取得部125、非安全層パラメータ取得部126、及び、閾値設定部127に相当する部を備えず、
閾値管理部225を備える。
【0059】
閾値管理部225は、
安全マスタ10の閾値設定部127から閾値を受け取り、
この閾値を、安全監視制御部224に設定する。
【0060】
安全マスタプログラム120と、安全スレーブプログラム220とのソフトウェア構成は、前述のものに限定されない。
安全スレーブプログラム220は、具体例として、安全マスタ10と、安全スレーブ20との役割分担が上記と異なることにより、安全層パラメータ取得部125、非安全層パラメータ取得部126、及び、閾値設定部127を備えていても良い。
【0061】
***動作の説明***
図8は、安全マスタ10の、安全通信に関する処理の流れを示すフローチャートである。ステップS01からS03までは、安全制御が開始される以前(安全通信の立ち上げ及び安全コネクションの確立処理中)に行われる処理であり、ステップS04以降は、安全制御が開始されてから行われる処理である。
安全制御は、安全通信装置が、動作中に安全状態に遷移することが可能である制御のことである。
安全通信装置の動作手順は、安全通信方法に相当する。また、安全通信装置の動作を実現するプログラムは、安全通信プログラムに相当する。
【0062】
(ステップS01:安全層パラメータ取得処理)
安全層パラメータ取得部125は、下記を含む安全通信に関するパラメータを、安全マスタ10の安全パラメータ領域等から取得する。多項式の丸括弧内のxは、多項式の変数を表す。
・安全層におけるCRCの生成多項式G
1(x)
・安全PDUのビット長n
1
・ブラックチャネルのビットエラー率に対する要求値Pe’
・安全層において1時間あたりに受信される安全PDUレートv
なお、安全層パラメータ取得部125は、vを取得しなくても良い。
【0063】
(ステップS02:非安全層パラメータ取得処理)
非安全層パラメータ取得部126が、下記を含む非安全層に関するパラメータを、安全マスタ10の安全パラメータ領域等から取得する。
・非安全層におけるCRCの生成多項式G
2(x)
・ブラックチャネルPDUのビット長n
2(>n
1)
【0064】
(ステップS03:閾値算出処理)
閾値設定部127は、ステップS01及びS02において取得したパラメータを用いて、閾値を算出する。閾値算出の詳細は、別途説明する。
閾値は、複数のデータ破損に関する測定値を組み合わせたものとしてもよい。
【0065】
(ステップS04:閾値設定処理)
閾値設定部127は、ステップS03において算出した閾値を安全監視制御部124に設定する。
【0066】
(ステップS05:安全通信処理)
安全マスタプログラム120は、安全通信(安全データの交信)の開始に必要な安全コネクションの確立をし、安全通信を開始する。
【0067】
(ステップS06:データ破損に関する測定値算出処理)
安全PDU検査部123は、受信した安全PDUの検査結果を安全監視制御部124に通知する。
安全監視制御部124は、下記の要素を含むデータ破損に関する測定値を求める。
・安全層におけるデータ破損検出件数
・安全層が受信したデータ破損検出なし安全PDUの件数
【0068】
安全監視制御部124は、
直近の規定の長さの時間(例えば単位時間)によって定まる期間におけるデータ破損に関する測定値を求め、かつ、
長さが同じである期間におけるデータ破損に関する測定値を、対応づけて求めることが望ましい。
安全監視制御部124は、データ破損に関する測定値を継続的に求める。
【0069】
(分岐B01)
安全マスタ10は、
ステップS06において求めたデータ破損に関する測定値が閾値を越えている場合、ステップS07の処理を実行し、
前記データ破損に関する測定値が閾値を越えていない場合、ステップS08の処理を実行する。
【0070】
(ステップS07:制御継続処理)
安全監視制御部124は、ブラックチャネルのビットエラー率の実測値PeがPe’未満であると判断し、安全通信を継続する。
【0071】
安全マスタ10は、ステップS06に遷移する。
【0072】
(ステップS08:安全状態遷移処理)
安全監視制御部124は、PeがPe’以上であると判断し、安全アプリケーションインタフェース部121に、安全状態への遷移を通知する。
【0073】
安全アプリケーションインタフェース部121は、通知を受けて安全コネクションを切断するとともに、安全アプリケーションに安全状態への遷移を通知する。
【0074】
また、安全マスタ10によって安全コネクションが切断されることにより、安全スレーブ20も安全状態へ遷移する。
【0075】
安全スレーブ20における処理は、
安全監視制御部224が、データ破損に関する測定値が閾値を超えているか否かを確認し、データ破損に関する測定値が閾値を超えている場合に、フェールセーフ動作を開始する動作については、安全マスタ10における処理と同様であり、
ステップS01からS03までの処理が省略され、ステップS04の閾値設定が、閾値管理部225によって行われる点が、安全マスタ10における処理と異なる。
【0076】
***ステップS03の動作の説明***
ステップS03の詳細について、以降で述べる。
【0077】
図9は、数式1の解釈と、数式1の形式で用いられる記号の定義と等を示す表である。
具体例としては、P’
ef,BCは、「安全PDUが破損なしである事象が非安全層において観測される、安全PDUの1単位あたりの確率に対する要求値」を表す。
破損なしは、PDUがビットエラーを含まないことを表す。破損ありは、PDUがビットエラーを含むことを表す。
【0078】
図10は、以下で用いる記号の定義をまとめた表である。
【0080】
ステップS03は、下記の5つのステップから構成される。ここでは、本実施の形態が実施可能であることを示すために、各ステップにおいて用いる式を記載する。
【0081】
閾値算出の考え方を簡単に説明すると、閾値設定部127は、
ブラックチャネルにおけるビットエラー率に対する要求値と、非安全層においてエラー検出される安全PDUの割合と、安全層においてエラー検出されない安全PDUの割合とを考慮し、
安全層においてエラー検出される安全PDUの、非安全層に到達する全ての安全PDUの数に対する確率を算出し、
前記確率を用いて閾値を算出する。
【0082】
(ステップS03−1)
閾値設定部127は、数1に示すように、非安全層の破損なし確率に対する要求値(安全PDUが破損なしである事象が非安全層において観測される、安全PDUの1単位あたりの確率に対する要求値)P’
ef,BCを求める。
【0084】
(ステップS03−2)
閾値設定部127は、数式2に示すように、非安全層の検出エラー率に対する要求値(検出される破損が安全PDUに存在する事象が非安全層において観測される、安全PDUの1単位あたりの確率に対する要求値)P’
de,BCを求める。
【0085】
[数式2]
P’
de,BC = 1.0−(P’
ef,BC+P’
re,BC)
【0086】
P’
ef,BCは、ステップS03−1で求めたものである。P’
re,BCは、下記の通り求める。
ただし、A
iは、非安全層の多項式と、ブラックチャネルPDUのビット長と等に応じて算出される。
【0088】
(ステップS03−3)
閾値設定部127は、数3に示すように、安全層の残存エラー率に対する要求値(安全層の下位に正常に動作するブラックチャネルがあると仮定したときに、検出されない破損が存在する事象が安全PDUに存在する事象が安全層で観測される、安全PDUの1単位あたりの確率に対する要求値)P’
re,SCL|BCを求める。
【0089】
P’
re,SCL|BCは、非安全層と、安全層とにおいて、非安全層に到達する安全PDU全体に対する、データ破損が検出されない安全PDUの割合である。
ただし、A
i’は、非安全層の多項式と、ブラックチャネルPDUのビット長と、安全層の多項式と、安全PDUのビット長と等に応じて算出される。P’
re,SCL|BCを算出する具体的な手法は、参考文献1等に記載されている。
【0091】
[参考文献1]
F.Schiller,“Analysis of Nested CRC with Additional Net Data by Means of Stochastic Automata for Safety−critical Communication”,2008.
【0092】
(ステップS03−4)
閾値設定部127は、数式3に示すように、安全層の検出エラー率(安全層の下位に正常に動作するブラックチャネルがあると仮定したときに、検出される破損が安全PDUに存在する事象が安全層で観測される、安全PDUの1単位あたりの確率に対する要求値)P’
de,SCL|BCを求める。
【0093】
[数式3]
P’
de,SCL|BC = 1.0−(P’
ef,BC + P’
de,BC + P’
re,SCL|BC)
【0094】
(ステップS03−5)
閾値設定部127は、P’
de,SCL|BCを用いて閾値を設定する。具体例としては、1時間あたりの安全層での検出エラーのレートをデータ破損に関する測定値としたい場合、下記に示すR’
de,SCL|BCを閾値とする。
【0095】
[数式4]
R’
de,SCL|BC = P’
de,SCL|BC × v
【0096】
上記以外の閾値についての具体例としては、非安全層の破損なし確率に対する要求値と、安全層の検出エラー率との比率をデータ破損に関する測定値とする場合、P’
ef,BCと、P’
de,SCL|BCとの比を閾値としても良い。
【0097】
なお、ビットエラーレートと、要求エラーレートとの比較は、
ビットエラーレートと、要求エラーレートとを直接的に比較することのみならず、
ビットエラーレートを用いて算出した値と、要求エラーレートを用いて算出した値との比較等、間接的な比較を含む。
【0098】
なお、上記のステップS03−2及びステップS03−3の処理は、一般に計算量が多い。そのため、具体例としては、計算機上やクラウド上のツールで事前に計算された、P’
de,BCと、P’
re,SCL|BCとを用いることも考えられる。また、あらかじめ特定の安全層と、非安全層との組合せを想定し、あらかじめ計算してプログラムに組み込んだ閾値を用いても良い。
【0099】
***実施の形態1の特徴***
本実施の形態に係る安全通信装置は、
データ通信の安全性を満たすことが保証されていない非安全ネットワークであって、非安全層501を備える非安全ネットワークを経由した非安全層データに含まれるビットエラーを検出する非安全層エラー検出を行い、非安全層データにビットエラーが検出されなかった場合に、非安全層データを安全層データに変換して安全層に転送する非安全層501から、安全層データを受信する安全層を有する安全通信装置であって、
安全層データに含まれるビットエラーを検出する安全層エラー検出を行う安全PDU検査部123と、
単位時間当たりに受信する安全層データの受信ビットレートと、安全層エラー検出の特性に関する情報である安全層エラー検出特性とを取得する安全層パラメータ取得部125と、
非安全層エラー検出の特性に関する情報である非安全層エラー検出特性を取得する非安全層パラメータ取得部126と、
非安全ネットワークにおけるデータ通信時の1ビットあたりのエラー発生確率の上限として要求するビットエラー率に対する要求値と、受信ビットレートと、安全層エラー検出特性と、非安全層エラー検出特性とに基づいて、単位時間当たりに受信する安全層データに含まれるビットエラーであって、安全PDU検査部123が検出する安全層データに含まれるビットエラーの数である単位時間エラー検出数の上限として要求する要求エラーレートを設定する閾値設定部127と、
単位時間エラー検出数と、要求エラーレートとを比較し、比較結果に基づいて安全制御を行う安全監視制御部124とを備える。
【0100】
本実施の形態に係る安全層パラメータ取得部125は、安全層エラー検出に用いる安全層データ検査パラメータを取得し、
本実施の形態に係る非安全層パラメータ取得部126は、非安全層エラー検出に用いる非安全層データ検査パラメータを取得し、
本実施の形態に係る閾値設定部127は、要求エラーレートを設定する際に、非安全層データ検査パラメータと、安全層データ検査パラメータとを用いる。
【0101】
本実施の形態に係る安全通信装置は、
非安全層データの検査と、安全層データの検査とに巡回冗長検査を用いる場合に、
安全層パラメータ取得部125は、安全層データの送信単位から定まる単位長さと、安全層データ検査パラメータとして、安全層データの検査に用いる巡回冗長検査の生成多項式のパラメータとを取得し、
非安全層パラメータ取得部126は、非安全層データの単位長さと、非安全層データ検査パラメータとして、非安全層データの検査に用いる巡回冗長検査の生成多項式のパラメータとを取得し、
閾値設定部127は、
ビットエラー率に対する要求値と、非安全層データの単位長さとに基づいて、非安全層データが破損していない確率である破損なし確率に対する要求値を求め、
破損なし確率に対する要求値と、ビットエラー率に対する要求値と、非安全層データの単位長さと、安全層データ検査パラメータとに基づいて、非安全層において、ビットエラーを含む非安全層データの内、ビットエラーを含む非安全層データとして検出される非安全層データの数の、非安全層に到達する非安全層データの総数である非安全層データ総数に対する割合である検出エラー率に対する要求値を求め、
ビットエラー率に対する要求値と、検出エラー率に対する要求値と、安全層データの単位長さと、安全層データ検査パラメータと、前記非安全層データの前記単位長さと、前記非安全層データ検査パラメータとに基づいて、安全層において、ビットエラーを含む安全層データの内、ビットエラーを含む安全層データとして検出される安全層データの数の、非安全層データ総数に対する割合である残存エラー率に対する要求値を求め、
要求エラーレートを、残存エラー率に対する要求値に、受信ビットレートを掛けた値とする。
【0102】
本実施の形態に係る安全通信システムは、安全通信装置と、非安全ネットワークとを備える。
【0103】
***実施の形態1の効果の説明***
以上のように、実施の形態1の安全通信装置は、ブラックチャネルを用いる通信において、
ブラックチャネルにおけるビットエラー率に対する要求値と、ブラックチャネルの非安全層のパラメータと、安全層のパラメータとに基づいて、前記要求値に対応する閾値を閾値設定部127が設定し、
安全通信装置が受信する安全PDUが前記閾値を満たさない場合に、前記要求値を満たさないと判断し、安全状態に遷移する。
【0104】
<変形例1>
本実施の形態では、安全通信装置の各機能をソフトウェアで実現する場合を説明した。しかし、変形例として、前記各機能は、ハードウェアにより実現されても良い。
【0105】
前記各機能がハードウェアにより実現される場合には、安全マスタ10及び安全スレーブ20は、CPU101に代えて、電子回路(処理回路)を備える。あるいは、安全マスタ10及び安全スレーブ20は、CPU101、及び、メモリ102に代えて、電子回路を備える。電子回路は、前記各機能(及びメモリ102)を実現する専用の電子回路である。
【0106】
電子回路は、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックIC、GA(Gate Array)、ASIC(Application Specific Integrated Circuit)、FPGA(Field−Programmable Gate Array)が想定される。
【0107】
前記各機能を1つの電子回路で実現してもよいし、前記各機能を複数の電子回路に分散させて実現してもよい。
【0108】
あるいは、一部の前記各機能がハードウェアで実現され、他の前記各機能がソフトウェアで実現されてもよい。
【0109】
前述したCPU101とメモリ102と電子回路とを、総称して「プロセッシングサーキットリー」という。つまり、前記各機能は、プロセッシングサーキットリーにより実現される。
【0110】
実施の形態2.
以下、前述した実施の形態と異なる点について、図面を参照しながら説明する。
【0111】
***構成の説明***
図11は、本実施の形態に係る安全マスタ10のソフトウェア構成図である。
図12は、本実施の形態に係る安全スレーブ20のソフトウェア構成図である。
本実施の形態に係る安全マスタ10は、
図11に示すように、整合性検証部128を備える。本実施の形態に係る安全スレーブ20は、
図12に示すように、整合性検証部226を備える。
【0112】
整合性検証部128及び整合性検証部226は、非安全層パラメータ取得後に、安全通信システムのブラックチャネルの機器が交換される等の理由により、ブラックチャネルにおいて使用されるデータ破損に関する検査の方式が変化している場合、検査方式の変化を検出する。
【0113】
安全マスタ10は、かかる場合に、この検出をしないと、閾値を設定する際の前提が崩れているために、安全性を担保できない。従って、整合性検証部128及び整合性検証部226は、安全性を担保するために、非安全層のパラメータを確認する。
【0114】
***動作の説明***
本実施の形態に係る安全通信装置は、ステップS02と、ステップS03との間において、ステップS02−2の処理を実行する。ステップS02−2の処理は、非安全層において使用されている多項式が、非安全層のパラメータと一致しているか否かを検証するものである。
【0115】
(ステップS02−1:非安全層パラメータ取得処理)
前述のステップS02と同じである。
【0116】
(ステップS02−2:整合性検証処理)
整合性検証部128は、
検査用の安全PDU(検証PDU)を生成し、
非安全層501を介して、安全スレーブ20の安全層に対して送信する。
【0117】
なお、この検証PDUは、安全制御に使用されないことを担保するため、ヘッダ等により、安全制御用のPDUと明確に区別可能とされることが望ましい。
【0118】
整合性検証部226は、
検証PDUを受信する場合、非安全層501が検証PDUを廃棄していないことから、非安全層501のパラメータと、安全マスタ10が非安全層501のパラメータとして有しているパラメータとが整合していると判断し、
「パラメータ整合」を示す応答を安全マスタ10に返す。
かかる場合、安全マスタ10及び安全スレーブ20は、安全通信システムの動作を継続する。
【0119】
整合性検証部226は、
検証PDUを受信しない場合、非安全層501におけるパラメータと、安全マスタ10が非安全層501のパラメータとして有しているパラメータとが整合していないと判断し、
「パラメータ不整合」を示す応答を安全マスタ10に返し、
かかる場合、安全マスタ10及び安全スレーブ20は、安全通信システムの起動を中止する。
このとき、安全マスタ10及び安全スレーブ20は、ユーザにブラックチャネルの不整合を通知しても良い。
【0120】
検証PDUは、具体例として、適切にCRC用の検査データを付加した安全PDUのペイロード部分を、前記ペイロード部分と、下記の数式6に対応するビットとの排他的論理和(XOR)に置き換えたものである。ただし、G
2(x)は、数式6を満たさなければならない。
【0121】
この検証PDUは、
非安全層において、CRCによる検査によりエラー検出されず、
安全層において、CRCによる検査によりエラー検出される特性を有する。
【0123】
[数式6]
(G
2(x)の次数)+j<(安全PDUのペイロードのビット長)
【0124】
安全通信システムは、検査を信頼できるものとするため、複数のパターンの検証PDUを用意し、検査を複数回実施することが望ましい。
【0125】
また、本ステップにおいて、前述のように検証PDUを生成する場合、整合性検証部128は、非安全層501がブラックチャネルPDUを生成した後、即ち、非安全層501におけるCRCの検査用データが適切に付加された後の安全PDUに対して、ビット反転等を起こすことにより、検証PDUを生成する。
このため、前述のように検証PDUを生成する場合、非安全層501は、整合性検証部128に対して、非安全層501のPDUを書き換えるための手段を提供する。
【0126】
***実施の形態2の特徴***
本実施の形態に係る安全通信装置は、閾値設定部127が要求エラーレートを設定する際に用いる非安全層データ検査パラメータが、非安全層において実際に使用されているか否かを検証するための検証データ(検証PDU)を受信した場合に、検証データに基づいて検証する整合性検証部128を備える。
【0127】
***実施の形態2の効果の説明***
以上のように、本実施の形態によれば、整合性検証部128は、安全通信装置が非安全層のパラメータとして有しているパラメータが、実際に非安全層において使用されているものであるか否かを検証するため、安全性を担保できる。
***他の実施の形態***
前述した各実施の形態の自由な組み合わせ、あるいは各実施の形態の任意の構成要素の変形、もしくは各実施の形態において任意の構成要素の省略が可能である。
【0128】
また、実施の形態は、実施の形態1から2で示したものに限定されるものではなく、必要に応じて種々の変更が可能である。