JP2004064699A - データ送受信システム、およびデータ送受信方法 - Google Patents
データ送受信システム、およびデータ送受信方法 Download PDFInfo
- Publication number
- JP2004064699A JP2004064699A JP2002223993A JP2002223993A JP2004064699A JP 2004064699 A JP2004064699 A JP 2004064699A JP 2002223993 A JP2002223993 A JP 2002223993A JP 2002223993 A JP2002223993 A JP 2002223993A JP 2004064699 A JP2004064699 A JP 2004064699A
- Authority
- JP
- Japan
- Prior art keywords
- data
- chip
- time
- blocks
- reception
- 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.)
- Withdrawn
Links
Images
Landscapes
- Information Transfer Systems (AREA)
- Communication Control (AREA)
Abstract
【課題】短い転送時間でエラーなくデータを転送する。
【解決手段】メインCPU2は、コマンドを3つのブロックに分割してサブCPU3に出力する。サブCPU3は、メインCPU2から出力されるデータを全て受信するとOPTIONの出力を”Low”から”High”に切り換える。メインCPU2は、3つのブロックを出力してから、OPTIONの出力が”High”になるまでの受信完了時間を計測し、受信完了時間がエラー判別時間を超えると、エラーを検出する。メインCPU2は、エラーを検出するとサブCPU3にコマンドを再送する。
【選択図】 図1
【解決手段】メインCPU2は、コマンドを3つのブロックに分割してサブCPU3に出力する。サブCPU3は、メインCPU2から出力されるデータを全て受信するとOPTIONの出力を”Low”から”High”に切り換える。メインCPU2は、3つのブロックを出力してから、OPTIONの出力が”High”になるまでの受信完了時間を計測し、受信完了時間がエラー判別時間を超えると、エラーを検出する。メインCPU2は、エラーを検出するとサブCPU3にコマンドを再送する。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は、チップ間でデータの送受信を行うためのデータ送受信システムおよびデータ送受信方法に関する。
【0002】
【従来の技術】
従来、複数のチップを内蔵する電子機器が存在し、このような電子機器の内部では、複数のチップが互いに通信を行っている。複数のチップが互いに通信をする場合、例えば、データをパケット化して転送する場合がある。パケット化とは、データを分割し、転送できる形式に変換することであり、分割したデータの先頭にスタートビット、終端にチェックサムを付属して、パケットを生成する。
【0003】
スタートビットは、データ転送の同期をとるための信号であり、受信側のチップは、スタートビットを検出すると、新しいデータが転送されることを認識する。また、チェックサムは、エラー検出のためのデータであり、送信するデータの和が記録されている。受信側のチップは、受信したデータの和とチェックサムの値を比較し、これらの値が一致しなかった場合ときに転送エラーを検出する。
【0004】
このように、データを分割して転送すると、一回の転送あたりのデータ量が小さくなり、転送エラーが減少するとともに、一つのデータが回線を占有することがなくなり、データの転送効率が上がる。
【0005】
【発明が解決しようとする課題】
しかしながら、データをパケット化すると、スタートビットとチェックサムとが付属されるのでスタートビットとチェックサムの分だけデータの容量が大きくなり、データ転送時間が長くなる。そのため、スタートビットとチェックサムを削減しデータの転送時間を短くする方法が考えられる。
【0006】
そこで、スタートビットとチェックサムを削減すると、転送エラーによってパケットが欠落したとき、パケットの順番は、欠落した分だけずれてしまう。これを解消するために、インジケータのようなパケットの順番を示すデータを付加し、パケットのずれを訂正できるようにしなければならない。
【0007】
しかし、インジケータのようなデータを付加すると、データを付加した分だけ転送するデータの容量が大きくなるので、スタートビットとチェックサムを削減してもデータの転送容量を削減させることができない。
【0008】
本発明は、上記課題に鑑みてなされたものであって、短い転送時間でエラーなくデータを転送するデータ送受信システムおよびデータ送受信方法に関する。
【0009】
【課題を解決するための手段】
上述した課題を解決するために、本発明にかかるデータ送受信システムは、第1のチップと第2のチップとの間でシリアル転送を行うデータ送受信システムにおいて、第1のチップは、送信する一連のデータを複数のブロックに分割する分割手段と、ブロックを第2のチップに送信する送信手段とを有し、第2のチップは、第1のチップから送信されるブロックを受信する受信手段と、分割手段によって分割された全てのブロックを受信したときに受信完了信号を第1のチップに通知する通知手段とを有し、第1のチップは、分割された複数のブロックの全てを送信手段により送信完了した時間から受信完了信号を受けるまでの受信完了時間を計測し、受信完了時間が所定の長さを超えると転送エラーを検出するエラー検出手段と、エラー検出手段により、エラーを検出すると、第2のチップに対して一連のデータを再送する再送手段とを有する。
【0010】
また、上述の目的を達成するために本発明にかかるデータ送受信方法は、第1のチップと第2のチップとの間でシリアル転送を行う際のデータ送受信方法であって、上記第1のチップが送信する一連のデータを複数のブロックに分割する分割工程と、第1のチップが第2のチップにブロックを送信する送信工程と、第2のチップが送信工程において送信されたブロックを受信する受信工程と、第2のチップが分割工程において分割された全てのブロックを受信したときに第1のチップに受信完了信号を通知する通知工程と、第1のチップが分割された複数のブロックの全てを送信工程によって送信完了した時刻から受信完了信号を受けるまでの受信完了時間を計測し、この時間が所定の長さを超えるとデータの転送エラーを検出するエラー検出工程と、第1のチップが上記エラー検出工程によってエラー検出すると、第2のチップに対して一連のデータの再送を行う再送工程とを有することを特徴とする。
【0011】
【発明の実施の形態】
以下、本発明を適用したデータ送受信システム1について説明する。本発明におけるデータ送受信システム1は、チップ間でシリアル転送を行うためのシステムである。このデータ送受信システム1では、送信するデータを複数のブロックに分割して転送する。エラー検出は、データの転送完了時間をもとに行われる。送信側のチップは、すべてのデータの出力が完了すると、受信側からの受信完了信号が返信されるまでの時間をカウントし、この時間が所定の時間より長い場合にエラーを検出する。データ送受信システム1では、データを複数のブロックに分割し、一度に転送するデータのデータ長を短くしてデータの転送エラーを減少させるとともに、データの転送完了時間をもとにエラーを検出するため、エラー検出用の制御信号を少なくし、転送データ量を削減することができる。
【0012】
図1は、データ送受信システム1の構成を示している。図1に示すデータ送受信システム1は、メインCPU2とサブのサブCPU3とを有し、サブCPU3はメインCPU2により制御されている。メインCPU2とサブCPU3とは、シリアルバス4によって接続されている。シリアルバス4は、割り込み発生を通知する信号CS、シリアルクロックSCK、メインCPU2からサブCPU3に伝送されるデータ、サブCPU3からメインCPU2に転送されるデータを転送する。メインCPUからサブCPUへ転送されるデータを入出力する端子をSIと呼び、サブCPUからメインCPUへ転送されるデータを入出力するための端子をSOと呼ぶ。また、サブCPU3とメインCPU2は、サブCPU3のデータ受信完了を示す信号OPTIONを転送する信号線5が接続されている。
【0013】
サブCPU3は、メインCPU2からのコマンドを受信し、メインCPU2からの制御を受ける。サブCPU3は、メインCPU2から送信されるデータSOを入力する。サブCPU3は、シリアル通信で送受信されるデータを格納するためのシリアルデータレジスタ6を備えており、シリアルクロックの立下りに同期して、メインCPU2から出力される信号をシリアルデータレジスタ6に格納する。また、サブCPU3は、データをシリアルデータレジスタ6に格納し、シリアルクロックの立ち上がりに同期してシリアルデータレジスタ6の値をメインCPU2に出力する。
【0014】
また、サブCPU3は、サブCPU3がデータの通信状態であるか否を示す信号OPTIONを出力しており、データの通信可能状態であるときは、OPTIONの出力を”Low”にし、データの通信状態であるときは、OPTIONの出力を”High”にする。
【0015】
メインCPU2は、サブCPU3を制御するCPUであり、サブCPU3に対してコマンドを出力する。メインCPU2がコマンドを出力するときの手順は以下のようになる。メインCPU2は、まず、割り込み信号CSを”Low”にする。そして、メインCPU2は、コマンドを転送できる形式に変換する。変換されたコマンドは、3つブロックに分割されており、コマンドの11バイト目にはチェックサムが挿入されている。そして、メインCPU2は、OPTIONの出力を検出し、OPTIONの出力が”Low”であれば、信号線SIを介してコマンドを1ブロックづつ出力する。
【0016】
次に、図2、図3を参照して、本発明を適用したデータ送受信システム1の動作について説明する。なお、図2、図3に示すDATAとは、データの転送が行われているタイミングを示しており、DATAに描かれた一本のパルスは、1バイトのデータに相当する。
【0017】
図2は、データ転送が正常に行われたときの信号CS、OPTIONの値を示している。図2に示すように、メインCPU2がサブCPU3にコマンドを出力する際、メインCPU2は、CSの出力を”Low”にし、サブCPU3に対して割り込み要求を行う。割り込み要求を受けたサブCPU3は、転送されたデータを格納するためのシリアルデータレジスタ6を用意する。そして、サブCPU3は、OPTIONの出力を”High”に切り換え、通信状態であることをメインCPU2に通知する。OPTIONの出力が”High”になると、メインCPU2は、出力するコマンドの形式を変換する。コマンド形式の変換方法の一例を説明する。例えば、コマンドのデータ長が12バイトのとき、メインCPU2は、コマンドを4バイトづつの3つのブロックに分割し、コマンドの11バイト目にチェックサムを挿入する。チェックサムは、例えば、コマンドの0バイト目から10バイト目までの値の和とするが、チェックサムの計算方法は特に限定されない。
【0018】
コマンドの形式を変換すると、メインCPU2は、端子SIを介して、コマンドをサブCPU3に出力する。サブCPU3は、入力したコマンドをシリアルデータレジスタ6に格納するとともに、端子SOを介してシリアルデータレジスタ6に格納されたデータをメインCPU2に出力する。
【0019】
メインCPU2とサブCPU3とのデータ転送は、1ブロックごとに行われる。メインCPU2は、1ブロックのデータ出力を開始するとき、CSの出力を”Low”にし、1ブロックのデータ出力が完了するとCSの出力を”High”にする。
【0020】
サブCPU3は、メインCPU2から出力された3つのブロックを受信すると、3ブロック目のデータに記録されたチェックサムの値を読み出し、0バイト目から11バイト目までの値の合計と比較する。そして、0バイト目から11バイト目までの値の合計とチェックサムの値とが一致すると、サブCPU3は、OPTIONの出力を”Low”に切り換え、データの受信完了をメインCPU2に通知する。
【0021】
メインCPU2は、最後のブロックを出力してからOPTIONの値が”Low”になるまでの時間(以下、受信完了時間と呼ぶ)を計測し、受信完了時間が所定の範囲内であれば、データ転送処理を終了する。
【0022】
データ転送が正常に完了しない場合には、データ送受信システム1の動作は、以下のようになる。図3は、データ転送が正常に完了しない場合の信号CS、OPTIONの値を示した図である。図3に示すように、メインCPU2とサブCPU3とのデータ転送は、1ブロックごとに行われる。メインCPU2は、1ブロックのデータ出力を開始するとき、CSの出力を”Low”にし、1ブロックのデータ出力が完了するとCSの出力を”High”にする。
【0023】
メインCPU2は、サブCPU3に3ブロックのデータを出力する。このとき、メインCPU2から出力されたブロックがサブCPU3に到達しなかった場合、サブCPU3は、OPTIONの出力を”High”の状態で継続し、データの受信が完了していないことをメインCPUに通知する。
【0024】
また、サブCPU3は、メインCPU2から出力されたすべてのブロックを受信すると、受信したデータの0バイト目から10バイト目までの和を求め、チェックサムと比較する。ここで、データの0バイト目から10バイト目までの値の和がチェックサムと一致しない場合には、OPTIONの出力を”High”の状態で継続する。
【0025】
メインCPU2は、最後のブロックを出力してからOPTIONの値が”Low”になるまでの受信完了時間を計測する。ここで、サブCPU3がすべてのブロックを受信できなかった場合やチェックサムの値が一致しなかった場合には、OPTIONの値は、”High”のまま出力される。メインCPU2は、受信完了時間がエラー判別時間を超えると、転送エラーを検出する。メインCPU2は、転送エラーを検出すると、データの再送を行う。なお、エラー判別時間は、システムにより異なり、各々のデータ送受信システムに設定されているものとする。
【0026】
本発明では、データを3つのブロックに分割したため、一度に転送するデータの量が少なくなり、データの転送エラーが減少する。また、データ転送の時間をもとにエラーの検出を行うので、データを複数のブロックに分割しても、各ブロックにエラー検出用の制御情報を挿入する必要はなく、効率よくデータの転送ができる。
【0027】
次に、データ送受信システム1が1ブロックのデータを転送するときの動作について説明する。図4は、メインCPU2からサブCPU3へコマンドを転送するときのCS、SCK、SI、SOの値を示している。上述したように、CSはメインCPU2からサブCPU3に割り込み要求を示す信号、SCKはシリアル通信の基準となるシリアルクロック、SIはメインCPU2からサブCPU3に転送されるデータの入出力端子、SOはサブCPU3からメインCPU2に転送されるデータの入出力端子である。
【0028】
まず、メインCPU2は、CSを”Low”にし、サブCPU3に対して割り込みを要求する。そして、メインCPU2は、シリアルクロックSCKおよびデータSIをサブCPU3に転送する。1ブロックのデータは4バイトのデータから構成され、1バイトのデータは8ビットのデータから構成される。シリアルクロックは、連続した8回のパルスを所定の間隔Tsをあけて4回発生し、1ブロックのデータを転送させる。
【0029】
メインCPU2からサブCPU3に転送されるデータは、シリアルクロックの立下りに同期して転送され、サブCPU3からメインCPU2に転送されるデータは、シリアルクロックSCKの立ち上がりに同期して転送される。
【0030】
サブCPU3には、図5に示すようなシリアルデータを格納するためのシリアルデータレジスタ6が設けられている。サブCPU3は、入力した信号SIの1ビットをシリアルデータレジスタ6の最上位ビット(MSB)に格納する。また、シリアルデータレジスタ6の最下位ビット(LSB)の値は、シリアルクロックの立下りに同期して、メインCPU2に出力される。このように、サブCPU3とメインCPU2の間では、シリアルクロックに同期したデータの送受信が行われる。
【0031】
上記のデータの送受信のタイミングは、CPUの特性などをもとに規定されている。具体的には、CSが”Low”に切り換わったときからシリアルクロック発生までの時間TSOは50μs以上であり、CSが”Low”に切り換わったときから1バイト分のシステムクロックを発生した時間TBOは5.2ms以下であり、システムクロックの終了から次のシステムクロックの発生までの時間TSは25μs以上であり、システムクロックの終了から次のシステムクロックの終了までの時間TBは5.2ms以下である。また、1ブロック目のデータ転送が完了し2ブロック目のデータ転送が開始するまでの時間および2ブロック目のデータ転送が完了し3ブロック目のデータ転送が開始するまでの時間TCSは100μs〜400ms、コマンドの転送完了から次のコマンドの転送が開始するまでの時間TCSは100μs〜500msであり、シリアルクロックの1周期分の時間は1.07μsである。以上のように、タイミングで駆動するデータ送受信システム1では、エラー判別時間は500msになり、受信完了時間が500msの間”High”であれば、メインCPU2は、転送エラーを検出し、コマンドの再送を行う。
【0032】
次に、上述したデータ送受信システムを適応した例について説明する。図6は、データ送受信システムを適応した電子機器10の内部構成を示すブロック図である。電子機器10は、第2のCPU12と第1のCPU11と第3のCPU13とを有する。第2のCPU12は、複数のIC14a〜14dと接続され、これらのIC14a〜14dを制御する。第3のCPU13はパラレル転送を行い、第2のCPU12はシリアル転送を行う。第1のCPU11はパラレル転送とシリアル転送の両方が可能であり、第2のCPU12と第1のCPU11との間のデータ転送を中継する。
【0033】
第2のCPU12と第1のCPU11との間は、上述したデータ送受信システムが適応されている。一般に、パラレル転送は、シリアル転送よりも転送速度が速い。そのため、第3のCPU13から第2のCPU12にデータを転送するときは、パラレル転送とシリアル転送との転送速度の違いを埋める必要がある。この第2のCPU12と第1のCPU11との間には、上述したデータ送受信システムが適応されており、一度に多くのデータが転送できるようになっている。そのため、パラレル転送とシリアル転送との転送速度の差が減少し、データ転送が安定する。
【0034】
なお、本発明は、上記実施の形態に限定されるものではなく、本発明の要旨を含む範囲での変形、改良は本発明に含まれるものとする。例えば、上記実施の形態において、データ長12バイトのコマンドを3つのブロックに分割するとしたが、コマンドのデータ長やブロックの個数は特に限定されるものではなく、任意のサイズのコマンドを任意の個数のブロックに分割してもよい。
【0035】
また、メインCPU2とサブCPU3とは、等価な2つのCPUとしてもよく、コマンドを送受信するのではなく、互いにデータを送受信するものとしてもよい。
【0036】
また、CPUの個数も特に限定されるものではなく、2つ以上のCPUを接続して、同じ手順でデータの送受信を行ってもよい。
【0037】
【発明の効果】
上述したように、本発明を適用したデータ送受信システムでは、送信側のチップは、送信するデータを複数のブロックに分割して送信する。送信側のチップは、全てのブロックの送信を完了すると、受信側のチップから送信される受信完了信号が通知されるまでの時間をカウントし、この時間が所定の長さを超えると転送エラーを検出する。送信側のチップは、転送エラーを検出すると、データの再送を行う。
【0038】
このように、本発明を適用したデータ送受信システムでは、転送エラーの検出に受信完了信号が通知されるまでの時間を利用するので、データ転送量が削減され、短い転送時間でエラーなくデータを転送することができる。
【0039】
また、本発明を適用したデータ送受信方法は、送信側のチップは、送信するデータを複数のブロックに分割して送信する。送信側のチップは、全てのブロックの送信を完了すると、受信側のチップから送信される受信完了信号が通知されるまでの時間をカウントし、この時間が所定の長さを超えると転送エラーを検出する。送信側のチップは、転送エラーを検出すると、データの再送を行う。
【0040】
このように、本発明を適用したデータ送受信システムでは、転送エラーの検出に受信完了信号が通知されるまでの時間を利用するので、データ転送量が削減され、短い転送時間でエラーなくデータを転送することができる。
【図面の簡単な説明】
【図1】本発明を適用したデータ送受信システムの構成を示す図である。
【図2】本発明を適用したデータ送受信システムの動作を説明する図である。
【図3】本発明を適用したデータ送受信システムの動作を説明する図である。
【図4】1ブロックのデータを送信するときの信号の変化を示す図である。
【図5】シリアルデータレジスタの構造を示す図である。
【図6】本発明を適用した電子機器の構成を示す図である。
【符号の説明】
1 データ送受信システム、2 メインCPU、3 サブCPU、4 シリアルバス、5 信号線、6 シリアルデータレジスタ
【発明の属する技術分野】
本発明は、チップ間でデータの送受信を行うためのデータ送受信システムおよびデータ送受信方法に関する。
【0002】
【従来の技術】
従来、複数のチップを内蔵する電子機器が存在し、このような電子機器の内部では、複数のチップが互いに通信を行っている。複数のチップが互いに通信をする場合、例えば、データをパケット化して転送する場合がある。パケット化とは、データを分割し、転送できる形式に変換することであり、分割したデータの先頭にスタートビット、終端にチェックサムを付属して、パケットを生成する。
【0003】
スタートビットは、データ転送の同期をとるための信号であり、受信側のチップは、スタートビットを検出すると、新しいデータが転送されることを認識する。また、チェックサムは、エラー検出のためのデータであり、送信するデータの和が記録されている。受信側のチップは、受信したデータの和とチェックサムの値を比較し、これらの値が一致しなかった場合ときに転送エラーを検出する。
【0004】
このように、データを分割して転送すると、一回の転送あたりのデータ量が小さくなり、転送エラーが減少するとともに、一つのデータが回線を占有することがなくなり、データの転送効率が上がる。
【0005】
【発明が解決しようとする課題】
しかしながら、データをパケット化すると、スタートビットとチェックサムとが付属されるのでスタートビットとチェックサムの分だけデータの容量が大きくなり、データ転送時間が長くなる。そのため、スタートビットとチェックサムを削減しデータの転送時間を短くする方法が考えられる。
【0006】
そこで、スタートビットとチェックサムを削減すると、転送エラーによってパケットが欠落したとき、パケットの順番は、欠落した分だけずれてしまう。これを解消するために、インジケータのようなパケットの順番を示すデータを付加し、パケットのずれを訂正できるようにしなければならない。
【0007】
しかし、インジケータのようなデータを付加すると、データを付加した分だけ転送するデータの容量が大きくなるので、スタートビットとチェックサムを削減してもデータの転送容量を削減させることができない。
【0008】
本発明は、上記課題に鑑みてなされたものであって、短い転送時間でエラーなくデータを転送するデータ送受信システムおよびデータ送受信方法に関する。
【0009】
【課題を解決するための手段】
上述した課題を解決するために、本発明にかかるデータ送受信システムは、第1のチップと第2のチップとの間でシリアル転送を行うデータ送受信システムにおいて、第1のチップは、送信する一連のデータを複数のブロックに分割する分割手段と、ブロックを第2のチップに送信する送信手段とを有し、第2のチップは、第1のチップから送信されるブロックを受信する受信手段と、分割手段によって分割された全てのブロックを受信したときに受信完了信号を第1のチップに通知する通知手段とを有し、第1のチップは、分割された複数のブロックの全てを送信手段により送信完了した時間から受信完了信号を受けるまでの受信完了時間を計測し、受信完了時間が所定の長さを超えると転送エラーを検出するエラー検出手段と、エラー検出手段により、エラーを検出すると、第2のチップに対して一連のデータを再送する再送手段とを有する。
【0010】
また、上述の目的を達成するために本発明にかかるデータ送受信方法は、第1のチップと第2のチップとの間でシリアル転送を行う際のデータ送受信方法であって、上記第1のチップが送信する一連のデータを複数のブロックに分割する分割工程と、第1のチップが第2のチップにブロックを送信する送信工程と、第2のチップが送信工程において送信されたブロックを受信する受信工程と、第2のチップが分割工程において分割された全てのブロックを受信したときに第1のチップに受信完了信号を通知する通知工程と、第1のチップが分割された複数のブロックの全てを送信工程によって送信完了した時刻から受信完了信号を受けるまでの受信完了時間を計測し、この時間が所定の長さを超えるとデータの転送エラーを検出するエラー検出工程と、第1のチップが上記エラー検出工程によってエラー検出すると、第2のチップに対して一連のデータの再送を行う再送工程とを有することを特徴とする。
【0011】
【発明の実施の形態】
以下、本発明を適用したデータ送受信システム1について説明する。本発明におけるデータ送受信システム1は、チップ間でシリアル転送を行うためのシステムである。このデータ送受信システム1では、送信するデータを複数のブロックに分割して転送する。エラー検出は、データの転送完了時間をもとに行われる。送信側のチップは、すべてのデータの出力が完了すると、受信側からの受信完了信号が返信されるまでの時間をカウントし、この時間が所定の時間より長い場合にエラーを検出する。データ送受信システム1では、データを複数のブロックに分割し、一度に転送するデータのデータ長を短くしてデータの転送エラーを減少させるとともに、データの転送完了時間をもとにエラーを検出するため、エラー検出用の制御信号を少なくし、転送データ量を削減することができる。
【0012】
図1は、データ送受信システム1の構成を示している。図1に示すデータ送受信システム1は、メインCPU2とサブのサブCPU3とを有し、サブCPU3はメインCPU2により制御されている。メインCPU2とサブCPU3とは、シリアルバス4によって接続されている。シリアルバス4は、割り込み発生を通知する信号CS、シリアルクロックSCK、メインCPU2からサブCPU3に伝送されるデータ、サブCPU3からメインCPU2に転送されるデータを転送する。メインCPUからサブCPUへ転送されるデータを入出力する端子をSIと呼び、サブCPUからメインCPUへ転送されるデータを入出力するための端子をSOと呼ぶ。また、サブCPU3とメインCPU2は、サブCPU3のデータ受信完了を示す信号OPTIONを転送する信号線5が接続されている。
【0013】
サブCPU3は、メインCPU2からのコマンドを受信し、メインCPU2からの制御を受ける。サブCPU3は、メインCPU2から送信されるデータSOを入力する。サブCPU3は、シリアル通信で送受信されるデータを格納するためのシリアルデータレジスタ6を備えており、シリアルクロックの立下りに同期して、メインCPU2から出力される信号をシリアルデータレジスタ6に格納する。また、サブCPU3は、データをシリアルデータレジスタ6に格納し、シリアルクロックの立ち上がりに同期してシリアルデータレジスタ6の値をメインCPU2に出力する。
【0014】
また、サブCPU3は、サブCPU3がデータの通信状態であるか否を示す信号OPTIONを出力しており、データの通信可能状態であるときは、OPTIONの出力を”Low”にし、データの通信状態であるときは、OPTIONの出力を”High”にする。
【0015】
メインCPU2は、サブCPU3を制御するCPUであり、サブCPU3に対してコマンドを出力する。メインCPU2がコマンドを出力するときの手順は以下のようになる。メインCPU2は、まず、割り込み信号CSを”Low”にする。そして、メインCPU2は、コマンドを転送できる形式に変換する。変換されたコマンドは、3つブロックに分割されており、コマンドの11バイト目にはチェックサムが挿入されている。そして、メインCPU2は、OPTIONの出力を検出し、OPTIONの出力が”Low”であれば、信号線SIを介してコマンドを1ブロックづつ出力する。
【0016】
次に、図2、図3を参照して、本発明を適用したデータ送受信システム1の動作について説明する。なお、図2、図3に示すDATAとは、データの転送が行われているタイミングを示しており、DATAに描かれた一本のパルスは、1バイトのデータに相当する。
【0017】
図2は、データ転送が正常に行われたときの信号CS、OPTIONの値を示している。図2に示すように、メインCPU2がサブCPU3にコマンドを出力する際、メインCPU2は、CSの出力を”Low”にし、サブCPU3に対して割り込み要求を行う。割り込み要求を受けたサブCPU3は、転送されたデータを格納するためのシリアルデータレジスタ6を用意する。そして、サブCPU3は、OPTIONの出力を”High”に切り換え、通信状態であることをメインCPU2に通知する。OPTIONの出力が”High”になると、メインCPU2は、出力するコマンドの形式を変換する。コマンド形式の変換方法の一例を説明する。例えば、コマンドのデータ長が12バイトのとき、メインCPU2は、コマンドを4バイトづつの3つのブロックに分割し、コマンドの11バイト目にチェックサムを挿入する。チェックサムは、例えば、コマンドの0バイト目から10バイト目までの値の和とするが、チェックサムの計算方法は特に限定されない。
【0018】
コマンドの形式を変換すると、メインCPU2は、端子SIを介して、コマンドをサブCPU3に出力する。サブCPU3は、入力したコマンドをシリアルデータレジスタ6に格納するとともに、端子SOを介してシリアルデータレジスタ6に格納されたデータをメインCPU2に出力する。
【0019】
メインCPU2とサブCPU3とのデータ転送は、1ブロックごとに行われる。メインCPU2は、1ブロックのデータ出力を開始するとき、CSの出力を”Low”にし、1ブロックのデータ出力が完了するとCSの出力を”High”にする。
【0020】
サブCPU3は、メインCPU2から出力された3つのブロックを受信すると、3ブロック目のデータに記録されたチェックサムの値を読み出し、0バイト目から11バイト目までの値の合計と比較する。そして、0バイト目から11バイト目までの値の合計とチェックサムの値とが一致すると、サブCPU3は、OPTIONの出力を”Low”に切り換え、データの受信完了をメインCPU2に通知する。
【0021】
メインCPU2は、最後のブロックを出力してからOPTIONの値が”Low”になるまでの時間(以下、受信完了時間と呼ぶ)を計測し、受信完了時間が所定の範囲内であれば、データ転送処理を終了する。
【0022】
データ転送が正常に完了しない場合には、データ送受信システム1の動作は、以下のようになる。図3は、データ転送が正常に完了しない場合の信号CS、OPTIONの値を示した図である。図3に示すように、メインCPU2とサブCPU3とのデータ転送は、1ブロックごとに行われる。メインCPU2は、1ブロックのデータ出力を開始するとき、CSの出力を”Low”にし、1ブロックのデータ出力が完了するとCSの出力を”High”にする。
【0023】
メインCPU2は、サブCPU3に3ブロックのデータを出力する。このとき、メインCPU2から出力されたブロックがサブCPU3に到達しなかった場合、サブCPU3は、OPTIONの出力を”High”の状態で継続し、データの受信が完了していないことをメインCPUに通知する。
【0024】
また、サブCPU3は、メインCPU2から出力されたすべてのブロックを受信すると、受信したデータの0バイト目から10バイト目までの和を求め、チェックサムと比較する。ここで、データの0バイト目から10バイト目までの値の和がチェックサムと一致しない場合には、OPTIONの出力を”High”の状態で継続する。
【0025】
メインCPU2は、最後のブロックを出力してからOPTIONの値が”Low”になるまでの受信完了時間を計測する。ここで、サブCPU3がすべてのブロックを受信できなかった場合やチェックサムの値が一致しなかった場合には、OPTIONの値は、”High”のまま出力される。メインCPU2は、受信完了時間がエラー判別時間を超えると、転送エラーを検出する。メインCPU2は、転送エラーを検出すると、データの再送を行う。なお、エラー判別時間は、システムにより異なり、各々のデータ送受信システムに設定されているものとする。
【0026】
本発明では、データを3つのブロックに分割したため、一度に転送するデータの量が少なくなり、データの転送エラーが減少する。また、データ転送の時間をもとにエラーの検出を行うので、データを複数のブロックに分割しても、各ブロックにエラー検出用の制御情報を挿入する必要はなく、効率よくデータの転送ができる。
【0027】
次に、データ送受信システム1が1ブロックのデータを転送するときの動作について説明する。図4は、メインCPU2からサブCPU3へコマンドを転送するときのCS、SCK、SI、SOの値を示している。上述したように、CSはメインCPU2からサブCPU3に割り込み要求を示す信号、SCKはシリアル通信の基準となるシリアルクロック、SIはメインCPU2からサブCPU3に転送されるデータの入出力端子、SOはサブCPU3からメインCPU2に転送されるデータの入出力端子である。
【0028】
まず、メインCPU2は、CSを”Low”にし、サブCPU3に対して割り込みを要求する。そして、メインCPU2は、シリアルクロックSCKおよびデータSIをサブCPU3に転送する。1ブロックのデータは4バイトのデータから構成され、1バイトのデータは8ビットのデータから構成される。シリアルクロックは、連続した8回のパルスを所定の間隔Tsをあけて4回発生し、1ブロックのデータを転送させる。
【0029】
メインCPU2からサブCPU3に転送されるデータは、シリアルクロックの立下りに同期して転送され、サブCPU3からメインCPU2に転送されるデータは、シリアルクロックSCKの立ち上がりに同期して転送される。
【0030】
サブCPU3には、図5に示すようなシリアルデータを格納するためのシリアルデータレジスタ6が設けられている。サブCPU3は、入力した信号SIの1ビットをシリアルデータレジスタ6の最上位ビット(MSB)に格納する。また、シリアルデータレジスタ6の最下位ビット(LSB)の値は、シリアルクロックの立下りに同期して、メインCPU2に出力される。このように、サブCPU3とメインCPU2の間では、シリアルクロックに同期したデータの送受信が行われる。
【0031】
上記のデータの送受信のタイミングは、CPUの特性などをもとに規定されている。具体的には、CSが”Low”に切り換わったときからシリアルクロック発生までの時間TSOは50μs以上であり、CSが”Low”に切り換わったときから1バイト分のシステムクロックを発生した時間TBOは5.2ms以下であり、システムクロックの終了から次のシステムクロックの発生までの時間TSは25μs以上であり、システムクロックの終了から次のシステムクロックの終了までの時間TBは5.2ms以下である。また、1ブロック目のデータ転送が完了し2ブロック目のデータ転送が開始するまでの時間および2ブロック目のデータ転送が完了し3ブロック目のデータ転送が開始するまでの時間TCSは100μs〜400ms、コマンドの転送完了から次のコマンドの転送が開始するまでの時間TCSは100μs〜500msであり、シリアルクロックの1周期分の時間は1.07μsである。以上のように、タイミングで駆動するデータ送受信システム1では、エラー判別時間は500msになり、受信完了時間が500msの間”High”であれば、メインCPU2は、転送エラーを検出し、コマンドの再送を行う。
【0032】
次に、上述したデータ送受信システムを適応した例について説明する。図6は、データ送受信システムを適応した電子機器10の内部構成を示すブロック図である。電子機器10は、第2のCPU12と第1のCPU11と第3のCPU13とを有する。第2のCPU12は、複数のIC14a〜14dと接続され、これらのIC14a〜14dを制御する。第3のCPU13はパラレル転送を行い、第2のCPU12はシリアル転送を行う。第1のCPU11はパラレル転送とシリアル転送の両方が可能であり、第2のCPU12と第1のCPU11との間のデータ転送を中継する。
【0033】
第2のCPU12と第1のCPU11との間は、上述したデータ送受信システムが適応されている。一般に、パラレル転送は、シリアル転送よりも転送速度が速い。そのため、第3のCPU13から第2のCPU12にデータを転送するときは、パラレル転送とシリアル転送との転送速度の違いを埋める必要がある。この第2のCPU12と第1のCPU11との間には、上述したデータ送受信システムが適応されており、一度に多くのデータが転送できるようになっている。そのため、パラレル転送とシリアル転送との転送速度の差が減少し、データ転送が安定する。
【0034】
なお、本発明は、上記実施の形態に限定されるものではなく、本発明の要旨を含む範囲での変形、改良は本発明に含まれるものとする。例えば、上記実施の形態において、データ長12バイトのコマンドを3つのブロックに分割するとしたが、コマンドのデータ長やブロックの個数は特に限定されるものではなく、任意のサイズのコマンドを任意の個数のブロックに分割してもよい。
【0035】
また、メインCPU2とサブCPU3とは、等価な2つのCPUとしてもよく、コマンドを送受信するのではなく、互いにデータを送受信するものとしてもよい。
【0036】
また、CPUの個数も特に限定されるものではなく、2つ以上のCPUを接続して、同じ手順でデータの送受信を行ってもよい。
【0037】
【発明の効果】
上述したように、本発明を適用したデータ送受信システムでは、送信側のチップは、送信するデータを複数のブロックに分割して送信する。送信側のチップは、全てのブロックの送信を完了すると、受信側のチップから送信される受信完了信号が通知されるまでの時間をカウントし、この時間が所定の長さを超えると転送エラーを検出する。送信側のチップは、転送エラーを検出すると、データの再送を行う。
【0038】
このように、本発明を適用したデータ送受信システムでは、転送エラーの検出に受信完了信号が通知されるまでの時間を利用するので、データ転送量が削減され、短い転送時間でエラーなくデータを転送することができる。
【0039】
また、本発明を適用したデータ送受信方法は、送信側のチップは、送信するデータを複数のブロックに分割して送信する。送信側のチップは、全てのブロックの送信を完了すると、受信側のチップから送信される受信完了信号が通知されるまでの時間をカウントし、この時間が所定の長さを超えると転送エラーを検出する。送信側のチップは、転送エラーを検出すると、データの再送を行う。
【0040】
このように、本発明を適用したデータ送受信システムでは、転送エラーの検出に受信完了信号が通知されるまでの時間を利用するので、データ転送量が削減され、短い転送時間でエラーなくデータを転送することができる。
【図面の簡単な説明】
【図1】本発明を適用したデータ送受信システムの構成を示す図である。
【図2】本発明を適用したデータ送受信システムの動作を説明する図である。
【図3】本発明を適用したデータ送受信システムの動作を説明する図である。
【図4】1ブロックのデータを送信するときの信号の変化を示す図である。
【図5】シリアルデータレジスタの構造を示す図である。
【図6】本発明を適用した電子機器の構成を示す図である。
【符号の説明】
1 データ送受信システム、2 メインCPU、3 サブCPU、4 シリアルバス、5 信号線、6 シリアルデータレジスタ
Claims (4)
- 第1のチップと第2のチップとの間でシリアル転送を行うデータ送受信システムにおいて、
上記第1のチップは、
送信する一連のデータを複数のブロックに分割する分割手段と、
上記ブロックを上記第2のチップに送信する送信手段と
を有し、
上記第2のチップは、
上記第1のチップから送信されるブロックを受信する受信手段と、
上記分割手段によって分割された全てのブロックを受信したときに受信完了信号を上記第1のチップに通知する通知手段と
を有し、
上記第1のチップは、上記分割された複数のブロックの全てを上記送信手段により送信完了した時間から上記受信完了信号を受けるまでの受信完了時間を計測し、上記受信完了時間が所定の長さを超えると転送エラーを検出するエラー検出手段と、
上記エラー検出手段により、エラーを検出すると、上記第2のチップに対して上記一連のデータを再送する再送手段と
を有することを特徴とするデータ送受信システム。 - 上記一連のデータの長さは12バイトであり、上記分割手段は、上記一連のデータを長さ4バイトの3つのブロックに分割することを特徴とする請求項1記載のデータ送受信システム。
- 第1のチップと第2のチップとの間でシリアル転送を行う際のデータ送受信方法であって、
上記第1のチップが送信する一連のデータを複数のブロックに分割する分割工程と、
上記第1のチップが上記第2のチップに上記ブロックを送信する送信工程と、
上記第2のチップが上記送信工程において送信されたブロックを受信する受信工程と、
上記第2のチップが上記分割工程において分割された全てのブロックを受信したときに上記第1のチップに受信完了信号を通知する通知工程と、
上記第1のチップが上記分割された複数のブロックの全てを上記送信工程によって送信完了した時刻から上記受信完了信号を受けるまでの受信完了時間を計測し、この時間が所定の長さを超えるとデータの転送エラーを検出するエラー検出工程と、
上記第1のチップが上記エラー検出工程によってエラー検出すると、上記第2のチップに対して上記一連のデータの再送を行う再送工程と
を有することを特徴とするデータ送受信方法。 - 上記一連のデータの長さは12バイトであり、上記分割工程は、上記一連のデータを長さ4バイトの3つのブロックに分割することを特徴とする請求項3記載のデータ送受信方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002223993A JP2004064699A (ja) | 2002-07-31 | 2002-07-31 | データ送受信システム、およびデータ送受信方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002223993A JP2004064699A (ja) | 2002-07-31 | 2002-07-31 | データ送受信システム、およびデータ送受信方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004064699A true JP2004064699A (ja) | 2004-02-26 |
Family
ID=31943605
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002223993A Withdrawn JP2004064699A (ja) | 2002-07-31 | 2002-07-31 | データ送受信システム、およびデータ送受信方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004064699A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015076009A1 (ja) * | 2013-11-25 | 2015-05-28 | 株式会社村田製作所 | 高周波装置及び該高周波装置の制御方法 |
-
2002
- 2002-07-31 JP JP2002223993A patent/JP2004064699A/ja not_active Withdrawn
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015076009A1 (ja) * | 2013-11-25 | 2015-05-28 | 株式会社村田製作所 | 高周波装置及び該高周波装置の制御方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8694710B2 (en) | Conversion of a two-wire bus into a single-wire bus | |
US7079528B2 (en) | Data communication method | |
US7243173B2 (en) | Low protocol, high speed serial transfer for intra-board or inter-board data communication | |
US5933435A (en) | Optimized method of data communication and system employing same | |
KR100881191B1 (ko) | 멀티 프로토콜 씨리얼 인터페이스 장치 및 그에 따른soc 장치 | |
US20050165989A1 (en) | I2C communication system and method enabling bi-directional communications | |
US5748684A (en) | Resynchronization of a synchronous serial interface | |
US7493423B2 (en) | Data transfer control device and electronic instrument | |
JP2544385B2 (ja) | 通信制御装置 | |
US20070061496A1 (en) | Electronic apparatus provided with electronic devices for serial communication and serial communication method | |
US7321596B2 (en) | Packet control system and communication method | |
US7342984B1 (en) | Counting clock cycles over the duration of a first character and using a remainder value to determine when to sample a bit of a second character | |
US20090063736A1 (en) | Low power digital interface | |
JP2004064699A (ja) | データ送受信システム、およびデータ送受信方法 | |
WO2004064351A1 (ja) | 非同期伝送方法及びその回路 | |
AU8100287A (en) | Data transfer system having transfer discrimination circuit | |
US20230077161A1 (en) | De-skew circuit, de-skew method, and receiver | |
EP3671720B1 (en) | Real-time on-chip data transfer system | |
US20230199306A1 (en) | Communication device and communication system | |
KR100907805B1 (ko) | 에이엑스아이 매트릭스 시스템과 에이에이치비 마스터시스템간의 데이터 전송을 위한 랩퍼 장치 및 제어 방법 | |
US11960434B2 (en) | Communication device, communication system, and communication method for transmitting data blocks including signal groups conforming to a serial peripheral interface | |
CN111352893B (zh) | 一种fpga和stm32单片机的通信方法 | |
KR100427764B1 (ko) | 서로 다른 데이터 버스를 가지는 디바이스들의 정합 장치 | |
SU1569837A1 (ru) | Устройство дл сопр жени магистрали с ЦВМ | |
JP2944412B2 (ja) | データ転送方法およびデータ転送方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20051004 |