JP2002009849A - Usb転送制御方法およびusbコントローラ - Google Patents

Usb転送制御方法およびusbコントローラ

Info

Publication number
JP2002009849A
JP2002009849A JP2000186828A JP2000186828A JP2002009849A JP 2002009849 A JP2002009849 A JP 2002009849A JP 2000186828 A JP2000186828 A JP 2000186828A JP 2000186828 A JP2000186828 A JP 2000186828A JP 2002009849 A JP2002009849 A JP 2002009849A
Authority
JP
Japan
Prior art keywords
buffer
data
endpoint
transmission
shared
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.)
Granted
Application number
JP2000186828A
Other languages
English (en)
Other versions
JP3415567B2 (ja
Inventor
Kenichi Ueda
顕一 上田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Micro Systems Co Ltd
Original Assignee
Renesas Micro Systems Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Renesas Micro Systems Co Ltd filed Critical Renesas Micro Systems Co Ltd
Priority to JP2000186828A priority Critical patent/JP3415567B2/ja
Priority to US09/884,128 priority patent/US6816929B2/en
Publication of JP2002009849A publication Critical patent/JP2002009849A/ja
Application granted granted Critical
Publication of JP3415567B2 publication Critical patent/JP3415567B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/387Information transfer, e.g. on bus using universal interface adapter for adaptation of different data processing systems to different peripheral devices, e.g. protocol converters for incompatible systems, open system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0042Universal serial bus [USB]

Abstract

(57)【要約】 【課題】 高い通信性能を発揮するUSBコントローラ
を回路規模を最低限に抑えて提供する。 【解決手段】 受信したトークンに対応するデータ転送
を行うエンドポイントに共用バッファが割り当てられて
いれば、対応する送信コントロール部104または受信
コントロール部109でダブルバッファ制御してデータ
転送を行う。共用バッファが割り当てられていなけれ
ば、バッファ切替制御部114で共用バッファが割り当
てられている他のエンドポイントの読み出し側のバッフ
ァが空か否か判定し、空であればそのバッファをデータ
転送を行うエンドポイントに割り当てて、ダブルバッフ
ァとしてデータ転送を行う。また、空で無ければデータ
転送を行うエンドポイントに対応する送信コントロール
部104または受信コントロール部109は専用バッフ
ァのみでデータ転送を行う。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、パソコン等のホス
トとのUSBインタフェースによる通信を制御する周辺
機器のUSBエンドポイントコントローラに関し、特
に、ハードディスク装置など、高い通信性能が要求され
る周辺装置に用いられるUSBエンドポイントコントロ
ーラに関する。
【0002】
【従来の技術】USBインタフェースの本格的普及に伴
い、USB対応のインタフェースを有する周辺機器の多
機能化の傾向が強まってきた。また、複合的な機能を持
った周辺機器が多くなってきたことによりパソコン等の
ホストから見たときにデータの送受信先となるエンドポ
イントの数を増やす必要が生じている。一般的に、エン
ドポイントにはメモリで構成されたバッファがそれぞれ
割り当てられており、ホストコンピュータと周辺機器の
間で送受信されるデータをバッファリングする。
【0003】また、将来の主流として期待される新仕様
のUSB2.0では、従来に比べて40倍の転送速度
(480Mbps)を持つことが決定している。このよ
うなデータ転送の高速化に伴い、USB2.0では許容
される最大パケットサイズが大幅に増加する。例えば、
大量データの転送に適したバルク転送において、従来の
USB1.1では最大パケットサイズが64Byteで
あったが、USB2.0ではパケットサイズが1〜51
2Byteであり、最大で8倍のサイズのパケットが許
容されることとなる。その結果、エンドポイントとして
必要なバッファの容量が増大することになる。
【0004】480Mbpsのデータ転送を行うUSB
2.0に対応するために、周辺機器には今まで以上に高
い通信性能が要求される。周辺機器において高い通信性
能を実現するためには、ダブルバッファ構成を用いて大
量のデータを転送する方法が考えられる。
【0005】図15を参照すると、ダブルバッファ構成
の従来のUSBデバイスコントローラ500は、USB
インタフェース部501とUSBエンドポイントコント
ローラ502と外部バスインタフェース部503を有し
ている。
【0006】USBインタフェース部501はUSBバ
スとのインタフェースを制御し、ホストコンピュータと
データの送受信を行う。
【0007】外部バスインタフェース部503は、周辺
機器のCPUやDMAコントローラとのバスインタフェ
ースを制御し、データの送受信を行う。
【0008】USBエンドポイントコントローラ502
は、ホストコンピュータとUSBインタフェースで送受
信するデータのバッファリングを行うエンドポイントを
構成しており、送信コントロール部504と受信コント
ロール部509と送信用メモリ521,522と受信用
メモリ523,524を有している。送信コントロール
部504は、外部バスインタフェース部から入力された
データを送信用メモリ521,522に蓄積し、また、
送信用メモリ521,522から読み出してUSBイン
タフェース部501に出力する。このとき、送信コント
ロール部504は送信用メモリ521,522の一方を
外部バスインタフェース部503から入力されたデータ
を蓄積するメモリとし、他方を蓄積されたデータをUS
Bインタフェース部501に出力するメモリとし、それ
らを切り替えながらデータ転送を行うことでデータの蓄
積と出力を同時に行うことを可能にし、通信性能を向上
させている。
【0009】また、受信コントロール部510は、US
Bインタフェース部501から入力されたデータを受信
用メモリ523,524に蓄積し、また、読み出したデ
ータを外部バスインタフェース部503に出力する。こ
のとき、送信側と同様に受信用メモリ523,524を
切り替えて用いることでデータの蓄積と出力を同時に行
うことを可能にしている。
【0010】また、従来の他のUSBデバイスコントロ
ーラとして特開平11−328069号公報に示された
ようなデュアルポートメモリを送信/受信バッファに用
いたものがある。
【0011】図16を参照すると、デュアルポートメモ
リを用いたUSBデバイスコントローラ600はUSB
インタフェース部601とUSBエンドポイントコント
ローラ602と外部バスインタフェース部603を有し
ている。
【0012】USBエンドポイントコントローラ602
は、送信アドレス設定制御部631と受信アドレス設定
制御部635と送信デュアルポートメモリ638と受信
デュアルポートメモリ639を有している。
【0013】送信・受信アドレス設定制御部631,6
35で、それぞれ送信・受信デュアルポートメモリのア
ドレスをエンドポイント毎に設定制御して送信・受信バ
ッファの数およびサイズをダイナミックに設定すること
で、メモリを有効に利用するものである。
【0014】従来のさらに他のUSBデバイスコントロ
ーラとして特開平10−326251号公報に示された
ようなメモリ空間内の領域をバッファリングすべきパケ
ットに動的に割り当てるものがある。
【0015】図17を参照すると、メモリ空間内の領域
を動的に割り当てるUSBデバイスコントローラ700
はUSBインタフェース部701とUSBエンドポイン
トコントローラ702と外部バスインタフェース部70
3を有している。
【0016】USBエンドポイントコントローラ702
はDMAコントローラ(DMA)740とアービタ74
2と受信キュー743と送信キュー744とメモリマネ
ージャ745とマップRAM(MAP)746とRAM
747を有している。
【0017】DMAコントローラ740は内部にキュー
制御部741を有しており、また、RAM747は送信
・受信データを蓄積するためのバッファであり、受信キ
ュー743および送信キュー744のキューのパケット
データがバッファリングされる。
【0018】アービタ742はDMAコントローラ74
0および外部バスインタフェース部703からのRAM
747へのアクセスを調停して、双方からRAM747
への非同期のアクセスを可能としている。
【0019】メモリマネージャ745およびマップRA
M746によってRAM747の領域が分割され、キュ
ー制御部741によって受信キュー743および送信キ
ュー744が制御されてパケットデータがRAM747
内の所定の領域に蓄積され、読み出されて出力される。
【0020】
【発明が解決しようとする課題】図15のUSBデバイ
スコントローラ500によれば通信性能を向上させるこ
とができるが、ダブルバッファを構成するために2倍の
メモリを設ける必要があり回路規模が大きくなる。特
に、多機能、大容量化されるUSB2.0対応のUSB
デバイスコントローラにおいてチップのコストアップは
さらに大きい。
【0021】図16のUSBデバイスコントローラ60
0では、アドレス設定制御にCPUが介在するため、ア
ドレスの設定動作中に送受信を停止してしまう。したが
って、通信性能が低下するため、デバイスドライバへの
負担が大きくなる。特に、USB2.0によりデータ転
送がさらに高速化されると、このエンドポイントコント
ローラが高速化のボトルネックになる可能性がある。
【0022】図17のUSBデバイスコントローラ70
0では、受信キュー743、送信キュー744を構成す
るためにメモリが必要であり、また、メモリマネージャ
やアービタにおいて特別な制御が必要とされるため、メ
モリ周辺回路の規模が大きくなる。さらに、動的割り当
てによってメモリ領域に受信バッファ領域を確保できな
い場合にはデータ受信保留が続きUSB通信性能が悪化
する恐れがある。特に、動的割り当てによってメモリが
送信データで占有されたとき、ホストからINトークン
が来るまで送信データをバッファリングしておく必要が
あるため、その状態でホストからOUTトークンが来て
もデータを受け付けられない。
【0023】また、送信データの書き込み時にパケット
識別番号をそれぞれに与え、また、受信データの読み出
し時にパケット識別番号により取り出すことが必要と考
えられるため、デバイスドライバの負担が大きくなる。
したがって、特にUSB2.0によりデータ転送がさら
に高速化されると、エンドポイントコントローラが高速
化のボトルネックになる可能性がある。
【0024】以上に説明したように従来の技術において
は、回路規模(バッファ容量)とUSB通信性能はトレ
ードオフの関係にあり、これらを両立させることは困難
であった。
【0025】本発明の目的は、高い通信性能を発揮する
USBコントローラを回路規模を最低限に抑えて提供す
ることである。
【0026】
【課題を解決するための手段】上記目的を達成するため
に、本発明のUSB転送制御方法は、ホストとの間でU
SBインタフェースによってデータを転送する周辺機器
において、複数のエンドポイントでデータをバッファリ
ングしてデータ転送するためのUSB転送制御方法であ
って、予め、複数のエンドポイントにそれぞれ対応する
専用バッファおよび複数のエンドポイントに共用される
共用バッファに割り当てられるメモリを備えておき、ホ
ストからトークンを受信すると、そのトークンに対応す
るデータ転送を行うエンドポイントを第1のエンドポイ
ントとして決定し、第1のエンドポイントに共用バッフ
ァが割り当てられているとき、第1のエンドポイントを
専用バッファと共用バッファでダブルバッファとしてト
ークンに対応するデータ転送を行い、第1のエンドポイ
ントに共用バッファが割り当てられていないとき、共用
バッファが割り当てられている第2のエンドポイントの
読み出し側のバッファが空か否か判定し、第2のエンド
ポイントの書込み側もしくは読み出し側のバッファが空
であったとき、空であるいずれか一方のバッファを共用
バッファとして第1のエンドポイントに割り当てて、第
1のエンドポイントを専用バッファと共用バッファでダ
ブルバッファとしてトークンに対応するデータ転送を行
い、第2のエンドポイントの読み出し側のバッファが空
でなかったとき、第1のエンドポイントの専用バッファ
でトークンに対応するデータ転送を行う。
【0027】したがって、共有バッファを複数のエンド
ポイントで切り替えて用いるので、ダブルバッファの一
方のバッファを複数のエンドポイントで共用することが
できる。
【0028】また、共用バッファを切り替えてダブルバ
ッファでデータ転送を行うことで、データの送・受信を
高速で処理することができる。
【0029】さらに、ダブルバッファでないエンドポイ
ントでは専用バッファでデータ転送を行うので、ホスト
がデータ転送のタイミングを管理しているUSBインタ
フェースにおいていつでもホストからの要求に対応する
ことができる。
【0030】本発明の実施態様によれば、2つのエンド
ポイントで共用バッファを共用する。
【0031】本発明の実施態様によれば、2つのエンド
ポイントは送信エンドポイントおよび受信エンドポイン
トである。
【0032】送信エンドポイントと受信エンドポイント
で共用バッファを切り替えてダブルバッファでデータ転
送を行うことで、通常、複数のトランザクションデータ
で構成されるデータの送・受信を高速で処理することが
できる。
【0033】本発明の実施態様によれば、OUTトーク
ンを受信したとき、OUTトークンに対応するデータ受
信を行う受信エンドポイントに共用バッファが割り当て
られているか否か判定し、受信エンドポイントに共用バ
ッファが割り当てられていない場合、専用バッファにデ
ータがあるか否か判定し、専用バッファにデータがあれ
ば受信を保留し、専用バッファにデータが無ければ専用
バッファに受信データを格納し、受信エンドポイントに
共用バッファが割り当てられている場合、ダブルバッフ
ァの書込み側のバッファ内にデータがあるか否か判定
し、書込み側のバッファ内にデータがあれば受信を保留
し、書込み側のバッファ内にデータが無ければ受信デー
タをそのバッファに格納し、読み出し側のバッファが空
になった後に、書込み側と読み出し側のバッファを切り
替え、専用バッファまたは読み出し側のバッファから受
信データを読み出す。
【0034】本発明の実施態様によれば、INトークン
を受信したとき、INトークンに対応するデータ送信を
行う送信エンドポイントに共用バッファが割り当てられ
ているか否か判定し、送信エンドポイントに共用バッフ
ァが割り当てられていない場合、専用バッファにデータ
があるか否か判定し、専用バッファにデータが無ければ
送信を保留し、専用バッファにデータがあれば専用バッ
ファからデータを送信し、送信エンドポイントに共用バ
ッファが割り当てられている場合、ダブルバッファの読
み出し側のバッファ内にデータがあるか否か判定し、読
み出し側のバッファ内にデータが無ければ送信を保留
し、読み出し側のバッファ内にデータがあればそのデー
タを送信し、読み出し側のバッファが空になった後に、
書込み側のバッファにデータがあれば書込み側と読み出
し側のバッファを切り替え、専用バッファからデータを
送信するか、またはINトークン検出時に読み出し側の
バッファからデータを送信する。
【0035】本発明のUSBコントローラは、ホストと
の間でUSBインタフェースによってデータを転送する
周辺機器において、複数のエンドポイントでデータをバ
ッファリングしてデータ転送するUSBコントローラで
あって、複数のエンドポイントにそれぞれ対応する専用
バッファおよび複数のエンドポイントに共用される共用
バッファに割り当てられるメモリと、ホストからのトー
クンに対応するデータ転送を行うとき、共用バッファが
割り当てられたら専用バッファと共用バッファをダブル
バッファとしてデータ転送を行い、共用バッファが割り
当てられなかったら専用バッファでデータ転送を行う、
エンドポイントに対応した複数のコントロール部と、ホ
ストからのトークンに対応するデータ転送を行うコント
ロール部に共用バッファが割り当てられていない場合、
共用バッファが割り当てられているコントロール部の書
込み側もしくは読み出し側のバッファが空であれば、空
であるいずれか一方のバッファをデータ転送を行うコン
トロール部に共用バッファとして割り当てるバッファ切
替制御部を有している。
【0036】本発明の実施態様によれば、2つのコント
ロール部で共用バッファを共用する。
【0037】本発明の実施態様によれば、2つのコント
ロール部は、ホストからのデータ受信を制御する受信コ
ントロール部と、ホストへのデータ送信を制御する送信
コントロール部である。
【0038】本発明の実施態様によれば、OUTトーク
ンを受信したとき、OUTトークンに対応するデータ受
信を行う受信コントロール部は、対応するエンドポイン
トに共用バッファが割り当てられているか否か判定し、
エンドポイントに共用バッファが割り当てられていない
場合、専用バッファにデータがあるか否か判定し、専用
バッファにデータがあれば受信を保留し、専用バッファ
にデータが無ければ専用バッファに受信データを格納
し、エンドポイントに共用バッファが割り当てられてい
る場合、ダブルバッファの書込み側のバッファ内にデー
タがあるか否か判定し、書込み側のバッファ内にデータ
があれば受信を保留し、書込み側のバッファ内にデータ
が無ければ受信データをそのバッファに格納し、読み出
し側のバッファが空になった後に、書込み側と読み出し
側のバッファを切り替え、専用バッファまたは読み出し
側のバッファから受信データを読み出す。
【0039】本発明の実施態様によれば、INトークン
を受信したとき、INトークンに対応するデータ送信を
行う送信コントローラは、対応するエンドポイントに共
用バッファが割り当てられているか否か判定し、エンド
ポイントに共用バッファが割り当てられていない場合、
専用バッファにデータがあるか否か判定し、専用バッフ
ァにデータが無ければ送信を保留し、専用バッファにデ
ータがあれば専用バッファからデータを送信し、エンド
ポイントに共用バッファが割り当てられている場合、ダ
ブルバッファの読み出し側のバッファ内にデータがある
か否か判定し、読み出し側のバッファ内にデータが無け
れば送信を保留し、読み出し側のバッファ内にデータが
あればそのデータを送信し、読み出し側のバッファが空
になった後に、書込み側のバッファにデータがあれば書
込み側と読み出し側のバッファを切り替え、専用バッフ
ァからデータを送信するか、またはINトークン検出時
に読み出し側のバッファからデータを送信する。
【0040】
【発明の実施の形態】本発明の実施の形態について図面
を参照して詳細に説明する。
【0041】図1を参照すると、パソコン等のホスト1
とプリンタ等の周辺機器2とがUSBケーブル3で接続
されている。
【0042】周辺機器2のUSBケーブル3が接続され
る部分にはUSBインタフェースを介してホストとデー
タの送受信を行うためのUSBデバイスコントローラ1
00が設けられている。
【0043】図2を参照すると、本発明の一実施形態の
USBデバイスコントローラ100はUSBインタフェ
ース部(PHY)101とUSBエンドポイントコント
ローラ102と外部バスインタフェース部(BCU(B
us Control Unit))103を有してい
る。
【0044】USBインタフェース部101は、アナロ
グトランシーバ(不図示)、シリアルインタフェースエ
ンジン(不図示)などによって構成されており、主にデ
ータのシリアルパラレル変換やUSBプロトコルに基づ
いたパケットの解析および生成などを行うことでUSB
バスとのインタフェースを制御しデータの送受信を行
う。
【0045】外部バスインタフェース部103は、周辺
機器のCPU(不図示)やDMAコントローラ(不図
示)に接続されたバスを制御し、データの送受信を行
う。
【0046】USBエンドポイントコントローラ102
は、ホスト1から周辺装置2を見たときのデータの送受
信先、すなわち周辺装置2側のデータの受け口となる受
信エンドポイントおよび送り口となる送信エンドポイン
トの2つのエンドポイントを構成し、ホストに対する送
受信データのバッファリングを行う部分である。本実施
形態ではUSBエンドポイントコントローラ102が送
信用エンドポイントと受信用エンドポイントをそれぞれ
1つづつ有する場合を例に説明する。
【0047】また、USBエンドポイントコントローラ
102は、送信エンドポイント、受信エンドポイントの
いずれか一方のみを選択してダブルバッファ構成にでき
るものであり、所定の条件にしたがってデータ送信中は
送信エンドポイントがダブルバッファ構成に、データ受
信中は受信エンドポイントがダブルバッファ構成になる
ように制御する。このとき、他方のエンドポイントに1
つのバッファを確保しており、シングルバッファ構成で
データの送信または受信を行う。それにより、データの
送受信のタイミングがホスト1によって管理されるUS
Bインタフェースによるデータ転送において、ホスト1
から任意に指示される送受信の要求に対応可能としてい
る。
【0048】送信エンドポイトがダブルバッファ構成の
場合にはダブルバッファ構成の中の1つのメモリ(CP
U側バッファ)への送信データの書込みと、他方のメモ
リ(PHY側バッファ)からの送信データの読み出しが
同時に可能である。受信エンドポイントがダブルバッフ
ァ構成の場合にはダブルバッファの中の1つのメモリ
(PHY側バッファ)への受信データの書込みと、他方
のメモリ(CPU側バッファ)からの受信データの読み
出しが同時に可能である。
【0049】USBエンドポイントコントローラ102
は送信コントロール部104と受信コントロール部10
9とバッファ切替制御部114とメモリ115,11
6,117を有している。
【0050】バッファ切替制御部114は、送信エンド
ポイントまたは受信エンドポイントのどちらをダブルバ
ッファ構成とするかを決定し、送信コントロール部10
4および受信コントロール部109に指示し、各メモリ
115,116,117を送信バッファまたは受信バッ
ファとして割り当てる。
【0051】メモリ115,116,117の中の1つ
は送信専用バッファに割り当てられ、他の1つは受信専
用バッファに割り当てられる。また、残りの1つは送信
エンドポイントと受信エンドポイントとで共用される共
用バッファに割り当てられる。共用バッファは送信エン
ドポイントをダブルバッファ構成とする場合に送信バッ
ファとして用いられ、受信エンドポイントをダブルバッ
ファ構成とする場合に受信バッファとして用いられる。
なお、メモリ115,116,117の送信専用バッフ
ァ、受信専用バッファ、共用バッファへの割り当ては固
定的ではなく、ダブルバッファとして用いられた後に先
に空になったメモリが共用バッファとなり、その割り当
ては切り替わる。
【0052】送信コントロール部104は、送信用PH
Y側制御部105と送信用トグルフラグ部106と送信
用CPU側制御部107と送信用バッファインタフェー
ス部108を有している。
【0053】送信用PHY側制御部105はホスト1へ
のデータ送信制御を行う、すなわち送信専用バッファ、
または送信バッファとして用いられた共用バッファから
データを読み出して出力する。送信用PHY側制御部1
05はダブルバッファ構成のそれぞれのメモリに対応す
る2つのリードカウンタ(不図示)を有しており、各メ
モリのリードアドレスを出力している。
【0054】送信用CPU側制御部107は外部バスイ
ンタフェース部103からのデータを送信専用バッフ
ァ、または送信バッファとして用いられた共用バッファ
に書き込む。送信用CPU側制御部107はダブルバッ
ファ構成のそれぞれのメモリに対応する2つのライトカ
ウンタ(不図示)を有しており、各メモリのライトアド
レスを出力している。
【0055】送信用トグルフラグ部106は、ダブルバ
ッファ構成の2つのメモリの中のどちらのメモリをCP
U側バッファおよびPHY側バッファとするかを管理す
る。PHY側バッファのデータ送信が完了し空になった
ときCPU側バッファに書き込まれたデータがあれば送
信用トグルフラグをトグルさせて切り替えを行う。
【0056】送信用バッファインタフェース部108
は、送信用トグルフラグの状態に基づき、CPU側バッ
ファとなっているメモリに、そのメモリに対応したライ
トアドレスを与えて送信用CPU側制御部107からの
データを書き込む。また、PHY側バッファとなってい
るメモリに、そのメモリに対応したリードアドレスを与
えてデータを読み出し、送信用PHY側制御部105に
出力する。
【0057】また、受信コントロール部109は、受信
用PHY側制御部110と受信用トグルフラグ部111
と受信用CPU側制御部112と受信用バッファインタ
フェース部113を有している。
【0058】受信用PHY側制御部110はホスト1か
らのデータを受信専用バッファ、または受信バッファと
して用いられた共用バッファに書き込む。受信用PHY
側制御部110はダブルバッファ構成のそれぞれのメモ
リに対応する2つのライトカウンタ(不図示)を有して
おり、各メモリのライトアドレスを出力している。
【0059】受信用CPU側制御部112は周辺機器2
へのデータ送信制御を行う、すなわち受信専用バッフ
ァ、または受信バッファとして用いられた共用バッファ
からデータを読み出して出力する。受信用CPU側制御
部112はダブルバッファ構成のそれぞれのメモリに対
応する2つのリードカウンタ(不図示)を有しており、
各メモリのリードアドレスを出力している。
【0060】受信用トグルフラグ部111は、ダブルバ
ッファ構成の2つのメモリの中のどちらのメモリをCP
U側バッファおよびPHY側バッファとするかを管理す
る。CPU側バッファのデータ送信が完了しメモリが空
になったときPHY側バッファに書き込まれたデータが
あれば受信用トグルフラグをトグルさせてCPU側バッ
ファとPHY側バッファを切り替える。
【0061】受信用バッファインタフェース部113
は、受信用トグルフラグの状態に基づき、PHY側バッ
ファとなっているメモリに、そのメモリに対応するライ
トカウンタからのライトアドレスを与えて受信用PHY
側制御部110からのデータを書き込む。また、CPU
側バッファとなっているメモリに、そのメモリに対応し
たリードカウンタからのリードアドレスを与えてデータ
を読み出して受信用CPU側制御部112に出力する。
【0062】本実施形態のUSBエンドポイントコント
ローラ102は、バッファ切替制御部114により所定
の条件にしたがってデータ送信中は送信エンドポイント
がダブルバッファ構成になるように制御する。また、ダ
ブルバッファを構成する2つのメモリからCPU側バッ
ファおよびPHY側バッファを送信用トグルフラグ部1
06からの指示にしたがって送信用バッファインタフェ
ース部108で選択切替しながら、外部バスインタフェ
ース部103から送信用CPU側制御部107に入力し
たデータをCPU側バッファとなるメモリに書き込み、
送信用PHY側制御部105によりPHY側バッファと
なるメモリからデータを読み出してUSBインタフェー
ス部101に出力する。
【0063】また、所定の条件にしたがってデータ受信
中は受信エンドポイントがダブルバッファ構成になるよ
うに制御し、ダブルバッファを構成する2つのメモリか
らCPU側バッファおよびPHY側バッファを受信用ト
グルフラグ部111からの指示にしたがって受信用バッ
ファインタフェース部113で選択切替しながら、US
Bバスインタフェース部101から受信用PHY側制御
部110に入力したデータをPHY側バッファとなるメ
モリに書き込み、受信用CPU側制御部112によりC
PU側バッファとなるメモリからデータを読み出し外部
バスインタフェース部103に出力する。
【0064】図3を参照すると、送信側がダブルバッフ
ァ構成の場合に送信用トグルフラグ部106のトグル制
御は、PHY側バッファに割り当てられたメモリ116
内のデータが全て読み出された状態(正常送信完了)
で、CPU側バッファに割り当てられたメモリ115に
書きこみが完了したデータが有れば、送信用トグルフラ
グをトグルさせてバッファを切り替える。
【0065】この制御により一方のメモリからデータ送
信中に他方のメモリに次の送信データを書き込むことが
できるようになっている。
【0066】なお、送信側がシングルバッファ構成の場
合には、1つのメモリが割り当てられているだけなので
バッファの切り替えは行われず、データ送信が完了して
そのバッファが空になるまで次の送信データを書き込む
ことはできない。
【0067】図4を参照すると、受信側がダブルバッフ
ァ構成の場合に受信用トグルフラグ部111のトグル制
御は、CPU側バッファに割り当てられたメモリ117
内のデータが全て読み出された状態で、PHY側バッフ
ァに割り当てられたメモリ116に書きこみが完了(正
常受信完了)したデータが有れば、受信用トグルフラグ
をトグルさせてバッファを切り替える。
【0068】この制御により一方のメモリからデータ読
み出し中に他方のメモリに次の受信データを書き込むこ
とができるようになっている。
【0069】なお、受信側がシングルバッファ構成の場
合には、1つのメモリが割り当てられているだけなので
バッファの切り替えは行なわれず、データ読み出しが完
了してそのバッファが空になるまで次の受信データを受
信することはできない。
【0070】次に、一般的なUSB転送の動作について
説明する。
【0071】通常、USB転送の処理は複数の転送単位
(トランザクションデータ)から構成される。例えば、
プリンタ印刷の場合のようにホスト1から周辺機器(プ
リンタ)2にデータを転送する場合には、USB転送の
処理は複数のOUTトランザクションデータから構成さ
れている。
【0072】図5は、トランザクションデータの一構成
例を示すトランザクションデータ構成図である。
【0073】図5を参照すると、トランザクションデー
タ18はトークンパケット18a、データバケット18
b、およびハンドシェークパケット18cの3つのパケ
ットで構成されている。最初にホスト1からデバイスア
ドレスおよびエンドポイント情報を含むトークンパケッ
ト18aがデバイスに送られる。このトークンパケット
18aは通常USBインタフェース部101でデコード
される。デコードにより検出されたトークンが自デバイ
ス宛てのトークンであると認識されると、そのデータ転
送に割り当てるエンドポイントが決定され、そのエンド
ポイント番号とトークンの種類がUSBエンドポイント
コントローラ102に伝えられる。
【0074】USBエンドポイントコントローラ102
ではそのエンドポイント番号とトークンの種類にしたが
ってデータパケット18bを送信または受信するための
準備が行われる。
【0075】例えば、トランザクションデータ18がO
UTトランザクションデータ(受信)の場合には、最初
のOUTトークンパケット18aによって、どの受信エ
ンドポイントでデータを受信すべきかが決定され、ホス
ト1から送られるデータパケット18bをその受信エン
ドポイントで受信する。
【0076】本実施形態のUSBデバイスコントローラ
100の場合、USBインタフェース部101でシリア
ルパラレル変換されたデータが受信用のバッファに割り
当てられたメモリに格納されることになる。
【0077】次に、データが正常に受信されメモリに格
納されたか否かを3つ目のパケットすなわちハンドシェ
ークパケット18cでホスト1に通知する。USBエン
ドポイントコントローラ102がUSBインタフェース
部101にハンドシェークの情報を渡し、USBインタ
フェース部101がその情報にしたがってハンドシェー
クパケット18cを生成してUSBバスに出力する。
【0078】通常、転送されるデータは連続する複数の
トランザクションデータ18で構成され、例えば、デー
タ受信の場合には複数のOUTトランザクションデータ
で構成されるため、受信エンドポイントをダブルバッフ
ァ構成として使用することが出来れば、一方のメモリ
(CPU側バッファ)から周辺機器2にデータを読み込
んでいる間に、他方のメモリ(PHY側バッファ)で次
のデータを受信することができる。
【0079】一方、例えばスキャナによる画像データの
取り込みのように周辺機器(スキャナ)2からホスト1
にデータを転送する場合には、USB転送のデータは複
数のINトランザクションデータから構成されている。
【0080】INトランザクションデータ(送信)の場
合は、最初のINトークンパケットによって、どの送信
エンドポイントからデータを送信すべきかが決定され、
データパケット18bでその送信エンドポイントからデ
ータを送信する。
【0081】本実施形態のUSBデバイスコントローラ
100の場合、送信バッファに格納されているデータを
USBインタフェース部1でパラレルシリアル変換して
データパケット18bとしてホスト1に送信する。US
Bエンドポイントコントローラ102はデータの送信が
成功したか否かを、ホスト1から返送されるハンドシェ
ークパケット18cにより認識する。
【0082】データ送信の処理は、通常、複数のINト
ランザクション18で構成されるため、送信エンドポイ
ントがダブルバッファ構成として使用することが出来れ
ば、一方のメモリ(PHY側バッファ)からデータを送
信中に、他方のメモリ(CPU側バッファ)に周辺機器
2からの次のデータを書き込むことができる。
【0083】図15に示した従来のダブルバッファ構成
のUSBデバイスコントローラ500は、送受信双方の
エンドポイントをダブルバッファ構成とするために、送
信側および受信側にそれぞれ2つのメモリが設けられて
いる。
【0084】しかし、受信データは複数のOUTトラン
ザクションデータで構成されており、データ受信中は連
続して受信処理が行われる場合が多いので、データ受信
中は受信エンドポイントだけがダブルバッファとして使
用できればよく、送信エンドポイントが同時にダブルバ
ッファ構成を採れる必要はない。
【0085】同様に、送信データは複数のINトランザ
クションデータで構成されており、データ送信中は連続
して送信処理が行われる場合が多いので、データ送信中
は送信エンドポイントだけがダブルバッファとして使用
できればよく、受信エンドポイントが同時にダブルバッ
ファ構成を採れる必要はない。
【0086】図6に示すように、本実施形態のUSBエ
ンドポイントコントローラ102は3つのメモリ11
5,116,117を有しており、それらが受信専用バ
ッファ40、共用バッファ41、および送信専用バッフ
ァ42に割り当てられる。そして、共用バッファ41を
所定の条件で切り替えて使用することにより、データ受
信中は受信側がダブルバッファ構成となり、データ送信
中は送信エンドポイントがダブルバッファ構成となるよ
う制御される。ここでは受信エンドポイントをダブルバ
ッファ構成とする間を受信モード、送信エンドポイント
をダブルバッファ構成とする間を送信モードとして転送
モードを定める。
【0087】転送モードはバッファ切替制御部114に
よって切り替え制御され、転送モードの状態は送信コン
トロール部104および受信コントロール部109に通
知される。送信コントロール部104および受信コント
ロール部109では転送モードに基づきダブルバッファ
構成で動作するか、シングルバッファ構成で動作するか
を判断する。
【0088】図7は、本実施形態のUSBエンドポイン
トコントローラ102の受信モードから送信モードへの
切替フローを示すフローチャートである。
【0089】図7においてSTART時の転送モードは
受信モードである。先ず、ステップS11に、OUTト
ークンが検出されたか否かを判定する。OUTトークン
が検出されたら、ステップS12に、受信モードで引き
続き受信側をダブルバッファ構成としてデータ受信制御
を行った後、処理を終了する。
【0090】OUTトークンが検出されなかった場合、
ステップS13に、INトークンが検出されたか否かを
判定する。INトークンが検出された場合、ステップS
14に、受信用PHY側バッファが空であるか否かを判
定する。空であれば、ステップS15に、送信モードに
切り替え、ステップS16に、送信側をダブルバッファ
構成にしてデータ送信制御を行った後に処理を終了す
る。
【0091】ステップS14の判定で受信用PHY側バ
ッファが空でなかったら、ステップS17に、送信側を
シングルバッファ構成のままデータ送信制御を行った後
に処理を終了する。
【0092】ステップS13の判定でINトークンが検
出されなかった場合には処理を終了する。
【0093】なお、本実施形態ではステップS14で、
受信用PHY側バッファ(書込み側)が空であるか否か
を判定して、ステップS15で転送モードを切り替えて
いるが、受信用PHY側(書込み側)バッファまたは受
信用CPU側(読み出し側)バッファが空であれば転送
モードを切り替えて、その空のバッファを共用バッファ
として送信側をダブルバッファ構成にしてもよい。
【0094】図8は本実施形態のUSBエンドポイント
コントローラ102の送信モードから受信モードへの切
替フローをフローチャートである。
【0095】図8においてSTART時の転送モードは
送信モードである。先ず、ステップS21に、INトー
クンが検出されたか否かを判定する。INトークンが検
出されたら、ステップS22に、送信モードで引き続き
送信エンドポイントをダブルバッファ構成としてデータ
送信制御を行った後、処理を終了する。
【0096】INトークンが検出されなかった場合、ス
テップS23に、OUTトークンが検出されたか否かを
判定する。OUTトークンが検出された場合、ステップ
S24に、送信用CPU側バッファが空であるか否かを
判定する。空であれば、ステップS25に受信モードに
切り替え、ステップS26に受信エンドポイトをダブル
バッファ構成にしてデータ受信制御を行った後に処理を
終了する。
【0097】ステップS24の判定で送信用CPU側バ
ッファが空でなかったら、ステップS27に、送信エン
ドポイントをシングルバッファ構成のままデータ送信制
御を行った後に処理を終了する。
【0098】ステップS23の判定でOUTトークンが
検出されなかった場合には処理を終了する。
【0099】なお、本実施形態ではステップS24で、
送信用CPU側バッファ(書込み側)が空であるか否か
を判定して、ステップS25で転送モードを切り替えて
いるが、送信用CPU側(書込み側)バッファまたは送
信用PHY側(読み出し側)バッファが空であれば転送
モードを切り替えて、その空のバッファを共用バッファ
として受信側をダブルバッファ構成にしてもよい。
【0100】また、Universal Serial
Bus Mass Storage Class B
ulk Only Transport Rev1.0
等のように、USB転送が特定のアプリケーションに特
化しており転送モードがあらかじめ判っている場合に
は、図7,8のフローによる転送モードの切り替えでは
なく、レジスタ設定で固定的に転送モードを選択しても
よい。この場合、メモリ115,116,117の送信
専用バッファ、受信専用バッファ、共用バッファへの割
り当てを固定的にしてもよい。
【0101】図9は本実施形態のUSBエンドポイント
コントローラ102のデータ受信制御フローを示すフロ
ーチャートである。これらの処理は受信コントロール部
109によって実行される。
【0102】図9において、先ず、ステップS31に、
OUTトークンを受信したか否かを判定する。OUTト
ークンを受信した場合、ステップS32に、転送モード
が受信モードであるか否かを判断する。
【0103】受信モードであればダブルバッファ構成の
データ受信処理を行う。すなわち、ステップS33に、
PHY側バッファが空であるか否かを判定する。PHY
側バッファが空であれば、ステップS34に、トークン
パケットの後に送られてくるデータパケットを受信して
PHY側バッファに格納する。
【0104】次に、ステップS35に、正常にデータ受
信を完了したか否かを判定し、正常受信であればステッ
プS36に、PHY側バッファをデータ有りの状態とす
る。ステップS37に、CPU側バッファが空になるま
で待ち、空になるとステップS38に、受信用トルグフ
ラグをトグルさせる。そして、ステップS39に、周辺
機器2のCPUに割り込み、またはDMAでデータの読
み出しを要求する。ステップS40に、CPU側バッフ
ァから周辺機器2へのデータの読み出しを行い、処理を
終了する。
【0105】ステップS35の判定で正常受信でなけれ
ば、ステップS42に、受信データを破棄して処理を終
了する。
【0106】ステップS33の判定でPHY側バッファ
が空でなければ、ステップS41に、ホスト1に受信不
可を示すNAKのハンドシェークパケットを送信し、受
信保留の状態にし処理を終了する。そして、PHY側バ
ッファが空になるまで受信が保留される。
【0107】ステップS32の判定で送信モードであれ
ばトグルフラグを無効にしてシングルバッファ構成のデ
ータ受信処理を行う。すなわち、ステップS43に、受
信専用バッファが空か否かを判定する。受信専用バッフ
ァが空であれば、ステップS44に、データパケットを
受信してデータを受信専用バッファに格納する。ステッ
プS45に、正常にデータ受信が完了したか否かを判定
し、正常受信であればステップS46に、受信専用バッ
ファをデータ有りの状態とし、ステップS39の処理へ
とつなげる。
【0108】ステップS45の判定で正常受信でなけれ
ば、ステップS42につなげる。
【0109】ステップS43の判定で受信専用バッファ
が空でなければ、ステップS41に、ホスト1に受信不
可を示すNAKのハンドシェークパケットを送信し、受
信保留の状態にし処理を終了する。そして、受信専用バ
ッファが空になるまで受信が保留される。
【0110】ステップS31の判定でOUTトークンの
受信がなければ処理を終了する。
【0111】なお、リアルタイム転送で用いられるよう
なアイソクロナス転送の場合には、ハンドシェークパケ
ットが定義されておらずNAK応答ができないので、ス
テップS41の処理の代わりに受信データを破棄して処
理を終了する。
【0112】図10は本実施形態のUSBエンドポイン
トコントローラ102のデータ送信制御フローを示すフ
ローチャートである。
【0113】図10において、先ず、ステップS51
に、INトークンを受信したか否かを判定する。INト
ークンを受信した場合、ステップS52に、転送モード
が送信モードであるか否かを判断する。
【0114】送信モードであればダブルバッファ構成の
データ送信処理を行う。すなわち、ステップS53に、
PHY側バッファにデータがあるか否かを判定する。P
HY側バッファにデータがあれば、ステップS54に、
データパケットを送信する。
【0115】次に、ステップS55に、正常にデータ送
信を完了したか否かを判定し、正常送信であればステッ
プS56に、PHY側バッファをクリアしてデータ無し
の状態にする。ステップS57に、CPU側バッファに
データが有りの状態になるまで待ち、データ有りになる
とステップS58に、送信用トルグフラグをトグルさせ
る。そして、ステップS59にINトークンを検出する
まで待ち、ステップS60に周辺機器2のCPUに割り
込み、またはDMAでデータの書き込みを要求する。ス
テップS61に、周辺機器2からのデータをCPU側バ
ッファに書き込み、処理を終了する。
【0116】ステップS55の判定で正常送信でなけれ
ば、ステップS63に、送信データを保持して再送信の
準備を行い、処理を終了する。
【0117】ステップS53の判定でPHY側バッファ
にデータが無ければ、ステップS62に、ホスト1にデ
ータパケットの代わりに送信保留を示すNAKハンドシ
ェークパケットを送出し、送信保留の状態にして処理を
終了する。そして、PHY側バッファがデータ有りの状
態になるまで送信が保留される。
【0118】ステップS52の判定で受信モードであれ
ばトグルフラグを無効にしてシングルバッファ構成のデ
ータ送信処理を行う。すなわち、ステップS64に、送
信専用バッファがデータ有りか否かを判定する。送信専
用バッファにデータがあれば、ステップS65に、デー
タパケットを送信する。ステップS66に、正常にデー
タ送信が完了したか否かを判定し、正常送信であればス
テップS67に、送信専用バッファをクリアして、ステ
ップS60の処理へとつなげる。
【0119】ステップS66の判定で正常送信でなけれ
ば、ステップS63につなげる。
【0120】ステップS64の判定で送信専用バッファ
にデータが無ければ、ステップS62に、ホスト1にデ
ータパケットの代わりに送信保留を示すNAKハンドシ
ェークパケットを送信し、送信保留の状態にして処理を
終了する。そして、送信専用バッファがデータ有りの状
態になるまで送信が保留される。
【0121】ステップS51の判定でINトークンの受
信がなければ処理を終了する。
【0122】なお、リアルタイム転送で用いられるよう
なアイソクロナス転送の場合には、ハンドシェークパケ
ットが定義されておらずNAK応答ができないので、0
バイト長のデータパケットを送信するなどの処理を行
う。
【0123】また、ステップS59でINトークンを検
出するまで待ち、INトークン検出したらステップS6
0に書きこみ要求するのは、PHY側バッファにある送
信データが確実にINトークン受信時に送出されるよう
にするためである。これにより、送信データがダブルバ
ッファの両方を占有し、INトークンが来ないために受
信モードに切り替われないという状態を起こさないよう
にし、受信モードにスムーズに移行可能としている。な
お、USB転送が特定のアプリケーションに特化してお
り転送モードをレジスタで選択しているような場合に
は、ステップS59の処理は必ずしも必要ではない。
【0124】したがって、本実施形態のUSBエンドポ
イントコントローラ102は、共用バッファ41を受信
モードでは受信エンドポイントに、送信モードでは送信
エンドポイントに割り当てることで、メモリの総数を削
減することができる。
【0125】また、送信モードにおける送信エンドポイ
ントおよび受信モード時における受信エンドポイントを
ダブルバッファ構成としてデータを送・受信すること
で、通常、複数のトランザクションデータで構成される
データの送・受信を高速で処理することができるので、
従来に比べてメモリ数を削減したUSBエンドポイント
コントローラ102で、回路規模の大きい従来のダブル
バッファ構成のUSBエンドポイントコントローラ50
2と同等の通信性能を実現できる。
【0126】さらに、受信モードにおける送信エンドポ
イントおよび送信モードにおける受信エンドポイントと
して専用バッファのシングルバッファ構成でデータを送
・受信するので、ホストがデータ転送のタイミングを管
理しているUSBインタフェースにおいていつでもホス
トからの要求に対応することが可能であり、データを送
・受信できない状態の発生が防止される。すなわち、送
信データでメモリが占有されてOUTトークンが来ても
データを受け付けられないという図17の従来技術で起
こるような問題は発生しない。
【0127】本発明の他の実施形態のUSBデバイスコ
ントローラは、異なる2つの送信コントロール部のダブ
ルバッファを構成するメモリを共用するUSBエンドポ
イントコントローラを有するものである。
【0128】図11を参照すると、本発明の他の実施形
態のUSBデバイスコントローラ200は、USBイン
タフェース部201とUSBエンドポイントコントロー
ラ202と外部バスインタフェース部203を有してい
る。
【0129】USBエンドポイントコントローラ202
は、送信コントロール部2041,2042とバッファ切
替制御部214とメモリ215,216,217を有し
ている。図11では、USBエンドポイントコントロー
ラ202の2つの送信コントロール部2041,2042
に注目して図示している。ここでは、送信コントロール
部2041で制御されるエンドポイントを第1のエンド
ポイント、送信コントロール部2042で制御されるエ
ンドポイントを第2のエンドポイントとする。
【0130】USBエンドポイントコントローラ202
は、2つのエンドポイントの中のどちらか一方のみをダ
ブルバッファ構成にできる。ダブルバッファ構成になっ
た側では、ダブルバッファの中の1つのメモリ(CPU
側バッファ)への送信データの書込みと、他方のメモリ
(PHY側バッファ)からの送信データの読み出しが同
時に行われる。
【0131】転送モードとしては、第1のエンドポイン
トをダブルバッファ構成とする第1の送信モードと、第
2のエンドポイントをダブルバッファ構成とする第2の
送信モードとが選択可能である。
【0132】図12を参照すると、USBエンドポイン
トコントローラ202の第1の送信モードから第2の送
信モードへの切り替えとしては、先ず、ステップS71
に、第1のエンドポイントへのINトークンが検出され
たか否かを判定する。OUTトークンが検出されたら、
ステップS72に、第1の送信モードで引き続き送信コ
ントロール部2041をダブルバッファ構成としてデー
タ送信制御を行った後、処理を終了する。
【0133】OUTトークンが検出されなかった場合、
ステップS73に、第2のエンドポイントへのINトー
クンが検出されたか否かを判定する。第2のエンドポイ
ントへのINトークンが検出された場合、ステップS7
4に、第1のエンドポイントのCPU側バッファが空で
あるか否かを判定する。空であれば、ステップS75
に、第2の送信モードに切り替え、ステップS76に、
送信コントロール部2042をダブルバッファ構成にし
てデータ送信制御を行った後に処理を終了する。
【0134】ステップS74の判定で第1のエンドポイ
ントのCPU側バッファが空でなかったら、ステップS
77に、第2のエンドポイントをシングルバッファ構成
のままデータ送信制御を行った後に処理を終了する。
【0135】ステップS73の判定で第2のエンドポイ
ントへのINトークンが検出されなかった場合には処理
を終了する。
【0136】本発明の他の実施形態のUSBデバイスコ
ントローラは、異なる2つの送信コントロール部のダブ
ルバッファを構成するメモリを共用するUSBエンドポ
イントコントローラを有するものである。
【0137】図11のUSBエンドポイントコントロー
ラ202によれば、図2のUSBエンドポイントコント
ローラ102と同様にメモリの総数を削減することがで
きる。
【0138】また、第1の送信モードにおける第1のエ
ンドポイントおよび第2の送信モードにおける第2のエ
ンドポイントをダブルバッファ構成としてデータを送信
することで、データ送信の処理を高速で行うことができ
る。
【0139】さらに、第2の送信モードにおける第1の
エンドポイントおよび第1の送信モードにおける第2の
エンドポイントをシングルバッファ構成としてデータを
送信するので、データの送受信のタイミングがホスト1
によって管理されるUSBインタフェースによるデータ
転送において、ホスト1から任意に指示される送受信の
要求に対応可能である。
【0140】図13を参照すると、本発明のさらに他の
実施形態のUSBデバイスコントローラ300は、US
Bインタフェース部301とUSBエンドポイントコン
トローラ302と外部バスインタフェース部303を有
している。
【0141】USBエンドポイントコントローラ302
は、受信コントロール部3091,3092とバッファ切
替制御部314とメモリ315,316,317を有し
ている。図13では、USBエンドポイントコントロー
ラ302の2つの受信コントロール部3091,3092
に注目して図示している。ここでは、受信コントロール
部3091で制御されるエンドポイントを第1のエンド
ポイント、受信コントロール部3092で制御されるエ
ンドポイントを第2のエンドポイントとする。
【0142】USBエンドポイントコントローラ302
は、2つの受信エンドポイントの中のどちらか一方のみ
をダブルバッファ構成にできる。
【0143】転送モードとしては、第1のエンドポイン
トをダブルバッファ構成とする第1の受信モードと、第
2のエンドポイントをダブルバッファ制御する第2の受
信モードとが選択可能である。
【0144】図14を参照すると、USBエンドポイン
トコントローラ302の第1の受信モードから第2の受
信モードへの切り替えとしては、先ず、ステップS81
に、第1のエンドポイントへのOUTトークンが検出さ
れたか否かを判定する。OUTトークンが検出された
ら、ステップS72に、第1の受信モードで引き続き第
1のエンドポイントをダブルバッファ構成としてデータ
受信制御を行った後、処理を終了する。
【0145】第1のエンドポイントのOUTトークンが
検出されなかった場合、ステップS83に、第2のエン
ドポイントへのOUTトークンが検出されたか否かを判
定する。第2のエンドポイントへのOUTトークンが検
出された場合、ステップS84に、第1のエンドポイン
トのPHY側バッファが空であるか否かを判定する。空
であれば、ステップS85に、第2の受信モードに切り
替え、ステップS86に、第2のエンドポイントをダブ
ルバッファ構成にしてデータ受信制御を行った後に処理
を終了する。
【0146】ステップS84の判定で第1のエンドポイ
ントのPHY側バッファが空でなかったら、ステップS
87に、第2のエンドポイントをシングルバッファ構成
のままデータ送信制御を行った後に処理を終了する。
【0147】ステップS83の判定で第2のエンドポイ
ントへのOUTトークンが検出されなかった場合には処
理を終了する。
【0148】図13のUSBエンドポイントコントロー
ラ302によれば、図2のUSBエンドポイントコント
ローラ102と同様にメモリの総数を削減することがで
きる。
【0149】また、第1の受信モード時の第1のエンド
ポイントの受信動作および第2の受信モード時の第2の
エンドポイントの受信動作においてダブルバッファ構成
でデータを受信することで、高速でデータ受信の処理を
することができる。
【0150】さらに、第2の受信モードの第1のエンド
ポイントの受信動作および第1の受信モードの第2のエ
ンドポイントの受信動作においてシングルバッファ制御
でデータを受信することで、データを受信できない状態
の発生が防止される。
【0151】なお、バッファ共用は2つのエンドポイン
ト間に限定されるものではなく、複数のエンドポイント
間でバッファを共用してもよい。各エンドポイントにそ
れぞれ1つづつの専用バッファを設け、さらに1つの共
用バッファを設けることで実現可能である。共用バッフ
ァを共用するエンドポイントの数が増えるほど回路削減
効果は上がる。
【0152】
【発明の効果】ダブルバッファの一方のバッファを複数
のエンドポイントで共用するので、メモリの総数を削減
することができ、かつ、データの送・受信を高速で処理
することができる。回路規模の削減により小型化、低消
費電力化が可能である。
【0153】本発明ではバッファ容量が大きければ大き
いほど、また、エンドポイントの数が多ければ多いほど
効果は大きくなる。特に、大規模化、多機能化の予想さ
れるUSB2.0対応のUSBコントローラの事業化へ
の貢献度は大きい。
【0154】例えば、USB2.0対応のダイレクトプ
リンタにおけるUSBデータ転送で、ストレージインタ
フェースを装備し、大容量のバルク転送用エンドポイン
トとして3つの送信エンドポイントおよび3つの受信エ
ンドポイントを有し、最大パケットサイズが512バイ
トとした場合、従来のダブルバッファ構成のUSBコン
トローラでは、必要なバッファ容量は6144バイト
(=512×2×6)であるが、本発明を用いると46
08バイト(=512×3×3)となる。つまり、15
36バイト分のバッファ容量が削減される。
【0155】また、ダブルバッファでないエンドポイン
トでは専用バッファでデータ転送を行うので、ホストが
データ転送のタイミングを管理しているUSBインタフ
ェースにおいていつでもホストからの要求に対応するこ
とができる。
【0156】さらに、送信エンドポイントと受信エンド
ポイントで共用バッファを切り替えてダブルバッファで
データ転送を行うことで、通常、複数のトランザクショ
ンデータで構成されるデータの送・受信を高速で処理す
ることができる。
【図面の簡単な説明】
【図1】USBインタフェースによるホストと周辺機器
の接続を示すシステム構成図である。
【図2】本発明の一実施形態のUSBデバイスコントロ
ーラの構成を示すブロック図である。
【図3】本実施形態のUSBエンドポイントコントロー
ラの送信側をダブルバッファとしたときのトグル制御を
説明するための説明図である。
【図4】本実施形態のUSBエンドポイントコントロー
ラの受信側をダブルバッファとしたときのトグル制御を
説明するための説明図である。
【図5】本実施形態の転送されるトランザクションデー
タの構成を示すトランザクションデータ構成図である。
【図6】本実施形態の共用バッファの割り当て制御を説
明するための説明図である。
【図7】本実施形態のUSBエンドポイントコントロー
ラの受信モードから送信モードへの切替フローを示すフ
ローチャートである。
【図8】本実施形態のUSBエンドポイントコントロー
ラの送信モードから受信モードへの切替フローをフロー
チャートである。
【図9】本実施形態のUSBエンドポイントコントロー
ラのデータ受信制御フローを示すフローチャートであ
る。
【図10】は本実施形態のUSBエンドポイントコント
ローラのデータ送信制御フローを示すフローチャートで
ある。
【図11】本発明の他の実施形態のUSBデバイスコン
トローラの構成を示すブロック図である。
【図12】本発明の他の実施形態の転送モードの切替フ
ローを示すフローチャートである。
【図13】本発明のさらに他の実施形態のUSBデバイ
スコントローラの構成を示すブロック図である。
【図14】本発明のさらに他の実施形態の転送モードの
切替フローを示すフローチャートである。
【図15】ダブルバッファ構成の従来のUSBデバイス
コントローラの構成を示すブロック図である。
【図16】デュアルポートメモリを用いた従来のUSB
デバイスコントローラの構成を示すブロック図である。
【図17】メモリ空間内の領域を動的に割り当てる従来
のUSBデバイスコントローラの構成を示すブロック図
である。
【符号の説明】
1 ホスト 2 周辺機器 3 USBケーブル 100,200,300 USBデバイスコントロー
ラ 101,201,301 USBインタフェース部 102,202,302 USBエンドポイントコン
トローラ 103,203,303 外部バスインタフェース部 104,2041,2042 送信コントロール部 105,2051,2052 送信用PHY側制御部 106,2061,2062 送信用トグルフラグ部 107,2071,2072 送信用CPU側制御部 108,2081,2082 送信用バッファインタフ
ェース部 109,3091,3092 受信コントロール部 110,3101,3102 受信用PHY側制御部 111,3111,3112 受信用トグルフラグ部 112,3121,3122 受信用CPU側制御部 113,3131,3132 受信用バッファインタフ
ェース部 114,214,314 バッファ切替制御部 115,116,117,215,216,217,3
15,316,317メモリ 18 トランザクションデータ 18a トークンパケット 18b データパケット 18c ハンドシェークパケット 40 受信専用バッファ 41 共用バッファ 42 送信専用バッファ S11〜S17,S21〜S27,S31〜S46,S
51〜S67,S71〜S77,S81〜S87 ス
テップ
───────────────────────────────────────────────────── フロントページの続き Fターム(参考) 5B014 EB01 FB01 FB02 GD05 GD14 GD15 GD16 GD23 GD32 GE05 5B077 BA01 BA02 BA04 BA07 DD17 DD22 NN02 5K033 AA02 AA04 CA15 CC02 DA13 DB13 5K034 AA01 AA11 BB06 FF12 FF14 HH28

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】 ホストとの間でUSBインタフェースに
    よってデータを転送する周辺機器において、複数のエン
    ドポイントでデータをバッファリングしてデータ転送す
    るためのUSB転送制御方法であって、 予め、複数の前記エンドポイントにそれぞれ対応する専
    用バッファおよび複数の前記エンドポイントに共用され
    る共用バッファに割り当てられるメモリを備えておき、 前記ホストからトークンを受信すると、該トークンに対
    応するデータ転送を行う前記エンドポイントを第1のエ
    ンドポイントとして決定し、 該第1のエンドポイントに前記共用バッファが割り当て
    られているとき、該第1のエンドポイントを前記専用バ
    ッファと前記共用バッファでダブルバッファとして前記
    トークンに対応するデータ転送を行い、 前記第1のエンドポイントに前記共用バッファが割り当
    てられていないとき、前記共用バッファが割り当てられ
    ている第2のエンドポイントの書込み側もしくは読み出
    し側のバッファが空か否か判定し、 前記第2のエンドポイントの書込み側もしくは読み出し
    側のバッファが空であったとき、空であるいずれか一方
    のバッファを共用バッファとして前記第1のエンドポイ
    ントに割り当てて、該第1のエンドポイントを前記専用
    バッファと前記共用バッファでダブルバッファとして前
    記トークンに対応するデータ転送を行い、 前記第2のエンドポイントの読み出し側のバッファが空
    でなかったとき、前記第1のエンドポイントの前記専用
    バッファで前記トークンに対応するデータ転送を行うU
    SB転送制御方法。
  2. 【請求項2】 2つの前記エンドポイントで前記共用バ
    ッファを共用する、請求項1記載のUSB転送制御方
    法。
  3. 【請求項3】 2つの前記エンドポイントは送信エンド
    ポイントおよび受信エンドポイントである、請求項2記
    載のUSB転送制御方法。
  4. 【請求項4】 OUTトークンを受信したとき、該OU
    Tトークンに対応するデータ受信を行う前記受信エンド
    ポイントに前記共用バッファが割り当てられているか否
    か判定し、 前記受信エンドポイントに前記共用バッファが割り当て
    られていない場合、前記専用バッファにデータがあるか
    否か判定し、 前記専用バッファにデータがあれば受信を保留し、 前記専用バッファにデータが無ければ前記専用バッファ
    に受信データを格納し、 前記受信エンドポイントに前記共用バッファが割り当て
    られている場合、前記ダブルバッファの書込み側のバッ
    ファ内にデータがあるか否か判定し、 前記書込み側のバッファ内にデータがあれば受信を保留
    し、 前記書込み側のバッファ内にデータが無ければ前記受信
    データを該バッファに格納し、 読み出し側のバッファが空になった後に、書込み側と読
    み出し側のバッファを切り替え、 前記専用バッファまたは前記読み出し側のバッファから
    受信データを読み出す、請求項3記載のUSB転送制御
    方法。
  5. 【請求項5】 INトークンを受信したとき、該INト
    ークンに対応するデータ送信を行う前記送信エンドポイ
    ントに前記共用バッファが割り当てられているか否か判
    定し、 前記送信エンドポイントに前記共用バッファが割り当て
    られていない場合、前記専用バッファにデータがあるか
    否か判定し、 前記専用バッファにデータが無ければ送信を保留し、 前記専用バッファにデータがあれば前記専用バッファか
    らデータを送信し、 前記送信エンドポイントに前記共用バッファが割り当て
    られている場合、前記ダブルバッファの読み出し側のバ
    ッファ内にデータがあるか否か判定し、 前記読み出し側のバッファ内にデータが無ければ送信を
    保留し、 前記読み出し側のバッファ内にデータがあれば該データ
    を送信し、 前記読み出し側のバッファが空になった後に、書込み側
    のバッファにデータがあれば書込み側と読み出し側のバ
    ッファを切り替え、 前記専用バッファからデータを送信するか、または前記
    INトークン検出時に前記読み出し側のバッファからデ
    ータを送信する、請求項3記載のUSB転送制御方法。
  6. 【請求項6】 ホストとの間でUSBインタフェースに
    よってデータを転送する周辺機器において、複数のエン
    ドポイントでデータをバッファリングしてデータ転送す
    るUSBコントローラであって、 前記複数のエンドポイントにそれぞれ対応する専用バッ
    ファおよび前記複数のエンドポイントに共用される共用
    バッファに割り当てられるメモリと、 前記ホストからのトークンに対応するデータ転送を行う
    とき、前記共用バッファが割り当てられたら前記専用バ
    ッファと前記共用バッファをダブルバッファとしてデー
    タ転送を行い、前記共用バッファが割り当てられなかっ
    たら前記専用バッファでデータ転送を行う、前記エンド
    ポイントに対応した複数のコントロール部と、 前記ホストからの前記トークンに対応するデータ転送を
    行う前記コントロール部に前記共用バッファが割り当て
    られていない場合、前記共用バッファが割り当てられて
    いる前記コントロール部の書込み側もしくは読み出し側
    のバッファが空であれば、空であるいずれか一方のバッ
    ファをデータ転送を行う前記コントロール部に前記共用
    バッファとして割り当てるバッファ切替制御部を有する
    USBコントローラ。
  7. 【請求項7】 2つの前記コントロール部で前記共用バ
    ッファを共用する、請求項6記載のUSBコントロー
    ラ。
  8. 【請求項8】 2つの前記コントロール部は、前記ホス
    トからのデータ受信を制御する受信コントロール部と、
    前記ホストへのデータ送信を制御する送信コントロール
    部である、請求項7記載のUSBコントローラ。
  9. 【請求項9】 OUTトークンを受信したとき、該OU
    Tトークンに対応するデータ受信を行う前記受信コント
    ロール部は、対応する前記エンドポイントに前記共用バ
    ッファが割り当てられているか否か判定し、前記エンド
    ポイントに前記共用バッファが割り当てられていない場
    合、前記専用バッファにデータがあるか否か判定し、前
    記専用バッファにデータがあれば受信を保留し、前記専
    用バッファにデータが無ければ前記専用バッファに受信
    データを格納し、前記エンドポイントに前記共用バッフ
    ァが割り当てられている場合、前記ダブルバッファの書
    込み側のバッファ内にデータがあるか否か判定し、前記
    書込み側のバッファ内にデータがあれば受信を保留し、
    前記書込み側のバッファ内にデータが無ければ前記受信
    データを該バッファに格納し、読み出し側のバッファが
    空になった後に、書込み側と読み出し側のバッファを切
    り替え、前記専用バッファまたは前記読み出し側のバッ
    ファから受信データを読み出す、請求項8記載のUSB
    コントローラ。
  10. 【請求項10】 INトークンを受信したとき、該IN
    トークンに対応するデータ送信を行う前記送信コントロ
    ーラは、対応する前記エンドポイントに前記共用バッフ
    ァが割り当てられているか否か判定し、前記エンドポイ
    ントに前記共用バッファが割り当てられていない場合、
    前記専用バッファにデータがあるか否か判定し、前記専
    用バッファにデータが無ければ送信を保留し、前記専用
    バッファにデータがあれば前記専用バッファからデータ
    を送信し、前記エンドポイントに前記共用バッファが割
    り当てられている場合、前記ダブルバッファの読み出し
    側のバッファ内にデータがあるか否か判定し、前記読み
    出し側のバッファ内にデータが無ければ送信を保留し、
    前記読み出し側のバッファ内にデータがあれば該データ
    を送信し、前記読み出し側のバッファが空になった後
    に、書込み側のバッファにデータがあれば書込み側と読
    み出し側のバッファを切り替え、前記専用バッファから
    データを送信するか、または前記INトークン検出時に
    前記読み出し側のバッファからデータを送信する、請求
    項8記載のUSBコントローラ。
JP2000186828A 2000-06-21 2000-06-21 Usb転送制御方法およびusbコントローラ Expired - Fee Related JP3415567B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2000186828A JP3415567B2 (ja) 2000-06-21 2000-06-21 Usb転送制御方法およびusbコントローラ
US09/884,128 US6816929B2 (en) 2000-06-21 2001-06-20 Data transfer control method and controller for universal serial bus interface

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000186828A JP3415567B2 (ja) 2000-06-21 2000-06-21 Usb転送制御方法およびusbコントローラ

Publications (2)

Publication Number Publication Date
JP2002009849A true JP2002009849A (ja) 2002-01-11
JP3415567B2 JP3415567B2 (ja) 2003-06-09

Family

ID=18686924

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000186828A Expired - Fee Related JP3415567B2 (ja) 2000-06-21 2000-06-21 Usb転送制御方法およびusbコントローラ

Country Status (2)

Country Link
US (1) US6816929B2 (ja)
JP (1) JP3415567B2 (ja)

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100474221B1 (ko) * 2001-05-14 2005-03-08 세이코 엡슨 가부시키가이샤 데이터 전송 제어 장치, 전자 기기 및 데이터 전송 제어방법
JP2005316951A (ja) * 2004-03-30 2005-11-10 Seiko Epson Corp 情報端末、情報処理システム、及び、これらの制御方法
KR100557215B1 (ko) * 2003-08-19 2006-03-10 삼성전자주식회사 유에스비 디바이스의 엔드포인트 제어 장치 및 그 방법
US7028109B2 (en) 2002-04-19 2006-04-11 Seiko Epson Corporation Data transfer control device including buffer controller with plurality of pipe regions allocated to plurality of endpoints
JP2007058518A (ja) * 2005-08-24 2007-03-08 Renesas Technology Corp メモリカード
JP2007179558A (ja) * 2007-02-13 2007-07-12 Fujitsu Ltd データ処理装置及びエラー訂正方法
JP2007272643A (ja) * 2006-03-31 2007-10-18 Nec Corp Usbデバイス共有システム、これで用いるサーバのインタフェース装置、及びその動作方法
US7359997B2 (en) 2003-06-06 2008-04-15 Seiko Epson Corporation USB data transfer control device including first and second USB device wherein destination information about second device is sent by first device
US7359996B2 (en) 2002-04-19 2008-04-15 Seiko Epson Corporation Data transfer control device, electronic equipment, and data transfer control method
JP2008198126A (ja) * 2007-02-15 2008-08-28 Fuji Xerox Co Ltd データ通信システム、データ通信プログラム、データ受信装置、データ受信プログラム、及び、データ受信方法
US7428600B2 (en) 2002-04-26 2008-09-23 Seiko Epson Corporation Data transfer control device, electronic equipment, and data transfer control method
JP2008257745A (ja) * 2008-06-16 2008-10-23 Sanyo Electric Co Ltd マイクロコンピュータ
US7469304B2 (en) 2002-04-19 2008-12-23 Seiko Epson Corporation Data transfer control device, electronic equipment, and method for a data transfer through a bus, the data transfer control device including a register and a packet buffer that are commonly used during a host operation and a peripheral operation
JP2009010835A (ja) * 2007-06-29 2009-01-15 Mitsubishi Electric Corp 通信制御装置
US7676612B2 (en) 2004-05-31 2010-03-09 Canon Kabushiki Kaisha Video camera device and control method thereof
KR100949045B1 (ko) 2008-11-05 2010-03-24 대성전기공업 주식회사 유에스비(usb) 직렬 통신을 이용한 can 접속 장치
JP2010262663A (ja) * 2004-01-13 2010-11-18 Seiko Instruments Inc メモリインタフェース装置、メモリインタフェース方法、およびモデム装置
JP2011243142A (ja) * 2010-05-21 2011-12-01 Renesas Electronics Corp 通信制御装置、データ通信方法及びプログラム
JP2012160148A (ja) * 2011-02-03 2012-08-23 Rohm Co Ltd システムlsi
JP2022528349A (ja) * 2019-03-27 2022-06-10 无錫海斯凱尓医学技術有限公司 データ記憶用の装置、方法及び読み取り可能な媒体

Families Citing this family (92)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6523081B1 (en) * 1999-11-22 2003-02-18 Texas Instruments Incorporated Architecture using dedicated endpoints and protocol for creating a multi-application interface and improving bandwidth over universal serial bus
US6760772B2 (en) 2000-12-15 2004-07-06 Qualcomm, Inc. Generating and implementing a communication protocol and interface for high data rate signal transfer
US8812706B1 (en) 2001-09-06 2014-08-19 Qualcomm Incorporated Method and apparatus for compensating for mismatched delays in signals of a mobile display interface (MDDI) system
US7007119B2 (en) * 2001-09-28 2006-02-28 Intel Corporation System and method for supporting split transactions on a bus
US7080189B1 (en) * 2002-05-31 2006-07-18 Cypress Semiconductor Corp. USB device communication
JP3955512B2 (ja) * 2002-08-27 2007-08-08 富士通株式会社 データ処理装置及びパケット判別方法
US7069373B2 (en) * 2002-11-07 2006-06-27 Nec Electronics America, Inc. USB endpoint controller flexible memory management
US6959355B2 (en) * 2003-02-24 2005-10-25 Standard Microsystems Corporation Universal serial bus hub with shared high speed handler
US7185126B2 (en) * 2003-02-24 2007-02-27 Standard Microsystems Corporation Universal serial bus hub with shared transaction translator memory
JPWO2004077304A1 (ja) * 2003-02-27 2006-06-08 富士通株式会社 データ転送装置
US7181649B2 (en) * 2003-05-09 2007-02-20 Stmicroelectronics, Inc. Universal serial bus (USB) smart card having enhanced testing features and related system, integrated circuit, and methods
US7143224B2 (en) * 2003-05-09 2006-11-28 Stmicroelectronics, Inc. Smart card for performing advance operations to enhance performance and related system, integrated circuit, and methods
US7373522B2 (en) * 2003-05-09 2008-05-13 Stmicroelectronics, Inc. Smart card with enhanced security features and related system, integrated circuit, and methods
US7080789B2 (en) * 2003-05-09 2006-07-25 Stmicroelectronics, Inc. Smart card including a JTAG test controller and related methods
US6783078B1 (en) 2003-05-09 2004-08-31 Stmicroelectronics, Inc. Universal serial bus (USB) smart card having read back testing features and related system, integrated circuit, and methods
US8705579B2 (en) 2003-06-02 2014-04-22 Qualcomm Incorporated Generating and implementing a signal protocol and interface for higher data rates
US7369982B2 (en) * 2003-06-04 2008-05-06 Stmicroelectronics, Inc. Multi-mode smart card emulator and related methods
JP4385247B2 (ja) * 2003-08-04 2009-12-16 日本電気株式会社 集積回路、および情報処理装置
US7493431B2 (en) * 2003-08-06 2009-02-17 Icron Technologies Corporation Method and apparatus for extending the range of the universal serial bus protocol
EP2363989B1 (en) 2003-08-13 2018-09-19 Qualcomm Incorporated A signal interface for higher data rates
JP2005071273A (ja) * 2003-08-27 2005-03-17 Canon Inc 電子機器及びそのインターフェース制御方法
US8719334B2 (en) 2003-09-10 2014-05-06 Qualcomm Incorporated High data rate interface
CN102801615A (zh) 2003-10-15 2012-11-28 高通股份有限公司 高数据速率接口
WO2005043862A1 (en) * 2003-10-29 2005-05-12 Qualcomm Incorporated High data rate interface
CA2545817C (en) 2003-11-12 2011-11-29 Qualcomm Incorporated High data rate interface with improved link control
MXPA06006012A (es) 2003-11-25 2006-08-23 Qualcomm Inc Interfase de indice de datos alto con sincronizacion de enlace mejorada.
EP2247071B1 (en) 2003-12-08 2013-09-25 QUALCOMM Incorporated High data rate interface with improved link synchronization
US8669988B2 (en) 2004-03-10 2014-03-11 Qualcomm Incorporated High data rate interface apparatus and method
JP4519903B2 (ja) 2004-03-17 2010-08-04 クゥアルコム・インコーポレイテッド 高速データレートインタフェース装置及び方法
WO2005096594A1 (en) 2004-03-24 2005-10-13 Qualcomm Incorporated High data rate interface apparatus and method
US8234421B2 (en) * 2004-04-21 2012-07-31 Stmicroelectronics, Inc. Smart card with selectively allocatable data buffers and associated methods
US7328849B2 (en) * 2004-04-21 2008-02-12 Stmicroelectronics, Inc. Smart card providing data mapping for multiple applications and related methods
US7904607B2 (en) * 2004-04-21 2011-03-08 Stmicroelectronics, Inc. Smart card with self-reconfiguration features and related methods
US8046508B2 (en) * 2004-04-21 2011-10-25 Stmicroelectronics, Inc. Smart card with self-detachment features and related methods
US8650304B2 (en) 2004-06-04 2014-02-11 Qualcomm Incorporated Determining a pre skew and post skew calibration data rate in a mobile display digital interface (MDDI) communication system
US8630305B2 (en) 2004-06-04 2014-01-14 Qualcomm Incorporated High data rate interface apparatus and method
US20060227759A1 (en) * 2004-09-14 2006-10-12 Bohm Mark R Peripheral Sharing USB Hub
US20060059293A1 (en) * 2004-09-14 2006-03-16 Henry Wurzburg Universal serial bus switching hub
US8539119B2 (en) 2004-11-24 2013-09-17 Qualcomm Incorporated Methods and apparatus for exchanging messages having a digital data interface device message format
US8873584B2 (en) 2004-11-24 2014-10-28 Qualcomm Incorporated Digital data interface device
US8699330B2 (en) 2004-11-24 2014-04-15 Qualcomm Incorporated Systems and methods for digital data transmission rate control
US8723705B2 (en) 2004-11-24 2014-05-13 Qualcomm Incorporated Low output skew double data rate serial encoder
US8667363B2 (en) 2004-11-24 2014-03-04 Qualcomm Incorporated Systems and methods for implementing cyclic redundancy checks
US8692838B2 (en) 2004-11-24 2014-04-08 Qualcomm Incorporated Methods and systems for updating a buffer
US20060149870A1 (en) * 2004-12-30 2006-07-06 Randall Sears Parallel to USB bridge controller
US7464174B1 (en) 2005-03-07 2008-12-09 Pericom Semiconductor Corp. Shared network-interface controller (NIC) using advanced switching (AS) turn-pool routing field to select from among multiple contexts for multiple processors
EP1718096B1 (en) * 2005-04-25 2009-11-04 Samsung Electronics Co., Ltd. Indicating the frame offset of Multicast Broadcast Service data bursts in an MBS-MAP message
US7480303B1 (en) 2005-05-16 2009-01-20 Pericom Semiconductor Corp. Pseudo-ethernet switch without ethernet media-access-controllers (MAC's) that copies ethernet context registers between PCI-express ports
KR100636283B1 (ko) * 2005-08-01 2006-10-18 삼성전자주식회사 외부저장매체를 이용한 메시지 처리 시스템 및 그 방법
US8730069B2 (en) 2005-11-23 2014-05-20 Qualcomm Incorporated Double data rate serial encoder
US8692839B2 (en) 2005-11-23 2014-04-08 Qualcomm Incorporated Methods and systems for updating a buffer
US7433990B2 (en) * 2006-01-24 2008-10-07 Standard Microsystems Corporation Transferring system information via universal serial bus (USB)
US7523243B2 (en) * 2006-04-14 2009-04-21 Standard Microsystems Corporation Multi-host USB device controller
US7480753B2 (en) * 2006-04-27 2009-01-20 Standard Microsystems Corporation Switching upstream and downstream logic between ports in a universal serial bus hub
US20080005262A1 (en) * 2006-06-16 2008-01-03 Henry Wurzburg Peripheral Sharing USB Hub for a Wireless Host
EP2036262A1 (en) * 2006-06-20 2009-03-18 Freescale Semiconductor, Inc. Method for transmitting a datum from a time-dependent data storage means
WO2007147441A1 (en) * 2006-06-22 2007-12-27 Freescale Semiconductor, Inc. Method and system of grouping interrupts from a time-dependent data storage means
US20080162737A1 (en) * 2006-12-31 2008-07-03 Baojing Liu USB Controller with Full Transfer Automation
US7802034B2 (en) * 2006-12-31 2010-09-21 Sandisk Corporation Method for performing full transfer automation in a USB controller
WO2008082530A1 (en) * 2006-12-31 2008-07-10 Sandisk Corporation Method and apparatus for performing full transfer automation in a usb controller
JP2008257419A (ja) * 2007-04-04 2008-10-23 Nec Electronics Corp 通信アダプタ及び通信アダプタのデータ転送方法
US8315269B1 (en) 2007-04-18 2012-11-20 Cypress Semiconductor Corporation Device, method, and protocol for data transfer between host device and device having storage interface
US7741562B2 (en) * 2007-06-19 2010-06-22 Lastar Inc. Wall plate assembly with integral universal serial bus module
EP2015194A1 (en) * 2007-06-29 2009-01-14 Thomson Licensing Method for data transfer between host and device
TWI448902B (zh) 2007-08-24 2014-08-11 Cypress Semiconductor Corp 具頁存取基礎處理器介面之橋接裝置
US20090063717A1 (en) * 2007-08-28 2009-03-05 Bohm Mark R Rate Adaptation for Support of Full-Speed USB Transactions Over a High-Speed USB Interface
US8090894B1 (en) 2007-09-21 2012-01-03 Cypress Semiconductor Corporation Architectures for supporting communication and access between multiple host devices and one or more common functions
US7895387B1 (en) 2007-09-27 2011-02-22 Cypress Semiconductor Corporation Devices and methods for sharing common target device with two different hosts according to common communication protocol
US7805551B2 (en) * 2007-09-27 2010-09-28 Integrated Device Technology, Inc. Multi-function queue to support data offload, protocol translation and pass-through FIFO
US20090086750A1 (en) * 2007-09-27 2009-04-02 Integrated Device Technology, Inc. Non-Random Access Rapid I/O Endpoint In A Multi-Processor System
US7945716B2 (en) * 2007-09-27 2011-05-17 Integrated Device Technology, Inc. Serial buffer supporting virtual queue to physical memory mapping
US7818470B2 (en) * 2007-09-27 2010-10-19 Integrated Device Technology, Inc. Adaptive interrupt on serial rapid input/output (SRIO) endpoint
JP2009093418A (ja) * 2007-10-09 2009-04-30 Nec Electronics Corp ホストコントローラ装置及びデータ転送制御方法
JP2009230201A (ja) * 2008-03-19 2009-10-08 Nec Electronics Corp Usbコントローラ、及びバッファメモリ制御方法
US7818486B2 (en) * 2008-08-15 2010-10-19 Icron Technologies Corporation Method and apparatus for connecting USB devices to a remote computer
US7908421B2 (en) * 2008-09-30 2011-03-15 Intel Corporation Universal serial bus endpoint context caching
US8166225B2 (en) * 2009-04-09 2012-04-24 Tenx Technology Inc. USB interface data transmission device and USB interface data communication system
CN101673255B (zh) * 2009-10-21 2012-07-11 威盛电子股份有限公司 通用串行总线主机控制器和通用串行总线主机控制方法
CN102263938B (zh) * 2010-05-27 2013-07-24 凌阳创新科技股份有限公司 采用双等时型通用串行总线的摄像系统及方法
CN101937414B (zh) * 2010-08-26 2013-05-15 惠州Tcl移动通信有限公司 Uart和usb共用微型usb接口的方法及装置
CN101963947B (zh) * 2010-09-30 2013-10-02 威盛电子股份有限公司 通用序列总线传输转译器及大量传输方法
CN101976230B (zh) * 2010-09-30 2014-04-23 威盛电子股份有限公司 通用序列总线传输转译器及输入请求同步传输方法
CN101968779A (zh) * 2010-09-30 2011-02-09 威盛电子股份有限公司 通用串行总线传输转译器及微帧同步方法
US8572306B2 (en) * 2010-12-02 2013-10-29 Via Technologies, Inc. USB transaction translator and USB transaction translation method
US9009380B2 (en) 2010-12-02 2015-04-14 Via Technologies, Inc. USB transaction translator with SOF timer and USB transaction translation method for periodically sending SOF packet
CN102143266A (zh) * 2011-02-18 2011-08-03 深圳桑菲消费通信有限公司 一种将移动终端usb接口扩展为串口通信接口的方法
US8799532B2 (en) 2011-07-07 2014-08-05 Smsc Holdings S.A.R.L. High speed USB hub with full speed to high speed transaction translator
TWI467473B (zh) * 2012-12-25 2015-01-01 Asustek Comp Inc 影像顯示系統以及影像顯示方法
US8972628B2 (en) * 2013-01-11 2015-03-03 Hewlett-Packard Development Company, L.P. Expandable wireless storage device for streaming a multi-media file
US10366039B2 (en) * 2017-04-13 2019-07-30 Nxp B.V. USB link bridge
CN110035198A (zh) * 2019-04-06 2019-07-19 东莞市金翔光电科技有限公司 平板扫描仪用双usb传输系统
TWI736092B (zh) * 2019-12-31 2021-08-11 新唐科技股份有限公司 通用串列匯流排裝置以及存取方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61232744A (ja) 1985-04-08 1986-10-17 Oki Electric Ind Co Ltd バツフア管理方式
US4845710A (en) 1986-12-23 1989-07-04 Oki Electric Industry Co., Ltd. Dynamic buffer supervising system for a data link access protocol control
JPH0240743A (ja) 1988-07-29 1990-02-09 Fujitsu Ltd バッファ最適割当制御方式
JP2874375B2 (ja) 1991-04-11 1999-03-24 日本電気株式会社 ダブルバッファ形エラスティック・ストア
JPH06101747A (ja) 1992-09-09 1994-04-12 Hitachi Ltd 歯車変速機
JP3098344B2 (ja) 1992-12-18 2000-10-16 富士通株式会社 データ転送処理方法及びデータ転送処理装置
US6185641B1 (en) * 1997-05-01 2001-02-06 Standard Microsystems Corp. Dynamically allocating space in RAM shared between multiple USB endpoints and USB host
DE59811308D1 (de) * 1997-07-21 2004-06-09 Infineon Technologies Ag Pufferspeicheranordnung
US5974486A (en) * 1997-08-12 1999-10-26 Atmel Corporation Universal serial bus device controller comprising a FIFO associated with a plurality of endpoints and a memory for storing an identifier of a current endpoint
KR100290729B1 (ko) * 1998-01-07 2001-05-15 클라크 3세 존 엠. 유에스비 등시 데이타를 전송 및 수신하는 장치 및 방법
US6205501B1 (en) * 1998-01-07 2001-03-20 National Semiconductor Corp. Apparatus and method for handling universal serial bus control transfers
JPH11328069A (ja) 1998-05-19 1999-11-30 Sony Corp Usbインタフェース装置
US6266715B1 (en) * 1998-06-01 2001-07-24 Advanced Micro Devices, Inc. Universal serial bus controller with a direct memory access mode
US6389495B1 (en) * 1999-01-16 2002-05-14 Cypress Semiconductor Corp. Dedicated circuit and method for enumerating and operating a peripheral device on a universal serial bus

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100474221B1 (ko) * 2001-05-14 2005-03-08 세이코 엡슨 가부시키가이샤 데이터 전송 제어 장치, 전자 기기 및 데이터 전송 제어방법
US7469304B2 (en) 2002-04-19 2008-12-23 Seiko Epson Corporation Data transfer control device, electronic equipment, and method for a data transfer through a bus, the data transfer control device including a register and a packet buffer that are commonly used during a host operation and a peripheral operation
US7028109B2 (en) 2002-04-19 2006-04-11 Seiko Epson Corporation Data transfer control device including buffer controller with plurality of pipe regions allocated to plurality of endpoints
US7359996B2 (en) 2002-04-19 2008-04-15 Seiko Epson Corporation Data transfer control device, electronic equipment, and data transfer control method
US7428600B2 (en) 2002-04-26 2008-09-23 Seiko Epson Corporation Data transfer control device, electronic equipment, and data transfer control method
US7359997B2 (en) 2003-06-06 2008-04-15 Seiko Epson Corporation USB data transfer control device including first and second USB device wherein destination information about second device is sent by first device
KR100557215B1 (ko) * 2003-08-19 2006-03-10 삼성전자주식회사 유에스비 디바이스의 엔드포인트 제어 장치 및 그 방법
JP2010262663A (ja) * 2004-01-13 2010-11-18 Seiko Instruments Inc メモリインタフェース装置、メモリインタフェース方法、およびモデム装置
JP2005316951A (ja) * 2004-03-30 2005-11-10 Seiko Epson Corp 情報端末、情報処理システム、及び、これらの制御方法
US7676612B2 (en) 2004-05-31 2010-03-09 Canon Kabushiki Kaisha Video camera device and control method thereof
JP2007058518A (ja) * 2005-08-24 2007-03-08 Renesas Technology Corp メモリカード
JP2007272643A (ja) * 2006-03-31 2007-10-18 Nec Corp Usbデバイス共有システム、これで用いるサーバのインタフェース装置、及びその動作方法
JP2007179558A (ja) * 2007-02-13 2007-07-12 Fujitsu Ltd データ処理装置及びエラー訂正方法
JP4616292B2 (ja) * 2007-02-13 2011-01-19 富士通セミコンダクター株式会社 データ処理装置及びエラー訂正方法
JP2008198126A (ja) * 2007-02-15 2008-08-28 Fuji Xerox Co Ltd データ通信システム、データ通信プログラム、データ受信装置、データ受信プログラム、及び、データ受信方法
JP2009010835A (ja) * 2007-06-29 2009-01-15 Mitsubishi Electric Corp 通信制御装置
JP2008257745A (ja) * 2008-06-16 2008-10-23 Sanyo Electric Co Ltd マイクロコンピュータ
JP4724206B2 (ja) * 2008-06-16 2011-07-13 三洋電機株式会社 マイクロコンピュータ
KR100949045B1 (ko) 2008-11-05 2010-03-24 대성전기공업 주식회사 유에스비(usb) 직렬 통신을 이용한 can 접속 장치
JP2011243142A (ja) * 2010-05-21 2011-12-01 Renesas Electronics Corp 通信制御装置、データ通信方法及びプログラム
JP2012160148A (ja) * 2011-02-03 2012-08-23 Rohm Co Ltd システムlsi
JP2022528349A (ja) * 2019-03-27 2022-06-10 无錫海斯凱尓医学技術有限公司 データ記憶用の装置、方法及び読み取り可能な媒体
JP7236172B2 (ja) 2019-03-27 2023-03-09 无錫海斯凱尓医学技術有限公司 データ記憶用の装置、方法及び読み取り可能な媒体
US11836098B2 (en) 2019-03-27 2023-12-05 Wuxi Hisky Medical Technologies Co., Ltd. Data storage apparatus and method, and readable storage medium

Also Published As

Publication number Publication date
US6816929B2 (en) 2004-11-09
US20010056513A1 (en) 2001-12-27
JP3415567B2 (ja) 2003-06-09

Similar Documents

Publication Publication Date Title
JP3415567B2 (ja) Usb転送制御方法およびusbコントローラ
EP0617368B1 (en) Arbitration process for controlling data flow through an I/O controller
US9430432B2 (en) Optimized multi-root input output virtualization aware switch
US20090100209A1 (en) Universal serial bus hub with shared high speed handler
JP2004157966A (ja) エンドポイント・メモリ制御方法、エンドポイント・メモリ制御装置、usb装置および記憶媒体
US20070168583A1 (en) Endpoint control apparatus and method thereof
CN101303685B (zh) 可提升通用序列总线储存设备的读写数据速率的方法
US7484028B2 (en) Burst-capable bus bridges for coupling devices to interface buses
US20230333773A1 (en) Memory controller
EP0772831B1 (en) Bidirectional parallel signal interface
JP2002312296A (ja) 周辺装置のusbインタフェース装置、その制御方法およびプログラム並びにusbインタフェースシステム
US7409486B2 (en) Storage system, and storage control method
CN110971621B (zh) 基于sdio接口的嵌入式多cpu互联电路、互联方法及驱动方法
US6584512B1 (en) Communication DMA device for freeing the data bus from the CPU and outputting divided data
KR101197294B1 (ko) QoS 및 전송 효율 개선을 위한 SoC 기반 시스템 네트워크에서의 인터페이스 장치의 통신방법
US20070005847A1 (en) Data transfer control device and electronic instrument
US20040230717A1 (en) Processing device
JP7435054B2 (ja) 通信装置、通信装置の制御方法、および集積回路
KR100563418B1 (ko) 통신 컨트롤러 및 통신 방법
JPH11328069A (ja) Usbインタフェース装置
KR20040066311A (ko) 직접 메모리 접근매체의 데이터 전송 장치 및 방법
JPH0661074B2 (ja) アクセス制御装置、バスの遊休時間を最小化する方法、dma制御装置、及びdmaデータ転送方法
US7177997B2 (en) Communication bus system
KR100688477B1 (ko) Usb 디바이스 내 엔드포인트들의 메모리 관리 방법
JP2000244585A (ja) バスインタフェース回路

Legal Events

Date Code Title Description
S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

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: 20080404

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090404

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100404

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110404

Year of fee payment: 8

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: 20110404

Year of fee payment: 8

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: 20120404

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120404

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130404

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140404

Year of fee payment: 11

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees