(57)【要約】【課題】パケットの再送を抑制することで、効率的なデータパケットの送受信に寄与することのできるパケット通信機能を有する電子機器を提供する。【解決手段】ホストとの間でデータパケットの送受信を行うにあたり、自分自身が、ホストとの間のパケット通信が可能な状態にあるか否かを示すステータスパケットを生成してホストに向けて予め送信する。【選択図】　　　　図５
2004021320.tif 000002
【特許請求の範囲】
【請求項１】
ホストとの間でパケット通信を行なうパケット通信機能を有する電子機器において、
フレーム毎に送信されてくる、アドレス情報を含む所定の形式のリクエストパケットが自分のアドレスを指定したリクエストパケットであるか否かを認識するリクエストパケット認識部と、
前記リクエストパケット認識部で、自分のアドレスを指定したリクエストパケットの受信が認識されたことを受けて、ホストとの間のパケット通信が可能な状態にあるか否かを示すステータスを示すパケットを生成してホストに向けて送信するステータス生成送信部とを備えたことを特徴とするパケット通信機能を有する電子機器。
【請求項２】
前記リクエストパケットは、ホストから送信されるパケットの受信が可能な状態にあるか否か、およびホストへのパケットの送信が可能な状態にあるか否かを区別して問い合わせるものであって、
前記ステータス生成送信部は、前記リクエストパケット認識部により認識された自分のアドレスを指定したリクエストパケットにより問い合わされた内容に応じた回答を表わすステータスを示すパケットを生成してホストに向けて送信するものであることを特徴とする請求項１記載のパケット通信機能を有する電子機器。
【請求項３】
ホストとの間でパケット通信を行なうパケット通信機能を有する電子機器において、
ホストから送信されてきた、データパケットの受信が可能な状態にあるか否かを確認するためのリクエストパケットを認識するリクエストパケット認識部と、前記リクエストパケット認識部による前記リクエストパケットの認識を受けて、ホストから送信されてくるデータパケットの受信が可能であるか否かをホストに回答する受信可否回答部とを備えたことを特徴とするパケット通信機能を有する電子機器。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ホストとの間でパケット通信を行なうパケット通信機能を有する電子機器に関する。
【０００２】
【従来の技術】
従来より、パソコンの周辺機器用のインターフェイスとして、シリアルポート（ＲＳ−２３２Ｃ）とパラレルポート（セントロニクス）が使用されてきたが、最近では、Ｕｎｉｖｅｒｓａｌ　Ｓｅｒｉａｌ　Ｂｕｓ（以下、ＵＳＢと略記する）が主に採用されている。
【０００３】
ＵＳＢは、特定の周辺機器を対象としたものではなく、様々な周辺機器が混在できるように考えられているため、周辺機器ごとに用意されていたインターフェイスを１つにまとめることができる。
【０００４】
ＵＳＢを採用するシステムでは、１台のホスト（パソコン）を中心にツリー構造がとられ、ハブを介することでホスト側の１つのポートに多数の周辺機器を接続することができる。
【０００５】
図１は、そのようなシステムの、ホストと、周辺機器の中の１つのデバイスとを代表的に示した図である。
【０００６】
図１に示すように、ＵＳＢで接続された、ホスト１とデバイス２との間のデータの送受信は、以下の３種類のパケットの送受信によって行なわれる。
【０００７】
図２は、ＵＳＢで使用されるトークンパケットと呼ばれるパケットを示す図である。
【０００８】
図２に示されるトークンパケットは、ＰＩＤ（ＰａｃｋｅｔＩＤ）部、アドレス部、エンドポイント部、ＣＲＣ（Ｃｙｃｌｉｃ　Ｒｅｄｕｎｄａｎｃｙ　Ｃｈｅｃｋ）部で構成されている。
【０００９】
ＰＩＤ部には、データの送信方向、すなわちホスト１からデバイス２へのデータの送信であるのか、デバイス２からホスト１へのデータの送信であるのか等が８ビットで表わされる。
【００１０】
アドレス部には、ホスト１の通信相手であるデバイス２のアドレスが７ビットで表わされる。
【００１１】
エンドポイント部には、上記アドレス部で指定されたデバイス２内の独立した機能が４ビットで表わされる。
【００１２】
ＣＲＣ部の５ビットは、送受信時のエラーを検出するための冗長ビットである。
【００１３】
図３は、データパケットと呼ばれるパケットを示す図である。
【００１４】
図３に示されるデータパケットは、ＰＩＤ部、データ部、ＣＲＣ部で構成されている。
【００１５】
ＰＩＤ部には、データパケットの種類が８ビットで表わされる。
【００１６】
データ部は、データ送信によって送信されるデータで構成され、０〜１０２３バイトまでのデータを１つのデータパケットで送信することができる。
【００１７】
ＣＲＣ部の１６ビットは、送信時あるいは受信時のエラーを検出するための冗長ビットである。
【００１８】
図４は、ハンドシェークパケットと呼ばれるパケットを示す図である。
【００１９】
図４に示されるハンドシェークパケットはＰＩＤ部のみからなり、そのＰＩＤ部には、データの受信結果が８ビットで表わされる。
【００２０】
ここで、ホスト１がデバイス２からのデータパケットを受信する場合は、ホスト１は、図２に示す、ＰＩＤ部がデバイスからホストへのデータの送信を表わし、アドレス部がデータパケットの発信先であるデバイス２のアドレスを表わすトークンパケットをデバイス２に送信する。
【００２１】
このトークンパケットを受信したデバイス２は、ホスト１へのデータパケットの送信が可能な状態であれば、図３に示すデータ部が一連の送信データのうちの最初のデータで構成されたデータパケットを送信し、デバイス２からのデータパケットを受信したホスト１は、データパケットを正常に受信したか否かを表わすハンドシェークパケットをデバイス２に送信する。ホスト１は、正常受信を表わすハンドシェークパケットを送信した場合には、デバイス２に対し、再び、同じアドレス、同じ送信方向を含むトークンパケットを送信する。このトークンパケットを受け取ったデバイス２は、図３に示すデータ部が一連の送信データのうちの次のデータで構成されたデータパケットを送信する。一方、デバイス２がホスト１へのデータの送信が不可能な状態にあるときにこのトークンパケットを受信した場合には、ＰＩＤ部が、ホストに対するデータの送信が不可能であることを表わすハンドシェークパケットがホスト１に送信され、これを受けてホスト１は、トークンパケットの再送を行なう。
【００２２】
次に、ホスト１からデバイス２にデータパケットを送信する場合には、ホスト１は、図２に示す、ＰＩＤ部がホストからデバイスへのデータの送信を表わし、アドレス部がデータの送信先であるデバイス２のアドレスを表わすトークンパケットをデバイス２に送信する。
【００２３】
このホスト１から発行されたトークンパケットは、アドレス部が表わすアドレスを有するデバイス２によって受信される。
【００２４】
ホスト１は、このトークンパケットの送信に続いて、図３に示すデータ部が一連の送信データのうちの最初のデータで構成されたデータパケットを、送信先のデバイスの受信状態とは無関係に送信する。
【００２５】
ホスト１からの、これらトークンパケットおよびデータパケットの送信を受けて、デバイス２は、図４に示す、ＰＩＤ部がこれらパケットの受信結果を表わすハンドシェークパケットをホスト１に送信する。
【００２６】
ホスト１は、このハンドシェークパケットをデバイス２から受信し、その内容を確認し正常であれば、再び、同じアドレス、同じ送信方向を含むトークンパケットの送信に続き、一連の送信データのうちの次のデータで構成されるデータパケットを送信する。一方、デバイスから受信したハンドシェークパケットが異常を表わすものであるときは、トークンパケットおよびデータパケットの再送が行われる。
【００２７】
尚、ＵＳＢでは、１ｍｓごとにＳＯＦ（Ｓｔａｒｔ　Ｏｆ　Ｆｒａｍｅ）と呼ばれるパケットをホストから発行して時間を区切っており、この区切られた時間枠をフレームと称している。ホストは、このフレーム間においてデバイスとの間でデータパケットの送受信を行う。
【００２８】
ところで、ＵＳＢを採用するシステムでは、ホストは、送信したトークンパケットに応答して送信されてくるハンドシェークパケットの内容で通信相手のデバイスのステータスを認識している。つまり、ホストは、デバイスの異常の発生を、トークンパケットに応答して送信されてきた通信不能を表わすハンドシェークパケットによって認識し、デバイスに発生していた異常の解消は、送信されてきた通信可能を表わすハンドシェークパケットか、あるいは、通信可能を表わすハンドシェークパケットの代わりにデータパケットが送信されてきたことによって認識している。
【００２９】
【発明が解決しようとする課題】
ところが、ＵＳＢを採用するシステムにおいて、デバイスに異常が発生している間、トークンパケットの再送、あるいは、トークンパケットおよびデータパケットの再送が繰り返されると、データパケットの実質的な転送効率が低下してしまうおそれがある。
【００３０】
本発明は、上記事情に鑑み、パケットの再送を抑制することで、効率的なデータパケットの送受信に寄与することのできるパケット通信機能を有する電子機器を提供することを目的とする。
【００３１】
【課題を解決するための手段】
上記目的を達成するための本発明の第１のパケット通信機能を有する電子機器は、
ホストとの間でパケット通信を行なうパケット通信機能を有する電子機器において、
フレーム毎に送信されてくる、アドレス情報を含む所定の形式のリクエストパケットが自分のアドレスを指定したリクエストパケットであるか否かを認識するリクエストパケット認識部と、
上記リクエストパケット認識部で、自分のアドレスを指定したリクエストパケットの受信が認識されたことを受けて、ホストとの間のパケット通信が可能な状態にあるか否かを示すステータスを示すパケットを生成してホストに向けて送信するステータス生成送信部とを備えたことを特徴とする。
【００３２】
本発明の第１のパケット通信機能を有する電子機器は、フレーム毎に送信されてくる、ホストがデータパケットの通信を所望するデバイスのアドレスを指定したリクエストパケットに対し、自分のアドレスが一致する場合に、自分のステータスを示すパケットをホストに送信する。これにより、ホストは、このリクエストパケットに応じて送信されてくる、通信を所望するデバイスのステータスが示されたパケットにより、そのデバイスのステータスをフレーム毎に認識することができるため、従来にあってはデバイスに異常が発生したために１フレーム内において繰り返されるおそれのあるパケットの再送を抑制することができる。したがって、本発明の第１のパケット通信機能を有する電子機器によれば、従来においておこるおそれのあった、１フレーム内において繰り返されるパケットの再送を抑制することができるので、効率的なデータパケットの送受信に寄与することができる。
【００３３】
ここで、上記リクエストパケットは、ホストから送信されるパケットの受信が可能な状態にあるか否か、およびホストへのパケットの送信が可能な状態にあるか否かを区別して問い合わせるものであって、
本発明の第１のパケット通信機能を有する電子機器の上記ステータス生成送信部は、上記リクエストパケット認識部により認識された自分のアドレスを指定したリクエストパケットにより問い合わされた内容に応じた回答を表わすステータスを示すパケットを生成してホストに向けて送信するものであることが好ましい。
【００３４】
このようにすると、詳しいステータスをホストに送信することができるため、さらに、効率的なデータパケットの送受信に寄与することができる。
【００３５】
上記目的を達成するための本発明の第２のパケット通信機能を有する電子機器は、
ホストとの間でパケット通信を行なうパケット通信機能を有する電子機器において、
ホストから送信されてきた、データパケットの受信が可能な状態にあるか否かを確認するためのリクエストパケットを認識するリクエストパケット認識部と、上記リクエストパケット認識部による上記リクエストパケットの認識を受けて、ホストから送信されてくるデータパケットの受信が可能であるか否かをホストに回答する受信可否回答部とを備えたことを特徴とする。
【００３６】
本発明の第２のパケット通信機能を有する電子機器は、ホストからのデータパケットの送信に先立ちホストから送信される、データパケットの受信が可能であるか否かを確認するリクエストパケットに応じて、自分のステータスを示すパケットをホストに送信する。これにより、再送の際に送受信されるパケットの量が、デバイスからホストへのデータパケットの送信の場合と比べ多い、ホストからデバイスへのデータパケットの送信を確実に行なうことができる。したがって、本発明の第２のパケット通信機能を有する電子機器によっても、効率的なデータパケットの送受信に寄与することができる。
【００３７】
【発明の実施の形態】
以下、本発明のパケット通信機能を有する電子機器の実施形態について説明する。
【００３８】
まず、１つのホスト１０と、このホスト１０とＵＳＢで接続された複数のデバイスのうちの一部である、本発明の第１のパケット通信機能を有する電子機器の一実施形態であるデバイス２００との間で行われるデータパケットの送受信について説明する。
【００３９】
図５は、本発明の第１のパケット通信機能を有する電子機器の一実施形態であるデバイスの内部ブロック図である。
【００４０】
図５に示す本実施形態のデバイス２００には、トランシーバ／レシーバ２０１、パケット検出部２０２、Ｓ／Ｐ（シリアル／パラレル）変換部２０３、およびＰ／Ｓ変換部２０４が備えられている。
【００４１】
トランシーバ／レシーバ２０１では、データの受信、あるいはデータの送信が行なわれる。
【００４２】
パケット検出部２０２では、トランシーバ／レシーバ２０１を経由して受信したシリアルデータからパケットの検出が行なわれる。
【００４３】
Ｓ／Ｐ変換部２０３では、パケット検出部２０２から受け取ったパケットの、シリアルデータからパラレルデータへの変換が行なわれる。
【００４４】
Ｐ／Ｓ変換部２０４は、データパケット等をシリアルデータに変換し、トランシーバ／レシーバ２０１に送る。
【００４５】
また、図５に示すデバイス２００には、データパケット検出部２０５、アドレス検出部２０６、ローカルＳＯＦ検出部２０７、バルクイン検出部２０８、他のエンドポイント処理部２０９、ステータスパケット生成部２１０、およびバルクアウト検出部２１１も備えられている。
【００４６】
データパケット検出部２０５では、受信したパケットがデータパケットであるか否かが判定される。
【００４７】
アドレス検出部２０６では、受信したパケットからアドレスが検出され、このデバイスのアドレスと一致するか否かが判定される。
【００４８】
ローカルＳＯＦ検出部２０７では、受信したパケットが後述するローカルＳＯＦパケットであるか否かが判定される。
【００４９】
バルクイン検出部２０８では、受信したパケットがデバイスからホストへのデータパケットの送信を指示するトークンパケットであるか否かが判定される。
【００５０】
バルクアウト検出部２１１では、受信したパケットがホストからデバイスへのデータパケットの送信を指示するトークンパケットであるか否かが判定され、これに該当し、かつ、このパケットのアドレスがこのデバイスと一致している場合にはＰＲＥ信号がアサートされる。
【００５１】
他のエンドポイント処理部２０９では、アドレスがこのデバイスに該当しているものの、ローカルＳＯＦパケットでも、バルクインおよびバルクアウトを表わすトークンパケットでもないパケットを受信した場合の処理が行なわれる。
【００５２】
ステータスパケット生成部２１０では、ローカルＳＯＦ検出部２０７におけるローカルＳＯＦパケットの検出、かつ、アドレス検出部２０６によるアドレスの一致を受けて、データパケットの送受信に関するステータスを示す後述するステータスパケットを生成してホストに送信する。
【００５３】
さらに、図５に示すデバイス２００には、バルクアウト転送処理回路２１２、およびバルクイン転送処理回路２１３も示されている。
【００５４】
バルクアウト転送処理回路２１２では、データパケット検出部２０５による、受信したパケットがデータパケットであるとの判定を受け、かつ、バルクアウト転送を知らせるトークンパケットが既に到着していることを意味するＰＲＥ信号がアサートされているときは、そのデータパケットを受け入れる。
【００５５】
バルクイン転送処理回路２１３では、受信したパケットについて、アドレス検出部２０６によりアドレスの一致が確認され、かつ、バルクイン検出部２０８によりバルクインを表わすトークンパケットであることが確認されたことを受けて、ホストにデータパケットを送信する。
【００５６】
ここで、ローカルＳＯＦパケットおよびステータスパケットについて説明する。
【００５７】
図６は、ローカルＳＯＦパケットを示す図である。
【００５８】
図６に示されるローカルＳＯＦパケットは、ＰＩＤ（ＰａｃｋｅｔＩＤ）部、アドレス部、ステータス部、および２ビットの未使用ビットで構成されている。
【００５９】
ＰＩＤ部には、パケットの種類がローカルＳＯＦパケットであることが値（‘Ｂ４’）で表わされる。
【００６０】
アドレス部には、このシステムにおけるデバイス２００のアドレスが７ビットで表わされる。
【００６１】
ステータス部には、バルクインおよびバルクアウトそれぞれについての通信状態の回答要請が２ビットで表わされ、アドレス部に近いビットが立てられると、バルクインが可能か否かについての回答をデバイス側に求めていることとなり、未使用ビットに近いビットが立てられると、バルクアウトが可能であるか否かについての回答をデバイス側に求めていることになっている。
【００６２】
図７は、ステータスパケットを示す図である。
【００６３】
図７に示されるステータスパケットは、ＰＩＤ（ＰａｃｋｅｔＩＤ）部、ステータス部、および６ビットの未使用ビットで構成されている。
【００６４】
ＰＩＤ部には、パケットの種類がステータスパケットであることが値（‘８７’）で表わされる。
【００６５】
ステータス部には、バルクインおよびバルクアウトそれぞれについての通信状態の回答が２ビットで表わされ、ＰＩＤ部に近いビットが立てられると、バルクインが可能であることが表わされ、未使用ビット領域に近いビットが立てられると、バルクアウトが可能であることが表わされる。
【００６６】
ここで、ホスト１０とデバイス２００との間のデータパケットの送受信について図５を参照しながら説明するが、このホスト１０を中心とするＵＳＢシステムでは、１ｍｓ毎に、前述したローカルＳＯＦパケットがホスト１０から発行されており、このローカルＳＯＦパケットのアドレス部がデバイス２００のアドレスを指定し、ステータス部の２ビットが共に立てられているとして以下の説明を行う。
【００６７】
デバイス２００は、ホストから送信されてきたパケットを、トランシーバ／レシーバ２０１で受信し、パケット検出部２０２、Ｓ／Ｐ（シリアル／パラレル）変換部２０３を経た後、このパケットから検出されたアドレスがこのデバイス２００のアドレスと一致し、かつ、ローカルＳＯＦパケット部でこのパケットがローカルＳＯＦパケットであると判定されたことを受けて、ステータスパケットがステータスパケット生成部２１０で生成される。
【００６８】
ステータスパケット生成部２１０では、ローカルＳＯＦパケットのステータス部の２ビットが共に立てられていることを受けて、バルクアウト転送処理回路２１２およびバルクイン転送処理回路２１３のステータスを基にステータスパケットを生成し、ホスト１０に送信する。尚、ここでは、バルクアウト転送およびバルクイン転送の双方が可能であるとする回答がなされた場合で話を進める。
【００６９】
ここでは、このデバイス２００からの、デバイス２００のステータスが示されたステータスパケットを参照したホストが、デバイス２００に対するデータパケットの送信であるバルクアウト転送を行なう場合について説明する。
【００７０】
ホスト１０は、図２に示すＰＩＤ部がホストからデバイスへのデータパケットの送信を意味し、図２に示すアドレス部が、デバイス２００のアドレスを指定するトークンパケットを送信する。
【００７１】
デバイス２００では、バルクアウト検出部２１１で、このトークンパケットがバルクアウト転送を表わし、アドレス検出部２０６で、このトークンパケットがアドレス２００を指定したものであることを検出し、バルクアウトを指示するトークンパケットが既に到着していることを表わすＰＲＥ信号のアサートが行なわれる。
【００７２】
その後にデバイス２００に送信されてきたパケットがデータパケットである場合には、そのデータパケットは、バルクアウト転送処理回路２１２によって処理される。尚、このＰＲＥ信号は、バルクアウト転送処理回路２１２によるデータパケットの処理が終了すると、再びバルクアウトを表わすトークンパケットが送信されてくるまでネゲートされる。
【００７３】
次に、このデバイス２００からの、デバイス２００のステータスが示されたステータスパケットを参照したホストが、デバイス２００からのデータパケットの受信であるバルクイン転送を行なう場合について説明する。
【００７４】
ホスト１０は、図２に示すＰＩＤ部がデバイスからホストへのデータパケットの送信を意味し、図２に示すアドレス部が、デバイス２００のアドレスを指定するトークンパケットを送信する。
【００７５】
デバイス２００では、バルクイン検出部２０８で、このトークンパケットがバルクイン転送を表わし、かつ、アドレス検出部２０６で、このトークンパケットがアドレス２００を表わしていることを受け、これをバルクイン転送処理回路２１３に伝え、これにより、バルクイン転送処理回路２１３はホスト１０に向けてデータパケットを送信する。
【００７６】
図８は、このデバイスにおいて実行されているルーチンのフローチャートである。
【００７７】
このルーチンは、このデバイスの電源の投入と共に起動される。
【００７８】
ステップＳ１では、デバイスのリセットが行なわれる。その後、ステップＳ２に進み、送信されてきた信号について、パケットの検出およびシリアル／パラレル変換を行なうように指示が出される。その後、ステップＳ３に進む。
【００７９】
ステップＳ３では、受信したパケットがデータパケットであるか否かが判定され、ステップＳ３において、データパケットではないと判定されると、ステップＳ４に進む。
【００８０】
ステップＳ４では、受信したパケットから検出されたアドレスが、デバイス２００のアドレスを表わすものであるか否かが判定される。ステップＳ４において、表わしていないと判定されると、ステップＳ２に戻る。
【００８１】
ステップＳ４において、表わしていると判定されると、ステップＳ５に進み、更に、このパケットがローカルＳＯＦパケットであるか否かが判定される。
【００８２】
ステップＳ５において、ローカルＳＯＦパケットであると判定されると、ステップＳ６に進み、ステータスパケットの生成およびホストへの送信が指示される。その後、ステップＳ２に戻る。
【００８３】
ステップＳ５において、ローカルＳＯＦパケットでないと判定されると、ステップＳ７に進み、そのパケットがバルクインを表わすトークンパケットであるか否かが判定される。ステップＳ７において、バルクインを表わすトークンパケットであると判定されると、ステップＳ８に進み、バルクインの処理が実行される。
【００８４】
ステップＳ７において、バルクインを表わすトークンパケットでないと判定されると、ステップＳ９に進み、そのパケットがバルクアウトを表わすトークンパケットであるか否かが判定される。ステップＳ９において、バルクアウトを表わすトークンパケットであると判定されると、ステップＳ１０に進み、ＰＲＥ信号がアサートされる。
【００８５】
ステップＳ９において、バルクアウトを表わすトークンパケットでないと判定されると、ステップＳ１１に進み、バルクイン、バルクアウト以外のエンドポイント処理が実行される。
【００８６】
一方、ステップＳ３において、受信したパケットがデータパケットであると判定されると、ステップＳ１２に進み、ＰＲＥ信号がアサートされているか否かが判定され、ステップＳ１２において、アサートされていないと判定されると、ステップＳ２にもどり、アサートされていると判定されると、ステップＳ１３において、バルクアウト処理が行なわれ、ステップＳ１４において、ＰＲＥ信号がネゲートされる。その後、ステップＳ２に戻る。
【００８７】
以上説明した本実施形態のデバイス２００は、１ｍｓごとにホストから送信されてくるローカルＳＯＦパケットに応じて、自分のステータスを示すステータスパケットをホスト１０に送信しているため、ホスト１０は、デバイス２００のステータスに合わせたデータパケットの送受信を行なうことができる。したがって、デバイス２００では、常に、ホストの指示に従うことができるため、従来のようなデバイス側の状態を無視したパケットの送信に起因するパケットの再送が抑制されている。尚、このローカルＳＯＦパケットは、従来においては、フレームの最初にホストから発行されていたＳＯＦパケットを利用しており、この点で、従来のＳＯＦパケットを発行した上に、このローカルＳＯＦパケットを発行する場合に比べて、ＵＳＢバス上のデータパケットの転送効率の向上に寄与している。
【００８８】
次に、１つのホスト１０と、このホスト１０とＵＳＢで接続された複数のデバイスのうちの一部である、本発明の第２のパケット通信機能を有する電子機器の一実施形態であるデバイス２２０との間で行われるデータパケットの送受信について説明するが、本実施形態のデバイス２２０は、ホスト１０からのデータパケットの受信のみを行う受信専用機である。
【００８９】
図９は、本発明の第２のパケット通信機能を有する電子機器の一実施形態であるデバイスに備えられている機能の一部を示すブロック図である。尚、図９に示されるもので、図５に示されているものと同じ種類のものには、図５において付されている符号と同じ符号が付されており、同じ符号が付されているものの説明は省略する。
【００９０】
図９に示す本実施形態のデバイス２２０には、トランシーバ／レシーバ２０１、パケット検出部２０２、Ｓ／Ｐ（シリアル／パラレル）変換部２０３、Ｐ／Ｓ変換部２０４、データパケット検出部２０５、アドレス検出部２０６、他のエンドポイント処理部２０９、バルクアウト転送処理回路２１２、ＰＲＥＯＵＴ検出部２１５、およびＡＣＫ／ＮＡＫパケット生成部２１４が備えられている。
【００９１】
ＰＲＥＯＵＴ検出部２１５では、受信したパケットが、ホスト１０からこのデバイス２２０に対するデータパケットの送信前に予め送られてくる後述するＰＲＥＯＵＴパケットであるか否かが判定される。
【００９２】
ＡＣＫ／ＮＡＫパケット生成部２１４では、ＰＲＥＯＵＴ検出部２１５によるＰＲＥＯＵＴパケットの検出と、アドレス検出部２０６によるアドレスの一致が確認されたことを受け、バルクアウト転送処理回路２１２のステータスを検出し、データパケットの受信が可能な場合にはＡＣＫ（許可）パケットをホスト１０に送信し、データパケットの受信が不可能な場合にはＮＡＫ（不許可）パケットをホスト１０に送信する。ＰＲＥＯＵＴ検出部２１５によりＰＲＥＯＵＴパケットが検出され、かつ、ＡＣＫパケットがホスト１０に送信される場合には、ＡＣＫ信号のアサートが行われる。尚、ＡＣＫ（許可）パケットおよびＮＡＫ（不許可）パケットは、図示しないが、図４に示すハンドシェークパケットと同じく８ビットのＰＩＤ部のみのパケットである。
【００９３】
ここで、ＰＲＥＯＵＴパケットについて説明する。
【００９４】
図１０は、ＰＲＥＯＵＴパケットを示す図である。
【００９５】
図１０に示すＰＲＥＯＵＴパケットは、ＰＩＤ（ＰａｃｋｅｔＩＤ）部、アドレス部、およびエンドポイント部で構成されている。
【００９６】
ＰＩＤ部には、パケットの種類がＰＲＥＯＵＴパケットであることが値（‘９６’）で表わされる。
【００９７】
アドレス部には、このシステムにおけるデバイス２２０のアドレスが７ビットで表わされる。
【００９８】
エンドポイント部には、該当する転送のエンドポイントが４ビットで表わされる。
【００９９】
ここで、ホスト１０からデバイス２２０に対する、データパケットの送信について図９を参照しながら説明するが、このＵＳＢシステムでは、ホスト１０がＵＳＢにぶら下がるデバイスに対してデータパケットを送信する場合には、データパケットをデバイスに向けて送信する前に、予め上記ＰＲＥＯＵＴパケットがホストから送信されるが、以下、このＰＲＥＯＵＴパケットがホスト１０からデバイス２２０に対して送信されたところから説明する。
【０１００】
デバイス２２０は、ホスト１０から送信されてきたＰＲＥＯＵＴパケットを、トランシーバ／レシーバ２０１で受信し、パケット検出部２０２、Ｓ／Ｐ（シリアル／パラレル）変換部２０３を経た後、このパケットからアドレス検出部２０６によって検出されたアドレスがこのデバイス２２０のアドレスと一致し、かつＰＲＥＯＵＴ検出部２１５でこのパケットがＰＲＥＯＵＴパケットであると判定されたことを受けて、ＡＣＫ／ＮＡＫパケットがＡＣＫ／ＮＡＫパケット生成部２１４で生成される。
【０１０１】
ＡＣＫ／ＮＡＫパケット生成部２１４では、バルクアウト転送処理回路２１２のステータスを基に、ＡＣＫパケットあるいはＮＡＫパケットを生成し、ホスト１０に送信する。尚、バルクアウト転送処理回路２１２がホストからのデータパケットの受け入れが可能であるとしてＡＣＫパケットが生成された場合には、ＡＣＫ信号がアサートされる。
【０１０２】
ここで、このデバイス２２０からホスト１０に対し、ＡＣＫパケットが送信された場合について説明する。
【０１０３】
ホスト１０は、このＡＣＫパケットを受信すると、データパケットを送信する。デバイス２２０では、受信したパケットがデータパケットであることがデータパケット検出部２０５によって検出され、かつ、ＡＣＫ信号がアサートされていると、バルクアウト転送処理回路２１２によってデータパケットの受け入れが行われる。したがって、ここでは既にＡＣＫ信号がアサートされ、かつ、データパケットを検出したことで受け入れが行われる。このＡＣＫ信号は、バルクアウト処理回路におけるデータパケットの受け入れが終了するとネゲートされる。尚、アドレスが一致しているものの、ＰＲＥＯＵＴパケットでないパケットを受信した場合には、そのパケットは他のエンドポイント処理部２０９において処理される。
【０１０４】
図１１は、このデバイスにおいて実行されているルーチンのフローチャートである。
【０１０５】
このルーチンは、このデバイスの電源の投入と共に起動される。
【０１０６】
ステップＳ２０では、デバイスのリセットが行なわれる。その後、ステップＳ２１に進み、送信されてきた信号について、パケットの検出およびシリアル／パラレル変換を行なうように指示が出される。その後、ステップＳ２２に進む。
【０１０７】
ステップＳ２２では、受信したパケットがデータパケットであるか否かが判定され、ステップＳ２２において、受信したパケットがデータパケットではないと判定されると、ステップＳ２３に進み、そのパケットから得られたアドレスがこのデバイス２２０のアドレスと一致するか否かが判定される。
【０１０８】
ステップＳ２３において、アドレスが一致しないと判定されると、ステップＳ２１に戻り、アドレスが一致すると判定されると、ステップＳ２４に進む。
【０１０９】
ステップＳ２４では、このパケットがＰＲＥＯＵＴパケットであるか否かが判定され、ステップＳ２４において、ＰＲＥＯＵＴパケットではないと判定されると、ステップＳ２５に進み、バルクアウト以外の他のエンドポイントの処理が行われる。
【０１１０】
ステップＳ２４において、ＰＲＥＯＵＴパケットであると判定されると、ステップＳ２６に進み、バルクアウト転送処理回路２１２のステータスが、ホストからのデータパケットの受け入れ可能を表わしているか否かの判定が行われる。
【０１１１】
ステップＳ２６において、データパケットの受け入れが不能であると判定されると、ステップＳ２７に進み、ＮＡＫパケットの生成およびホストへの送信が指示される。その後、ステップＳ２１に戻る。
【０１１２】
ステップＳ２６において、データパケットの受け入れが可能であると判定されると、ステップＳ２８に進み、ＡＣＫパケットの生成およびホストへの送信が指示され、ステップＳ２９では、ＡＣＫ信号のアサートが指示される。その後、ステップＳ２１に戻る。
【０１１３】
一方、ステップＳ２２において、受信したパケットがデータパケットであると判定された場合に話を戻して説明する。
【０１１４】
この場合には、ステップＳ３０に進み、ＡＣＫ信号がアサートされているか否かが判定され、ステップＳ３０において、アサートされていないと判定されると、ステップＳ２１に戻る。
【０１１５】
ステップＳ３０において、アサートされていると判定されると、ステップＳ３１に進み、その受信されたデータパケットの受け入れが指示され、ステップＳ３２においてＡＣＫ信号のアサートが行われる。その後、ステップＳ２１に戻る。
【０１１６】
以上説明した本実施形態のデバイス２２０は、ホスト１０からのデータパケットの送信に先立ち、ホストから送信されてくるＰＲＥＯＵＴに応じて、自分のステータスを示す、ＡＣＫパケットあるいはＮＡＫパケットをホスト１０に送信しているため、ホスト１０は、デバイス２２０のステータスを確認してからデータパケットの送信を行なうことができる。したがって、デバイス２２０では、常に受入態勢が整った状態での、データパケットの受信が可能となるので、従来のようにデバイス側の状態を無視したパケットの送信に起因するパケットの再送が抑制されている。特に、従来においては、バルクアウト転送のエラーによる再送パケットの量が、バルクイン転送のエラーによる再送パケットの量に比べて多いことから、このデバイス２２０における、このバルクアウト転送におけるエラーの発生の抑制は、ＵＳＢバス上におけるデータパケットの転送効率の向上に充分に寄与するものである。尚、ここでは、本実施形態のデバイス２２０がデータパケットの受信専用機である場合を例に挙げて説明したが、これが、データパケットをホストとの間で送受信するものであっても本発明には影響ない。
【０１１７】
【発明の効果】
以上説明したように、本発明のパケット通信機能を有する電子機器によれば、パケットの再送を抑制することで、効率的なデータパケットの送受信に寄与することができる。
【図面の簡単な説明】
【図１】ＵＳＢシステムの、ホストと、周辺機器の中の１つのデバイスとを代表的に示した図である。
【図２】ＵＳＢで使用されるトークンパケットと呼ばれるパケットを示す図である。
【図３】データパケットと呼ばれるパケットを示す図である。
【図４】ハンドシェークパケットと呼ばれるパケットを示す図である。
【図５】本発明の第１のパケット通信機能を有する電子機器の一実施形態であるデバイスの内部ブロック図である。
【図６】ローカルＳＯＦパケットを示す図である。
【図７】ステータスパケットを示す図である。
【図８】このデバイスにおいて実行されているルーチンのフローチャートである。
【図９】本発明の第２のパケット通信機能を有する電子機器の一実施形態であるデバイスに備えられている機能の一部を示すブロック図である。
【図１０】ＰＲＥＯＵＴパケットを示す図である。
【図１１】このデバイスにおいて実行されているルーチンのフローチャートである。
【符号の説明】
１、１０　ホスト
２、２００、２２０　デバイス
２０１　トランシーバ／レシーバ
２０２　パケット検出部
２０３　Ｓ／Ｐ（シリアル／パラレル）変換部
２０４　Ｐ／Ｓ変換部
２０５　データパケット検出部
２０６　アドレス検出部
２０７　ローカルＳＯＦ検出部
２０８　バルクイン検出部
２０９　他のエンドポイント処理部
２１０　ステータスパケット生成部
２１１　バルクアウト検出部
２１２　バルクアウト転送処理回路
２１３　バルクイン転送処理回路
２１４　ＡＣＫ／ＮＡＫパケット生成部
２１５　ＰＲＥＯＵＴ検出部
【図１】
2004021320.tif 000003
【図２】
2004021320.tif 000004
【図３】
2004021320.tif 000005
【図４】
2004021320.tif 000006
【図５】
2004021320.tif 000007
【図６】
2004021320.tif 000008
【図７】
2004021320.tif 000009
【図８】
2004021320.tif 000010
【図９】
2004021320.tif 000011
【図１０】
2004021320.tif 000012
【図１１】
2004021320.tif 000013