(57)【要約】【課題】ＩＥＥＥ１３９４の基底サイクルであるＩｓｏｃｈｒｏｎｏｕｓ周期に同期した１２５μs周期の割込み信号を発生させる通信ＬＳＩを使用した場合の、不必要な割込み処理が起動されることによるＣＰＵのオーバヘッドを減少させる。【解決手段】通信装置内のＣＰＵが、初期化時に通信周期、接続通信装置数、送受信パケットサイズと通信ＬＳＩのＩｓｏｃｈｒｏｎｏｕｓ送受信バッファサイズ、ＣＰＵが通信ＬＳＩのバッファにデータを読み書きする速度から、全パケット送受信に必要な割込み周期を演算し、通信ＬＳＩからの割込み信号を分周して、該割込み周期の割込み信号を生成する。【選択図】図１
2008005210.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵとメモリと通信用ＬＳＩとを備えＩｓｏｃｈｒｏｎｏｕｓ周期の整数倍の通信周期でサイクリックにＩｓｏｃｈｒｏｎｏｕｓ転送を行うＩＥＥＥ１３９４通信装置において、
初期化時に前記ＣＰＵ上で実行され、前記通信周期内において通信を行う前記通信装置の数と、前記通信周期内における送受信パケットサイズと、前記通信ＬＳＩのＩｓｏｃｈｒｏｎｏｕｓ送受信バッファサイズと、前記通信ＬＳＩのバッファに前記ＣＰＵがデータを読み書きする速度とを用いて、前記通信周期内において前記送受信パケットを全て送受信するために必要な割込み周期を演算する割込み周期演算処理部と、
前記通信ＬＳＩからのＩｓｏｃｈｒｏｎｏｕｓ周期毎の割込み信号を前記必要な割込み周期に分周し、該分周された周期の割込み信号を生成する分周回路と、
を具備することを特徴とするＩＥＥＥ１３９４通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＩＥＥＥ１３９４にて通信を行う通信装置に関する。
【背景技術】
【０００２】
従来の、ＩＥＥＥ１３９４にて通信を行う通信装置では、例えば、非特許文献１の  ６．１  ＩｎｔＥｖｅｎｔ  ｒｅｇｉｓｔｅｒのｃｙｃｌｅＳｙｎｃ信号をもとに割込み処理を起動していた。従って、割込み処理の起動周期は１２５μｓであった。
（非特許文献１参照）。
【０００３】
図５において、４００は通信装置、４０１はＣＰＵ、４０２は通信ＬＳＩ、４０３は割込み信号である。通信ＬＳＩ４０２から割込み信号４０３が１２５μｓ毎にＣＰＵ４０１に入力される。ＣＰＵ４０１はこの割込み信号４０３が入力されることにより割込み処理を起動し、通信ＬＳＩ４０２をコントロールして、他との通信を行う。
【０００４】
図６に示すように、８つのＩｓｏｃｈｒｏｎｏｕｓ周期を通信周期としてサイクリックにＩＥＥＥ１３９４で接続された複数の通信装置とパケットの送受信を行なう場合、通信周期は１ｍｓとなる。このとき、１２５μｓ毎に割込み信号５００〜５０７が入力されることにより、割込み処理５１０〜５１７が起動される。ここで、前記通信装置とのパケット送受信が、通信周期の中の２つのＩｓｏｃｈｒｏｎｏｕｓ周期で終了する場合、送受信処理の実行は割込み処理５１０,５１１では必要だが、割込み処理５１２〜５１７では不要である。このように従来の通信装置では、通信ＬＳＩが、ＩＥＥＥ１３９４の基底サイクルであるＩｓｏｃｈｒｏｎｏｕｓ周期に同期した１２５μs周期の割込み信号を発生させるので、不必要な割込み処理が起動される。
【非特許文献１】１３９４  Ｏｐｅｎ  Ｈｏｓｔ  Ｃｏｎｔｒｏｌｌｅｒ  Ｉｎｔｅｒｆａｃｅ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ  Ｒｅｌｅａｓｅ１．１
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来技術では、通信ＬＳＩが、ＩＥＥＥ１３９４の基底サイクルであるＩｓｏｃｈｒｏｎｏｕｓ周期に同期した１２５μs周期の割込み信号を発生させるので、不必要な割込み処理が起動され、ＣＰＵのオーバヘッドとなっていた。
【０００６】
本発明はこのような問題点に鑑みてなされたものであり、全パケットを送受信するために必要な最低限の回数の割込み信号によって必要な割込み処理のみを起動するＩＥＥＥ１３９４通信装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記問題を解決するため、本発明は、次のようにしたのである。
【０００８】
請求項１に記載の発明は、
ＣＰＵとメモリと通信用ＬＳＩとを備えＩｓｏｃｈｒｏｎｏｕｓ周期の整数倍の通信周期でサイクリックにＩｓｏｃｈｒｏｎｏｕｓ転送を行うＩＥＥＥ１３９４通信装置において、
初期化時に前記ＣＰＵ上で実行され、前記通信周期内において通信を行う前記通信装置の数と、前記通信周期内における送受信パケットサイズと、前記通信ＬＳＩのＩｓｏｃｈｒｏｎｏｕｓ送受信バッファサイズと、前記通信ＬＳＩのバッファに前記ＣＰＵがデータを読み書きする速度とを用いて、前記通信周期内において前記送受信パケットを全て送受信するために必要な割込み周期を演算する割込み周期演算処理部と、
前記通信ＬＳＩからのＩｓｏｃｈｒｏｎｏｕｓ周期毎の割込み信号を前記必要な割込み周期に分周し、該分周された周期の割込み信号を生成する分周回路とを、
具備することを特徴としたものである。
【発明の効果】
【０００９】
請求項１に記載の発明によると、通信装置内のＣＰＵが、初期化時に通信周期、接続通信装置数、送受信パケットサイズと通信ＬＳＩのＩｓｏｃｈｒｏｎｏｕｓ送受信バッファサイズ、通信ＬＳＩのバッファにデータを読み書きするＣＰＵの速度から、全パケットを送受信するために最低限必要な割込み周期を演算し、その結果得られた値による分周選択信号を分周回路に入力することにより、ＣＰＵに入力される通信ＬＳＩからの割込み信号の周期が、全パケットを送信するために最低限必要な割込み周期となり、不要な割込み処理が起動されないので、ＣＰＵのオーバヘッドを減少させることができる。
【発明を実施するための最良の形態】
【００１０】
以下、本発明の実施の形態について図を参照して説明する。
【実施例】
【００１１】
図１は、本発明のシステムの構成図である。図１において、１は通信装置、２はＣＰＵ、２１は割込み周期演算処理部、３はメモリ、３１は分周演算情報格納部、３２は分周選択値格納部、４は分周選択信号、５は通信ＬＳＩ、６は割込み信号、７は分周回路、７１はセレクタ、７２は割込み分周回路、７３ｉ（ｉ＝１，２，・・・）は分周後割込み信号、８はＣＰＵ割込み信号である。
ここで、分周演算情報格納部３１、分周選択値格納部３２はメモリ３に確保される。また、分周回路７は割込み分周回路７２とセレクタ７１で構成される。
通信ＬＳＩ５から１２５μｓ周期の割込み信号６が分周回路７内の割込み分周回路７２およびセレクタ７１に入力される。割込み分周回路７２では割込み信号６が１／２〜１／２ｎに分周されセレクタ７１に入力される。セレクタ７１は、ＣＰＵ２内の分周選択値格納部３２に格納された値に基づいてＣＰＵ２からセレクタ７１に入力された分周選択信号４に対応した周期の分周後割込み信号７３ｉを、ＣＰＵ割込み信号８としてＣＰＵ２へ出力する。
応じた通信周期で通信ＬＳＩ５からの割り込み信号を、ＣＰＵ割込み信号８としてＣＰＵ２へ出力する。ＣＰＵ２は通信制御部を備えており（図示せず）、ＣＰＵ割込み信号８が入力される毎に通信ＬＳＩ５を制御して通信を行う。
本実施例では、割込み信号６を１／２ｎに分周しているが、任意の分周も可能である。また、分周回路７は外付けの回路としているが、もちろん通信ＬＳＩ５に組み込んでも良い。
【００１２】
図３、図４はＣＰＵ２において、初期化時に通信周期、接続通信装置の数、送受信パケットサイズと通信ＬＳＩのＩｓｏｃｈｒｏｎｏｕｓ送受信バッファサイズ、ＣＰＵが通信ＬＳＩのバッファにデータを読み書きする速度から、全パケットを送信するために最低限必要な割込み周期を演算し、その結果得られた値による分周選択信号を、通信ＬＳＩからの割込み信号を分周する分周回路に設定して同期通信開始するまでの処理手順を示すフローチャートである。この図を用いて本発明の方法について順を追って説明する。
【００１３】
はじめにＳ１０１で、割込み周期演算処理部２１は通信周期（Ｔ[ｓ]）を分周演算情報格納部３１より取得する。この値は、ユーザによって分周演算情報格納部３１に格納されている。Ｓ１０２では、前記通信ＬＳＩのＳｅｌｆ  ＩＤ  Ｃｏｕｎｔ  ＲｅｇｉｓｔｅｒのｓｅｌｆＩＤＳｉｚｅエリアから読み出した値より接続通信装置数（Ｓ[個]）を取得し、分周演算情報格納部３１に格納する。次にＳ１０３で分周選択値の計算を行う。以下にＳ１０３の詳細を説明する。
【００１４】
Ｓ１０３が実行されると、まずＳ１０３１で、割込み周期演算処理部２１は、通信ＬＳＩ５がＩｓｏｃｈｒｏｎｏｕｓサイクル毎に送受信可能なデータサイズであるＩｓｏｃｈｒｏｎｏｕｓ送受信バッファサイズ（Ｒ[ｂｙｔｅ]）、ＣＰＵ２が通信ＬＳＩ５のバッファにデータを読み書きする速度（Ｃ[ｂｙｔｅ/ｓ]）、送信パケットサイズ（ＰＣ[ｂｙｔｅ]）、受信パケットサイズ（ＰＳ[ｂｙｔｅ]）を分周演算情報格納部３１から取得する。これらの値は、ユーザによって分周演算情報格納部３１に格納されている。さらに、Ｓ１０２で分周演算情報格納部３１へ格納した接続通信装置数（Ｓ[個]）も取得する。
【００１５】
Ｓ１０３２では、全接続通信装置に対して送受信するデータのサイズである全書込み読出しサイズ（Ａ[ｂｙｔｅ]）を算出し、Ｓ１０３３では、ＣＰＵ２が１２５μｓ内で通信ＬＳＩ５のＩｓｏｃｈｒｏｎｏｕｓ送受信バッファに読み書き可能であるサイズ（Ｂ[ｂｙｔｅ]）を算出する。このサイズ（Ｂ[ｂｙｔｅ]）には、ＩＥＥＥ１３９４通信に固有のオーバヘッドは含んでいるものとするが、詳細は省略する。
Ｓ１０３４ではＳ１０３１で取得した通信ＬＳＩ５のＩｓｏｃｈｒｏｎｏｕｓ送受信バッファサイズＲと、Ｓ１０３３で算出したＣＰＵ２が１２５μｓ内で通信ＬＳＩ５のＩｓｏｃｈｒｏｎｏｕｓ送受信バッファに読み書き可能であるサイズＢの大小を比較し、Ｓ１０３５、またはＳ１０３６で、Ｓ１０３４で比較したサイズの小さいほうの値を１回の割込み処理で読書きするサイズ（Ｄ[ｂｙｔｅ]）に設定し、Ｓ１０３７で、Ｓ１０３２で算出した全書込みサイズＡがＳ１０３５、またはＳ１０３６で設定した１回の割込み処理で読書きするサイズＤで割り切れるか判断し、結果が割り切れれば、割込み処理回数（Ｎ[回]）をＳ１０３８で求め、割り切れなければ、Ｓ１０３９で求める。Ｓ１０４０では、Ｓ１０３８、またはＳ１０３９で取得した割込み回数Ｎが１であるかどうかを判断し、１であればＳ１０４３へ進み、１でなければ、Ｓ１０４１で、割込み回数Ｎが２で割り切れるかどうかを判断する。Ｓ１０４１の結果が割り切れれば、Ｓ１０４３へ進み、割り切れなければ、Ｓ１０４２で割込み回数Ｎに１を加算し、Ｓ１０４１へ進み、２で割り切れるまで同様処理を繰り返す。Ｓ１０４３では、割込み回数Ｎが、Ｓ１０１で取得した通信周期Ｔを１２５×１０−６[ｓ]で除算した商以下であるか判断し、以下であればＳ１０４５へ進み、以下でなければ、Ｓ１０４４でエラー処理を実行し、分周選択値計算処理を終了する。Ｓ１０４５では、Ｓ１０１で取得した通信周期ＴをＳ１０３８、またはＳ１０３９で取得した割込み処理回数Ｎで除算して必要割込み周期（ＮＴ[ｓ]）を算出する。
最後にＳ１０４６にて、Ｓ１０４５で取得した必要割込み周期ＮＴを１２５×１０−６[ｓ]で除算して分周選択値を算出する。
【００１６】
以上のように、分周選択値の計算Ｓ１０３が終了すると、Ｓ１０３で計算された分周選択値を、Ｓ１０４でＣＰＵ２内の分周選択値格納部３２へ格納する。その後Ｓ１０５で同期通信開始すると、通信ＬＳＩ５からの割込み信号６の割込み周期が分周回路７によって最低限必要な割込み周期に分周され、ＣＰＵ２の割込み処理を起動する。
【００１７】
本実施例で、例えば通信周期Ｔを１０００×１０−６[ｓ]、通信装置数Ｓを５[個]、Ｉｓｏｃｈｒｏｎｏｕｓ送受信バッファサイズＲを８００[ｂｙｔｅ]、ＣＰＵ２が通信ＬＳＩ５のバッファにデータを読み書きする速度Ｃを２００００００[ｂｙｔｅ/ｓ]、送信パケットサイズＰＣを４０[ｂｙｔｅ]、受信パケットサイズＰＳを４０[ｂｙｔｅ]とすると、全書込み読出しサイズＡ＝５×（４０＋４０）＝４００、ＣＰＵ２が１２５μｓ内で通信ＬＳＩ５のＩｓｏｃｈｒｏｎｏｕｓ送受信バッファに読み書き可能であるサイズＢ＝１２５×１０−６×２００００００＝２５０、Ｉｓｏｃｈｒｏｎｏｕｓ送受信バッファサイズＲ＞Ｂであるので、１回の割込み処理で読書きするサイズＤ＝Ｂとなる。ＡｍｏｄＤ＝４００ｍｏｄ２５０≠０なので、割込み処理回数Ｎ＝２となる。Ｎ＝１でなく、Ｎｍｏｄ２＝０であるので、Ｎと１０００×１０−６／１２５×１０−６を比較し、Ｎが小さいので、必要割込み周期ＮＴ＝１０００×１０−６／２＝５００×１０−６[ｓ]となり、図２のように割込み信号２００,２０１が入力される。全パケットの送受信処理は、割込み信号２００,２０１から起動される割込み処理２０２,２０３で全て完了する。
なお、パケットの送受信処理は、ＣＰＵ２上で実行される通信制御部（図示せず）が通信ＬＳＩ５を制御して行うことは言うまでもない。
【００１８】
このように、通信装置内のＣＰＵが、初期化時に通信周期、接続通信装置数、送受信パケットサイズと通信ＬＳＩのＩｓｏｃｈｒｏｎｏｕｓ送受信バッファサイズ、ＣＰＵが通信ＬＳＩのバッファにデータを読み書きする速度から、全パケットを送受信するために最低限必要な割込み周期を演算し、その結果得られた値による分周選択信号を分周回路に入力することにより、ＣＰＵに入力される通信ＬＳＩからの割込み信号の周期が、全パケットを送信するために最低限必要な割込み周期となり、不要な割込み処理が起動されないので、ＣＰＵのオーバヘッドを減少させることができる。
【図面の簡単な説明】
【００１９】
【図１】本発明の実施例を示すシステム構成図
【図２】実施例の通信周期に対する割込み周期
【図３】実施例の通信装置初期処理フローチャート
【図４】実施例の通信装置初期処理フローチャート
【図５】従来例のシステム構成図
【図６】従来例の通信周期に対する割込み周期
【符号の説明】
【００２０】
１  通信装置
２  ＣＰＵ
３  メモリ
４  分周選択信号
５  通信ＬＳＩ
６  割込み信号
７  分周回路
８  ＣＰＵ割込み信号
２１  割込み周期演算処理部
３１  分周演算情報格納部
３２  分周選択値格納部
７１  セレクタ
７２  割込み分周回路
７３ｉ  （ｉ＝１，２，・・・）  分周後割込み信号
２００,２０１  割込み信号
２０２,２０３  割込み処理
４００  従来例の通信装置
４０１  従来例のＣＰＵ
４０２  従来例の通信ＬＳＩ
４０３  従来例の割込み信号
５００〜５０７  従来例の割込み信号
５１０〜５１７  従来例の割込み処理
【図１】
2008005210.tif 000003
【図２】
2008005210.tif 000004
【図３】
2008005210.tif 000005
【図４】
2008005210.tif 000006
【図５】
2008005210.tif 000007
【図６】
2008005210.tif 000008