(57)【要約】【課題】ホストコンピュータとデータ通信装置との間に設定される複数の論理的なデータチャネルを介して行われるデータ通信において、通信パフォーマンスの良いデータ転送を行う。【解決手段】複数の論理的なデータチャネルのうち１つのデータチャネルを介して、ホストコンピュータ１００から定期的に問い合わせを行い（ステップＳ１１）、問い合わせに応じて、ホストコンピュータ１００へ送信する送信データの有無を示すデバイス送信状態を含む通信ステータスを送信し（ステップＳ１２）、デバイス送信状態に基づき送信データが有ると判断すると送信データの送信要求を行い（ステップＳ１４）、該当するデータチャネルを介して送信データを送信する（ステップＳ１５）。【選択図】図４
2008107997.tif 000002
【特許請求の範囲】
【請求項１】
ホストコンピュータとデータ通信装置との間に設定される複数の論理的なデータチャネルを介して行われるＵＳＢのデータ通信方法であって、
前記複数の論理的なデータチャネルのうち何れかのデータチャネルを介して、前記ホストコンピュータから定期的に問い合わせを行い、
前記問い合わせに応じて、前記ホストコンピュータへ送信する送信データの有無を示すデバイス送信状態を含む通信ステータスを送信し、
前記デバイス送信状態に基づき前記送信データが有ると判断すると送信データの送信要求を行い、
該当するデータチャネルを介して送信データを送信することを特徴とするデータ通信方法。
【請求項２】
前記該当するデータチャネルのうち、優先度の高い順に前記送信データを送信することを特徴とする請求項１に記載のデータ通信方法。
【請求項３】
ホストコンピュータとの間に設定される複数の論理的なデータチャネルを介して、ＵＳＢのデータ通信を行うデータ通信装置であって、
前記ホストコンピュータへ送信する送信データが格納され、かつ前記データチャネルに対応するよう設定される複数の送信データ格納領域と、
各送信データ格納領域に前記送信データが格納されているか否かを示すデバイス送信状態を含む通信ステータスを生成する通信ステータス生成部と、を備え
前記ホストコンピュータからの送信データ送信要求に応じて、前記送信データが格納された送信データ格納領域から前記送信データを送信することを特徴とするデータ通信装置。
【請求項４】
前記データチャネルには送信データの送信優先度が設定されており、
前記ホストコンピュータから送信された送信データ送信要求に応じて、前記送信優先度にしたがって、前記送信データが格納された送信データ格納領域から前記送信データを送信することを特徴とする請求項３に記載のデータ通信装置。
【請求項５】
ホストコンピュータと、前記ホストコンピュータとの間に設定される複数の論理的なデータチャネルを介してＵＳＢのデータ通信を行うデータ通信装置と、を備えたデータ通信システムであって、
前記データ通信装置は、
前記ホストコンピュータへ送信する送信データが格納され、かつ前記データチャネルに対応するよう設定される複数の送信データ格納領域と、
各送信データ格納領域に前記送信データが格納されているか否かを示すデバイス送信状態を含む通信ステータスを生成する通信ステータス生成部と、を備え、
前記ホストコンピュータからの送信データ送信要求に応じて、前記送信データが格納された送信データ格納領域から前記送信データを送信することを特徴とするデータ通信システム。
【請求項６】
前記データチャネルには送信データの送信優先度が設定されており、
前記ホストコンピュータから送信された送信データ送信要求に応じて、前記送信優先度にしたがって、前記送信データが格納された送信データ格納領域から前記送信データを送信することを特徴とする請求項５に記載のデータ通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホストコンピュータとデータ通信装置との間に設定される複数の論理的なデータチャネルを介して行われるＵＳＢのデータ通信方法、データ通信装置及びデータ通信システムに関する。
【背景技術】
【０００２】
キーボードやマウス、モデム、ジョイスティックなどのデバイスとホストコンピュータを結ぶデータ伝送路の規格としてＵＳＢ（Universal Serial Bus）が周知である。ホストコンピュータとの間であまり大容量のデータをやりとりしない機器を接続するための規格としてはＵＳＢ１．１が知られているが、近年では、高速転送の需要を満たすことを目的としてＵＳＢ２．０(HI-SPEED USB)が策定されている。
【０００３】
ここで、ＵＳＢ規格を採用したデータ転送方式について図６を参照して簡単に説明する。ホストコンピュータとＵＳＢデバイスとがＵＳＢケーブルによって物理的に接続されると、物理的な通信路とは別に論理的な通信路が設定され、ホストコンピュータとＵＳＢデバイスとの間でデータ転送をするには、この論理的な通信路を介して行われる。ＵＳＢデバイスには送受信されるデータを格納しておくメモリ領域が予め設定されている。このメモリ領域は、一般にエンドポイントバッファと呼ばれ、ＵＳＢデバイスは複数のエンドポイントバッファを持つことが可能であり、各エンドポイントバッファとホストコンピュータ間を論理的な通信路によって接続されている。複数のエンドポイントバッファをグループ化することで、インターフェースという単位とすることができる。
【０００４】
特許文献１には、非同期転送用バッファ、同期転送用バッファ、及びデータ転送方式通知用バッファから構成されたエンドポイントバッファを備えた周辺機器（プリンタ）が開示されている。ここでは、ホストコンピュータとプリンタとの間は、これら３つのバッファに対応する３つの論理的な通信路によって通信可能に接続された構成となっている。
【０００５】
ホストコンピュータは、デバイスのＵＳＢアドレスと、エンドポイント番号を使ってアクセスし、各エンドポイントバッファに対してポーリングを行う。特許文献２には、複数のデータチャネルを所定の間隔でポーリングする方法が開示されている。
【０００６】
図６及び図７を参照して、エンドポイントバッファ０〜エンドポントバッファ３の合計４つのエンドポイントバッファを備えたデバイスと、ホストコンピュータとの間のデータ通信方法を説明する。なお、以下本明細書において各エンドポイントバッファとホストコンピュータとの間に構成される論理的な通信路をデータチャネルと呼ぶこととする。
【０００７】
エンドポイントバッファ１のみに送信データが格納された状態を前提に以下、説明する。ホストコンピュータは、デバイスのエンドポイントバッファ０〜エンドポントバッファ３に対して順次、データ送信要求を行う。まず、Ｔ１００で、エンドポイントバッファ０に対してデータ送信要求１を行うが、エンドポイントバッファ０には送信データがないため、次にエンドポイントバッファ１に対するデータ送信要求２を行う（Ｔ１０１）。エンドポイントバッファ１には、送信データが格納されているため、エンドポイントバッファ２からホストコンピュータへ送信データを転送する（Ｔ１０２）。続けて、エンドポイントバッファ２に対してデータ要求３を行うが（Ｔ１０３）、エンドポイントバッファ２にも送信データがないため、エンドポイントバッファ３に対して次のデータ送信要求４を行うが（Ｔ１０４）、エンドポイントバッファ４にも送信データがないため、エンドポイントバッファ０に対して再びデータ送信要求１を行う（Ｔ１０５）。このように、各エンドポイントバッファに対するポーリングを行うことで、各データチャネルを介して転送される送信データの有無を判断する。
【０００８】
【特許文献１】特開２００３−２４８５５８号公報
【特許文献２】特表２００４−５１５９６６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、従来のように、全てのエンドポイントバッファに対してポーリングし、送信データが格納されたエンドポイントバッファがあれば送信データを送信するようなデータ通信方法では、インターフェースの設計の仕方によってエンドポイントバッファが増設されたり、データチャネル数が増加した場合には、それに比例してポーリング回数が増加するため、通信負荷が増えてしまい通信パフォーマンスが低下してしまうという問題があった。
【００１０】
本発明は係る事情に鑑みてなされたものであり、ホストコンピュータとデータ通信装置との間に設定される複数の論理的なデータチャネルを介して行われるデータ通信において、通信パフォーマンスの良いデータ転送を行うことを目的とする。
【課題を解決するための手段】
【００１１】
上記課題は以下の手段によって解決することができる。
本発明は、ホストコンピュータとデータ通信装置との間に設定される複数の論理的なデータチャネルを介して行われるＵＳＢのデータ通信方法であって、
前記複数の論理的なデータチャネルのうち何れかのデータチャネルを介して、前記ホストコンピュータから定期的に問い合わせを行い、前記問い合わせに応じて、前記ホストコンピュータへ送信する送信データの有無を示すデバイス送信状態を含む通信ステータスを送信し、前記デバイス送信状態に基づき前記送信データが有ると判断すると送信データの送信要求を行い、該当するデータチャネルを介して送信データを送信することを特徴とする。
【００１２】
上記構成によれば、ホストコンピュータは複数のデータチャネルのうち１つのデータチャネルを介して問い合わせを行い、問い合わせに応じて送信された通信ステータスに含まれるデバイス送信状態から送信データの有無を判断するよう構成されている。したがって、全てのデータチャネルに対して逐一問い合わせを行う必要がないので通信負荷を軽減することができる。さらに、送信データが有る場合には、該当するデータチャネルを介してホストコンピュータからデータ送信要求を行うので、データチャネル数が増加されても、通信パフォーマンスを低下させずに、データ転送することが可能である。
【００１３】
また、上記データ通信方式において、前記該当するデータチャネルのうち、優先度の高い順に前記送信データを送信することを特徴とする。
【００１４】
上記構成によれば、送信データが複数ある場合でも、送信優先度の高い順に、該当するデータチャネルを介してホストコンピュータから送信データが送信されるので、送信データが複数あった場合でも、複数のデータチャネルを効率的に使用することが可能である。
【００１５】
また、本発明は、ホストコンピュータとの間に設定される複数の論理的なデータチャネルを介して、ＵＳＢのデータ通信を行うデータ通信装置であって、
前記ホストコンピュータへ送信する送信データが格納され、かつ前記データチャネルに対応するよう設定される複数の送信データ格納領域と、各送信データ格納領域に前記送信データが格納されているか否かを示すデバイス送信状態を含む通信ステータスを生成する通信ステータス生成部と、を備え、
前記ホストコンピュータからの送信データ送信要求に応じて、前記送信データが格納された送信データ格納領域から前記送信データを送信することを特徴とする。
また、本発明は、ホストコンピュータと、前記ホストコンピュータとの間に設定される複数の論理的なデータチャネルを介してＵＳＢのデータ通信を行うデータ通信装置と、を備えたデータ通信システムであって、
前記データ通信装置は、
前記ホストコンピュータへ送信する送信データが格納され、かつ前記データチャネルに対応するよう設定される複数の送信データ格納領域と、各送信データ格納領域に前記送信データが格納されているか否かを示すデバイス送信状態を含む通信ステータスを生成する通信ステータス生成部と、を備え
前記ホストコンピュータからの送信データ送信要求に応じて、前記送信データが格納された送信データ格納領域から前記送信データを送信することを特徴とする。
【００１６】
上記構成によれば、データ通信装置は、各送信データ格納領域に送信データが格納されているか否かを示すデバイス送信状態を含む通信ステータスを生成する通信ステータス生成部を備えている。したがって、ホストコンピュータは、通信ステータスを受信するだけで、送信データの有無を確認することができる。これにより、全てのデータチャネルに対して逐一問い合わせを行う必要がないので、通信負荷を軽減することができる。さらに、送信データが有る場合にのみホストコンピュータからの送信データ送信要求に応じて、該当するデータチャネルを介して送信データを送信するので、データチャネル数が増加されても、通信パフォーマンスを低下させずに、データ転送することが可能である。
【００１７】
また、本発明において、前記データチャネルには送信データの送信優先度が設定されており、前記ホストコンピュータから送信された送信データ送信要求に応じて、前記送信優先度にしたがって、前記送信データが格納された送信データ格納領域から前記送信データを送信することを特徴とする。
【００１８】
上記構成によれば、送信データが複数のデータ格納領域に格納されていた場合でも、送信優先度の高い順に、該当するデータチャネルを介して送信データを送信することができるので、送信データが複数あった場合でも、複数のデータチャネルを効率的に使用することが可能である。
【発明を実施するための最良の形態】
【００１９】
以下、本発明に係るデータ通信方法、データ通信装置及びデータ通信システムの実施形態について、図面を用いて説明する。なお、データ通信装置の一例として、ホストコンピュータに接続されたＵＳＢデバイスを挙げて説明する。図１は、本実施形態のデータ通信システム２００を示した概略図である。
図１に示すように、本実施形態では、ホストコンピュータ１００のＵＳＢポートに複数のＵＳＢデバイスを接続するための分岐装置であるハブ１１を介して 、レーベルプリンタ２０、メディアドライブ３０及びメディア搬送機構４０の３つのＵＳＢデバイスが通信可能に接続されている。レーベルプリンタ２０はＣＤ／ＤＶＤなどのメディアの片面にレーベル印刷を行い、メディアドライブ３０はメディアの他面にデータを書き込み、メディア搬送機構４０は搬送アームを駆動させて、これらのＵＳＢデバイスとメディアをスタックするメディアスタッカとの間でメディアを搬送する。
本実施形態では、レーベルプリンタ２０、メディアドライブ３０及びメディア搬送機構４０と、が図示せぬ筐体によって覆われて、メディアに対するデータの書込み、レーベル印刷を行うメディア処理装置１０を形成している。
【００２０】
以下では、ホストコンピュータ１００とメディア搬送機構４０との間で行われるＵＳＢのデータ通信について説明する。まず、背景技術の説明において参照した図６に基づき、一般的なＵＳＢデバイスの内部構成について説明する。
【００２１】
ＵＳＢのデータ転送は、ホストコンピュータがＵＳＢデバイスに対して定期的にデータ送信要求を行い（ポーリング）、データ送信要求にデバイスが応答するという形式で行われる。ＵＳＢの場合には、ホストコンピュータに複数のデバイスが接続されている場合が多いため、各デバイスのＣＰＵがデータ送信要求に応答するのではなく、エンドポイントという概念を用いて、エンドポイント単位でホストコンピュータからのポーリングやデータ転送を行っている。
【００２２】
ここで、エンドポイントは、一般にＦＩＦＯ(First In First out)バッファメモリになっており、ＵＳＢのデータ転送は、ホストコンピュータと各エンドポイント（エンドポイントバッファ０〜エンドポイントバッファ３）との間に構成される論理的な通信路（データチャネル０〜データチャネル３を使って行うことになっている。
【００２３】
通常、エンドポイントバッファ０は、デバイスのコンフィギュレーションや基本情報のやり取りに使用される双方向のデータチャネル０をホストコンピュータとの間に構成し、これ以外のエンドポイントバッファ１〜エンドポイントバッファ３は、単方向のデータチャネル１〜データチャネル３を構成する。なお、エンドポイントバッファの数、データチャネル数、データ転送方向等はデバイス側で自由に設定することが可能である。
【００２４】
(本実施形態におけるＵＳＢデバイスの内部処理について)
次に、図２を参照して本実施形態におけるＵＳＢデバイスであるメディア搬送機構の内部構成について説明する。図２は、本実施形態におけるメディア搬送機構の内部処理を説明するためのブロック図である。
【００２５】
上述のごとく、メディア搬送機構４０は、ホストコンピュータ１００との間に、デバイスのコンフィギュレーションや基本情報のやり取りに使用される双方向のデータチャネルを構成するエンドポイントバッファ０が設定されており、本実施形態では、エンドポイントバッファ０とホストコンピュータ１００との間には双方向の通信路としてデータチャネル１とデータチャネル４とが、構成される。
【００２６】
データチャネル１は、ホストコンピュータ１００からメディア搬送機構４０に対するコマンドやそれに対する応答が転送される通信路である。例えば、図示しない搬送アームの移動コマンド、メディア処理装置１０からの電源ＯＮ通知、電源ＯＦＦ通知、ホストコンピュータから定期的に行われる通信ステータス要求（問い合わせ）等は、データチャネル１を介して転送される。また、メディア処理装置４０に送信データが有る場合に、ホストコンピュータ１００から送信される送信データ送信要求もデータチャネル１を介して転送される。一方、データチャネル４は、リアルタイムコマンドやそれに対する応答が転送される。
【００２７】
さらに、ホストコンピュータ１００との間には、単方向のデータチャネルを形成するエンドポイントバッファ１及びエンドポイントバッファ２とが設定されている。本実施形態では、ホストコンピュータ１００からエンドポイントバッファ１への単方向の通信路としてデータチャネル３が、エンドポイントバッファ２からホストコンピュータ１００への単方向の通信路としてデータチャネル０とデータチャネル２とが、構成されている。
【００２８】
データチャネル３は、メディア搬送機構４０が備えるファームウェアを書き換える際に、ホストコンピュータ１００からメディア搬送機構４０への書き換えデータの転送に利用されるチャネルである。
データチャネル０は、後述するメディア搬送機構４０の通信ステータスをホストコンピュータ１００へ転送するために利用される。
さらに、データチャネル２は、メディア搬送機構４０の状態が変化する毎に自動的にその変化をホストコンピュータへ通知する（以下、「オートステータスバック」という。）ためのステータスが転送されるチャネルである。
【００２９】
このように、本実施形態のメディア搬送機構４０には、エンドポイントバッファ０〜エンドポイントバッファ２の合計３つのバッファを１つのグループとして、インターフェース４１が構成されている。
【００３０】
また、各エンドポイントバッファはレポートデータ生成部４２と接続されている。レポートデータ生成部４２は、各データチャネルを介して行われるデータ転送の転送単位であるレポートデータを生成する。図３にレポートデータのフォーマットを示す。
図３に示すように、レポートデータ５０は、レポートＩＤ５１と、チャネルＮｏ５２と、有効バイト数５３と、データ部５４とから構成される。データ部５４は、実際に転送されるデータが定義される領域である。具体的には、コマンドやそれに対する応答、オートステータス、通信ステータス、リアルタイムコマンドやそれに対する応答、及びファームウェアの書き換えデータ等が定義される。
【００３１】
有効バイト数５３は、データ部５４に定義されるデータの有効バイト数が定義される。チャネル番号５２には、データ部５４に定義されるデータの用途、データのあて先、データの優先度に応じて、データチャネル０からデータチャネル４の何れかの番号が定義される。レポートＩＤ５１は、データ部５４に定義されるデータの長さに応じて定義され、レポートＩＤが定義されると、データの有効バイト数の最大値が決定される。
【００３２】
レポートデータ生成部４２は、ホストコンピュータ１００からのデータ送信要求や、通信ステータスの要求に応じて、レポートデータを生成し、ホストコンピュータ１００へ転送する。また、各エンドポイントバッファの送信データの有無を監視しており、通信ステータスの問い合わせがあると、送信データが格納されていれば「送信データ有り」を、送信データが格納されていなければ「送信データ無し」を含む通信ステータスを生成し、通信ステータスをレポートデータ５０の転送フォーマットとして生成する。なお、通信ステータスとは、メディア搬送機構４０の各エンドポイントバッファにおえるデータ送信状態を示すものである。
【００３３】
（本実施形態におけるデータ転送処理について）
次に、本実施形態のホストコンピュータ１００とメディア搬送機構４０との間で行われるデータ転送処理について説明する。図４は、ホストコンピュータ１００とメディア搬送機構４０との間で行われるデータ転送処理を説明するためのフローチャートであり、図５は、ホストコンピュータ１００とメディア搬送機構４０との間で行われるデータ転送処理を説明するタイムチャートである。
【００３４】
ここでは、例えばエンドポイントバッファ２に送信データが格納されていた場合を例として説明する。
まず、メディア搬送機構４０の各エンドポイントバッファのデータ送信状態を確認するため、ホストコンピュータ１００からデータチャネル１を介して通信ステータスの送信要求が転送されると（ステップＳ１１：Ｔ１）、通信ステータスの送信要求がエンドポイントバッファ０に格納される。レポートデータ生成部４２が、エンドポイントバッファ０の通信ステータスの送信要求を確認すると、エンドポイントバッファ０〜エンドポイントバッファ２の送信データの有無を確認し、レポートデータを生成する。
【００３５】
このとき、レポートデータ生成部４２は、レポートデータ５０のデータ部５４に「送信データ有り」を示す通信ステータスを定義し、通信ステータスを転送するデータチャネルとしてチャネル番号５２にデータチャネル０を定義して、レポートデータを生成し、データチャネル０を介してホストコンピュータ１００へ送信する（ステップＳ１２：Ｔ２）。
【００３６】
ホストコンピュータ１００は、レポートデータを受信すると、通信ステータスに基づき、送信データが有ると判断し（ステップＳ１３：Ｙｅｓ）、送信データを要求するためデータチャネル１を介して、送信データの送信要求を転送する（ステップＳ１４：Ｔ３）。エンドポイントバッファ０が送信データの送信要求を受信すると、送信データが格納されたエンドポイントバッファ２から、データチャネル２を介して送信データがホストコンピュータ１００へ転送される（ステップＳ１５：Ｔ４）。
【００３７】
ステップＳ１１に戻り、ホストコンピュータ１００から定期的にデータチャネル１を介して通信ステータス要求が送信されると（Ｔ５）、ステップＳ１２からステップＳ１５の処理を繰り返し行い、送信データが有る場合には、該当するデータチャネルを介して送信データが転送され、送信データが無い場合には（ステプＳ１３：Ｎｏ）。再び送られてくるホストコンピュータ１００からの通信ステータス要求を待って（ステップＳ１１）、ステップＳ１２からステップＳ１５の処理を繰り返し行う。
【００３８】
なお、エンドポイントバッファに送信データが複数ある場合には、データチャネルにデータ転送の優先度を設定しておくことで対応することができる。本実施形態では、データチャネル１を優先度１位に設定しておけば、他のデータチャネルに優先してデータ転送を行うことができる。
【００３９】
このように、本実施形態で説明したデータ転送方法によれば、エンドポイントバッファのデータ送信状態を通信ステータスによって確認することができる。したがって、従来のように各エンドポイントバッファにポーリングを行う必要がないので、通信負荷が軽減され、パフォーマンスの良いデータ転送を行うことができる。
さらに、メディア搬送機構４０のエンドポイントバッファに送信データが有ることを確認できた場合だけ、ホストコンピュータ１００は送信データの送信要求を転送するようにしたため、送信要求の頻度が減少し、ホストコンピュータ１００の処理負荷を軽減することができる。
【図面の簡単な説明】
【００４０】
【図１】本実施形態のデータ通信システムを示した概略図である。
【図２】本実施形態におけるメディア搬送機構の内部処理を説明するためのブロック図である。
【図３】レポートデータのフォーマットの概略図である。
【図４】ホストコンピュータとメディア搬送機構との間で行われるデータ転送処理を説明するためのフローチャートである。
【図５】ホストコンピュータとメディア搬送機構との間で行われるデータ転送処理を説明するタイムチャートである。
【図６】一般的なＵＳＢデバイスの内部構成を示すブロック図である。
【図７】ホストコンピュータとメディア搬送機構との間で行われる従来のデータ転送処理を説明するタイムチャートである。
【符号の説明】
【００４１】
１０：メディア処理装置、２０：レーベルプリンタ、３０：メディアドライブ、４０：メディア搬送機構、４１：インターフェース、４２：レポートデータ生成部、５０：レポートデータ、５１：レポートＩＤ、５２：チャネル番号、５３：有効バイト数、５４：データ部
【図１】
2008107997.tif 000003
【図２】
2008107997.tif 000004
【図３】
2008107997.tif 000005
【図４】
2008107997.tif 000006
【図５】
2008107997.tif 000007
【図６】
2008107997.tif 000008
【図７】
2008107997.tif 000009