(57)【要約】【目的】本通信装置が接続されているネットワークに接続されている（通信コントローラの基本動作クロックが規定周波数範囲を外れているかもしれない装置を含む）全ての装置と通信を行うことができる通信装置を提供すること。【構成】通信装置の通信制御回路において、出力周波数が調整された複数の発振回路を設け、それらの出力を切り替えて通信制御回路の基本動作クロックとして使用することにより、通信相手の通信装置の通信制御回路の基本動作クロックが多少規定周波数範囲から外れていても正常に通信できるようにする。【選択図】      図１
2004221667.tif 000002
【特許請求の範囲】
【請求項１】
通信装置の通信制御回路において、出力周波数が調整された複数の発振回路を設け、それらの出力を切り替えて通信制御回路の基本動作クロックとして使用することにより、通信相手の通信装置の通信制御回路の基本動作クロックが多少規定周波数範囲から外れていても正常に通信できるようにしたことを特徴とする通信装置。
【請求項２】
通信装置の通信制御回路において、電圧制御により、  複数の発振周波数出力を出力できる手段を設け、それらの出力を切り替えて通信制御回路の基本動作クロックとして使用することにより、通信相手の通信装置の通信制御回路の基本動作クロックが多少規定周波数範囲から外れていても正常に通信できるようにしたことを特徴とする通信装置。
【請求項３】
予め通信相手装置の認識番号と基本動作クロックの周波数偏差情報とを対応させて周波数偏差テーブルに記憶しておき、前記通信装置のアプリケーション等による送信要求により送信処理を行う場合に、要求通信相手装置の認識番号で周波数偏差テーブルを参照し、対応付けられている周波数偏差情報に基づき、自身の通信コントローラの基本動作クロックを選択することを特徴とする請求項１又は２記載の通信装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、１００ＢＡＳＥ−ＴＸ  Ｅｔｈｅｒｎｅｔ  等の通信装置において通信制御回路の基本動作クロックが通信規格で定められた範囲から多少外れた通信装置との通信を可能にする手段に関するものである。
【０００２】
【従来の技術】
従来、通信装置は通信を行う全ての装置の通信制御回路の基本動作クロックが、前記通信装置が採用している通信規格で定められた周波数範囲内の基本動作クロックを使用しなければ通信が正常に行えないことが多かった。
【０００３】
以下、図５に従来例を示す。同図において、１は装置１、２は前記装置１内の通信コントローラ１、３は前記通信コントローラ１内の発振回路を構成する抵抗、４は前記通信コントローラ１内の発振回路を構成するインバータ、５は前記通信コントローラ１の基本動作クロックを発生する水晶振動子、６及び７は前記水晶振動子の発振容量Ｃｇ及びＣｄである。
【０００４】
８は前記装置１と対向して通信を行う装置２、９は前記装置２内の通信コントローラ２、１０は前記通信コントローラ２内の発振回路を構成する抵抗、１１は前記通信コントローラ２内の発振回路を構成するインバータ、１２は前記通信コントローラ２の基本動作クロックを発生する水晶振動子、１３及び１４は前記水晶振動子の発振容量Ｃｇ及びＣｄである。１５は装置１と装置２が通信を行う通信ラインである。
【０００５】
以上の構成において、図５の２や９の通信コントローラ１や通信コントローラ２は内部に主にインバータ（４や１１）と抵抗（３や１０）で構成される発振回路を内蔵しており、水晶振動子５や１２、  発振容量６，７や１３，１４等で構成される水晶発振回路が、前記通信コントローラ１の基本動作クロックＦ１や通信コントローラ２の基本動作クロックＦ２を発生させる。
【０００６】
装置１と装置２が通信を行う場合、これらの装置内の通信コントローラ（通信制御回路）の基本動作クロックの周波数偏差が、これらの装置が採用する通信方式で規定される範囲（以後、  規定周波数範囲と呼ぶ）以内でなければ正常に通信できない場合がある。
【０００７】
例えば、１００ＢＡＳＥ−ＴＸ  Ｅｔｈｅｒｎｅｔ  を例にとると、通信ライン１１上のビットストリームの基本動作クロックは１２５ＭＨｚであるが、通信制御回路の基本動作クロック（Ｆ１やＦ２）は２５ＭＨｚ±５０ｐｐｍと規定されている。例えば、  装置１の基本動作クロックＦ１は規定周波数範囲内（２５ＭＨｚ±５０ｐｐｍ）に入っているとしても、  装置２の基本動作クロックＦ２が規定周波数範囲外（２５ＭＨｚ＋１００ｐｐｍとか２５ＭＨｚ−８０ｐｐｍ等）であれば通信できない可能性が高い。
【０００８】
【発明が解決しようとする課題】
しかしながら、１００ＢＡＳＥ−ＴＸ  Ｅｔｈｅｒｎｅｔ  等のように近年急激にコストダウンが進み、そのために、コストの低い汎用水晶振動子を使用し、  発振の安定化調整や周波数の微調整作業（発振回路の負性抵抗や負荷容量等の調整）も省略したようなネットワークカード等が流通している。又、ネットワークカード等の製品出荷直後は、規定周波数範囲に入っていた製品でも、時間が経つと水晶振動子等の経年変化等の影響で規定周波数範囲から外れることもある。又、常温では規定周波数範囲に入っていても、高温や低温環境で使用する場合には、水晶振動子の温度特性により、規定周波数範囲から外れることもある。
【０００９】
一方、近年、ネットワークプリンタのように通信機能が標準で内蔵されている（取り外しや交換ができない）装置も増えてきた。このような装置では通信装置が簡単に交換できないために、通信相手の基本動作クロックが多少規定周波数範囲から外れていても正常に通信できることが望まれる。
【００１０】
本発明は上記事情に鑑みてなされたもので、その目的とする処は、本通信装置が接続されているネットワークに接続されている（通信コントローラの基本動作クロックが規定周波数範囲を外れているかもしれない装置を含む）全ての装置と通信を行うことができる通信装置を提供することにある。
【００１１】
【課題を解決するための手段】
上記目的を達成するため、本発明は、出力周波数が調整された複数の発振回路を設け、それらの出力を切り替えて通信制御回路の基本動作クロックとして使用することにより、通信相手の通信コントローラの基本動作クロックが多少規定周波数範囲から外れていても正常に通信できるようにしたものである。
【００１２】
【発明の実施の形態】
以下に本発明の実施の形態を添付図面に基づいて説明する。
【００１３】
＜実施の形態１＞
図１は本発明の実施の形態１を示し、前記従来例の装置１に対して、２つの水晶発振回路とそれらを含む複数の水晶発振回路の出力を切り替えて通信コントローラ１の基本動作クロックＦ１として出力できる１６の切替器を追加したものである。
【００１４】
同図において、１〜７と１５は前記従来例で説明したものと同じである。又、１０３〜１０７（発振回路Ｂと呼ぶ）と２０３〜２０７（発振回路Ｃと呼ぶ）は３〜７（発振回路Ａと呼ぶ）の水晶発振回路と同じである。１６は前記３つの水晶発振回路の出力を切り替えることができる切替器であり、  この切替器の出力Ｆ１が通信コントローラ１の基本動作クロックとなる。つまり、通信コントローラ１は、異なる３つの周波数の基本動作クロックで動作させることが可能である。そして、  １５の通信ラインを介して前記従来例と同じ装置２と通信することができる。
【００１５】
上記構成において、３つの水晶発振回路の発振周波数は前記水晶発振回路の調整を行い正確に合わせられている。通常水晶発振回路はその発振余裕度を確保しなければ安定した発振ができないため、先ず、発振余裕度を確保するための微調整が行われる。この発振余裕度を上げるためには、発振回路の負性抵抗が水晶振動子の等価直列抵抗より充分に大きくなるようにしなければならない。負性抵抗は発振容量（図１の６，７，１０６，１０７，２０６，２０７）で変化するため、この発振容量の値を調整し負性抵抗が大きくなるようにする必要がある。
【００１６】
次に、発振周波数は水晶振動子の発振周波数で決まるが、厳密には水晶振動子の負荷容量の値によって上下する。この負荷容量は主に通信コントローラＩＣの特性で決まる。このＩＣの特性で決まる負荷容量値の水晶振動子を選択する必要がある。
【００１７】
以上のように、水晶発振回路の負性抵抗と水晶振動子の負荷容量を適切に設定することにより正確な発振周波数で安定した発振動作を行わせることができる。
【００１８】
又、負荷容量周波数特性の周波数変化量は大きく、±２００ｐｐｍ程度ある。このことは、負荷容量の調整により発振周波数を±２００ｐｐｍ程度ずらせることを意味する。
【００１９】
本実施の形態では、１００ＢＡＳＥ−ＴＸ  Ｅｔｈｅｒｎｅｔ  等のように基本動作クロックの規定周波数範囲を２５ＭＨｚ±５０ｐｐｍとする。図２に示すように、２５ＭＨｚを中心に−５０ｐｐｍ〜＋５０ｐｐｍまでの１００ｐｐｍの範囲である。本実施の形態では、この範囲をカバーするための発振回路Ａとこの範囲より上の１００ｐｐｍの範囲をカバーするための発振回路Ｂと、下の１００ｐｐｍの範囲をカバーするための発振回路Ｃとで構成される。よって、発振回路Ａの発振周波数は２５ＭＨｚ丁度に調整され、発振回路Ｂの発振周波数は２５ＭＨｚ＋１００ｐｐｍの周波数に調整され、発振回路Ｃの発振周波数は２５ＭＨｚ−１００ｐｐｍの周波数に調整される。この発信周波数の調整は、前述した負荷容量の調整で行う。
【００２０】
以上説明した構成の装置１と装置２が通信を行う訳であるが、装置１の基本動作クロックを切り替えるためのファームウェア（ソフトウェア）が必要になる。以下説明することと同様の制御ができれば、プロトコル階層モデルにおける層はどの層でも構わないが、  アプリケーションプログラム等に影響を与えないように本実施の形態では、データリンク層の制御ファームウェア（デバイスドライバ）で実現する。その制御手順を図３を使って以下に説明する。
【００２１】
装置１は電源投入時のシステムの初期化を行う過程において通信コントローラの初期化（３０１）も行われる。先ず、通信コントローラの各種レジスタ等の初期設定を行う（３０２）。次に、  通信ケーブル（及び通信相手の装置）が接続されているかどうかをオートネゴシエーション機能（例えば、１００ＢＡＳＥ−ＴＸ  Ｅｔｈｅｒｎｅｔ  等で採用されているＩＥＥＥ８０２．３ｕ）等で判別する（３０３）。
【００２２】
ここで、通信ケーブルが接続されていなければ通信できないので、これ以降の処理は行わないで、この通信コントローラの初期化ルーチンを抜ける（３１３）。通信ケーブルが接続されている場合には、やはり、オートネゴシエーション機能により通信相手とのの通信をどの通信モード（１００ＢＡＳＥ−ＴＸか１０ＢＡＳＥ−Ｔか等や全二重モードか半二重モードか等）で行うことが可能かを判別し、  その通信モードのためのレジスタ設定等を行う（３０５）。
【００２３】
又、電源投入時に通信ケーブルが接続されていなくて、システムの起動後に通信ケーブルが接続された場合や、通信ケーブルや通信相手装置を繋ぎ替えるような場合もホットプラグ機能（３０４）が働き、３０５の手前に飛んでくるので、同様に通信モードのためのレジスタ設定等を行う（３０５）。
【００２４】
ここからが、本発明のための処理であり、  先ず発振回路をＡに切り替え、データリンク層より上の階層では意味のないようなブロードキャストパケットを定義しておき（以後、通信確認パケットと呼ぶ）、その通信確認パケットを同報（ブロードキャストパケット）送信する（３０６）。この通信確認パケットは通信ラインに繋がっている全てのノード（通信相手の装置）に送られる。
【００２５】
一方、その通信確認パケット（ブロードキャストパケット）を正常に受け取ったノードは、正常に受け取ったことを知らせるためのアクノリッジパケットを送信者（装置１）に返送する。つまり、図１の装置１が通信確認パケットを同報送信し、通信ライン１５に繋がっている装置２が正常に前記通信確認パケットを受信できた場合には、装置２はアクノリッジパケットを装置１に返送することになる。よって、ここで、一定時間の間、アクノリッジパケットが返送されてくるかどうかをモニタリングし（３０７）、もし、アクノリッジパケットがあった場合には、通信相手の通信コントローラの基本動作クロックは発振回路Ａの場合のカバー範囲（図２のＡ’）にあると判断できる。
【００２６】
つまり、１００ＢＡＳＥ−ＴＸ  Ｅｔｈｅｒｎｅｔ  の規定周波数範囲に入っている。よって、装置１の発振回路もＡを選択した状態のまま、この通信コントローラの初期化ルーチンを抜ければ（３１３）、それ以降の装置２との通信は正常に行える。又、３０７において一定時間待ってもアクノリッジパケットがなかった場合には、通信相手（装置２）は１００ＢＡＳＥ−ＴＸ  Ｅｔｈｅｒｎｅｔ  の規定周波数範囲外の基本動作クロックで動作しているために通信確認パケットを正常に受信できなかったものと判断できる。
【００２７】
そこで、今度は、装置１の発振回路をＢに切り替え、通信確認パケットを同報送信する（３０８）。そして、３０７と同様に一定時間の間、アクノリッジパケットが返送されてくるかどうかをモニタリングし（３０９）、もし、アクノリッジパケットがあった場合には、通信相手の通信コントローラの基本動作クロックは発振回路Ｂの場合のカバー範囲（図２のＢ’）にあると判断できる。
【００２８】
つまり、１００ＢＡＳＥ−ＴＸ  Ｅｔｈｅｒｎｅｔ  の規定周波数範囲を＋方向にオーバーしている。よって、装置１の発振回路もＢを選択した状態のまま、この通信コントローラの初期化ルーチンを抜ければ（３１３）、それ以降の装置２との通信は正常に行える。又、３０９において一定時間待ってもアクノリッジパケットがなかった場合には、通信相手（装置２）は１００ＢＡＳＥ−ＴＸ  Ｅｔｈｅｒｎｅｔ  の規定周波数範囲外の基本動作クロックで動作しているために通信確認パケットを正常に受信できなかったものと判断できる。
【００２９】
そこで、今度は、装置１の発振回路をＣに切り替え、通信確認パケットを同報送信する（３１０）。そして、３０７と同様に一定時間の間、アクノリッジパケットが返送されてくるかどうかをモニタリングし（３１１）、もし、アクノリッジパケットがあった場合には、通信相手の通信コントローラの基本動作クロックは発振回路Ｃの場合のカバー範囲（図２のＣ’）にあると判断できる。つまり、１００ＢＡＳＥ−ＴＸ  Ｅｔｈｅｒｎｅｔ  の規定周波数範囲を−方向にオーバーしている。よって、装置１の発振回路もＣを選択した状態のまま、この通信コントローラの初期化ルーチンを抜ければ（３１３）、それ以降の装置２との通信は正常に行える。
【００３０】
又、３１１において一定時間待ってもアクノリッジパケットがなかった場合には、通信相手（装置２）は１００ＢＡＳＥ−ＴＸ  Ｅｔｈｅｒｎｅｔ  の規定周波数範囲外の基本動作クロックでしかも大幅にずれている状態で動作しているために通信確認パケットを正常に受信できなかったものと判断できる。この場合は、装置２とは通信できないと判断し、通信エラーをシステムに知らせ（３１２）、この通信コントローラの初期化ルーチンを抜ける（３１３）。
【００３１】
以上説明したように、出力周波数が調整された複数の発振回路を設け、それらの出力を切り替えて通信制御回路の基本動作クロックとして使用することにより、通信相手の通信コントローラの基本動作クロックが多少規定周波数範囲から外れていても正常に通信することができる。
【００３２】
＜実施の形態２＞
前記実施の形態１では、低コストの水晶振動子を使用しているため、システムを低コストで実現できるが、  前記実施の形態で述べたように水晶発振回路の微調整作業が高精度な技術を要する。又、周囲温度の変化に対して発振周波数が影響を受け易い。本実施の形態２では、前記実施の形態１に対して発振周波数の調整や補正が行い易くしたものである。
【００３３】
図４は本発明の実施の形態２を示し、同図において１，２，１５は前記実施の形態１（図１）、即ち前記従来例（図５）と同じである。２０は通信コントローラ１の制御で出力電圧を可変できる出力電圧可変ＤＣ−ＤＣコンバータ、２１は電圧制御で出力周波数を微調整できるＶＣＸＯ（Ｖｏｌｔａｇｅ  Ｃｏｎｔｒｏｌｌｅｄ  Ｘｔａｌ  Ｏｓｃｉｌｌａｔｏｒ）、２２は通信コントローラが周囲温度を知るための温度センサーである。
【００３４】
上記構成において、２の通信コントローラ１は２０のＤＣ−ＤＣコンバータにデジタル値を設定することにより出力電圧を（３．３Ｖ〜１．２Ｖの範囲で）０．１Ｖ単位で自由に設定できる。又、ＶＣＸＯ２１は基準出力周波数２５ＭＨｚを中心に±１５０ｐｐｍまで（入力電圧の制御により）可変させることができる。又、通信コントローラ１は、温度センサー２２からＶＣＸＯ２１や通信コントローラ１近辺の周囲温度の情報を入手できる。この周囲温度の情報により、ＶＣＸＯ２１やＤＣ−ＤＣコンバータ２０等の温度特性によって、周囲温度変化があった場合にＶＣＸＯ２１の出力周波数がずれてしまうことを無くすように、ＤＣ−ＤＣコンバータの設定値に補正を掛けることができる。つまり、周囲温度に依存することなくＶＣＸＯ２１の出力周波数を正確に設定できる。
【００３５】
通信コントローラ１は、ＶＣＸＯ２１の基準出力周波数（２５ＭＨｚ丁度）を出力する時の制御電圧をＤＣ−ＤＣコンバータ２０が出力できるように設定する（ＤＣ−ＤＣコンバータへの）設定値をＡとして記憶する。同様に、通信コントローラ１はＶＣＸＯ２１の出力が２５ＭＨｚ＋１００ｐｐｍを出力する時の制御電圧をＤＣ−ＤＣコンバータ２０が出力できるように設定する設定値をＢとして記憶する。更に、通信コントローラ１は、ＶＣＸＯ２１の出力が２５ＭＨｚ−１００ｐｐｍを出力する時の制御電圧をＤＣ−ＤＣコンバータ２０が出力できるように設定する設定値をＣとして記憶する。
【００３６】
前記記憶したＡ，Ｂ，Ｃの値をＤＣ−ＤＣコンバータ２０に設定することは、前記実施の形態１において水晶発振回路をそれぞれＡ，Ｂ，Ｃに切り替えることに相当する。よって、本実施の形態２の制御も前記実施の形態１と同様に行うこと（図３のフローと同様）で目的を達成できる。
【００３７】
以上説明したように、出力可変ＤＣ−ＤＣコンバータを制御し、ＶＣＸＯの制御電圧を調整して出力周波数を複数の周波数に合わせることが可能とし、それらの出力を切り替えて通信制御回路の基本動作クロックとして使用することにより、通信相手の通信コントローラの基本動作クロックが多少規定周波数範囲から外れていても正常に通信できる。
【００３８】
又、温度センサーを追加することで、通信コントローラやＶＣＸＯ等の周囲温度が変化してもＶＣＸＯの出力周波数を常に希望する周波数に合わせられるように補正することができるため、温度変化に依存しない安定した動作が可能となる。
【００３９】
＜実施の形態３＞
前記実施の形態１，２では本発明を実施した装置１と通信コントローラの基本動作クロックが多少ずれているかもしれない装置である装置２との２点間での通信をする場合の例で説明した。
【００４０】
しかしながら、１００ＢＡＳＥ−ＴＸ  Ｅｔｈｅｒｎｅｔ  等で構成されたネットワークでは１つの通信ライン（通信媒体：物理層）に複数の装置が接続される。そのために、  前記実施の形態において通信確認パケットを送る時に接続されている全ての装置に送られるように同報送信（ブロードキャストパケット）としたのである。
【００４１】
よって、通信確認パケットを送信した後のアクノリッジパケットを待っている時に複数の装置からのアクノリッジパケットが届く可能性もある。それぞれのパケットには送信装置を特定するための認識番号（１００ＢＡＳＥ−ＴＸ  Ｅｔｈｅｒｎｅｔ  等の場合はＭＡＣアドレス）が含まれているので、  どの装置からのアクノリッジであるかが判別できる。
【００４２】
この、アクノリッジパケットの送信者の認識番号とその時の装置１の発振回路の周波数が±０ｐｐｍ（Ａ）、＋１００ｐｐｍ（Ｂ）、−１００ｐｐｍ（Ｃ）のどの状態（つまり、  通信相手の通信コントローラの基本動作クロックがずれているかどうか、ずれている場合は＋方向か−方向かを表す）であるかを対応付けたテーブル（以後、  周波数偏差テーブルと呼ぶ）に順次追加していくようにする。
【００４３】
よって、この周波数偏差テーブルの情報は通信コントローラ１の初期化時（装置１のパワーオン時）にネットワークに繋がっている装置のみならず、  後から接続された装置やケーブルを繋ぎ替えたりした装置も（図３の３０４の）ホットプラグ機能により認識されて通信確認パケットが送信されるため、前記周波数偏差テーブルに情報が順次追加されていくことになる。
【００４４】
つまり、装置１が通信の対象とする全ての相手装置の認識番号とその装置の基本動作クロック周波数のずれ情報が周波数偏差テーブルに書かれていることになる。
【００４５】
以上の構成により、  本実施の形態に係る装置１は、上位階層（アプリケーション層）のプロトコルの送信要求に基づきデータリンク層まで送信要求が届いた時に、要求送信相手の認識番号で前記周波数偏差テーブルを参照し、その周波数偏差情報に基づき装置１の基本動作クロックの周波数を切替えてから、  従来通りの送信処理を行うようにする。
【００４６】
【発明の効果】
以上の説明で明らかなように、本発明によれば、予め通信相手の認識番号と基本動作クロックの周波数偏差情報とを対応させて周波数偏差テーブルに記憶しておき、前記通信装置のアプリケーション等による送信要求により送信処理を行う場合に、要求通信相手装置の認識番号で周波数偏差テーブルを参照し、対応付けられている周波数偏差情報に基づき、自身の通信コントローラの基本動作クロックを選択することにより、本通信装置が接続されているネットワークに接続されている（通信コントローラの基本動作クロックが規定周波数範囲を外れているかもしれない装置を含む）全ての装置と通信を行うことが可能となる。
【図面の簡単な説明】
【図１】本発明の実施の形態１に係る通信装置の構成を示すブロック図である。
【図２】本発明の実施の形態１に係る通信装置における周波数範囲の説明図である。
【図３】本発明の実施の形態１に係る通信装置の制御手順を示すフローチャートである。
【図４】本発明の実施の形態２に係る通信装置の構成を示すブロック図である。
【図５】従来の実施例の説明図である。
【符号の説明】
１        装置１
２        通信コントローラ１
３        発振回路を構成する抵抗
４        発振回路を構成するインバータ
５        水晶振動子
６        発振容量Ｃｇ
７        発振容量Ｃｄ
８        装置２
９        通信コントローラ２
１０      発振回路を構成する抵抗
１１      発振回路を構成するインバータ
１２      水晶振動子
１３      発振容量Ｃｇ
１４      発振容量Ｃｄ
１５      通信ライン
１６      切替器
２０      出力電圧可変ＤＣ−ＤＣコンバータ
２１      ＶＣＸＯ（Ｖｏｌｔａｇｅ  Ｃｏｎｔｒｏｌｌｅｄ  Ｘｔａｌ  Ｏｓｃｉｌｌａｔｏｒ）
２２      温度センサー
１０３    発振回路を構成する抵抗
１０４    発振回路を構成するインバータ
１０５    水晶振動子
１０６    発振容量Ｃｇ
１０７    発振容量Ｃｄ
２０３    発振回路を構成する抵抗
２０４    発振回路を構成するインバータ
２０５    水晶振動子
２０６    発振容量Ｃｇ
２０７    発振容量Ｃｄ
【図１】
2004221667.tif 000003
【図２】
2004221667.tif 000004
【図３】
2004221667.tif 000005
【図４】
2004221667.tif 000006
【図５】
2004221667.tif 000007