(57)【要約】【課題】装置間のデータ通信において、装置内のバッファメモリとメインメモリなどとの間の一つの転送経路が使用不能になっても転送を続行できるデータ通信システムを提供する。【解決手段】例えばプリンタと他の装置との間でデータ通信をおこなうデータ通信システムにおいて、プリンタメインメモリ３と、通信データを一時的に格納するバッファメモリ１３、１４、１５とをプリンタ内に備え、そのバッファメモリ１３、１４、１５とプリンタメインメモリ３との間にＤＭＡインタフェース１７とＰＩＯインタフェース１８を備え、通常はＤＭＡインタフェース１７を使用し、そのＤＭＡインタフェース１７が使えなくなった場合にＰＩＯインタフェース１８に切り換える構成にした。【選択図】　　　図１
2004078877.tif 000002
【特許請求の範囲】
【請求項１】
装置間でデータ通信をおこなうデータ通信システムにおいて、各装置内にメインメモリと通信データを一時的に格納するバッファメモリと、該バッファメモリと前記メインメモリとの間に複数のデータ転送用インタフェースと、を備えたことを特徴とするデータ通信システム。
【請求項２】
請求項１記載のデータ通信システムにおいて、データ転送用インタフェースの一つはＤＭＡ転送用インタフェースであり、他の一つはＰＩＯ転送用インタフェースであり、前記ＤＭＡ転送用インタフェースとＰＩＯ転送用インタフェースとを切り換えて用いる構成を備えたことを特徴とするデータ通信システム。
【請求項３】
請求項２記載のデータ通信システムにおいて、一つの装置がプリンタまたは大容量記憶装置であり、その装置内の前記バッファメモリとメインメモリとの間で通常はＤＭＡ転送用インタフェースを使用し、ＤＭＡ転送用インタフェースが使えなくなった場合に前記ＰＩＯ転送用インタフェースに切り換える構成を備えたことを特徴とするデータ通信システム。
【請求項４】
請求項１記載のデータ通信システムにおいて、装置間のデータ通信がＵＳＢ、ＩＥＥＥ１３９４ａ、またはＩＥＥＥ１２８４規格に基づいたデータ通信であることを特徴とするデータ通信システム。
【請求項５】
請求項１記載のデータ通信システムにおいて、装置間のデータ通信がＵＳＢ規格に基づいたデータ通信であり、前記バッファメモリがＵＳＢ規格で定められたバルク転送用エンドポイントＦＩＦＯメモリであることを特徴とするデータ通信システム。
【請求項６】
請求項５記載のデータ通信システムにおいて、バルクアウト転送用エンドポイントＦＩＦＯ内に格納されたパケットデータ数の初期値およびＤＭＡ転送中の前記バルクアウト転送用エンドポイントＦＩＦＯ内データ数の現状値を記憶するデータ数記憶手段を備えたことを特徴とするデータ通信システム。
【請求項７】
請求項６記載のデータ通信システムにおいて、前記バルクアウト転送用エンドポイントＦＩＦＯの読み出しアドレスまたはその増減値を書き込むアドレスデータ記憶手段を備え、ＰＩＯ転送に切り替えたとき、ＤＭＡコントローラ内部に取り残されたデータ数の分だけ前記読み出しアドレスを戻すように前記アドレスデータ記憶手段にデータを書き込む構成にしたことを特徴とするデータ通信システム。
【請求項８】
請求項５記載のデータ通信システムにおいて、バルクイン転送用エンドポイントＦＩＦＯ内に格納するパケットデータ数の最終値およびＤＭＡ転送中のＦＩＦＯ内データ現状値を記憶するデータ数記憶手段を備えたことを特徴とするデータ通信システム。
【請求項９】
請求項８記載のデータ通信システムにおいて、前記バルクイン転送用エンドポイントＦＩＦＯの書き込みアドレスまたはその増減値を書き込むアドレスデータ記憶手段を備え、ＰＩＯ転送に切り替えたとき、ＤＭＡコントローラ内部に取り残されたデータ数の分だけ前記書き込みアドレスを戻すように前記アドレスデータ記憶手段にデータを書き込む構成を備えたことを特徴とするデータ通信システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、例えばパーソナルコンピュータとプリンタとの間など複数の装置間で、ＵＳＢ、ＩＥＥＥ１３９４ａ、ＩＥＥＥ１２８４規格などによったデータ通信をおこなうデータ通信システムに関する。
【０００２】
【従来の技術】
ＵＳＢ（Ｕｎｉｖｅｒｓａｌ　Ｓｅｒｉａｌ　Ｂｕｓ）は、パーソナルコンピュータ（以下、ＰＣと称す）と複数のＰＣ周辺装置とを接続し、データ通信を行うために策定されたシリアルバスインターフェース規格である。従来のインターフェース規格にはない簡便な接続性および拡張性などを特徴としており、近年、マウス、キーボード、プリンタ、スキャナ、モデムなど、ＰＣ周辺装置の多くがＵＳＢに対応するようになってきている。このＵＳＢには、ＰＣ周辺装置（ＵＳＢデバイス）の種類に応じてＵＳＢデバイスクラス仕様が定められており、プリンタはプリンタクラス仕様、ハードディスク装置（ＨＤＤ）や光ディスク装置などはマスストレージクラス仕様に準拠することにより共通のデバイスドライバソフトウェアを使用することが可能となる。
このようなプリンタクラス仕様またはマスストレージクラス仕様のＵＳＢを実現するためには、ＵＳＢデバイスコントローラ内にバルク転送用のエンドポイントバッファを備えることが必要であり、そのようなバッファメモリを備えることによりＰＣとＵＳＢデバイス間でエラーのない大容量データ転送をおこなうことができる。また、データ転送速度向上の目的で、エンドポイントバッファと、プリンタ側メインメモリまたはストレージデバイスの記憶媒体との間のデータ転送はＤＭＡ転送方式を採用するのが一般的である。
なお、特開２００１−１４７８９０公報に示された従来技術では、ＰＣとプリンタ間のデータ転送にＩＥＥＥ１２８４規格を使用しているが、このＩＥＥＥ１２８４インタフェース部を２個以上備え、複数のＰＣからのデータを切り換えて使用する。また、特開平７−１２９５０４号公報に示された従来技術では、ホスト装置と周辺装置間のデータ通信用に２つのバッファを備え、データ転送容量に応じて大容量バッファと小容量バッファを切り換えてデータ通信をおこなうことが開示されている。
【特許文献１】特開２００１−１４７８９０公報
【特許文献２】特開平７−１２９５０４号公報
【０００３】
【発明が解決しようとする課題】
しかしながら、特開２００１−１４７８９０公報および特開平７−１２９５０４号公報に示された従来技術を含むこれまでに示された従来技術では、バッファメモリは複数個備えているが、プリンタなど周辺装置のメインメモリにつながる切替回路の先のデータ転送経路は一系統になっているので、何らかの原因でこのデータ転送経路が使えない状態になった場合に、データ転送経路に関連した部分を初期化する必要があった。また、その際、転送途中のデータおよび転送済みのデータに関しても、あるまとまったファイル全体を破棄しなければならなかった。破棄したファイルのデータは初期化完了後に再度最初から転送する必要があり、特に転送データファイルが大きい場合はＰＣ−デバイス間のデータ通信性能に大きな影響を及ぼしてしまう。
本発明の目的は、このような従来技術の問題を解決することにあり、具体的には、例えばＰＣとＰＣ周辺装置（デバイス）間のデータ通信において、バッファメモリとデバイス側メインメモリなど記憶媒体との間の一つの転送経路が使用不能になった場合であっても、転送済みデータファイルが無駄に破棄されてしまうことを防止することができるデータ通信システムを提供することにある。
【０００４】
【課題を解決するための手段】
前記の課題を解決するために、請求項１記載の発明では、装置間でデータ通信をおこなうデータ通信システムにおいて、各装置内にメインメモリと通信データを一時的に格納するバッファメモリとを備え、前記バッファメモリとメインメモリとの間に複数のデータ転送用インタフェースを備えた。
また、請求項２記載の発明では、請求項１記載の発明において、データ転送用インタフェースの一つはＤＭＡ転送用インタフェースであり、他の一つはＰＩＯ転送用インタフェースであり、前記ＤＭＡ転送用インタフェースとＰＩＯ転送用インタフェースとを切り換えて用いる構成にした。
また、請求項３記載の発明では、請求項２記載の発明において、一つの装置がプリンタまたは大容量記憶装置であり、その装置内の前記バッファメモリとメインメモリとの間で通常はＤＭＡ転送用インタフェースを使用し、ＤＭＡ転送用インタフェースが使えなくなった場合にＰＩＯ転送用インタフェースに切り換える構成にした。
また、請求項４記載の発明では、請求項１記載の発明において、装置間のデータ通信がＵＳＢ、ＩＥＥＥ１３９４ａ、またはＩＥＥＥ１２８４規格によったデータ通信である構成にした。
また、請求項５記載の発明では、請求項１記載の発明において、装置間のデータ通信がＵＳＢ規格によったデータ通信であり、バッファメモリがＵＳＢ規格で定められたバルク転送用エンドポイントＦＩＦＯメモリである構成にした。
また、請求項６記載の発明では、請求項５記載の発明において、バルクアウト転送用エンドポイントＦＩＦＯ内に格納されたパケットデータ数の初期値およびＤＭＡ転送中の前記バルクアウト転送用エンドポイントＦＩＦＯ内データ数の現状値を記憶するデータ数記憶手段とを備えた。
また、請求項７記載の発明では、請求項６記載の発明において、前記バルクアウト転送用エンドポイントＦＩＦＯの読み出しアドレスまたはその増減値を書き込むアドレスデータ記憶手段を備え、ＰＩＯ転送に切り替えたとき、ＤＭＡコントローラ内部に取り残されたデータ数の分だけ前記読み出しアドレスを戻すように前記アドレスデータ記憶手段にデータを書き込む構成にした。
また、請求項８記載の発明では、請求項５記載の発明において、バルクイン転送用エンドポイントＦＩＦＯ内に格納するパケットデータ数の最終値およびＤＭＡ転送中のＦＩＦＯ内データ現状値を記憶するデータ数記憶手段を備えた。
また、請求項９記載の発明では、請求項８記載の発明において、前記バルクイン転送用エンドポイントＦＩＦＯの書き込みアドレスまたはその増減値を書き込むアドレスデータ記憶手段を備え、ＰＩＯ転送に切り替えたとき、ＤＭＡコントローラ内部に取り残されたデータ数の分だけ前記書き込みアドレスを戻すように前記アドレスデータ記憶手段にデータを書き込む構成にした。
【０００５】
【発明の実施の形態】
この実施例のデータ通信システムは、ＰＣ周辺装置（以下、デバイスと称す）内のバッファメモリとメインメモリなど記憶媒体との間のデータ通信経路を複数系統設けたことを特徴としている。例えば経路は２系統とし、そのうち１系統はＤＭＡ転送用、もう１系統はＰＩＯ（Ｐｒｏｇｒａｍｅｄ　Ｉ／Ｏ）転送である。２系統共にＤＭＡ転送可能な経路にすることも可能であるが、この場合、ＤＭＡコントローラも２個必要になり、回路規模が増大する。その点ＰＩＯ転送経路は、内部回路制御に使われる経路と共通にすることが可能であり、回路規模の増大なしにデータ転送用経路を追加することができる。
以下、図面により本発明の実施の形態をＵＳＢ規格のプリンタを例に詳細に説明する。
【０００６】
図１は本発明の一実施例を示すプリンタ要部の構成ブロック図である。なお、図１では送受信データおよび制御データの経路のみ示しており、それ以外の信号線は省略している。
図示したように、この実施例のプリンタは、ＵＳＢ規格に従ったデータ通信制御を行うＵＳＢデバイスコントローラ１、プリンタ全体を制御するＣＰＵ２、プリンタメインメモリ３、ＤＭＡコントローラ（以下、ＤＭＡＣと称す）４を備え、ＣＰＵ２、プリンタメインメモリ３、およびＤＭＡＣ４はシステムバス５に接続されている。
また、ＵＳＢデバイスコントローラ１は、トランシーバ（送信回路）／レシーバ（受信回路）を含み、データ送受信／パラレル−シリアル変換などをおこなう物理層回路ブロック（以下、ＰＨＹと称す。ＰＨＹはＰｈｙｓｉｃａｌの略）１１、プロトコル（伝送制御手順）処理／入出力信号処理などをおこなう論理層回路ブロック（以下、ＳＩＥ（Ｓｅｒｉａｌ　Ｉｎｔｅｒｆａｃｅ　Ｅｎｇｉｎｅ）と称す）１２、ＦＩＦＯ（ＦｉｒｓｔＩｎ　Ｆｉｒｓｔ　Ｏｕｔ）メモリとして実現した、送受信データを格納する３種類の送受信バッファメモリ（ＵＳＢのプリンタクラス仕様におけるエンドポイントバッファ）であるＥＰ０送受信バッファ１３、ＥＰ１受信バッファ１４、ＥＰ２送信バッファ１５、ＵＳＢデバイスコントローラ１の制御およびＵＳＢデバイスコントローラ１内各ブロックの状態確認をおこなうための情報が書き込まれ、ＣＰＵ２からアクセス（読み書き）される内部レジスタ１６、エンドポイントバッファ（３種類の送受信バッファメモリ）１３、１４、１５とプリンタメインメモリ３との間のＤＭＡ転送をおこなうためのインタフェースであるＤＭＡ−Ｉ／Ｆ（ＤＭＡインタフェース）１７、ＰＩＯ転送用のインタフェースであるＰＩＯ−Ｉ／Ｆ１８などを備える。
【０００７】
なお、前記ＥＰ０送受信バッファ１３はＵＳＢのプリンタクラス仕様で言うＵＳＢデバイスエナメレーション（Ｅｎｕｍｅｒａｔｉｏｎ：ＵＳＢデバイスから取得したデータをもとにＰＣで行われる）／デバイス制御データ転送用のコントロール転送用エンドポイントバッファであり、ＥＰ１受信バッファ１４はプリントデータ転送用のバルクアウト転送用エンドポイントバッファであり、ＥＰ２送信バッファ１５はプリンタステータス（例えば紙なし、紙詰まりといったエラー状態など）データ転送用バルクイン転送用エンドポイントバッファである。また、前記したＤＭＡＣ４によるＤＭＡ転送はＣＰＵ処理を必要とするＰＩＯ転送に比べて高いデータ転送性能を持っている。また、この実施例の構成では、以下に示す４種類のデータ転送がＰＩＯ−Ｉ／Ｆ１８を介して実行可能である。
（ａ）内部レジスタ１６へのアクセス（図中の破線矢印）
（ｂ）ＥＰ０送受信バッファ１３とプリンタメインメモリ３との間のデータ転送（図中の点線矢印）
（ｃ）ＥＰ１受信バッファ１４とプリンタメインメモリ３との間のデータ転送（図中の点線矢印）
（ｄ）ＥＰ２送信バッファ１５とプリンタメインメモリ３との間のデータ転送（図中の点線矢印）
前記において、内部レジスタ１６へのアクセスはＣＰＵ２のコマンドにより適宜おこなわれ、これにより、ＵＳＢデバイスコントローラ１内各ブロックの状態確認およびＰＩＯ−Ｉ／Ｆ１８を介したデータ転送処理がおこなわれる。また、ＥＰ０送受信バッファ１３とプリンタメインメモリ３との間のデータ転送は、ＵＳＢコントロール転送データなどの転送であり、それほど高い転送性能は必要ないのでＰＩＯ転送を使用する。また、ＥＰ１受信バッファ１４とプリンタメインメモリ３との間のデータ転送およびＥＰ２送信バッファ１５とプリンタメインメモリ３との間のデータ転送は通常ＤＭＡ−Ｉ／Ｆ１７を介したＤＭＡ転送を使用するが、この実施例では、ＤＭＡ−Ｉ／Ｆ１７が何らかの原因で使用できなくなった場合にＰＩＯ−Ｉ／Ｆ１８経由のデータ転送が可能な構成にしている。
【０００８】
図２に、この実施例の受信時の動作フローを示す。以下、図２に従って、受信時の動作フローを説明する。
まず、ＰＨＹ１１がＵＳＢケーブルを介して入力されるシリアルデータを受信し（Ｓ１）、パラレルデータに変換する（Ｓ２）。そして、このパラレルデータを受け取ったＳＩＥ１２はそのデータがＵＳＢデバイスエナメレーション／デバイス制御データか否かを判定し（Ｓ３）、ＵＳＢデバイスエナメレーション／デバイス制御データであれば（Ｓ３でＹｅｓ）、そのデータをＥＰ０送受信バッファ１３に格納して（Ｓ４）、ステップＳ６へ進む。それに対して、データがプリントデータであれば（Ｓ３でＮｏ）、そのデータをＥＰ１受信バッファ１４に格納して（Ｓ５）、ステップＳ６へ進む。
そして、ステップＳ６では、ＵＳＢデバイスコントローラ１からの割り込みによりＥＰ０送受信バッファ１３またはＥＰ１受信バッファ１４にデータが格納されたことを知ったＣＰＵ２が内部レジスタ１６の内容を参照し、ＥＰ０送受信バッファ１３への格納であれば（Ｓ６でＹｅｓ）、ＰＩＯ−Ｉ／Ｆ１８を介してＥＰ０送受信バッファ１３からプリンタメインメモリ３へのデータ転送をおこなう（Ｓ７）。それに対して、ＥＰ１受信バッファ１４への格納であれば（Ｓ６でＮｏ）、後述のようにしてＤＭＡ−Ｉ／Ｆ１７またはＰＩＯ−Ｉ／Ｆ１８を介してＥＰ１受信バッファ１４からプリンタメインメモリ３へのデータ転送をおこなう（Ｓ８）。
【０００９】
さて、前記したＥＰ１受信バッファ１４からプリンタメインメモリ３へのデータ転送であるが、ＤＭＡ−Ｉ／Ｆ１７経由の転送からＰＩＯ−Ｉ／Ｆ１８経由の転送に切り換えた場合に転送データの連続性を保証する目的で、以下に示す４種類のレジスタを内部レジスタ１６に備える。
（１）ＤＭＡ−Ｉ／Ｆ１７経由の転送とＰＩＯ−Ｉ／Ｆ１８経由の転送との切り換え設定をおこなうレジスタＡ
（２）ＥＰ１受信バッファ１４に格納されたパケットデータ数の初期値（取り出しが始まる前の格納データ数）を格納するレジスタＢ
（３）ＥＰ１受信バッファ１４に格納されているパケットデータ数の現状値（格納直後はレジスタＢと同じ値であり、取り出されることにより減少する）を格納するレジスタＣ
（４）ＥＰ１受信バッファ１４の読み出しアドレス値の増減値を格納するレジスタＤ（ＣＰＵ２が書き込める）
なお、レジスタＤの機能をレジスタＣに兼ねさせる構成も可能であるし、レジスタＤに読み出しアドレス値を書き込むようにしてもよい。また、この実施例では、請求項６記載のデータ数記憶手段がレジスタＢおよびレジスタＣにより実現され、請求項７記載のアドレスデータ記憶手段がレジスタＤにより実現される。
【００１０】
このようなレジスタを使用しておこなわれるデータ転送経路の切り換えと転送データの保証処理の動作フローを図３に示す。以下、図３に従って、この動作フローを説明する。
まず、レジスタＡを、ＤＭＡ−Ｉ／Ｆ１７を選択する設定値にしておく（Ｓ１１）。そして、ホストＰＣからバルクアウト転送データ、つまりプリントデータを受信すると（Ｓ１２）、そのデータをＥＰ１受信バッファ１４に格納する（Ｓ１３）。そして、そのときにＥＰ１受信バッファ１４に格納したデータ数（データ数の初期値）をレジスタＢに書き込む。なお、プリントデータはＵＳＢ仕様に従い、５１２バイト単位のパケットに分割されて送られてくるが、最終データは５１２バイト未満のパケット（ショートパケットと呼ばれる）になる。但し、プリントデータが５１２バイトの整数倍の場合は最後に送られてくるのはデータ数ゼロのパケットである。したがって、レジスタＢの値は０から５１２の範囲の値となる。
続いて、レジスタＢの値が０でないことを確認し、ＤＭＡＣ４がＤＭＡ−Ｉ／Ｆ１７経由でＤＭＡ転送を開始する（Ｓ１４）。このときＤＭＡ転送によりＥＰ１受信バッファ１４から読み出されたデータバイト数の分だけレジスタＣの値は減少するが、レジスタＢの値は変化しない。
【００１１】
この間、ＣＰＵ２は、ＤＭＡ−Ｉ／Ｆ１７経由の経路が使用可能状態を持続しているかどうかを監視しており（Ｓ１５）、使用不能になると（Ｓ１５でＮｏ）、その時点で、レジスタＡの値をＰＩＯ−Ｉ／Ｆ１８を使用する設定に切り換える（Ｓ１６）。そして、ＣＰＵ２はレジスタＢとレジスタＣにアクセスし、ＥＰ１受信バッファ１４のデータ数の初期値と現状値を確認する。なお、ＤＭＡＣ４には通常転送用バッファが設けられており、ＤＭＡ−Ｉ／Ｆ１７が不能になった時点でこのバッファにデータが取り残される可能性がある。そのため、ＣＰＵ２はプリンタメインメモリ３に格納されたデータ数と前記初期値および現状値からＤＭＡＣ４内部に取り残されたデータ数を判断する。
次に、ＣＰＵ２はレジスタＤにアクセスして、ＤＭＡＣ４内部に取り残されたデータ数の分だけＥＰ１受信バッファ１４の読み出し開始アドレスを戻すように増減値を書き込む。これにより、ＵＳＢデバイスコントローラ１はその増減値に従ってレジスタＣの値を戻す（増加させる）（Ｓ１７）。
続いて、レジスタＣの値が読み出すべきデータ数に変更されたことを確認後、ＰＩＯ−Ｉ／Ｆ１８経由のデータ転送を開始し、レジスタＣの値が　０　になるまでデータを転送する（Ｓ１８）。
一方、ＤＭＡ−Ｉ／Ｆ１７経由の経路が使用可能状態を持続しているならば（Ｓ１５でＹｅｓ）、ＤＭＡ−Ｉ／Ｆ１７経由のデータ転送を続行する（Ｓ１９）。
【００１２】
また、プリンタメインメモリ３からＥＰ２送信バッファ１５へのデータ転送をＤＭＡ−Ｉ／Ｆ１７経由の転送からＰＩＯ−Ｉ／Ｆ１８経由の転送に切り換える場合は、以下に示す３種類のレジスタを内部レジスタに実装することにより、ＥＰ１受信バッファ１４の場合と同じく転送データの連続性を保証することが可能である。
（１）ＤＭＡ−Ｉ／Ｆ１７経由の転送とＰＩＯ−Ｉ／Ｆ１８経由の転送を切り換える設定をおこなうレジスタＥ
（２）ＥＰ２送信バッファ１５に転送するパケットデータ数の最終値を格納するレジスタＦ
（３）ＥＰ２送信バッファ１５に格納されたパケットデータ数の現状値を格納するレジスタＧ
（４）ＥＰ２送信バッファ１５の書き込みアドレス値の増減値を格納するレジスタＨ（ＣＰＵ２が書き込める）
【００１３】
なお、この実施例では、請求項８記載のデータ数記憶手段がレジスタＦおよびレジスタＧにより実現され、請求項９記載のアドレスデータ記憶手段がレジスタＨにより実現される。以下、図４に従って、この動作フローを説明する。
まず、レジスタＥをＤＭＡ−Ｉ／Ｆ１７を選択する設定値にしておく（Ｓ２１）。そして、バルクイン転送によりホストＰＣに転送するデータ数の最終値をレジスタＦに書き込む（Ｓ２２）。なお、レジスタＦへの書き込みはＤＭＡＣ４またはＣＰＵ２のどちらがおこなっても構わない。レジスタＦの値は０から５１２の範囲の値となる。
続いて、ＤＭＡＣ４がＤＭＡ−Ｉ／Ｆ１７経由でＤＭＡ転送を開始する（Ｓ２３）。このとき、ＤＭＡ転送によりＥＰ２送信バッファ１５に書き込まれたデータバイト数の分だけレジスタＧの値は増加するが、レジスタＦの値は変化しない。
その後、ＣＰＵ２はＤＭＡ−Ｉ／Ｆ１７経由の経路の使用可否状態を監視し（Ｓ２４）、使用不能になったならば（Ｓ２４でＮｏ）、その時点でレジスタＥの値をＰＩＯ−Ｉ／Ｆ１８を使用する設定に切り換える（Ｓ２５）。そして、ＣＰＵ２はレジスタＦとレジスタＧにアクセスし、ＥＰ２送信バッファ１５のデータ数最終値と現状値を確認して、最終値と現状値から未転送データ数を求める（Ｓ２６）。
さらに、ＤＭＡＣ４内に転送すべきデータが取り残されている可能性があり、そのため、ＰＩＯ−Ｉ／Ｆ１８経由の転送をそのまま開始すると転送データの連続性が保証されないので、前記した受信時の場合と同様にしてＤＭＡＣ４内の取り残し分を求め、ＣＰＵ２はレジスタＨにアクセスして、ＤＭＡＣ４内部に取り残されたデータ数の分だけＥＰ２送信バッファ１５への書き込み開始アドレスを戻すように増減値を書き込む。これにより、ＵＳＢデバイスコントローラ１はその増減値に従ってレジスタＧの値を戻す（増加させる）（Ｓ２７）。
続いて、プリンタメインメモリ３の読み出しアドレスを未転送データの先頭になるように設定し、ＰＩＯ−Ｉ／Ｆ１８経由のデータ転送を行う（Ｓ２８）。
一方、ＤＭＡ−Ｉ／Ｆ１７経由の経路が使用可能状態を持続しているならば（Ｓ２４でＹｅｓ）、ＤＭＡ−Ｉ／Ｆ１７経由のデータ転送を続行する（Ｓ２９）。
【００１４】
以上、請求項記載の複数の装置がＰＣとプリンタである場合について説明したが、複数の装置はこれら２つに制限されない。例えばプリンタの代わりに大容量記憶装置であってもよいし、それ以外であってもよい。また、ＰＣの代わりに他の情報処理装置であってもよい。複数の装置がいずれもＰＣであってもよい。
また、前記においては、装置間のデータ通信がＵＳＢ規格によった場合で説明したが、ＩＥＥＥ１３９４ａ、またはＩＥＥＥ１２８４規格によったデータ通信でもよい。
【００１５】
【発明の効果】
以上説明したように、本発明によれば、請求項１記載の発明では、データ通信をおこなう各装置内において、通信データが一時的にバッファメモリに格納され、そのバッファメモリとメインメモリなどとの間では、複数のデータ転送用インタフェースのいずれかを用いてデータ転送をおこなうことができるので、バッファメモリとメインメモリなどとの間の一つのデータ転送用インタフェースが使用不能になった場合でも、別のデータ転送用インタフェースを用いて転送を続行することができる。
また、請求項２記載の発明では、請求項１記載の発明において、データ転送用インタフェースの一つはＤＭＡ転送用インタフェースであり、他の一つはＰＩＯ転送用インタフェースであり、そのＤＭＡ転送用インタフェースとＰＩＯ転送用インタフェースとを切り換えて用いることができるので、バッファメモリとメインメモリなどとの間のデータ転送時に例えばＤＭＡ転送用インタフェースが使用不能になった場合でも、ＰＩＯ転送用インタフェースを用いて転送を続行することができる。
また、請求項３記載の発明では、請求項２記載の発明において、一つの装置がプリンタまたは大容量記憶装置であり、その装置内のバッファメモリとメインメモリとの間で通常はＤＭＡ転送用インタフェースが使用され、ＤＭＡ転送用インタフェースが使えなくなった場合にＰＩＯ転送用インタフェースに切り換えられるので、通常はＤＭＡ転送用インタフェースを用いた高速データ転送が可能であるし、ＤＭＡ転送用インタフェースが使えなくなった場合でもデータ転送を続行することができる。
また、請求項４記載の発明では、請求項１記載の発明において、装置間のデータ通信がＵＳＢ、ＩＥＥＥ１３９４ａ、またはＩＥＥＥ１２８４規格によったデータ通信であるので、このような規格によったデータ通信時に請求項１記載の発明の効果を得ることができる。
また、請求項５記載の発明では、請求項１記載の発明において、装置間のデータ通信がＵＳＢ規格によったデータ通信であり、バッファメモリがＵＳＢ規格で定められたバルク転送用エンドポイントＦＩＦＯメモリであるので、このような構成によったデータ通信時に請求項１記載の発明の効果を得ることができる。
【００１６】
また、請求項６記載の発明では、請求項５記載の発明において、バルクアウト転送用エンドポイントＦＩＦＯ内に格納されたパケットデータ数の初期値およびＤＭＡ転送中の前記バルクアウト転送用エンドポイントＦＩＦＯ内データ数の現状値を記憶しておくことができるので、バルクアウト転送用エンドポイントＦＩＦＯを用いた受信時に、ＤＭＡ転送から例えばＰＩＯ転送に切り替える際、どこまで転送したかわかり、したがって、転送データの連続性を保証することが可能となり、転送済みデータが無駄に破棄されてしまうことを防止することができる。
また、請求項７記載の発明では、請求項６記載の発明において、バルクアウト転送用エンドポイントＦＩＦＯの読み出しアドレスまたはその増減値を書き込むことにより、ＰＩＯ転送に切り替えたとき、ＤＭＡコントローラ内部に取り残されたデータ数の分だけ読み出しアドレスを戻すことができるので、ＤＭＡコントローラ内部にデータが取り残されても転送データの連続性を保証することができる。
また、請求項８記載の発明では、請求項５記載の発明において、バルクイン転送用エンドポイントＦＩＦＯ内に格納するパケットデータ数の最終値およびＤＭＡ転送中のＦＩＦＯ内データ現状値を記憶しておくことができるので、バルクイン転送用エンドポイントＦＩＦＯを用いた送信時に、ＤＭＡ転送から例えばＰＩＯ転送に切り替える際、どこまで転送したかわかり、したがって、転送データの連続性を保証することが可能となり、転送済みデータが無駄に破棄されてしまうことを防止することができる。
また、請求項９記載の発明では、請求項８記載の発明において、バルクイン転送用エンドポイントＦＩＦＯの書き込みアドレスまたはその増減値を書き込むことにより、ＰＩＯ転送に切り替えたとき、ＤＭＡコントローラ内部に取り残されたデータ数の分だけ書き込みアドレスを戻すことができるので、ＤＭＡコントローラ内部にデータが取り残されても転送データの連続性を保証することができる。
【図面の簡単な説明】
【図１】本発明の一実施例を示すプリンタ要部の構成ブロック図である。
【図２】本発明の一実施例を示すデータ通信システム要部の動作フロー図である。
【図３】本発明の一実施例を示すデータ通信システム要部の他の動作フロー図である。
【図４】本発明の一実施例を示すデータ通信システム要部の他の動作フロー図である。
【符号の説明】
１　ＵＳＢデバイスコントローラ、２　ＣＰＵ、３　プリンタメインメモリ、４　ＤＭＡコントローラ、５　システムバス、１１　物理層回路ブロック、１２論理層回路ブロック、１３　ＥＰ０送受信バッファ、１４　ＥＰ１受信バッファ、１５　ＥＰ２送信バッファ、１６　内部レジスタ、１７　ＤＭＡ−Ｉ／Ｆ、１８　ＰＩＯ−Ｉ／Ｆ
【図１】
2004078877.tif 000003
【図２】
2004078877.tif 000004
【図３】
2004078877.tif 000005
【図４】
2004078877.tif 000006