JP4094396B2 - シリアルデータ通信装置及び方法 - Google Patents
シリアルデータ通信装置及び方法 Download PDFInfo
- Publication number
- JP4094396B2 JP4094396B2 JP2002292394A JP2002292394A JP4094396B2 JP 4094396 B2 JP4094396 B2 JP 4094396B2 JP 2002292394 A JP2002292394 A JP 2002292394A JP 2002292394 A JP2002292394 A JP 2002292394A JP 4094396 B2 JP4094396 B2 JP 4094396B2
- Authority
- JP
- Japan
- Prior art keywords
- clock
- data
- shift register
- transmitted
- bit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Transfer Systems (AREA)
- Dc Digital Transmission (AREA)
- Communication Control (AREA)
Description
【発明の属する技術分野】
本発明は、シリアルバスを介して行うデータ送信の高速化を実現するためのシリアルデータ通信装置及び方法に関する。
【0002】
【従来の技術】
従来の同期式シリアルインターフェースプロトコルによるデータ通信装置では、時系列に隣り合う1ビットのデータ変化の有無に関わらず、一定周期のクロックにデータを重畳して送信している(例えば、特許文献1及び2を参照)。したがって、例えば、図8に示すように、1バイトのデータ「01011110」を送信する場合、データの送信開始から完了まで、送信するデータ量に比例した時間が必要であった。
【0003】
【特許文献1】
特開2001−268142号公報(第12〜18頁、図12、図18)
【特許文献2】
特開2002−152052号公報(第9〜14頁、図8〜10、図11〜14)
【0004】
【発明が解決しようとする課題】
上記のような従来装置において、シリアルバスにおけるデータの送信速度を速めるためには、バスマスタから送信されたデータが前回送信したものと同一である場合、送信データの間引きを行えばよいと考えられる。この送信データの間引きは、送信しようとするデータが前回送信したものと同一であるか否かを判断し、それが同一である場合後から送信するデータを容量が小さいダミーデータに置換して送信し、送信時間の短縮を図ることにより達成される。
【0005】
しかしながら、上記のような処理は、従来は通常ソフトウェアで行われるため、ソフトウェアに負担がかかると共に数十ステップの処理時間が必要となることから、結果的に、データ送信開始のトリガからデータ送信完了までに大きな遅延が生じ、データ送信の時間短縮はあまり図れなかった。
【0006】
本発明は、上記課題を解決するためになされたもので、その目的は、シリアルバスを介して行うデータ送信の高速化をハードウェアで実現することが可能なシリアルデータ通信装置及び方法を提供することにある。
【0007】
【課題を解決するための手段】
本発明のシリアルデータ通信装置は、1ビット単位のデータを送信するシフトレジスタと、前記シフトレジスタを動作させるクロックを供給するクロック供給手段と、前記シフトレジスタから送信された1ビット単位のデータの値と前記シフトレジスタに次の送信データとして用意される1ビット単位のデータの値とを比較しその一致不一致を判断するデータ比較手段と、前記データ比較手段の判断結果に基づき前記クロック供給手段から前記シフトレジスタへ供給されるクロックの周波数を選択する供給クロック選択手段と、を備えて構成されることを特徴とする。
【0008】
上記構成によれば、データ送信用のクロック周期を可変することで、受信側へ送信するシリアルデータの送信時間の短縮を図り、データ通信の高速化を実現することが可能となる。
【0009】
また、前記データ比較手段及び前記供給クロック選択手段には、それぞれ出力信号のタイミングを制御するタイミング制御手段が備えられていることを特徴とする。
【0010】
上記構成によれば、データ比較手段及び供給クロック選択手段からの出力をシフトレジスタへ供給されるクロックに同期させることができる。
【0011】
また、前記供給クロック選択手段は、少なくとも2種類の周波数のクロックが出力可能であることを特徴とする。
【0012】
上記構成によれば、送信する1ビットデータの送信速度を可変することが可能になる。
【0013】
また、前記供給クロック選択手段は、前記データ比較手段の判断結果が一致した場合は、その判断結果が不一致の場合に比べて2倍の周波数のクロックが前記シフトレジスタへ供給されるように前記クロック供給手段を制御することを特徴とする。
【0014】
上記構成によれば、送信された1ビットデータの値と次の送信データとが一致した場合に、送信する1ビットデータの送信速度を2倍に変化させることが可能になる。
【0019】
本発明のシリアルデータ通信方法は、シフトレジスタから送信される1ビットデータと同値のデータを保持するデータ保持ステップと、前記データ保持ステップによって保持されたデータの値と、前記シフトレジスタに次の送信データとして取り込まれた1ビットデータの値とを比較しその一致不一致を判断する一致判断ステップと、前記一致判断ステップにおける判断結果に基づき、前記シフトレジスタを動作させるクロックの周波数を選択するクロック選択ステップと、を有することを特徴とする。
【0020】
上記手順によれば、データ送信用のクロック周期を可変することで、受信側へ送信するシリアルデータの送信時間の短縮を図り、データ通信の高速化を実現することが可能となる。
【0021】
特に、前記クロック選択ステップでは、前記一致判断ステップにおける判断結果が一致した場合には、その判断結果が不一致の場合に比べて2倍の周波数のクロックを選択することを特徴とする。
【0022】
上記手順によれば、送信された1ビットデータの値と次の送信データとが一致した場合に、送信する1ビットデータの送信速度を可変することが可能になる。
【0027】
【発明の実施の形態】
以下、図面を参照して本発明の実施形態を説明する。
(第1実施形態)
一般に、シリアルバスにおいて、送信する1ビット単位のデータが、先に送信した1ビット単位のデータと同一の場合、シリアルバスのデータラインの出力レベルに変化がないため、データの「1(以下、Highレベルという場合もある)」又は「0(以下、Lowレベルという場合もある)」の変化に伴う電圧レベル変化時のなまりは発生しない。このため、送信データのなまりを考慮した重畳クロックのHighレベルもしくはLowレベル出力期間を十分に保持する必要はなく、マスタ側からはスレーブ側のシフトレジスタが確実に1カウントできるだけのクロックを供給できればよい。
【0028】
そこで、第1実施形態では、マスタ側(送信側)で、送信するデータ中、隣り合う1ビットの値が同一か否かを判断し、同じ値のデータを連続して送信する場合に、通常の送信よりも高速なクロックにデータを重畳させて送信することにより、データ送信の高速化を図るようにする。
【0029】
図1は、本発明の第1実施形態に係るシリアルデータ通信装置の構成を示すブロック図である。第1実施形態のシリアルデータ通信装置は、シフトレジスタ1、クロック供給部2、データ比較部3、及び供給クロック選択部4を有して構成される。
【0030】
シフトレジスタ1は、1ビットデータをシリアルバス(不図示)を介してスレーブ側(受信側、不図示)へ送信するためのものである。
【0031】
クロック供給部(クロック供給手段に相当する)2は、シフトレジスタ1へクロックを供給するためのものである。このクロック供給部2は、1/2分周器21、NOTゲート22、及びクロック選択器23を有して構成される。1/2分周器21はクロック供給部2へクロックソースとして供給されている通常の通信に用いるクロックの2倍の周波数fのクロック(以降、倍速クロックという)をf/2の周波数に分周して通常の通信に使用するクロック(以降、基準クロックという)を出力する。NOTゲート22は、1/2分周器21から出力された基準クロックの反転周期のクロック(以降、反転クロックという、周波数はf/2)を出力する。クロック選択器23は、前記倍速クロック、前記基準クロック、及び前記反転クロックの中からシフトレジスタ1へ供給するクロックを選択する。
【0032】
データ比較部(データ比較手段に相当する)3は、先にシフトレジスタ1から前記スレーブ側へ送信された1ビットデータの値と、これから前記スレーブ側へ送信する1ビットデータとしてシフトレジスタ1に用意されたデータの値とを比較し、その一致不一致を判断するためのものである。このデータ比較部3は、バッファ31、比較器32、タイミング制御部33を有して構成される。
【0033】
バッファ31は、シフトレジスタ1から前記スレーブ側へ送信された1ビットデータと同じ値のデータを格納する。比較器32は、バッファ31に格納された1ビットデータとシフトレジスタ1に用意され次に送信しようとしている1ビットデータとの値を比較して一致不一致判定信号34及びクロック制御信号35を出力する。また、比較器32は、比較した1バイトのデータ中の何回同じ値の1ビットデータが現れたかをカウントするためのカウンタを備えている。タイミング制御部33は、一致不一致判定信号34及びクロック制御信号35の出力タイミングを制御する。
【0034】
供給クロック選択部(供給クロック選択手段に相当する)4は、クロック供給部2からシフトレジスタ1へ供給されるクロックの周波数の選択を制御するためのものである。この供給クロック選択部4は、クロック制御部41、タイミング制御部42を有して構成される。クロック制御部41は、比較器32からの一致不一致判定信号34及びクロック制御信号35に基づきクロック選択信号43を出力する。タイミング制御部42は、クロック制御部41からクロック選択器23へ向けて出力されるクロック選択信号43の出力タイミングを制御する。
【0035】
次に、本実施形態のシリアルデータ通信装置の動作を説明する。このシリアルデータ通信装置のクロック供給部2には、倍速クロックが供給されている。そして、通常時は、1/2分周器21により前記倍速クロックから基準クロックが生成され、これがそのままクロック選択器23を介してシフトレジスタ1へ供給される。シフトレジスタ1からは、前記基準クロックの立下りエッジで、1ビットデータが前記基準クロックに重畳されて前記シリアルバスを介して前記スレーブ側へ送信されると同時に、その1ビットデータと同値のデータがバッファ31に格納される。
【0036】
次に、比較器32では、シフトレジスタ1に供給されるクロックの立上がりエッジで、バッファ31に格納された前記1ビットデータの値と、シフトレジスタ1に用意され次に送信しようとしている1ビットデータの値とが比較される。このように、本実施形態の装置では、シフトレジスタ1へ供給されるクロックの立下がりエッジに同期して比較の基準となる1ビットデータがバッファ31に取り込まれ、前記クロックの立上がりエッジに同期してデータ値の比較が行われる。このデータ値の比較は1ビット単位で順次繰り返し行われる。
【0037】
比較の結果、比較器32は、前記各1ビットデータ値の一致又は不一致を示す一致不一致判定信号34を出力する。この一致不一致判定信号34は、前記各1ビットデータ値の一致が検出された場合は「Highレベル出力」、前記各1ビットデータ値の一致が検出されなかった場合は「Lowレベル出力」となる。
【0038】
また、比較器32は、クロック制御信号35を出力する。クロック制御信号35は、比較器32に備えられたカウンタによって前記各1ビットデータ値の一致回数がカウントされるごとに、「Highレベル出力」と「Lowレベル出力」とを繰り返し交互に行う。例えば、クロック制御信号35は、前記各1ビットデータ値の一致が全くない場合は「Lowレベル出力」、1回目の場合は「Highレベル出力」、2回目の場合は「Lowレベル出力」、・・・となる。したがって、クロック制御信号35は、前記各1ビットデータ値の一致回数が偶数か奇数かを示す1ビットの信号となる。なお、一致不一致判定信号34の代わりに一致回数を示す信号を出力するようにしてもよい。これら一致不一致判定信号34及びクロック制御信号35は、タイミング制御部33によって、シフトレジスタ1へ供給されている前記クロックの次の立上がりエッジでクロック制御部41へ送信される。
【0039】
クロック制御部41では、一致不一致判定信号34及びクロック制御信号35を検出して、シフトレジスタ1へ供給されるクロックを選択するクロック選択信号43が出力される。このクロック選択信号43は、クロック選択器23の制御を行いクロック選択器23から出力されるクロックを選択するものである。また、クロック選択信号43は、タイミング制御部42によって、シフトレジスタ1に供給されている前記クロックの次の立下がりエッジでクロック選択器23へ送信される。
【0040】
クロック制御部41は、「Highレベル出力」の一致不一致判定信号34を受けた場合、クロック選択信号43を出力し、1/2分周器21を介さない倍速クロックがシフトレジスタ1へ供給されるようにクロック選択器23を制御する。そして、先に送信された1ビットデータと一致する1ビットデータがシフトレジスタ1から前記スレーブ側へ送信される際には、後から送信される1ビットデータは前記倍速クロックに重畳される。すなわち、前記倍速クロックがバスクロックとなる。
【0041】
一方、クロック制御部41は、「Lowレベル出力」の一致不一致判定信号34を受けた場合、クロック選択信号43を出力し、1/2分周器21を介した基準クロック、又はNOTゲート22を介した前記基準クロックとは位相が180°ずれた周波数f/2の反転クロックがシフトレジスタ1へ供給されるようにクロック選択器23を制御する。基準クロック又は反転クロックの選択は、クロック制御部41に供給されるクロック制御信号35の出力レベルによって行われる。すなわち、クロック制御部41は、「Highレベル出力」のクロック制御信号35を受けた場合は反転クロックが、一方「Lowレベル出力」のクロック制御信号35を受けた場合は基準クロックがそれぞれシフトレジスタ1へ供給されるように、クロック選択信号43によってクロック選択器23を制御する。シフトレジスタ1へ供給されるクロックに反転クロックが選択されるのは、シフトレジスタ1への供給クロックを高速クロックから低速クロックへ切替える場合である。この理由は、高速クロックから低速クロックへの切替えの際に生じる周期のずれを防ぐためである。
【0042】
以上のように、本実施形態のシリアルデータ通信装置では、シフトレジスタ1へ供給されるクロックに同期して、送信する1ビットデータ値の比較処理及びシフトレジスタ1へ供給するクロックの選択処理が行われる。
【0043】
以下、第1実施形態のシリアルデータ通信装置を用いたシリアルデータ通信方法を詳細に説明する。図2は第1実施形態におけるシリアルデータ送信時の手順を示すフローチャートである。
【0044】
(1)通常、本実施形態のシリアルデータ通信装置のシフトレジスタ1には基準クロック(周波数f/2)が供給されている。なお、シフトレジスタ1へは前記スレーブ側へ送信する1バイトのデータが1ビットずつ順に送り込まれるようになっている。シフトレジスタ1からは、供給されているクロックの立下りエッジで、まず先頭の1ビットデータが前記クロックに重畳されて前記スレーブ側へ送信されると同時に、その1ビットの送信データと同値のデータがバッファ31に格納される(以上、ステップS1)。
【0045】
(2)シフトレジスタ1へ供給されているクロックの次の立ち上がりエッジで、バッファ31に格納されたデータ値と、シフトレジスタ1に送りこまれ次に前記スレーブ側へ送信される1ビットデータの値とを比較する(以上、ステップS2)。比較結果が一致しなかった場合はステップS3へ進み、比較結果が一致した場合にはステップS7へ進む。
【0046】
(3)ステップS2において、比較結果が一致しなかった場合、比較器32は「Lowレベル」の一致不一致判定信号34を出力する。また、比較器32は、比較結果の一致回数に基づいて生成されるクロック制御信号35を出力する。一致不一致判定信号34とクロック制御信号35は同時に出力される(以上、ステップS3)。
【0047】
(4)一致不一致判定信号34とクロック制御信号35を受けたクロック制御部41は、クロック選択信号43を出力し、シフトレジスタ1に供給されるクロックの種類を選択する。ここで選択されるクロックが基準クロックであるか反転クロックであるかは、前述のようにクロック制御信号35の出力レベルに従う(以上、ステップS4)。
(5)シフトレジスタ1は、ステップS4の処理により供給されるクロックの立下りエッジで、シフトレジスタ1内部にある1ビットデータを前記クロックに重畳させて前記スレーブ側へ送信すると同時に、その1ビットの送信データと同値のデータをバッファ31に格納する(以上、ステップS5)。
【0048】
(6)シフトレジスタ1は、次に送信すべき1ビットデータを保持したか否かを判断する(ステップS6)。シフトレジスタ1が次に送信すべき1ビットデータを保持していない場合は処理を終了する。シフトレジスタ1が次に送信すべき1ビットデータを保持している場合は、ステップS2へ戻り、処理を続行する。
【0049】
(7)ステップS2において、比較結果が一致した場合、比較器32は「Highレベル」の一致不一致判定信号34を出力する(ステップS7)。なお、この一致不一致判定信号34はデータの一致が続く限り出力され続ける。また、比較器32は「Highレベル」の一致不一致判定信号34と共にクロック制御信号35も出力するが、前記各1ビットデータの値が一致した場合にはクロック制御信号35の出力結果は考慮されない。
【0050】
(8)「Highレベル」の一致不一致判定信号34を受けたクロック制御部41は、クロック選択信号43を出力し、シフトレジスタ1に倍速クロックが供給されるようにクロック選択器23を制御する(以上、ステップS8)。
【0051】
(9)シフトレジスタ1は、ステップS8の処理により供給されるクロックの立下りエッジで、シフトレジスタ1内部にある1ビットデータを前記クロックに重畳させて前記シリアルバスを介して前記スレーブ側へ送信すると同時に、その1ビットの送信データと同値のデータをバッファ31に格納する(以上、ステップS9)。以降はステップS6へ進み上記と同様に処理を続行する。
【0052】
次に、図3に基づき具体的なデータ送信時の動作を説明する。図3は第1実施形態のシリアルデータ通信装置の動作を説明するためのタイミングチャートである。通常、本実施形態のシリアルデータ通信装置のシフトレジスタ1には基準クロック(周波数f/2)が供給されている。また、シフトレジスタ1へは前記スレーブ側へ送信するデータが1ビットずつ順に送り込まれる。
【0053】
まず、図中の区間Aについて説明する。シフトレジスタ1からは、1ビット目のデータ値(図3では「0」)が、基準クロックの立下りエッジで前記基準クロックに重畳され前記シリアルバスを介して前記スレーブ側へ送信されると同時に、その1ビット目のデータと同値のデータがバッファ31に格納される。前記基準クロックの次の立ち上がりエッジで、バッファ31に格納されたデータ値(図3では「0」)と、シフトレジスタ1に送りこまれ次に前記スレーブ側へ送信される2ビット目のデータ値(図3では「1」)とを比較する。
【0054】
この場合、比較結果が一致しないので、比較器32は「Lowレベル」の一致不一致判定信号34を出力する。また、このときの一致回数は「0回」であるから、比較器32は「Lowレベル」のクロック制御信号35を出力する。Lowレベル」の一致不一致判定信号34と「Lowレベル」のクロック制御信号35を受けたクロック制御部41は、クロック選択信号43を出力し、前記基準クロックの次の立ち上がりエッジで基準クロックがシフトレジスタ1に供給されるようにクロック選択器23を制御する。すなわち、この場合シフトレジスタ1へは基準クロックが供給され続けることになる。
【0055】
次に、シフトレジスタ1からは、2ビット目のデータ値は、前記基準クロックに重畳され、その基準クロックの次の立下りエッジで前記シリアルバスを介して前記スレーブ側へ送信されると同時に、その2ビット目のデータと同値のデータがバッファ31に格納される。ここでも前記基準クロックがバスクロックとなる。前記基準クロックの次の立ち上がりエッジで、バッファ31に格納されたデータ値(図3では「1」)と、シフトレジスタ1に送りこまれ次に前記スレーブ側へ送信される3ビット目のデータ値(図3では「1」)とを比較する。
【0056】
この場合、比較結果が一致するので、比較器32は「Highレベル」の一致不一致判定信号34を出力する。また、このときは「1回目(奇数)」の一致であるから、比較器32は「Highレベル」のクロック制御信号35を出力する。「Highレベル」の一致不一致判定信号34と「Highレベル」のクロック制御信号35を受けたクロック制御部41は、前記基準クロックの次の立ち上がりエッジでクロック選択信号43を出力し、倍速クロックがシフトレジスタ1に供給されるようにクロック選択器23を制御する。3ビット目のデータはこの倍速クロックに重畳されて送信される。すなわち、前記倍速クロックがバスクロックとなる。
【0057】
次に、区間Bについて説明する。シフトレジスタ1からは、5ビット目のデータ値(図3では「1」)が、シフトレジスタ1へ供給されている倍速クロックの立下りエッジで、前記倍速クロックに重畳され前記シリアルバスを介して前記スレーブ側へ送信されると同時に、その5ビット目のデータ値がバッファ31に格納される。前記倍速クロックの次の立ち上がりエッジで、バッファ31に格納されたデータ値(図3では「1」)と、シフトレジスタ1に送りこまれ次に前記シリアルバスへ送信される6ビット目のデータ値(図3では「0」)とを比較する。
【0058】
この場合、比較結果が一致しないので、比較器32は「Lowレベル」の一致不一致判定信号34を出力する。また、このときは不一致であるため一致回数は加算されず(一致回数は「3回目(奇数)」のままである)、比較器32は「Highレベル」のクロック制御信号35を出力する。「Lowレベル」の一致不一致判定信号34と「Highレベル」のクロック制御信号35を受けたクロック制御部41は、前記倍速クロックの次の立ち上がりエッジでクロック選択信号43を出力し、反転クロックがシフトレジスタ1に供給されるようにクロック選択器23を制御する。ここでは、シフトレジスタ1への供給クロックが高速クロックから低速クロックへ切替わるため、シフトレジスタ1へ反転クロックが供給されるように制御し、低速クロックへの切替えの際に生じる周期のずれを防いでいる。
【0059】
以上のように、本実施形態のシリアルデータ通信装置は、マスタ側のシフトレジスタから送信された1ビットデータの値と次に送信する1ビットデータの値とを比較し、値が一致する場合にデータを重畳するバスクロックの周波数が2倍になるように切替えることによって、データ全体の送信時間を短縮することが可能になる。例えば、図4に示すように、1バイトのデータ「01011110」を送信する場合、従来装置に比べて同一の1ビットデータが連続する部分で高速クロックにより送信時間を短縮できる。
【0060】
(第2実施形態)
第2実施形態のシリアルデータ通信装置は、複数バイトで構成されるデータ列(以下、パケットという)が先に送信したものと同一である場合に、後から送信する同一パケットを同一データコードであることを意味する任意に規定した1バイト等の単位のデータに置換して送信することで、冗長のデータを間引きし、全データの送信時間を短縮するようにしたものである。
【0061】
図5は本発明の第2実施形態に係るシリアルデータ通信装置の構成を示すブロック図である。第2実施形態のシリアルデータ通信装置は、ダミーデータ格納部5、送信パケット格納部6、送信済みパケット格納部7、データ比較部8、送信データ選択部9、及びシフトレジスタ10を有して構成される。
【0062】
ダミーデータ格納部(ダミーデータ格納手段に相当する)5は、スレーブ側(不図示)に先に送信したパケットと同一パケットであることを即座に認識させるために任意に規定したダミーデータを格納するためのものである。このダミーデータは、できるだけデータの容量が小さいものが最適である。
【0063】
送信パケット格納部(送信データ列格納手段に相当する)6は、送信するパケットを格納するためのものである。送信パケット格納部6はパケットの格納が終了すると、データ比較部8へパケットの格納が終了した旨を知らせる信号を送信する。
【0064】
送信済みパケット格納部(送信済みデータ列格納手段に相当する)7は、送信パケット格納部6に格納されたパケットが前記スレーブ側に送信された後、そのパケットと同一パケットを格納するためのものである。
【0065】
データ比較部(データ列比較手段に相当する)8は、送信パケット格納部6に新たに格納されたパケットと送信済みパケット格納部7に格納されている先に送信されたパケットとの内容を比較し、その一致不一致を判断するためのものである。データ比較部8は、前記2つのパケットの内容を比較した結果、その一致不一致を示す一致不一致判定信号11を送信データ選択部9へ送る。
【0066】
送信データ選択部(送信データ選択手段に相当する)9は、一致不一致判定信号11に基づき、シフトレジスタ10へ格納するデータを選択するためのものである。送信データ選択部9では、データ比較部8における判断結果が一致した場合は、ダミーデータ格納部5に格納されているダミーデータが、またその判断結果が不一致の場合は、送信パケット格納部6に格納されているパケットが選択され、シフトレジスタ10へ送られる。
【0067】
シフトレジスタ10は、受け取ったパケットを格納し、前記スレーブ側へ送信するためのものである。
【0068】
以下、第2実施形態のシリアルデータ通信装置を用いたシリアルデータ通信方法を詳細に説明する。図6は第2実施形態におけるシリアルデータ送信時の手順を示すフローチャートである。
【0069】
(1)まず始めに、前記スレーブ側で自らが同一パケットであると判定するコード値をあらかじめ設定し、これを本実施形態のシリアルデータ通信装置へ送信する。本実施形態のシリアルデータ通信装置は、そのコード値を含むパケットをダミーデータとしてダミーデータ格納部5に格納する(以上、ステップS11)。
【0070】
(2)複数バイトで構成されるパケットデータの送信タイミングで、前記スレーブ側へ送信しようとするパケットを送信パケット格納部6に格納する。このとき、データ比較部8には送信パケット格納部6への書き込み信号が入力される(以上、ステップS12)。
【0071】
(3)データ比較部8は、前記書き込み信号によって比較動作を開始し、送信パケット格納部6に格納するこれから送信しようとするパケットと、送信済みパケット格納部7に格納されている先に送信したパケットとの内容の比較を行い、それらが一致するか否かを判断する。この比較結果は一致不一致判定信号11によって送信データ選択部9に知らされる。また、比較完了時にデータ比較部8より送信データ選択部9に比較完了信号が入力される。(以上、ステップS13)。前記2つのパケットの内容が一致しなかった場合(送信済みパケット格納部7に比較すべきパケットが格納されていなかった場合を含む)はステップS14へ、一致した場合はステップS18へ進む。
【0072】
(4)ステップS13において、前記2つのパケットの内容が一致しなかった場合は、送信データ選択部9は、データ比較部8での比較完了のタイミングで、一致不一致判定信号11による比較結果に従って送信パケット格納部6に格納されているパケットをシフトレジスタ10へ転送する(ステップS14)。
【0073】
(5)シフトレジスタ10は受け取ったパケットをシリアルバス(不図示)を介して前記スレーブ側へ送信する(ステップS15)。
【0074】
(6)シフトレジスタ10からデータの送信が完了すると、送信パケット格納部6に格納されているパケットが送信済みパケット格納部7に格納される。この後、送信パケット格納部6はクリアされる(以上、ステップS16)。
【0075】
(7)その後、新たに送信パケット格納部6に次に送信するパケットが格納された場合は、ステップS13に戻り処理を続行する。送信パケット格納部6に新たなパケットの格納がない場合は処理を終了する(以上、ステップS17)。
【0076】
(8)ステップS13において、前記2つのパケットの内容が一致した場合は、送信データ選択部9は、データ比較部8での比較完了のタイミングで、一致不一致判定信号11による比較結果に従ってダミーデータ格納部5に格納されているダミーデータをシフトレジスタ10へ転送する(ステップS18)。この後、ステップS15へ進み、上記と同様に処理を続行する。
【0077】
以上のように、本実施形態のシリアルデータ通信装置は、先に送信したパケットと後から送信するパケットとの内容が全く同一である場合、送信すべきパケットに代えて先に送信したパケットと同一データであることを示すダミーデータを送信することで、冗長のデータを間引きすることができる。この結果、複数バイトで構成するパケットデータの送信時間を短縮することができる。
【0078】
なお、本実施形態の装置では、同一内容のパケットが連続する場合であっても、周期的又はソフトウェアの選択によって、ダミーデータではなく、同一内容のパケットデータを再送信することもできる。このようにすることで、バスのノイズ等を原因として発生するデータ化けを防止することが可能になる。
【0079】
次に、上述した実施形態のシリアルデータ通信装置を用いたシリアルバスにおけるデータ送受信の制御手順を示す。図7は、この手順を示すフローチャートである。
【0080】
(1)送受信を行う場合、スレーブ側からの転送クロックによって、マスタ側がデータを受信しているか否かを判定するため、始めにチップセレクタがバスフリー待ち状態にあるか否かの判断を行う(ステップS21:バスフリー待ち判定ステップ)。そして、チップセレクタが、ノンアクティブ状態(バスフリー)であればステップS22へ進み、アクティブ状態であれば再度ステップS21の処理を行う。
【0081】
(2)バスフリー状態であった場合、マスタ側からデータを送信するため、チップセレクタをアクティブ状態(バス使用)に設定する(ステップS22:チップセレクタ制御ステップ)。
【0082】
(3)上記実施形態のシリアルデータ通信装置の構成によって、マスタ側からスレーブ側に対して、可変クロック周期のクロックに重畳してデータの送信を行う(ステップS23:シリアル送信処理ステップ)。
【0083】
(4)送信バイト数を監視し、規定数のデータ送信完了を待つ(ステップS24:ウエイト処理ステップ)。データ送信が、完了した場合はステップS25へ進み、完了していない場合は再度ステップS24の処理を行う。
【0084】
(5)データ送信が完了すると、チップセレクタをノンアクティブ状態に設定し、マスタ側からのバス占有状態を解除し、バスをフリーとする(ステップS25:チップセレクタ制御ステップ)。
【0085】
上記のバスフリー監視機能をマスタ側とスレーブ側の両者に搭載し、マルチマスタ構成にすることで、上述した実施形態による可変クロック周期でのデータ送受信が可能となる。また、本発明に係るシリアルデータ通信装置の各手段を搭載したマイクロコントローラを構成し、通信機器等の装置に用いることができる。
【0086】
なお、本発明は上述した実施形態に何ら限定されるものではなく、その要旨を逸脱しない範囲において種々の態様で実施し得るものである。例えば、第1実施形態に示した装置では、シフトレジスタに供給されるクロックの立下がりエッジで、送信データをシフトレジスタにセットし、前記供給クロックの次の立上がりエッジで送信データをラッチするタイミングを採用しているが、立下がりと立上がりを逆にしたものであってもよい。
【0087】
上述した本実施形態によれば、シリアルデータの送信時間を短縮し、シリアルバスを介して行うデータ送信の高速化を図る際に、ソフトウェアに依存する処理を削減でき、ソフトウェア処理の負担やプログラムを格納するメモリ容量等を軽減できる。また、既に送信済みの1ビットもしくはパケットデータを冗長に送信することを抑制し、データ送信開始からデータの受渡し完了までの遅延を抑えることができる。
【0088】
【発明の効果】
以上説明したように本発明によれば、シリアルバスを介して行うデータ送信の高速化をハードウェアで実現するためのシリアルデータ通信装置及び方法を提供できる。
【図面の簡単な説明】
【図1】本発明の第1実施形態に係るシリアルデータ通信装置の構成を示すブロック図
【図2】第1実施形態のシリアルデータ通信装置におけるシリアルデータ送信時の手順を示すフローチャート
【図3】第1実施形態のシリアルデータ通信装置の動作を説明するためのタイミングチャート
【図4】本実施形態のシリアルデータ通信装置によるデータ送信の一例を示す動作説明図
【図5】本発明の第2実施形態に係るシリアルデータ通信装置の構成を示すブロック図
【図6】第2実施形態のシリアルデータ通信装置におけるシリアルデータ送信時の手順を示すフローチャート
【図7】本実施形態に係るシリアルデータ通信装置を用いたシリアルバスにおけるデータ送受信の制御手順を示すフローチャート
【図8】従来装置によるデータ送信の一例を説明するための説明図
【符号の説明】
1、10 シフトレジスタ
2 クロック供給部
3、8 データ比較部
4 供給クロック選択部
5 ダミーデータ格納部
6 送信パケット格納部
7 送信済みパケット格納部
9 送信データ選択部
11、34 一致不一致判定信号
21 1/2分周器
22 NOTゲート
23 クロック選択器
31 バッファ
32 比較器
33、42 タイミング制御部
35 クロック制御信号
41 クロック制御部
43 クロック選択信号
Claims (6)
- 1ビット単位のデータを送信するシフトレジスタと、
前記シフトレジスタを動作させるクロックを供給するクロック供給手段と、
前記シフトレジスタから送信された1ビット単位のデータの値と前記シフトレジスタに次の送信データとして用意される1ビット単位のデータの値とを比較しその一致不一致を判断するデータ比較手段と、
前記データ比較手段の判断結果に基づき前記クロック供給手段から前記シフトレジスタへ供給されるクロックの周波数を選択する供給クロック選択手段と、
を備えて構成されることを特徴とするシリアルデータ通信装置。 - 前記データ比較手段及び前記供給クロック選択手段には、それぞれ出力信号のタイミングを制御するタイミング制御手段が備えられていることを特徴とする請求項1に記載のシリアルデータ通信装置。
- 前記供給クロック選択手段は、少なくとも2種類の周波数のクロックが出力可能であることを特徴とする請求項1又は2に記載のシリアルデータ通信装置。
- 前記供給クロック選択手段は、前記データ比較手段の判断結果が一致した場合は、その判断結果が不一致の場合に比べて2倍の周波数のクロックが前記シフトレジスタへ供給されるように前記クロック供給手段を制御することを特徴とする請求項1ないし3のいずれかに記載のシリアルデータ通信装置。
- シフトレジスタから送信される1ビットデータと同値のデータを保持するデータ保持ステップと、
前記データ保持ステップによって保持されたデータの値と、前記シフトレジスタに次の送信データとして取り込まれた1ビットデータの値とを比較しその一致不一致を判断する一致判断ステップと、
前記一致判断ステップにおける判断結果に基づき、前記シフトレジスタを動作させるクロックの周波数を選択するクロック選択ステップと、
を有することを特徴とするシリアルデータ通信方法。 - 前記クロック選択ステップでは、前記一致判断ステップにおける判断結果が一致した場合には、その判断結果が不一致の場合に比べて2倍の周波数のクロックを選択することを特徴とする請求項5に記載のシリアルデータ通信方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002292394A JP4094396B2 (ja) | 2002-10-04 | 2002-10-04 | シリアルデータ通信装置及び方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002292394A JP4094396B2 (ja) | 2002-10-04 | 2002-10-04 | シリアルデータ通信装置及び方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004129046A JP2004129046A (ja) | 2004-04-22 |
JP4094396B2 true JP4094396B2 (ja) | 2008-06-04 |
Family
ID=32283656
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002292394A Expired - Fee Related JP4094396B2 (ja) | 2002-10-04 | 2002-10-04 | シリアルデータ通信装置及び方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4094396B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017051385A (ja) * | 2015-09-09 | 2017-03-16 | 株式会社平和 | 遊技機 |
-
2002
- 2002-10-04 JP JP2002292394A patent/JP4094396B2/ja not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017051385A (ja) * | 2015-09-09 | 2017-03-16 | 株式会社平和 | 遊技機 |
Also Published As
Publication number | Publication date |
---|---|
JP2004129046A (ja) | 2004-04-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100703406B1 (ko) | Dma 제어 장치 및 방법 | |
US7373561B2 (en) | Integrated packet bit error rate tester for 10G SERDES | |
KR100970300B1 (ko) | 통신 모듈의 메시지 메모리의 데이터를 액세스하기 위한 방법 및 장치 | |
TWI406135B (zh) | 資料傳輸系統與可編程序列周邊介面控制器 | |
JP2007324679A (ja) | シリアル通信用ボーレートジェネレータ | |
US5524112A (en) | Interface apparatus for transferring k*n-bit data packets via transmission of K discrete n-bit parallel words and method therefore | |
KR100977897B1 (ko) | 메시지 메모리 내에서 메시지를 저장하기 위한 방법 및상응하는 메시지 메모리 | |
EP1556987B1 (en) | Data processing apparatus that identifies a communication clock frequency | |
JPH03104459A (ja) | データ通信装置 | |
JPH11275168A (ja) | データ通信装置 | |
JP2940454B2 (ja) | スロット受信同期回路 | |
JP4094396B2 (ja) | シリアルデータ通信装置及び方法 | |
JP4012907B2 (ja) | 非同期伝送方法及びその回路 | |
US9111042B1 (en) | 1588 deterministic latency with gearbox | |
US20230077161A1 (en) | De-skew circuit, de-skew method, and receiver | |
JPH0983497A (ja) | パリティビット合致調整方法及び装置 | |
JPH02502780A (ja) | 変通性バッファに差し迫ったオーバーフロー及び/又はアンダーランを探知する方法と装置 | |
JP2790748B2 (ja) | シリアルデータ通信装置 | |
US6545617B1 (en) | Asynchronous serial data receiving device and asynchronous serial data transmitting device | |
JP4524724B2 (ja) | 入出力装置 | |
JP2621772B2 (ja) | シリアル伝送装置 | |
JP2776785B2 (ja) | シリアルデータ転送装置 | |
JP3407647B2 (ja) | 多重信号分離回路、伝送誤り測定回路および伝送誤り測定方法 | |
JP5258039B2 (ja) | インタフェース回路およびクロック/データ供給方法 | |
JPH04213259A (ja) | データ処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20051004 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20060325 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070511 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070919 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071114 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20071114 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20071114 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20080206 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080305 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110314 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110314 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |