(58)【調査した分野】(Int.Cl.,DB名)
シリアル通信方式を用いて外部との通信を行う複数台の端末と、それぞれの前記端末とデータの送受信を行う1台のホストを接続し、それぞれの前記端末が同時に送信した同一内容の端末データのうちの最初に到着した前記端末データのみを前記ホストに送信し、前記端末データに応じて前記ホストが返送したホストデータを受信し、受信した当該ホストデータを複製して分配出力するデータ中継手段と、
それぞれの前記端末に対応して配備され、前記データ中継手段が分配出力する前記ホストデータを蓄積し、送信指示を受けると、蓄積した前記ホストデータを、接続している前記端末に送信するバッファメモリ手段と
を備え、
前記データ中継手段は、分配出力した前記ホストデータがそれぞれの前記端末に対応する前記バッファメモリ手段に蓄積され、かつ、前記端末データが全ての前記端末から到着したことを識別すると、前記バッファメモリ手段に前記送信指示を出力する
ことを特徴とするデータ入出力制御装置。
前記ホストデータ送信制御部は、前記送信指示を前記バッファメモリ手段に出力すると、前記端末データ受信完了通知と前記分配出力完了通知を削除し、前記複数台の端末のそれぞれの端末からの前記端末データの到着に関する情報のリセットを指示するリセット通知を前記端末データ制御回路に出力する
ことを特徴とする請求項4に記載のデータ入出力制御装置。
前記複数台の端末のそれぞれの端末に対応して配備された前記バッファメモリ手段に、対応する前記端末の動作速度の動作クロック信号をそれぞれ供給する動作クロック供給回路を更に備え、
前記ホストとの間の動作速度を、前記端末の動作速度の最も遅い動作速度に設定し、
前記バッファメモリ手段は、前記送信指示を受けると、蓄積した前記ホストデータを、接続している前記端末の動作速度に対応する動作クロック信号に乗せ換えて送信する
ことを特徴とする請求項1乃至請求項5のいずれかの請求項に記載のデータ入出力制御装置。
シリアル通信方式を用いて外部との通信を行う複数台の端末のそれぞれの端末が同時に送信する同一内容の端末データのうちの最初に到着した前記端末データのみをホストに送信し、
前記端末データに応じて前記ホストが返送したホストデータを受信し、受信した当該ホストデータを複製して分配出力し、
それぞれの前記端末に対応して配備されたバッファメモリに、分配出力された前記ホストデータを蓄積し、
分配出力した前記ホストデータをそれぞれの前記端末に対応する前記バッファメモリに蓄積し、かつ、前記端末データが全ての前記端末から到着したことを識別すると、前記バッファメモリに蓄積している前記ホストデータを、接続している前記端末に送信する
ことを特徴とするデータ入出力制御方法。
それぞれの前記バッファメモリに蓄積している前記ホストデータを接続している前記端末に送信すると、出力された前記端末データ受信完了通知と前記分配出力完了通知を削除し、前記複数台の端末のそれぞれの端末からの前記端末データの到着に関する情報をリセットする
ことを特徴とする請求項8に記載のデータ入出力制御方法。
【背景技術】
【0002】
一般に、電子機器に実装された基板内及び基板間におけるデバイス間での信号の通信方式として、I2C(Inter-Integrated Circuit)通信方式やSPI(Serial Peripheral Interface)通信方式などのシリアル通信方式が広く利用されている。また、このようなシリアル通信方式はマスタ−スレーブ間通信においても使用されており、この場合は少なくとも一つ以上の端末と一つ以上のホストとの組み合わせによって構成される。例えば、大規模システムを扱う基板に実装された端末側のデバイスである複数のDSP(Digital Signal Processor)が、ホスト側のデバイスである同一データを保持している複数のROM(Read Only Memory)から起動データを読み出す通信形態が考えられる。
【0003】
デバイス間でシリアル通信を行うデバイスの組み合わせが複数存在し、それぞれが1対1で同一データを通信するような場合、低消費電力化、回路規模削減、部品点数削減の観点から、ホスト側のデバイスの数を削減することが望ましいとされている。
【0004】
通常、シリアル通信方式においてデバイスを削減する方法としては、デバイス間のシリアル接続をバス接続方式とすることで実現している。バス接続方式では、1台のホストに対して複数台の端末が、一つの伝送路上で接続されている状態となっており、ホストは各端末と順番に通信を行う。
【0005】
このようなシリアル通信を用いた通信システムが特許文献1乃至特許文献3に開示されている。
【0006】
特許文献1は、センサとマイクロプロセッサとの間の通信をI2C通信のみならずSPI通信も可能なように構築した通信システムに関する技術である。I2CデバイスおよびSPIデバイスの双方をマスタとした通信システムでは、I2C通信とSPI通信とが非同期で動作するため、I2C通信の信号とSPI通信の信号とが衝突するおそれがある。そこで、特許文献1は、I2CデバイスおよびSPIデバイスの双方をマスタとした通信システムにおいて、選択回路を配備して、I2C通信の信号とSPI通信の信号とが衝突するおそれがないようにした通信システムを開示する。
【0007】
特許文献2は、マスタから複数のスレーブに対して、I2Cバスを用いたシリアル通信によって発行された同時複数制御を指示するコマンドによって、複数のスレーブを同時制御可能にしたシリアル通信システムを開示する。特許文献2が開示する技術によれば、複数の機能から成る制御プログラムを各スレーブに予め記憶しておき、マスタが複数のスレーブに対して、実行すべき制御プログラムの機能に対応するプログラムステップを、シリアル通信を介して指定する。そして、複数のスレーブの各々が指定されたプログラムステップを同時に実行することで、マスタが複数のスレーブに対して実行させるべき機能を同時に制御することができる。
【0008】
特許文献3は、親ノードと、通信回線を介して親ノードにマルチドロップ接続されてコマンド信号を受信する複数の子ノードとがポーリング/セレクティング方式でシリアル通信を行う技術を開示する。特許文献3は、親ノードと通信速度が互いに異なる複数の子ノードとが効率よく通信を行うことができる通信システムを実現する。特許文献3が開示する技術では、親ノードが各子ノードの通信速度に関する情報を記憶し、通信速度の速い子ノード宛の信号から順に高い優先度を予め設定する。そして、親ノードがバッファに格納された送信待ち信号に対して優先度に基づいて設定された送信順位に従って信号を送信することで、通信速度の速い子ノード宛の信号が優先的に送信されて効率的な通信が行われる。
【発明を実施するための形態】
【0020】
本発明を実施するための形態の概要を説明する。
【0021】
本発明を実施するための形態は、同一のシリアル通信方式を用いて外部との通信を行う複数台の端末と1台のホストの間にデータ中継装置としてのデータ入出力制御装置を配置して、それらの端末とホストの間の通信を実行する。シリアル通信方式としては、送信線と受信線の2本のデータ線を有するSPI方式の場合について説明する。
【0022】
また、本発明を実施するための形態において適用される通信では、すべての端末からホストに同一内容のデータが送られ、ホストからの応答データもすべての端末に対して同一内容のデータが返送される。例えば、電源起動等で複数の端末がホストから起動データ(同一内容のデータ)を要求する場合が想定される。
【0023】
なお、実施の形態は例示であり、開示の装置及び方法は、以下の実施の形態の構成には限定されない。また、図に付した参照符号は理解を助けるための一例として便宜上付記したものであり、なんらの限定を意図するものではない。さらに、図面中の矢印の向きは、一例を示すものであり、ブロック間の信号の向きを限定するものではない。なお、図中の一点鎖線は装置内で伝達される制御信号を示している。
【0024】
(第1の実施形態)
図2を参照して第1の実施形態のデータ入出力制御装置の構成を説明する。
【0025】
本実施形態のデータ入出力制御装置30は、シリアル通信方式を用いて外部との通信を行う複数台の端末10と、複数台の端末10のそれぞれの端末とデータの送受信を行う1台のホスト20と接続する。なお、複数台の端末10のそれぞれを区別する必要がある場合は、端末11、12乃至1nとして説明する。
【0026】
データ入出力制御装置30は、データ中継手段31とバッファメモリ手段32を含んで構成される。
【0027】
データ中継手段31は複数台の端末10のそれぞれの端末11、12乃至1nとシリアル通信線によって接続される。また、データ中継手段31はホスト20とシリアル通信線によって接続される。
【0028】
データ中継手段31は、複数台の端末10のそれぞれの端末11、12乃至1nが同時に送信した同一内容の端末データのうちの最初に到着した端末データのみをホスト20に送信する。ここで、それぞれの端末11、12乃至1nは端末データを同時に送信するが、送信処理の端末毎のばらつきや、端末が実装されている位置によって端末データがデータ中継手段31に到着する時間が若干異なる。このように到着時間が若干異なる端末データのうちの最初に到着した端末データのみをホスト20に送信する。
【0029】
そして、データ中継手段31は、この端末データに応じてホスト20が返送したホストデータを受信し、受信した当該ホストデータを複製して分配出力する。
【0030】
バッファメモリ手段32は、複数台の端末10のそれぞれの端末11、12乃至1nに対応して配備され、データ中継手段31が分配出力するホストデータを蓄積する。また、バッファメモリ手段32は、送信指示を受けると、蓄積したホストデータを、接続している端末11、12乃至1nに送信する。
【0031】
ここで、データ中継手段31は、分配出力したホストデータがそれぞれの端末11、12乃至1nに対応するバッファメモリ手段32に蓄積され、かつ、端末データが複数台の端末10の全ての端末11、12乃至1nから到着したことを識別すると、バッファメモリ手段32に送信指示を出力する。
【0032】
次に、
図3を参照して第1の実施形態のデータ入出力制御方法の動作を説明する。
【0033】
第1の実施形態のデータ入出力制御方法は、第1の実施形態のデータ入出力制御装置30が
図3の各動作ステップを実行することで実現される。
【0034】
シリアル通信方式を用いて外部との通信を行う複数台の端末のそれぞれの端末が同時に送信する同一内容の端末データのうちの最初に到着した端末データのみをホストに送信する(S101)。
【0035】
この端末データに応じてホストが返送したホストデータを受信し、受信した当該ホストデータを複製して分配出力する(S102)。
【0036】
それぞれの端末に対応して配備されたバッファメモリに、分配出力されたホストデータを蓄積する(S103)。
【0037】
分配出力したホストデータをそれぞれの端末に対応するバッファメモリに蓄積し、かつ、端末データが複数台の端末の全ての端末から到着したことを識別すると、バッファメモリに蓄積しているホストデータを、接続している端末に送信する(S104)。
【0038】
本実施形態のデータ入出力制御装置は、複数台の端末のそれぞれの端末が同時に送信した端末データの中から最初に到着したいずれか一つの端末データをホストに送信する。そして、その端末データに応じてホストが返送したホストデータを受信して複製し、それぞれの端末に対応して配備されたバッファメモリに蓄積する。そして、ホストデータをそれぞれの端末に送信するタイミングを確認して、バッファメモリを解放する。ホストデータをそれぞれの端末に送信するタイミングとは、ホストデータを各バッファメモリに蓄積し、しかも、到着時間が若干異なる端末データが全ての端末から到着したことを識別したタイミングである。
【0039】
このように、本実施形態では複数台の端末と1台のホストが同一内容のデータでシリアル通信を行う環境において、各端末による逐次処理を行うことなく、ホストと各端末の相互間の通信における全体としての処理時間を最小限に抑えることができる。
【0040】
(第2の実施形態)
次に、
図4乃至
図8を参照して第2の実施形態を説明する。
【0041】
図4は、本発明の第2の実施形態のデータ入出力制御装置の構成例を示すブロック図である。
【0042】
第2の実施形態のデータ入出力制御装置40は、第1の実施形態のデータ入出力制御装置30と同様に、シリアル通信方式を用いて外部との通信を行う複数台の端末10と、それぞれの端末とデータの送受信を行う1台のホスト20と接続する。なお、複数台の端末10のそれぞれを区別する必要がある場合は、端末11、12乃至1nとして説明する。
【0043】
データ入出力制御装置40は、端末データ制御回路41、ホストデータ制御回路42およびバッファメモリ回路43を含んで構成される。ここで、端末データ制御回路41およびホストデータ制御回路42は、第1の実施形態におけるデータ中継手段31に対応する構成となっている。
【0044】
端末データ制御回路41は、複数台の端末10のそれぞれの端末11、12乃至1nとシリアル通信線の受信データラインによって接続され、ホスト20とはシリアル通信線の送信データラインによって接続される。端末データ制御回路41は、複数台の端末10のそれぞれの端末11、12乃至1nから同一内容の端末データを非同期で受信し、最先着の端末データをホスト20に送信する。ここで、「非同期で受信」とは、それぞれの端末11、12乃至1nは端末データを同時に送信するが、端末データ制御回路41に到着する時間にばらつきがあることを意味する。これは、前述したように、送信処理の端末毎のばらつきや、端末が実装されている位置によって端末データの到着時間が若干異なることに起因するものである。
【0045】
また、端末データ制御回路41は、それぞれの端末11、12乃至1nが送信した端末データの到着状況を識別し、全ての端末11、12乃至1nからの端末データの受信完了を確認すると受信完了通知をホストデータ制御回路42に出力する。
【0046】
ホストデータ制御回路42は、ホスト20とシリアル通信線の受信データラインによって接続され、端末データに応じてホスト20が返送するホストデータを受信する。
【0047】
ホストデータ制御回路42は、ホスト20から受信したホストデータを、複数台の端末10の数に応じて複製し、同一内容のホストデータを分配出力する。
【0048】
バッファメモリ回路43は、複数台の端末10のそれぞれの端末11、12乃至1nに対応して配備されたFIFO(First In First Out)バッファを備えて構成される。各FIFOバッファはホストデータ制御回路42に接続され、ホストデータ制御回路42が分配出力するホストデータは、個々のFIFOバッファに格納・蓄積される。
【0049】
ホストデータ制御回路42は、分配出力したホストデータがそれぞれのFIFOバッファに蓄積されたこと、および端末データの受信完了通知を受け取ったことを条件に、バッファメモリ回路43に対して送信指示を出力する。なお、ホストデータ制御回路42は、ホストデータを分配出力したことを以てホストデータがそれぞれのFIFOバッファに蓄積されたと判断してかまわない。または、バッファメモリ回路43が各FIFOバッファの蓄積状況を確認し、全てのFIFOバッファの蓄積データ量が同一量増加したことを以て、ホストデータ制御回路42に蓄積完了通知を出すように構成してもかまわない。
【0050】
送信指示を受けたバッファメモリ回路43は、個々のFIFOバッファに蓄積したホストデータを、シリアル通信線の送信データラインによって接続されているそれぞれの端末11、12乃至1nに送信する。
【0051】
このように、データ入出力制御装置40は、端末データ制御回路41に最先着した端末データをホスト20に送信し、その端末データに対する返送データであるホストデータを受け取ると、その複製を生成して分配出力する。分配出力されたホストデータは各端末に対応するFIFOバッファに一旦蓄積される。そして、複数台の端末10の全ての端末11、12乃至1nから端末データを受信したことを確認すると、FIFOバッファを解放して、蓄積されているホストデータを一斉に各端末に送信する。
【0052】
上述したデータ入出力制御装置40の利用例を簡単に説明する。
【0053】
電源起動時に複数台の端末10のそれぞれの端末11、12乃至1nが同時に通信を開始し、ホスト20に対してホスト20が備えるメモリのアドレス100番地から101番地、102番地・・・と順番にデータ読み出しを行う場合を例にして説明する。
【0054】
起動後、各端末はリードフラグとアドレス情報(100番地)を含んだ端末データをホスト20に対して送信する。端末データ制御回路41は各端末から受信した端末データの中で最先着の端末データをそのままホスト20へ送信する。また、端末データ制御回路41は各端末が送信した端末データの到着数が、接続されている全ての端末数になるまでカウントし、到着数=端末数になった時にホストデータ制御回路42へ端末データ受信完了通知を出力する。なお、最先着以外の端末データは廃棄される。
【0055】
ホスト20は、最先着で受信した端末データに基づいた処理を実行し、指定されたメモリのアドレス(100番地)に格納されたデータを読み出して、ホストデータとして端末側に返送する。
【0056】
ホストデータ制御回路42は、ホスト20から受信したホストデータを複数台の端末10の数に応じて複製して分配出力する。分配出力されたホストデータは、ホストデータ制御回路42と接続されているバッファメモリ回路43の各FIFOバッファに蓄積される。ホストデータ制御回路42は、全てのFIFOバッファへのホストデータの蓄積完了と端末データ制御回路41からの端末データ受信完了通知の受信をもって送信指示を出力して全てのFIFOバッファを解放する。これにより、FIFOバッファに蓄積されたホストデータが各端末に送信される。
【0057】
複数の端末10やホスト20のそれぞれの自身の視点から見ると、上記の動作は通常の同期式シリアル通信を行っているのと変わらない。そして、各端末はリードフラグと次に読み出すべきアドレス情報(101番地)を含んだ端末データをホスト20に対して送信する動作を、必要データの読み出しが完了するまで順次繰り返して実行する。
【0058】
このように、本実施形態では、ホスト20はデータ入出力制御装置40を介することにより、接続している端末の数に依存することなく、複数台の端末10の中の一つの端末のデータについて処理を行えば良い。そのため、本実施形態のように構成することで、ホストデータの複製やFIFOバッファの解放のタイミング調整の時間を鑑みても、複数台の端末10と1台のホスト20との間の通信処理時間を大幅に短縮することができる。
【0059】
続いて、端末データ制御回路41とホストデータ制御回路42について説明する。
【0060】
図5は、データ入出力制御装置40の端末データ制御回路41の構成例を示すブロック図である。
【0061】
端末データ制御回路41は、端末データインタフェース部411、ホストデータインタフェース部412、端末データ選択部413および端末データ受信完了通知部414を含む構成になっている。
【0062】
端末データインタフェース部411は、複数台の端末10のそれぞれの端末11、12乃至1nに対応して配備され、シリアル通信線の受信データラインによって各端末と接続される。端末データインタフェース部411は、対応する端末から受信した端末データを端末データ選択部413に出力する。また、端末データインタフェース部411は、対応する端末からの端末データを受信したときに、当該端末が送信した端末データが到着したことを示す端末データ受信通知を端末データ受信完了通知部414に出力する。
【0063】
なお、前述したように、起動時間の端末毎のばらつきや、端末の実装位置によって、各端末が送信する端末データの到着時間にはばらつきがある。
【0064】
ホストデータインタフェース部412は、シリアル通信線の送信データラインによってホスト20と接続される。
【0065】
端末データ選択部413は、複数台の端末10のそれぞれの端末11、12乃至1nから受信した端末データを入力し、そのうちの一つを選択してホストデータインタフェース部412を介してホスト20に出力する。前述のように、各端末が送信する端末データは全て同一内容のデータであるため、何れか一つの端末データをホスト20に送信すればよい。端末データ選択部413は、複数台の端末10のそれぞれの端末11、12乃至1nが送信した端末データのうち、最先着の端末データを選択して出力する。なお、最先着の端末データを選択して出力した後に到着する他の端末データは廃棄する。
【0066】
端末データ受信完了通知部414は、複数台の端末10のそれぞれの端末11、12乃至1nが送信した端末データの到着を、対応する端末データインタフェース部411が出力する端末データ受信通知により知ることができる。そして、端末データインタフェース部411に接続された全ての端末11、12乃至1nからの端末データ受信通知を受信することで、全ての端末11、12乃至1nからの端末データが到着したことを識別する。全ての端末11、12乃至1nからの端末データが到着したことを識別した端末データ受信完了通知部414は、端末データ受信完了通知をホストデータ制御回路42へ出力してその旨を通知する。なお、端末データ受信完了通知部414は、端末データインタフェース部411に接続されている端末数を把握しており、端末データを受信した端末の数と比較して全ての端末11、12乃至1nからの端末データが到着したことを識別する。
【0067】
また、端末データ受信完了通知部414はホストデータ制御回路42からリセット通知を受信する。このリセット通知は、後述するように、ホストデータ制御回路42が
図4で説明したバッファメモリ回路43に送信指示を出力して全てのFIFOバッファを解放させた後に、次の通信に備えて関連回路をリセットするものである。そのため、端末データ受信完了通知部414は端末データ受信通知のカウントをリセットするとともに、端末データ選択部413にもリセット通知を送る。端末データ選択部413は、リセット通知の受信により、最先着の端末データ選択に関する情報をリセットして次に送信される端末データの選択に備える。
【0068】
次に、ホストデータ制御回路42について説明する。
【0069】
図6は、データ入出力制御装置40のホストデータ制御回路42の構成例を示すブロック図である。
【0070】
ホストデータ制御回路は、ホストデータインタフェース部421、ホストデータ複製部422およびホストデータ送信制御部423を含む構成になっている。
【0071】
ホストデータインタフェース部421は、シリアル通信線の受信データラインによってホスト20と接続される。
【0072】
ホストデータ複製部422は、ホストデータインタフェース部421を介してホスト20から受信したホストデータを、接続されているすべての端末の数だけ複製して分配出力する。ここでホスト20から受信するホストデータは、端末データ制御回路41が選択してホスト20に送信した端末データに対する返送データである。
【0073】
ホストデータ複製部422が分配出力したホストデータは、
図4で説明したバッファメモリ回路43の各端末に対応するFIFOバッファに格納され蓄積される。
【0074】
ホストデータ複製部422は、複製したホストデータの分配出力が完了すると分配出力完了通知を出力する。ここでは、ホストデータを分配出力したことを以てホストデータがそれぞれのFIFOバッファに蓄積されたと見なしている。もちろん、前述したように、バッファメモリ回路43からFIFOバッファの蓄積完了通知を受信するように構成している場合は、バッファメモリ回路43からの蓄積完了通知受信を以て分配出力完了通知を出力すればよい。
【0075】
ホストデータ送信制御部423は、
図5で説明した端末データ制御回路41の端末データ受信完了通知部414から端末データ受信完了通知を受信する。また、ホストデータ送信制御部423は、複製したホストデータの分配出力が完了したことを示す分配出力完了通知をホストデータ複製部422から受信する。
【0076】
ホストデータ送信制御部423は、分配出力完了通知を受信し、かつ、端末データ受信完了通知を受信したときに、
図4で説明したバッファメモリ回路43に送信指示を出力して、全てのFIFOバッファを解放させる。これにより、FIFOバッファに蓄積されたホストデータが各端末に送信される。
【0077】
ホストデータ送信制御部423は、送信指示を出力して全てのFIFOバッファを解放させた後に、受信した端末データ受信完了通知と分配出力完了通知を削除し、リセット通知を端末データ制御回路41に送る。これは、前述したように、次の通信に備えて関連回路をリセットするものである。
【0078】
上述した端末データ制御回路41とホストデータ制御回路42の動作を、それぞれ
図7と
図8を参照して説明する。
【0079】
図7は、端末データ制御回路41が、複数台の端末から送信された端末データを、1台のホストに送信する動作を示すフローチャートである。
【0080】
複数台の端末10のそれぞれの端末11、12乃至1nは非同期で通信を開始して、ホスト20に対して端末データを送信する。例えば、電源起動時にホスト20が備えるメモリのアドレス100番地から101番地、102番地・・・と順番にデータ読み出しの処理を行うものとすると、端末データとしてリードフラグとアドレス情報(100番地)を含んだデータを送信する。
【0081】
各端末は同時に通信を開始するが、起動時間の端末毎のばらつきや、端末の実装位置によってそれぞれの端末データが端末データ制御回路41に到着する時間が若干異なる。端末データ制御回路41では、複数台の端末10のそれぞれの端末11、12乃至1nが送信した端末データを到着順に受信する(S201)。
【0082】
端末データ制御回路41では、受信した端末データが最先着であるかどうかを確認する(S202)。
【0083】
受信した端末データが最先着のものである場合(S202、Yes)、端末データ制御回路41はこの最先着の端末データをそのままホスト20へ送信する(S203)。そして、ステップS201に戻り、後続の端末データを順次受信する。
【0084】
ステップS202の処理で、受信した端末データが最先着のものでない場合、(S202、No)、端末データ制御回路41では、受信した端末データが最後着であるかどうかを確認する(S204)。つまり、端末データ制御回路41は各端末が送信した端末データの到着数が、接続されている全ての端末数になるまでカウントし、到着数=端末数になったときに、最後着の端末データを受信したことを識別する。
【0085】
ステップS204の処理で、受信した端末データが最後着のものでない場合、(S204、No)、端末データ制御回路41は、受信した端末データを廃棄し(S205)、ステップS201に戻り、後続の端末データを順次受信する。
【0086】
ステップS204の処理で、受信した端末データが最後着のものである場合、(S204、Yes)、端末データ制御回路41は複数台の端末10の全ての端末11、12乃至1nからの端末データを受信したことを示す端末データ受信完了通知を出力する(S206)。なお、受信した最後着の端末データはステップS206において廃棄される。
【0087】
続いて、ホストデータ制御回路42の動作を説明する。
【0088】
図8は、ホストデータ制御回路42が、1台のホスト20から受信したホストデータを、複数台の端末10のそれぞれの端末11、12乃至1nに送信する動作を示すフローチャートである。
【0089】
ホスト20は、端末データ制御回路41から受信した最先着の端末データに基づいた処理を実行し、指定されたメモリのアドレス(100番地)に格納されたデータを読み出して、ホストデータとしてホストデータ制御回路42に送信する。
【0090】
ホストデータ制御回路42は、ホスト20から返送されたホストデータを受信する(S301)。
【0091】
そして、ホストデータ制御回路42は、この受信したホストデータを複製してバッファメモリ回路43の各FIFOバッファに送信する(S302)。ホストデータは複数台の端末10のそれぞれの端末11、12乃至1nに対して複製され、対応するFIFOバッファに分配出力される。ステップS303で、全てのFIFOバッファにホストデータを蓄積したかどうかを確認する。
【0092】
このステップS302とS303の処理は、ホストデータ複製部422で実行され、複製したホストデータの分配出力が完了すると分配出力完了通知が出力される。前述したように、ホストデータの分配出力が完了したことを以てホストデータがそれぞれのFIFOバッファに蓄積されたと見なしている。もちろん、バッファメモリ回路43からFIFOバッファの蓄積完了通知を受信するように構成している場合は、バッファメモリ回路43からの蓄積完了通知で確認できる。
【0093】
全てのFIFOバッファにホストデータを蓄積したことを確認すると(S303、Yes)、ホストデータ制御回路42は、端末データ制御回路41から端末データ受信完了通知を受信したかどうかを確認する(S304)。
【0094】
ステップS304で、端末データ受信完了通知をまだ受信していない場合(S304、No)、端末データ制御回路41からの端末データ受信完了通知を待受ける。
【0095】
端末データ受信完了通知を受信した場合(S304、Yes)、ホストデータ制御回路42は、送信指示を出力して全てのFIFOバッファを解放する(S305)。これにより、FIFOバッファに蓄積されたホストデータが各端末に送信される。また、ステップS305では、送信指示を出力して全てのFIFOバッファを解放させた後に、受信した端末データ受信完了通知と分配出力完了通知を削除し、リセット通知を端末データ制御回路41に送る。リセット通知は、前述したように、次の通信に備えて関連回路をリセットするものである。
【0096】
複数台の端末10のそれぞれの端末11、12乃至1nの全てが、対応するFIFOバッファからホストデータを受信することで一連の通信が完了する。
【0097】
つまり、各端末は、送信したリードフラグとアドレス情報(100番地)を含んだ端末データに対して、指定されたメモリのアドレス(100番地)からホスト20が読み出して返送したデータであるホストデータを受信する。そして、各端末はリードフラグと次に読み出すべきアドレス情報(101番地)を含んだ端末データをホスト20に対して送信し、必要データの読み出しが完了するまで順次繰り返して次以降の通信を実行する。
【0098】
なお、上記の説明ではステップS303で全てのFIFOバッファにホストデータを蓄積したかどうかを確認し、ステップS304で端末データ制御回路41からの端末データ受信完了通知の受信を確認している。しかし、これらのステップの順番は逆であってもかまわない。つまり、端末データ制御回路41からの端末データ受信完了通知の受信を確認し、その後に全てのFIFOバッファにホストデータを蓄積したかどうかを確認するようにしてもよい。ホストデータ制御回路42は、全てのFIFOバッファへのホストデータの格納完了と端末データ制御回路41からの受信完了通知の受信をもって送信指示を出力する。
【0099】
以上に説明したように、複数台の端末と1台のホスト間でシリアル通信を行う場合、各端末とホスト間での逐次処理が行われ、端末の数が増加するほど全体としての通信時間が端末の数だけ増加していた。例えば、複数台の端末と1台のホストとの全体としての通信時間をT、ホストが一つの端末との通信を行う時間をS、端末の数をNとすると、逐次処理を行う場合には、T=S×Nの通信時間を要した。
【0100】
一方、本実施形態のデータ入出力制御装置を用いることにより、ホストは複数ある端末の中の一つの端末の端末データについて処理を行えば良いことになる。そのため、必要とする通信時間は、T=S×1+(データ入出力制御装置におけるデータの処理時間)と表すことができる。
【0101】
つまり、端末の数Nが増加した場合、逐次処理を行う場合には全体としての通信時間Tは端末数に比例して増加するのに対し、本実施形態では、端末の数Nに拠らず、全体としての通信時間Tは一定であるといえる。また、各端末は他の端末の通信状況に拠らず、タイミングを気にすることなく通信を行うことができるので、端末内の制御回路等の簡素化に寄与できる。また、ホストは複数ある端末の中の一つの端末のデータについて処理を行えば良いので、ホスト負荷の軽減に寄与できる。
【0102】
このように、本実施形態では複数台の端末と1台のホストが同一内容のデータでシリアル通信を行う環境において、各端末による逐次処理を行うことなく、ホストと各端末の相互間の通信における全体としての処理時間を最小限に抑えることができる。
【0103】
(第3の実施形態)
次に、
図9を参照して第3の実施形態を説明する。
【0104】
図9は、本発明の第3の実施形態のデータ入出力制御装置の構成例を示すブロック図である。
【0105】
第3の実施形態のデータ入出力制御装置50は、
図4に示した第2の実施形態のデータ入出力制御装置40に加えて、動作クロック供給回路54を含む構成になっている。
【0106】
また、データ入出力制御装置50にシリアル通信線により接続される複数台の端末10のそれぞれの端末11、12乃至1nの動作速度は異なるものとして構成される。そして、データ入出力制御装置50とホスト20との間の動作速度は低速側の端末の動作速度に合わされて、最も遅い動作速度に設定されているものとする。
【0107】
動作クロック供給回路54は、バッファメモリ回路53の各FIFOバッファに、対応する端末の動作速度の動作クロック信号をそれぞれ供給する。
【0108】
その他の構成については第2の実施形態で説明した各機能部ブロックの構成と同じなので、それらの説明は省略する。また、端末データ制御回路51が複数台の端末10のそれぞれの端末11、12乃至1nから端末データを受信し、最先着の端末データをホスト20に送信する動作も第2の実施形態の動作と同じなので、その関連動作の説明は省略する。ここでは、ホストデータ制御回路52がホスト20からホストデータを受信する動作から説明する。
【0109】
ホスト20から受信したホストデータはホストデータ制御回路52で分配され、バッファメモリ回路53の各FIFOバッファに格納・蓄積される。
【0110】
ホストデータ制御回路52は、全てのFIFOバッファにホストデータを蓄積し、かつ、端末データ制御回路51から端末データ受信完了通知を受信すると送信指示を出力して全てのFIFOバッファを解放する。
【0111】
これにより、ホストデータが各端末に送信されるが、その際に、各FIFOバッファでは、動作クロック供給回路54から供給されたそれぞれの端末の動作速度に対応する動作クロック信号に乗せ換えてホストデータを各端末に送信する。
【0112】
従って、本実施形態のデータ入出力制御装置50によれば、複数台の端末10のそれぞれの端末11、12乃至1nと1台のホスト20の動作速度が異なっている場合であっても、ホスト20は最も遅い端末の動作速度に合わせた処理が行なえる。そして、FIFOバッファの出力に際して、動作クロック供給回路54が供給するそれぞれの端末の動作速度に対応した動作クロック信号に乗せ換えて処理することで、各端末の動作速度でホストデータを送信することができる。
【0113】
このように、本実施形態では複数台の端末と1台のホストが同一内容のデータでシリアル通信を行う環境において、各端末による逐次処理を行うことなく、ホストと各端末の相互間の通信における全体としての処理時間を最小限に抑えることができる。しかも、各端末の動作速度が異なる場合であっても、ホストは各端末のそれぞれの動作速度に合わせることなく通信することができる。
【0114】
なお、上述した各実施形態のデータ入出力制御装置は、CPU(Central Processing Unit)にコンピュータプログラムを実行させることで任意の処理を行う、一般的なコンピュータ装置と同様のハードウェア構成によって実現しても良い。つまり、CPUが、不揮発メモリ等で構成される補助記憶部に格納されているプログラムを、RAM(Random Access Memory)等の主記憶部にロードして実行することで、上述したデータ入出力制御装置の各機能をソフトウェア的に実現しても良い。