(57)【特許請求の範囲】
【請求項１】
フレームの受信処理を実行する端末機能部と、受信したフレームを前記端末機能部に出力するとともに、前記受信したフレームをカットスルー方式によって転送するスイッチ処理部を備える通信装置において、
前記フレームは、
送信先のアドレスが格納されるデスティネーションアドレス（ＤＡ）フィールドと、
送信元のアドレスが格納されるソースアドレス（ＳＡ）フィールドと、
フレーム長が格納されるタイプフィールドと、
送信すべき任意のデータが格納されるユーザデータフィールドと、
前記ＤＡフィールド、前記ＳＡフィールド、前記タイプフィールド、および前記ユーザデータフィールドに格納されたデータの誤り検出に用いられるチェックコードであるＦＣＳコードが格納されるフレームチェックシーケンス（ＦＣＳ）フィールドと、
を有するフレームであって、前記ユーザデータフィールドは、送信すべき前記ユーザデータが格納されるデータフィールドと、前記ＤＡフィールド、前記ＳＡフィールド、前記タイプフィールド、および前記データフィールドに格納されたデータの誤り検出に用いられるチェックコードであるＤＣＳコードが格納されるデータチェックシーケンス（ＤＣＳ）フィールドとを有し、
前記スイッチ処理部は、
前記受信したフレームの先頭から所定の演算を行って、前記ＤＡフィールド、前記ＳＡフィールド、前記タイプフィールド、および前記データフィールドに格納されたデータからＤＣＳコードを、前記ＤＡフィールド、前記ＳＡフィールド、前記タイプフィールド、前記データフィールド、および前記ＤＣＳフィールドに格納されたデータからＦＣＳコードをそれぞれ計算するコード計算部と、
前記コード計算部によって計算されたＤＣＳコードと、前記受信したフレームの前記ＤＣＳフィールドに格納されているＤＣＳコードとを比較したＤＣＳチェック結果を前記端末機能部に出力するＤＣＳチェック部と、
前記コード計算部によって計算されたＦＣＳコードと、前記受信したフレームのＦＣＳフィールドに格納されているＦＣＳコードとを比較したＦＣＳチェック結果を出力するＦＣＳチェック部と、
前記ＦＣＳチェック結果が一致している場合には、前記受信したフレームをスルーで転送し、前記ＦＣＳチェック結果が不一致の場合には、前記受信したフレームのＦＣＳフィールドに、前記計算したＦＣＳコードを格納して転送するＦＣＳ変換部と、
前記ＦＣＳチェック結果が不一致の場合、インクリメントするエラーフレーム受信カウンタと、
を備え、
前記端末機能部は、
前記ＤＣＳチェック結果が一致の場合には前記スイッチ処理部から入力されるフレームに基づいた通常処理を実行し、前記ＤＣＳチェック結果が不一致の場合には異常処理を実行すること、
を特徴とする通信装置。
【請求項２】
前記ＤＣＳコードおよび前記ＦＣＳコードとして巡回符号（ＣＲＣ）コードを用い、
前記コード計算部は、
前記所定の演算としてＣＲＣ計算を行うこと、
を特徴とする請求項１に記載の通信装置。
【請求項３】
フレームの受信処理を実行する端末機能部と、受信したフレームを前記端末機能部に出力するとともに、前記受信したフレームをカットスルー方式によって転送するスイッチ処理部を備える通信装置において、
前記フレームは、
送信先のアドレスが格納されるデスティネーションアドレス（ＤＡ）フィールドと、
送信元のアドレスが格納されるソースアドレス（ＳＡ）フィールドと、
フレーム長が格納されるタイプフィールドと、
送信すべきユーザデータが格納されるデータフィールドと、
前記ＤＡフィールド、前記ＳＡフィールド、前記タイプフィールド、および前記データフィールドに格納されたデータの誤り検出に用いられるチェックコードであるＤＣＳコードが格納されるデータチェックシーケンス（ＤＣＳ）フィールドと、
前記ＤＡフィールド、前記ＳＡフィールド、前記タイプフィールド、前記データフィールド、および前記ＤＣＳフィールドに格納されたデータの誤り検出に用いられるチェックコードであるＦＣＳコードが格納されるフレームチェックシーケンス（ＦＣＳ）フィールドと、
を有し、
前記スイッチ処理部は、
前記受信したフレームの先頭から所定の演算を行って、前記ＤＡフィールド、前記ＳＡフィールド、前記タイプフィールド、および前記データフィールドに格納されたデータからＤＣＳコードを、前記ＤＡフィールド、前記ＳＡフィールド、前記タイプフィールド、前記データフィールド、および前記ＤＣＳフィールドに格納されたデータからＦＣＳコードをそれぞれ計算するコード計算部と、
前記コード計算部によって計算されたＤＣＳコードと、前記受信したフレームの前記ＤＣＳフィールドに格納されているＤＣＳコードとを比較したＤＣＳチェック結果を前記端末機能部に出力するＤＣＳチェック部と、
前記コード計算部によって計算されたＦＣＳコードと、前記受信したフレームのＦＣＳフィールドに格納されているＦＣＳコードとを比較したＦＣＳチェック結果を出力するＦＣＳチェック部と、
前記ＦＣＳチェック結果が一致している場合には、前記受信したフレームをスルーで転送し、前記ＦＣＳチェック結果が不一致の場合には、前記受信したフレームのＦＣＳフィールドに、前記計算したＦＣＳコードを格納して転送するＦＣＳ変換部と、
前記ＦＣＳチェック結果が不一致の場合、インクリメントするエラーフレーム受信カウンタと、
を備え、
前記端末機能部は、
前記ＤＣＳチェック結果が一致の場合には前記スイッチ処理部から入力されるフレームに基づいた通常処理を実行し、前記ＤＣＳチェック結果が不一致の場合には異常処理を実行し、
前記スイッチ処理部は、
前記受信したフレームのフレーム長を監視してアライメントエラーを検出するアライメントエラー検出部と、
前記アライメントエラー検出部によってアライメントエラーが検出された場合、不足分のダミーデータを生成するダミーデータ生成部と、
前記アライメントエラー検出部によってアライメントエラーが検出された場合、カウント値をインクリメントするアライメントエラーカウンタと、
をさらに備え、
前記コード計算部は、
前記アライメントエラー検出部によってアライメントエラーが検出された場合、前記受信したフレームに引き続いて前記ダミーデータ生成部によって生成されたダミーデータを用いてＤＣＳコードおよびＦＣＳコードを計算し、
前記ＦＣＳ変換部は、
前記アライメントエラー検出部によってアライメントエラーが検出された場合、前記受信したフレームにダミーデータを付加したフレームを生成し、生成したフレームのＤＣＳフィールドおよびＦＣＳフィールドに前記コード計算部がダミーデータを用いて計算したＤＣＳコードおよびＦＣＳコードを格納して転送すること、
を特徴とする通信装置。
【請求項４】
フレームを受信し、この受信したフレームをフレームの受信処理を実行する外部の端末機能装置に出力するとともに、前記受信したフレームをカットするー方式によって転送するスイッチ処理装置において、
前記フレームは、
送信先のアドレスが格納されるデスティネーションアドレス（ＤＡ）フィールドと、
送信元のアドレスが格納されるソースアドレス（ＳＡ）フィールドと、
フレーム長が格納されるタイプフィールドと、
送信すべき任意のデータが格納されるユーザデータフィールドと、
前記ＤＡフィールド、前記ＳＡフィールド、前記タイプフィールド、および前記ユーザデータフィールドに格納されたデータの誤り検出に用いられるチェックコードであるＦＣＳコードが格納されるフレームチェックシーケンス（ＦＣＳ）フィールドと、
を有するフレームであって、前記ユーザデータフィールドは、送信すべき前記ユーザデータが格納されるデータフィールドと、前記ＤＡフィールド、前記ＳＡフィールド、前記タイプフィールド、および前記データフィールドに格納されたデータの誤り検出に用いられるチェックコードであるＤＣＳコードが格納されるデータチェックシーケンス（ＤＣＳ）フィールドとを有し、
前記受信したフレームの先頭から所定の演算を行って、前記ＤＡフィールド、前記ＳＡフィールド、前記タイプフィールド、および前記データフィールドに格納されたデータからＤＣＳコードを、前記ＤＡフィールド、前記ＳＡフィールド、前記タイプフィールド、前記データフィールド、および前記ＤＣＳフィールドに格納されたデータからＦＣＳコードをそれぞれ計算するコード計算部と、
前記コード計算部によって計算されたＤＣＳコードと、前記受信したフレームの前記ＤＣＳフィールドに格納されているＤＣＳコードとを比較したＤＣＳチェック結果を外部端末機能装置に出力するＤＣＳチェック部と、
前記コード計算部によって計算されたＦＣＳコードと前記受信したフレームのＦＣＳフィールドに格納されているＦＣＳコードとを比較したＦＣＳチェック結果を出力するＦＣＳチェック部と、
前記ＦＣＳチェック結果が一致している場合には、前記受信したフレームをスルーで転送し、前記ＦＣＳチェック結果が不一致の場合には、前記受信したフレームのＦＣＳフィールドに、前記計算したＦＣＳコードを格納して転送するＦＣＳ変換部と、
前記ＦＣＳチェック結果が不一致の場合、インクリメントするエラーフレーム受信カウンタと、
を備えることを特徴とするスイッチ処理装置。
【請求項５】
前記ＤＣＳコードおよび前記ＦＣＳコードとして巡回符号（ＣＲＣ）コードを用い、
前記コード計算部は、
前記所定の演算としてＣＲＣ計算を行うこと、
を特徴とする請求項４に記載のスイッチ処理装置。
【請求項６】
フレームを受信し、この受信したフレームをフレームの受信処理を実行する外部の端末機能装置に出力するとともに、前記受信したフレームをカットスルー方式によって転送するスイッチ処理装置において、
前記フレームは、
送信先のアドレスが格納されるデスティネーションアドレス（ＤＡ）フィールドと、
送信元のアドレスが格納されるソースアドレス（ＳＡ）フィールドと、
フレーム長が格納されるタイプフィールドと、
送信すべきユーザデータが格納されるデータフィールドと、
前記ＤＡフィールド、前記ＳＡフィールド、前記タイプフィールド、および前記データフィールドに格納されたデータの誤り検出に用いられるチェックコードであるＤＣＳコードが格納されるデータチェックシーケンス（ＤＣＳ）フィールドと、
前記ＤＡフィールド、前記ＳＡフィールド、前記タイプフィールド、前記データフィールド、および前記ＤＣＳフィールドに格納されたデータの誤り検出に用いられるチェックコードであるＦＣＳコードが格納されるフレームチェックシーケンス（ＦＣＳ）フィールドと、
を有し、
前記受信したフレームの先頭から所定の演算を行って、前記ＤＡフィールド、前記ＳＡフィールド、前記タイプフィールド、および前記データフィールドに格納されたデータからＤＣＳコードを、前記ＤＡフィールド、前記ＳＡフィールド、前記タイプフィールド、前記データフィールド、および前記ＤＣＳフィールドに格納されたデータからＦＣＳコードをそれぞれ計算するコード計算部と、
前記コード計算部によって計算されたＤＣＳコードと、前記受信したフレームの前記ＤＣＳフィールドに格納されているＤＣＳコードとを比較したＤＣＳチェック結果を外部端末機能装置に出力するＤＣＳチェック部と、
前記コード計算部によって計算されたＦＣＳコードと前記受信したフレームのＦＣＳフィールドに格納されているＦＣＳコードとを比較したＦＣＳチェック結果を出力するＦＣＳチェック部と、
前記ＦＣＳチェック結果が一致している場合には、前記受信したフレームをスルーで転送し、前記ＦＣＳチェック結果が不一致の場合には、前記受信したフレームのＦＣＳフィールドに、前記計算したＦＣＳコードを格納して転送するＦＣＳ変換部と、
前記ＦＣＳチェック結果が不一致の場合、インクリメントするエラーフレーム受信カウンタと、
を備え、
前記受信したフレームのフレーム長を監視してアライメントエラーを検出するアライメントエラー検出部と、
前記アライメントエラー検出部によってアライメントエラーが検出された場合、不足分のダミーデータを生成するダミーデータ生成部と、
前記アライメントエラー検出部によってアライメントエラーが検出された場合、カウント値をインクリメントするアライメントエラーカウンタと、
をさらに備え、
前記コード計算部は、
前記アライメントエラー検出部によってアライメントエラーが検出された場合、前記受信したフレームに引き続いて前記ダミーデータ生成部によって生成されたダミーデータを用いてＤＣＳコードおよびＦＣＳコードを計算し、
前記ＦＣＳ変換部は、
前記アライメントエラー検出部によってアライメントエラーが検出された場合、前記受信したフレームにダミーデータを付加したフレームを生成し、生成したフレームのＤＣＳフィールドおよびＦＣＳフィールドに前記コード計算部がダミーデータを用いて計算したＤＣＳコードおよびＦＣＳコードを格納して転送すること、
を特徴とするスイッチ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、レイヤ２フレームを用いたネットワークシステムに適用される通信装置に関するものであり、特に、カットスルー方式のネットワークシステムに適用される通信装置およびスイッチ処理装置に関するものである。
【背景技術】
【０００２】
従来から、通信におけるフレームのエラー検出に巡回符号（ＣＲＣ：Cyclic  Redundancy  Check）を用いた種々の技術が考えられている。たとえば、１台のマスタノード装置と、複数台のスレーブノード装置とでリング型ネットワークのIEEE  Standard  802.5  Token  Ringを構成する。スレーブノード装置は、受信フレームが正常であった場合にはデータおよびＢＣＣに正規のスクランブル処理を施したフレームを送信し、受信したフレームが異常であった場合（エラーを検出した場合）にはデータおよびＢＣＣに正規のスクランブル処理とは異なるスクランブル処理を施したフレームを送信する。すなわち、一度エラーが検出されたフレームは、スレーブノード装置が正規のデスクランブル処理を施した場合必ずエラーとなるフレームを巡回させて、後続するスレーブノード装置にエラーを発生させるとともに、マスタノード装置にもエラーが発生したことを認識させるようにしている（たとえば、特許文献１参照）。
【０００３】
【特許文献１】特開平８−３７５４１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、近年では、産業用ネットワークシステムにおいても、リアルタイム性やメンテナンス性が重視され、イーサネット（登録商標）の技術の導入が積極的に進められている。
【０００５】
イーサネット（登録商標）を用いたネットワーク（以下、レイヤ２ネットワークとする）においても、イーサネット（登録商標）フレーム（以下、レイヤ２フレームとする）の異常検出（データ化けの検出）は、ＩＥＥＥ８０２．３に定義されているように、ＣＲＣを採用している。
【０００６】
具体的には、レイヤ２フレームをデスティネーションアドレスフィールド、ソースアドレスフィールド、タイプフィールド、データフィールド、およびフレームチェックシーケンス（ＦＣＳ：Frame  Check  Sequence）フィールドで構成し、ネットワークに配置されるノード装置（通信装置）は、レイヤ２フレームを生成する際に宛先アドレス（デスティネーションアドレス）、送信元アドレス（ソースアドレス）、タイプ、およびデータのＣＲＣ計算を実施し、計算結果をＦＣＳフィールドに格納して送信する。レイヤ２フレームを受信した通信装置は、受信したレイヤ２フレームのデスティネーションアドレス、ソースアドレス、タイプ、およびデータのＣＲＣ計算を実施し、計算結果と受信したレイヤ２フレームのＦＣＳフィールドに格納されているＣＲＣ、すなわち送信時のＣＲＣ計算結果とを比較してデータ化けを検出する。
【０００７】
一方、レイヤ２フレームのスイッチング方式には、カットスルー型とストアアンドフォワード型がある。ストアアンドフォワード型は、レイヤ２フレームを受信した後に、受信したレイヤ２フレームの転送先を判断してレイヤ２フレームを転送する。これに対して、カットスルー型は、レイヤ２フレームのフレーム開始デリミタの後にレイヤ２フレームの送信先のアドレスが格納されるデスティネーションアドレスのフィールドが位置することを利用して、デスティネーションアドレスのフィールドを受信した時点で転送先を判断し、判断結果に基づいてレイヤ２フレームの送信を開始する。
【０００８】
したがって、レイヤ２フレームのデスティネーションアドレスのフィールドを受信した時点で転送を開始するカットスルー型の方が、レイヤ２フレームの最終フィールド（ＦＣＳフィールド）まで受信した後に転送を開始するストアアンドフォワード型スイッチング方式よりも、レイヤ２フレームの受信を開始してから受信したレイヤ２フレームの送信を開始するまでの転送遅延時間が短い。そのため、リアルタイム性の保証が要求される産業用ネットワークシステムでは、カットスルー型スイッチング方式を用いた通信装置を採用することが多い。
【０００９】
しかしながら、上記特許文献１に記載の従来技術では、エラーの有無を判定してデータからＢＣＣ（レイヤ２フレームのＦＣＳに相当）に施すスクランブル処理を決定するので、レイヤ２フレームの宛先アドレスフィールドを受信すると転送を開始するカットスルー型スイッチング方式を用いることができないという問題があった。
【００１０】
また、ストアアンドフォワード型スイッチング方式を用いたとしても、上記特許文献１に記載の従来技術では、一度エラーを検出したレイヤ２フレームは、後続する通信装置においても必ずエラーが発生するようにするとともに、確実にマスタ通信装置にエラーが発生したことを認識させることはできるが、エラーが発生した伝送路を特定することができないという問題もあった。
【００１１】
すなわち、上記特許文献１に記載の従来技術では、一度エラーが発生するとエラーが発生するフレームがネットワーク上から廃棄されるまで転送されつづけるので、通信装置がエラー情報を保持するようにしても、伝送路によって発生したエラーであるのか、エラーが発生するレイヤ２フレームを受信したために発生したエラーであるのかを判定することはできないという問題があった。
【００１２】
また、レイヤ２フレームのエラーを検出したときには、レイヤ２フレームのほとんどを転送しているカットスルー型スイッチング方式を用いた通信装置によってネットワークを構成した場合も、ネットワークから廃棄されるまでエラーが発生するレイヤ２フレームが転送されるので、上記特許文献１に記載の従来技術と同様に、エラーが発生した伝送路を特定することができない。
【００１３】
特に、トークンパッシング方式で見られるようにネットワークに接続されている通信装置がレイヤ２フレームを転送し、かつ伝送路の異常個所が数箇所ある場合には、伝送路の異常個所の判断は不可能であった。
【００１４】
本発明は、上記に鑑みてなされたものであって、カットスルー型スイッチング方式を用いた場合でも、エラーが発生した伝送路を特定することができる通信装置を得ることを目的とする。
【課題を解決するための手段】
【００１５】
上述した課題を解決し、目的を達成するために、本発明は、フレームの受信処理を実行する端末機能部と、受信したフレームを前記端末機能部に出力するとともに、前記受信したフレームをカットスルー方式によって転送するスイッチ処理部を備える通信装置において、前記フレームは、送信先のアドレスが格納されるデスティネーションアドレス（ＤＡ）フィールドと、送信元のアドレスが格納されるソースアドレス（ＳＡ）フィールドと、フレーム長が格納されるタイプフィールドと、送信すべき任意のデータが格納されるユーザデータフィールドと、前記ＤＡフィールド、前記ＳＡフィールド、前記タイプフィールド、および前記ユーザデータフィールドに格納されたデータの誤り検出に用いられるチェックコードであるＦＣＳコードが格納されるフレームチェックシーケンス（ＦＣＳ）フィールドと、を有するフレームであって、前記ユーザデータフィールドは、送信すべき前記ユーザデータが格納されるデータフィールドと、前記ＤＡフィールド、前記ＳＡフィールド、前記タイプフィールド、および前記データフィールドに格納されたデータの誤り検出に用いられるチェックコードであるＤＣＳコードが格納されるデータチェックシーケンス（ＤＣＳ）フィールドとを有し、前記スイッチ処理部は、前記受信したフレームの先頭から所定の演算を行って、前記ＤＡフィールド、前記ＳＡフィールド、前記タイプフィールド、および前記データフィールドに格納されたデータからＤＣＳコードを、前記ＤＡフィールド、前記ＳＡフィールド、前記タイプフィールド、前記データフィールド、および前記ＤＣＳフィールドに格納されたデータからＦＣＳコードをそれぞれ計算するコード計算部と、前記コード計算部によって計算されたＤＣＳコードと、前記受信したフレームの前記ＤＣＳフィールドに格納されているＤＣＳコードとを比較したＤＣＳチェック結果を前記端末機能部に出力するＤＣＳチェック部と、前記コード計算部によって計算されたＦＣＳコードと、前記受信したフレームのＦＣＳフィールドに格納されているＦＣＳコードとを比較したＦＣＳチェック結果を出力するＦＣＳチェック部と、前記ＦＣＳチェック結果が一致している場合には、前記受信したフレームをスルーで転送し、前記ＦＣＳチェック結果が不一致の場合には、前記受信したフレームのＦＣＳフィールドに、前記計算したＦＣＳコードを格納して転送するＦＣＳ変換部と、前記ＦＣＳチェック結果が不一致の場合、インクリメントするエラーフレーム受信カウンタと、を備え、前記端末機能部は、前記ＤＣＳチェック結果が一致の場合には前記スイッチ処理部から入力されるフレームに基づいた通常処理を実行し、前記ＤＣＳチェック結果が不一致の場合には異常処理を実行すること、を特徴とする。
【発明の効果】
【００１６】
この発明にかかる通信装置によれば、ＤＣＳチェック結果はフレームの転送中に１度でもデータ化けが発生した場合には不一致となり、ＦＣＳチェック結果は自装置と隣接する通信装置間の伝送路に異常が発生した場合のみ不一致となるようにしているので、フレーム内のデータの正当性と伝送路に異常が発生したことを認識することが可能となり、カットスルー型スイッチング方式を用いた場合でも、ネットワーク上にエラーフレームが巡回することなく伝送路の異常個所を特定することができるという効果を奏する。
【発明を実施するための最良の形態】
【００１７】
以下に、本発明にかかる通信装置およびスイッチ処理装置の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１８】
実施の形態１．
図１〜図１２を参照してこの発明の実施の形態１を説明する。図１は、この発明における実施の形態１のコントローラ（特許請求の範囲でいうところの通信装置）が適用される通信システムの構成の一例を示す図である。図１において、通信システムは、複数（この場合は４台）のコントローラ１−１〜１−４を備え、コントローラ１−１は伝送路２−１を介してコントローラ１−２にフレームを送信し、コントローラ１−２は伝送路２−２を介してコントローラ１−３にフレームを送信し、コントローラ１−３は伝送路２−３を介してコントローラ１−４にフレームを送信し、コントローラ１−４は伝送路２−４を介してコントローラ１−１にフレームを送信するリンク型ネットワークを構成している。
【００１９】
図２は、一般的な、イーサネット（登録商標）フレーム（以下、レイヤ２フレームとする）の構成を示す図である。図２において、レイヤ２フレームは、送信先のアドレスが格納される６バイトのデスティネーションアドレス（以下、ＤＡとする）フィールド５０と、送信元のアドレスが格納される６バイトのソースアドレス（以下、ＳＡとする）フィールド５１と、フレームのタイプが格納される２バイトのタイプ（図中ではＴｙｐｅ）フィールド５２と、ユーザデータが格納される４６〜１５００バイトのＤＡＴＡフィールド５３と、誤り検出のためのコード（ＣＲＣ計算値）が格納される４バイトのフレームチェックシーケンス（以下、ＦＣＳとする）フィールド５４とを有している。
【００２０】
図３は、この発明における実施の形態１のコントローラ１−１〜１−４が用いるフレームの構成を示す図である。図３において、フレームは、送信先のアドレスが格納される６バイトのデスティネーションアドレス（以下、ＤＡとする）フィールド６０と、送信元のアドレスが格納される６バイトのソースアドレス（以下、ＳＡとする）フィールド６１と、フレームのタイプが格納される２バイトのタイプ（図中ではＴｙｐｅ）フィールド６２と、ユーザデータが格納される４６〜１４９６バイトのＤＡＴＡフィールド６３と、エラー検出のためのコード（ＣＲＣ計算値）が格納される４バイトのデータチェックシーケンス（以下、ＤＣＳとする）フィールド６４と、エラー検出のためのコード（ＣＲＣ計算値）が格納される４バイトのフレームチェックシーケンス（以下、ＦＣＳとする）フィールド６５とを有している。
【００２１】
なお、ここでフィールドとは、フレームに格納されるデータの格納位置のことであり、コードとは、フレームの示されたフィールドに対して特定のビット列（生成多項式）で排他的論理和による除算を行った値のことである。
【００２２】
図２および図３からわかるように、この発明における実施の形態１の通信装置が用いるフレームは、レイヤ２フレームにおいてユーザデータを格納するＤＡＴＡフィールド５３の一部（４バイト）にＤＣＳフィールド６４を設けている。ＤＣＳフィールド６４には、ＤＡフィールド６０からＤＡＴＡフィールド６３までのＣＲＣ計算値が格納され、ＦＣＳフィールド６５には、ＤＡフィールド６０からＤＣＳフィールド６４（レイヤ２フレームのＤＡ５０からＤＡＴＡ５３に相当）までのＣＲＣ計算値が格納される。
【００２３】
先の図１に示したコントローラ１−１〜１−４は、全て同じ機能を備えている。コントローラ１−１の構成を示す図４を用いてコントローラの機能を説明する。図４において、コントローラ１−１は、ＣＲＣ計算部２１、ＤＣＳチェック部２２、ＦＣＳチェック部２３、アドレス格納部２４、フレームスイッチング部２５、バッファ２６、ＦＣＳ変換部２７、およびエラーフレーム受信カウンタ２９を有するスイッチ処理部１２と、端末機能部１１とを備えている。
【００２４】
なお、スイッチ処理部１２については、伝送路２−４を介してコントローラ１−４から受信したフレームを伝送路２−１を介してコントローラ１−２に転送する転送処理に関する部分のみを記載している。
【００２５】
ＣＲＣ計算部２１は、伝送路２−４から受信するフレームのＣＲＣ計算値を計算する。ＤＣＳチェック部２２は、ＣＲＣ計算部２１によって計算されたＤＡフィールド６０からＤＡＴＡフィールド６３までのＣＲＣ計算結果とＤＣＳフィールド６４に格納されているＣＲＣ計算値とを比較して、ＤＡフィールド６０からＤＡＴＡフィールド６３までのエラーの有無をチェックする。
【００２６】
ＦＣＳチェック部２３は、ＣＲＣ計算部２１によって計算されたＤＡフィールド６０からＤＣＳフィールド６４までのＣＲＣ計算結果とＦＣＳフィールド６５に格納されているＣＲＣ計算値とを比較して、ＤＡフィールド６０からＤＣＳフィールド６４までのエラーの有無、すなわちフレーム全体のエラーの有無をチェックする。
【００２７】
アドレス格納部２４は、予め付与されている自装置のアドレスを記憶する。フレームスイッチング部２５は、ＳＡフィールド６１に格納されているアドレスとアドレス格納部２４に格納されている自装置のアドレスとが一致した場合にはフレームを端末機能部１１に出力し、ＳＡフィールド６１に格納されているアドレスとアドレス格納部２４に格納されている自装置のアドレスとが不一致の場合には、フレームをコピーして端末機能部１１とバッファ２６とに出力する。
【００２８】
バッファ２６は、ＦＩＦＯ（First-In  First-Out）で構成され、フレームスイッチング部２５から入力されるフレームを所定の時間遅延させてＦＣＳ変換部２７に出力する。所定の時間とは、伝送路２−４からのフレームの受信完了したタイミングからＦＣＳ変換部２７がＦＣＳチェック部２３によって判定されたＦＣＳチェック結果、およびＣＲＣ計算部２１よって計算されたＣＲＣ計算値を取得するまでの時間である。したがって、コントローラ１−１が伝送路２−４からのフレームの受信を開始してからフレームを伝送路２−１に出力するまでのフレームの転送に要する時間は数バイト分の遅延時間となる（ストアアンドフォワード方式とは異なりカットスルー方式を意味する）。
【００２９】
図５は、伝送路２−４から入力されたフレームがコントローラ１−１によってリピートされて伝送路２−１に出力される状態を示している。バッファ２６は、フレームスイッチング部２５から入力されるフレームを所定の時間である時間Ｔ分遅延させてＦＣＳ変換部２７に出力する。この時間Ｔは、伝送路２−４からのフレームの受信が完了した時刻ｔ０から、ＦＣＳ変換部２７がＦＣＳチェック部２３のチェック結果（ＦＣＳチェック結果）およびＣＲＣ計算部２１のＣＲＣ計算結果を取得し、必要に応じて受信したフレームのＦＣＳフィールド６５に格納されているＣＲＣ計算値を変更して伝送路２−１にフレームの送信が可能となる処理が完了する時刻ｔ１までの時間である。
【００３０】
ＦＣＳ変換部２７は、ＦＣＳチェック部２３のＦＣＳチェック結果に基づいてバッファ２６から入力されるフレームのＦＣＳフィールド６５に格納されているＣＲＣ計算値を変更するか否かを判定する。判定の結果、ＣＲＣ計算値を変更する場合には、ＣＲＣ計算部２１によって計算されたＤＡフィールド６０からＤＣＳフィールド６４までのＣＲＣ計算結果をＦＣＳフィールド６５に格納し、ＣＲＣ計算値変更後のフレームを伝送路２−１に送信する。判定の結果、ＣＲＣ計算値を変更しない場合には、バッファ２６から入力されたフレームをそのまま伝送路２−１に出力する。
【００３１】
エラーフレーム受信カウンタ２９は、ＦＣＳチェック部２３のＦＣＳチェック結果に基づいてエラーと判定されたフレームの受信数をカウントする。
【００３２】
端末機能部１１は、ＤＣＳチェック部２２のチェック結果（ＤＣＳチェック結果）に基づいてフレームスイッチング部２５から入力されたフレームの受信処理を行なうとともに、自装置が送信元となるフレームを生成して図示しない送信処理部を介して伝送路２−１に送信する。
【００３３】
図６は、ＤＣＳチェック結果およびＦＣＳチェック結果に対するＦＣＳ変換部２７、エラーフレーム受信カウンタ２９、および端末機能部１１の処理を示す図である。図６において、ＤＣＳチェック結果が「ＯＫ（エラーなし）」であって、かつＦＣＳチェック結果が「ＯＫ」（パターン１）の場合、ＦＣＳ変換部２７はＦＣＳフィールド６５に格納されているＣＲＣ計算値を変更しない。エラーフレーム受信カウンタ２９はカウントアップしない。また、端末機能部１１は通常処理を実行する。
【００３４】
ＤＣＳチェック結果が「ＮＧ（エラーあり）」であって、かつＦＣＳチェック結果が「ＯＫ」（パターン２）の場合、ＦＣＳ変換部２７はＦＣＳフィールド６５に格納されているＣＲＣ計算値を変更しない。エラーフレーム受信カウンタ２９はカウントアップしない。また、端末機能部１１は異常処理を実行する。
【００３５】
ＤＣＳチェック結果が「ＯＫ」であって、かつＦＣＳチェック結果が「ＮＧ」（パターン３）の場合、ＦＣＳ変換部２７はＦＣＳフィールド６５に格納されているＣＲＣ計算値をＣＲＣ計算部２１によって計算されたＣＲＣ計算値に変更する。エラーフレーム受信カウンタ２９はカウントアップする。また、端末機能部１１は通常処理を実行する。
【００３６】
ＤＣＳチェック結果が「ＮＧ」であって、かつＦＣＳチェック結果が「ＮＧ」（パターン４）の場合、ＦＣＳ変換部２７はＦＣＳフィールド６５に格納されているＣＲＣ計算値をＣＲＣ計算部２１によって計算されたＣＲＣ計算値に変更する。エラーフレーム受信カウンタ２９はカウントアップする。また、端末機能部１１は異常処理を実行する。
【００３７】
すなわち、ＦＣＳ変換部２７は、ＦＣＳチェック結果がエラーの場合のみ、送信するフレームのＦＣＳフィールド６５に、現在ＤＡフィールド６０からＤＣＳフィールド６４に格納されているデータによるＣＲＣ計算値を格納して、伝送路２−１に異常がない場合には、つぎにフレームを受信するコントローラ１−２がフレームのエラーを検出しないようにする。また、エラーフレーム受信カウンタ２９は、ＦＣＳチェック結果がエラーの場合に、カウント値をカウントアップ（インクリメント）する。そして、端末機能部１１は、ＤＣＳチェック結果がエラーの場合のみ、異常処理を実行する。
【００３８】
つぎに、図７のフローチャートを参照して、この実施の形態１のコントローラの動作を、コントローラ１−１を例に挙げて説明する。伝送路２−４を介してフレームを受信すると、ＣＲＣ計算部２１は、受信したフレームのＣＲＣ計算を開始する（ステップＳ１００）。
【００３９】
フレームスイッチング部２５は、受信しているフレームが自装置が送信したフレームであるか否かを判定する（ステップＳ１０１）。具体的には、アドレス格納部２４に記憶されている自装置のアドレスと、フレームのＳＡフィールド６１に格納されているアドレスとを比較する。アドレス格納部２４に記憶されている自装置のアドレスと、フレームのＳＡフィールド６１に格納されているアドレスとが不一致の場合、すなわち受信しているフレームが自装置の送信したフレームではない場合、フレームスイッチング部２５は、コントローラ１−２〜１−４が送信したフレームであるので、受信しているフレームをコピーして端末機能部１１に出力するとともに、バッファ２６を介してＦＣＳ変換部２７に出力する（ステップＳ１０２）。ＦＣＳ変換部２７は、バッファ２６を介して入力されるフレームの転送を開始する。
【００４０】
一方、フレームのＤＣＳフィールド６４の受信が終了すると、ＤＣＳチェック部２２は、ＣＲＣ計算部２１によって計算されたＤＡフィールド６０からＤＡＴＡフィールド６３までのＣＲＣ計算値を取得する。ＤＣＳチェック部２２は、ＣＲＣ計算部２１によって計算されたＣＲＣ計算値と、ＤＣＳフィールド６４に格納されているＣＲＣ計算値をチェック（２つの値が一致しているか否かを判定）して、ＤＣＳチェック結果を端末機能部１１に出力する（ステップＳ１０３）。
【００４１】
フレームのＦＣＳフィールド６５の受信が終了すると、ＦＣＳチェック部２３は、ＣＲＣ計算部２１によって計算されたＤＡフィールド６０からＤＣＳフィールド６４までのＣＲＣ結果を取得する。ＦＣＳチェック部２３は、ＣＲＣ計算部２１によって計算されたＣＲＣ計算値と、ＦＣＳフィールド６５に格納されているＣＲＣ計算値をチェック（２つの値が一致しているか否かを判定）して、ＦＣＳチェック結果をＦＣＳ変換部２７およびエラーフレーム受信カウンタ２９に出力する（ステップＳ１０４）。
【００４２】
ＦＣＳチェック結果が不一致（ＮＧ）の場合、ＦＣＳ変換部２７は、ＦＣＳフィールド６５のＣＲＣ計算値を変更する（ステップＳ１０６）。具体的には、ＣＲＣ計算部２１によって算出されたＤＡフィールド６０からＤＣＳフィールド６４までのＣＲＣ計算値を取得し、取得したＣＲＣ計算値をＦＣＳフィールド６５に格納する。すなわち、伝送路２−１に送信したフレームのＦＣＳフィールド６５のＣＲＣ計算値を、ＤＡフィールド６０からＤＣＳフィールド６４までのＣＲＣ計算値をＦＣＳフィールド６５に格納することで、つぎのコントローラ１−２にエラーが発生するフレームが伝搬しないようにする。
【００４３】
また、ＦＣＳチェック結果が不一致の場合、エラーフレーム受信カウンタ２９は、カウント値をインクリメントする（ステップＳ１０７）。
【００４４】
ＦＣＳチェック結果が一致（ＯＫ）の場合、コントローラ１−４が送信したフレームを正常に受信しているので、ＦＣＳ変換部２７はＦＣＳフィールド６５のＣＲＣ計算値を変更することなく伝送路２−１に転送し、エラーフレーム受信カウンタ２９はカウント値を変更しない。
【００４５】
一方、アドレス格納部２４に記憶されている自装置のアドレスと、フレームのＳＡフィールド６１に格納されているアドレスとが一致した場合、すなわち受信しているフレームが自装置が送信したフレームである場合、フレームスイッチング部２５は、受信しているフレームが自装置が送信したフレームであり、リング型ネットワーク上に配置されている全てのコントローラ１−２〜１−４にフレームが受信されたと認識して、フレームを端末機能部１１に出力する（ステップＳ１０８）。
【００４６】
スイッチ処理部１２が上述した動作を実行している際に、端末機能部１１は、スイッチ処理部１２から入力されるフレームに対してＤＣＳチェック部２２から入力されるＤＣＳチェック結果に基づいて受信処理を実行する。具体的には、先の図６を用いて説明したように、ＤＣＳチェック結果が「ＯＫ」の場合には通常処理を実行し、ＤＣＳチェック結果が「ＮＧ」の場合には異常処理を実行する。
【００４７】
通常処理においては、ＳＡフィールド６１に格納されているアドレスが自装置のアドレスの場合には、自装置が送信したフレームが他のコントローラ１−２〜１−４に認識されたと判断し、ＳＡフィールド６１に格納されているアドレスが自装置のアドレスではない場合には、他のコントローラ１−２〜１−４からの通知であると認識してＤＡＴＡフィールド６３に格納されているコマンドやデータ値などに基づいた所定の処理を実行する。
【００４８】
また、異常処理においては、異常が発生していることを他のコントローラ１−２〜１−４に通知するフレームを生成して送信するなどの所定の処理を実行する。
【００４９】
つぎに、図８〜図１１を参照して、伝送路の異常が発生した場合の通信システムの動作を説明する。なお、コントローラ１−１〜１−４のエラーフレーム受信カウンタ２９のカウント値は、初期値（この場合は「０」）であるものとする。
【００５０】
図８に示すように、伝送路２−１，２−３に異常が発生したとする。コントローラ１−１は、ＤＡフィールド６０に送信先のコントローラ１−２〜１−４のアドレスを格納し、ＳＡフィールド６１に自装置のアドレスを格納し、タイプフィールド６２にフレーム長を格納し、ＤＡＴＡフィールド６３にユーザデータを格納し、ＤＣＳフィールド６４にＤＡフィールド６０からＤＡＴＡフィールド６３のデータのＣＲＣ計算値を格納し、ＦＣＳフィールド６５にＤＡフィールド６０からＤＣＳフィールド６４のデータのＣＲＣ計算値を格納したフレームを生成して伝送路２−１に送信する。
【００５１】
コントローラ１−１が送信したフレームは、伝送路２−１に異常が発生しているので、フレーム内にデータ化けが発生する。したがって、コントローラ１−２のＤＣＳチェック部２２のＤＣＳチェック結果、およびＦＣＳチェック部２３のＦＣＳチェック結果は「ＮＧ」となる（図６に示したパターン４）。
【００５２】
したがって、ＦＣＳ変換部２７は、送信するフレームのＦＣＳフィールド６５に、受信したフレームのＤＡフィールド６０からＤＣＳフィールド６４までのＣＲＣ計算値を格納する。また、エラーフレーム受信カウンタ２９は、カウント値をインクリメントして、カウント値を「１」にする。端末機能部１１は、ＤＣＳチェック結果が「ＮＧ」であるので異常処理を実行する。
【００５３】
コントローラ１−２が転送したフレームは、伝送路２−２を介してコントローラ１−３に到達する。伝送路２−２には異常が発生していないので、コントローラ１−２が送信したフレーム内にデータ化けは発生しない。したがって、コントローラ１−３のＦＣＳチェック部２３のＦＣＳチェック結果は「ＯＫ」となる。しかし、伝送路２−１の異常によってコントローラ１−１が送信したフレームのＤＡフィールド６０からＤＣＳフィールド６４にはデータ化けが発生している。したがって、コントローラ１−３のＤＣＳチェック部２２のＤＣＳチェック結果は「ＮＧ」となる。すなわち、図６に示したパターン２となる。
【００５４】
したがって、ＦＣＳ変換部２７は、送信するフレームのＦＣＳフィールド６５を変更しない。また、図９に示すように、エラーフレーム受信カウンタ２９は、カウント値をインクリメントしないので、カウント値は「０」のままとなる。端末機能部１１は、ＤＣＳチェック結果が「ＮＧ」であるので異常処理を実行する。
【００５５】
コントローラ１−３が転送したフレームは、伝送路２−３を介してコントローラ１−４に到達する。伝送路２−３には異常が発生しているので、コントローラ１−３が送信したフレーム内にデータ化けが発生する。したがって、コントローラ１−３のＤＣＳチェック部２２のＤＣＳチェック結果、およびＦＣＳチェック部２３のＦＣＳチェック結果は「ＮＧ」となる（図６に示したパターン４）。
【００５６】
したがって、ＦＣＳ変換部２７は、送信するフレームのＦＣＳフィールド６５に、受信したフレームのＤＡフィールド６０からＤＣＳフィールド６４までのＣＲＣ計算値を格納する。また、図１０に示すように、エラーフレーム受信カウンタ２９は、カウント値をインクリメントして、カウント値を「１」にする。端末機能部１１は、ＤＣＳチェック結果が「ＮＧ」であるので異常処理を実行する。
【００５７】
コントローラ１−４が転送したフレームは、伝送路２−４を介してコントローラ１−１に到達する。伝送路２−４には異常が発生していないので、コントローラ１−４が送信したフレーム内にデータ化けは発生しない。したがって、コントローラ１−３のＦＣＳチェック部２３のＦＣＳチェック結果は「ＯＫ」となる。しかし、伝送路２−１，２−３の異常によってコントローラ１−１が送信したフレームのＤＡフィールド６０からＤＣＳフィールド６４にはデータ化けが発生している。したがって、コントローラ１−１のＤＣＳチェック部２２のＤＣＳチェック結果は「ＮＧ」となる。すなわち、図６に示したパターン２となる。
【００５８】
したがって、ＦＣＳ変換部２７は、送信するフレームのＦＣＳフィールド６５を変更しない。また、図１１に示すように、エラーフレーム受信カウンタ２９は、カウント値をインクリメントしないので、カウント値は「０」のままとなる。端末機能部１１は、ＤＣＳチェック結果が「ＮＧ」であるので異常処理を実行する。
【００５９】
このように、コントローラ１−１が送信したフレームがリング型ネットワークを構成するコントローラ１−２〜１−４を巡回する際に、伝送路２−１，２−３に異常が発生していると、異常が発生している伝送路２−１，２−３を介してフレームを受信するコントローラ１−２，１−４のエラーフレーム受信カウンタ２９だけがカウントアップされる。
【００６０】
ここで、先の図６に示したＤＣＳチェック結果およびＦＣＳチェック結果のパターンと通信システムの状態との対応を説明する。図６における「パターン１」は、ＤＣＳチェック結果およびＦＣＳチェック結果がともに「ＯＫ」であるので、フレームが送信元のコントローラから自装置まで到達するまでに１度もエラーが発生していない場合、すなわち、送信元のコントローラから自装置までの伝送路に異常が発生していない場合である。
【００６１】
「パターン２」は、ＤＣＳチェック結果が「ＮＧ」であって、かつＦＣＳチェック結果が「ＯＫ」であるので、フレームが送信元のコントローラから自装置に到達するまでにエラーが発生しているが、自装置にフレームを転送したコントローラとの間の伝送路には異常が発生していない場合である。
【００６２】
「パターン３」は、ＤＣＳチェック結果が「ＯＫ」であって、かつＦＣＳチェック結果が「ＮＧ」であるので、自装置にフレームを転送したコントローラとの間の伝送路には異常が発生しているが、ＤＡフィールド６０からＤＣＳフィールド６４にはデータ化けが発生していないので、フレームの処理は可能である場合である。すなわち、伝送路の異常によってＦＣＳフィールド６５のみにデータ化けが発生した場合である。
【００６３】
「パターン３」の場合、フレームの転送時に、ＦＣＳ変換部２７によって、ＦＣＳフィールド６５には、受信したフレームのＤＡフィールド６０からＤＣＳフィールド６４までのＣＲＣ計算値が格納されるので、結果的に送信元のコントローラが生成したフレームと同様に正しいＣＲＣ計算値が格納されたフレームとなる。
【００６４】
「パターン４」は、ＤＣＳチェック結果およびＦＣＳチェック結果がともに「ＮＧ」であるので、自装置にフレームを転送したコントローラとの間の伝送路に異常が発生している場合、または、自装置にフレームを転送したコントローラとの間の伝送路に異常が発生しており、さらにフレームの送信元のコントローラから自装置にフレームを転送したコントローラとの間にも異常が発生している場合である。
【００６５】
図１２は、この発明における実施の形態１のコントローラが適用される通信システムの構成の一例を示す図である。図１２に示した通信システムは、先の図１に示した通信システムにメンテナンス装置３が追加されている。図１に示した通信システムと同じ機能を持つ構成部分には同一符号を付し、重複する説明は省略する。
【００６６】
メンテナンス装置３は、通信システム内のコントローラ１−１〜１−４の何れか１つ（この場合は、コントローラ１−２）にケーブル４によって接続され、ケーブル４およびコントローラ１−２を介して通信システム内のコントローラ１−１〜１−４と通信可能となっている。メンテナンス装置３は、ケーブル４を介してコントローラ１−２のエラーフレーム受信カウンタ２９のカウント値を取得し、ケーブル４およびコントローラ１−２を介して、コントローラ１−１，１−３，１−４の各エラーフレーム受信カウンタ２９のカウント値を取得する。メンテナンス装置３は、取得したコントローラ１−１〜１−４のエラーフレーム受信カウンタ２９のカウント値を、図示しない表示部に表示する。なお、コントローラ１−１〜１−４の各エラーフレーム受信カウンタ２９のカウント値を取得するタイミングは、予め定められた周期毎であってもよいし、管理者によって図示しない入力部から取得要求を受けたときであってもよい。
【００６７】
このように、コントローラ１−２にメンテナンス装置３を接続することで、管理者は、通信システム内の各コントローラ１−１〜１−４の設置場所まで移動することなく、各コントローラ１−１〜１−４のエラーフレーム受信カウンタ２９のカウント値を取得することができ、伝送路２−１〜２−４の異常個所を特定することができる。
【００６８】
たとえば、通信システムが先の図１１に示した状態であるとすると、メンテナンス装置３には、コントローラ１−１のエラーフレーム受信カウンタ２９のカウント値が「０」であり、コントローラ１−２のエラーフレーム受信カウンタ２９のカウント値が「１」であり、コントローラ１−３のエラーフレーム受信カウンタ２９のカウント値が「０」であり、コントローラ１−４のエラーフレーム受信カウンタ２９のカウント値が「１」であることが表示される。よって、管理者は、コントローラ１−１とコントローラ１−２との間の伝送路２−１、およびコントローラ１−３とコントローラ１−４との間の伝送路２−３に異常があることを特定することができる。
【００６９】
以上説明したように、この実施の形態１においては、送信先のアドレスが格納されるＤＡフィールド６０と、送信元のアドレスが格納されるＳＡフィールド６１と、フレーム長が格納されるタイプフィールド６２と、送信すべきユーザデータが格納されるＤＡＴＡフィールド６３と、ＤＡフィールド６０、ＳＡフィールド６１、タイプフィールド６２、およびＤＡＴＡフィールド６３に格納されたデータの誤り検出に用いられるチェックコードであるＣＲＣ計算値が格納されるＤＣＳフィールド６４と、ＤＡフィールド６０、ＳＡフィールド６１、タイプフィールド６２、ＤＡＴＡフィールド６３、およびＤＣＳフィールド６４に格納されたデータの誤り検出に用いられるチェックコードであるＣＲＣ計算値が格納されるＦＣＳフィールド６５とで構成されるフレームの受信時に、ＣＲＣ計算部２１が受信したフレームの先頭からＣＲＣ計算を行ってＤＡフィールド６０からＤＡＴＡフィールド６３までのＣＲＣ計算値、およびＤＡフィールド６０からＤＣＳフィールド６４までのＣＲＣ計算値を計算し、ＤＣＳチェック部２２がＤＡフィールド６０からＤＡＴＡフィールド６３までのＣＲＣ計算値とＤＣＳフィールド６４に格納されているＣＲＣ計算値とを比較したＤＣＳチェック結果を端末機能部１１に出力し、ＦＣＳチェック部２３がＤＡフィールド６０からＤＣＳフィールド６４までのＣＲＣ計算値とＦＣＳフィールド６５に格納されているＣＲＣ計算値とを比較したＦＣＳチェック結果をＦＣＳ変換部２７に出力し、ＦＣＳチェック部２３は、ＦＣＳチェック結果が一致している場合には受信したフレームをスルーで転送し、ＦＣＳチェック結果が不一致の場合には受信したフレームのＦＣＳフィールド６５に、計算したＦＣＳコードを格納して転送し、エラーフレーム受信カウンタ２９がＦＣＳチェック結果が不一致のフレームをカウントし、端末機能部１１はＤＣＳチェック結果が一致している場合には通常の受信処理を実行し、ＤＣＳチェック結果が不一致の場合には異常処理を実行するようにしているため、フレーム内のデータの正当性と伝送路に異常が発生したことを認識することが可能となり、カットスルー型スイッチング方式を用いた場合でも、ネットワーク上にエラーフレームが巡回することなく伝送路の異常個所を特定することができる。
【００７０】
なお、この実施の形態１においては、受信フレームのＦＣＳコードとＤＣＳコードの計算機能をＣＲＣ計算部２１に集約するために、ＤＣＳコードを算出する対象エリアを、ＤＡフィールド６０、ＳＡフィールド６１、タイプフィールド６２、および前記データフィールド６３としたが、ＣＲＣ計算部２１をＦＣＳコード計算部とＤＣＳコード計算部の別々に配置してもよく、この場合、データフィールド６３のみをＤＣＳコード計算の対象にすることも可能である。
【００７１】
また、上記ＤＣＳコード計算部では、ＣＲＣ計算値でなく、サム値など、別のデータ誤り検出用計算値を用いることも可能である。
【００７２】
実施の形態２．
図１３および図１４を参照してこの発明の実施の形態２を説明する。実施の形態１では、伝送路の異常によってフレーム内にデータ化けが発生した場合について説明した。しかしながら、伝送路の異常によって発生するエラーはデータ化けとは限らない。たとえば、フレームの一部が欠落するような場合、すなわち、フレームは一般的にバイト単位のフィールドで構成されるが、バイト単位の端数を持つフレーム（アライメントエラーとなるフレーム）を受信することもある。この実施の形態２の通信装置は、アライメントエラーに対応するものである。
【００７３】
この発明における実施の形態２の通信装置であるコントローラが適用される通信システムは、先の図１に示した通信システムのコントローラ１−１〜１−４の代わりにコントローラ１ａ−１〜１ａ−４を備える。
【００７４】
コントローラ１ａ−１〜１ａ−４は全て同じ機能を備えている。図１３に示したコントローラ１ａ−１の構成を示すブロック図を参照してこの実施の形態２のコントローラの機能を説明する。図１３に示したコントローラ１ａ−１は、先の図４に示した実施の形態１のコントローラ１−１のＦＣＳ変換部２７の代わりにＤＣＳ・ＦＣＳ変換部３２（特許請求の範囲でいうところのＦＣＳ変換部）を備え、アライメントエラー検出部３０、ダミーデータ生成部３１、およびアライメントエラーカウンタ３３が追加されている。実施の形態１のコントローラ１−１と同じ機能を持つ構成部分には同一符号を付し、重複する説明は省略する。
【００７５】
アライメントエラー検出部３０は、受信しているフレームのフレーム長を検出して、アライメントエラーのフレームであるか否かを判定する。アライメントエラー検出部３０は、アライメントエラーを検出した場合、アライメントエラー通知をダミーデータ生成部３１、アライメントエラーカウンタ３３、およびＤＣＳ・ＦＣＳ変換部３２に出力する。ダミーデータ生成部３１に出力するアライメントエラー通知には、不足しているデータ長を含めておく。
【００７６】
ダミーデータ生成部３１は、アライメントエラー通知を受けると、アライメントエラー通知内のデータ長のダミーデータを生成する。ダミーデータ生成部３１は、生成したダミーデータをバッファ２６およびＣＲＣ計算部２１に出力する。
【００７７】
ＤＣＳ・ＦＣＳ変換部３２は、実施の形態１のＦＣＳ変換部２７の機能に加えて、アライメントエラー通知を受けた場合、ＣＲＣ計算部２１が算出したＤＡフィールド６０からＤＡＴＡフィールド６３に対応するＣＲＣ計算値（受信したフレームとダミーデータ生成部３１によって生成されたダミーデータによるＣＲＣ計算値）の反転値をＤＣＳフィールド６４に格納する。
【００７８】
アライメントエラーカウンタ３３は、アライメントエラー通知を受けると、カウント値をインクリメントして、アライメントエラーの発生回数をカウントする。
【００７９】
つぎに、この実施の形態２のコントローラの動作を、コントローラ１ａ−１を例に挙げて説明する。なお、この実施の形態２のコントローラ１ａ−１のアライメントエラーが発生してない時の動作は、ＦＣＳ変換部２７の動作をＤＣＳ・ＦＣＳ変換部３２が行なうだけで、先の図７のフローチャートを参照して説明した実施の形態１のコントローラ１−１の動作と同じであるので、ここではその説明を省略する。
【００８０】
図１４のフローチャートを参照して、アライメントエラーが発生した場合のコントローラ１ａ−１の動作を説明する。アライメントエラー検出部３０は、伝送路２−４を介して受信しているフレームのデータ長を観測する。受信しているフレームにアライメントエラーを検出すると（フレームからバイト単位の端数を検出すると）、アライメントエラー検出部３０は、アライメントエラー通知をダミーデータ生成部３１、アライメントエラーカウンタ３３、およびＤＣＳ・ＦＣＳ変換部３２に出力する（ステップＳ２００，Ｓ２０１）。
【００８１】
アライメントエラー通知を受けると、ダミーデータ生成部３１は、アライメントエラー通知内のデータ長のダミーデータを生成する（ステップＳ２０２）。ダミーデータ生成部３１は、生成したダミーデータをバッファ２６およびＣＲＣ計算部２１に出力する。
【００８２】
ＣＲＣ計算部２１は、受信したフレームのＣＲＣの計算値に引き続いてダミーデータ生成部３１から入力されるダミーデータもＣＲＣ計算の対象データとしてＣＲＣ計算を実行し、計算したＣＲＣ計算値をＤＣＳ・ＦＣＳ変換部３２に通知する。
【００８３】
一方、ＤＣＳ・ＦＣＳ変換部３２は、ダミーデータ生成部３１によって生成されたダミーデータをバッファ２６を介して受け取り、受信したフレームの不足分のデータとしてダミーデータを付加したフレームを生成する（ステップＳ２０３）。ＤＣＳ・ＦＣＳ変換部３２は、生成したフレームを伝送路２−１に送信する。
【００８４】
このとき、ＤＣＳ・ＦＣＳ変換部３２は、ＤＣＳフィールド６４には、ＣＲＣ計算部２１から通知されるＤＡフィールド６０からＤＡＴＡフィールド６３に相当するデータのＣＲＣ計算値の反転値を格納する。すなわち、転送したフレームを受信するコントローラ１−２のＤＣＳチェック結果が「ＮＧ」となるＣＲＣ計算値をＤＣＳフィールド６４に格納する。
【００８５】
また、ＤＣＳ・ＦＣＳ変換部３２は、ＦＣＳフィールド６５には、ＣＲＣ計算部２１から通知されるＤＡフィールド６０からＤＣＳフィールド６４に相当するデータのＣＲＣ計算値を格納する。すなわち、転送したフレームを受信するコントローラ１−２のＦＣＳチェック結果が「ＯＫ」となるＣＲＣ計算値をＦＣＳフィールド６５に格納する。
【００８６】
一方、アライメントエラー通知を受けると、アライメントエラーカウンタ３３は、カウント値をインクリメントする（ステップＳ２０４）。
【００８７】
以上説明したように、この実施の形態２においては、アライメントエラー検出部３０が受信したフレームのフレーム長を監視してアライメントエラーを検出し、ダミーデータ生成部３１が、アライメントエラーが検出された場合には不足分のダミーデータを生成し、ＤＣＳ・ＦＣＳ変換部３２は、受信したフレームにダミーデータを付加し他フレームを生成し、生成したフレームを用いてＣＲＣ計算部２１が算出したＤＡフィールド６０からＤＡＴＡフィールド６３までのＣＲＣ計算値の反転値をＤＣＳフィールド６４に格納するとともに、ＤＡフィールド６０からＤＣＳフィールド６４までのＣＲＣ計算値をＦＣＳフィールド６５に格納して転送するようにしているため、１度アライメントエラーが発生した場合でも、伝送路が正常な場合には後続する通信装置にアライメントエラーが発生することを防止するとともに、フレーム内のデータの正当性と伝送路に異常が発生したことを認識することが可能となり、カットスルー型スイッチング方式を用いた場合でも、ネットワーク上にエラーフレームが巡回することなく伝送路の異常個所を特定することができる。
【００８８】
なお、この実施の形態２ではアライメントエラーを例に挙げて説明したが、アンダーサイズなどのフレーム異常に対しても対応可能であることはいうまでもない。
【００８９】
また、先の図１２に示したメンテナンス装置３を備えた通信システムに、この実施の形態２のコントローラ１ａ−１〜１ａ−４を用いた場合、メンテナンス装置３は、エラーフレーム受信カウンタ２９のカウント値だけでなく、アライメントエラーカウンタ３３のカウント値も取得可能であることはいうまでもない。
【００９０】
また、実施の形態１および２においては、コントローラ１−１〜１−４，１ａ−１〜１ａ−４内に端末機能部１１とスイッチ処理部１２とを備えるようにしたが、端末機能部１１とスイッチ処理部１２とを端末機能装置とスイッチ処理装置として独立した装置として通信システムを構成してもよい。
【産業上の利用可能性】
【００９１】
以上のように、本発明にかかる通信装置およびスイッチ処理装置は、リアルタイム性およびメンテナンス性を要求される通信システムに有用であり、特に、産業用ネットワークシステムに適している。
【図面の簡単な説明】
【００９２】
【図１】図１は、この発明における実施の形態１のコントローラが適用される通信システムの構成の一例を示す図である。
【図２】図２は、イーサネット（登録商標）フレームの構成を示す図である。
【図３】図３は、この発明における実施の形態１のコントローラが用いるフレームの構成を示す図である。
【図４】図４は、この発明における実施の形態１のコントローラの構成を示すブロック図である。
【図５】図５は、この発明における実施の形態１のコントローラによるフレームの転送の遅延時間を説明するための図である。
【図６】図６は、ＤＣＳチェック結果およびＦＣＳチェック結果に対するＦＣＳ変換部、エラーフレーム受信カウンタ、および端末機能部の処理動作を示す図である。
【図７】図７は、この発明における実施の形態１のコントローラの動作を説明するためのフローチャートである。
【図８】図８は、この発明における実施の形態１の通信システムの動作を説明するための図である。
【図９】図９は、この発明における実施の形態１の通信システムの動作を説明するための図である。
【図１０】図１０は、この発明における実施の形態１の通信システムの動作を説明するための図である。
【図１１】図１１は、この発明における実施の形態１の通信システムの動作を説明するための図である。
【図１２】図１２は、この発明における実施の形態１のコントローラが適用される通信システムの構成の一例を示す図である。
【図１３】図１３は、この発明における実施の形態２のコントローラの構成を示すブロック図である。
【図１４】図１４は、この発明における実施の形態２のコントローラの動作を説明するためのフローチャートである。
【符号の説明】
【００９３】
１−１，１−２，１−３，１−４，１ａ−１，１ａ−２，１ａ−３，１ａ−４  コントローラ
２−１，２−２，２−３，２−４  伝送路
３  メンテナンス装置
４  ケーブル
１１  端末機能部
１２  スイッチ処理部
２１  ＣＲＣ計算部
２２  ＤＣＳチェック部
２３  ＦＣＳチェック部
２４  アドレス格納部
２５  フレームスイッチング部
２６  バッファ
２７  ＦＣＳ変換部
２９  エラーフレーム受信カウンタ
３０  アライメントエラー検出部
３１  ダミーデータ生成部
３２  ＤＣＳ・ＦＣＳ変換部
３３  アライメントエラーカウンタ
５０，６０  ＤＡフィールド
５１，６１  ＳＡフィールド
５２，６２  タイプフィールド
５３，６３  ＤＡＴＡフィールド
５４，６５  ＦＣＳフィールド
６４  ＤＣＳフィールド
【図１】
0004308297.tif 000002
【図２】
0004308297.tif 000003
【図３】
0004308297.tif 000004
【図４】
0004308297.tif 000005
【図５】
0004308297.tif 000006
【図６】
0004308297.tif 000007
【図７】
0004308297.tif 000008
【図８】
0004308297.tif 000009
【図９】
0004308297.tif 000010
【図１０】
0004308297.tif 000011
【図１１】
0004308297.tif 000012
【図１２】
0004308297.tif 000013
【図１３】
0004308297.tif 000014
【図１４】
0004308297.tif 000015