JP4050135B2 - 通信デバイス、ホスト装置、及び通信方法 - Google Patents
通信デバイス、ホスト装置、及び通信方法 Download PDFInfo
- Publication number
- JP4050135B2 JP4050135B2 JP2002341096A JP2002341096A JP4050135B2 JP 4050135 B2 JP4050135 B2 JP 4050135B2 JP 2002341096 A JP2002341096 A JP 2002341096A JP 2002341096 A JP2002341096 A JP 2002341096A JP 4050135 B2 JP4050135 B2 JP 4050135B2
- Authority
- JP
- Japan
- Prior art keywords
- packet
- communication
- stall
- host
- host device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
- G06F13/4295—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using an embedded synchronisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1867—Arrangements specially adapted for the transmitter end
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Systems (AREA)
- Debugging And Monitoring (AREA)
- Small-Scale Networks (AREA)
- Maintenance And Management Of Digital Transmission (AREA)
Description
【発明の属する技術分野】
本発明は、USBインターフェースによりデータ通信を行う通信デバイス、ホスト装置、通信方法に関するものである。
【0002】
近年、ホスト機能を有するコンピュータ(ホスト装置)とそれに接続した周辺機器(デバイス)との間で通信を行うためのシリアルインターフェースの一種として、USB(Universal Serial Bus)インターフェースが普及している。そのUSBインターフェースによりデータ通信を行う通信システムにおいて、ホスト装置がデバイスのエラーを誤認識することがあり、その誤認識に基づくプロトコルフェーズのずれを回避する技術が要求されている。
【0003】
【従来の技術】
通常、USBインターフェースを用いたデータ通信はトランザクションとよばれる単位で行われる。トランザクションは複数のパケットで構成され、それらパケットとしては、SOFパケット、トークンパケット、データパケット、ハンドシェークパケットが使用される。
【0004】
図8は、各パケットのフォーマットを示す説明図である。
SOFパケットP1は、ホスト装置が1ms毎に発行するフレームの始まりを示すパケットであり、トークンパケットP2は、ホスト装置がトランザクションの開始時に発行するパケットである。また、データパケットP3は、データ転送時に使用するパケットであり、ハンドシェークパケットP4は、トランザクションの結果を報告するために使用するパケットである。
【0005】
SOFパケットP1は、同期(Synchronize:SYNC)フィールド、パケットID(PID)フィールド、フレーム番号(Frame Number)フィールド、エラー判定(Cyclic Redundancy Check:CRC)フィールド、終了(END of Packet:EOP)フィールドを持つ。
【0006】
トークンパケットP2は、SYNCフィールド、PIDフィールド、アドレス(ADDR)フィールド、エンドポイント番号(ENDP)フィールド、CRCフィールド、EOPフィールドを持つ。
【0007】
データパケットP3は、SYNCフィールド、PIDフィールド、データ(DATA)フィールド、CRCフィールド、EOPフィールドを持つ。
ハンドシェークパケットP4は、SYNCフィールド、PIDフィールド、EOPフィールドを持つ。
【0008】
全てのパケットP1〜P4は8ビット長のSYNCフィールドで始まり、そのSYNCフィールドの直後には、8ビット長のPIDフィールドが設けられている。SYNCフィールドは、通信信号の同期をとるために用いられ、PIDフィールドは、パケットの種類を判別するために用いられる。また、全てのパケットP1〜P4は、2ビット長のEOPフィールドで終了する。
【0009】
SOFパケットP1における11ビット長のフレーム番号フィールドは、トランザクションのフレーム番号を示すために用いられ、5ビット長のCRCフィールドは、フレーム番号フィールドのデータに対するエラーチェックに用いられる。
【0010】
トークンパケットP2における7ビット長のADDRフィールドは、受信先のデバイスを指定するために用いられ、4ビット長のENDPフィールドは、デバイスのエンドポイントを判別するために用いられる。エンドポイントとは、データ転送のために使用されるFIFOバッファである。また、トークンパケットP2における5ビット長のCRCフィールドは、ADDRフィールド及びENDPフィールドのデータに対するエラーチェックに用いられる。
【0011】
データパケットP3におけるDATAフィールドは、データ転送のために用いられ、16ビット長のCRC16フィールドは、DATAフィールドのエラーチェックに用いられる。
【0012】
ハンドシェークパケットは、SYNCフィールド、PIDフィールド、EOPフィールドのみで構成される。ハンドシェークパケットの種類としては、データ受信の成功を通知するためのACKパケット、データの再送信等を要求するためのNAKパケット、データの送受信ができない旨を通知するためのSTALLパケットがある。
【0013】
図9には、USBのバルクオンリー通信プロトコルに準じた(USB Mass Storage Class Bulk Only Transport 1.0 に準じた)通信システムにおいて、デバイス側でエラーが生じた場合の動作を示している。
【0014】
図9に示すように、デバイスでエラーが発生したとき、そのデバイスがホスト装置にSTALLパケットを送信する(ステップ1)。ホスト装置は、そのSTALLパケットを受信すると、デバイスがデータ転送フェーズを停止したことを認識する。これにより、ホスト装置からのデータ転送が停止される仕組みになっている。
【0015】
その後、ホスト装置は、デバイスにクリアフィーチャー(Clear Feature)コマンドを送信する(ステップ2)。デバイスは、クリアフィーチャーコマンドに応答してエンドポイントをクリアした後、ステータス情報(CSW)を送信する(ステップ3)。そして、ホスト装置はデバイスからのステータス情報を読み取り、そのステータス情報に対するトランザクションを実行することでデータ転送を再開する。
【0016】
因みに、通信システムにおける故障回復または故障発生を検出できるようにした装置が特許文献1に開示されている。また、データを送信し、それに対する応答信号に基づいて送信確認を行う方法が特許文献2に開示されている。
【0017】
【特許文献1】
特開平7−264185号公報
【特許文献2】
特開昭54−89510号公報
【0018】
【発明が解決しようとする課題】
ところで、図9に示すエラー処理のプロトコルにおいて、デバイスがSTALLパケットを送信していないにもかかわらず、ホスト装置がデバイスの異常を誤認識する状況に陥ることがある。
【0019】
例えば、外部ノイズの影響や、クロック生成用のPLL回路におけるジッターの影響等によりパケットの信号が誤って伝達されることがある。通常、このようなエラーが発生した場合には、パケットにおけるCRCフィールドの情報を照合することにより、パケットが無効であると判断される。しかし、ACKパケット、NACパケット、STALLパケット等のハンドシェークパケットP4は、他のパケットP1〜P3とは異なりCRCフィールドを持たず(図8参照)、PIDフィールドの情報のみで整合性が検査される。具体的には、PIDフィールドにおいて、4ビットでパケットの種類が示され、残りの4ビットによりエラーがチェックされる。PIDフィールドでは、パケットの種類を示す4ビットのデータに対し、残りの4ビットは、論理レベルが反転されたデータになっている。従って、PIDフィールドにおける2ビットのずれが生じると、パケットを誤認識する可能性がある。
【0020】
特に、車載デバイス、携帯情報端末、宇宙で使用される通信機器等の外部ノイズの影響を受けやすいデバイスや、クロックのジッターが大きいデバイスにおいては、複数のビット誤りが同時に発生しやすいことが確認されている。
【0021】
ハンドシェークパケットP4の誤認識のなかで顕著な例としては、ACKパケットまたはNACパケットをSTALLパケットであると誤認識する場合がある。ACKパケット及びNAKパケットは、パケット転送によるデータ受領の確認のために発行され、STALLパケットは、データ転送を中止するために発行される。従って、ホスト装置がACKパケットまたはNAKパケットをSTALLパケットであると誤認識した場合には、ホスト装置のみがデータ転送を中止し、一方、デバイスは正常なデータ転送のプロトコルを継続しようとする、いわゆる、プロトコルフェーズのずれが生じてしまう。
【0022】
図10には、デバイスからのACKパケットまたはNAKパケットをホスト装置がSTALLパケットであると誤認識した場合の動作を示している。
先ず、正常に動作しているデバイスがACKパケットまたはNAKパケットを送信する(ステップ1a)。そして、ホスト装置がSTALLパケットを受信したと誤認識すると、デバイスにクリアフィーチャー(Clear Feature)コマンドを発行し(ステップ2a)、その後、ステータス情報(CSW)に対するトランザクションを実行しようとする。
【0023】
しかし、デバイスはそもそもSTALLパケットを送っておらず、エラーが発生したという認識はないため、そのまま通常のプロトコルに従いデータ転送を続ける(ステップ3a)。このとき、ホスト装置側とデバイス側とでプロトコルフェーズにずれが生じることになる。すなわち、デバイスは、データを送信するが、ホスト装置は、そのデータをステータス情報(CSW)であると解釈することになる。ここで、送り手と受け手の意図するデータが異なるといった問題が起きる。
【0024】
この場合、ホスト装置は、ステップ3aによる受信データに関し、ステータス情報であるものとして、それに含まれるシグネーチャ情報を検査するが、シグネーチャ情報が正常値と一致しないのでデバイスが異常であることを知ることになる。そして、その異常を検知したホスト装置は、デバイスをリセットする。つまり、デバイスは正常に動作しデータ転送が可能であるにもかかわらず、ホスト装置の誤認識によってデバイスがリセットされてしまう。このように、正常なデバイスをリセットするとその回復のために秒単位の処理時間が必要になるため、システムの信頼性が損なわれることとなる。
【0025】
特に、USBのバルクオンリー通信プロトコルにおいては、データを転送するためのポートとステータス情報を転送するためのポートとが共通使用されている。そのため、上述したプロトコルフェーズのずれを判別することが困難であり、ハンドシェークパケットの誤認識に伴うシステム信頼性の低下が問題となっている。
【0026】
本発明は上記問題点を解決するためになされたものであって、その目的は、ハンドシェークパケットの誤認識時に、適切な回避動作を実現することができる通信デバイス、ホスト装置、及び通信方法を提供することにある。
【0027】
【課題を解決するための手段】
上記目的を達成するため、請求項1又は4に記載の発明によれば、USBインターフェースを介してホスト装置とデータ通信が行われる。このデータ通信において、ACKパケット又はNAKパケットをホスト装置に送信したにもかかわらず、該ホスト装置により、そのACKパケット又はNAKパケットとは異なるSTALLパケットを受信したと誤認識されることがあるが、そのSTALLパケットの誤認識が検出手段により検出される。ここで、ACKパケット又はNAKパケットを送信したにもかかわらず、ホスト装置がSTALLパケットを受信したと認識したときには、該ホスト装置から所定のコマンドが出力されるため、そのコマンドに基づいて、ホスト装置の誤認識が検出される。その検出時に、送信手段によりSTALLパケットが送信されることにより、ホスト装置と通信デバイスとにおけるプロトコルフェーズがずれることが回避される。
【0029】
請求項2又は5に記載の発明によれば、所定のコマンドの受信回数が計数されるとともに、STALLパケットの送信回数が計数される。そして、受信回数と送信回数とに基づいて通信システムの異常が計測される。USBの通信プロトコルにおいては、デバイスからホスト装置にSTALLパケットが送られた後、ホスト装置から所定のコマンドが送信される。そして、異常計測手段によって、所定のコマンドの受信回数とSTALLパケットの送信回数との差が演算されることで、通信システムの異常が発生する回数を計測することが可能となる。
【0030】
請求項3に記載の発明によれば、USBインターフェースを介して通信デバイスとデータ通信が行われる。このデータ通信において、通信デバイスから出力されたACKパケット又はNAKパケットをそれとは異なるSTALLパケットを受信したと誤認識することがあるが、その誤認識によるプロトコルフェーズのずれを回避するために、該プロトコルフェーズのずれの有無を確認するための補助プロトコルが実行される。
【0031】
具体的には、補助プロトコルとして、前記通信デバイスから受け取ったパケットを前記STALLパケットであると1度目に認識したときには、常に前記通信デバイスにデータ転送を要求し、そのデータ転送要求に応じて前記デバイスから送信されたパケットを再度STALLパケットであると認識して、2度連続してSTALLパケットであると認識したときに該ホスト装置から所定のコマンドが送信される。
【0032】
【発明の実施の形態】
(第1実施形態)
以下、本発明を通信装置に具体化した第1実施形態を図面に従って説明する。
【0033】
図1は、USBインターフェース規格に準拠したデータ転送を行う通信システムのブロック図である。同図に示されるように、USBによる通信を管理するホストPC(ホスト装置)11は、デバイス12とUSBバス13を介して相互に接続されている。デバイス12は、例えば、USB Mass Storage Class Bulk Only Transport 1.0 に準拠したハードディスク装置である。なお、図1には、デバイス12におけるデータ転送のための回路のみを示している。
【0034】
デバイス12は、物理層回路(PHY)14、リンク層回路(LINK)15、第1〜第3のエンドポイント16,17,18、及びコントローラ19を備えている。
【0035】
デバイス12における物理層回路14は、USBバス13を介してホストPC11に接続されている。また、物理層回路14は、リンク層回路15に接続され、該リンク層回路15は、各エンドポイント16〜18に接続されている。さらに、各エンドポイント16〜18にはコントローラ19が接続されている。
【0036】
物理層回路14は、USBバス13を介して入力される電気的信号をリンク層回路15が扱う論理的な信号に変換して該信号をリンク層回路15に出力する。また、物理層回路14は、リンク層回路15から入力された論理的信号を電気的信号に変換してUSBバス13に出力する。
【0037】
リンク層回路15は、受信したパケットの種類を判別して第1のエンドポイント16又は第3のエンドポイント18に出力する。また、リンク層回路15は、第1のエンドポイント16又は第2のエンドポイント17から送信パケットを取り込み、そのパケットに応じた論理信号を物理層回路14に出力する。
【0038】
第1のエンドポイント(Control End Point)16は、送受信型の転送機能を持つFIFOバッファであって、主にデバイス12の初期化を行うために用いられる。第2のエンドポイント(Bulk-IN End Point)17、第3のエンドポイント(Bulk-Out End Point)18は、それぞれ送信型の転送機能、受信型の転送機能を持つFIFOバッファである。これらのエンドポイント17,18は図示しないデータ記録部へのデータの読み書き及びコマンドの転送に用いられる。
【0039】
即ち、デバイス12において、初期化動作のためのコマンド(クリアフィーチャーコマンドを含む)の送受信には第1のエンドポイント16が使用される。また、データ送信には第2のエンドポイント17が使用され、データ受信には第3のエンドポイント18が使用される。
【0040】
コントローラ19は、データ転送を制御する回路であって、CF検出部19aとST送信部19bとを備える。CF検出部19aは、ホストPC11が発行したクリアフィーチャーコマンドを検出するための回路であり、ST送信部19bは、STALLパケットを送信するための回路である。
【0041】
本実施形態のデバイス12において、ホストPC11から受信したクリアフィーチャーコマンドは、第1のエンドポイント16を経由してコントローラ19のCF検出部19aに伝達される。また、STALLパケットは、コントローラ19のST送信部19bから第2のエンドポイント17を経由して送信される。
【0042】
図2に示すように、CF検出部19aは、CF−PaketData列検出回路20aと、USBコントロールレジスタ20bとを備える。CF−PaketData列検出回路20aは、第1のエンドポイント(Control End Point)16のデータパケットを監視し、Clear FeatureのData列を検出すると、USBコントロールレジスタ20bにClear Feature検出ビットBcfを設定する。
【0043】
次に、本実施形態における通信システムの動作を説明する。
図3に示すように、正常に動作しているデバイス12がACKパケットまたはNAKパケットを送信する(ステップ21)。このとき、外部ノイズによりパケットが誤って伝送され、ホストPC11がSTALLパケットを受信したと誤認識すると、そのホストPC11は、デバイス12にクリアフィーチャー(Clear Feature)コマンドを含むパケットを送信する(ステップ22)。
【0044】
デバイス12は、そのクリアフィーチャーのパケットを受信する。このとき、デバイス12は、自身が正常に動作しており、STALLパケットを送信していないにもかかわらず、クリアフィーチャーコマンドをCF検出部19aで検出することになる。従って、デバイス12は、ホストPC11に向けて、確認のためのSTALLパケットを送信する(ステップ23)。このSTALLパケットを送信することにより、ホストPC11が、STALLパケットの誤認識をしているか否かにかかわらず、ホストPC11側とデバイス12側とにおけるプロトコルフェーズが一致する。
【0045】
その後、ホストPC11は再度クリアフィーチャーのパケットを送信する(ステップ24)。このとき、デバイス12は、ステップ23で送信したSTALLパケットに対するクリアフィーチャーコマンドを受信した旨を判断し、そのクリアフィーチャーコマンドに応答してステータス情報(CSW)を送信する。なお、このステータス情報は、第2のエンドポイント17を経由してバルクインのデータパケットとして送信される。これにより、ホストPC11とデバイス12との間で、ステータス情報の授受が行われる。そして、そのステータス情報に対するトランザクションが実行されることでデータ転送が再開される。
【0046】
また、デバイス12がホストPC11から受信した信号をクリアフィーチャーコマンドであると誤認識した場合、デバイス12がホストPC11にSTALLパケットを送ることにより、双方のプロトコルフェーズがずれることが防止される。
【0047】
以上記述したように、上記実施形態によれば、下記の効果を奏する。
(1)ホストPC11がSTALLパケットを誤認識した場合、その誤認識がCF検出部19aにて検出される。具体的には、デバイス12がACKパケット又はNACパケットを送信したにもかかわらず、ホストPC11がSTALLパケットを受信したと認識したときには該ホストPC11からクリアフィーチャーコマンドが出力されるため、そのクリアフィーチャーコマンドによりホストPC11の誤認識が検出される。そして、その誤認識時には、ST送信部19bによってプロトコルフェーズのずれを調整するようSTALLパケットが送信される。これにより、ステータス情報の受け渡しを正しく実行することができるため、デバイス12をリセットすることなくデータ転送を再開できる。
【0048】
(2)デバイス12のリセットに伴うシステムダウンの問題が回避されるので、通信システムの信頼性を向上することができる。
(第2実施形態)
以下、本発明を具体化した第2実施形態を説明する。
【0049】
上記第1実施形態の通信システムでは、デバイス12側の制御により、プロトコルフェーズのずれを回避するものであったが、本実施形態の通信システムではホストPC側での制御により、プロトコルフェーズのずれを回避するよう構成している。
【0050】
図4に示すように、ホストPC31がデバイス32とUSBバス33を介して相互に接続されている。デバイス32は、USB Mass Storage Class Bulk Only Mode 1.0 に準拠したハードディスク装置である。なお、図4には、ホストPC31におけるデータ転送のための回路のみを示している。
【0051】
ホストPC31は、物理層回路(PHY)34、リンク層回路(LINK)35、メモリ36、及びコントローラ37を備えている。物理層回路34は、USBバス33を介してデバイス32に接続されている。また、物理層回路34は、リンク層回路35に接続され、該リンク層回路35には、コントローラ37が接続されている。さらに、リンク層回路35には、PCIバス38を介してメモリ36が接続され、該メモリ36にはコントローラ37が接続されている。
【0052】
物理層回路34は、USBバス33を介して入力される電気的信号をリンク層回路35が扱う論理的な信号に変換して該信号をリンク層回路35に出力する。また、物理層回路34は、リンク層回路35から入力された論理的信号を電気的信号に変換してUSBバス33に出力する。
【0053】
リンク層回路35は、受信パケットをPCIバス38を介してメモリ36に格納したり、メモリ36からPCIバス38を介して取り込んだ送信パケットに対応する論理信号を物理層回路34に出力したりする。
【0054】
コントローラ37は、リンク層回路35とメモリ36との間のデータの授受を管理してデータ転送を制御する。
次に、本実施形態における通信システムの動作を説明する。
【0055】
図5に示すように、デバイス32でエラーが発生し、ホストPC31からのデータ転送要求に対する応答ができないときには、デバイス32がSTALLパケットを送信する(ステップ41)。ホストPC31は、そのSTALLパケットを受信する。本実施形態において、ホストPC31は、STALLパケットを受信したとき、直ちにクリアフィーチャーコマンドを送信するのではなく、データ転送要求を再度実行する(ステップ42)。
【0056】
その後、デバイス32が2度目のSTALLパケットを送信し(ステップ43)、ホストPC31は、そのSTALLパケットを受信することにより、デバイス32におけるデータ転送フェーズが停止されていると判断する。そして、ホストPC31は、デバイス32にクリアフィーチャー(Clear Feature)コマンドを送信する(ステップ44)。デバイス32は、クリアフィーチャーコマンドに応答してエンドポイントをクリアした後、バルクインのエンドポイントからステータス情報(CSW)を送信する(ステップ45)。これにより、ホストPC31とデバイス32との間でステータス情報の授受が行われる。その後、そのステータス情報に対するトランザクションが実行されることでデータ転送が再開される。
【0057】
次に、デバイス32が送信したACKパケットまたはNAKパケットをホストPC31がSTALLパケットであると誤認識した場合の動作を説明する。
図6に示すように、正常に動作しているデバイス32がACKパケットまたはNAKパケットを送信する(ステップ51)。そのパケットが外部ノイズの影響により誤って伝送され、ホストPC31がSTALLパケットを受信したと誤認識する。このとき、ホストPC31は、直ちにクリアフィーチャーコマンドを送信するのではなく、データ転送要求を再度実行する(ステップ52)。
【0058】
その後、デバイス32は、データ転送要求に応答して、ACKパケットまたはNAKパケットを送信する(ステップ53)。そして、ホストPC31は正常パケット(ACKパケットまたはNAKパケット)を受信することにより、デバイス32が正常に動作している旨を判断してデータ転送要求を実行する(ステップ54)。以降の処理では、ホストPC31とデバイス32との間で通常のデータ転送が行われる(ステップ55、ステップ56)。
【0059】
以上記述したように、上記実施形態によれば、下記の効果を奏する。
(1)デバイス32からホストPC31が受け取ったパケットを2度連続してSTALLパケットであると認識したときにホストPC31からクリアフィーチャーコマンドが送信される。このようにすると、ホストPC31がSTALLパケットの誤認識をしたときにも、データ転送のトランザクションレベルで復帰が可能である。従って、ホストPC31の誤認識によるプロトコルフェーズのずれが回避され、デバイス32をリセットする必要がない。
【0060】
(2)デバイス32のリセットに伴うシステムダウンの問題が回避され、通信システムの信頼性を向上することができる。
(3)本実施形態では、データ転送のトランザクションレベルで復帰が可能であることから、第1実施形態と比較して、STALLパケットの誤認識時における回避処理のためのオーバヘッドを少なくすることができる。
【0061】
(第3実施形態)
以下、本発明を具体化した第3実施形態を説明する。但し、以下には第1実施形態との相違点を中心に説明する。
【0062】
図7に示すように、本実施形態のデバイス12におけるコントローラ19は、CF検出部19a、ST送信部19bに加え、CF計数部19c、ST計数部19d、異常計測部19fを備えている。
【0063】
CF計数部19cは、CF検出部19aが検出したクリアフィーチャーコマンドの受信回数を計数し、その受信回数を異常計測部19fに出力する。ST計数部19dは、ST送信部19bが送信したSTALLパケットの送信回数を計数し、その送信回数を異常計測部19fに出力する。異常計測部19fは、クリアフィーチャーコマンドの受信回数と、STALLパケットの送信回数とに基づいて、フェーズ異常の回数を計測する。
【0064】
つまり、USBの通信プロトコルにおいては、デバイス12からホストPC11にSTALLパケットが送られた後、ホストPC11からデバイス12にクリアフィーチャーコマンドが発行される。そのため、フェーズ異常が発生しなければ、STALLパケットの送信回数とクリアフィーチャーコマンドの受信回数は等しくなる。従って、STALLパケットの送信回数とクリアフィーチャーコマンドの受信回数との差を演算することにより、フェーズ異常の発生事象の回数を求めることができる。なお、フェーズ異常の発生事象の回数とは、ホストPC11がSTALLパケットを誤認識した事象、またはそれに準じる予期しないプロトコルの食い違いが発生した事象の回数である。
【0065】
異常計測部19fが演算したフェーズ異常の回数は、自己診断のためのデータとして用いられる。具体的には、デバイス12に表示部(ディスプレイ)が設けられている場合、フェーズ異常が頻繁に発生するときにそのフェーズ異常の回数に応じた警告を表示部に表示させる。また例えば、ホストPC11からのデータ転送要求に応答して、フェーズ異常の回数をホストPC11に送信することにより、同ホストPC11の表示部にフェーズ異常の警告を表示させるようにしてもよい。
【0066】
以上記述したように、上記実施形態によれば、下記の効果を奏する。
(1)CF計数部19cにてクリアフィーチャーコマンドの受信回数が計数され、ST計数部19dにてSTALLパケットの送信回数が計数され、それら受信回数と送信回数とに基づいて通信システムにおけるフェーズ異常の回数を計測することができる。
【0067】
(2)異常計測部19fで計測したフェーズ異常の回数を用いることで通信システムの信頼性の評価を行うことができる。
上記各実施形態は、次に示すように変更することもできる。
【0068】
・各実施形態では、ハードディスク装置に適用したが、MOや、DVD,CDなどのATA/ATAPIデバイス、或いはプリンタ,スキャナなどのパソコン周辺装置等、他のデバイスに適用してもよい。
【0069】
・コントローラ19において、CF検出部19a、ST送信部19b、CF計数部19c、ST計数部19d、及び異常計測部19fは、所定の回路を形成することで実現されるが、これに限定されるものではなく、コントローラ19が実行するプログラムにより、各部19a〜19fの機能を実現してもよい。
【0070】
以上の様々な実施の形態をまとめると、以下のようになる。
(付記1)USBインターフェースを介してホスト装置とデータ通信を行う通信デバイスであって、
第1のパケットを前記ホスト装置に送信したときに該ホスト装置が前記第1のパケットとは異なる第2のパケットを受信したと誤認識することを検出する検出手段と、
前記第2のパケットの誤認識時に第2のパケットを送信する送信手段と
を備えたことを特徴とする通信デバイス。
(付記2)通信方式がバルクオンリー通信方式であり、
前記ホスト装置との間で送受信されるパケットとして、ACKパケット、NACパケット、及び前記第2のパケットのハンドシェークパケットを含むものであり、
前記検出手段は、前記ACKパケット又はNACパケットを送信したにもかかわらず前記ホスト装置が前記第2のパケットを受信したと認識したときに該ホスト装置から出力される所定のコマンドに基づいて、前記ホスト装置の誤認識を検出することを特徴とする付記1に記載の通信デバイス。
(付記3)前記所定のコマンドの受信回数を計数する第1計数手段と、
前記第2のパケットの送信回数を計数する第2計数手段と、
前記受信回数と送信回数とに基づいて、通信システムの異常を計測する異常計測手段と
を備えたことを特徴とする付記2に記載の通信デバイス。
(付記4)前記第2のパケットがSTALLパケットであることを特徴とする付記1〜3のいずれかに記載の通信デバイス。
(付記5)前記送信手段は、前記第2のパケットの誤認識時にプロトコルフェーズのずれを調整するよう第2のパケットを送信することを特徴とする付記1に記載の通信デバイス。
(付記6)前記所定のコマンドはクリアフィーチャーコマンドであることを特徴とする付記2又は3に記載の通信デバイス。
(付記7)USBインターフェースを介して通信デバイスとデータ通信を行うホスト装置であって、
前記通信デバイスから出力された第1のパケットを該パケットとは異なる第2のパケットと誤認識したことによるプロトコルフェーズのずれを回避するために、該プロトコルフェーズのずれの有無を確認するための補助プロトコルを実行するようにしたことを特徴とするホスト装置。
(付記8)前記補助プロトコルとして、前記通信デバイスから受け取ったパケットを2度連続して前記第2のパケットであると認識したときに所定のコマンドを送信するようにしたことを特徴とする付記7に記載のホスト装置。
(付記9)ホスト装置と通信デバイスとがUSBインターフェースを介してデータ通信を行う通信方法であって、
前記通信デバイスから前記ホスト装置に送信された第1のパケットに対し、そのホスト装置が前記第1のパケットとは異なる第2のパケットを受信したと誤認識したときに該ホスト装置から出力される所定のコマンドを検出し、
前記第2のパケットの誤認識時に前記通信デバイスが第2のパケットを送信することを特徴とする通信方法。
(付記10)前記通信デバイスが所定のコマンドを受信する受信回数を計数し、前記通信デバイスが第2のパケットを送信する送信回数を計数し、前記受信回数と送信回数とに基づいて、通信システムの異常を計測することを特徴とする付記9に記載の通信方法。
(付記11)ホスト装置と通信デバイスとがUSBインターフェースを介してデータ通信を行う通信方法であって、
前記ホスト装置が、前記通信デバイスから受け取ったパケットを2度連続して第1のパケットとは異なる第2のパケットであると認識したときに所定のコマンドを前記通信デバイスに送信するようにしたことを特徴とする通信方法。
(付記12)前記第2のパケットがSTALLパケットであることを特徴とする付記9〜11のいずれかに記載の通信方法。
(付記13)前記第2のパケットの誤認識時にプロトコルフェーズのずれを調整するよう前記通信デバイスが第2のパケットをホスト装置に送信することを特徴とする付記9に記載の通信方法。
(付記14)前記所定のコマンドはクリアフィーチャーコマンドであることを特徴とする付記9〜11のいずれかに記載の通信方法。
【0071】
【発明の効果】
以上詳述したように、本発明によれば、ホスト装置と通信デバイスとがUSBインターフェースを介してデータ通信を行う通信システムにおいて、ハンドシェークパケットであるSTALLパケットの誤認識時に、適切な回避動作を実現することができる。
【図面の簡単な説明】
【図1】 第1実施形態を示すブロック図である。
【図2】 CF検出部を示すブロック図である。
【図3】 誤認識時の動作を示す説明図である。
【図4】 第2実施形態を示すブロック図である。
【図5】 デバイスのエラー時の動作を示す説明図である。
【図6】 誤認識時の動作を示す説明図である。
【図7】 第3実施形態を示すブロック図である。
【図8】 パケットのフォーマットを示す説明図である。
【図9】 デバイスのエラー時の動作を示す説明図である。
【図10】 誤認識時の動作を示す説明図である。
【符号の説明】
11,31 ホスト装置としてのホストPC
12,32 通信デバイスとしてのデバイス
19a 検出手段としてのCF検出部
19b 送信手段としてのST送信部
19c 第1計数手段としてのCF計数部
19d 第2計数手段としてのST計数部
19f 異常計測手段としての異常計測部
Claims (5)
- USBインターフェースを介してホスト装置とデータ通信を行う通信デバイスであって、
通信方式がバルクオンリー通信方式であり、
ACKパケット又はNAKパケットを前記ホスト装置に送信したときに該ホスト装置が前記ACKパケット又はNAKパケットとは異なるSTALLパケットを受信したと誤認識することを検出する検出手段と、
前記STALLパケットの誤認識時にSTALLパケットを送信する送信手段と、を備え、
前記検出手段は、前記ACKパケット又はNACパケットを送信したにもかかわらず前記ホスト装置が前記STALLパケットを受信したと認識したときに該ホスト装置から出力される所定のコマンドに基づいて、前記ホスト装置の誤認識を検出することを特徴とする通信デバイス。 - 前記所定のコマンドの受信回数を計数する第1計数手段と、
前記STALLパケットの送信回数を計数する第2計数手段と、
前記受信回数と送信回数とに基づいて、通信システムの異常を計測する異常計測手段と
を備えたことを特徴とする請求項1に記載の通信デバイス。 - USBインターフェースを介して通信デバイスとデータ通信を行うホスト装置であって、
前記通信デバイスから出力されたACKパケット又はNAKパケットを該パケットとは異なるSTALLパケットと誤認識したことによるプロトコルフェーズのずれを回避するために、該プロトコルフェーズのずれの有無を確認するための補助プロトコルを実行するようにし、
前記補助プロトコルとして、前記通信デバイスから受け取ったパケットを前記STALLパケットであると1度目に認識したときには、常に前記通信デバイスにデータ転送を要求し、そのデータ転送要求に応じて前記デバイスから送信されたパケットを再度STALLパケットであると認識して、2度連続して前記STALLパケットであると認識したときに所定のコマンドを送信するようにしたことを特徴とするホスト装置。 - ホスト装置と通信デバイスとがUSBインターフェースを介してデータ通信を行う通信方法であって、
前記通信デバイスから前記ホスト装置に送信されたACKパケット又はNAKパケットに対し、そのホスト装置が前記ACKパケット又はNAKパケットとは異なるSTALLパケットを受信したと誤認識したときに該ホスト装置から出力される所定のコマンドを検出し、
前記STALLパケットの誤認識時に前記通信デバイスがSTALLパケットを送信することを特徴とする通信方法。 - 前記通信デバイスが所定のコマンドを受信する受信回数を計数し、前記通信デバイスが前記STALLパケットを送信する送信回数を計数し、前記受信回数と送信回数とに基づいて、通信システムの異常を計測することを特徴とする請求項4に記載の通信方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002341096A JP4050135B2 (ja) | 2002-11-25 | 2002-11-25 | 通信デバイス、ホスト装置、及び通信方法 |
US10/718,548 US7143208B2 (en) | 2002-11-25 | 2003-11-24 | Communication device, host apparatus, and communication method |
US11/583,735 US7430619B2 (en) | 2002-11-25 | 2006-10-20 | Communication device, host apparatus, and communication method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002341096A JP4050135B2 (ja) | 2002-11-25 | 2002-11-25 | 通信デバイス、ホスト装置、及び通信方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004178074A JP2004178074A (ja) | 2004-06-24 |
JP4050135B2 true JP4050135B2 (ja) | 2008-02-20 |
Family
ID=32703558
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002341096A Expired - Fee Related JP4050135B2 (ja) | 2002-11-25 | 2002-11-25 | 通信デバイス、ホスト装置、及び通信方法 |
Country Status (2)
Country | Link |
---|---|
US (2) | US7143208B2 (ja) |
JP (1) | JP4050135B2 (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060253639A1 (en) * | 2005-05-05 | 2006-11-09 | Aten International Co., Ltd. | Control system for controlling a plurality of target computers through portable computer |
US8025133B2 (en) * | 2008-06-06 | 2011-09-27 | Miner Enterprises, Inc. | Strut swedge tooling |
US20100011055A1 (en) * | 2008-07-09 | 2010-01-14 | Chih-Hua Lin | Remote desktop control system using usb cable and method thereof |
US8602180B2 (en) * | 2008-07-31 | 2013-12-10 | Powerbrace Corporation | Railroad freight car brake beam assembly |
JP5252074B2 (ja) * | 2009-03-10 | 2013-07-31 | 富士通株式会社 | 送受信装置、データの送受信方法 |
US8566934B2 (en) | 2011-01-21 | 2013-10-22 | Gigavation, Inc. | Apparatus and method for enhancing security of data on a host computing device and a peripheral device |
WO2013023105A1 (en) | 2011-08-10 | 2013-02-14 | Srivastava Gita | Apparatus and method for enhancing security of data on a host computing device and a peripheral device |
TWI676893B (zh) * | 2017-10-11 | 2019-11-11 | 祥碩科技股份有限公司 | 橋接裝置與資料傳輸方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6044216A (en) * | 1996-06-24 | 2000-03-28 | Oracle Corporation | Method and apparatus for implementing cursor variables for accessing data from database |
US6145045A (en) * | 1998-01-07 | 2000-11-07 | National Semiconductor Corporation | System for sending and receiving data on a Universal Serial Bus (USB) using a memory shared among a number of end points |
US6311294B1 (en) * | 1998-10-20 | 2001-10-30 | Cypress Semiconductor Corp. | Device and method for efficient bulk data retrieval using a universal serial bus |
US6389029B1 (en) * | 1998-11-10 | 2002-05-14 | Nortel Networks Limited | Local area network incorporating universal serial bus protocol |
US6718282B1 (en) * | 1999-10-20 | 2004-04-06 | Cisco Technology, Inc. | Fault tolerant client-server environment |
US7324548B2 (en) * | 2002-11-01 | 2008-01-29 | Broadcom Corporation | Transceiver system and method supporting variable rates and multiple protocols |
-
2002
- 2002-11-25 JP JP2002341096A patent/JP4050135B2/ja not_active Expired - Fee Related
-
2003
- 2003-11-24 US US10/718,548 patent/US7143208B2/en not_active Expired - Lifetime
-
2006
- 2006-10-20 US US11/583,735 patent/US7430619B2/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US20070038783A1 (en) | 2007-02-15 |
US7430619B2 (en) | 2008-09-30 |
US7143208B2 (en) | 2006-11-28 |
JP2004178074A (ja) | 2004-06-24 |
US20040148431A1 (en) | 2004-07-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7430619B2 (en) | Communication device, host apparatus, and communication method | |
CN100366029C (zh) | 通信控制器、主机端控制器、通信设备、通信系统和方法 | |
US6173355B1 (en) | System for sending and receiving data on a universal serial bus (USB) using a memory shared among a number of endpoints | |
US6609167B1 (en) | Host and device serial communication protocols and communication packet formats | |
US7821919B2 (en) | Data processing apparatus and data processing method | |
US20050165989A1 (en) | I2C communication system and method enabling bi-directional communications | |
JP4896524B2 (ja) | 無線識別システムから交換可能ユニットモニタへのデータ伝送の完了の確認方法 | |
US8281189B2 (en) | SATA primitive prediction and correction | |
CN108234267B (zh) | 一种基于m-lvds实时多主高速总线的通信系统 | |
CN104699576B (zh) | 串行通信测试装置、包括该装置的系统及其方法 | |
TWI771299B (zh) | 通訊裝置、通訊方法、程式以及通訊系統 | |
JPH06324977A (ja) | データ転送方法 | |
US8874989B2 (en) | Memory system capable of increasing data transfer efficiency | |
US20040095929A1 (en) | Data processor, packet recognition method, and error correction method | |
JP5125430B2 (ja) | 情報処理装置及び情報処理方法 | |
KR20190008855A (ko) | 통신 장치, 통신 방법, 프로그램, 및 통신 시스템 | |
CN114095837A (zh) | 一种避免i2s音频接口发生通道调换系统 | |
CN102455946B (zh) | Usb装置异常的检测与恢复电路及其方法 | |
CN109074343B (zh) | 通信设备、通信方法、程序、以及通信系统 | |
JP5439832B2 (ja) | シリアルデータ通信装置 | |
US20230199306A1 (en) | Communication device and communication system | |
US5721891A (en) | Detection of N length bit serial communication stream | |
JP5532775B2 (ja) | 通信システム及び再送バッファ容量の測定装置 | |
JP4649304B2 (ja) | 通信制御装置およびその制御方法 | |
JP6241256B2 (ja) | 電子機器、制御装置および通信方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20041224 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070823 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070904 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071105 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20071127 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20071128 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 4050135 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101207 Year of fee payment: 3 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101207 Year of fee payment: 3 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111207 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111207 Year of fee payment: 4 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111207 Year of fee payment: 4 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111207 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121207 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121207 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131207 Year of fee payment: 6 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |