(57)【要約】【課題】オンライン時に他のノードからの受信データをいかなる場合にも破棄することなく、定期的な自己診断を行って健全性を保ち続けるＭＡＣ回路を提供する。【解決手段】物理層のＰＨＹとＣＰＵとの間に介在して通信媒体のアクセスを制御するＭＡＣ回路であって、送信バッファメモリ２と、送信データを送信バッファメモリに書き込むＴＸ＿ＷＲＣ１と、ＭＡＣフレームを物理層に送信するＴＸ＿ＲＤＣ３と、受信バッファメモリ８と、受信データにＦＣＳ値を付加して受信バッファメモリに書き込むＲＸ＿ＷＲＣ６と、読み出した受信データをＣＰＵに出力するＲＸ＿ＲＤＣ９と、自己診断を行う第１タイミングを決定するＣＨＥＣＫ回路１２とを備え、ＴＸ＿ＲＤＣ３は、第１タイミングに応じて、ＲＸ＿ＲＤＣ９により出力された受信データを読み出し、ＣＨＥＣＫ回路１２は、ＲＸ＿ＷＲＣ６とＴＸ＿ＲＤＣ３とにより計算されたＦＣＳ値を比較することにより自己診断を行う。【選択図】図１
2011101113.tif 000002
【特許請求の範囲】
【請求項１】
物理層と中央処理装置との間に介在して通信媒体のアクセスを制御するＭＡＣ回路であって、
前記中央処理装置により送信された送信データを一時的に記憶するための送信バッファメモリと、
前記中央処理装置により送信された送信データを前記送信バッファメモリに書き込む第１書き込み制御部と、
前記送信バッファメモリに書き込まれた送信データを読み出すとともに、読み出した送信データに基づいてＦＣＳ値を含むＭＡＣフレームを生成して前記物理層に送信するＭＡＣフレーム生成部と、
前記物理層から受信した受信データを一時的に記憶するための受信バッファメモリと、
前記物理層から受信した受信データに基づいてＦＣＳエラーの有無を確認するとともに、前記受信データに計算したＦＣＳ値を付加して前記受信バッファメモリに書き込む第２書き込み制御部と、
前記受信バッファメモリに書き込まれた受信データを読み出すとともに、読み出した受信データを前記中央処理装置に出力する読み出し制御部と、
前記物理層から受信した受信データを利用して自己診断を行う第１タイミングを決定する自己診断制御部と、
前記自己診断制御部により決定された第１タイミングに応じて前記ＭＡＣフレーム生成部によるＭＡＣフレームの送信を遮断する遮断部と、
前記自己診断制御部により決定された第１タイミングに応じて前記読み出し制御部により出力された受信データを前記ＭＡＣフレーム生成部に転送する第１転送部とを備え、
前記ＭＡＣフレーム生成部は、前記自己診断制御部により決定された第１タイミングに応じて、前記送信バッファメモリに代えて前記読み出し制御部により出力された受信データを前記第１転送部を介して読み出すとともに、読み出した受信データに基づいてＦＣＳ値を計算し、
前記自己診断制御部は、前記第２書き込み制御部により計算されたＦＣＳ値と前記ＭＡＣフレーム生成部により計算されたＦＣＳ値とを比較することにより当該ＭＡＣ回路内における異常の有無を診断することを特徴とするＭＡＣ回路。
【請求項２】
前記第２書き込み制御部が前記物理層から受信データを受信した回数をカウントするとともに、カウント数が所定の回数に達した場合に第１設定カウント信号を生成する第１カウンタを備え、
前記自己診断制御部は、前記第１カウンタにより生成された第１設定カウント信号に基づいて前記第１タイミングを決定することを特徴とする請求項１記載のＭＡＣ回路。
【請求項３】
前記第１カウンタにより第１設定カウント信号が生成された場合に、自己診断中における前記第２書き込み制御部が前記物理層から受信データを受信した回数をカウントするとともに、カウント数が所定の回数に達した場合に第２設定カウント信号を生成する第２カウンタを備え、
前記自己診断制御部は、前記第２カウンタにより生成された第２設定カウント信号に基づいて自己診断を中止することを特徴とする請求項２記載のＭＡＣ回路。
【請求項４】
前記第２カウンタにより生成された第２設定カウント信号に応じて、前記物理層から前記第２書き込み制御部に対する受信データの受信を遮断するとともに前記ＭＡＣフレーム生成部により生成されたＭＡＣフレームを前記第２書き込み制御部に転送するループバック部を備えることを特徴とする請求項３記載のＭＡＣ回路。
【請求項５】
自己診断制御部は、前記中央処理装置により送信された送信データを利用して自己診断を行う第２タイミングを決定し、
前記遮断部は、前記自己診断制御部により決定された第２タイミングに応じて前記ＭＡＣフレーム生成部によるＭＡＣフレームの送信を遮断し、
前記自己診断制御部により決定された第２タイミングに応じて前記ＭＡＣフレーム生成部により出力されたＭＡＣフレームを前記読み出し制御部に転送する第２転送部を備え、
前記読み出し制御部は、前記自己診断制御部により決定された第２タイミングに応じて、前記受信バッファメモリに代えて前記ＭＡＣフレーム生成部により出力されたＭＡＣフレームを前記第２転送部を介して読み出すとともに、読み出したＭＡＣフレームを前記中央処理装置に出力することを特徴とする請求項１乃至請求項４のいずれか１項記載のＭＡＣ回路。
【請求項６】
前記第１書き込み制御部が前記中央処理装置により送信された送信データを受信した回数をカウントするとともに、カウント数が所定の回数に達した場合に第３設定カウント信号を生成する第３カウンタを備え、
前記自己診断制御部は、前記第３カウンタにより生成された第３設定カウント信号に基づいて前記第２タイミングを決定することを特徴とする請求項５記載のＭＡＣ回路。
【請求項７】
前記受信バッファメモリの空き容量を監視し、前記受信バッファメモリにおける記憶量が所定値を超えた場合にメモリ容量警告信号を生成するバッファ制御部を備え、
前記第２転送部は、前記バッファ制御部により生成されたメモリ容量警告信号に応じて転送を中止し、
前記読み出し制御部は、前記バッファ制御部により生成されたメモリ容量警告信号に応じて、読み出し先を再度受信バッファメモリに戻すことを特徴とする請求項５又は請求項６記載のＭＡＣ回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを送信するためのＭＡＣ（ＭＥＤＩＡ  ＡＣＣＥＳＳ  ＣＯＮＴＲＯＬ）フレームの生成や受信したデータの誤り検出等を行うＭＡＣ回路に関する。
【背景技術】
【０００２】
イーサネット（登録商標）のＭＡＣ回路は、ＯＳＩ（Ｏｐｅｎ  Ｓｙｓｔｅｍｓ  Ｉｎｔｅｒｃｏｎｎｅｃｔｉｏｎ）参照モデルのレイヤ２（データリンク層）において、データを送信するためのＭＡＣフレームの生成、及び受信したデータの誤り確認を行っている。これらの規格は、ＩＥＥＥ８０２．３により規定されている。
【０００３】
図４は、一般的なＭＡＣ回路の構成を示す機能ブロック図である。まず、図４を用いてＭＡＣ回路の構成について説明する。ＭＡＣ回路は、図４に示すように、ＴＸ＿ＷＲＣ１、送信バッファメモリ２、ＴＸ＿ＲＤＣ３、ＦＣＳ回路４、ループバック回路５、ＲＸ＿ＷＲＣ６、ＦＣＳ回路７、受信バッファメモリ８、及びＲＸ＿ＲＤＣ９により構成される。なお、ＭＡＣ回路は、ＣＰＵの動作タイミングとＰＨＹへの送受信タイミングが異なるため、一般的に緩衝用のバッファメモリ（送信バッファメモリ２、受信バッファメモリ８）を備えている。ＰＨＹは、例えばＩＣチップにより構成され、レイヤ１（物理層）における信号処理を行う。
【０００４】
最初に、ＣＰＵからのデータ送信について説明する。図５は、一般的なＭＡＣ回路のデータ送信時の動作を示す図であり、データの流れを太線の矢印で示している。まず、ＣＰＵは、送信データ１ａをＭＡＣ回路に転送する。次に、ＴＸ＿ＷＲＣ１は、送信側の書き込み制御を行うものであり、ＣＰＵにより転送された送信データを送信バッファメモリ２に書き込む。
【０００５】
書き込みが完了すると、送信側の読み出し制御を行うＴＸ＿ＲＤＣ３は、送信バッファメモリ２に書き込まれた送信データを読み出す。その際に、ＦＣＳ（Ｆｒａｍｅ  Ｃｈｅｃｋ  Ｓｅｑｕｅｎｃｅ）回路４は、ＦＣＳ計算を行い、ＦＣＳデータを付加したＭＡＣフレームを作成する。作成したＭＡＣフレームのデータ４ａは、ＴＸ＿ＲＤＣ３によりＰＨＹにデータ送信される。
【０００６】
次に、ＰＨＹからのデータ受信について説明する。図６は、一般的なＭＡＣ回路のデータ受信時の動作を示す図であり、データの流れを太線の矢印で示している。ＰＨＹからの受信データ５ｂは、ループバック回路５を通り、受信側の書き込み制御を行うＲＸ＿ＷＲＣ６に転送される。ここで、ループバック回路５は、ＣＰＵからの切替指令５ａに基づいて、ＰＨＹからのデータ５ｂを受信するか、あるいは送信側からのデータ５ｃを受信するかの選択を行うものであり、この場合においてはＰＨＹからのデータ５ｂを受信する旨の選択を行っている。
【０００７】
ＲＸ＿ＷＲＣ６は、ＰＨＹから転送されたデータを受信バッファメモリ８に書き込む。その際にＦＣＳ回路７は、ＦＣＳ計算を行ってＦＣＳエラーが無いことを確認している。その後、受信側の読み出し制御を行うＲＸ＿ＲＤＣ９は、受信バッファメモリ８に書き込まれたデータを読み出し、ＣＰＵに対して読み出したデータ９ａをデータ転送する。
【０００８】
次に、上述したＭＡＣ回路における従来の自己診断方法について説明する。図７は、従来のＭＡＣ回路の自己診断時の動作を示す図であり、データの流れを太線の矢印で示している。まず、ＣＰＵは、初期時に自己診断を行うためにループバック指令５ａをループバック回路５に対して出力するとともに、データをＭＡＣ回路に転送する。ループバック回路５は、入力されたループバック指令５ａに基づいて、送信側からのデータ（すなわちＴＸ＿ＲＤＣ３により出力されたデータ）を受信する旨の選択を行う。
【０００９】
一方、ＴＸ＿ＷＲＣ１は、ＣＰＵにより転送されたデータを送信バッファメモリ２に書き込む。ＴＸ＿ＲＤＣ３は、送信バッファメモリ２にある程度データが蓄積されると、送信バッファメモリ２からデータを読み出すとともに、ＦＣＳ回路４にＦＣＳデータを付加させ、生成したデータを送信する。
【００１０】
送信されたデータは、ＰＨＹ転送されるとともに、ループバック回路５を通って受信側回路（すなわちＲＸ＿ＷＲＣ６）に転送される。ＲＸ＿ＷＲＣ６は、受信したデータを受信バッファメモリ８に書き込む。その際に、ＦＣＳ回路７は、ＦＣＳのエラーチェックを行う。その後、ＲＸ＿ＲＤＣ９は、受信バッファメモリ８に書き込まれたデータを読出し、ＣＰＵに転送する。ＣＰＵは、自分が送信したデータと受信したデータとが一致することを確認し、データが一致した場合に回路は正常に動作していると判断する。ＣＰＵは、データ確認後にループバック指令５ａを解除する。これにより、ループバック回路５は、ＰＨＹからのデータ５ｂを受信する旨の選択を行い、ＰＨＹ側からデータを受信できるように回路を切り替えている。
【００１１】
特許文献１には、リモート環境からのポートのトラフィックの解析を可能とし、ネットワークの診断を容易にすることができるイーサネット（登録商標）スイッチが記載されている。このイーサネット（登録商標）スイッチは、複数のポートと、その複数のポートのうちの所定のポートから受信したフレームを指定された別のポートに転送するスイッチングコントローラと、制御手段と、記憶手段とを備えている。制御手段は、ネットワークを介して受信したキャプチャ開始リクエストに従い、スイッチングコントローラに対してキャプチャするフレームの条件を設定する機能を備えている。また、スイッチングコントローラは、設定された条件に合致するフレームを記憶手段にキャプチャデータとしてコピーする機能を備えている。
【００１２】
また、制御手段は、ネットワークを介して受信したキャプチャ取得リクエストに従い、記憶手段に格納されたキャプチャデータを読み出すと共に、ネットワーク経由でキャプチャ取得リクエスト要求を発行した相手に転送する機能を備えるとよい。
【００１３】
さらに、制御手段は、ネットワークを介して受信したリクエストに従い、記憶手段に格納されたキャプチャデータを削除する機能と、記憶手段に格納されているキャプチャデータの一覧をネットワーク経由で転送する機能と、記憶手段に格納されたキャプチャデータのファイル名を変更する機能とをリネームする機能のうち、少なくとも１つの機能を備えると良い。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】特開２００８−２５８８４６号公報
【発明の概要】
【発明が解決しようとする課題】
【００１５】
しかしながら、図４乃至図７を用いて説明した従来のＭＡＣ回路は、初期時に自己診断を１回行うのみであるため、回路の運用中にオンラインで回路診断を行うことができないという問題点を有する。すなわち、従来のＭＡＣ回路は、自己診断をオンライン時に行うとすると診断中において他ノードからの受信データを破棄してしまうおそれがあるため、オンライン状態において定期診断を行うことが困難であり、健全性を維持するうえで問題となる。
【００１６】
特許文献１に記載のイーサネット（登録商標）スイッチは、リモート環境からのポートのトラフィックの解析を可能とするものであるが、自己診断を行うものではなく、オンライン中における定期的な自己診断機能と他ノードからのデータ受信機能とを併存させる解決策とはならない。
【００１７】
本発明は上述した従来技術の問題点を解決するもので、オンライン時に他のノードからの受信データをいかなる場合にも破棄することなく、定期的な自己診断を行って健全性を保ち続けるＭＡＣ回路を提供することを課題とする。
【課題を解決するための手段】
【００１８】
本発明に係るＭＡＣ回路は、上記課題を解決するために、物理層と中央処理装置との間に介在して通信媒体のアクセスを制御するＭＡＣ回路であって、前記中央処理装置により送信された送信データを一時的に記憶するための送信バッファメモリと、前記中央処理装置により送信された送信データを前記送信バッファメモリに書き込む第１書き込み制御部と、前記送信バッファメモリに書き込まれた送信データを読み出すとともに、読み出した送信データに基づいてＦＣＳ値を含むＭＡＣフレームを生成して前記物理層に送信するＭＡＣフレーム生成部と、前記物理層から受信した受信データを一時的に記憶するための受信バッファメモリと、前記物理層から受信した受信データに基づいてＦＣＳエラーの有無を確認するとともに、前記受信データに計算したＦＣＳ値を付加して前記受信バッファメモリに書き込む第２書き込み制御部と、前記受信バッファメモリに書き込まれた受信データを読み出すとともに、読み出した受信データを前記中央処理装置に出力する読み出し制御部と、前記物理層から受信した受信データを利用して自己診断を行う第１タイミングを決定する自己診断制御部と、前記自己診断制御部により決定された第１タイミングに応じて前記ＭＡＣフレーム生成部によるＭＡＣフレームの送信を遮断する遮断部と、前記自己診断制御部により決定された第１タイミングに応じて前記読み出し制御部により出力された受信データを前記ＭＡＣフレーム生成部に転送する第１転送部とを備え、前記ＭＡＣフレーム生成部は、前記自己診断制御部により決定された第１タイミングに応じて、前記送信バッファメモリに代えて前記読み出し制御部により出力された受信データを前記第１転送部を介して読み出すとともに、読み出した受信データに基づいてＦＣＳ値を計算し、前記自己診断制御部は、前記第２書き込み制御部により計算されたＦＣＳ値と前記ＭＡＣフレーム生成部により計算されたＦＣＳ値とを比較することにより自己の回路内における異常の有無を診断することを特徴とする。
【発明の効果】
【００１９】
本発明によれば、オンライン時に他のノードからの受信データをいかなる場合にも破棄することなく、定期的な自己診断を行って健全性を保ち続けるＭＡＣ回路を提供することができる。
【図面の簡単な説明】
【００２０】
【図１】本発明の実施例１の形態のＭＡＣ回路の構成を示す図である。
【図２】本発明の実施例１の形態のＭＡＣ回路の受信データを利用して自己診断を行う際の動作を示す図である。
【図３】本発明の実施例２の形態のＭＡＣ回路の送信データを利用して自己診断を行う際の動作を示す図である。
【図４】従来のＭＡＣ回路の構成を示す機能ブロック図である。
【図５】従来のＭＡＣ回路のデータ送信時の動作を示す図である。
【図６】従来のＭＡＣ回路のデータ受信時の動作を示す図である。
【図７】従来のＭＡＣ回路の自己診断時の動作を示す図である。
【発明を実施するための形態】
【００２１】
以下、本発明のＭＡＣ回路の実施の形態について図面を参照して詳細に説明する。
【実施例１】
【００２２】
図１は、本発明の実施例１のＭＡＣ回路の構成を示す図である。図１を参照して、ＭＡＣ回路の構成を説明する。本実施例のＭＡＣ回路は、物理層と中央処理装置（ＣＰＵ）との間に介在して通信媒体のアクセスを制御する回路であり、図１に示すように、ＴＸ＿ＷＲＣ１、送信バッファメモリ２、ＴＸ＿ＲＤＣ３、ＦＣＳ回路４、ループバック回路５、ＲＸ＿ＷＲＣ６、ＦＣＳ回路７、受信バッファメモリ８、ＲＸ＿ＲＤＣ９、カウンタ１０，１１、ＣＨＥＣＫ回路１２、バッファコントロール１３、ＳＥＬ１４、カウンタ１５、バッファコントロール１６、ＳＥＬ１７、及びＳＥＬ１８により構成される。
【００２３】
すなわち、図４乃至図７で説明した従来のＭＡＣ回路と異なる点は、カウンタ１０，１１、ＣＨＥＣＫ回路１２、バッファコントロール１３、ＳＥＬ１４、カウンタ１５、バッファコントロール１６、ＳＥＬ１７、及びＳＥＬ１８を備えている点である。
【００２４】
ＴＸ＿ＷＲＣ１は、本発明の第１書き込み制御部に対応し、ＣＰＵ（中央処理装置）により送信された送信データを送信バッファメモリ２に書き込む。ここで、送信バッファメモリ２は、ＣＰＵにより送信された送信データを一時的に記憶するためのメモリである。
【００２５】
カウンタ１５は、本発明の第３カウンタに対応し、ＴＸ＿ＷＲＣ１がＣＰＵにより送信された送信データを受信した回数をカウントするとともに、カウント数が所定の回数に達した場合に第３設定カウント信号を生成する。
【００２６】
バッファコントロール１６は、送信バッファメモリ２の空き容量を監視し、メモリがあふれそうになった場合に、その旨をＣＰＵに知らせるものである。ＣＰＵは、バッファコントロール１６の警告に応じて送信データ量の制限等の対処を行う。
【００２７】
ＳＥＬ１７は、後述するＣＨＥＣＫ回路１２の指令にしたがい、送信バッファメモリ２の出力と後述するＲＸ＿ＲＤＣ９の出力とのいずれかを選択してＴＸ＿ＲＤＣ３に出力する。
【００２８】
ＴＸ＿ＲＤＣ３とＦＣＳ回路４とは、本発明のＭＡＣフレーム生成部に対応し、送信バッファメモリ２に書き込まれた送信データをＴＸ＿ＲＤＣ３が読み出すとともに、読み出した送信データに基づいてＦＣＳ回路４がＦＣＳ計算を行い、ＴＸ＿ＲＤＣ３がＦＣＳ値を含むＭＡＣフレームを生成して物理層のＰＨＹに送信する。
【００２９】
ループバック回路５は、ＣＰＵの指令に応じてＳＥＬ１８の出力であるＭＡＣフレームと物理層のＰＨＹから受信した受信データとのいずれかを選択し、ＲＸ＿ＷＲＣ６に出力する。
【００３０】
ＲＸ＿ＷＲＣ６とＦＣＳ回路７とは、本発明の第２書き込み制御部に対応し、物理層から受信した受信データに基づいてＦＣＳエラーの有無をＦＣＳ回路７が確認するとともに、受信データに計算したＦＣＳ値を付加してＲＸ＿ＷＲＣ６が受信バッファメモリ８に書き込む。ここで、受信バッファメモリ８は、物理層から受信した受信データを一時的に記憶するためのメモリである。なお、上述した送信バッファメモリ２や受信バッファメモリ８は、本実施例においてＦＩＦＯ型のバッファメモリを使用しているものとする。
【００３１】
カウンタ１０は、本発明の第１カウンタに対応し、第２書き込み制御部（ＲＸ＿ＷＲＣ６）が物理層から受信データを受信した回数をカウントするとともに、カウント数が所定の回数（例えば１００回）に達した場合に第１設定カウント信号を生成する。
【００３２】
カウンタ１１は、本発明の第２カウンタに対応し、カウンタ１０により第１設定カウント信号が生成された場合に、自己診断中における第２書き込み制御部（ＲＸ＿ＷＲＣ６）が物理層から受信データを受信した回数をカウントするとともに、カウント数が所定の回数（例えば１０回）に達した場合に第２設定カウント信号を生成する。
【００３３】
バッファコントロール１３は、本発明のバッファ制御部に対応し、受信バッファメモリ８の空き容量を監視し、受信バッファメモリ８における記憶量が所定値を超えた場合にメモリ容量警告信号を生成する。
【００３４】
ＳＥＬ１４は、後述するＣＨＥＣＫ回路１２の指令にしたがい、受信バッファメモリ８の出力とＴＸ＿ＲＤＣ３の出力とのいずれかを選択してＲＸ＿ＲＤＣ９に出力する。
【００３５】
ＲＸ＿ＲＤＣ９は、本発明の読み出し制御部に対応し、受信バッファメモリ８に書き込まれた受信データをＳＥＬ１４を介して読み出すとともに、読み出した受信データをＣＰＵに出力する。
【００３６】
ＣＨＥＣＫ回路１２は、本発明の自己診断制御部に対応し、物理層から受信した受信データを利用して自己診断を行う第１タイミングを決定する。具体的には、ＣＨＥＣＫ回路１２は、カウンタ１０により生成された第１設定カウント信号に基づいて第１タイミングを決定する。
【００３７】
ＳＥＬ１８は、本発明の遮断部に対応し、ＣＨＥＣＫ回路１２により決定された第１タイミングに応じてＴＸ＿ＲＤＣ３によるＭＡＣフレームの送信を遮断する。
【００３８】
また、上述したＳＥＬ１７は、本発明の第１転送部に対応し、ＣＨＥＣＫ回路１２により決定された第１タイミングに応じて、ＲＸ＿ＲＤＣ９により出力された受信データをＴＸ＿ＲＤＣ３に転送する。
【００３９】
次に、上述のように構成された本実施の形態の作用を説明する。図２は、本実施例のＭＡＣ回路の受信データを利用して自己診断を行う際の動作を示す図である。この場合における本実施例のＭＡＣ回路は、回路中におけるＲＸ＿ＷＲＣ６、ＲＸ＿ＲＤＣ９、ＴＸ＿ＲＤＣ３といった部分を主に自己診断し、正常な動作が行われているか否かを判断する。
【００４０】
まず、カウンタ１０は、ＲＸ＿ＷＲＣ６が物理層のＰＨＹから受信データ５ｂを受信した回数をカウントする。なお、カウンタ１０は、ループバック回路５を介して送信回路からのループバックデータ５ｃをＲＸ＿ＷＲＣ６が受信したときにもカウントアップする設定でもよい。
【００４１】
カウンタ１０は、カウント数が所定の回数（例えば１００回）に達した場合に第１設定カウント信号を生成し、ＣＨＥＣＫ回路１２に出力する。ＣＨＥＣＫ回路１２は、カウンタ１０により生成された第１設定カウント信号に基づいて第１タイミングを決定する。すなわち、本実施例のＭＡＣ回路は、ＣＨＥＣＫ回路１２により決定された第１タイミングに合わせて受信データを利用した自己診断を１回（あるいは複数回）行う。
【００４２】
カウンタ１０により第１設定カウント信号が生成されると、ＣＨＥＣＫ回路１２は、ＣＰＵに対してＴＸ＿ＲＤＣ３による送信バッファメモリ２からの送信データの読み出しを中止させる旨の指令信号を出力する。ＣＰＵは、当該指令信号を受けた場合にＴＸ＿ＲＤＣ３に指令を与えることにより、ＴＸ＿ＲＤＣ３による送信バッファメモリ２からの送信データの読み出しを中止させるとともに、ＲＸ＿ＲＤＣ９からの受信データの読み出しを開始させる。
【００４３】
また、ＳＥＬ１７は、ＣＨＥＣＫ回路１２により決定された第１タイミングに応じてＲＸ＿ＲＤＣ９により出力された受信データ１３ｂをＴＸ＿ＲＤＣ３に転送する。
【００４４】
すなわち、ＭＡＣフレーム生成部たるＴＸ＿ＲＤＣ３及びＦＣＳ回路４は、ＣＨＥＣＫ回路１２により決定された第１タイミングに応じて、送信バッファメモリ２に代えてＲＸ＿ＲＤＣ９により出力された受信データ１３ｂをＳＥＬ１７を介して読み出すとともに、読み出した受信データに基づいてＦＣＳ回路４がＦＣＳ値を計算する。
【００４５】
なお、ＳＥＬ１８は、ＣＨＥＣＫ回路１２により決定された第１タイミングに応じてＴＸ＿ＲＤＣ３によるＭＡＣフレームの送信を遮断する。
【００４６】
ＲＸ＿ＷＲＣ６は、受信バッファメモリ８に受信データを書き込むとともに、ＦＣＳ回路７でＦＣＳ値を計算させ、ＰＨＹから送られてきた受信データに付加されているＦＣＳ値と照合を行い、ＦＣＳエラーの有無を確認する。ＦＣＳエラーが発生した場合には、ＲＸ＿ＷＲＣ６は、受信バッファメモリ８に対して受信データの書き込みを行うが、ＰＨＹから送信されてくる次データで上書きすることにより、当該ＦＣＳエラーを含む受信データを破棄する。ＲＸ＿ＷＲＣ６は、受信バッファメモリ８に対して受信データを書き込む際に、受信データのみならず、ＦＣＳ回路７で計算したＦＣＳ値も書き込む。
【００４７】
ＲＸ＿ＲＤＣ９は、受信バッファメモリ８から受信データ及びＦＣＳ値を読み出すとともに、読み出した受信データを出力する。出力された受信データは、ＣＰＵに転送されるとともに、上述したようにＳＥＬ１７を介してＴＸ＿ＲＤＣ３にも転送される。また、ＲＸ＿ＲＤＣ９は、読み出したＦＣＳ値１３ｃをＣＨＥＣＫ回路１２に転送する。すなわち、第２書き込み制御部のＦＣＳ回路７により計算されたＦＣＳ値は、ＲＸ＿ＲＤＣ９によりＣＨＥＣＫ回路１２に転送されることになる。
【００４８】
一方、ＭＡＣフレーム生成部のＦＣＳ回路４は、ＴＸ＿ＲＤＣ３に転送された受信データに基づいてＦＣＳ値を再計算し、計算結果たるＦＣＳ値をＣＨＥＣＫ回路１２に転送する。
【００４９】
ＣＨＥＣＫ回路１２は、第２書き込み制御部（ＦＣＳ回路７）により計算されたＦＣＳ値とＭＡＣフレーム生成部（ＦＣＳ回路４）により計算されたＦＣＳ値とを比較することにより、当該ＭＡＣ回路内における異常の有無を診断する。具体的には、ＣＨＥＣＫ回路１２は、両ＦＣＳ値が一致した場合には、ＲＸ＿ＷＲＣ６、ＲＸ＿ＲＤＣ９、及びＴＸ＿ＲＤＣ３が正常に動作していると判断する。一方、ＦＣＳ値が一致しない場合には、ＣＨＥＣＫ回路１２は、エラー信号をＣＰＵに対して通知する。
【００５０】
なお、ＲＸ＿ＷＲＣ６が受け取った受信データにＦＣＳエラーがあった場合には、ＲＸ＿ＷＲＣ６は、上述したように、その受信データを一旦受信バッファメモリ８に書き込むものの、その後に受け取った受信データを受信バッファメモリ８に上書きすることにより、当該ＦＣＳエラーのあった受信データが破棄される。
【００５１】
このように、受信バッファメモリ８でデータが上書きされ、ＦＣＳエラーのある受信データが破棄される場合には、本発明のＭＡＣ回路は、受信データを利用した自己診断ができないことになる。また、自己診断中に送信されてくる全受信データにＦＣＳエラーが発生した場合には、受信側回路が止まってしまうおそれもある。
【００５２】
そこで、カウンタ１１は、カウンタ１０により第１設定カウント信号が生成された場合に、自己診断中における第２書き込み制御部（ＲＸ＿ＷＲＣ６）が物理層から受信データを受信した回数をカウントするとともに、カウント数が所定の回数（例えば１０回）に達した場合に第２設定カウント信号を生成する。このようにして、カウンタ１１は、自己診断中の受信データ数をカウントし、規定値内で自己診断が完了できなかった場合は、自己診断モードを中止するための第２設定カウント信号を生成してＣＨＥＣＫ回路１２に出力する。
【００５３】
ＣＨＥＣＫ回路１２は、カウンタ１１により生成された第２設定カウント信号に基づいて自己診断を中止する。
【００５４】
ここで、自己診断の終了方法について説明する。ＣＨＥＣＫ回路１２は、自己診断を完了した場合でも中止した場合でも、以下に示す終了方法により自己診断を終了する。
【００５５】
まずＣＨＥＣＫ回路１２は、ＴＸ＿ＲＤＣ３が送信バッファメモリ２から読出しを行わないようにするための信号を解除する。本実施例においては、ＣＨＥＣＫ回路１２は、ＣＰＵに対してＴＸ＿ＲＤＣ３による送信バッファメモリ２からの送信データの読み出しを再開させる旨の指令信号を出力する。ＣＰＵは、当該指令信号を受けた場合にＴＸ＿ＲＤＣ３に指令を与えることにより、ＴＸ＿ＲＤＣ３によるＲＸ＿ＲＤＣ９からの受信データの読み出しを中止させるとともに、送信バッファメモリ２からの送信データの読み出しを再開させる。
【００５６】
また、ＣＨＥＣＫ回路１２は、ＳＥＬ１８による遮断を解除するとともに、ＳＥＬ１７がＲＸ＿ＲＤＣ９からの受信データの転送を中止して送信バッファメモリ２からＴＸ＿ＲＤＣ３に対して送信データの転送が行われるように回路を切り替える。その後、ＭＡＣ回路は、データの送受信を通常通りに行う。
【００５７】
なお、本実施例のＭＡＣ回路は、自己診断中に受信バッファメモリ８あるいは送信バッファメモリ２があふれそうになった場合には自己診断を中止する。具体的には、バッファコントロール１３は、受信バッファメモリ８の空き容量を監視し、受信バッファメモリ８における記憶量が所定値を超えた場合にメモリ容量警告信号を生成する。ＣＰＵは、バッファコントロール１３により生成されたメモリ容量警告信号に応じてＣＨＥＣＫ回路１２に自己診断を中止する旨の指令信号を出力する。
【００５８】
同様に、バッファコントロール１６は、送信バッファメモリ２の空き容量を監視し、送信バッファメモリ２における記憶量が所定値を超えた場合に警告信号を生成する。ＣＰＵは、バッファコントロール１６により生成された警告信号に応じてＣＨＥＣＫ回路１２に自己診断を中止する旨の指令信号を出力する。
【００５９】
上述のとおり、本発明の実施例１の形態に係るＭＡＣ回路によれば、オンライン時に他のノードからの受信データをいかなる場合にも破棄することなく、定期的な自己診断を行って健全性を保ち続けることができる。すなわち、本実施例のＭＡＣ回路は、受信データを利用して自己診断を行うとともに、ＲＸ＿ＲＤＣ９が受信データをＣＰＵと（ＳＥＬ１７を介して）ＴＸ＿ＲＤＣ３との双方に出力しているので、通常の受信データの受信に並行して自己診断も行うことができ、ＰＨＹからの受信をとめることなく自己診断を行うことができるメリットがある。
【００６０】
また、ＣＨＥＣＫ回路１２は、カウンタ１０によりカウントされた受信データ数に基づいて自己診断を行うタイミングを決めているので、ＭＡＣ回路の使用頻度に応じたタイミングで自己診断を行うことができ、より適切にＭＡＣ回路の健全性を保つことができる。
【００６１】
さらに、カウンタ１１を備えることにより、本実施例のＭＡＣ回路は、受信データにＦＣＳエラーが生じている場合には適切に自己診断を中止することができる。
【００６２】
また、自己診断中に受信バッファメモリ８があふれそうになった場合にはバッファコントロール１３の警告により、ＣＨＥＣＫ回路１２は、自己診断処理を中断し通常の送受信モードに戻るため、受信処理が中断されることはない。
【００６３】
なお、カウンタ１１のエラーカウントが規定値を超えた場合に、ＣＨＥＣＫ回路１２は、ＣＰＵに対してループバック回路５を切り替える要求を出す構成でもよい。要求を受けたＣＰＵは、ループバック回路５を切り替えて、ＣＰＵが自ら送信したデータをループバックさせる。
【００６４】
すなわち、ループバック回路５は、本発明のループバック部に対応し、カウンタ１１により生成された第２設定カウント信号に応じて、物理層からＲＸ＿ＷＲＣ６に対する受信データの受信を遮断するとともに、ＴＸ＿ＲＤＣ３により生成されたＭＡＣフレームをＲＸ＿ＷＲＣ６に転送する。
【００６５】
ＣＰＵは、自分が送信したデータとループバックで戻ってきたデータとが一致するか否かを確認し、データが一致した場合にはループバック回路５を切り替えて元に戻す。一致しない場合には、ＣＰＵは、例えば５フレームの送受信を繰り返し、それでもデータが一致しない場合には、ＭＡＣ回路内に故障部分があると判断し、ループバック回路５を元に戻す。
【００６６】
ループバックさせている最中においては、ＭＡＣ回路は、ＰＨＹから受信データを受信することができないが、ＦＣＳエラーについて外部からの受信データに原因があるのかＭＡＣ回路内に原因があるのかを判断することができる。
【実施例２】
【００６７】
図３は、本実施例のＭＡＣ回路の送信データを利用して自己診断を行う際の動作を示す図である。なお、本実施例のＭＡＣ回路の構成は、実施例１と同様であり、重複した説明を省略する。ただし、本実施例のＣＨＥＣＫ回路１２は、ＣＰＵにより送信された送信データを利用して自己診断を行う第２タイミングを決定する。
【００６８】
次に、上述のように構成された本実施の形態の作用を説明する。本実施例におけるＭＡＣ回路は、ＣＰＵからの送信データを利用することにより、回路中におけるＴＸ＿ＷＲＣ１、ＴＸ＿ＲＤＣ３、ＲＸ＿ＲＤＣ９といった部分を主に自己診断し、正常な動作が行われているか否かを判断する。
【００６９】
まず、カウンタ１５は、ＴＸ＿ＷＲＣ１がＣＰＵにより送信された送信データを受信した回数をカウントするとともに、カウント数が所定の回数に達した場合に第３設定カウント信号を生成し、ＣＨＥＣＫ回路１２に出力する。
【００７０】
ＣＨＥＣＫ回路１２は、カウンタ１５により生成された第３設定カウント信号に基づいて第２タイミングを決定する。すなわち、本実施例のＭＡＣ回路は、ＣＨＥＣＫ回路１２により決定された第２タイミングに合わせて送信データを利用した自己診断を１回（あるいは複数回）行う。
【００７１】
カウンタ１５により第３設定カウント信号が生成されると、ＣＨＥＣＫ回路１２は、ＣＰＵによる新規データの送信が中止されるようにＣＰＵに対して指令信号を出力する。送信バッファメモリ２に書き込まれた送信データが全て送信されると、ＣＨＥＣＫ回路１２は、ＣＰＵに対してＲＸ＿ＲＤＣ９による受信バッファメモリ８からの受信データの読み出しを中止させる旨の指令信号を出力する。ＣＰＵは、当該指令信号を受けた場合にＲＸ＿ＲＤＣ９に指令を与えることにより、ＲＸ＿ＲＤＣ９による受信バッファメモリ８からの送信データの読み出しを中止させるとともに、ＴＸ＿ＲＤＣ４からの送信データの読み出しを開始させる。
【００７２】
また、ＳＥＬ１４は、本発明の第２転送部に対応し、ＣＨＥＣＫ回路１２により決定された第２タイミングに応じてＭＡＣフレーム生成部（ＴＸ＿ＲＤＣ３）により出力されたＭＡＣフレームをＲＸ＿ＲＤＣ９に転送する。
【００７３】
すなわち、ＲＸ＿ＲＤＣ９は、ＣＨＥＣＫ回路１２により決定された第２タイミングに応じて、受信バッファメモリ８に代えてＴＸ＿ＲＤＣ３により出力されたＭＡＣフレームをＳＥＬ１４を介して読み出すとともに、読み出したＭＡＣフレームをＣＰＵに出力する。
【００７４】
なお、ＳＥＬ１８は、ＣＨＥＣＫ回路１２により決定された第２タイミングに応じてＴＸ＿ＲＤＣ３によるＭＡＣフレームの送信を遮断する。
【００７５】
自己診断は、以下の手順により行われる。まずＣＰＵは、テスト用送信データをＭＡＣ回路に対して送信する。ＴＸ＿ＷＲＣ１は、送信バッファメモリ２にテスト用送信データを書き込む。
【００７６】
次に、ＴＸ＿ＲＤＣ３は、送信バッファメモリ２に書き込まれたテスト用送信データを読み出すとともに、読み出したテスト用送信データに基づいたＭＡＣフレームを生成し、ＳＥＬ１４を介してＲＸ＿ＲＤＣ９に転送する。
【００７７】
ＲＸ＿ＲＤＣ９は、読み出したＭＡＣフレームをＣＰＵに出力する。ＣＰＵは、送信したテスト用送信データと受信したＭＡＣフレームとを比較し、データが一致するか否かを判断する。データが一致した場合には、ＣＰＵは、ＴＸ＿ＷＲＣ１、ＴＸ＿ＲＤＣ３、ＲＸ＿ＲＤＣ９といった部分が正常に動作していると判断する。一方、データが不一致の場合には、ＣＰＵは、ＴＸ＿ＷＲＣ１、ＴＸ＿ＲＤＣ３、ＲＸ＿ＲＤＣ９のいずれかの回路部分が故障していると判断する。
【００７８】
自己診断を完了すると、ＣＨＥＣＫ回路１２は、ＳＥＬ１４がＴＸ＿ＲＤＣ３からのＭＡＣフレームの転送を中止して受信バッファメモリ８からＲＸ＿ＲＤＣ９に対して受信データの転送が行われるように回路を切り替える。また、ＣＨＥＣＫ回路１２は、ＣＰＵによる新規データの送信が再開されるようにＣＰＵに対して指令信号を出力する。さらに、ＣＨＥＣＫ回路１２は、ＳＥＬ１８による遮断を解除する。
【００７９】
また、ＣＨＥＣＫ回路１２は、ＲＸ＿ＲＤＣ９が受信バッファメモリ８から読出しを行わないようにするための信号を解除する。本実施例においては、ＣＨＥＣＫ回路１２は、ＣＰＵに対してＲＸ＿ＲＤＣ９による受信バッファメモリ８からの受信データの読み出しを再開させる旨の指令信号を出力する。ＣＰＵは、当該指令信号を受けた場合にＲＸ＿ＲＤＣ９に指令を与えることにより、ＲＸ＿ＲＤＣ９によるＴＸ＿ＲＤＣ３からのＭＡＣフレームの読み出しを中止させるとともに、受信バッファメモリ８からの受信データの読み出しを再開させる。その後、ＭＡＣ回路は、データの送受信を通常通りに行う。
【００８０】
なお、本実施例のＭＡＣ回路は、自己診断中に受信バッファメモリ８あるいは送信バッファメモリ２があふれそうになった場合には自己診断を中止する。具体的には、バッファコントロール１３は、受信バッファメモリ８の空き容量を監視し、受信バッファメモリ８における記憶量が所定値を超えた場合にメモリ容量警告信号を生成する。
【００８１】
ＳＥＬ１４は、バッファコントロール１３により生成されたメモリ容量警告信号に応じてＭＡＣフレームの転送を中止する。ただし、本実施例においては、バッファコントロール１３が直接的にＳＥＬ１４に対して指令を行うわけではなく、ＣＰＵ及びＣＨＥＣＫ回路１２を介した動作となる。
【００８２】
すなわち、ＳＥＬ１４は、バッファコントロール１３によりメモリ容量警告信号が生成されると、ＣＨＥＣＫ回路１２から指令を受け、ＴＸ＿ＲＤＣ３からのＭＡＣフレームの転送を中止して受信バッファメモリ８からＲＸ＿ＲＤＣ９に対して受信データの転送が行われるように回路を切り替える。
【００８３】
また、ＲＸ＿ＲＤＣ９は、バッファコントロール１３により生成されたメモリ容量警告信号に応じて、読み出し先を再度受信バッファメモリ８に戻す。具体的には、メモリ容量警告信号を受信したＣＰＵが、ＲＸ＿ＲＤＣ９に指令を与えることにより、ＲＸ＿ＲＤＣ９によるＴＸ＿ＲＤＣ３からのＭＡＣフレームの読み出しを中止させるとともに、受信バッファメモリ８からの受信データの読み出しを再開させる。
【００８４】
本実施例におけるＭＡＣ回路は、上述したように、自己診断中においては受信バッファメモリ８に書き込まれた受信データがＲＸ＿ＲＤＣ９により読み出されないので、実施例１のように自己診断中にリアルタイムで受信データがＣＰＵに出力されることはなく、自己診断中に受信した受信データは受信バッファメモリ８に記憶され、自己診断終了後にまとめて受信バッファメモリ８から受信データをＣＰＵに送るものである。したがって、受信バッファメモリ８に空き容量が無くなると、受信バッファメモリ８は、新たに受信データを受信するたびに古いデータに上書きしてしまい、ＣＰＵに出力することなく受信データを破棄してしまうことになる。バッファコントロール１３は、上述した問題が発生する前に受信バッファメモリ８の空き容量に応じて自己診断を中止し、受信データの破棄を回避するものである。
【００８５】
上述のとおり、本発明の実施例２の形態に係るＭＡＣ回路によれば、実施例１と同様の効果を得ることができるのみならず、送信データを利用して自己診断を行うことで、ＴＸ＿ＷＲＣ１等の実施例１で確認できなかった回路部分について自己診断を行うことができる。また、ＣＨＥＣＫ回路１２は、カウンタ１５によりカウントされた送信データ数に基づいて自己診断を行うタイミングを決めているので、ＭＡＣ回路の使用頻度に応じたタイミングで自己診断を行うことができ、より適切にＭＡＣ回路の健全性を保つことができる。
【００８６】
また、自己診断中に受信バッファメモリ８があふれそうになった場合にはバッファコントロール１３の警告により、ＣＨＥＣＫ回路１２は、自己診断処理を中断し通常の送受信モードに戻るため、受信データが破棄されることなく適切に受信処理を行うことができる。
【産業上の利用可能性】
【００８７】
本発明に係るＭＡＣ回路は、データを送信するためのＭＡＣフレームの生成や受信したデータの誤り検出等を行って通信媒体のアクセスを制御するＭＡＣ回路に利用可能である。
【符号の説明】
【００８８】
１      ＴＸ＿ＷＲＣ
２      送信バッファメモリ
３      ＴＸ＿ＲＤＣ
４      ＦＣＳ回路
５      ループバック回路
５ａ    ループバック指令
５ｂ    受信データ
５ｃ    ループバックデータ
６      ＲＸ＿ＷＲＣ
７      ＦＣＳ回路
８      受信バッファメモリ
９      ＲＸ＿ＲＤＣ
９ａ    受信データ
１０，１１  カウンタ
１２    ＣＨＥＣＫ回路
１３    バッファコントロール
１３ｂ  受信データ
１３ｃ  ＦＣＳ値
１４    ＳＥＬ
１５    カウンタ
１６    バッファコントロール
１７，１８  ＳＥＬ
【図１】
2011101113.tif 000003
【図２】
2011101113.tif 000004
【図３】
2011101113.tif 000005
【図４】
2011101113.tif 000006
【図５】
2011101113.tif 000007
【図６】
2011101113.tif 000008
【図７】
2011101113.tif 000009