(57)【要約】  チェックサム交渉部（１０００５）は、安全マスタ装置（１０）と安全スレーブ装置（２０）との間の通信で用いられる生成多項式の候補を複数の多項式の中から候補多項式として選択する。通信周期検証部（１０００８）は、候補多項式を用いた計算が安全マスタ装置（１０）及び安全スレーブ装置（２０）の各々で規定の期限までに完了するか否かを判定する。通信周期検証部（１０００８）は、候補多項式を用いた計算が安全マスタ装置（１０）及び安全スレーブ装置（２０）の各々で期限までに完了すると判定された場合に、候補多項式を生成多項式に指定する。
2019207697.tif 000002
【特許請求の範囲】
【請求項１】
マスタ装置とスレーブ装置との間の通信で用いられる生成多項式の候補を複数の多項式の中から候補多項式として選択する選択部と、
前記候補多項式を用いた計算が前記マスタ装置及び前記スレーブ装置の各々で規定の期限までに完了するか否かを判定する判定部と、
前記候補多項式を用いた計算が前記マスタ装置及び前記スレーブ装置の各々で前記期限までに完了すると前記判定部により判定された場合に、前記候補多項式を前記生成多項式に指定する指定部とを有する情報処理装置。
【請求項２】
前記選択部は、
前記複数の多項式の中から次数が最大の多項式を前記候補多項式として選択し、
前記候補多項式を用いた計算が前記マスタ装置及び前記スレーブ装置のいずれかで前記期限までに完了しないと前記判定部により判定された場合に、前記候補多項式よりも次数が小さい多項式を新たな候補多項式として選択し、
前記判定部は、
前記新たな候補多項式を用いた計算が前記マスタ装置及び前記スレーブ装置の各々で前記期限までに完了するか否かを判定する請求項１に記載の情報処理装置。
【請求項３】
前記選択部は、
前記候補多項式よりも次数が小さく、残存エラーレートが要求値を満たす多項式を前記新たな候補多項式として選択する請求項２に記載の情報処理装置。
【請求項４】
前記選択部は、
いずれの多項式を用いた計算も前記マスタ装置及び前記スレーブ装置のいずれかで前記期限までに完了しないと前記判定部により判定された場合に、前記複数の多項式の中で前記期限よりも長い期限である延長期限を用いることができる多項式を新たな候補多項式として選択し、
前記判定部は、
前記新たな候補多項式を用いた計算が前記マスタ装置及び前記スレーブ装置の各々で前記延長期限までに完了するか否かを判定する請求項２に記載の情報処理装置。
【請求項５】
前記選択部は、
いずれの多項式を用いた計算も前記マスタ装置及び前記スレーブ装置の各々で前記期限までに完了しないと前記判定部により判定された場合に、前記複数の多項式の中で前記期限よりも長い期限である延長期限を用いることができる多項式を新たな候補多項式として選択し、
前記判定部は、
規定のデータフレームを分割した分割データフレームに対する前記新たな候補多項式を用いた計算が前記マスタ装置及び前記スレーブ装置の各々で前記期限までに完了するか否かを判定する請求項２に記載の情報処理装置。
【請求項６】
前記判定部は、
前記候補多項式を用いた計算が前記マスタ装置及び前記スレーブ装置の各々で、前記マスタ装置及び前記スレーブ装置との間で行われる安全通信の安全通信周期内に完了するか否かを判定し、
前記指定部は、
前記候補多項式を用いた計算が前記マスタ装置及び前記スレーブ装置の各々で前記安全通信周期内に完了すると前記判定部により判定された場合に、前記候補多項式を前記生成多項式に指定する請求項１に記載の情報処理装置。
【請求項７】
前記複数の多項式には、２以上の多項式の組合せが含まれる請求項１に記載の情報処理装置。
【請求項８】
前記情報処理装置が、前記マスタ装置である請求項１に記載の情報処理装置。
【請求項９】
前記情報処理装置が、前記マスタ装置及び前記スレーブ装置である請求項１に記載の情報処理装置。
【請求項１０】
前記情報処理装置が、前記マスタ装置及び前記スレーブ装置とは異なるコンピュータである請求項１に記載の情報処理装置。
【請求項１１】
コンピュータが、マスタ装置とスレーブ装置との間の通信で用いられる生成多項式の候補を複数の多項式の中から候補多項式として選択し、
前記コンピュータが、前記候補多項式を用いた計算が前記マスタ装置及び前記スレーブ装置の各々で規定の期限までに完了するか否かを判定し、
前記候補多項式を用いた計算が前記マスタ装置及び前記スレーブ装置の各々で前記期限までに完了すると判定された場合に、前記コンピュータが、前記候補多項式を前記生成多項式に指定する情報処理方法。
【請求項１２】
マスタ装置とスレーブ装置との間の通信で用いられる生成多項式の候補を複数の多項式の中から候補多項式として選択する選択処理と、
前記候補多項式を用いた計算が前記マスタ装置及び前記スレーブ装置の各々で規定の期限までに完了するか否かを判定する判定処理と、
前記候補多項式を用いた計算が前記マスタ装置及び前記スレーブ装置の各々で前記期限までに完了すると前記判定処理により判定された場合に、前記候補多項式を前記生成多項式に指定する指定処理とをコンピュータに実行させる情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、生成多項式の指定に関する。
【背景技術】
【０００２】
ＩＥＣ（Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｅｌｅｃｔｒｏｔｅｃｈｎｉｃａｌ  Ｃｏｍｍｉｓｓｉｏｎ）６１７８４−３に基づく安全通信では、伝送路で生じるビットエラーなどに対する安全ＰＤＵ（Ｐｒｏｔｏｃｏｌ  Ｄａｔａ  Ｕｎｉｔ）の完全性を、安全度水準に基づく要求値未満にする必要がある。完全性を確保するための代表的な安全対策として、ＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ）などのチェックサムが広く利用されている。
ＣＲＣ計算は一般的に処理量が大きいため、一般的な通信ではハードウェアにより行われるが、安全通信ではソフトウェアにより行われるケースが多い。ＣＲＣ計算がハードウェアにより行われるケースでは、ＩＥＣ６１５０８に基づくハードウェアの診断が必要であるため、処理負荷が増大する。この処理負荷の増大を避けるために、安全通信ではＣＲＣ計算がソフトウェアで行われることが多い。
ＣＲＣには、ＣＲＣ−１６やＣＲＣ−３２のように次数の異なる複数のバリエーションがある。一般に次数の大きいＣＲＣ多項式ほどエラーの検出能力が高く、低い残存エラーレートを達成できるが、一方で計算量（時間または空間）が大きくなってしまう。
こうした計算量の問題は、計算リソースが潤沢な機器では問題になりにくいが、計算リソースが限られ、かつ、規定時間内に処理を完了しなければならない組込み機器では問題となる。【０００３】
特許文献１の技術では、与えられたデータ長及びデータ種別に対して、未検出誤り率を最小とするようなＣＲＣ生成多項式が選択される。
このために、特許文献１の技術では、生成多項式の最大及び最小ハミング距離をあらゆる符号長に対して求めるステップと、送受信するデータのデータ長及びデータ種別に応じて、最小ハミング距離が最大となる生成多項式を選択するステップとが存在する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−１７１５３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１の技術では、未検出誤り率の最小化のみが考慮されている。このため、計算リソースが限られた条件下では、安全通信において求められる安全応答時間内に必要な処理を完了することができないという課題がある。なお、安全応答時間は、例えば安全センサなどでの検知が発生してから、制御対象のアクチュエータなどを安全状態に遷移させるまでの時間である。安全応答時間の要求値は、システム構成を踏まえて決定される。また、安全応答時間の構成要素の一つに安全通信周期がある。
一般的に、ＣＲＣ多項式の未検出誤り率を低くするためには、次数の大きい多項式が必要である。次数の大きい多項式が用いられると、ＣＲＣ算出に必要な計算量が大きくなり、安全通信周期の制約を満たしにくくなる。そこで、マージンをもって小さめに設定されている安全通信周期を、マージンの範囲内で大きく設定することが考えられる。しかし、この方法では通信エラーによって安全ＰＤＵが規定時間内に送受信されない確率が増す。このため、システムが必要以上に安全状態に遷移してしまい、システムの可用性が低下してしまう問題が生じる。【０００６】
本発明は、このような事情に鑑み、計算リソースが限られた条件下でも規定の期限までに計算を完了させることができる多項式を指定することができる構成を得ることを主な目的とする。
【課題を解決するための手段】
【０００７】
本発明に係る情報処理装置は、
マスタ装置とスレーブ装置との間の通信で用いられる生成多項式の候補を複数の多項式の中から候補多項式として選択する選択部と、
前記候補多項式を用いた計算が前記マスタ装置及び前記スレーブ装置の各々で規定の期限までに完了するか否かを判定する判定部と、
前記候補多項式を用いた計算が前記マスタ装置及び前記スレーブ装置の各々で前記期限までに完了すると前記判定部により判定された場合に、前記候補多項式を前記生成多項式に指定する指定部とを有する。
【発明の効果】
【０００８】
本発明によれば、計算リソースが限られた条件下でも規定の期限までに計算を完了させることができる多項式を指定することができる。
【図面の簡単な説明】
【０００９】
【図１】実施の形態１に係る安全通信システムの構成例を示す図。
【図２】実施の形態１に係る安全マスタ装置のハードウェア構成例を示す図。
【図３】実施の形態１に係る安全スレーブ装置のハードウェア構成例を示す図。
【図４】実施の形態１に係る安全マスタ装置の機能構成例を示す図。
【図５】実施の形態１に係る安全スレーブ装置の機能構成例を示す図。
【図６】実施の形態１に係る安全コネクションを確立する処理を示すフローチャート。
【図７】実施の形態１に係る安全コネクションを確立する処理を示すフローチャート。
【図８】実施の形態１に係る安全コネクションを確立する処理を示すフローチャート。
【図９】実施の形態１に係るＣＲＣ多項式テーブルの例を示す図。
【図１０】実施の形態２に係る安全コネクションを確立する処理を示すフローチャート。
【図１１】実施の形態２に係る計算能力情報の例を示す図。
【図１２】実施の形態３に係るＣＲＣ多項式テーブルの例を示す図。
【図１３】実施の形態４に係る情報処理装置のハードウェア構成例を示す図。
【図１４】実施の形態４に係る情報処理装置の機能構成例を示す図。
【図１５】実施の形態４に係る情報処理装置の動作例を示すフローチャート。
【発明を実施するための形態】
【００１０】
以下、本発明の実施の形態について、図を用いて説明する。以下の実施の形態の説明及び図面において、同一の符号を付したものは、同一の部分又は相当する部分を示す。
【００１１】
実施の形態１．
＊＊＊概要＊＊＊
本実施の形態では、安全通信に必要なＣＲＣ計算の処理量の削減を、安価な組込み機器で実現可能する構成を説明する。具体的には、本実施の形態では、規格で要求される残存エラーレートと、システムに要求される安全通信周期とを両立できる最適なＣＲＣ多項式の選択を、計算リソースが限られているマイクロコンピュータで実現できる構成を説明する。
【００１２】
安全規格で要求される残存エラーレートについては、国際規格であるＩＥＣ６１７８４−３において、下記によって定まる残存エラーレートが、目標とする安全度水準ごとに定められた要求値未満となることが求められている（括弧内に各値と残存エラーレートとの関係を示す）。
・安全ＰＤＵのサイズｎ（サイズｎが小さいほど残存エラーレートは低い）
・安全ＰＤＵの時間あたり送信レートｖ（送信レートｖが小さいほど残存エラーレートは低い）
・ビットエラー検出に使用するチェックサム生成用多項式の最小ハミング距離ｈｄ（最小ハミング距離ｈｄが大きいほど残存エラーレートは低い）
・想定する伝送路のビットエラー率Ｐｅ（ビットエラー率Ｐｅが小さいほど残存エラーレートは低い）
【００１３】
安全通信周期は、許容される応答時間に基づいて設定される。システムに要求される安全応答時間から、許容される応答時間が定まる。そして、許容される応答時間に基づいて、ユーザが安全通信周期を設定する。安全通信では、規定の時間（以下、ｔｒと呼ぶ）内に破損のない正常な安全ＰＤＵが受信されなければ、機器を停止させるといった安全状態に遷移する。ビットエラー等により頻繁に安全状態に遷移することを避けるために、ｔｒ内に複数の安全ＰＤＵを受信するよう、安全通信周期Ｔｓａｆｅｔｙにマージンを持たせ、安全通信周期Ｔｓａｆｅｔｙとして、ｔｒよりも数倍小さい値を設定することが多い。
【００１４】
本実施の形態では、伝送路の性能に応じて、システムの可用性を損なわない範囲で、安全通信周期を延長する。安全通信周期を延長するか否かの基準となる式の例を以下に記載する。
以下の式は、規定の時間ｔｒ内に１以上の安全ＰＤＵが送信されること（式１）と、安全ＰＤＵの異常による安全停止の発生レートが要求値を下回らないこと（式２）を表す。
本実施の形態では、以下の２つの式の両方を満たす範囲で、安全通信周期が緩和（延長）される。
【００１５】
【数１】
2019207697.tif 000003
【００１６】
・Ｔｓａｆｅｔｙ：安全通信周期
・ｔｒ：正常な安全ＰＤＵの受信間隔の要求値
・Ｐｆａｕｌｔ：安全ＰＤＵに発生する異常の発生確率
・ν：安全ＰＤＵ送信レート
・Ｒｆａｕｌｔ：安全ＰＤＵの異常による安全停止発生レートの要求値
【００１７】
＊＊＊構成の説明＊＊＊
図１は、本実施の形態に係る安全通信システムの構成例を示す。
本実施の形態に係る安全通信システムは、１つまたは複数の安全マスタ装置１０と、１つまたは複数の安全スレーブ装置２０と、安全マスタ装置１０と安全スレーブ装置２０とを接続するネットワーク３０から構成される。
安全マスタ装置１０と安全スレーブ装置２０とが、１対１の安全コネクション（安全通信に用いる論理的なコネクション）を作成し、安全通信を行う。安全マスタ装置１０と安全スレーブ装置２０は、それぞれ、例えば組込み機器である。
安全マスタ装置１０は、安全スレーブ装置２０を管理する。
安全スレーブ装置２０は、例えば、安全センサに接続されている。また、安全スレーブ装置２０は、例えば、アクチュエータを制御する。
安全スレーブ装置２０は、安全通信において安全センサのセンサ値を安全マスタ装置１０に通知する。また、安全マスタ装置１０は、例えば、安全センサのセンサ値に基づき、安全通信においてアクチュエータの制御値を安全スレーブ装置２０に通知する。そして、安全スレーブ装置２０は、安全マスタ装置１０から通知された制御値を用いてアクチュエータを制御する。以上の処理手順が安全応答時間内に完了している必要がある。
図１では、１対の安全マスタ装置１０と安全スレーブ装置２０が示されているが、前述のように、安全通信システムに含まれる安全マスタ装置１０と安全スレーブ装置２０の数は、図１の例に限定されない。
安全マスタ装置１０は、マスタ装置に相当する。また、安全スレーブ装置２０に相当する。
【００１８】
図２は、安全マスタ装置１０のハードウェア構成例を示す。
安全マスタ装置１０は、プロセッサ１０１、メモリ１０２、フィールド通信インタフェース１０４及びこれらを接続するバス１０５を備える。
安全マスタ装置１０は、コンピュータである。
プロセッサ１０１は、メモリ１０２上に展開された通信処理プログラムである安全通信層を実行することで、バス１０５およびフィールド通信インタフェース１０４を介して、対向する安全スレーブ装置２０と安全通信を行う。
【００１９】
図３は、安全スレーブ装置２０のハードウェア構成例を示す。
安全スレーブ装置２０は、プロセッサ２０１、メモリ２０２、入出力インタフェース２０３、フィールド通信インタフェース２０４及びこれらを接続するバス２０５を備える。
安全スレーブ装置２０は、コンピュータである。
プロセッサ２０１は、メモリ２０２上に展開された通信処理プログラムである安全通信層を実行することで、バス２０５およびフィールド通信インタフェース２０４を介して、対向する安全マスタ装置１０と安全通信を行う。
図３に示すように、安全スレーブ装置２０は、デバイス制御を行うための入出力インタフェース２０３を備える。例えば、安全スレーブ装置２０は、入出力インタフェース２０３を介してアクチュエータを制御する。
【００２０】
図４は、安全マスタ装置１０の機能構成例を示す。
【００２１】
安全マスタ装置１０は、安全通信層１０００とフィールドバスアプリケーション層１００１で構成される。
安全通信層１０００とフィールドバスアプリケーション層１００１はプログラムで実現される。
【００２２】
安全通信層１０００は、フィールドバスアプリケーション層１００１を介して、対向する安全スレーブ装置２０の後述する安全通信層２０００と通信する。
【００２３】
安全通信層１０００には、安全アプリケーションインタフェース部１０００１、安全コネクション確立処理部１０００２、安全ＰＤＵ生成部１０００３、安全ＰＤＵ検査部１０００４、チェックサム交渉部１０００５、安全パラメータ管理部１０００７及び通信周期検証部１０００８が含まれる。
チェックサム交渉部１０００５、通信周期検証部１０００８以外の要素は、一般的な安全通信で用いられる要素と同様である。
より具体的には、安全ＰＤＵ生成部１０００３は、安全アプリケーションインタフェース部１０００１又は安全コネクション確立処理部１０００２からの要求に応じて、安全ＰＤＵを生成する。
安全ＰＤＵ検査部１０００４は、安全アプリケーションインタフェース部１０００１又は安全コネクション確立処理部１０００２宛ての安全ＰＤＵをフィールドバスアプリケーション層１００１を介して受信し、受信した安全ＰＤＵを検査する。
安全アプリケーションインタフェース部１０００１は、送受信する安全ＰＤＵをユーザアプリケーションに受け渡しする。
安全コネクション確立処理部１０００２は、安全コネクションが切断された状態から、あらかじめ決められた通信シーケンスで、安全スレーブ装置２０の後述する安全通信層２０００との間で安全コネクションを確立する処理を行う。
安全パラメータ管理部１０００７は、安全マスタ装置１０及び安全スレーブ装置２０の、安全通信に使用する安全パラメータを保管する。安全マスタ装置１０の安全パラメータとしては、少なくとも下記が必要である。
（１）システムとしての安全度水準の要求値
（２）安全スレーブ装置２０ごとの下記の値：
（Ａ）安全通信周期（安全ＰＤＵ送信レートから逆算可能）
（Ｂ）安全データサイズ
（Ｃ）使用すべき多項式の識別情報
（Ｄ）伝送路のビットエラー率（特に証明済みの値がある場合のみ）
【００２４】
チェックサム交渉部１０００５は、安全コネクションを確立する処理において、安全通信に使用するＣＲＣ多項式、送信間隔および安全ＰＤＵの構造等を、対向する安全スレーブ装置２０の安全通信層２０００との間で調整し、決定する。
また、チェックサム交渉部１０００５は、安全マスタ装置１０と安全スレーブ装置２０との間の通信で用いられる生成多項式の候補を複数のＣＲＣ多項式の中から選択する。より具体的には、チェックサム交渉部１０００５は、複数のＣＲＣ多項式の中から次数が最大のＣＲＣ多項式を選択する。以降、チェックサム交渉部１０００５により選択されるＣＲＣ多項式を仮選択多項式と呼ぶ。仮選択多項式は、候補多項式に相当する。
また、チェックサム交渉部１０００５は、仮選択多項式を用いた計算が安全マスタ装置１０及び安全スレーブ装置２０の各々で安全通信周期内に完了すると判定された場合に、仮選択多項式を安全マスタ装置１０と安全スレーブ装置２０との通信で用いる生成多項式に指定する。
チェックサム交渉部１０００５は、選択部、判定部及び指定部に相当する。また、チェックサム交渉部１０００５により行われる処理は選択処理、判定処理及び指定処理に相当する。
チェックサム交渉部１０００５の動作の詳細は後述する。
【００２５】
通信周期検証部１０００８は、チェックサム交渉部１０００５からの指示により、チェックサム交渉部１０００５が選択した仮選択多項式を用いての安全ＰＤＵの生成処理及び検査処理が、安全パラメータにて規定された安全通信周期内に完了するか否かの検証を行う。つまり、通信周期検証部１０００８は、仮選択多項式を用いた計算が安全マスタ装置１０で規定の期限（安全通信周期の終期）までに完了するか否かを判定する。なお、上記の安全ＰＤＵの生成処理とは、ＣＲＣの生成を含む、安全スレーブ装置２０に送信する安全ＰＤＵを生成する処理である。上記の安全ＰＤＵの検査処理とは、安全スレーブ装置２０から受信した安全ＰＤＵに対するＣＲＣによる検査を行う処理である。
通信周期検証部１０００８は、実際の処理動作を模擬して処理時間を計測して、仮選択多項式を用いての安全ＰＤＵの生成処理及び検査処理が安全通信周期内に完了するか否かの検証を行うことができる。また、通信周期検証部１０００８は、事前に定量化した算出式を用いて、仮選択多項式を用いての安全ＰＤＵの生成処理及び検査処理が安全通信周期内に完了するか否かの検証を行うことができる。
検証の方法として様々な方法が考えられるが、本実施の形態では、通信周期検証部１０００８は、既存技術を適用して検証を行うものとし、検証方法の詳細は説明しない。
また、通信周期検証部１０００８は、チェックサム交渉部１０００５及び後述する安全スレーブ装置２０の通信周期検証部２０００８とともに、判定部に相当する。また、通信周期検証部１０００８により行われる処理は、チェックサム交渉部１０００５により行われる処理及び後述する安全スレーブ装置２０の通信周期検証部２０００８により行われる処理とともに、判定処理に相当する。
【００２６】
図４では、プロセッサ１０１が安全通信層１０００及びフィールドバスアプリケーション層１００１の機能を実現するプログラムを実行している状態を模式的に表している。
また、本実施の形態では、チェックサム交渉部１０００５、通信周期検証部１０００８と、安全スレーブ装置２０の通信周期検証部２０００８とが、本願の情報処理装置を構成する。
【００２７】
図５は、安全スレーブ装置２０の機能構成例を示す。
【００２８】
安全スレーブ装置２０は、安全通信層２０００とフィールドバスアプリケーション層２００１で構成される。
安全通信層２０００とフィールドバスアプリケーション層２００１はプログラムで実現される。
【００２９】
安全通信層２０００は、フィールドバスアプリケーション層２００１を介して、対向する安全マスタ装置１０の安全通信層１０００と通信する。
【００３０】
安全通信層２０００には、安全アプリケーションインタフェース部２０００１、安全コネクション確立処理部２０００２、安全ＰＤＵ生成部２０００３、安全ＰＤＵ検査部２０００４、チェックサム交渉部２０００５、安全パラメータ管理部２０００７及び通信周期検証部２０００８が含まれる。
安全通信層２０００の構成は、安全通信層１０００と同様である。
安全コネクション確立処理部２０００２及びチェックサム交渉部２０００５は、安全マスタ装置１０に対向して通信を行うため、安全コネクション確立処理部１０００２及びチェックサム交渉部１０００５とは処理の流れが異なる。
安全通信層２０００と安全通信層１０００における、これら以外の差分を以下に記載する。
安全パラメータ管理部２０００７は、安全スレーブ装置２０に必要な安全パラメータを保持する。
安全パラメータ管理部２０００７が保持する安全パラメータは以下の通りである。
（１）安全マスタ装置１０についての下記の値：
（Ａ）安全通信周期（安全ＰＤＵ送信レートから逆算可能）
（Ｂ）安全データサイズ
（Ｃ）使用すべき多項式の識別情報
通信周期検証部２０００８は、チェックサム交渉部２０００５からの指示により、チェックサム交渉部１０００５が選択した仮選択多項式を用いての安全ＰＤＵの生成処理及び検査処理が、安全パラメータにて規定された安全通信周期内に完了するか否かの検証を行う。つまり、通信周期検証部２０００８は、選択された仮選択多項式を用いた計算が安全スレーブ装置２０で規定の期限（安全通信周期の終期）までに完了するか否かを判定する。なお、上記の安全ＰＤＵの生成処理とは、ＣＲＣの生成を含む、安全マスタ装置１０に送信する安全ＰＤＵを生成する処理である。上記の安全ＰＤＵの検査処理とは、安全マスタ装置１０から受信したＰＤＵに対するＣＲＣによる検査を行う処理である。
安全スレーブ装置２０は、一般的に作成する安全コネクション数が少ないため安全通信による負荷は小さいが、計算リソースも限られているため、上記の検証が必要である。
また、チェックサム交渉部１０００５で選択された仮選択多項式が安全スレーブ装置２０ではサポートされていない可能性もある。このため、通信周期検証部２０００８は、安全通信周期についての検証を行う前に、仮選択多項式が安全スレーブ装置２０でサポートされているか否かを検証する。
安全通信周期についての検証の方法については、安全マスタ装置１０の通信周期検証部１０００８と同様に、既存手法を適用するものとして、詳細は説明しない。
前述したように、通信周期検証部２０００８は、チェックサム交渉部１０００５及び通信周期検証部１０００８とともに、判定部に相当する。また、通信周期検証部２０００８により行われる処理は、チェックサム交渉部１０００５により行われる処理及び通信周期検証部１０００８により行われる処理とともに、判定処理に相当する。
【００３１】
＊＊＊動作の説明＊＊＊
図６、図７及び図８は、本実施の形態に係る安全コネクションを確立する処理を示すフローチャートである。
図６、図７及び図８に示す処理は、本願の情報処理方法及び情報処理プログラムの処理に相当する。
【００３２】
ステップＳ００１において、安全コネクションの確立を主導する安全マスタ装置１０のチェックサム交渉部１０００５が、安全パラメータをもとに、ＣＲＣ多項式の候補を仮選択する。
安全マスタ装置１０では、例えば、図９に示すＣＲＣ多項式テーブルにおいて、複数のＣＲＣ多項式を管理している。図９のＣＲＣ多項式テーブルでは、ＣＲＣ多項式ごとに、次数、最小ハミング距離及び分布係数が示される。図９のＣＲＣ多項式テーブルを用いることにより、特定のフレーム長及びビットエラー率の条件下で残存エラー率が算出することができる。
チェックサム交渉部１０００５は、ステップＳ００１において、例えば、残存エラーレートにマージンをもたせるため、最大の次数のＣＲＣ多項式を選択することが考えられる。
【００３３】
ステップＳ００２では、通信周期検証部１０００８が、仮選択多項式を用いたＣＲＣ計算が安全マスタ装置１０において安全通信周期内に完了するか否かを検証する。
このとき、通信周期検証部１０００８は、安全マスタ装置１０として実行すべき処理全体を考慮して、チェックサムの生成を含む当該安全コネクションの安全ＰＤＵの生成処理及び検査処理が、設定された安全通信周期内に完了するか否かを検証する。
前述したように、通信周期検証部１０００８は、安全マスタ装置１０の全体としての処理を考慮して生成された算出式を用いて当該検証を行うことができる。また、通信周期検証部１０００８は、シミュレーションを行って当該検証を行うこともできる。更に、通信周期検証部１０００８は、実際の処理動作を模擬して処理時間を計測して当該検証を行うこともできる。通信周期検証部１０００８は、既存のいずれかの検証方法を用いて当該検証を行うことができる。
【００３４】
仮選択多項式を用いたＣＲＣ計算が安全通信周期内に完了する場合（ステップＳ００３でＹＥＳ）は、処理はステップＳ００４に遷移する。一方、仮選択多項式を用いたＣＲＣ計算が安全通信周期内に完了しない場合（ステップＳ００３でＮＯ）は、処理はステップＳ００８に遷移する。
【００３５】
ステップＳ００４では、チェックサム交渉部１０００５が、仮選択多項式を使用可能か否かについて、安全コネクションを作成する対向する安全スレーブ装置２０と交渉する。
具体的には、チェックサム交渉部１０００５が、仮選択多項式の識別情報を含むメッセージを、安全スレーブ装置２０へ送信する。
ステップＳ００４は、安全マスタ装置１０と安全コネクションを確立する全ての安全スレーブ装置２０について行われる。
【００３６】
安全スレーブ装置２０では、チェックサム交渉部２０００５がメッセージを受信する。そして、チェックサム交渉部２０００５は、通信周期検証部２０００８に仮選択多項式の検証を指示する。
通信周期検証部２０００８は、チェックサム交渉部２０００５の指示に従い、仮選択多項式の検証を行う。具体的には、通信周期検証部２０００８は、安全スレーブ装置２０が仮選択多項式を用いたＣＲＣ算出をサポートしているか否かを検証する。
安全スレーブ装置２０が仮選択多項式を用いたＣＲＣ算出をサポートしている場合は、通信周期検証部２０００８は、仮選択多項式を用いての安全ＰＤＵの生成処理及び検査処理が、安全スレーブ装置２０において安全通信周期内に完了するか否かを、他の処理の影響も考慮して検証する。
チェックサム交渉部２０００５は、上記の２つの検証の両方で問題がなければ、安全マスタ装置１０に「合意」の旨の応答メッセージを送信する。一方、上記の２つの検証のうちの少なくともいずれか一方で問題があれば、チェックサム交渉部２０００５は、安全マスタ装置１０に「合意不成立」の旨の応答メッセージを送信する。
【００３７】
ステップＳ００５では、チェックサム交渉部１０００５は、安全スレーブ装置２０からの応答メッセージを確認し、全ての安全コネクションについて「合意」の旨の応答メッセージを受信している場合（ステップＳ００５でＹＥＳ）は、処理がステップＳ００６に遷移する。一方、「合意不成立」の旨の応答メッセージを受信している場合（ステップＳ００５でＮＯ）は、処理がステップＳ００８に遷移する。
【００３８】
ステップＳ００６では、チェックサム交渉部１０００５が、仮選択多項式を、安全マスタ装置１０と全ての安全スレーブ装置２０との通信で用いる生成多項式に指定する。
そして、チェックサム交渉部１０００５は、全ての安全スレーブ装置２０のチェックサム交渉部２０００５に、生成多項式として指定した仮選定多項式を安全通信に用いることを通知するメッセージを送信する。
【００３９】
ステップＳ００７では、安全マスタ装置１０の安全コネクション確立処理部１００２及び安全スレーブ装置２０の安全コネクション確立処理部２００２が安全コネクションを確立し、以後、ステップＳ００６で指定された生成多項式を用いた安全通信が行われる。
【００４０】
下記のステップＳ００８〜Ｓ０１０は、仮選択多項式を用いたＣＲＣ計算が安全通信周期内に完了できないと判明した場合に、仮選択多項式の変更を検討するフェーズである。
【００４１】
ステップＳ００８では、チェックサム交渉部１０００５が、当該仮選択多項式よりも次数の小さいＣＲＣ多項式の適用時における、安全コネクションごとの残存エラーレートΛＳＣ（Ｐｅ）を算出する。チェックサム交渉部１０００５は、安全通信の国際規格で規定された算出方法を使って残存エラーレートΛＳＣ（Ｐｅ）を算出する。本実施の形態では、残存エラーレートΛＳＣ（Ｐｅ）の具体的な算出方法の説明は省略する。チェックサム交渉部１０００５は、算出に必要な安全通信周期、ビットエラー率などの値に、安全パラメータの値を使用する。
なお、ステップＳ００８及び以降のステップで、新たな仮選択多項式及び正式な生成多項式は、全ての安全コネクションで同じである必要はない。
【００４２】
ステップＳ００９では、チェックサム交渉部１０００５は、上記のステップＳ００８で得られた残存エラーレートΛＳＣ（Ｐｅ）が要求値を満たすか否かを判定する。本実施の形態では、この要求値は、安全通信の国際規格で規定された要求値である。このため、本実施の形態では、要求値の具体的な値には言及しない。
残存エラーレートΛＳＣ（Ｐｅ）が要求値を満たす場合（ステップＳ００９でＹＥＳ）、つまり、次数の小さいＣＲＣ多項式に変更しても安全度水準の要求値を満たす場合は、処理がステップＳ０１０へ遷移する。一方、残存エラーレートΛＳＣ（Ｐｅ）が要求値を満たさない場合（ステップＳ００９でＮＯ）は、処理がＳ０１１へ遷移する。
【００４３】
ステップＳ０１０では、チェックサム交渉部１０００５は、現在の仮選択多項式よりも次数が小さく、かつ残存エラーレートΛＳＣ（Ｐｅ）の値が要求値を満たすＣＲＣ多項式を、新たな仮選択多項式として選択する。
その後、新たな仮選択多項式に対してステップＳ００２以降の処理が行われる。つまり、新たな仮選択多項式を用いた計算が安全マスタ装置１０及び安全スレーブ装置２０の各々で安全通信周期内に完了するか否かが検証される。
【００４４】
下記のステップＳ０１１〜Ｓ０１３は、安全通信周期の延長を検討するフェーズである。
具体的には、仮選択多項式を用いた計算が安全通信周期内に完了しない場合（ステップＳ００３でＮＯ）、または、いずれかの安全スレーブ装置２０から「合意不成立」との応答メッセージを受信した場合（ステップＳ００５でＮＯ）であって、残存エラーレートΛＳＣ（Ｐｅ）が要求値を満たす次数が小さいＣＲＣ多項式が存在しない場合（ステップＳ００９でＮＯ）に、ステップＳ０１１〜Ｓ０１３において、安全通信周期の延長が検討される。
【００４５】
ステップＳ０１１では、チェックサム交渉部１０００５が、安全コネクションごとに、安全通信周期を延長できるか否かを判定する。つまり、チェックサム交渉部１００５は、仮に安全コネクションの安全通信周期を延長しても、必要な安全応答時間、可用性を維持できるか否かを判定する。
チェックサム交渉部１０００５は、具体的には、前述の（式１）及び（式２）を適用して、安全通信周期の延長が可能であるか否かを判定する。
【００４６】
安全通信周期を延長できる安全コネクションがある場合（ステップＳ０１１でＹＥＳ）は、処理がＳ０１２へ遷移する。一方、安全通信周期を延長できる安全コネクションがない場合（ステップＳ０１１でＮＯ）は、処理がＳ０１４へ遷移する。
【００４７】
ステップＳ０１２では、チェックサム交渉部１０００５が、安全通信周期の延長可能な割合のマージンが最大である安全コネクションを選択する。
【００４８】
ステップＳ０１３では、チェックサム交渉部１０００５が、ステップＳ０１２で選択した安全コネクションについて、安全通信周期の延長又はデータフレームの分割を実施する。
チェックサム交渉部１０００５は、前述の（式１）、（式２）の範囲で安全通信周期を延長することができる。
チェックサム交渉部１０００５は、ステップＳ０１２で選択された安全コネクションの現在の仮選択多項式を新たな仮選択多項式として選択する。そして、当該新たな仮選択多項式について延長された安全通信周期を用いてステップＳ００２以降の処理が行われる。つまり、新たな仮選択多項式を用いた計算が安全マスタ装置１０及び安全スレーブ装置２０の各々で、延長された安全通信周期内に完了するか否かが検証される。
また、データフレームを分割することで計算時間が短縮される。つまり、チェックサム交渉部１０００５は、データフレームの分割により、個々のデータフレームのフレーム長を短くし、分割により得られた分割データフレームの全てが通信先に到着するまでの実質的な間隔を長くする。これにより、次数の小さいＣＲＣ多項式を使用することが可能になり、計算時間を短縮することができる。
チェックサム交渉部１０００５は、ステップＳ０１２で選択された安全コネクションの現在の仮選択多項式を新たな仮選択多項式として選択する。そして、分割データフレームに対して当該新たな仮選択多項式が用いられてステップＳ００２以降の処理が行われる。つまり、分割データフレームに対する新たな仮選択多項式を用いた計算が安全マスタ装置１０及び安全スレーブ装置２０の各々で安全通信周期内に完了するか否かが検証される。
【００４９】
ステップＳ０１４では、安全マスタ装置１０又は安全スレーブ装置２０の処理性能上、実現不可能な安全通信設定がなされていることが判明する。このため、チェックサム交渉部１０００５は、安全コネクションの確立ができないと判定し、その旨を安全マスタ装置１０のユーザに通知する。
【００５０】
＊＊＊実施の形態の効果の説明＊＊＊
以上、本実施の形態では、仮選択多項式を用いた計算が安全マスタ装置１０及び安全スレーブ装置２０の各々で安全通信周期内に完了するか否かが判定される。そして、仮選択多項式を用いた計算が安全マスタ装置１０及び安全スレーブ装置２０の各々で安全通信周期内に完了する場合に、仮選択多項式が生成多項式に指定される。このため、本実施の形態によれば、計算リソースが限られた条件下でも安全通信周期内にＣＲＣ計算を完了させることができる生成多項式を指定することができる。
【００５１】
実施の形態２．
実施の形態１では、安全マスタ装置１０が安全スレーブ装置２０に仮選択多項式を用いた計算が安全通信周期内に完了するか否かを判定させて、生成多項式を指定している。
本実施の形態では、安全マスタ装置１０が仮選択多項式を用いた計算が安全スレーブ装置２０で安全通信周期内に完了するか否かを判定する例を説明する。より具体的には、本実施の形態では、安全マスタ装置１０が安全スレーブ装置２０から、安全スレーブ装置２０の計算能力に関する情報（以下、計算能力情報）を取得し、安全スレーブ装置２０の計算能力情報に基づいて、安全スレーブ装置２０で仮選択多項式を用いた計算が安全通信周期内に完了するか否かを判定する。
【００５２】
＊＊＊構成の説明＊＊＊
本実施の形態に係る安全通信システムの構成例は図１に示す通りである。
また、本実施の形態に係る安全マスタ装置１０のハードウェア構成例は図２に示す通りである。
また、本実施の形態に係る安全スレーブ装置２０のハードウェア構成例は図３に示す通りである。
また、本実施の形態に係る安全マスタ装置１０の機能構成例は図４に示す通りである。
また、本実施の形態に係る安全スレーブ装置２０の機能構成例は図５に示す通りである。
なお、実施の形態１では、チェックサム交渉部１０００５、通信周期検証部１０００８及び通信周期検証部２０００８が判定部に相当していたが、本実施の形態では、チェックサム交渉部１０００５及び通信周期検証部１０００８のみが判定部に相当する。また、実施の形態１では、チェックサム交渉部１０００５、通信周期検証部１０００８及び通信周期検証部２０００８が情報処理装置を構成するとしていたが、本実施の形態では、チェックサム交渉部１０００５及び通信周期検証部１０００８が情報処理装置を構成する。
【００５３】
＊＊＊動作の説明＊＊＊
本実施の形態に係る安全コネクションを確立する処理は、図１０に示す通りである。図１０において、図６と同じ符号の処理は図６に示すものと同じである。以下では、主に実施の形態１との差分を説明する。以下で説明していない事項は、実施の形態１と同じである。
図１０に示す処理は、本願の情報処理方法及び情報処理プログラムの処理に相当する。
【００５４】
ステップＳ０２１では、安全マスタ装置１０のチェックサム交渉部１０００５が、安全通信を行う全ての安全スレーブ装置２０に対して、ＣＲＣ多項式ごとの計算能力情報の送信を要求する。
各安全スレーブ装置２０のチェックサム交渉部２０００５は、通信周期検証部２０００８に計算能力情報の生成を指示する。通信周期検証部２０００８は、計算能力情報を生成し、生成した計算能力情報を安全マスタ装置１０に送信する。計算能力情報は、各ＣＲＣ多項式を適用した場合に安全スレーブ装置２０が実現可能な通信周期を表す情報である。図１１は、計算能力情報の例を示す。計算能力は、安全スレーブ装置２０が安全通信システムにおいて実行すべき処理に応じて変動するため、図１１に示す「実現可能な通信周期」は必ずしも固定値ではない。
【００５５】
ステップＳ０２２では、安全マスタ装置１０のチェックサム交渉部１００５が、安全スレーブ装置２０から計算能力情報を受信する。
【００５６】
ステップＳ００１では、チェックサム交渉部１０００５が、ＣＲＣ多項式の候補を仮選択する。チェックサム交渉部１０００５は、実施の形態１と同様に、例えば、最大の次数のＣＲＣ多項式を選択する。
【００５７】
ステップＳ００２では、実施の形態１と同様に、通信周期検証部１０００８が、仮選択多項式を用いたＣＲＣ計算が安全マスタ装置１０において安全通信周期内に完了するか否かを検証する。
【００５８】
仮選択多項式を用いたＣＲＣ計算が安全通信周期内に完了する場合（ステップＳ００３でＹＥＳ）は、処理はステップＳ０２３に遷移する。一方、仮選択多項式を用いたＣＲＣ計算が安全通信周期内に完了しない場合（ステップＳ００３でＮＯ）は、処理はステップＳ００８に遷移する。ステップＳ００８以降の処理は実施の形態１で説明した通りなので、説明を省略する。
【００５９】
ステップＳ０２３では、通信周期検証部１０００８が、ステップＳ０２２で受信した計算能力情報に基づき、仮選択多項式を用いたＣＲＣ計算が安全スレーブ装置２０において安全通信周期内に完了するか否かを検証する。
ステップＳ０２３は、安全マスタ装置１０と安全コネクションを確立する全ての安全スレーブ装置２０について行われる。
【００６０】
仮選択多項式を用いたＣＲＣ計算が安全通信周期内に完了する場合（ステップＳ００２４でＹＥＳ）は、処理はステップＳ００６に遷移する。一方、仮選択多項式を用いたＣＲＣ計算が安全通信周期内に完了しない場合（ステップＳ０２４でＮＯ）は、処理はステップＳ００８に遷移する。ステップＳ００６以降の処理及びステップＳ００８以降の処理は実施の形態１で説明した通りなので、説明を省略する。
【００６１】
＊＊＊実施の形態の効果の説明＊＊＊
本実施の形態では、安全マスタ装置１０が、安全スレーブ装置２０でのＣＲＣ計算が安全通信周期内に完了するか否かを検証する。つまり、安全スレーブ装置２０の計算リソースを用いることなく、安全スレーブ装置２０でのＣＲＣ計算が安全通信周期内に完了するか否かの検証が行われる。このため、本実施の形態によれば、安全スレーブ装置２０の計算リソースが限られていても、安全通信周期内にＣＲＣ計算を完了させることができる生成多項式を指定することができる。
【００６２】
実施の形態３．
実施の形態１及び実施の形態２では、安全マスタ装置１０では、図９のＣＲＣ多項式テーブルに示すように、単一のＣＲＣ多項式が仮選択多項式の選択肢として管理されている。
本実施の形態では、図１２のＣＲＣ多項式テーブルに示すように、複数のＣＲＣ多項式の組合せを、仮選択多項式の選択肢として管理する。つまり、本実施の形態では、１つの安全ＰＤＵに異なる複数のチェックサムを付与する。
安全通信層１０００が動作するハードウェア及び安全通信層２０００が動作するハードウェアが多重化されている場合は、チェックサムを並列に算出することができる。このため、次数の大きいＣＲＣ多項式で生成した１つのチェックサムを安全ＰＤＵに付与するよりも、次数の小さいＣＲＣ多項式で生成した複数個のチェックサムを安全ＰＤＵに付与することが望ましいと考えられる。つまり、次数の小さいＣＲＣ多項式で生成した複数個のチェックサムを安全ＰＤＵに付与する場合は、次数の大きいＣＲＣ多項式で生成した１つのチェックサムを安全ＰＤＵに付与する場合と同等の残存エラーレートを担保しつつ計算時間を短縮することができる。そこで、図１２のようにＣＲＣ多項式テーブルを拡張して、仮選択多項式の選択肢を増やすことが考えられる。
【００６３】
実施の形態４．
実施の形態１では、安全マスタ装置１０が安全コネクションの確立時に図６〜図８に示す処理を行って、生成多項式を指定する。
しかしながら、図６〜図８に示す処理の結果は、安全通信システムの構成、安全パラメータ及びネットワーク３０の条件に変化が無ければ、毎回同じ結果になる。従って、安全通信システムの構成、安全パラメータ及びネットワーク３０の条件に対して、図６〜図８に示す処理を行って安全コネクションごとに生成多項式を予め指定しておけば、安全コネクションの確立の度に図６〜図８に示す処理を繰り返す必要はない。
本実施の形態では、安全マスタ装置１０とは異なる情報処理装置が、図６〜図８に示す処理を行って生成多項式を予め指定する例を説明する。
そして、情報処理装置が、指定した生成多項式を安全マスタ装置１０に通知する。安全マスタ装置１０は、情報処理装置から通知された生成多項式を安全通信に適用する。
【００６４】
＊＊＊構成の説明＊＊＊
図１３は、本実施の形態に係る情報処理装置５０のハードウェア構成例を示す。
情報処理装置５０は、プロセッサ５０１、メモリ５０２、通信インタフェース５０３及びこれらを接続するバス５０４を備える。
情報処理装置５０は、コンピュータである。
プロセッサ５０１は、メモリ１０２上に展開された、後述する選択部５００１、判定部５００２及び指定部５０００３を実行する。
選択部５００１、判定部５００２及び指定部５０００３は、例えば、プログラムで実現される。
通信インタフェース５０３は、指定された生成多項式を安全マスタ装置１０に通知する。
【００６５】
図１４は、情報処理装置５０の機能構成例を示す。
【００６６】
情報処理装置５０は、選択部５００１、判定部５００２及び指定部５００３で構成される。
図１４では、プロセッサ５０１が選択部５００１、判定部５００２及び指定部５０００３の機能を実現するプログラムを実行している状態を模式的に表している。
【００６７】
選択部５００１は、安全マスタ装置１０と安全スレーブ装置２０との間の通信で用いられる生成多項式の候補を複数のＣＲＣ多項式の中から選択する。本実施の形態でも、選択部５００１により選択されたＣＲＣ多項式を仮選択多項式という。
選択部５００１により行われる処理は、選択処理に相当する。
【００６８】
判定部５００２は、仮選択多項式を用いた計算が安全マスタ装置１０及び安全スレーブ装置２０の各々で安全通信周期内に完了するか否かを判定する。
判定部５００２は、例えば、図１１に示す計算能力情報を安全マスタ装置１０及び各安全スレーブ装置２０について保持している。そして、判定部５００２は、計算能力情報を用いて、仮選択多項式を用いた計算が安全マスタ装置１０及び安全スレーブ装置２０の各々で安全通信周期内に完了するか否かを判定する。
判定部５００２により行われる処理は、判定処理に相当する。
【００６９】
指定部５００３は、仮選択多項式を用いた計算が安全マスタ装置１０及び安全スレーブ装置２０の各々で安全通信周期までに完了すると判定部５００２により判定された場合に、仮選択多項式を生成多項式に指定する。
また、指定部５００３は、通信インタフェース５０３を介して、指定した生成多項式を安全マスタ装置１０に通知する。
指定部５００３により行われる処理は、指定処理に相当する。
【００７０】
＊＊＊動作の説明＊＊＊
図１５は、本実施の形態に係る情報処理装置５００の動作例を示す。
図１５に示す処理は、本願の情報処理方法及び情報処理プログラムの処理に相当する。
【００７１】
ステップＳ０４１では、選択部５００１が、ＣＲＣ多項式の候補を仮選択する。選択部５００１は、実施の形態１のステップＳ００１と同様に、例えば、最大の次数のＣＲＣ多項式を選択する。
【００７２】
ステップＳ０４２では、判定部５００２が、安全マスタ装置１０についての計算能力情報に基づき、仮選択多項式を用いたＣＲＣ計算が安全マスタ装置１０において安全通信周期内に完了するか否かを検証する。
【００７３】
仮選択多項式を用いたＣＲＣ計算が安全マスタ装置１０において安全通信周期内に完了する場合（ステップＳ０４３でＹＥＳ）は、処理はステップＳ０４４に遷移する。一方、仮選択多項式を用いたＣＲＣ計算が安全通信周期内に完了しない場合（ステップＳ０４３でＮＯ）は、処理は図７のステップＳ００８に遷移する。
【００７４】
ステップＳ０４４では、判定部５００２が、安全スレーブ装置２０についての計算能力情報に基づき、仮選択多項式を用いたＣＲＣ計算が安全スレーブ装置２０において安全通信周期内に完了するか否かを検証する。
ステップＳ０４４は、安全マスタ装置１０と安全コネクションを確立する全ての安全スレーブ装置２０について行われる。
【００７５】
仮選択多項式を用いたＣＲＣ計算が全ての安全スレーブ装置２０において安全通信周期内に完了する場合（ステップＳ００４５でＹＥＳ）は、処理はステップＳ０４６に遷移する。一方、いずれかの安全スレーブ装置２０にて仮選択多項式を用いたＣＲＣ計算が安全通信周期内に完了しない場合（ステップＳ０４５でＮＯ）は、処理は図７のステップＳ００８に遷移する。
【００７６】
ステップＳ０４６では、指定部５００３が、仮選択多項式を、安全マスタ装置１０と全ての安全スレーブ装置２０との通信で用いる生成多項式に指定する。
そして、指定部５００３は、ステップＳ０４７において、安全マスタ装置１０に、指定した生成多項式を通知するメッセージを送信する。
【００７７】
本実施の形態では、図７のステップＳ００８において、判定部５００２が、当該仮選択多項式よりも次数の小さいＣＲＣ多項式の適用時における、安全コネクションごとの残存エラーレートΛＳＣ（Ｐｅ）を算出する。指定部５００３は、安全通信の国際規格で規定された算出方法を使って残存エラーレートΛＳＣ（Ｐｅ）を算出する。本実施の形態では、残存エラーレートΛＳＣ（Ｐｅ）の具体的な算出方法の説明は省略する。指定部５００３は、算出に必要な安全通信周期、ビットエラー率などの値は、安全パラメータの値を使用する。
なお、ステップＳ００８及び以降のステップで、新たな仮選択多項式及び正式な生成多項式は、全ての安全コネクションで同じである必要はない。
【００７８】
ステップＳ００９では、判定部５００２は、上記のステップＳ００８で得られた残存エラーレートΛＳＣ（Ｐｅ）が要求値を満たすか否かを判定する。本実施の形態では、この要求値は、安全通信の国際規格で規定された要求値である。このため、本実施の形態では、要求値の具体的な値には言及しない。
残存エラーレートΛＳＣ（Ｐｅ）が要求値を満たす場合（ステップＳ００９でＹＥＳ）、つまり、次数の小さいＣＲＣ多項式に変更しても安全度水準の要求値を満たす場合は、処理がステップＳ０１０へ遷移する。一方、残存エラーレートΛＳＣ（Ｐｅ）が要求値を満たさない場合（ステップＳ００９でＮＯ）は、処理がＳ０１１へ遷移する。
【００７９】
ステップＳ０１０では、判定部５００２は、現在の仮選択多項式よりも次数が小さく、かつ残存エラーレートΛＳＣ（Ｐｅ）の値が要求値を満たすＣＲＣ多項式を、新たな仮選択多項式として選択する。
その後、新たな仮選択多項式に対してステップＳ０４２以降の処理が行われる。つまり、新たな仮選択多項式を用いた計算が安全マスタ装置１０及び安全スレーブ装置２０の各々で安全通信周期内に完了するか否かが検証される。
【００８０】
仮選択多項式を用いた計算が安全通信周期内に完了しない場合（ステップＳ０４３でＮＯ）、または、いずれかの安全スレーブ装置２０から「合意不成立」との応答メッセージを受信した場合（ステップＳ０４５でＮＯ）であって、残存エラーレートΛＳＣ（Ｐｅ）が要求値を満たすＣＲＣ多項式が存在しない場合（ステップＳ００９でＮＯ）に、ステップＳ０１１〜Ｓ０１３において、安全通信周期の延長が検討される。
【００８１】
ステップＳ０１１では、判定部５００２が、安全コネクションごとに、安全通信周期を延長できるか否かを判定する。つまり、判定部５００２は、仮に安全コネクションの安全通信周期を延長しても、必要な安全応答時間、可用性を維持できるか否かを判定する。
判定部５００２は、具体的には、前述の（式１）及び（式２）を適用して、安全通信周期の延長が可能であるか否かを判定する。
【００８２】
安全通信周期を延長できる安全コネクションがある場合（ステップＳ０１１でＹＥＳ）は、処理がＳ０１２へ遷移する。一方、安全通信周期を延長できる安全コネクションがない場合（ステップＳ０１１でＮＯ）は、処理がＳ０１４へ遷移する。
【００８３】
ステップＳ０１２では、判定部５００２が、安全通信周期の延長可能な割合のマージンが最大である安全コネクションを選択する。
【００８４】
ステップＳ０１３では、判定部５００２が、ステップＳ０１２で選択した安全コネクションについて、安全通信周期の延長又はデータフレームの分割を実施する。
判定部５００２は、前述の（式１）、（式２）の範囲で安全通信周期を延長することができる。
判定部５００２は、ステップＳ０１２で選択された安全コネクションの現在の仮選択多項式を新たな仮選択多項式として選択する。そして、当該新たな仮選択多項式について延長された安全通信周期を用いてステップＳ００２以降の処理が行われる。つまり、新たな仮選択多項式を用いた計算が安全マスタ装置１０及び安全スレーブ装置２０の各々で、延長された安全通信周期内に完了するか否かが検証される。
また、データフレームを分割することで計算時間が短縮される。つまり、判定部５００２は、データフレームの分割により、個々のデータフレームのフレーム長を短くし、分割により得られた分割データフレームの全てが通信先に到着するまでの実質的な間隔を長くする。これにより、次数の小さいＣＲＣ多項式を使用することが可能になり、計算時間を短縮することができる。
判定部５００２は、ステップＳ０１２で選択された安全コネクションの現在の仮選択多項式を新たな仮選択多項式として選択する。そして、分割データフレームに対して当該新たな仮選択多項式が用いられてステップＳ００２以降の処理が行われる。つまり、分割データフレームに対する新たな仮選択多項式を用いた計算が安全マスタ装置１０及び安全スレーブ装置２０の各々で安全通信周期内に完了するか否かが検証される。
【００８５】
ステップＳ０１４では、安全マスタ装置１０又は安全スレーブ装置２０の処理性能上、実現不可能な安全通信設定がなされていることが判明する。このため、判定部５００２は、安全コネクションの確立ができないと判定し、その旨を安全マスタ装置１０に通知する。
【００８６】
＊＊＊実施の形態の効果の説明＊＊＊
本実施の形態では、情報処理装置５０が、安全マスタ装置１０及び安全スレーブ装置２０でのＣＲＣ計算が安全通信周期内に完了するか否かを検証する。つまり、安全マスタ装置１０及び安全スレーブ装置２０の計算リソースを用いることなく、安全マスタ装置１０及び安全スレーブ装置２０でのＣＲＣ計算が安全通信周期内に完了するか否かの検証が行われる。このため、本実施の形態によれば、安全マスタ装置１０及び安全スレーブ装置２０の計算リソースが限られていても、安全通信周期内にＣＲＣ計算を完了させることができる生成多項式を指定することができる。
【００８７】
以上、本発明の実施の形態について説明したが、これらの実施の形態のうち、２つ以上を組み合わせて実施しても構わない。
あるいは、これらの実施の形態のうち、１つを部分的に実施しても構わない。
あるいは、これらの実施の形態のうち、２つ以上を部分的に組み合わせて実施しても構わない。
なお、本発明は、これらの実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。
【００８８】
＊＊＊ハードウェア構成の説明＊＊＊
最後に、安全マスタ装置１０、安全スレーブ装置２０及び情報処理装置５０のハードウェア構成の補足説明を行う。
プロセッサ１０１、プロセッサ２０１及びプロセッサ５０１は、プロセッシングを行うＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）である。
プロセッサ１０１、プロセッサ２０１及びプロセッサ５０１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）等である。
メモリ１０２、メモリ２０２及びメモリ５０２は、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、フラッシュメモリ、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）等である。
フィールド通信インタフェース１０４、フィールド通信インタフェース２０４及び通信インタフェース５０３は、データの通信処理を実行する電子回路である。
フィールド通信インタフェース１０４、フィールド通信インタフェース２０４及び通信インタフェース５０３は、例えば、通信チップ又はＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）である。
【００８９】
また、メモリ１０２には、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）も記憶されている。
そして、ＯＳの少なくとも一部がプロセッサ１０１により実行される。
プロセッサ１０１はＯＳの少なくとも一部を実行しながら、安全通信層１０００及びフィールドバスアプリケーション層１００１の機能を実現するプログラムを実行する。
プロセッサ１０１がＯＳを実行することで、タスク管理、メモリ管理、ファイル管理、通信制御等が行われる。
また、安全通信層１０００及びフィールドバスアプリケーション層１００１の処理の結果を示す情報、データ、信号値及び変数値の少なくともいずれかが、メモリ１０２、プロセッサ１０１内のレジスタ及びキャッシュメモリの少なくともいずれかに記憶される。
また、安全通信層１０００及びフィールドバスアプリケーション層１００１の機能を実現するプログラムは、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ（登録商標）ディスク、ＤＶＤ等の可搬記録媒体に格納されていてもよい。
【００９０】
また、メモリ２０２にも、ＯＳが記憶されている。
そして、ＯＳの少なくとも一部がプロセッサ２０１により実行される。
プロセッサ２０１はＯＳの少なくとも一部を実行しながら、安全通信層２０００及びフィールドバスアプリケーション層２００１の機能を実現するプログラムを実行する。
プロセッサ２０１がＯＳを実行することで、タスク管理、メモリ管理、ファイル管理、通信制御等が行われる。
また、安全通信層２０００及びフィールドバスアプリケーション層２００１の処理の結果を示す情報、データ、信号値及び変数値の少なくともいずれかが、メモリ２０２、プロセッサ２０１内のレジスタ及びキャッシュメモリの少なくともいずれかに記憶される。
また、安全通信層２０００及びフィールドバスアプリケーション層２００１の機能を実現するプログラムは、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ（登録商標）ディスク、ＤＶＤ等の可搬記録媒体に格納されていてもよい。
【００９１】
また、メモリ５０２にも、ＯＳが記憶されている。
そして、ＯＳの少なくとも一部がプロセッサ５０１により実行される。
プロセッサ５０１はＯＳの少なくとも一部を実行しながら、選択部５００１、判定部５００２及び指定部５００３の機能を実現するプログラムを実行する。
プロセッサ５０１がＯＳを実行することで、タスク管理、メモリ管理、ファイル管理、通信制御等が行われる。
また、選択部５００１、判定部５００２及び指定部５００３の処理の結果を示す情報、データ、信号値及び変数値の少なくともいずれかが、メモリ５０２、プロセッサ５０１内のレジスタ及びキャッシュメモリの少なくともいずれかに記憶される。
また、選択部５００１、判定部５００２及び指定部５００３の機能を実現するプログラムは、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ（登録商標）ディスク、ＤＶＤ等の可搬記録媒体に格納されていてもよい。
【００９２】
また、安全マスタ装置１０、安全スレーブ装置２０及び情報処理装置５０は、処理回路により実現されてもよい。処理回路は、例えば、ロジックＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＧＡ（Ｇａｔｅ  Ａｒｒａｙ）、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）である。
なお、本明細書では、プロセッサと、メモリと、プロセッサとメモリの組合せと、処理回路との上位概念を、「プロセッシングサーキットリー」という。
つまり、プロセッサと、メモリと、プロセッサとメモリの組合せと、処理回路とは、それぞれ「プロセッシングサーキットリー」の具体例である。
【符号の説明】
【００９３】
１０  安全マスタ装置、２０  安全スレーブ装置、３０  ネットワーク、５０  情報処理装置、１０１  プロセッサ、１０２  メモリ、１０４  フィールド通信インタフェース、１０５  バス、２０１  プロセッサ、２０２  メモリ、２０３  入出力インタフェース、２０４  フィールド通信インタフェース、２０５  バス、５０１  プロセッサ、５０２  メモリ、５０３  通信インタフェース、５０４  バス、１０００  安全通信層、１００１  フィールドバスアプリケーション層、１０００１  安全アプリケーションインタフェース部、１０００２  安全コネクション確立処理部、１０００３  安全ＰＤＵ生成部、１０００４  安全ＰＤＵ検査部、１０００５  チェックサム交渉部、１０００７  安全パラメータ管理部、１０００８  通信周期検証部、２０００  安全通信層、２００１  フィールドバスアプリケーション層、２０００１  安全アプリケーションインタフェース部、２０００２  安全コネクション確立処理部、２０００３  安全ＰＤＵ生成部、２０００４  安全ＰＤＵ検査部、２０００５  チェックサム交渉部、２０００７  安全パラメータ管理部、２０００８  通信周期検証部、５００１  選択部、５００２  判定部、５００３  指定部。
【図１】
2019207697.tif 000004
【図２】
2019207697.tif 000005
【図３】
2019207697.tif 000006
【図４】
2019207697.tif 000007
【図５】
2019207697.tif 000008
【図６】
2019207697.tif 000009
【図７】
2019207697.tif 000010
【図８】
2019207697.tif 000011
【図９】
2019207697.tif 000012
【図１０】
2019207697.tif 000013
【図１１】
2019207697.tif 000014
【図１２】
2019207697.tif 000015
【図１３】
2019207697.tif 000016
【図１４】
2019207697.tif 000017
【図１５】
2019207697.tif 000018
【手続補正書】
【提出日】令和2年4月24日(2020.4.24)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００１７
【補正方法】変更
【補正の内容】
【００１７】
＊＊＊構成の説明＊＊＊
図１は、本実施の形態に係る安全通信システムの構成例を示す。
本実施の形態に係る安全通信システムは、１つまたは複数の安全マスタ装置１０と、１つまたは複数の安全スレーブ装置２０と、安全マスタ装置１０と安全スレーブ装置２０とを接続するネットワーク３０から構成される。
安全マスタ装置１０と安全スレーブ装置２０とが、１対１の安全コネクション（安全通信に用いる論理的なコネクション）を作成し、安全通信を行う。安全マスタ装置１０と安全スレーブ装置２０は、それぞれ、例えば組込み機器である。
安全マスタ装置１０は、安全スレーブ装置２０を管理する。
安全スレーブ装置２０は、例えば、安全センサに接続されている。また、安全スレーブ装置２０は、例えば、アクチュエータを制御する。
安全スレーブ装置２０は、安全通信において安全センサのセンサ値を安全マスタ装置１０に通知する。また、安全マスタ装置１０は、例えば、安全センサのセンサ値に基づき、安全通信においてアクチュエータの制御値を安全スレーブ装置２０に通知する。そして、安全スレーブ装置２０は、安全マスタ装置１０から通知された制御値を用いてアクチュエータを制御する。以上の処理手順が安全応答時間内に完了している必要がある。
図１では、１対の安全マスタ装置１０と安全スレーブ装置２０が示されているが、前述のように、安全通信システムに含まれる安全マスタ装置１０と安全スレーブ装置２０の数は、図１の例に限定されない。
安全マスタ装置１０は、マスタ装置に相当する。また、安全スレーブ装置２０は、スレーブ装置に相当する。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００３０
【補正方法】変更
【補正の内容】
【００３０】
安全通信層２０００には、安全アプリケーションインタフェース部２０００１、安全コネクション確立処理部２０００２、安全ＰＤＵ生成部２０００３、安全ＰＤＵ検査部２０００４、チェックサム交渉部２０００５、安全パラメータ管理部２０００７及び通信周期
検証部２０００８が含まれる。
安全通信層２０００の構成は、安全通信層１０００と同様である。
安全コネクション確立処理部２０００２及びチェックサム交渉部２０００５は、安全マスタ装置１０に対向して通信を行うため、安全コネクション確立処理部１０００２及びチェックサム交渉部１０００５とは処理の流れが異なる。
安全通信層２０００と安全通信層１０００における、これら以外の差分を以下に記載する。
安全パラメータ管理部２０００７は、安全スレーブ装置２０に必要な安全パラメータを保持する。
安全パラメータ管理部２０００７が保持する安全パラメータは以下の通りである。
（１）安全マスタ装置１０についての下記の値：
（Ａ）安全通信周期（安全ＰＤＵ送信レートから逆算可能）
（Ｂ）安全データサイズ
（Ｃ）使用すべき多項式の識別情報
通信周期検証部２０００８は、チェックサム交渉部２０００５からの指示により、チェックサム交渉部１０００５が選択した仮選択多項式を用いての安全ＰＤＵの生成処理及び検査処理が、安全パラメータにて規定された安全通信周期内に完了するか否かの検証を行う。つまり、通信周期検証部２０００８は、選択された仮選択多項式を用いた計算が安全スレーブ装置２０で規定の期限（安全通信周期の終期）までに完了するか否かを判定する。なお、上記の安全ＰＤＵの生成処理とは、ＣＲＣの生成を含む、安全マスタ装置１０に送信する安全ＰＤＵを生成する処理である。上記の安全ＰＤＵの検査処理とは、安全マスタ装置１０から受信した安全ＰＤＵに対するＣＲＣによる検査を行う処理である。
安全スレーブ装置２０は、一般的に作成する安全コネクション数が少ないため安全通信による負荷は小さいが、計算リソースも限られているため、上記の検証が必要である。
また、チェックサム交渉部１０００５で選択された仮選択多項式が安全スレーブ装置２０ではサポートされていない可能性もある。このため、通信周期検証部２０００８は、安全通信周期についての検証を行う前に、仮選択多項式が安全スレーブ装置２０でサポートされているか否かを検証する。
安全通信周期についての検証の方法については、安全マスタ装置１０の通信周期検証部１０００８と同様に、既存手法を適用するものとして、詳細は説明しない。
前述したように、通信周期検証部２０００８は、チェックサム交渉部１０００５及び通信周期検証部１０００８とともに、判定部に相当する。また、通信周期検証部２０００８により行われる処理は、チェックサム交渉部１０００５により行われる処理及び通信周期検証部１０００８により行われる処理とともに、判定処理に相当する。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００４５
【補正方法】変更
【補正の内容】
【００４５】
ステップＳ０１１では、チェックサム交渉部１０００５が、安全コネクションごとに、安全通信周期を延長できるか否かを判定する。つまり、チェックサム交渉部１０００５は、仮に安全コネクションの安全通信周期を延長しても、必要な安全応答時間、可用性を維持できるか否かを判定する。
チェックサム交渉部１０００５は、具体的には、前述の（式１）及び（式２）を適用して、安全通信周期の延長が可能であるか否かを判定する。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００５５
【補正方法】変更
【補正の内容】
【００５５】
ステップＳ０２２では、安全マスタ装置１０のチェックサム交渉部１０００５が、安全スレーブ装置２０から計算能力情報を受信する。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００６０
【補正方法】変更
【補正の内容】
【００６０】
仮選択多項式を用いたＣＲＣ計算が安全通信周期内に完了する場合（ステップＳ０２４でＹＥＳ）は、処理はステップＳ００６に遷移する。一方、仮選択多項式を用いたＣＲＣ計算が安全通信周期内に完了しない場合（ステップＳ０２４でＮＯ）は、処理はステップＳ００８に遷移する。ステップＳ００６以降の処理及びステップＳ００８以降の処理は実施の形態１で説明した通りなので、説明を省略する。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００６４
【補正方法】変更
【補正の内容】
【００６４】
＊＊＊構成の説明＊＊＊
図１３は、本実施の形態に係る情報処理装置５０のハードウェア構成例を示す。
情報処理装置５０は、プロセッサ５０１、メモリ５０２、通信インタフェース５０３及びこれらを接続するバス５０４を備える。
情報処理装置５０は、コンピュータである。
プロセッサ５０１は、メモリ１０２上に展開された、後述する選択部５００１、判定部５００２及び指定部５００３を実行する。
選択部５００１、判定部５００２及び指定部５００３は、例えば、プログラムで実現される。
通信インタフェース５０３は、指定された生成多項式を安全マスタ装置１０に通知する。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００６６
【補正方法】変更
【補正の内容】
【００６６】
情報処理装置５０は、選択部５００１、判定部５００２及び指定部５００３で構成される。
図１４では、プロセッサ５０１が選択部５００１、判定部５００２及び指定部５００３の機能を実現するプログラムを実行している状態を模式的に表している。
【国際調査報告】
2019207697.tif 000019
2019207697.tif 000020
2019207697.tif 000021
2019207697.tif 000022