(57)【要約】【課題】  複数台の端末と１台のホスト間でシリアル通信を行う際の通信処理完了までの全体の通信時間を短縮する。【解決手段】  シリアル通信を行う複数台の端末とホスト間にデータ入出力制御装置を配備する。データ入出力制御装置は、それぞれの端末が同時に送信する同一内容の端末データのうちの最初に到着した端末データのみをホストに送信し、その端末データに応じてホストが返送したホストデータを受信して複製する。そして、複製したホストデータをそれぞれの端末に対応して配備されたバッファメモリに分配して蓄積する。データ入出力制御装置は、ホストデータがそれぞれの端末に対応するバッファメモリに分配して蓄積され、かつ、端末データが全ての端末から到着したことを識別すると、バッファメモリを解放して、蓄積しているホストデータを、接続している端末に送信する。【選択図】      図２
2018116356.tif 000002
【特許請求の範囲】
【請求項１】
シリアル通信方式を用いて外部との通信を行う複数台の端末と、それぞれの前記端末とデータの送受信を行う１台のホストを接続し、それぞれの前記端末が同時に送信した同一内容の端末データのうちの最初に到着した前記端末データのみを前記ホストに送信し、前記端末データに応じて前記ホストが返送したホストデータを受信し、受信した当該ホストデータを複製して分配出力するデータ中継手段と、
それぞれの前記端末に対応して配備され、前記データ中継手段が分配出力する前記ホストデータを蓄積し、送信指示を受けると、蓄積した前記ホストデータを、接続している前記端末に送信するバッファメモリ手段と
を備え、
前記データ中継手段は、分配出力した前記ホストデータがそれぞれの前記端末に対応する前記バッファメモリ手段に蓄積され、かつ、前記端末データが全ての前記端末から到着したことを識別すると、前記バッファメモリ手段に前記送信指示を出力する
ことを特徴とするデータ入出力制御装置。
【請求項２】
前記データ中継手段は、
前記複数台の端末からの受信データラインを接続してそれぞれの端末から同一内容の前記端末データを受信し、最初に到着した前記端末データのみを前記ホストと接続した送信データラインを介して送信し、前記複数台の端末の全ての端末から前記端末データを受信すると、前記端末データが全ての前記端末から到着したことを示す端末データ受信完了通知を出力する端末データ制御回路と、
前記ホストからの受信データラインを接続し、前記ホストから前記ホストデータを受信すると当該ホストデータを複製して前記バッファメモリ手段に分配出力し、前記端末データ制御回路が出力する前記端末データ受信完了通知を受信すると前記送信指示を前記バッファメモリ手段に出力するホストデータ制御回路と
を含むことを特徴とする請求項１に記載のデータ入出力制御装置。
【請求項３】
前記端末データ制御回路は、
前記複数台の端末のそれぞれの端末に対応して配備され、当該端末からの受信データラインを接続し、当該端末が送信する前記端末データの受信を検知して端末データ受信通知を出力する端末データインタフェース部と、
前記ホストへの送信データラインを接続するホストデータインタフェース部と、
前記端末データインタフェース部を介して前記端末データを受信し、最初に到着した前記端末データのみを選択し、前記ホストデータインタフェース部を介して当該選択した端末データを送信する端末データ選択部と、
それぞれの前記端末データインタフェース部が出力する前記端末データ受信通知を受信し、前記複数台の端末の全ての端末から前記端末データを受信したことを識別すると前記端末データ受信完了通知を出力する端末データ受信完了通知部と、
を備えることを特徴とする請求項２に記載のデータ入出力制御装置。
【請求項４】
前記ホストデータ制御回路は、
前記ホストからの受信データラインを接続するホストデータインタフェース部と、
前記ホストから前記ホストデータを受信すると当該ホストデータを複製して前記バッファメモリ手段に分配出力し、分配出力した前記ホストデータがそれぞれの前記端末に対応する前記バッファメモリ手段に蓄積された旨を通知する分配出力完了通知を出力するホストデータ複製部と、
前記分配出力完了通知と前記端末データ受信完了通知を受信すると前記送信指示を前記バッファメモリ手段に出力するホストデータ送信制御部と
を備えることを特徴とする請求項２または請求項３に記載のデータ入出力制御装置。
【請求項５】
前記ホストデータ送信制御部は、前記送信指示を前記バッファメモリ手段に出力すると、前記端末データ受信完了通知と前記分配出力完了通知を削除し、前記複数台の端末のそれぞれの端末からの前記端末データの到着に関する情報のリセットを指示するリセット通知を前記端末データ制御回路に出力する
ことを特徴とする請求項４に記載のデータ入出力制御装置。
【請求項６】
前記複数台の端末のそれぞれの端末に対応して配備された前記バッファメモリ手段に、対応する前記端末の動作速度の動作クロック信号をそれぞれ供給する動作クロック供給回路を更に備え、
前記ホストとの間の動作速度を、前記端末の動作速度の最も遅い動作速度に設定し、
前記バッファメモリ手段は、前記送信指示を受けると、蓄積した前記ホストデータを、接続している前記端末の動作速度に対応する動作クロック信号に乗せ換えて送信する
ことを特徴とする請求項１乃至請求項５のいずれかの請求項に記載のデータ入出力制御装置。
【請求項７】
シリアル通信方式を用いて外部との通信を行う複数台の端末のそれぞれの端末が同時に送信する同一内容の端末データのうちの最初に到着した前記端末データのみをホストに送信し、
前記端末データに応じて前記ホストが返送したホストデータを受信し、受信した当該ホストデータを複製して分配出力し、
それぞれの前記端末に対応して配備されたバッファメモリに、分配出力された前記ホストデータを蓄積し、
分配出力した前記ホストデータをそれぞれの前記端末に対応する前記バッファメモリに蓄積し、かつ、前記端末データが全ての前記端末から到着したことを識別すると、前記バッファメモリに蓄積している前記ホストデータを、接続している前記端末に送信する
ことを特徴とするデータ入出力制御方法。
【請求項８】
前記複数台の端末のそれぞれの端末からの前記端末データの受信に際して、
それぞれの前記端末が送信する前記端末データの受信を検知して端末データ受信通知を出力し、
前記端末データ受信通知に基づいて前記複数台の端末の全ての端末から前記端末データが到着したことを示す端末データ受信完了通知を出力し、
前記端末データに応じて前記ホストが返送したホストデータの受信に際して、
前記ホストから前記ホストデータを受信すると当該ホストデータを複製してそれぞれの前記バッファメモリに分配して出力し、
分配出力した前記ホストデータがそれぞれの前記端末に対応する前記バッファメモリに蓄積された旨を通知する分配出力完了通知を出力し、
前記端末データ受信完了通知と前記分配出力完了通知の両方が出力された時に、それぞれの前記バッファメモリに蓄積している前記ホストデータを、接続している前記端末に送信する
ことを特徴とする請求項７に記載のデータ入出力制御方法。
【請求項９】
それぞれの前記バッファメモリに蓄積している前記ホストデータを接続している前記端末に送信すると、出力された前記端末データ受信完了通知と前記分配出力完了通知を削除し、前記複数台の端末のそれぞれの端末からの前記端末データの到着に関する情報をリセットする
ことを特徴とする請求項８に記載のデータ入出力制御方法。
【請求項１０】
前記複数台の端末のそれぞれの端末に対応して配備された前記バッファメモリに、対応する前記端末の動作速度の動作クロック信号をそれぞれ供給し、
前記ホストとの間の動作速度を、前記端末の動作速度の最も遅い動作速度に設定し、
前記バッファメモリに蓄積している前記ホストデータを接続している前記端末に送信する際に、接続している前記端末の動作速度に対応する動作クロック信号に乗せ換えて前記ホストデータを送信する
ことを特徴とする請求項７乃至請求項９のいずれかの請求項に記載のデータ入出力制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ入出力制御装置および制御方法に関し、特に、ホストと複数の端末がシリアル通信する環境におけるデータ入出力制御装置および制御方法に関する。
【背景技術】
【０００２】
一般に、電子機器に実装された基板内及び基板間におけるデバイス間での信号の通信方式として、Ｉ２Ｃ（Inter-Integrated Circuit）通信方式やＳＰＩ（Serial Peripheral Interface）通信方式などのシリアル通信方式が広く利用されている。また、このようなシリアル通信方式はマスタ−スレーブ間通信においても使用されており、この場合は少なくとも一つ以上の端末と一つ以上のホストとの組み合わせによって構成される。例えば、大規模システムを扱う基板に実装された端末側のデバイスである複数のＤＳＰ（Digital Signal Processor）が、ホスト側のデバイスである同一データを保持している複数のＲＯＭ（Read Only Memory）から起動データを読み出す通信形態が考えられる。
【０００３】
デバイス間でシリアル通信を行うデバイスの組み合わせが複数存在し、それぞれが１対１で同一データを通信するような場合、低消費電力化、回路規模削減、部品点数削減の観点から、ホスト側のデバイスの数を削減することが望ましいとされている。
【０００４】
通常、シリアル通信方式においてデバイスを削減する方法としては、デバイス間のシリアル接続をバス接続方式とすることで実現している。バス接続方式では、１台のホストに対して複数台の端末が、一つの伝送路上で接続されている状態となっており、ホストは各端末と順番に通信を行う。
【０００５】
このようなシリアル通信を用いた通信システムが特許文献１乃至特許文献３に開示されている。
【０００６】
特許文献１は、センサとマイクロプロセッサとの間の通信をＩ２Ｃ通信のみならずＳＰＩ通信も可能なように構築した通信システムに関する技術である。Ｉ２ＣデバイスおよびＳＰＩデバイスの双方をマスタとした通信システムでは、Ｉ２Ｃ通信とＳＰＩ通信とが非同期で動作するため、Ｉ２Ｃ通信の信号とＳＰＩ通信の信号とが衝突するおそれがある。そこで、特許文献１は、Ｉ２ＣデバイスおよびＳＰＩデバイスの双方をマスタとした通信システムにおいて、選択回路を配備して、Ｉ２Ｃ通信の信号とＳＰＩ通信の信号とが衝突するおそれがないようにした通信システムを開示する。
【０００７】
特許文献２は、マスタから複数のスレーブに対して、Ｉ２Ｃバスを用いたシリアル通信によって発行された同時複数制御を指示するコマンドによって、複数のスレーブを同時制御可能にしたシリアル通信システムを開示する。特許文献２が開示する技術によれば、複数の機能から成る制御プログラムを各スレーブに予め記憶しておき、マスタが複数のスレーブに対して、実行すべき制御プログラムの機能に対応するプログラムステップを、シリアル通信を介して指定する。そして、複数のスレーブの各々が指定されたプログラムステップを同時に実行することで、マスタが複数のスレーブに対して実行させるべき機能を同時に制御することができる。
【０００８】
特許文献３は、親ノードと、通信回線を介して親ノードにマルチドロップ接続されてコマンド信号を受信する複数の子ノードとがポーリング／セレクティング方式でシリアル通信を行う技術を開示する。特許文献３は、親ノードと通信速度が互いに異なる複数の子ノードとが効率よく通信を行うことができる通信システムを実現する。特許文献３が開示する技術では、親ノードが各子ノードの通信速度に関する情報を記憶し、通信速度の速い子ノード宛の信号から順に高い優先度を予め設定する。そして、親ノードがバッファに格納された送信待ち信号に対して優先度に基づいて設定された送信順位に従って信号を送信することで、通信速度の速い子ノード宛の信号が優先的に送信されて効率的な通信が行われる。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開2016-4388号公報
【特許文献２】特開2008-217757号公報
【特許文献３】特開2010-258811号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
１台のホストに対して複数台の端末が一つの伝送路上で接続されるバス接続方式では、ホストが複数台の端末とシリアル通信を行う場合、ホストと各端末との通信は逐次処理となる。そのため、ホストは通信中の端末との通信処理の完了を待たなければならず、次の端末と通信を開始するまでに待ち時間が発生し、ホストと接続される端末数が増えるに連れて通信に掛かる時間が増加するという課題があった。
【００１１】
図１は、本発明の課題を説明するためのシリアル通信環境の構成例を示すブロック図である。例えば、図１に示すような１台のホスト２００に複数台の端末１０１〜１０ｎがそれぞれバス接続された構成でシリアル通信を行う場合、ホスト２００が端末１０１と通信を行っている間は、その他の端末１０２〜１０ｎはホスト２００と通信をすることが出来ない。そして、端末１０１の通信処理が完了するのを待ってから次の端末がホスト２００と通信を行う。そのため、ホスト２００と接続される端末の数が増えた場合、全体としての処理時間は、端末の数が増えるにつれて、ホスト２００が一つの端末との通信に掛かる時間ずつ増加することになる。このことは、複数台の端末が同一内容の端末データを１台のホストに送信し、ホストから各端末に同一内容のホストデータを返送する形態のシリアル通信を行う環境においてもいえる。
【００１２】
特許文献１は、Ｉ２ＣデバイスおよびＳＰＩデバイスの双方をマスタとした通信システムにおいて、Ｉ２Ｃ通信の信号とＳＰＩ通信の信号とが衝突するおそれがないようにした通信システムを開示する。しかし、特許文献１は複数台の端末と１台のホストがシリアル通信を行う場合の処理時間を短縮することには言及していない。
【００１３】
特許文献２は、マスタから複数のスレーブを同時制御可能にして処理時間を短縮するシリアル通信システムを開示する。特許文献２では、制御プログラムを予め記憶した各スレーブに、実行すべき制御プログラムの機能に対応するプログラムステップをマスタから指示する。そして、複数のスレーブの各々が指示されたプログラムステップを同時に実行するように構成している。しかし、特許文献２が開示する通信システムは、逆方向の通信である、複数のスレーブから１つのマスタ方向の同時通信に関しては言及していない。
【００１４】
特許文献３は、親ノードと通信速度が互いに異なる複数の子ノードとの通信に際し、親ノードのバッファに格納された送信待ち信号に対して、子ノードの通信速度に応じた優先度で送信する通信システムを開示する。しかし、特許文献３が開示する通信システムは、逆方向の通信である、複数の子ノードから１つの親ノード方向の同時通信および処理時間の短縮に関しては言及していない。
【００１５】
本発明は、複数台の端末と１台のホストが同一内容のデータでシリアル通信を行う環境において、ホストと各端末の相互間の通信における全体としての処理時間を最小限に抑えて通信することを可能とするデータ入出力制御装置および制御方法を提供する。
【課題を解決するための手段】
【００１６】
上記の目的を実現するために、本発明の一形態であるデータ入出力制御装置は、シリアル通信方式を用いて外部との通信を行う複数台の端末と、前記端末のそれぞれの前記端末とデータの送受信を行う１台のホストを接続し、それぞれの前記端末が同時に送信した同一内容の端末データのうちの最初に到着した前記端末データのみを前記ホストに送信し、前記端末データに応じて前記ホストが返送したホストデータを受信し、受信した当該ホストデータを複製して分配出力するデータ中継手段と、それぞれの前記端末に対応して配備され、前記データ中継手段が分配出力する前記ホストデータを蓄積し、送信指示を受けると、蓄積した前記ホストデータを、接続している前記端末に送信するバッファメモリ手段とを含み、前記データ中継手段は、分配出力した前記ホストデータがそれぞれの前記端末に対応する前記バッファメモリ手段に蓄積され、かつ、前記端末データが全ての前記端末から到着したことを識別すると、前記バッファメモリ手段に前記送信指示を出力することを特徴とする。
【００１７】
また、本発明の別の形態であるデータ入出力制御方法は、シリアル通信方式を用いて外部との通信を行う複数台の端末のそれぞれの端末が同時に送信する同一内容の端末データのうちの最初に到着した前記端末データのみをホストに送信し、前記端末データに応じて前記ホストが返送したホストデータを受信し、受信した当該ホストデータを複製して分配出力し、それぞれの前記端末に対応して配備されたバッファメモリに、分配出力された前記ホストデータを蓄積し、分配出力した前記ホストデータをそれぞれの前記端末に対応する前記バッファメモリに蓄積し、かつ、前記端末データが全ての前記端末から到着したことを識別すると、前記バッファメモリに蓄積している前記ホストデータを、接続している前記端末に送信することを特徴とする。
【発明の効果】
【００１８】
本発明は、複数台の端末と１台のホストが同一内容のデータでシリアル通信を行う環境において、ホストと各端末の相互間の通信における全体としての処理時間を最小限に抑えることができる。
【図面の簡単な説明】
【００１９】
【図１】本発明の課題を説明するためのシリアル通信環境の構成例を示すブロック図である。
【図２】本発明の第１の実施形態のデータ入出力制御装置の構成例を示すブロック図である。
【図３】本発明の第１の実施形態のデータ入出力制御方法の動作を説明するフロー図である。
【図４】本発明の第２の実施形態のデータ入出力制御装置の構成例を示すブロック図である。
【図５】第２の実施形態のデータ入出力制御装置の端末データ制御回路の構成例を示すブロック図である。
【図６】第２の実施形態のデータ入出力制御装置のホストデータ制御回路の構成例を示すブロック図である。
【図７】端末データ制御回路が、複数台の端末から送信された端末データを、１台のホストに送信する動作を示すフローチャートである。
【図８】ホストデータ制御回路が、１台のホストから受信したホストデータを複数台の端末に送信する動作を示すフローチャートである。
【図９】本発明の第３の実施形態のデータ入出力制御装置の構成例を示すブロック図である。
【発明を実施するための形態】
【００２０】
本発明を実施するための形態の概要を説明する。
【００２１】
本発明を実施するための形態は、同一のシリアル通信方式を用いて外部との通信を行う複数台の端末と１台のホストの間にデータ中継装置としてのデータ入出力制御装置を配置して、それらの端末とホストの間の通信を実行する。シリアル通信方式としては、送信線と受信線の２本のデータ線を有するＳＰＩ方式の場合について説明する。
【００２２】
また、本発明を実施するための形態において適用される通信では、すべての端末からホストに同一内容のデータが送られ、ホストからの応答データもすべての端末に対して同一内容のデータが返送される。例えば、電源起動等で複数の端末がホストから起動データ（同一内容のデータ）を要求する場合が想定される。
【００２３】
なお、実施の形態は例示であり、開示の装置及び方法は、以下の実施の形態の構成には限定されない。また、図に付した参照符号は理解を助けるための一例として便宜上付記したものであり、なんらの限定を意図するものではない。さらに、図面中の矢印の向きは、一例を示すものであり、ブロック間の信号の向きを限定するものではない。なお、図中の一点鎖線は装置内で伝達される制御信号を示している。
【００２４】
（第１の実施形態）
図２を参照して第１の実施形態のデータ入出力制御装置の構成を説明する。
【００２５】
本実施形態のデータ入出力制御装置３０は、シリアル通信方式を用いて外部との通信を行う複数台の端末１０と、複数台の端末１０のそれぞれの端末とデータの送受信を行う１台のホスト２０と接続する。なお、複数台の端末１０のそれぞれを区別する必要がある場合は、端末１１、１２乃至１ｎとして説明する。
【００２６】
データ入出力制御装置３０は、データ中継手段３１とバッファメモリ手段３２を含んで構成される。
【００２７】
データ中継手段３１は複数台の端末１０のそれぞれの端末１１、１２乃至１ｎとシリアル通信線によって接続される。また、データ中継手段３１はホスト２０とシリアル通信線によって接続される。
【００２８】
データ中継手段３１は、複数台の端末１０のそれぞれの端末１１、１２乃至１ｎが同時に送信した同一内容の端末データのうちの最初に到着した端末データのみをホスト２０に送信する。ここで、それぞれの端末１１、１２乃至１ｎは端末データを同時に送信するが、送信処理の端末毎のばらつきや、端末が実装されている位置によって端末データがデータ中継手段３１に到着する時間が若干異なる。このように到着時間が若干異なる端末データのうちの最初に到着した端末データのみをホスト２０に送信する。
【００２９】
そして、データ中継手段３１は、この端末データに応じてホスト２０が返送したホストデータを受信し、受信した当該ホストデータを複製して分配出力する。
【００３０】
バッファメモリ手段３２は、複数台の端末１０のそれぞれの端末１１、１２乃至１ｎに対応して配備され、データ中継手段３１が分配出力するホストデータを蓄積する。また、バッファメモリ手段３２は、送信指示を受けると、蓄積したホストデータを、接続している端末１１、１２乃至１ｎに送信する。
【００３１】
ここで、データ中継手段３１は、分配出力したホストデータがそれぞれの端末１１、１２乃至１ｎに対応するバッファメモリ手段３２に蓄積され、かつ、端末データが複数台の端末１０の全ての端末１１、１２乃至１ｎから到着したことを識別すると、バッファメモリ手段３２に送信指示を出力する。
【００３２】
次に、図３を参照して第１の実施形態のデータ入出力制御方法の動作を説明する。
【００３３】
第１の実施形態のデータ入出力制御方法は、第１の実施形態のデータ入出力制御装置３０が図３の各動作ステップを実行することで実現される。
【００３４】
シリアル通信方式を用いて外部との通信を行う複数台の端末のそれぞれの端末が同時に送信する同一内容の端末データのうちの最初に到着した端末データのみをホストに送信する（Ｓ１０１）。
【００３５】
この端末データに応じてホストが返送したホストデータを受信し、受信した当該ホストデータを複製して分配出力する（Ｓ１０２）。
【００３６】
それぞれの端末に対応して配備されたバッファメモリに、分配出力されたホストデータを蓄積する（Ｓ１０３）。
【００３７】
分配出力したホストデータをそれぞれの端末に対応するバッファメモリに蓄積し、かつ、端末データが複数台の端末の全ての端末から到着したことを識別すると、バッファメモリに蓄積しているホストデータを、接続している端末に送信する（Ｓ１０４）。
【００３８】
本実施形態のデータ入出力制御装置は、複数台の端末のそれぞれの端末が同時に送信した端末データの中から最初に到着したいずれか一つの端末データをホストに送信する。そして、その端末データに応じてホストが返送したホストデータを受信して複製し、それぞれの端末に対応して配備されたバッファメモリに蓄積する。そして、ホストデータをそれぞれの端末に送信するタイミングを確認して、バッファメモリを解放する。ホストデータをそれぞれの端末に送信するタイミングとは、ホストデータを各バッファメモリに蓄積し、しかも、到着時間が若干異なる端末データが全ての端末から到着したことを識別したタイミングである。
【００３９】
このように、本実施形態では複数台の端末と１台のホストが同一内容のデータでシリアル通信を行う環境において、各端末による逐次処理を行うことなく、ホストと各端末の相互間の通信における全体としての処理時間を最小限に抑えることができる。
【００４０】
（第２の実施形態）
次に、図４乃至図８を参照して第２の実施形態を説明する。
【００４１】
図４は、本発明の第２の実施形態のデータ入出力制御装置の構成例を示すブロック図である。
【００４２】
第２の実施形態のデータ入出力制御装置４０は、第１の実施形態のデータ入出力制御装置３０と同様に、シリアル通信方式を用いて外部との通信を行う複数台の端末１０と、それぞれの端末とデータの送受信を行う１台のホスト２０と接続する。なお、複数台の端末１０のそれぞれを区別する必要がある場合は、端末１１、１２乃至１ｎとして説明する。
【００４３】
データ入出力制御装置４０は、端末データ制御回路４１、ホストデータ制御回路４２およびバッファメモリ回路４３を含んで構成される。ここで、端末データ制御回路４１およびホストデータ制御回路４２は、第１の実施形態におけるデータ中継手段３１に対応する構成となっている。
【００４４】
端末データ制御回路４１は、複数台の端末１０のそれぞれの端末１１、１２乃至１ｎとシリアル通信線の受信データラインによって接続され、ホスト２０とはシリアル通信線の送信データラインによって接続される。端末データ制御回路４１は、複数台の端末１０のそれぞれの端末１１、１２乃至１ｎから同一内容の端末データを非同期で受信し、最先着の端末データをホスト２０に送信する。ここで、「非同期で受信」とは、それぞれの端末１１、１２乃至１ｎは端末データを同時に送信するが、端末データ制御回路４１に到着する時間にばらつきがあることを意味する。これは、前述したように、送信処理の端末毎のばらつきや、端末が実装されている位置によって端末データの到着時間が若干異なることに起因するものである。
【００４５】
また、端末データ制御回路４１は、それぞれの端末１１、１２乃至１ｎが送信した端末データの到着状況を識別し、全ての端末１１、１２乃至１ｎからの端末データの受信完了を確認すると受信完了通知をホストデータ制御回路４２に出力する。
【００４６】
ホストデータ制御回路４２は、ホスト２０とシリアル通信線の受信データラインによって接続され、端末データに応じてホスト２０が返送するホストデータを受信する。
【００４７】
ホストデータ制御回路４２は、ホスト２０から受信したホストデータを、複数台の端末１０の数に応じて複製し、同一内容のホストデータを分配出力する。
【００４８】
バッファメモリ回路４３は、複数台の端末１０のそれぞれの端末１１、１２乃至１ｎに対応して配備されたＦＩＦＯ（First In First Out）バッファを備えて構成される。各ＦＩＦＯバッファはホストデータ制御回路４２に接続され、ホストデータ制御回路４２が分配出力するホストデータは、個々のＦＩＦＯバッファに格納・蓄積される。
【００４９】
ホストデータ制御回路４２は、分配出力したホストデータがそれぞれのＦＩＦＯバッファに蓄積されたこと、および端末データの受信完了通知を受け取ったことを条件に、バッファメモリ回路４３に対して送信指示を出力する。なお、ホストデータ制御回路４２は、ホストデータを分配出力したことを以てホストデータがそれぞれのＦＩＦＯバッファに蓄積されたと判断してかまわない。または、バッファメモリ回路４３が各ＦＩＦＯバッファの蓄積状況を確認し、全てのＦＩＦＯバッファの蓄積データ量が同一量増加したことを以て、ホストデータ制御回路４２に蓄積完了通知を出すように構成してもかまわない。
【００５０】
送信指示を受けたバッファメモリ回路４３は、個々のＦＩＦＯバッファに蓄積したホストデータを、シリアル通信線の送信データラインによって接続されているそれぞれの端末１１、１２乃至１ｎに送信する。
【００５１】
このように、データ入出力制御装置４０は、端末データ制御回路４１に最先着した端末データをホスト２０に送信し、その端末データに対する返送データであるホストデータを受け取ると、その複製を生成して分配出力する。分配出力されたホストデータは各端末に対応するＦＩＦＯバッファに一旦蓄積される。そして、複数台の端末１０の全ての端末１１、１２乃至１ｎから端末データを受信したことを確認すると、ＦＩＦＯバッファを解放して、蓄積されているホストデータを一斉に各端末に送信する。
【００５２】
上述したデータ入出力制御装置４０の利用例を簡単に説明する。
【００５３】
電源起動時に複数台の端末１０のそれぞれの端末１１、１２乃至１ｎが同時に通信を開始し、ホスト２０に対してホスト２０が備えるメモリのアドレス１００番地から１０１番地、１０２番地・・・と順番にデータ読み出しを行う場合を例にして説明する。
【００５４】
起動後、各端末はリードフラグとアドレス情報（１００番地）を含んだ端末データをホスト２０に対して送信する。端末データ制御回路４１は各端末から受信した端末データの中で最先着の端末データをそのままホスト２０へ送信する。また、端末データ制御回路４１は各端末が送信した端末データの到着数が、接続されている全ての端末数になるまでカウントし、到着数＝端末数になった時にホストデータ制御回路４２へ端末データ受信完了通知を出力する。なお、最先着以外の端末データは廃棄される。
【００５５】
ホスト２０は、最先着で受信した端末データに基づいた処理を実行し、指定されたメモリのアドレス（１００番地）に格納されたデータを読み出して、ホストデータとして端末側に返送する。
【００５６】
ホストデータ制御回路４２は、ホスト２０から受信したホストデータを複数台の端末１０の数に応じて複製して分配出力する。分配出力されたホストデータは、ホストデータ制御回路４２と接続されているバッファメモリ回路４３の各ＦＩＦＯバッファに蓄積される。ホストデータ制御回路４２は、全てのＦＩＦＯバッファへのホストデータの蓄積完了と端末データ制御回路４１からの端末データ受信完了通知の受信をもって送信指示を出力して全てのＦＩＦＯバッファを解放する。これにより、ＦＩＦＯバッファに蓄積されたホストデータが各端末に送信される。
【００５７】
複数の端末１０やホスト２０のそれぞれの自身の視点から見ると、上記の動作は通常の同期式シリアル通信を行っているのと変わらない。そして、各端末はリードフラグと次に読み出すべきアドレス情報（１０１番地）を含んだ端末データをホスト２０に対して送信する動作を、必要データの読み出しが完了するまで順次繰り返して実行する。
【００５８】
このように、本実施形態では、ホスト２０はデータ入出力制御装置４０を介することにより、接続している端末の数に依存することなく、複数台の端末１０の中の一つの端末のデータについて処理を行えば良い。そのため、本実施形態のように構成することで、ホストデータの複製やＦＩＦＯバッファの解放のタイミング調整の時間を鑑みても、複数台の端末１０と１台のホスト２０との間の通信処理時間を大幅に短縮することができる。
【００５９】
続いて、端末データ制御回路４１とホストデータ制御回路４２について説明する。
【００６０】
図５は、データ入出力制御装置４０の端末データ制御回路４１の構成例を示すブロック図である。
【００６１】
端末データ制御回路４１は、端末データインタフェース部４１１、ホストデータインタフェース部４１２、端末データ選択部４１３および端末データ受信完了通知部４１４を含む構成になっている。
【００６２】
端末データインタフェース部４１１は、複数台の端末１０のそれぞれの端末１１、１２乃至１ｎに対応して配備され、シリアル通信線の受信データラインによって各端末と接続される。端末データインタフェース部４１１は、対応する端末から受信した端末データを端末データ選択部４１３に出力する。また、端末データインタフェース部４１１は、対応する端末からの端末データを受信したときに、当該端末が送信した端末データが到着したことを示す端末データ受信通知を端末データ受信完了通知部４１４に出力する。
【００６３】
なお、前述したように、起動時間の端末毎のばらつきや、端末の実装位置によって、各端末が送信する端末データの到着時間にはばらつきがある。
【００６４】
ホストデータインタフェース部４１２は、シリアル通信線の送信データラインによってホスト２０と接続される。
【００６５】
端末データ選択部４１３は、複数台の端末１０のそれぞれの端末１１、１２乃至１ｎから受信した端末データを入力し、そのうちの一つを選択してホストデータインタフェース部４１２を介してホスト２０に出力する。前述のように、各端末が送信する端末データは全て同一内容のデータであるため、何れか一つの端末データをホスト２０に送信すればよい。端末データ選択部４１３は、複数台の端末１０のそれぞれの端末１１、１２乃至１ｎが送信した端末データのうち、最先着の端末データを選択して出力する。なお、最先着の端末データを選択して出力した後に到着する他の端末データは廃棄する。
【００６６】
端末データ受信完了通知部４１４は、複数台の端末１０のそれぞれの端末１１、１２乃至１ｎが送信した端末データの到着を、対応する端末データインタフェース部４１１が出力する端末データ受信通知により知ることができる。そして、端末データインタフェース部４１１に接続された全ての端末１１、１２乃至１ｎからの端末データ受信通知を受信することで、全ての端末１１、１２乃至１ｎからの端末データが到着したことを識別する。全ての端末１１、１２乃至１ｎからの端末データが到着したことを識別した端末データ受信完了通知部４１４は、端末データ受信完了通知をホストデータ制御回路４２へ出力してその旨を通知する。なお、端末データ受信完了通知部４１４は、端末データインタフェース部４１１に接続されている端末数を把握しており、端末データを受信した端末の数と比較して全ての端末１１、１２乃至１ｎからの端末データが到着したことを識別する。
【００６７】
また、端末データ受信完了通知部４１４はホストデータ制御回路４２からリセット通知を受信する。このリセット通知は、後述するように、ホストデータ制御回路４２が図４で説明したバッファメモリ回路４３に送信指示を出力して全てのＦＩＦＯバッファを解放させた後に、次の通信に備えて関連回路をリセットするものである。そのため、端末データ受信完了通知部４１４は端末データ受信通知のカウントをリセットするとともに、端末データ選択部４１３にもリセット通知を送る。端末データ選択部４１３は、リセット通知の受信により、最先着の端末データ選択に関する情報をリセットして次に送信される端末データの選択に備える。
【００６８】
次に、ホストデータ制御回路４２について説明する。
【００６９】
図６は、データ入出力制御装置４０のホストデータ制御回路４２の構成例を示すブロック図である。
【００７０】
ホストデータ制御回路は、ホストデータインタフェース部４２１、ホストデータ複製部４２２およびホストデータ送信制御部４２３を含む構成になっている。
【００７１】
ホストデータインタフェース部４２１は、シリアル通信線の受信データラインによってホスト２０と接続される。
【００７２】
ホストデータ複製部４２２は、ホストデータインタフェース部４２１を介してホスト２０から受信したホストデータを、接続されているすべての端末の数だけ複製して分配出力する。ここでホスト２０から受信するホストデータは、端末データ制御回路４１が選択してホスト２０に送信した端末データに対する返送データである。
【００７３】
ホストデータ複製部４２２が分配出力したホストデータは、図４で説明したバッファメモリ回路４３の各端末に対応するＦＩＦＯバッファに格納され蓄積される。
【００７４】
ホストデータ複製部４２２は、複製したホストデータの分配出力が完了すると分配出力完了通知を出力する。ここでは、ホストデータを分配出力したことを以てホストデータがそれぞれのＦＩＦＯバッファに蓄積されたと見なしている。もちろん、前述したように、バッファメモリ回路４３からＦＩＦＯバッファの蓄積完了通知を受信するように構成している場合は、バッファメモリ回路４３からの蓄積完了通知受信を以て分配出力完了通知を出力すればよい。
【００７５】
ホストデータ送信制御部４２３は、図５で説明した端末データ制御回路４１の端末データ受信完了通知部４１４から端末データ受信完了通知を受信する。また、ホストデータ送信制御部４２３は、複製したホストデータの分配出力が完了したことを示す分配出力完了通知をホストデータ複製部４２２から受信する。
【００７６】
ホストデータ送信制御部４２３は、分配出力完了通知を受信し、かつ、端末データ受信完了通知を受信したときに、図４で説明したバッファメモリ回路４３に送信指示を出力して、全てのＦＩＦＯバッファを解放させる。これにより、ＦＩＦＯバッファに蓄積されたホストデータが各端末に送信される。
【００７７】
ホストデータ送信制御部４２３は、送信指示を出力して全てのＦＩＦＯバッファを解放させた後に、受信した端末データ受信完了通知と分配出力完了通知を削除し、リセット通知を端末データ制御回路４１に送る。これは、前述したように、次の通信に備えて関連回路をリセットするものである。
【００７８】
上述した端末データ制御回路４１とホストデータ制御回路４２の動作を、それぞれ図７と図８を参照して説明する。
【００７９】
図７は、端末データ制御回路４１が、複数台の端末から送信された端末データを、１台のホストに送信する動作を示すフローチャートである。
【００８０】
複数台の端末１０のそれぞれの端末１１、１２乃至１ｎは非同期で通信を開始して、ホスト２０に対して端末データを送信する。例えば、電源起動時にホスト２０が備えるメモリのアドレス１００番地から１０１番地、１０２番地・・・と順番にデータ読み出しの処理を行うものとすると、端末データとしてリードフラグとアドレス情報（１００番地）を含んだデータを送信する。
【００８１】
各端末は同時に通信を開始するが、起動時間の端末毎のばらつきや、端末の実装位置によってそれぞれの端末データが端末データ制御回路４１に到着する時間が若干異なる。端末データ制御回路４１では、複数台の端末１０のそれぞれの端末１１、１２乃至１ｎが送信した端末データを到着順に受信する（Ｓ２０１）。
【００８２】
端末データ制御回路４１では、受信した端末データが最先着であるかどうかを確認する（Ｓ２０２）。
【００８３】
受信した端末データが最先着のものである場合（Ｓ２０２、Ｙｅｓ）、端末データ制御回路４１はこの最先着の端末データをそのままホスト２０へ送信する（Ｓ２０３）。そして、ステップＳ２０１に戻り、後続の端末データを順次受信する。
【００８４】
ステップＳ２０２の処理で、受信した端末データが最先着のものでない場合、（Ｓ２０２、Ｎｏ）、端末データ制御回路４１では、受信した端末データが最後着であるかどうかを確認する（Ｓ２０４）。つまり、端末データ制御回路４１は各端末が送信した端末データの到着数が、接続されている全ての端末数になるまでカウントし、到着数＝端末数になったときに、最後着の端末データを受信したことを識別する。
【００８５】
ステップＳ２０４の処理で、受信した端末データが最後着のものでない場合、（Ｓ２０４、Ｎｏ）、端末データ制御回路４１は、受信した端末データを廃棄し（Ｓ２０５）、ステップＳ２０１に戻り、後続の端末データを順次受信する。
【００８６】
ステップＳ２０４の処理で、受信した端末データが最後着のものである場合、（Ｓ２０４、Ｙｅｓ）、端末データ制御回路４１は複数台の端末１０の全ての端末１１、１２乃至１ｎからの端末データを受信したことを示す端末データ受信完了通知を出力する（Ｓ２０６）。なお、受信した最後着の端末データはステップＳ２０６において廃棄される。
【００８７】
続いて、ホストデータ制御回路４２の動作を説明する。
【００８８】
図８は、ホストデータ制御回路４２が、１台のホスト２０から受信したホストデータを、複数台の端末１０のそれぞれの端末１１、１２乃至１ｎに送信する動作を示すフローチャートである。
【００８９】
ホスト２０は、端末データ制御回路４１から受信した最先着の端末データに基づいた処理を実行し、指定されたメモリのアドレス（１００番地）に格納されたデータを読み出して、ホストデータとしてホストデータ制御回路４２に送信する。
【００９０】
ホストデータ制御回路４２は、ホスト２０から返送されたホストデータを受信する（Ｓ３０１）。
【００９１】
そして、ホストデータ制御回路４２は、この受信したホストデータを複製してバッファメモリ回路４３の各ＦＩＦＯバッファに送信する（Ｓ３０２）。ホストデータは複数台の端末１０のそれぞれの端末１１、１２乃至１ｎに対して複製され、対応するＦＩＦＯバッファに分配出力される。ステップＳ３０３で、全てのＦＩＦＯバッファにホストデータを蓄積したかどうかを確認する。
【００９２】
このステップＳ３０２とＳ３０３の処理は、ホストデータ複製部４２２で実行され、複製したホストデータの分配出力が完了すると分配出力完了通知が出力される。前述したように、ホストデータの分配出力が完了したことを以てホストデータがそれぞれのＦＩＦＯバッファに蓄積されたと見なしている。もちろん、バッファメモリ回路４３からＦＩＦＯバッファの蓄積完了通知を受信するように構成している場合は、バッファメモリ回路４３からの蓄積完了通知で確認できる。
【００９３】
全てのＦＩＦＯバッファにホストデータを蓄積したことを確認すると（Ｓ３０３、Ｙｅｓ）、ホストデータ制御回路４２は、端末データ制御回路４１から端末データ受信完了通知を受信したかどうかを確認する（Ｓ３０４）。
【００９４】
ステップＳ３０４で、端末データ受信完了通知をまだ受信していない場合（Ｓ３０４、Ｎｏ）、端末データ制御回路４１からの端末データ受信完了通知を待受ける。
【００９５】
端末データ受信完了通知を受信した場合（Ｓ３０４、Ｙｅｓ）、ホストデータ制御回路４２は、送信指示を出力して全てのＦＩＦＯバッファを解放する（Ｓ３０５）。これにより、ＦＩＦＯバッファに蓄積されたホストデータが各端末に送信される。また、ステップＳ３０５では、送信指示を出力して全てのＦＩＦＯバッファを解放させた後に、受信した端末データ受信完了通知と分配出力完了通知を削除し、リセット通知を端末データ制御回路４１に送る。リセット通知は、前述したように、次の通信に備えて関連回路をリセットするものである。
【００９６】
複数台の端末１０のそれぞれの端末１１、１２乃至１ｎの全てが、対応するＦＩＦＯバッファからホストデータを受信することで一連の通信が完了する。
【００９７】
つまり、各端末は、送信したリードフラグとアドレス情報（１００番地）を含んだ端末データに対して、指定されたメモリのアドレス（１００番地）からホスト２０が読み出して返送したデータであるホストデータを受信する。そして、各端末はリードフラグと次に読み出すべきアドレス情報（１０１番地）を含んだ端末データをホスト２０に対して送信し、必要データの読み出しが完了するまで順次繰り返して次以降の通信を実行する。
【００９８】
なお、上記の説明ではステップＳ３０３で全てのＦＩＦＯバッファにホストデータを蓄積したかどうかを確認し、ステップＳ３０４で端末データ制御回路４１からの端末データ受信完了通知の受信を確認している。しかし、これらのステップの順番は逆であってもかまわない。つまり、端末データ制御回路４１からの端末データ受信完了通知の受信を確認し、その後に全てのＦＩＦＯバッファにホストデータを蓄積したかどうかを確認するようにしてもよい。ホストデータ制御回路４２は、全てのＦＩＦＯバッファへのホストデータの格納完了と端末データ制御回路４１からの受信完了通知の受信をもって送信指示を出力する。
【００９９】
以上に説明したように、複数台の端末と１台のホスト間でシリアル通信を行う場合、各端末とホスト間での逐次処理が行われ、端末の数が増加するほど全体としての通信時間が端末の数だけ増加していた。例えば、複数台の端末と１台のホストとの全体としての通信時間をＴ、ホストが一つの端末との通信を行う時間をＳ、端末の数をＮとすると、逐次処理を行う場合には、Ｔ＝Ｓ×Ｎの通信時間を要した。
【０１００】
一方、本実施形態のデータ入出力制御装置を用いることにより、ホストは複数ある端末の中の一つの端末の端末データについて処理を行えば良いことになる。そのため、必要とする通信時間は、Ｔ＝Ｓ×１＋（データ入出力制御装置におけるデータの処理時間）と表すことができる。
【０１０１】
つまり、端末の数Ｎが増加した場合、逐次処理を行う場合には全体としての通信時間Ｔは端末数に比例して増加するのに対し、本実施形態では、端末の数Ｎに拠らず、全体としての通信時間Ｔは一定であるといえる。また、各端末は他の端末の通信状況に拠らず、タイミングを気にすることなく通信を行うことができるので、端末内の制御回路等の簡素化に寄与できる。また、ホストは複数ある端末の中の一つの端末のデータについて処理を行えば良いので、ホスト負荷の軽減に寄与できる。
【０１０２】
このように、本実施形態では複数台の端末と１台のホストが同一内容のデータでシリアル通信を行う環境において、各端末による逐次処理を行うことなく、ホストと各端末の相互間の通信における全体としての処理時間を最小限に抑えることができる。
【０１０３】
（第３の実施形態）
次に、図９を参照して第３の実施形態を説明する。
【０１０４】
図９は、本発明の第３の実施形態のデータ入出力制御装置の構成例を示すブロック図である。
【０１０５】
第３の実施形態のデータ入出力制御装置５０は、図４に示した第２の実施形態のデータ入出力制御装置４０に加えて、動作クロック供給回路５４を含む構成になっている。
【０１０６】
また、データ入出力制御装置５０にシリアル通信線により接続される複数台の端末１０のそれぞれの端末１１、１２乃至１ｎの動作速度は異なるものとして構成される。そして、データ入出力制御装置５０とホスト２０との間の動作速度は低速側の端末の動作速度に合わされて、最も遅い動作速度に設定されているものとする。
【０１０７】
動作クロック供給回路５４は、バッファメモリ回路５３の各ＦＩＦＯバッファに、対応する端末の動作速度の動作クロック信号をそれぞれ供給する。
【０１０８】
その他の構成については第２の実施形態で説明した各機能部ブロックの構成と同じなので、それらの説明は省略する。また、端末データ制御回路５１が複数台の端末１０のそれぞれの端末１１、１２乃至１ｎから端末データを受信し、最先着の端末データをホスト２０に送信する動作も第２の実施形態の動作と同じなので、その関連動作の説明は省略する。ここでは、ホストデータ制御回路５２がホスト２０からホストデータを受信する動作から説明する。
【０１０９】
ホスト２０から受信したホストデータはホストデータ制御回路５２で分配され、バッファメモリ回路５３の各ＦＩＦＯバッファに格納・蓄積される。
【０１１０】
ホストデータ制御回路５２は、全てのＦＩＦＯバッファにホストデータを蓄積し、かつ、端末データ制御回路５１から端末データ受信完了通知を受信すると送信指示を出力して全てのＦＩＦＯバッファを解放する。
【０１１１】
これにより、ホストデータが各端末に送信されるが、その際に、各ＦＩＦＯバッファでは、動作クロック供給回路５４から供給されたそれぞれの端末の動作速度に対応する動作クロック信号に乗せ換えてホストデータを各端末に送信する。
【０１１２】
従って、本実施形態のデータ入出力制御装置５０によれば、複数台の端末１０のそれぞれの端末１１、１２乃至１ｎと１台のホスト２０の動作速度が異なっている場合であっても、ホスト２０は最も遅い端末の動作速度に合わせた処理が行なえる。そして、ＦＩＦＯバッファの出力に際して、動作クロック供給回路５４が供給するそれぞれの端末の動作速度に対応した動作クロック信号に乗せ換えて処理することで、各端末の動作速度でホストデータを送信することができる。
【０１１３】
このように、本実施形態では複数台の端末と１台のホストが同一内容のデータでシリアル通信を行う環境において、各端末による逐次処理を行うことなく、ホストと各端末の相互間の通信における全体としての処理時間を最小限に抑えることができる。しかも、各端末の動作速度が異なる場合であっても、ホストは各端末のそれぞれの動作速度に合わせることなく通信することができる。
【０１１４】
なお、上述した各実施形態のデータ入出力制御装置は、ＣＰＵ（Central Processing Unit）にコンピュータプログラムを実行させることで任意の処理を行う、一般的なコンピュータ装置と同様のハードウェア構成によって実現しても良い。つまり、ＣＰＵが、不揮発メモリ等で構成される補助記憶部に格納されているプログラムを、ＲＡＭ（Random Access Memory）等の主記憶部にロードして実行することで、上述したデータ入出力制御装置の各機能をソフトウェア的に実現しても良い。
【符号の説明】
【０１１５】
１０、１１、１２、１ｎ    端末
１０１、１０２、１０ｎ    端末
２０、２００    ホスト
３０、４０、５０    データ入出力制御装置
３１    データ中継手段
３２    バッファメモリ手段
４１、５１    端末データ制御回路
４２、５２    ホストデータ制御回路
４３、５３    バッファメモリ回路
５４    動作クロック供給回路
４１１    端末データインタフェース部
４１２、４２１    ホストデータインタフェース部
４１３    端末データ選択部
４１４    端末データ受信完了通知部
４２２    ホストデータ複製部
４２３    ホストデータ送信制御部
【図１】
2018116356.tif 000003
【図２】
2018116356.tif 000004
【図３】
2018116356.tif 000005
【図４】
2018116356.tif 000006
【図５】
2018116356.tif 000007
【図６】
2018116356.tif 000008
【図７】
2018116356.tif 000009
【図８】
2018116356.tif 000010
【図９】
2018116356.tif 000011