(57)【要約】【課題】クロック同期式通信の通信ボーレートを効率良く上げることができるようにする。【解決手段】クロック同期式通信システムでは、マスタ装置からスレーブ装置へ同期用の通信クロックであるクロックパルスが出力されると共に、データを送信する側は、クロックパルスの一方のエッジタイミングで、データ信号線へデータ信号を送出する動作を行い、データを受信する側は、クロックパルスの他方のエッジタイミングで、データ信号線からデータ信号を受信する動作を行う。そして、マスタ装置としてのマイコンは、出力するクロックパルスのハイ時間とロー時間とを、プログラムによって別々に設定可能になっており、そのクロックパルスのハイ時間とロー時間との各々を、通信相手との通信が成立するのに必要な条件を満たす最短の時間に設定する（Ｓ１４０，Ｓ１５０）。このため、クロックパルスの周期、延いては通信ボーレートを効率良く上げることができる。【選択図】図３
2010087781.tif 000002
【特許請求の範囲】
【請求項１】
マスタ装置からスレーブ装置へクロック信号線を介して通信クロックが出力されると共に、前記マスタ装置と前記スレーブ装置のうち、データを送信する側は、前記通信クロックの一方のエッジタイミングで、データ信号線へデータ信号を送出する動作を行い、前記マスタ装置と前記スレーブ装置のうち、データを受信する側は、前記通信クロックの他方のエッジタイミングで、前記データ信号線から前記データ信号を受信する動作を行うクロック同期式通信システムにおいて、前記マスタ装置として用いられる通信装置であって、
前記通信クロックのハイ時間とロー時間とを、別々に設定可能な可変設定手段を備えていること、
を特徴とする通信装置。
【請求項２】
請求項１に記載の通信装置において、
当該通信装置は、複数のスレーブ装置と通信するようになっていると共に、通信相手のスレーブ装置毎に、前記通信クロックのハイ時間及びロー時間を、前記可変設定手段により切り替えて設定するようになっていること、
を特徴とする通信装置。
【請求項３】
請求項１又は請求項２に記載の通信装置において、
前記スレーブ装置にデータ信号を送信する場合と、前記スレーブ装置からデータ信号を受信する場合とで、前記通信クロックのハイ時間及びロー時間を、前記可変設定手段により切り替えて設定するようになっていること、
を特徴とする通信装置。
【請求項４】
マスタ装置からスレーブ装置へクロック信号線を介して通信クロックが出力されると共に、前記マスタ装置と前記スレーブ装置のうち、データを送信する側は、前記通信クロックの一方のエッジタイミングで、データ信号線へデータ信号を送出する動作を行い、前記マスタ装置と前記スレーブ装置のうち、データを受信する側は、前記通信クロックの他方のエッジタイミングで、前記データ信号線から前記データ信号を受信する動作を行うクロック同期式通信システムにおいて、前記マスタ装置として用いられる通信装置であって、
前記通信クロックの前記一方のエッジタイミングから前記他方のエッジタイミングまでの時間よりも、前記他方のエッジタイミングから前記一方のエッジタイミングまでの時間の方が、短い時間に設定されていること、
を特徴とする通信装置。
【請求項５】
請求項１ないし請求項４の何れか１項に記載の通信装置と、その通信装置とクロック同期式通信を行うスレーブ装置と、を備えたクロック同期式通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クロック同期式通信に関するものである。
【背景技術】
【０００２】
クロック同期式通信システムでは、マスタ装置からスレーブ装置へクロック信号線を介して通信クロックが出力されると共に、マスタ装置とスレーブ装置のうち、データを送信する側は、通信クロックの一方のエッジタイミングで、データ信号線へデータ信号を送出する動作を行い、データを受信する側は、通信クロックの他方のエッジタイミングで、データ信号線からデータ信号を受信する動作を行う。
【０００３】
そして、このようなクロック同期式通信システムにおいて、通信ボーレートは、送信側のデータ信号の出力遅れ時間と、受信側のデータセットアップ時間及びデータホールド時間とを考慮して決定される。以下、このことについて具体的に説明する。
【０００４】
まず、データセットアップ時間は、受信側に確実にデータ信号を入力させるために、通信クロックの上記他方のエッジタイミングに先立って予め送信側がデータ信号線上のデータ信号を確定させておかなければならない最少時間であり、受信側の特性によって決まる。つまり、受信側が受信動作を開始する上記他方のエッジタイミングよりもどれくらい早くデータ信号線上のデータ信号を確定しておかなければならないかを示すのがデータセットアップ時間である。
【０００５】
そして、データホールド時間は、受信側に確実にデータ信号を入力させるために、通信クロックに上記他方のエッジが発生した後も送信側がデータ信号線上へのデータ信号の出力を継続しておかなければならない最少時間である。つまり、受信側が受信動作を開始する上記他方のエッジタイミングの後、どれくらいの間データ信号線上のデータ信号を保持し続けていなければならないかを示すのがデータホールド時間である。そして、このデータホールド時間も、受信側の特性によって決まる。
【０００６】
また、データ信号の出力遅れ時間は、送信側が通信クロックの上記一方のエッジタイミングでデータ信号線にデータ信号を出力する動作を開始してから、データ信号線上の実際の電圧が、その出力したデータ信号に該当する電圧になるまでの遅れ時間であり、送信側の信号出力特性（送信回路の特性）やデータ信号線の容量等によって決まる。
【０００７】
そして、従来より、クロック同期式通信システムにおけるマスタ装置は、図１６に示すように、スレーブ装置へ出力する通信クロックのハイ時間とロー時間が同じ時間に設定されるように構成されている。このため、通信クロックは、通信ボーレート周期（即ち、通信ボーレートの逆数の時間）の半分の間隔でハイとローが変化することとなる。
【０００８】
よって、従来のクロック同期式通信システムにおいて、通信ボーレートは、図１６に示すように、通信ボーレート周期Ｔの半分の間隔（＝Ｔ／２：通信クロックの半周期）が、下記の２条件（１），（２）を満たすように決定される。
（１）Ｔ／２≧「データ信号の出力遅れ時間＋データセットアップ時間」
（２）Ｔ／２≧「データホールド時間」
尚、図１６の例では、通信クロックのエッジのうち、立ち下がりエッジが、上記一方のエッジであって送信動作開始タイミングのエッジ（以下、送信エッジともいう）になっており、立ち上がりエッジが、上記他方のエッジであって受信動作開始タイミングのエッジ（以下、受信エッジともいう）になっている。
【０００９】
また、マスタ装置からスレーブ装置への単方向通信だけが行われるのであれば、上記２条件（１），（２）において、出力遅れ時間としては、送信側であるマスタ装置の時間が適用され、データセットアップ時間及びデータホールド時間としては、受信側であるスレーブ装置の時間が適用される。これに対し、マスタ装置とスレーブ装置との双方向通信が行われるのであれば、上記条件（１）において、「出力遅れ時間＋データセットアップ時間」としては、「マスタ装置の出力遅れ時間＋スレーブ装置のデータセットアップ時間」と「スレーブ装置の出力遅れ時間＋マスタ装置のデータセットアップ時間」とのうち、長い方が適用され、上記条件（２）において、「データホールド時間」としては、「スレーブ装置のデータホールド時間」と「マスタ装置のデータホールド時間」とのうち、長い方が適用される。
【００１０】
一方、データセットアップ時間は、単にセットアップ時間とも呼ばれ、同様に、データホールド時間は、単にホールド時間とも呼ばれる。そして、こうしたセットアップ時間やホールド時間については、例えば特許文献１に記載されている。
【特許文献１】特開平１１−２５２０６０号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
ところで、耐ノイズ性能などの制約が無ければ、通信ボーレートは極力大きい値に設定することが望ましい。同じ時間で転送できるデータ量が多くなるためである。
しかし、従来の技術では、通信ボーレート周期の半分の間隔が上記２条件（１），（２）を満たす必要があるため、図１６の例のように、通信クロックにおける送信エッジから受信エッジまでに必要な時間（＝出力遅れ時間＋データセットアップ時間）と、受信エッジから送信エッジまでに必要な時間（＝データホールド時間）との差が大きい場合、長い方の時間に合わせて通信ボーレートが設定されてしまうこととなる。
【００１２】
例えば、図１６の例において、通信クロックにおける受信エッジから送信エッジまでの時間は、「送信側の出力遅れ時間＋受信側のデータセットアップ時間」よりも「受信側のデータホールド時間」の方が短いため、本当ならば、送信エッジから受信エッジまでの時間よりも短くて良いのだが、従来の技術では、送信エッジから受信エッジまでの時間と同じ時間に設定されることとなり、その冗長な時間の分（即ち、図１６において「空き時間」と記載した時間の分）、通信ボーレートを上げることができない。
【００１３】
そこで、本発明は、クロック同期式通信の通信ボーレートを効率良く上げることができるようにすることを目的としている。
【課題を解決するための手段】
【００１４】
請求項１の通信装置は、クロック同期式通信システムにおいて、マスタ装置として用いられるものである。尚、そのクロック同期式通信システムでは、マスタ装置からスレーブ装置へクロック信号線を介して通信クロックが出力されると共に、マスタ装置とスレーブ装置のうち、データを送信する側は、通信クロックの一方のエッジタイミングで、データ信号線へデータ信号を送出する動作を行い、マスタ装置と前記スレーブ装置のうち、データを受信する側は、通信クロックの他方のエッジタイミングで、データ信号線からデータ信号を受信する動作を行う。
【００１５】
そして特に、請求項１の通信装置は、スレーブ装置へ出力する通信クロックのハイ時間とロー時間とを、別々に設定可能な可変設定手段を備えている。
尚、可変設定手段としては、通信クロックのハイ時間とロー時間との各々を、直接別々に設定可能なものに限らず、例えば、通信クロックの周期と、ハイ時間及びロー時間のうちの一方とを、それぞれ設定可能なものでも良い。周期を変えることで、ハイ時間及びロー時間のうちの他方を変えることができるからである。
【００１６】
このような請求項１の通信装置によれば、可変設定手段により、通信クロックのハイ時間とロー時間とを、別々に互いに異なった時間に設定できる。
よって、前述した図１６において「空き時間」と記載した時間を無くすことができ、クロック同期式通信システムの通信ボーレートを、効率良く上げる（早くする）ことができる。つまり、通信クロックのハイ時間とロー時間との各々を、通信が成立するのに必要な条件を満たす最短の時間に設定することができる。
【００１７】
具体的に説明すると、まず、通信クロックにおける送信エッジ（上記一方のエッジ）から受信エッジ（上記他方のエッジ）までの時間をＴ１とし、通信クロックにおける受信エッジから送信エッジまでの時間をＴ２とする。尚、送信エッジが立ち下がりエッジ（受信エッジが立ち上がりエッジ）であれば、時間Ｔ１はロー時間、時間Ｔ２はハイ時間となり、逆に、送信エッジが立ち上がりエッジ（受信エッジが立ち下がりエッジ）であれば、時間Ｔ１はハイ時間、時間Ｔ２はロー時間となる。
【００１８】
そして、その時間Ｔ１，Ｔ２の各々を、通信が成立するのに必要な下記の２条件（ａ），（ｂ）が成立するように設定すれば良い。
（ａ）Ｔ１≧「送信側の出力遅れ時間＋受信側のデータセットアップ時間」
（ｂ）Ｔ２≧「受信側のデータホールド時間」
尚、マスタ装置としての当該通信装置からスレーブ装置への単方向通信だけが行われるのであれば、上記２条件（ａ），（ｂ）において、送信側は当該通信装置であり、受信側は通信相手のスレーブ装置である。逆に、スレーブ装置から当該通信装置への単方向通信だけが行われるのであれば、上記２条件（ａ），（ｂ）において、送信側は通信相手のスレーブ装置であり、受信側は当該通信装置である。
【００１９】
また、当該通信装置とスレーブ装置との双方向通信が行われるのであれば、上記条件（ａ）において、「送信側の出力遅れ時間＋受信側のデータセットアップ時間」としては、「当該通信装置の出力遅れ時間＋通信相手のスレーブ装置のデータセットアップ時間」と「通信相手のスレーブ装置の出力遅れ時間＋当該通信装置のデータセットアップ時間」とのうち、長い方が適用され、上記条件（ｂ）において、「受信側のデータホールド時間」としては、「通信相手のスレーブ装置のデータホールド時間」と「当該通信装置のデータホールド時間」とのうち、長い方が適用される。
【００２０】
次に、請求項２の通信装置は、請求項１の通信装置において、複数のスレーブ装置と通信するようになっていると共に、通信相手のスレーブ装置毎に、通信クロックのハイ時間及びロー時間を、可変設定手段により切り替えて設定するようになっている。
【００２１】
つまり、通信相手によって、上記２条件（ａ），（ｂ）における右辺の各時間が異なるため、通信相手に応じて、上記２条件（ａ），（ｂ）が成立するように、通信クロックのハイ時間とロー時間を切り替えるようになっている。このため、通信相手に応じて、できるだけ早い通信ボーレートに変えることができる。
【００２２】
次に、請求項３の通信装置は、請求項１，２の通信装置において、スレーブ装置にデータ信号を送信する場合と、スレーブ装置からデータ信号を受信する場合とで、通信クロックのハイ時間及びロー時間を、可変設定手段により切り替えて設定するようになっている。
【００２３】
この構成によれば、上記２条件（ａ），（ｂ）として、スレーブ装置への送信時と、スレーブ装置からの受信時との、それぞれの場合に限定した時間の条件が成立すればよいため、通信ボーレートを更に早くすることができる。
【００２４】
具体的に説明すると、スレーブ装置への送信時には、上記２条件（ａ），（ｂ）において、送信側を当該通信装置とし、受信側をスレーブ装置した条件が成立するように、通信クロックにおける時間Ｔ１，Ｔ２の各々を設定すれば良く、逆に、スレーブ装置からの受信時には、上記２条件（ａ），（ｂ）において、送信側をスレーブ装置とし、受信側を当該通信装置した条件が成立するように、通信クロックにおける時間Ｔ１，Ｔ２の各々を設定すれば良い。
【００２５】
一方、請求項４の通信装置も、クロック同期式通信システムにおいて、マスタ装置として用いられるものである。そして、この通信装置では、スレーブ装置へ出力する通信クロックの前記一方のエッジタイミングから前記他方のエッジタイミングまでの時間Ｔ１よりも、前記他方のエッジタイミングから前記一方のエッジタイミングまでの時間Ｔ２の方が、短い時間に設定されている。
【００２６】
つまり、通信クロックにおける時間Ｔ１は「出力遅れ時間＋データセットアップ時間」以上確保する必要があるが、その反対の時間Ｔ２は「データホールド時間」以上であれば良く、また、データセットアップ時間とデータホールド時間は、一般にほぼ同程度の時間であるため、請求項４の通信装置のように設定することで、「Ｔ１＝Ｔ２」であった従来装置よりも通信クロックの周期を短くすることができ、延いては通信ボーレートを早くすることができる。
【００２７】
また、請求項５に記載のように、請求項１〜４の通信装置と、その通信装置とクロック同期式通信を行うスレーブ装置とを備えたクロック同期式通信システムによれば、通信ボーレートを従来よりも早くすることができる。
【発明を実施するための最良の形態】
【００２８】
以下に、本発明が適用された実施形態のクロック同期式通信システムについて説明する。
［第１実施形態］
図１に示すように、第１実施形態のクロック同期式通信システムは、マスタ装置としてのマイコン（通信装置に相当）１０と、スレーブ装置としてのＥＥＰＲＯＭ１１とからなる。そして、マイコン１０とＥＥＰＲＯＭ１１は、チップセレクト信号線２１と、２本のデータ信号線２２，２３と、クロック信号線２４によって接続されている。
【００２９】
チップセレクト信号線２１は、マイコン１０がＥＥＰＲＯＭ１１を通信相手に選択する際に出力するチップセレクト信号のための信号線である。尚、本実施形態において、チップセレクト信号はローアクティブである。
【００３０】
データ信号線２２は、マイコン１０からスレーブ装置へデータ信号を出力するための送信線であり、データ信号線２３は、マイコン１０がスレーブ装置からのデータ信号を受信するための受信線である。
【００３１】
クロック信号線２４は、マイコン１０からスレーブ装置へ同期用の通信クロックを出力するための信号線である。
尚、以下の説明では、通信クロックのことを、クロックパルスと言う。また、図１において、ＣＳは、チップセレクト信号の出力端子又は入力端子であり、Ｔｘは、データ信号出力端子であり、Ｒｘは、データ信号入力端子であり、Ｃｌｋは、クロックパルスの出力端子又は入力端子である。このため、マイコン１０の端子ＣＳとＥＥＰＲＯＭ１１の端子ＣＳがチップセレクト信号線２１によって接続され、マイコン１０の端子ＴｘとＥＥＰＲＯＭ１１の端子Ｒｘがデータ信号線２２によって接続され、マイコン１０の端子ＲｘとＥＥＰＲＯＭ１１の端子Ｔｘがデータ信号線２３によって接続され、マイコン１０の端子ＣｌｋとＥＥＰＲＯＭ１１の端子Ｃｌｋがクロック信号線２４によって接続されている。
【００３２】
次に図２に示すように、マイコン１０は、プログラムを実行するＣＰＵ３１と、そのプログラムが格納されたＲＯＭ３２と、ＣＰＵ３１による演算結果などが記憶されるＲＡＭ３３と、スレーブ装置と通信するための通信モジュール３４とを備えている。
【００３３】
そして、通信モジュール３４は、クロックパルスを生成し出力するための手段として、分周器３５と、カウンタ３６と、レジスタ群３７と、クロックパルス出力部３８とを備えている。
【００３４】
レジスタ群３７の中には、クロックパルスのロー時間を示す値がＣＰＵ３１によってセットされるロー時間値レジスタ４０と、クロックパルスのハイ時間を示す値がＣＰＵ３１によってセットされるハイ時間値レジスタ４１と、マイコン１０の動作クロックであるシステムクロックの分周値がＣＰＵ３１によってセットされる分周値レジスタ４２とが含まれている。尚、システムクロックは、水晶などからなる発振子（図示省略）による発振信号を、当該マイコン１０内で波形整形及び分周するなどして生成される。
【００３５】
分周器３５は、システムクロックを、分周値レジスタ４２にセットされている分周値で分周する。そして、カウンタ３６は、分周器３５によって分周された後のクロック（以下、分周クロックという）によってカウントアップされる。
【００３６】
クロックパルス出力部３８は、カウンタ３６の値がロー時間値レジスタ４０の値と一致したら、クロックパルスの出力レベルをローからハイに反転させると共に、カウンタ３６の値を０にリセットし、その後、カウンタ３６の値がハイ時間値レジスタ４１の値と一致したら、クロックパルスの出力レベルをハイからローに反転させると共に、カウンタ３６の値を０にリセットする、という動作を繰り返す。
【００３７】
このため、クロックパルスのロー時間は、「分周クロックの１周期×ロー時間値レジスタ４０の値」となり、クロックパルスのハイ時間は、「分周クロックの１周期×ハイ時間値レジスタ４１の値」となる。尚、クロックパルスのハイ時間とロー時間を、システムクロックの１周期の分解能で可変にするのであれば、分周器３５は設けなくても良い。
【００３８】
次に、マイコン１０とＥＥＰＲＯＭ１１とが、通信のために行う処理の内容について、図３〜図５を用い説明する。
まず図３は、マイコン１０が起動した際に行う起動時処理を表すフローチャートである。尚、マイコン１０が行う処理は、実際にはＣＰＵ３１によって実行される。
【００３９】
図３に示すように、マイコン１０は、初期状態から起動すると、まずＳ１１０にて、通信モジュール３４の通信動作モードを、クロック同期式通信を行うクロック同期モードと、他の方式（例えばＵＡＲＴ）の通信を行うモードとのうち、クロック同期モードに設定する。そして、続くＳ１２０にて、通信モジュール３４のクロック同期モードでの動作モードを、マスタ装置として機能する動作モードに設定する。
【００４０】
次に、Ｓ１３０にて、システムクロックの分周値を設定する。具体的には、分周値レジスタ４２に分周値を設定する。
そして、次のＳ１４０にて、クロックパルスのハイ時間を設定し、続くＳ１５０にて、クロックパルスのロー時間を設定する。具体的には、ハイ時間値レジスタ４１にハイ時間を示す値をセットし、ロー時間値レジスタ４０にロー時間を示す値をセットする。そして、その後、当該起動時処理を終了する。
【００４１】
尚、上記Ｓ１４０及びＳ１５０にて、クロックパルスのハイ時間とロー時間を、どのような時間に設定するのかについては、後で詳しく説明する。
次に図４は、ＥＥＰＲＯＭ１１が起動した際に行う起動時処理を表すフローチャートである。
【００４２】
図４に示すように、ＥＥＰＲＯＭ１１が起動すると、まずＳ２１０にて、自己の通信動作モードを、クロック同期式通信を行うクロック同期モードと、他の方式（例えばＵＡＲＴ）の通信を行うモードとのうち、クロック同期モードに設定する。次に、Ｓ２２０にて、クロック同期モードでの自己の動作モードを、スレーブ装置として機能する動作モードに設定する。そして、その後、当該起動時処理を終了する。
【００４３】
尚、ＥＥＰＲＯＭ１１が、クロック同期式通信システムのスレーブ装置にしかなり得ない構成のものであれば、図４の処理は不要である。
そして、マイコン１０は、ＥＥＰＲＯＭ１１と通信すべき通信タイミングが到来すると、図５の通信時処理を行う。尚、通信タイミングとしては、定期的なものや、特定のイベントが発生したときなどがある。
【００４４】
図５に示すように、通信時処理では、まずＳ３１０にて、ＥＥＰＲＯＭ１１へのチップセレクト信号（ＣＳ）をローにして、ＥＥＰＲＯＭ１１を通信可能な状態にする。そして、次のＳ３２０にて、ＥＥＰＲＯＭ１１との間でデータの送受信を行う。そして、ＥＥＰＲＯＭ１１とのデータの送受信が全て終了したなら、Ｓ３３０にて、ＥＥＰＲＯＭ１１へのチップセレクト信号（ＣＳ）をローからハイに戻し、これにより、通信時処理が終了する。
【００４５】
ここで、本実施形態において、マイコン１０とＥＥＰＲＯＭ１１は、図６に示すようにデータの送受信を行う。
即ち、まず、マイコン１０からＥＥＰＲＯＭ１１へ、データ読み出し先のアドレスを指定するリード命令（この例では２バイト）が送信される。この場合、マイコン１０が送信側であり、ＥＥＰＲＯＭ１１が受信側である。
【００４６】
そして、マイコン１０からのリード命令を受信したＥＥＰＲＯＭ１１は、そのリード命令によって指定されるアドレスのデータ（この例では２バイト）をマイコン１０に送信する。この場合、ＥＥＰＲＯＭ１１が送信側であり、マイコン１０が受信側である。
【００４７】
また、マイコン１０からＥＥＰＲＯＭ１１への送信時と、ＥＥＰＲＯＭ１１からマイコン１０への送信時との、何れの場合でも、送信側は、クロックパルスに一方のエッジ（本実施形態では、立ち下がりエッジ）が発生したタイミングで、データ信号線（２２又は２３）にデータ信号を送出する動作を行い、受信側は、クロックパルスに他方のエッジ（本実施形態では、立ち上がりエッジ）が発生したタイミングで、データ信号線（２２又は２３）からデータ信号を受信する動作を行う。
【００４８】
尚、マイコン１０において、こうしたデータ送受信の動作は、通信モジュール３４が行うものである。一方、図６において、ＣＳ、Ｃｌｋ、Ｔｘ、Ｒｘの各端子は、全てマイコン１０側の端子であり、その各端子の波形は、上から順に、チップセレクト信号線２１、クロック信号線２４、データ信号線２２、データ信号線２３の各波形を表している。
【００４９】
次に、マイコン１０が前述した図３のＳ１４０及びＳ１５０にて、クロックパルスのハイ時間とロー時間を、どのような時間に設定するのかについて説明する。
まず、本実施形態において、マイコン１０とＥＥＰＲＯＭ１１の各々の出力遅れ時間、データセットアップ時間、データホールド時間は、図７（Ａ）に示す値となっている。尚、図７において、マスタはマイコン１０のことであり、スレーブはＥＥＰＲＯＭ１１のことである。そして、図７（Ｂ）に示すように、クロックパルスのエッジのうち、立ち下がりエッジが送信動作開始タイミングの送信エッジで、立ち上がりエッジが受信動作開始タイミングの受信エッジになっている。
【００５０】
このため、前述した２条件（ａ），（ｂ）により、マイコン１０からＥＥＰＲＯＭ１１への送信を考えた場合、クロックパルスのロー時間ＴＬとハイ時間ＴＨは、下記の式ａ１，ｂ１を満たす必要がある（図７（Ｂ）の２段目参照）。
【００５１】
ＴＬ≧（ｔＡ＋ｔｂ）＝（５０μｓ＋１５０μｓ）＝２００μｓ  …式ａ１
ＴＨ≧ｔｃ＝１００μｓ  …式ｂ１
尚、ｔＡは、マイコン１０の出力遅れ時間であり、ｔｂは、ＥＥＰＲＯＭ１１のデータセットアップ時間であり、ｔｃは、ＥＥＰＲＯＭ１１のデータホールド時間である。
【００５２】
また逆に、ＥＥＰＲＯＭ１１からマイコン１０への送信を考えた場合、クロックパルスのロー時間ＴＬとハイ時間ＴＨは、下記の式ａ２，ｂ２を満たす必要がある（図７（Ｂ）の３段目参照）。
【００５３】
ＴＬ≧（ｔａ＋ｔＢ）＝（１００μｓ＋３０μｓ）＝１３０μｓ  …式ａ２
ＴＨ≧ｔＣ＝４０μｓ  …式ｂ２
尚、ｔａは、ＥＥＰＲＯＭ１１の出力遅れ時間であり、ｔＢは、マイコン１０のデータセットアップ時間であり、ｔＣは、マイコン１０のデータホールド時間である。
【００５４】
よって、ロー時間ＴＬとハイ時間ＴＨは、上記４つの式ａ１，ａ２，ｂ１，ｂ２の全てを満たすように設定すれば良い。尚、この例の場合、式ａ１を満たせば式ａ２も満たすこととなり、式ｂ１を満たせば式ｂ２も満たすこととなる。
【００５５】
そこで、図７（Ｂ）に示すように、マイコン１０は、図３のＳ１４０及びＳ１５０にて、ロー時間ＴＬを、上記式ａ１，ａ２の両方を満たす最小値である２００μｓに設定し、ハイ時間ＴＨを、上記式ｂ１，ｂ２の両方を満たす最小値である１００μｓに設定している。
【００５６】
このため、クロックパルスの周期（＝ＴＬ＋ＴＨ）は３００μｓとなり、通信ボーレートは、約３．３Ｋｂｐｓとなる（図８（Ｂ）参照）。尚、本実施形態では、「１回の変復調＝データの１ビット」であり、「ボーレート＝ビット毎秒（ｂｐｓ）」であるため、ボーレートの単位として「ｂｐｓ」を用いている。
【００５７】
一方、もし、クロックパルスのハイ時間ＴＨとロー時間ＴＬを、同じ値にしか設定できなければ、図８（Ａ）に示すように、ハイ時間ＴＨの方も、ロー時間ＴＬと同じ２００μｓにならざるを得ない。すると、クロックパルスの周期（＝ＴＬ＋ＴＨ）は４００μｓとなり、通信ボーレートは２．５Ｋｂｐｓとなってしまう。
【００５８】
これに対して、本実施形態のマイコン１０では、クロックパルスのハイ時間ＴＨとロー時間ＴＬとを、プログラムにより別々に設定可能であるため、クロックパルスの周期を無駄なく短くすることができる。具体的には、図７（Ｂ）及び図８（Ｂ）に示したように、クロックパルスにおける送信エッジから受信エッジまでのロー時間ＴＬよりも、その逆のハイ時間ＴＨの方が短い、といった設定が可能である。
【００５９】
このため、本実施形態のマイコン１０によれば、クロック同期式通信システムの通信ボーレートを効率良く上げる（早くする）ことができる。
尚、本実施形態では、カウンタ３６と、ロー時間値レジスタ４０及びハイ時間値レジスタ４１と、クロックパルス出力部３８とが、可変設定手段に相当している。
［第２実施形態］
第２実施形態のクロック同期式通信システムは、第１実施形態と比較すると、下記の点が異なっている。尚、以下において、第１実施形態と同じものについては、同一の符号を用いるため、説明は省略する。
【００６０】
まず、第１の相違点として、図９に示すように、マイコン１０は、複数のスレーブ装置と通信するようになっている。この例では、マイコン１０は、ＥＥＰＲＯＭ１１に加えて、出力ＩＣ１２とも通信するようになっている。尚、出力ＩＣ１２は、例えば、マイコン１０からの時間情報が示す時間を計測し、その時間が経過したら信号を出力するとか、外部からの入力信号の読み取り値をマイコン１０に送信する、といった機能を有したＩＣである。
【００６１】
このため、マイコン１０と出力ＩＣ１２との間には、マイコン１０が出力ＩＣ１２を通信相手に選択する際に出力するチップセレクト信号のためのチップセレクト信号線２５が設けられている。そして、出力ＩＣ１２のデータ信号入力端子Ｒｘはデータ信号線２２に接続され、出力ＩＣ１２のデータ信号出力端子Ｔｘはデータ信号線２３に接続され、出力ＩＣ１２のクロックパルス用の入力端子Ｃｌｋはクロック信号線２４に接続されている。
【００６２】
次に、第２の相違点として、マイコン１０は、図３の起動時処理を行わない。
そして、第３の相違点として、マイコン１０は、何れかのスレーブ装置（ＥＥＰＲＯＭ１１又は出力ＩＣ１２）と通信すべき通信タイミングが到来すると、図１０の通信時処理を行う。
【００６３】
図１０に示すように、マイコン１０が通信時処理を開始すると、まずＳ４１０にて、通信相手（ＥＥＰＲＯＭ１１又は出力ＩＣ１２）へのチップセレクト信号（ＣＳ）をローにして、その通信相手を通信可能な状態にする。
【００６４】
そして、続くＳ４２０〜Ｓ４６０にて、前述した図３のＳ１１０〜Ｓ１５０と同様の処理を行う。
但し、前述した式ａ１，ｂ１，ａ２，ｂ２に関する説明から明らかなように、前述の２条件（ａ），（ｂ）を満たすクロックパルスのロー時間ＴＬとハイ時間ＴＨの各最小値は、通信相手の出力遅れ時間、データセットアップ時間、及びデータホールド時間によって変わり得るため、図３のＳ１４０及びＳ１５０に相当するＳ４５０及びＳ４６０では、クロックパルスのハイ時間とロー時間を、通信相手に応じた最小値に設定する。
【００６５】
例えば、出力ＩＣ１２のデータセットアップ時間が１００μｓ、データホールド時間が５０μｓであったとすると、その出力ＩＣ１２が通信相手である場合には、図７（Ｂ）におけるｔｂが１００μｓ、ｔｃが５０μｓとなる。よって、出力ＩＣ１２が通信相手である場合には、Ｓ４６０にてロー時間ＴＬを１５０μｓに設定し、Ｓ４５０にてハイ時間ＴＨを５０μｓに設定することとなる。
【００６６】
そして、Ｓ４２０〜Ｓ４６０の処理が終わると、次のＳ４７０にて、通信相手とデータの送受信を行い、データの送受信が全て終了したなら、Ｓ４８０にて、通信相手へのチップセレクト信号（ＣＳ）をローからハイに戻す。これにより、当該通信時処理が終了する。
【００６７】
以上のように、本第２実施形態のマイコン１０では、クロックパルスのハイ時間とロー時間の各々を、通信相手に応じて、前述の２条件（ａ），（ｂ）を満たす最小値に切り替えるようになっている。このため、通信相手に応じて、できるだけ早い通信ボーレートに変えることができる。
［第３実施形態］
第３実施形態のクロック同期式通信システムは、第１実施形態と比較すると、下記の点が異なっている。
【００６８】
まず、第１の相違点として、マイコン１０が、図３の起動時処理に代えて、図１１の起動時処理を実行する。そして、図１１の起動時処理は、図３の起動時処理からＳ１４０及びＳ１５０の処理を削除したものである。
【００６９】
次に、第２の相違点として、マイコン１０は、図５の通信時処理に代えて、図１２の通信時処理を実行する。
そして、図１２に示すように、マイコン１０が通信時処理を開始すると、まずＳ５１０にて、通信相手であるＥＥＰＲＯＭ１１へのチップセレクト信号（ＣＳ）をローにして、ＥＥＰＲＯＭ１１を通信可能な状態にする。
【００７０】
次に、Ｓ５２０にて、クロックパルスのハイ時間を送信時用の値に設定し、続くＳ５３０にて、クロックパルスのロー時間を送信時用の値に設定する。そして、次のＳ５４０にて、ＥＥＰＲＯＭ１１へのデータ送信を行う。即ち、通信モジュール３４にデータの送信を行わせる。すると、通信モジュール３４は、クロックパルスに立ち下がりエッジ（送信エッジ）が発生する毎に、データ信号線２２へデータ信号を１ビット分ずつ送出することとなる。
【００７１】
ここで、上記Ｓ５２０及びＳ５３０で設定する送信時用のハイ時間とロー時間は、マイコン１０からＥＥＰＲＯＭ１１への送信だけを考えた場合に前述の２条件（ａ），（ｂ）を満たすことができるハイ時間とロー時間との各最小値であり、つまり、前述の式ａ１，ｂ１を満たす最小値である。このため、ロー時間ＴＬは２００μｓで、ハイ時間ＴＨは１００μｓである。
【００７２】
そして、ＥＥＰＲＯＭ１１へのデータ送信（２バイト分の送信）が全て終了したなら、Ｓ５５０にて、クロックパルスのハイ時間を受信時用の値に設定し、続くＳ５６０にて、クロックパルスのロー時間を受信時用の値に設定する。そして、次のＳ５７０にて、ＥＥＰＲＯＭ１１からのデータ受信を行う。即ち、通信モジュール３４にデータの受信を行わせる。すると、通信モジュール３４は、クロックパルスに立ち上がりエッジ（受信エッジ）が発生する毎に、データ信号線２３からデータ信号を１ビット分ずつ読み取ることとなる。
【００７３】
ここで、上記Ｓ５５０及びＳ５６０で設定する受信時用のハイ時間とロー時間は、ＥＥＰＲＯＭ１１からマイコン１０への送信だけを考えた場合に前述の２条件（ａ），（ｂ）を満たすことができるハイ時間とロー時間との各最小値であり、つまり、前述の式ａ２，ｂ２を満たす最小値である。このため、ロー時間ＴＬは１３０μｓで、ハイ時間ＴＨは４０μｓである。
【００７４】
そして、ＥＥＰＲＯＭ１１からのデータ受信（２バイト分の受信）が全て終了したなら、次のＳ５８０にて、ＥＥＰＲＯＭ１１へのチップセレクト信号（ＣＳ）をローからハイに戻し、これにより、通信時処理が終了する。
【００７５】
以上のように、本第３実施形態のマイコン１０では、データ信号を送信する場合とデータ信号を受信する場合とで、クロックパルスのハイ時間及びロー時間を切り替えて設定するようになっている。このため、図１３に示すように、第１実施形態（図６参照）と比較すると、データを受信する期間での通信ボーレートを更に早くすることができる。
［第４実施形態］
第４実施形態のクロック同期式通信システムは、第２実施形態に第３実施形態の思想を組み合わせたものであり、第２実施形態と比較すると、下記の点が異なっている。
【００７６】
即ち、マイコン１０は、何れかのスレーブ装置（ＥＥＰＲＯＭ１１又は出力ＩＣ１２）と通信すべき通信タイミングが到来すると、図１０の通信時処理に代えて、図１４の通信時処理を実行する。
【００７７】
そして、図１４の通信時処理では、図１０の通信時処理と比較すると、Ｓ４５０〜Ｓ４７０の処理に代えて、Ｓ６１０〜Ｓ６７０の処理が行われる。
即ち、Ｓ４４０の次のＳ６１０では、クロックパルスのハイ時間を、通信相手に応じた送信時用の値に設定し、続くＳ６２０では、クロックパルスのロー時間を、通信相手に応じた送信時用の値に設定する。そして、次のＳ６３０にて、通信相手へのデータ送信を行う。
【００７８】
ここで、上記Ｓ６１０及びＳ６２０で設定する送信時用のハイ時間とロー時間は、マイコン１０から通信相手への送信だけを考えた場合に前述の２条件（ａ），（ｂ）を満たすことができるハイ時間とロー時間との各最小値である。
【００７９】
このため、通信相手がＥＥＰＲＯＭ１１である場合には、前述の式ａ１，ｂ１より、ロー時間ＴＬは２００μｓで、ハイ時間ＴＨは１００μｓである（図７（Ｂ）の２段目参照）。
【００８０】
また、通信相手が出力ＩＣ１２であり、例えば、その出力ＩＣ１２の出力遅れ時間、データセットアップ時間、データホールド時間が、それぞれ７０μｓ、１００μｓ、５０μｓであるとすると、図７（Ｂ）の２段目におけるｔｂが１００μｓ、ｔｃが５０μｓとなるため、ロー時間ＴＬは１５０μｓで、ハイ時間ＴＨは５０μｓである。
【００８１】
そして、通信相手へのデータ送信が終わると、次にＳ６４０にて、クロックパルスのハイ時間を、通信相手に応じた受信時用の値に設定し、続くＳ６５０にて、クロックパルスのロー時間を、通信相手に応じた受信時用の値に設定する。そして、次のＳ６７０にて、通信相手からのデータ受信を行う。
【００８２】
ここで、上記Ｓ６４０及びＳ６５０で設定する受信時用のハイ時間とロー時間は、通信相手からマイコン１０への送信だけを考えた場合に前述の２条件（ａ），（ｂ）を満たすことができるハイ時間とロー時間との各最小値である。
【００８３】
このため、通信相手がＥＥＰＲＯＭ１１である場合には、前述の式ａ２，ｂ２より、ロー時間ＴＬは１３０μｓで、ハイ時間ＴＨは４０μｓである（図７（Ｂ）の３段目参照）。
【００８４】
また、通信相手が出力ＩＣ１２であり、例えば、その出力ＩＣ１２の出力遅れ時間、データセットアップ時間、データホールド時間が、それぞれ７０μｓ、１００μｓ、５０μｓであるとすると、図７（Ｂ）の３段目におけるｔａが７０μｓとなるため、ロー時間ＴＬは１００μｓ（＝７０μｓ＋３０μｓ）で、ハイ時間ＴＨは４０μｓである。
【００８５】
そして、通信相手からのデータ受信が終わると、Ｓ４８０に進み、通信相手へのチップセレクト信号（ＣＳ）をローからハイに戻す。
以上のような第４実施形態のマイコン１０によれば、第２実施形態と第３実施形態との両方の効果を得ることができ、通信ボーレートを一層効果的に早くすることができる。
［変形例１］
上記各実施形態のマイコン１０では、クロックパルスのハイ時間とロー時間を、ハイ時間値レジスタ４１とロー時間値レジスタ４０との各々によって、直接別々に設定可能であったが、ハイ時間とロー時間を別々に設定可能な構成としては、それに限らない。
【００８６】
例えば、以下のような構成でもよい。
まず、ハイ時間値レジスタ４１とロー時間値レジスタ４０とのうちの一方（ここでは、ハイ時間値レジスタ４１の方とする）に代えて、クロックパルスの１周期を示す値がＣＰＵ３１によってセットされる周期レジスタを設ける。
【００８７】
そして、クロックパルス出力部３８は、カウンタ３６の値がロー時間値レジスタ４０の値と一致したら、クロックパルスの出力レベルをローからハイに反転させ、その後、カウンタ３６の値が周期レジスタの値と一致したら、クロックパルスの出力レベルをハイからローに反転させると共に、カウンタ３６の値を０にリセットする、という動作を繰り返すように構成する。
【００８８】
このように構成すれば、ロー時間値レジスタ４０の値によってロー時間を変えることができ、周期レジスタの値によってハイ時間を変えることができる。
［変形例２］
クロックパルスのハイ時間とロー時間を別々に設定可能な構成としては、以下のような構成でもよい。
【００８９】
まず、ハイ時間値レジスタ４１とロー時間値レジスタ４０とのうちの一方（ここでは、ハイ時間値レジスタ４１の方とする）に代えて、クロックパルスの１周期を示す値がＣＰＵ３１によってセットされる周期レジスタを設ける。
【００９０】
また、カウンタ３６を、分周クロックによってダウンカウントするダウンカウンタとする。
そして、クロックパルス出力部３８は、カウンタ３６に、周期レジスタの値をプリセットし、そのカウンタ３６の値がロー時間値レジスタ４０の値だけ減少したら、クロックパルスの出力レベルをローからハイに反転させ、その後、カウンタ３６の値が０になったら、クロックパルスの出力レベルをハイからローに反転させると共に、カウンタ３６に周期レジスタの値をプリセットする、という動作を繰り返すように構成する。
【００９１】
このように構成しても、ロー時間値レジスタ４０の値によってロー時間を変えることができ、周期レジスタの値によってハイ時間を変えることができる。
尚、上記変形例１，２の構成を採用した場合、図３のＳ１４０、図１０のＳ４５０、図１２のＳ５２０，Ｓ５５０、図１４のＳ６１０，Ｓ６４０では、ハイ時間値レジスタ４１に値をセットすることに代えて、周期レジスタに周期を示す値をセットすれば良い。
［変形例３］
例えば、マイコン１０とスレーブ装置との間でやり取りするデータの種別が予め決まっているような場合、マイコン１０とスレーブ装置は、双方向の通信を同時に並行して行うようになっていても良い。その場合、例えば図６において、Ｔｘ（データ信号線２２）とＲｘ（データ信号線２３）に同時にデータが流れる形態となる。
【００９２】
但し、この場合、送信時と受信時とでクロックパルスのハイ時間とロー時間の組み合わせを変える第３及び第４実施形態は適用できない。
［変形例４］
図１５に示すように、マイコン１０は、スレーブ装置と単方向通信を行うものでも良い。尚、図１５の例では、マイコン１０から出力ＩＣ１２への単方向通信が行われる場合を表している。よって、図１５の出力ＩＣ１２は、マイコン１０へ情報を送信する機能は有しておらず、マイコン１０からの情報に応じて信号を出力する機能のみを有する。
【００９３】
以上、本発明の一実施形態について説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲において、種々なる態様で実施し得ることは勿論である。
【００９４】
例えば、マイコン１０の通信相手であるスレーブ装置は、ＥＥＰＲＯＭ１１や出力ＩＣ１２に限らず、他のものでも良い。
また、本発明の通信装置としては、マイコンに限らず、例えば論理回路かなるＡＳＩＣでも良いし、複数の電子部品からなるユニットでも良い。
【００９５】
また、クロックパルスのハイ時間とロー時間は、プログラマブルに可変の構成に限らず、例えば、通信装置の外部に接続するジャンパー線やディップスイッチによって、その各時間が変更設定される構成でも良い。
【００９６】
また、この種のクロック同期式通信システムにおけるマスタ装置及びスレーブ装置（例えば、マイコン１０、ＥＥＰＲＯＭ１１、出力ＩＣ１２などのＬＳＩ）では、周囲温度に応じて出力遅れ時間、データセットアップ時間、データホールド時間が変化するため、マスタ装置としての通信装置は、周囲温度に応じてクロックパルスのハイ時間とロー時間を補正するように構成しても良い。
【図面の簡単な説明】
【００９７】
【図１】第１実施形態のクロック同期式通信システムを表す構成図である。
【図２】マスタ装置としてのマイコンを表す構成図である。
【図３】マイコンが行う起動時処理を表すフローチャートである。
【図４】ＥＥＰＲＯＭが行う起動時処理を表すフローチャートである。
【図５】マイコンが行う通信時処理を表すフローチャートである。
【図６】マイコンとＥＥＰＲＯＭとの間で行われるデータ送受信を説明するタイムチャートである。
【図７】クロックパルス（通信クロック）のハイ時間とロー時間を、どのような時間に設定するのかを説明する説明図である。
【図８】第１実施形態の効果を説明する説明図である。
【図９】第２実施形態のクロック同期式通信システムを表す構成図である。
【図１０】第２実施形態のマイコンが行う通信時処理を表すフローチャートである。
【図１１】第３実施形態のマイコンが行う起動時処理を表すフローチャートである。
【図１２】第３実施形態のマイコンが行う通信時処理を表すフローチャートである。
【図１３】第３実施形態の効果を説明する説明図である。
【図１４】第４実施形態のマイコンが行う通信時処理を表すフローチャートである。
【図１５】変形例のクロック同期式通信システムを表す構成図である。
【図１６】従来技術の説明図である。
【符号の説明】
【００９８】
１０…マイコン（マスタ装置としての通信装置）、１１…ＥＥＰＲＯＭ（スレーブ装置）、１２…出力ＩＣ（スレーブ装置）、２１，２５…チップセレクト信号線、２２，２３…データ信号線、２４…クロック信号線、３１…ＣＰＵ、３２…ＲＯＭ、３３…ＲＡＭ、３４…通信モジュール、３５…分周器、３６…カウンタ、３７…レジスタ群、３８…クロックパルス出力部、４０…ロー時間値レジスタ、４１…ハイ時間値レジスタ、４２…分周値レジスタ
【図１】
2010087781.tif 000003
【図２】
2010087781.tif 000004
【図３】
2010087781.tif 000005
【図４】
2010087781.tif 000006
【図５】
2010087781.tif 000007
【図６】
2010087781.tif 000008
【図７】
2010087781.tif 000009
【図８】
2010087781.tif 000010
【図９】
2010087781.tif 000011
【図１０】
2010087781.tif 000012
【図１１】
2010087781.tif 000013
【図１２】
2010087781.tif 000014
【図１３】
2010087781.tif 000015
【図１４】
2010087781.tif 000016
【図１５】
2010087781.tif 000017
【図１６】
2010087781.tif 000018