(57)【要約】【課題】シリアルバスを介して行うデータ送信の高速化をハードウェアで実現する。【解決手段】シリアルデータ通信装置は、スレーブ側へ１ビット単位のデータを送信するシフトレジスタ１と、シフトレジスタ１を動作させるクロックをシフトレジスタ１へ供給するクロック供給部２と、シフトレジスタ１から前記スレーブ側へ送信された１ビット単位のデータの値とシフトレジスタ１に前記スレーブ側への次の送信データとして用意される１ビット単位のデータの値とを比較しその一致不一致を判断するデータ比較部３と、データ比較部３の判断結果に基づきクロック供給部２からシフトレジスタ１へ供給されるクロックの周波数を選択する供給クロック選択部４とを有して構成され、送信データにおいて同一の１ビットデータが連続する場合に高速クロックに切替えて送信時間を短縮する。【選択図】　図１
2004129046.tif 000002
【特許請求の範囲】
【請求項１】
１ビット単位のデータを送信するシフトレジスタと、
前記シフトレジスタを動作させるクロックを供給するクロック供給手段と、
前記シフトレジスタから送信された１ビット単位のデータの値と前記シフトレジスタに次の送信データとして用意される１ビット単位のデータの値とを比較しその一致不一致を判断するデータ比較手段と、
前記データ比較手段の判断結果に基づき前記クロック供給手段から前記シフトレジスタへ供給されるクロックの周波数を選択する供給クロック選択手段と、
を備えて構成されることを特徴とするシリアルデータ通信装置。
【請求項２】
前記データ比較手段及び前記供給クロック選択手段には、それぞれ出力信号のタイミングを制御するタイミング制御手段が備えられていることを特徴とする請求項１に記載のシリアルデータ通信装置。
【請求項３】
前記供給クロック選択手段は、少なくとも２種類の周波数のクロックが出力可能であることを特徴とする請求項１又は２に記載のシリアルデータ通信装置。
【請求項４】
前記供給クロック選択手段は、前記データ比較手段の判断結果が一致した場合は、その判断結果が不一致の場合に比べて２倍の周波数のクロックが前記シフトレジスタへ供給されるように前記クロック供給手段を制御することを特徴とする請求項１ないし３のいずれかに記載のシリアルデータ通信装置。
【請求項５】
受信側に送信済みのデータ列と同一のデータ列であると認識させるダミーデータを格納するダミーデータ格納手段と、
前記受信側へ送信しようとするデータ列を格納する送信データ列格納手段と、
前記受信側へ先に送信したデータ列を格納する送信済みデータ列格納手段と、
前記送信データ列格納手段に格納されているデータ列と前記送信済みデータ列格納手段に格納されているデータ列とを比較しその一致不一致を判断するデータ列比較手段と、
前記データ列比較手段の判断結果に基づき、前記受信側へ送信するデータとして、前記ダミーデータ格納手段に格納されているダミーデータ又は前記送信データ列格納手段に格納されているデータ列のいずれかを選択する送信データ選択手段と、
前記送信データ選択手段によって選択されたデータを前記受信側へ送信するシフトレジスタと、
を備えて構成されることを特徴とするシリアルデータ通信装置。
【請求項６】
前記送信データ選択手段は、
前記データ列比較手段の判断結果が一致した場合は前記ダミーデータ格納手段に格納されているダミーデータを選択し、
前記データ列比較手段の判断結果が不一致の場合は前記送信データ列格納手段に格納されているデータ列を選択することを特徴とする請求項５に記載のシリアルデータ通信装置。
【請求項７】
シフトレジスタから送信される１ビットデータと同値のデータを保持するデータ保持ステップと、
前記データ保持ステップによって保持されたデータの値と、前記シフトレジスタに次の送信データとして取り込まれた１ビットデータの値とを比較しその一致不一致を判断する一致判断ステップと、
前記一致判断ステップにおける判断結果に基づき、前記シフトレジスタを動作させるクロックの周波数を選択するクロック選択ステップと、
を有することを特徴とするシリアルデータ通信方法。
【請求項８】
前記クロック選択ステップでは、前記一致判断ステップにおける判断結果が一致した場合には、その判断結果が不一致の場合に比べて２倍の周波数のクロックを選択することを特徴とする請求項７に記載のシリアルデータ通信方法。
【請求項９】
受信側に送信済みのデータ列と同一のデータ列であると認識させるダミーデータを格納するダミーデータ格納ステップと、
前記受信側へ送信しようとするデータ列を格納する送信データ列格納ステップと、
前記送信データ列格納ステップで格納されたデータ列と、前記受信側へ先に送信されたデータ列とを比較しその一致不一致を判断する一致判断ステップと、
前記一致判断ステップにおける判断結果に基づき、前記ダミーデータ格納ステップで格納されたダミーデータ又は前記送信データ列格納ステップで格納されたデータ列のいずれかを選択して前記受信側に送信するデータ選択送信ステップと、
を有することを特徴とするシリアルデータ通信方法。
【請求項１０】
前記データ選択送信ステップでは、
前記一致判断ステップにおける判断結果が一致した場合は前記ダミーデータ格納ステップで格納されたダミーデータを前記受信側に送信し、
前記一致判断ステップにおける判断結果が不一致の場合は前記送信データ列格納ステップで格納されたデータ列を前記受信側に送信することを特徴とする請求項９に記載のシリアルデータ通信方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、シリアルバスを介して行うデータ送信の高速化を実現するためのシリアルデータ通信装置及び方法に関する。
【０００２】
【従来の技術】
従来の同期式シリアルインターフェースプロトコルによるデータ通信装置では、時系列に隣り合う１ビットのデータ変化の有無に関わらず、一定周期のクロックにデータを重畳して送信している（例えば、特許文献１及び２を参照）。したがって、例えば、図８に示すように、１バイトのデータ「０１０１１１１０」を送信する場合、データの送信開始から完了まで、送信するデータ量に比例した時間が必要であった。
【０００３】
【特許文献１】
特開２００１−２６８１４２号公報（第１２〜１８頁、図１２、図１８）
【特許文献２】
特開２００２−１５２０５２号公報（第９〜１４頁、図８〜１０、図１１〜１４）
【０００４】
【発明が解決しようとする課題】
上記のような従来装置において、シリアルバスにおけるデータの送信速度を速めるためには、バスマスタから送信されたデータが前回送信したものと同一である場合、送信データの間引きを行えばよいと考えられる。この送信データの間引きは、送信しようとするデータが前回送信したものと同一であるか否かを判断し、それが同一である場合後から送信するデータを容量が小さいダミーデータに置換して送信し、送信時間の短縮を図ることにより達成される。
【０００５】
しかしながら、上記のような処理は、従来は通常ソフトウェアで行われるため、ソフトウェアに負担がかかると共に数十ステップの処理時間が必要となることから、結果的に、データ送信開始のトリガからデータ送信完了までに大きな遅延が生じ、データ送信の時間短縮はあまり図れなかった。
【０００６】
本発明は、上記課題を解決するためになされたもので、その目的は、シリアルバスを介して行うデータ送信の高速化をハードウェアで実現することが可能なシリアルデータ通信装置及び方法を提供することにある。
【０００７】
【課題を解決するための手段】
本発明のシリアルデータ通信装置は、１ビット単位のデータを送信するシフトレジスタと、前記シフトレジスタを動作させるクロックを供給するクロック供給手段と、前記シフトレジスタから送信された１ビット単位のデータの値と前記シフトレジスタに次の送信データとして用意される１ビット単位のデータの値とを比較しその一致不一致を判断するデータ比較手段と、前記データ比較手段の判断結果に基づき前記クロック供給手段から前記シフトレジスタへ供給されるクロックの周波数を選択する供給クロック選択手段と、を備えて構成されることを特徴とする。
【０００８】
上記構成によれば、データ送信用のクロック周期を可変することで、受信側へ送信するシリアルデータの送信時間の短縮を図り、データ通信の高速化を実現することが可能となる。
【０００９】
また、前記データ比較手段及び前記供給クロック選択手段には、それぞれ出力信号のタイミングを制御するタイミング制御手段が備えられていることを特徴とする。
【００１０】
上記構成によれば、データ比較手段及び供給クロック選択手段からの出力をシフトレジスタへ供給されるクロックに同期させることができる。
【００１１】
また、前記供給クロック選択手段は、少なくとも２種類の周波数のクロックが出力可能であることを特徴とする。
【００１２】
上記構成によれば、送信する１ビットデータの送信速度を可変することが可能になる。
【００１３】
また、前記供給クロック選択手段は、前記データ比較手段の判断結果が一致した場合は、その判断結果が不一致の場合に比べて２倍の周波数のクロックが前記シフトレジスタへ供給されるように前記クロック供給手段を制御することを特徴とする。
【００１４】
上記構成によれば、送信された１ビットデータの値と次の送信データとが一致した場合に、送信する１ビットデータの送信速度を２倍に変化させることが可能になる。
【００１５】
本発明のシリアルデータ通信装置は、受信側に送信済みのデータ列と同一のデータ列であると認識させるダミーデータを格納するダミーデータ格納手段と、前記受信側へ送信しようとするデータ列を格納する送信データ列格納手段と、前記受信側へ先に送信したデータ列を格納する送信済みデータ列格納手段と、前記送信データ列格納手段に格納されているデータ列と前記送信済みデータ列格納手段に格納されているデータ列とを比較しその一致不一致を判断するデータ列比較手段と、前記データ列比較手段の判断結果に基づき、前記受信側へ送信するデータとして、前記ダミーデータ格納手段に格納されているダミーデータ又は前記送信データ列格納手段に格納されているデータ列のいずれかを選択する送信データ選択手段と、前記送信データ選択手段によって選択されたデータを前記受信側へ送信するシフトレジスタと、を備えて構成されることを特徴とする。
【００１６】
上記構成によれば、ダミーデータを用いて送信データ列と切替可能にすることで、受信側へ送信される全データ列の送信時間の短縮を図り、データ通信の高速化を実現することが可能となる。
【００１７】
また、前記送信データ選択手段は、前記データ列比較手段の判断結果が一致した場合は前記ダミーデータ格納手段に格納されているダミーデータを選択し、前記データ列比較手段の判断結果が不一致の場合は前記送信データ列格納手段に格納されているデータ列を選択することを特徴とする。
【００１８】
上記構成によれば、同一のデータ列が連続して送信されることを防止してダミーデータに置き換えることで、効率的なデータ列の送信が可能となり、全データ列の送信時間の短縮を図ることができる。
【００１９】
本発明のシリアルデータ通信方法は、シフトレジスタから送信される１ビットデータと同値のデータを保持するデータ保持ステップと、前記データ保持ステップによって保持されたデータの値と、前記シフトレジスタに次の送信データとして取り込まれた１ビットデータの値とを比較しその一致不一致を判断する一致判断ステップと、前記一致判断ステップにおける判断結果に基づき、前記シフトレジスタを動作させるクロックの周波数を選択するクロック選択ステップと、を有することを特徴とする。
【００２０】
上記手順によれば、データ送信用のクロック周期を可変することで、受信側へ送信するシリアルデータの送信時間の短縮を図り、データ通信の高速化を実現することが可能となる。
【００２１】
特に、前記クロック選択ステップでは、前記一致判断ステップにおける判断結果が一致した場合には、その判断結果が不一致の場合に比べて２倍の周波数のクロックを選択することを特徴とする。
【００２２】
上記手順によれば、送信された１ビットデータの値と次の送信データとが一致した場合に、送信する１ビットデータの送信速度を可変することが可能になる。
【００２３】
本発明のシリアルデータ通信方法は、受信側に送信済みのデータ列と同一のデータ列であると認識させるダミーデータを格納するダミーデータ格納ステップと、前記受信側へ送信しようとするデータ列を格納する送信データ列格納ステップと、前記送信データ列格納ステップで格納されたデータ列と、前記受信側へ先に送信されたデータ列とを比較しその一致不一致を判断する一致判断ステップと、前記一致判断ステップにおける判断結果に基づき、前記ダミーデータ格納ステップで格納されたダミーデータ又は前記送信データ列格納ステップで格納されたデータ列のいずれかを選択して前記受信側に送信するデータ選択送信ステップと、を有することを特徴とする。
【００２４】
上記手順によれば、ダミーデータを用いて送信データ列と切替可能にすることで、受信側へ送信される全データ列の送信時間の短縮を図り、データ通信の高速化を実現することが可能となる。
【００２５】
特に、前記データ選択送信ステップでは、前記一致判断ステップにおける判断結果が一致した場合は前記ダミーデータ格納ステップで格納されたダミーデータを前記受信側に送信し、前記一致判断ステップにおける判断結果が不一致の場合は前記送信データ列格納ステップで格納されたデータ列を前記受信側に送信することを特徴とする。
【００２６】
上記手順によれば、同一のデータ列が連続して送信されることを防止してダミーデータに置き換えることで、効率的なデータ列の送信が可能となり、全データ列の送信時間の短縮を図ることができる。
【００２７】
【発明の実施の形態】
以下、図面を参照して本発明の実施形態を説明する。
（第１実施形態）
一般に、シリアルバスにおいて、送信する１ビット単位のデータが、先に送信した１ビット単位のデータと同一の場合、シリアルバスのデータラインの出力レベルに変化がないため、データの「１（以下、Ｈｉｇｈレベルという場合もある）」又は「０（以下、Ｌｏｗレベルという場合もある）」の変化に伴う電圧レベル変化時のなまりは発生しない。このため、送信データのなまりを考慮した重畳クロックのＨｉｇｈレベルもしくはＬｏｗレベル出力期間を十分に保持する必要はなく、マスタ側からはスレーブ側のシフトレジスタが確実に１カウントできるだけのクロックを供給できればよい。
【００２８】
そこで、第１実施形態では、マスタ側（送信側）で、送信するデータ中、隣り合う１ビットの値が同一か否かを判断し、同じ値のデータを連続して送信する場合に、通常の送信よりも高速なクロックにデータを重畳させて送信することにより、データ送信の高速化を図るようにする。
【００２９】
図１は、本発明の第１実施形態に係るシリアルデータ通信装置の構成を示すブロック図である。第１実施形態のシリアルデータ通信装置は、シフトレジスタ１、クロック供給部２、データ比較部３、及び供給クロック選択部４を有して構成される。
【００３０】
シフトレジスタ１は、１ビットデータをシリアルバス（不図示）を介してスレーブ側（受信側、不図示）へ送信するためのものである。
【００３１】
クロック供給部（クロック供給手段に相当する）２は、シフトレジスタ１へクロックを供給するためのものである。このクロック供給部２は、１／２分周器２１、ＮＯＴゲート２２、及びクロック選択器２３を有して構成される。１／２分周器２１はクロック供給部２へクロックソースとして供給されている通常の通信に用いるクロックの２倍の周波数ｆのクロック（以降、倍速クロックという）をｆ／２の周波数に分周して通常の通信に使用するクロック（以降、基準クロックという）を出力する。ＮＯＴゲート２２は、１／２分周器２１から出力された基準クロックの反転周期のクロック（以降、反転クロックという、周波数はｆ／２）を出力する。クロック選択器２３は、前記倍速クロック、前記基準クロック、及び前記反転クロックの中からシフトレジスタ１へ供給するクロックを選択する。
【００３２】
データ比較部（データ比較手段に相当する）３は、先にシフトレジスタ１から前記スレーブ側へ送信された１ビットデータの値と、これから前記スレーブ側へ送信する１ビットデータとしてシフトレジスタ１に用意されたデータの値とを比較し、その一致不一致を判断するためのものである。このデータ比較部３は、バッファ３１、比較器３２、タイミング制御部３３を有して構成される。
【００３３】
バッファ３１は、シフトレジスタ１から前記スレーブ側へ送信された１ビットデータと同じ値のデータを格納する。比較器３２は、バッファ３１に格納された１ビットデータとシフトレジスタ１に用意され次に送信しようとしている１ビットデータとの値を比較して一致不一致判定信号３４及びクロック制御信号３５を出力する。また、比較器３２は、比較した１バイトのデータ中の何回同じ値の１ビットデータが現れたかをカウントするためのカウンタを備えている。タイミング制御部３３は、一致不一致判定信号３４及びクロック制御信号３５の出力タイミングを制御する。
【００３４】
供給クロック選択部（供給クロック選択手段に相当する）４は、クロック供給部２からシフトレジスタ１へ供給されるクロックの周波数の選択を制御するためのものである。この供給クロック選択部４は、クロック制御部４１、タイミング制御部４２を有して構成される。クロック制御部４１は、比較器３２からの一致不一致判定信号３４及びクロック制御信号３５に基づきクロック選択信号４３を出力する。タイミング制御部４２は、クロック制御部４１からクロック選択器２３へ向けて出力されるクロック選択信号４３の出力タイミングを制御する。
【００３５】
次に、本実施形態のシリアルデータ通信装置の動作を説明する。このシリアルデータ通信装置のクロック供給部２には、倍速クロックが供給されている。そして、通常時は、１／２分周器２１により前記倍速クロックから基準クロックが生成され、これがそのままクロック選択器２３を介してシフトレジスタ１へ供給される。シフトレジスタ１からは、前記基準クロックの立下りエッジで、１ビットデータが前記基準クロックに重畳されて前記シリアルバスを介して前記スレーブ側へ送信されると同時に、その１ビットデータと同値のデータがバッファ３１に格納される。
【００３６】
次に、比較器３２では、シフトレジスタ１に供給されるクロックの立上がりエッジで、バッファ３１に格納された前記１ビットデータの値と、シフトレジスタ１に用意され次に送信しようとしている１ビットデータの値とが比較される。このように、本実施形態の装置では、シフトレジスタ１へ供給されるクロックの立下がりエッジに同期して比較の基準となる１ビットデータがバッファ３１に取り込まれ、前記クロックの立上がりエッジに同期してデータ値の比較が行われる。このデータ値の比較は１ビット単位で順次繰り返し行われる。
【００３７】
比較の結果、比較器３２は、前記各１ビットデータ値の一致又は不一致を示す一致不一致判定信号３４を出力する。この一致不一致判定信号３４は、前記各１ビットデータ値の一致が検出された場合は「Ｈｉｇｈレベル出力」、前記各１ビットデータ値の一致が検出されなかった場合は「Ｌｏｗレベル出力」となる。
【００３８】
また、比較器３２は、クロック制御信号３５を出力する。クロック制御信号３５は、比較器３２に備えられたカウンタによって前記各１ビットデータ値の一致回数がカウントされるごとに、「Ｈｉｇｈレベル出力」と「Ｌｏｗレベル出力」とを繰り返し交互に行う。例えば、クロック制御信号３５は、前記各１ビットデータ値の一致が全くない場合は「Ｌｏｗレベル出力」、１回目の場合は「Ｈｉｇｈレベル出力」、２回目の場合は「Ｌｏｗレベル出力」、・・・となる。したがって、クロック制御信号３５は、前記各１ビットデータ値の一致回数が偶数か奇数かを示す１ビットの信号となる。なお、一致不一致判定信号３４の代わりに一致回数を示す信号を出力するようにしてもよい。これら一致不一致判定信号３４及びクロック制御信号３５は、タイミング制御部３３によって、シフトレジスタ１へ供給されている前記クロックの次の立上がりエッジでクロック制御部４１へ送信される。
【００３９】
クロック制御部４１では、一致不一致判定信号３４及びクロック制御信号３５を検出して、シフトレジスタ１へ供給されるクロックを選択するクロック選択信号４３が出力される。このクロック選択信号４３は、クロック選択器２３の制御を行いクロック選択器２３から出力されるクロックを選択するものである。また、クロック選択信号４３は、タイミング制御部４２によって、シフトレジスタ１に供給されている前記クロックの次の立下がりエッジでクロック選択器２３へ送信される。
【００４０】
クロック制御部４１は、「Ｈｉｇｈレベル出力」の一致不一致判定信号３４を受けた場合、クロック選択信号４３を出力し、１／２分周器２１を介さない倍速クロックがシフトレジスタ１へ供給されるようにクロック選択器２３を制御する。そして、先に送信された１ビットデータと一致する１ビットデータがシフトレジスタ１から前記スレーブ側へ送信される際には、後から送信される１ビットデータは前記倍速クロックに重畳される。すなわち、前記倍速クロックがバスクロックとなる。
【００４１】
一方、クロック制御部４１は、「Ｌｏｗレベル出力」の一致不一致判定信号３４を受けた場合、クロック選択信号４３を出力し、１／２分周器２１を介した基準クロック、又はＮＯＴゲート２２を介した前記基準クロックとは位相が１８０°ずれた周波数ｆ／２の反転クロックがシフトレジスタ１へ供給されるようにクロック選択器２３を制御する。基準クロック又は反転クロックの選択は、クロック制御部４１に供給されるクロック制御信号３５の出力レベルによって行われる。すなわち、クロック制御部４１は、「Ｈｉｇｈレベル出力」のクロック制御信号３５を受けた場合は反転クロックが、一方「Ｌｏｗレベル出力」のクロック制御信号３５を受けた場合は基準クロックがそれぞれシフトレジスタ１へ供給されるように、クロック選択信号４３によってクロック選択器２３を制御する。シフトレジスタ１へ供給されるクロックに反転クロックが選択されるのは、シフトレジスタ１への供給クロックを高速クロックから低速クロックへ切替える場合である。この理由は、高速クロックから低速クロックへの切替えの際に生じる周期のずれを防ぐためである。
【００４２】
以上のように、本実施形態のシリアルデータ通信装置では、シフトレジスタ１へ供給されるクロックに同期して、送信する１ビットデータ値の比較処理及びシフトレジスタ１へ供給するクロックの選択処理が行われる。
【００４３】
以下、第１実施形態のシリアルデータ通信装置を用いたシリアルデータ通信方法を詳細に説明する。図２は第１実施形態におけるシリアルデータ送信時の手順を示すフローチャートである。
【００４４】
（１）通常、本実施形態のシリアルデータ通信装置のシフトレジスタ１には基準クロック（周波数ｆ／２）が供給されている。なお、シフトレジスタ１へは前記スレーブ側へ送信する１バイトのデータが１ビットずつ順に送り込まれるようになっている。シフトレジスタ１からは、供給されているクロックの立下りエッジで、まず先頭の１ビットデータが前記クロックに重畳されて前記スレーブ側へ送信されると同時に、その１ビットの送信データと同値のデータがバッファ３１に格納される（以上、ステップＳ１）。
【００４５】
（２）シフトレジスタ１へ供給されているクロックの次の立ち上がりエッジで、バッファ３１に格納されたデータ値と、シフトレジスタ１に送りこまれ次に前記スレーブ側へ送信される１ビットデータの値とを比較する（以上、ステップＳ２）。比較結果が一致しなかった場合はステップＳ３へ進み、比較結果が一致した場合にはステップＳ７へ進む。
【００４６】
（３）ステップＳ２において、比較結果が一致しなかった場合、比較器３２は「Ｌｏｗレベル」の一致不一致判定信号３４を出力する。また、比較器３２は、比較結果の一致回数に基づいて生成されるクロック制御信号３５を出力する。一致不一致判定信号３４とクロック制御信号３５は同時に出力される（以上、ステップＳ３）。
【００４７】
（４）一致不一致判定信号３４とクロック制御信号３５を受けたクロック制御部４１は、クロック選択信号４３を出力し、シフトレジスタ１に供給されるクロックの種類を選択する。ここで選択されるクロックが基準クロックであるか反転クロックであるかは、前述のようにクロック制御信号３５の出力レベルに従う（以上、ステップＳ４）。
（５）シフトレジスタ１は、ステップＳ４の処理により供給されるクロックの立下りエッジで、シフトレジスタ１内部にある１ビットデータを前記クロックに重畳させて前記スレーブ側へ送信すると同時に、その１ビットの送信データと同値のデータをバッファ３１に格納する（以上、ステップＳ５）。
【００４８】
（６）シフトレジスタ１は、次に送信すべき１ビットデータを保持したか否かを判断する（ステップＳ６）。シフトレジスタ１が次に送信すべき１ビットデータを保持していない場合は処理を終了する。シフトレジスタ１が次に送信すべき１ビットデータを保持している場合は、ステップＳ２へ戻り、処理を続行する。
【００４９】
（７）ステップＳ２において、比較結果が一致した場合、比較器３２は「Ｈｉｇｈレベル」の一致不一致判定信号３４を出力する（ステップＳ７）。なお、この一致不一致判定信号３４はデータの一致が続く限り出力され続ける。また、比較器３２は「Ｈｉｇｈレベル」の一致不一致判定信号３４と共にクロック制御信号３５も出力するが、前記各１ビットデータの値が一致した場合にはクロック制御信号３５の出力結果は考慮されない。
【００５０】
（８）「Ｈｉｇｈレベル」の一致不一致判定信号３４を受けたクロック制御部４１は、クロック選択信号４３を出力し、シフトレジスタ１に倍速クロックが供給されるようにクロック選択器２３を制御する（以上、ステップＳ８）。
【００５１】
（９）シフトレジスタ１は、ステップＳ８の処理により供給されるクロックの立下りエッジで、シフトレジスタ１内部にある１ビットデータを前記クロックに重畳させて前記シリアルバスを介して前記スレーブ側へ送信すると同時に、その１ビットの送信データと同値のデータをバッファ３１に格納する（以上、ステップＳ９）。以降はステップＳ６へ進み上記と同様に処理を続行する。
【００５２】
次に、図３に基づき具体的なデータ送信時の動作を説明する。図３は第１実施形態のシリアルデータ通信装置の動作を説明するためのタイミングチャートである。通常、本実施形態のシリアルデータ通信装置のシフトレジスタ１には基準クロック（周波数ｆ／２）が供給されている。また、シフトレジスタ１へは前記スレーブ側へ送信するデータが１ビットずつ順に送り込まれる。
【００５３】
まず、図中の区間Ａについて説明する。シフトレジスタ１からは、１ビット目のデータ値（図３では「０」）が、基準クロックの立下りエッジで前記基準クロックに重畳され前記シリアルバスを介して前記スレーブ側へ送信されると同時に、その１ビット目のデータと同値のデータがバッファ３１に格納される。前記基準クロックの次の立ち上がりエッジで、バッファ３１に格納されたデータ値（図３では「０」）と、シフトレジスタ１に送りこまれ次に前記スレーブ側へ送信される２ビット目のデータ値（図３では「１」）とを比較する。
【００５４】
この場合、比較結果が一致しないので、比較器３２は「Ｌｏｗレベル」の一致不一致判定信号３４を出力する。また、このときの一致回数は「０回」であるから、比較器３２は「Ｌｏｗレベル」のクロック制御信号３５を出力する。Ｌｏｗレベル」の一致不一致判定信号３４と「Ｌｏｗレベル」のクロック制御信号３５を受けたクロック制御部４１は、クロック選択信号４３を出力し、前記基準クロックの次の立ち上がりエッジで基準クロックがシフトレジスタ１に供給されるようにクロック選択器２３を制御する。すなわち、この場合シフトレジスタ１へは基準クロックが供給され続けることになる。
【００５５】
次に、シフトレジスタ１からは、２ビット目のデータ値は、前記基準クロックに重畳され、その基準クロックの次の立下りエッジで前記シリアルバスを介して前記スレーブ側へ送信されると同時に、その２ビット目のデータと同値のデータがバッファ３１に格納される。ここでも前記基準クロックがバスクロックとなる。前記基準クロックの次の立ち上がりエッジで、バッファ３１に格納されたデータ値（図３では「１」）と、シフトレジスタ１に送りこまれ次に前記スレーブ側へ送信される３ビット目のデータ値（図３では「１」）とを比較する。
【００５６】
この場合、比較結果が一致するので、比較器３２は「Ｈｉｇｈレベル」の一致不一致判定信号３４を出力する。また、このときは「１回目（奇数）」の一致であるから、比較器３２は「Ｈｉｇｈレベル」のクロック制御信号３５を出力する。「Ｈｉｇｈレベル」の一致不一致判定信号３４と「Ｈｉｇｈレベル」のクロック制御信号３５を受けたクロック制御部４１は、前記基準クロックの次の立ち上がりエッジでクロック選択信号４３を出力し、倍速クロックがシフトレジスタ１に供給されるようにクロック選択器２３を制御する。３ビット目のデータはこの倍速クロックに重畳されて送信される。すなわち、前記倍速クロックがバスクロックとなる。
【００５７】
次に、区間Ｂについて説明する。シフトレジスタ１からは、５ビット目のデータ値（図３では「１」）が、シフトレジスタ１へ供給されている倍速クロックの立下りエッジで、前記倍速クロックに重畳され前記シリアルバスを介して前記スレーブ側へ送信されると同時に、その５ビット目のデータ値がバッファ３１に格納される。前記倍速クロックの次の立ち上がりエッジで、バッファ３１に格納されたデータ値（図３では「１」）と、シフトレジスタ１に送りこまれ次に前記シリアルバスへ送信される６ビット目のデータ値（図３では「０」）とを比較する。
【００５８】
この場合、比較結果が一致しないので、比較器３２は「Ｌｏｗレベル」の一致不一致判定信号３４を出力する。また、このときは不一致であるため一致回数は加算されず（一致回数は「３回目（奇数）」のままである）、比較器３２は「Ｈｉｇｈレベル」のクロック制御信号３５を出力する。「Ｌｏｗレベル」の一致不一致判定信号３４と「Ｈｉｇｈレベル」のクロック制御信号３５を受けたクロック制御部４１は、前記倍速クロックの次の立ち上がりエッジでクロック選択信号４３を出力し、反転クロックがシフトレジスタ１に供給されるようにクロック選択器２３を制御する。ここでは、シフトレジスタ１への供給クロックが高速クロックから低速クロックへ切替わるため、シフトレジスタ１へ反転クロックが供給されるように制御し、低速クロックへの切替えの際に生じる周期のずれを防いでいる。
【００５９】
以上のように、本実施形態のシリアルデータ通信装置は、マスタ側のシフトレジスタから送信された１ビットデータの値と次に送信する１ビットデータの値とを比較し、値が一致する場合にデータを重畳するバスクロックの周波数が２倍になるように切替えることによって、データ全体の送信時間を短縮することが可能になる。例えば、図４に示すように、１バイトのデータ「０１０１１１１０」を送信する場合、従来装置に比べて同一の１ビットデータが連続する部分で高速クロックにより送信時間を短縮できる。
【００６０】
（第２実施形態）
第２実施形態のシリアルデータ通信装置は、複数バイトで構成されるデータ列（以下、パケットという）が先に送信したものと同一である場合に、後から送信する同一パケットを同一データコードであることを意味する任意に規定した１バイト等の単位のデータに置換して送信することで、冗長のデータを間引きし、全データの送信時間を短縮するようにしたものである。
【００６１】
図５は本発明の第２実施形態に係るシリアルデータ通信装置の構成を示すブロック図である。第２実施形態のシリアルデータ通信装置は、ダミーデータ格納部５、送信パケット格納部６、送信済みパケット格納部７、データ比較部８、送信データ選択部９、及びシフトレジスタ１０を有して構成される。
【００６２】
ダミーデータ格納部（ダミーデータ格納手段に相当する）５は、スレーブ側（不図示）に先に送信したパケットと同一パケットであることを即座に認識させるために任意に規定したダミーデータを格納するためのものである。このダミーデータは、できるだけデータの容量が小さいものが最適である。
【００６３】
送信パケット格納部（送信データ列格納手段に相当する）６は、送信するパケットを格納するためのものである。送信パケット格納部６はパケットの格納が終了すると、データ比較部８へパケットの格納が終了した旨を知らせる信号を送信する。
【００６４】
送信済みパケット格納部（送信済みデータ列格納手段に相当する）７は、送信パケット格納部６に格納されたパケットが前記スレーブ側に送信された後、そのパケットと同一パケットを格納するためのものである。
【００６５】
データ比較部（データ列比較手段に相当する）８は、送信パケット格納部６に新たに格納されたパケットと送信済みパケット格納部７に格納されている先に送信されたパケットとの内容を比較し、その一致不一致を判断するためのものである。データ比較部８は、前記２つのパケットの内容を比較した結果、その一致不一致を示す一致不一致判定信号１１を送信データ選択部９へ送る。
【００６６】
送信データ選択部（送信データ選択手段に相当する）９は、一致不一致判定信号１１に基づき、シフトレジスタ１０へ格納するデータを選択するためのものである。送信データ選択部９では、データ比較部８における判断結果が一致した場合は、ダミーデータ格納部５に格納されているダミーデータが、またその判断結果が不一致の場合は、送信パケット格納部６に格納されているパケットが選択され、シフトレジスタ１０へ送られる。
【００６７】
シフトレジスタ１０は、受け取ったパケットを格納し、前記スレーブ側へ送信するためのものである。
【００６８】
以下、第２実施形態のシリアルデータ通信装置を用いたシリアルデータ通信方法を詳細に説明する。図６は第２実施形態におけるシリアルデータ送信時の手順を示すフローチャートである。
【００６９】
（１）まず始めに、前記スレーブ側で自らが同一パケットであると判定するコード値をあらかじめ設定し、これを本実施形態のシリアルデータ通信装置へ送信する。本実施形態のシリアルデータ通信装置は、そのコード値を含むパケットをダミーデータとしてダミーデータ格納部５に格納する（以上、ステップＳ１１）。
【００７０】
（２）複数バイトで構成されるパケットデータの送信タイミングで、前記スレーブ側へ送信しようとするパケットを送信パケット格納部６に格納する。このとき、データ比較部８には送信パケット格納部６への書き込み信号が入力される（以上、ステップＳ１２）。
【００７１】
（３）データ比較部８は、前記書き込み信号によって比較動作を開始し、送信パケット格納部６に格納するこれから送信しようとするパケットと、送信済みパケット格納部７に格納されている先に送信したパケットとの内容の比較を行い、それらが一致するか否かを判断する。この比較結果は一致不一致判定信号１１によって送信データ選択部９に知らされる。また、比較完了時にデータ比較部８より送信データ選択部９に比較完了信号が入力される。（以上、ステップＳ１３）。前記２つのパケットの内容が一致しなかった場合（送信済みパケット格納部７に比較すべきパケットが格納されていなかった場合を含む）はステップＳ１４へ、一致した場合はステップＳ１８へ進む。
【００７２】
（４）ステップＳ１３において、前記２つのパケットの内容が一致しなかった場合は、送信データ選択部９は、データ比較部８での比較完了のタイミングで、一致不一致判定信号１１による比較結果に従って送信パケット格納部６に格納されているパケットをシフトレジスタ１０へ転送する（ステップＳ１４）。
【００７３】
（５）シフトレジスタ１０は受け取ったパケットをシリアルバス（不図示）を介して前記スレーブ側へ送信する（ステップＳ１５）。
【００７４】
（６）シフトレジスタ１０からデータの送信が完了すると、送信パケット格納部６に格納されているパケットが送信済みパケット格納部７に格納される。この後、送信パケット格納部６はクリアされる（以上、ステップＳ１６）。
【００７５】
（７）その後、新たに送信パケット格納部６に次に送信するパケットが格納された場合は、ステップＳ１３に戻り処理を続行する。送信パケット格納部６に新たなパケットの格納がない場合は処理を終了する（以上、ステップＳ１７）。
【００７６】
（８）ステップＳ１３において、前記２つのパケットの内容が一致した場合は、送信データ選択部９は、データ比較部８での比較完了のタイミングで、一致不一致判定信号１１による比較結果に従ってダミーデータ格納部５に格納されているダミーデータをシフトレジスタ１０へ転送する（ステップＳ１８）。この後、ステップＳ１５へ進み、上記と同様に処理を続行する。
【００７７】
以上のように、本実施形態のシリアルデータ通信装置は、先に送信したパケットと後から送信するパケットとの内容が全く同一である場合、送信すべきパケットに代えて先に送信したパケットと同一データであることを示すダミーデータを送信することで、冗長のデータを間引きすることができる。この結果、複数バイトで構成するパケットデータの送信時間を短縮することができる。
【００７８】
なお、本実施形態の装置では、同一内容のパケットが連続する場合であっても、周期的又はソフトウェアの選択によって、ダミーデータではなく、同一内容のパケットデータを再送信することもできる。このようにすることで、バスのノイズ等を原因として発生するデータ化けを防止することが可能になる。
【００７９】
次に、上述した実施形態のシリアルデータ通信装置を用いたシリアルバスにおけるデータ送受信の制御手順を示す。図７は、この手順を示すフローチャートである。
【００８０】
（１）送受信を行う場合、スレーブ側からの転送クロックによって、マスタ側がデータを受信しているか否かを判定するため、始めにチップセレクタがバスフリー待ち状態にあるか否かの判断を行う（ステップＳ２１：バスフリー待ち判定ステップ）。そして、チップセレクタが、ノンアクティブ状態（バスフリー）であればステップＳ２２へ進み、アクティブ状態であれば再度ステップＳ２１の処理を行う。
【００８１】
（２）バスフリー状態であった場合、マスタ側からデータを送信するため、チップセレクタをアクティブ状態（バス使用）に設定する（ステップＳ２２：チップセレクタ制御ステップ）。
【００８２】
（３）上記実施形態のシリアルデータ通信装置の構成によって、マスタ側からスレーブ側に対して、可変クロック周期のクロックに重畳してデータの送信を行う（ステップＳ２３：シリアル送信処理ステップ）。
【００８３】
（４）送信バイト数を監視し、規定数のデータ送信完了を待つ（ステップＳ２４：ウエイト処理ステップ）。データ送信が、完了した場合はステップＳ２５へ進み、完了していない場合は再度ステップＳ２４の処理を行う。
【００８４】
（５）データ送信が完了すると、チップセレクタをノンアクティブ状態に設定し、マスタ側からのバス占有状態を解除し、バスをフリーとする（ステップＳ２５：チップセレクタ制御ステップ）。
【００８５】
上記のバスフリー監視機能をマスタ側とスレーブ側の両者に搭載し、マルチマスタ構成にすることで、上述した実施形態による可変クロック周期でのデータ送受信が可能となる。また、本発明に係るシリアルデータ通信装置の各手段を搭載したマイクロコントローラを構成し、通信機器等の装置に用いることができる。
【００８６】
なお、本発明は上述した実施形態に何ら限定されるものではなく、その要旨を逸脱しない範囲において種々の態様で実施し得るものである。例えば、第１実施形態に示した装置では、シフトレジスタに供給されるクロックの立下がりエッジで、送信データをシフトレジスタにセットし、前記供給クロックの次の立上がりエッジで送信データをラッチするタイミングを採用しているが、立下がりと立上がりを逆にしたものであってもよい。
【００８７】
上述した本実施形態によれば、シリアルデータの送信時間を短縮し、シリアルバスを介して行うデータ送信の高速化を図る際に、ソフトウェアに依存する処理を削減でき、ソフトウェア処理の負担やプログラムを格納するメモリ容量等を軽減できる。また、既に送信済みの１ビットもしくはパケットデータを冗長に送信することを抑制し、データ送信開始からデータの受渡し完了までの遅延を抑えることができる。
【００８８】
【発明の効果】
以上説明したように本発明によれば、シリアルバスを介して行うデータ送信の高速化をハードウェアで実現するためのシリアルデータ通信装置及び方法を提供できる。
【図面の簡単な説明】
【図１】本発明の第１実施形態に係るシリアルデータ通信装置の構成を示すブロック図
【図２】第１実施形態のシリアルデータ通信装置におけるシリアルデータ送信時の手順を示すフローチャート
【図３】第１実施形態のシリアルデータ通信装置の動作を説明するためのタイミングチャート
【図４】本実施形態のシリアルデータ通信装置によるデータ送信の一例を示す動作説明図
【図５】本発明の第２実施形態に係るシリアルデータ通信装置の構成を示すブロック図
【図６】第２実施形態のシリアルデータ通信装置におけるシリアルデータ送信時の手順を示すフローチャート
【図７】本実施形態に係るシリアルデータ通信装置を用いたシリアルバスにおけるデータ送受信の制御手順を示すフローチャート
【図８】従来装置によるデータ送信の一例を説明するための説明図
【符号の説明】
１、１０　シフトレジスタ
２　クロック供給部
３、８　データ比較部
４　供給クロック選択部
５　ダミーデータ格納部
６　送信パケット格納部
７　送信済みパケット格納部
９　送信データ選択部
１１、３４　一致不一致判定信号
２１　１／２分周器
２２　ＮＯＴゲート
２３　クロック選択器
３１　バッファ
３２　比較器
３３、４２　タイミング制御部
３５　クロック制御信号
４１　クロック制御部
４３　クロック選択信号
【図１】
2004129046.tif 000003
【図２】
2004129046.tif 000004
【図３】
2004129046.tif 000005
【図４】
2004129046.tif 000006
【図５】
2004129046.tif 000007
【図６】
2004129046.tif 000008
【図７】
2004129046.tif 000009
【図８】
2004129046.tif 000010