JP2003316728A - データ転送制御装置、電子機器及びデータ転送制御方法 - Google Patents
データ転送制御装置、電子機器及びデータ転送制御方法Info
- Publication number
- JP2003316728A JP2003316728A JP2002126708A JP2002126708A JP2003316728A JP 2003316728 A JP2003316728 A JP 2003316728A JP 2002126708 A JP2002126708 A JP 2002126708A JP 2002126708 A JP2002126708 A JP 2002126708A JP 2003316728 A JP2003316728 A JP 2003316728A
- Authority
- JP
- Japan
- Prior art keywords
- transfer
- data
- stage
- transaction
- controller
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9063—Intermediate storage in different physical parts of a node or terminal
- H04L49/9068—Intermediate storage in different physical parts of a node or terminal in the network interface card
- H04L49/9073—Early interruption upon arrival of a fraction of a packet
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/901—Buffering arrangements using storage descriptor, e.g. read or write pointers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9047—Buffering arrangements including multiple buffers, e.g. buffer pools
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9057—Arrangements for supporting packet reassembly or resequencing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9063—Intermediate storage in different physical parts of a node or terminal
- H04L49/9078—Intermediate storage in different physical parts of a node or terminal using an external memory or storage device
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Systems (AREA)
Abstract
減等を図れるデータ転送制御装置、電子機器及びデータ
転送制御方法を提供すること。 【解決手段】 転送条件情報が設定され、自動コントロ
ール転送の開始が指示されると、転送コントローラ(ホ
ストコントローラ)は、セットアップステージのトラン
ザクションを自動発生してセットアップステージのパケ
ットを自動転送し、次に、転送すべきデータが存在する
場合にはデータステージのトランザクションを自動発生
してデータステージのパケットを自動転送し、次に、ス
テータスステージのトランザクションを自動発生してス
テータスステージのパケットを自動転送する。デバイス
リクエストのデータ、転送データのトータルサイズ、デ
ータステージの有無の情報、データステージでの転送方
向、マックスパケットサイズが、転送条件レジスタに設
定される。USBのOn−The−Goのホスト動作時
にパケットバッファにパイプ領域を確保する。
Description
置、電子機器及びデータ転送制御方法に関する。
gh Speed)モードをサポートするUSB(Universal Se
rial Bus)2.0の市場が順調に拡大しているなか、U
SB Implementers Forum(USB−IF)によって、
USB On−The−Go(OTG)と呼ばれるイン
ターフェース規格が策定された。USB2.0を拡張す
る形で策定されたOTG規格(OTG1.0)は、US
Bインターフェースの新たな付加価値を生む可能性を秘
めており、その特質を生かしたアプリケーションの登場
が待たれている。
してホスト(パーソナルコンピュータ等)に接続されて
いたペリフェラル(周辺機器)に、ホスト機能を持たせ
ることができる。これにより、ペリフェラル同士をUS
Bで接続してデータを転送することが可能になり、例え
ばデジタルカメラとプリンタとをダイレクトに接続し
て、デジタルカメラの画像を印刷することが可能にな
る。また、デジタルカメラやデジタルビデオカメラをス
トレージ装置に接続して、データを保存することが可能
になる。
持たせるペリフェラルには、低性能のCPU(処理部)
が組み込まれているのが一般的である。従って、ホスト
機能の追加により、ペリフェラルが有するCPU(ファ
ームウェア)の処理負荷が重くなったり、処理が複雑化
すると、他の処理に支障が生じたり、機器の設計期間が
長期化するなどの問題が生じる。
ことで、データ転送制御装置が大規模化してしまうと、
データ転送制御装置の高コスト化や、データ転送制御装
置が組み込まれる機器(電子機器)の高コスト化等を招
く。
されており、その中にはコントロール転送と呼ばれる転
送方式がある。このコントロール転送は、ペリフェラル
の制御に必要な情報をやり取りするための転送方式であ
り、USB機器はこのコントロール転送を必ずサポート
しなければならない。
アップステージ、データステージ、ステータスステージ
で構成されるが、これを各ステージ毎に制御、管理する
と、CPU(処理部、ファームウェア)の処理負荷が重
くなってしまうという問題が生じる。
てなされたものであり、その目的とするところは、コン
トロール転送時の処理部の処理負荷の軽減等を図れるデ
ータ転送制御装置、電子機器及びデータ転送制御方法を
提供することにある。
データ転送のためのデータ転送制御装置であって、転送
条件情報が設定される転送条件レジスタと、転送条件レ
ジスタに設定される転送条件情報に基づいて、コントロ
ール転送を含むデータ転送を行う転送コントローラと、
転送データを記憶するパケットバッファのアクセス制御
を行うバッファコントローラとを含み、前記転送コント
ローラが、自動コントロール転送の開始が指示された場
合に、セットアップステージのトランザクションを自動
発生してセットアップステージのパケットを自動転送
し、次に、転送すべきデータが存在する場合にはデータ
ステージのトランザクションを自動発生してデータステ
ージのパケットを自動転送し、次に、ステータスステー
ジのトランザクションを自動発生してステータスステー
ジのパケットを自動転送するデータ転送制御装置に関係
する。
により転送条件情報が設定され、自動コントロール転送
の開始が指示されると、セットアップステージのトラン
ザクション、データステージのトランザクション(デー
タステージ有りの場合)、ステータスステージのトラン
ザクションがシーケンシャルに自動発生する。そして、
各ステージのトランザクションに必要なパケットが自動
転送される。このように本発明では、転送条件情報を設
定し、自動コントロール転送の開始を指示するだけで、
セットアップステージの開始からステータスステージの
完了までの一連の処理が、転送コントローラにより自動
的に行われる。従って、ステージ単位でデータ転送の制
御、管理を行う手法に比べて、コントロール転送時の処
理部の処理負荷を軽減できる。
に、デバイスリクエストのデータと、データステージで
の転送データのトータルサイズが、転送条件情報として
設定されるようにしてもよい。
を転送条件レジスタに設定することで、セットアップス
テージにおいて、デバイスリクエストのデータを自動転
送できるようになる。また、転送データのトータルサイ
ズを転送条件レジスタに設定することで、データステー
ジにおいて、そのトータルサイズのデータを、データパ
ケットを用いて自動転送できるようになる。
に、データステージの有無の情報と、データステージで
の転送方向と、マックスパケットサイズが、転送条件情
報として設定されるようにしてもよい。
タステージでの転送方向などは、デバイスリクエストの
データ(コマンド)をデコードすることで得るようにし
てもよい。
が、ステータスステージのトランザクションが完了した
場合に、処理部に対して割り込みを発生するようにして
もよい。
の開始を指示した後、割り込みが発生するまでの期間
を、処理部が他の処理に使用できるようになり、処理の
効率化を図れる。
が、エンドポイントからストールを受信した場合に、自
動コントロール転送を中止し、処理部に対して割り込み
を発生するようにしてもよい。
ストールの受信時に、自動コントロール転送を無効にし
て、適正な処理を行うことが可能になる。
が、自動コントロール転送の開始が指示された場合に、
セットアップステージのトランザクションの開始を指示
する回路と、開始したセットアップステージのトランザ
クションが完了した場合に、データステージでの転送方
向とデータステージの有無の情報に基づいて、データス
テージのINトランザクションの実行、データステージ
のOUTトランザクションの実行、或いはデータステー
ジ無しのいずれかを選択する回路と、データステージの
INトランザクションの実行が選択された場合には、デ
ータステージのINトランザクションの開始を指示し、
データステージのOUTトランザクションの実行が選択
された場合には、データステージのOUTトランザクシ
ョンの開始を指示する回路と、開始したデータステージ
のINトランザクションが完了した場合には、ステータ
スステージのOUTトランザクションの開始を指示し、
開始したデータステージのOUTトランザクションが完
了した場合、或いはデータステージ無しが選択された場
合には、ステータスステージのINトランザクションの
開始を指示する回路とを含むようにしてもよい。
ジ、データステージ、ステータスステージの一連のトラ
ンザクションを、処理部の介在無しに、自動的に発生で
きるようになる。
に、各エンドポイントとの間で転送されるデータが各パ
イプ領域に記憶される複数のパイプ領域が確保され、各
パイプ領域と各エンドポイントとの間でのデータ転送の
転送条件情報が、複数の転送条件レジスタの各転送条件
レジスタに設定され、前記転送コントローラが、コント
ロール転送のパイプ領域に対応する転送条件レジスタに
設定された転送条件情報に基づいて、コントロール転送
のトランザクションを自動発生し、コントロール転送の
パイプ領域とコントロール転送のエンドポイントとの間
で、自動転送コントロール転送を行うようにしてもよ
い。
数のパイプ領域(バッファ領域)が確保(allocate)さ
れる。この場合に、各パイプ領域は、バスの各エンドポ
イントに対応して確保される。また、各パイプ領域に
は、それに対応する各エンドポイントとの間で転送(送
信、受信)されるデータが記憶(バッファリング)され
る。バッファコントローラは、このようなパイプ領域が
確保されたパケットバッファ(バッファ)のアクセス制
御(領域管理)を行う。
ドポイントとの間でのデータ転送の転送条件情報(エン
ドポイント情報、パイプ情報)が各転送条件レジスタ
(パイプレジスタ)に設定される。この場合にコントロ
ール転送の転送条件情報は、コントロール転送のパイプ
領域に割り当てられる転送条件レジスタに設定される。
そして、転送コントローラは、この転送条件レジスタに
設定された転送条件情報に基づいて、コントロール転送
のエンドポイントに対するトランザクションを自動発生
し、パイプ領域とエンドポイントとの間で自動コントロ
ール転送を行う。これにより、データ転送制御装置の制
御等を行う処理部の処理負荷を軽減できる。
トロール転送のエンドポイントに専用のパイプ領域と、
任意のエンドポイントに割り当て可能な汎用のパイプ領
域を含み、前記転送コントローラが、前記専用のパイプ
領域を用いて、自動コントロール転送を行うようにして
もよい。
イントに専用のパイプ領域を設けることで、ユーザの混
乱等を防止できる。また、任意のエンドポイントに割り
当て可能な汎用のパイプ領域を確保することで、パイプ
領域とエンドポイントとの対応づけを動的に変化させる
ことが可能になり、データ転送の効率的なスケジューリ
ングが可能になる。
するホスト動作のステートと、ペリフェラルの役割とし
て動作するペリフェラル動作のステートを含む複数のス
テートの制御を行うステートコントローラを含み、前記
転送コントローラが、ホスト動作時において、ホストと
してのデータ転送を行うホストコントローラと、ペリフ
ェラル動作時において、ペリフェラルとしてのデータ転
送を行うペリフェラルコントローラとを含み、前記ホス
トコントローラが、ホスト動作時に自動コントロール転
送を行うようにしてもよい。
ローラにより制御されるステートが、ホスト動作のステ
ートになると、ホストコントローラにより、ホストの役
割としてのデータ転送が行われる。また、ステートコン
トローラにより制御されるステートが、ペリフェラル動
作のステートになると、ペリフェラルコントローラによ
り、ペリフェラルの役割としてのデータ転送が行われ
る。これにより、いわゆるデュアルロール・デバイス機
能を実現できるようになる。
が、ホスト動作時に、コントロール転送の一連のステー
ジのトランザクションを自動発生する自動コントロール
転送を行う。これにより、デュアルロール・デバイス機
能を実現しながら、ホスト動作時における処理部の処理
負荷を軽減できる。
al Bus)のOTG(On−The−Go)規格に準拠し
たデータ転送を行うようにしてもよい。
送制御装置と、前記データ転送制御装置及びバスを介し
て転送されるデータの出力処理又は取り込み処理又は記
憶処理を行う装置と、前記データ転送制御装置のデータ
転送を制御する処理部とを含む電子機器に関係する。
ためのデータ転送制御方法であって、転送条件レジスタ
に転送条件情報を設定し、転送条件レジスタに設定され
る転送条件情報に基づいて、コントロール転送を含むデ
ータ転送を行い、転送データを記憶するパケットバッフ
ァのアクセス制御を行うと共に、自動コントロール転送
の開始が指示された場合に、セットアップステージのト
ランザクションを自動発生してセットアップステージの
パケットを自動転送し、次に、転送すべきデータが存在
する場合にはデータステージのトランザクションを自動
発生してデータステージのパケットを自動転送し、次
に、ステータスステージのトランザクションを自動発生
してステータスステージのパケットを自動転送するデー
タ転送制御方法に関係する。
る。
請求の範囲に記載された本発明の内容を不当に限定する
ものではない。また本実施形態で説明される構成の全て
が本発明の解決手段として必須であるとは限らない。
簡単に説明する。
ようなMini-Aプラグ、Mini-Bプラグが定義されてい
る。また、これらのMini-Aプラグ、Mini−Bプラグ
(広義にはケーブルの第1、第2のプラグ)の両方を接
続できるコネクタとして、Mini-ABレセプタクル(rec
eptacle)が定義されている。
ケーブルのMini-Aプラグに電子機器Pが接続され、Min
i-Bプラグに電子機器Qが接続されると、電子機器Pは
Aデバイスに設定され、電子機器QはBデバイスに設定
される。一方、図1(C)に示すように、Mini-Bプラ
グ、Mini-Aプラグが電子機器P、Qに接続されると、
電子機器P、Qは、各々、Bデバイス、Aデバイスに設
定される。
接続されており、Mini-Bプラグ内ではIDピンはフロ
ーティング状態になっている。電子機器は、内蔵するプ
ルアップ抵抗回路を用いて、このIDピンの電圧レベル
を検出することで、自身がMini-Aプラグに接続された
のか、或いはMini-Bプラグに接続されたのかを判断す
る。
電源(VBUS)を供給する側(供給元)になり、Bデ
バイス(スレイブ)が、電源の供給を受ける側(供給
先)になる。また、Aデバイスは、デフォルトのステー
トがホストになり、Bデバイスは、デフォルトのステー
トがペリフェラル(周辺機器)になる。
フェラルとしての役割の両方を持つことができるデュア
ルロール・デバイス(Dual-Role Device)が定義されて
いる。
ペリフェラルにもなれる。そして、デュアルロール・デ
バイスに接続された相手が、従来のUSB規格における
ホストやペリフェラルである場合には、デュアルロール
・デバイスの役割は一意に定まる。つまり、接続相手が
ホストであれば、デュアルロール・デバイスはペリフェ
ラルになり、接続相手がペリフェラルであれば、デュア
ルロール・デバイスはホストになる。
スである場合には、両方のデュアルロール・デバイス
は、お互いにホストとペリフェラルの役割を交換でき
る。
すようなセッション開始要求手順SRP(Session Requ
est Protocol)やホスト交換手順HNP(HostNegotiat
ion Protocol)の機能を持つ。
BデバイスがAデバイスに対して、VBUS(電源)の
供給を要求するプロトコルである。
バイスはVBUSの供給を停止できる。これにより、A
デバイスが例えば小型の携帯機器であった場合に、無駄
な電力消費を防止できる。そして、AデバイスがVBU
Sの供給を停止した後に、BデバイスがVBUSを供給
してもらいたい場合には、このSRPを使用して、Aデ
バイスに対してVBUSの供給の再開を要求する。
(A)に示すように、Bデバイスは、データ・ライン・
パルシングとVBUSパルシングを行うことで、Aデバ
イスに対してVBUSの供給を要求する。そして、Aデ
バイスによるVBUSの供給の開始後に、Bデバイスの
ペリフェラル動作(peripheral operation)と、Aデバ
イスのホスト動作(host operation)が開始する。
に、デュアルロール・デバイス同士の接続では、Mini-
Aプラグが接続された側であるAデバイスがデフォルト
のホストとなり、Mini-Bプラグが接続された側である
Bデバイスがデフォルトのペリフェラルになる。そし
て、OTGでは、プラグの抜き差しを行わなくても、ホ
ストとペリフェラルの役割を交換できる。HNPは、こ
のホストとペリフェラルの役割を交換するためのプロト
コルである。
ルトのホストとして動作するAデバイスが、バスの使用
を終了すると、バスがアイドル状態になる。その後に、
Bデバイスがデータ信号線DP(D+)のプルアップ抵
抗を無効にすると、AデバイスがDPのプルアップ抵抗
を有効にする。これにより、Aデバイスの役割はホスト
からペリフェラルに変わり、ペリフェラルとしての動作
を開始する。また、Bデバイスの役割はペリフェラルか
らホストに変わり、ホストとしての動作を開始する。
し、AデバイスがDPのプルアップ抵抗を無効にする
と、Bデバイスが、DPのプルアップ抵抗を有効にす
る。これにより、Bデバイスの役割はホストからペリフ
ェラルに戻り、ペリフェラルとしての動作を再開する。
また、Aデバイスの役割はペリフェラルからホストに戻
り、ホストとしての動作を再開する。
やデジタルカメラなどの携帯機器をUSBのホストとし
て動作させ、携帯機器同士をピア・ツー・ピアで接続し
てデータ転送を行うことが可能になる。これにより、U
SBインターフェースに新たな付加価値を生むことがで
き、これまでには存在しなかったアプリケーションを創
出できる。
ピュータが有するデータ転送制御装置(ホストコントロ
ーラ)は、マイクロソフト社が提唱したOHCI(Open
Host Controller Interface)や、UHCI(Universa
l Host Controller Interface)といった規格に準拠し
ていた。また、使用されるOS(Operating System)
も、マイクロソフト社のWindowsやアップル社のマッキ
ントッシュのOSなどに限定されていた。
リケーションである小型携帯機器では、組み込まれるC
PUのアーキテクチャや、使用されるOSは千差万別で
ある。更に、パーソナルコンピュータのホストコントロ
ーラ向けに規格化されたOHCIやUHCIは、USB
ホストとしての機能をフルに実装することを前提として
おり、小型携帯機器への実装に最適であるとは言い難
い。
れるリスト構造のディスクリプタの一例を示す。
スクリプタED1、ED2、ED3は、リンクポインタ
によりリンクされており、エンドポイント1、2、3と
のコミュニケーションに必要な情報が含まれている。そ
して、これらのED1、ED2、ED3には、転送ディ
スクリプタTD11〜TD13、TD21、TD31〜
TD32がリンクポインタにより更にリンクされてい
る。そして、これらの転送ディスクリプタには、エンド
ポイント1、2、3との間で転送するパケットデータに
必要な情報が含まれている。
は、図3(B)のCPU610(広義には処理部)上で
動作するファームウェア(ホストコントローラ・ドライ
バ)が作成し、システムメモリ620に書き込む。即
ち、ファームウェアは、システム中のエンドポイントに
対してエンドポイントディスクリプタを割り当て、エン
ドポイント情報等に基づいてエンドポイントディスクリ
プタ、転送ディスクリプタを作成する。そして、これら
のディスクリプタをリンクポインタでリンクさせて、シ
ステムメモリ620に書き込む。
ローラ)は、システムメモリ620に書き込まれたリス
ト構造のディスクリプタを読み出し、エンドポイントデ
ィスクリプタや転送ディスクリプタに記述される情報に
基づいて、データ転送を実行する。
(ホストコントローラ)は、ED1に基づいてエンドポ
イント1の情報を設定し、ED1にリンクされるTD1
1に基づいて、エンドポイント1との間でデータ転送を
行う。次に、ED2に基づいてエンドポイント2の情報
を設定し、ED2にリンクされるTD21に基づいて、
エンドポイント2との間でデータ転送を行う。同様にし
て、データ転送制御装置600は、TD31、TD1
2、TD32、TD13に基づいてデータ転送を実行す
る。
制御装置(ホストコントローラ)では、CPU上で動作
するファームウェア(ホストコントローラ・ドライバ)
が、図3(A)に示すような複雑な構造のディスクリプ
タを作成しなければならない。従って、CPUの処理負
荷が非常に重い。
割が割り当てられるのはパーソナルコンピュータだけで
あり、このパーソナルコンピュータは高性能のCPUを
有している。従って、図3(A)に示すような複雑な構
造のディスクリプタの作成も、余裕を持って行うことが
可能であった。
ションである小型携帯機器(デジタルカメラ、携帯電話
等)に組み込まれるCPU(embedded CPU)は、パーソ
ナルコンピュータのCPUに比べて、性能が格段に低い
のが一般的である。従って、携帯機器にOTGのホスト
動作を行わせると、携帯機器に組み込まれるCPUに過
大な負荷がかかり、他の処理に支障が生じたり、データ
転送のパフォーマンスが低下するなどの問題が生じる。
ータ転送制御装置の構成例を示す。なお、本実施形態の
データ転送制御装置は、図4の全ての回路ブロックを含
む必要はなく、その一部の回路ブロックを省略してもよ
い。
呼ぶ)は、差動データ信号DP、DMを用いてUSB
(広義にはバス)のデータを送受信する回路であり、U
SBの物理層(PHY)回路12を含む。より具体的に
はトランシーバ10は、DP、DMのラインステート
(J、K、SE0等)の生成、シリアル/パラレル変
換、パラレル/シリアル変換、ビットスタッフィング、
ビットアンスタッフィング、NRZIデコード、NRZ
Iエンコードなどを行う。なお、トランシーバ10をデ
ータ転送制御装置の外部に設けるようにしてもよい。
トコントローラ。以下、適宜OTGCと呼ぶ)は、OT
GのSRP機能やHNP機能(図2(A)、(B)参
照)を実現するための種々の処理を行う。即ち、OTG
コントローラ20は、ホストの役割として動作するホス
ト動作のステートや、ペリフェラルの役割として動作す
るペリフェラル動作のステートなどを含む複数のステー
トの制御を行う。
ルロール・デバイスのAデバイス時(図1(B)、
(C)参照)のステート遷移やBデバイス時のステート
遷移が定義されている。OTGコントローラ20は、こ
れらのステート遷移を実現するためのステートマシーン
を含む。また、OTGコントローラ20は、USBのデ
ータラインステートや、VBUSレベルや、IDピンの
ステートを検出(監視)する回路を含む。そして、OT
Gコントローラ20が含むステートマシーンは、これら
の検出情報に基づいて、そのステート(例えば、ホス
ト、ペリフェラル、サスペンド又はアイドルなどのステ
ート)を変化させる。この場合のステートの遷移は、ハ
ードウェア回路により実現してもよいし、ファームウェ
アがステートコマンドをレジスタに設定することで実現
してもよい。そして、ステートが遷移すると、OTGコ
ントローラ20は、遷移後のステートに基づいて、VB
USを制御したり、DP、DMのプルアップ抵抗/プル
ダウン抵抗の接続/非接続を制御する。また、ホストコ
ントローラ50(以下、適宜HCと呼ぶ)、ペリフェラ
ルコントローラ60(以下、適宜PCと呼ぶ)のイネー
ブル/ディスエーブルを制御する。
・コモン回路)は、トランシーバ10と、ホストコント
ローラ50又はペリフェラルコントローラ60との間の
接続の切り替え制御を行う。また、USBのデータ(D
P、DM)のラインステートの生成の指示をトランシー
バ10に対して行う。なお、接続の切り替え制御は、H
C/PCセレクタ32により実現され、ラインステート
の生成指示は、ラインステートコントローラ34により
実現される。
動作時(ホストステート時)にHCイネーブル信号をア
クティブにすると、HC/PC切り替え回路30(HC
/PCセレクタ32)は、トランシーバ10とホストコ
ントローラ50を接続する。一方、OTGコントローラ
20が、ペリフェラル動作時(ペリフェラルステート
時)にPCイネーブル信号をアクティブにすると、HC
/PC切り替え回路30は、トランシーバ10とペリフ
ェラルコントローラ60を接続する。このようにするこ
とで、ホストコントローラ50とペリフェラルコントロ
ーラ60とを排他的に動作させることが可能になる。
はバス)を介したデータ転送を制御する回路であり、ホ
ストコントローラ50(HC)とペリフェラルコントロ
ーラ60(PC)を含む。
動作時(OTGコントローラ20からのHCイネーブル
信号のアクティブ時)に、ホストの役割としてのデータ
転送制御を行う回路である。
動作時に、HC/PC切り替え回路30によりトランシ
ーバ10に接続される。そしてホストコントローラ50
は、レジスタ部70の転送条件レジスタ部72に設定さ
れた転送条件情報に基づいて、エンドポイントに対する
トランザクションを自動発生する。そして、パケットバ
ッファ100に確保(allocate)されたパイプ領域(P
IPE0〜PIPEe。以下、適宜PIPEと呼ぶ)
と、そのパイプ領域に対応するエンドポイントとの間
で、データ(パケット)の自動転送(処理部が介在しな
いハードウェア回路によるデータ転送)を行う。
は、複数のパイプ転送間の調停、フレームにおける時間
管理、転送のスケジューリング、再送の管理などを行
う。また、パイプ転送の転送条件情報(オペレーション
情報)をレジスタ部70を介して管理する。また、トラ
ンザクションの管理を行ったり、パケットを生成/分解
したり、サスペンド/レジューム/リセット状態生成の
指示を行う。
50が自動コントロール転送を行う。即ち、コントロー
ル転送時に、セットアップステージ、データステージ
(データステージ有りの場合)、ステータスステージの
各ステージのトランザクションの自動発生(処理部が介
在しないハードウェア回路によるトランザクションの自
動発生)を行い、これらのトランザクションに必要なパ
ケットを自動転送する。
ペリフェラル動作時(OTGコントローラ20からのP
Cイネーブル信号のアクティブ時)に、ペリフェラルの
役割としてのデータ転送制御を行う回路である。
ペリフェラル動作時に、HC/PC切り替え回路30に
よりトランシーバ10に接続される。そして、レジスタ
部70の転送条件レジスタ部72に設定された転送条件
情報に基づいて、パケットバッファ100に確保された
エンドポイント領域(EP0〜EPe。以下適宜EPと
呼ぶ)とホストとの間でデータを転送する。
ラ60は、エンドポイント転送の転送条件情報(オペレ
ーション情報)をレジスタ部70を介して管理する。ま
た、トランザクションの管理を行ったり、パケットを生
成/分解したり、リモート・ウェイクアップ信号生成の
指示を行う。
レスを割り当てることができる、ペリフェラル(デバイ
ス)上のポイント(部分)である。ホストとペリフェラ
ル(デバイス)との間でのデータ転送は、全て、このエ
ンドポイントを経由して行われる。また、トランザクシ
ョンは、トークンパケットと、オプショナルなデータパ
ケットと、オプショナルなハンドシェークパケットによ
り構成される。
送、エンドポイント転送)制御、バッファアクセス制
御、バッファ管理、割り込み制御、ブロック制御、或い
はDMA制御などを行うための種々のレジスタを含む。
なお、レジスタ部70が含むレジスタは、RAMなどの
メモリにより実現してもよいし、Dフリップフロップな
どにより実現してもよい。また、レジスタ部70のレジ
スタは、1つにまとめずに、各ブロック(HC、PC、
OTGC、Xcvr等)に分散して配置してもよい。
2を含む。そして、この転送条件レジスタ部72は、ホ
スト動作時にパケットバッファ100に確保されるパイ
プ領域(PIPE0〜PIPEe)とエンドポイントと
の間でのデータ転送の転送条件情報(転送制御情報)を
記憶するレジスタを含む。これらの各転送条件レジスタ
は、パケットバッファ100の各パイプ領域に対応して
設けられる。
バッファ100にはエンドポイント領域(EP0〜EP
e)が確保される。そして、転送条件レジスタ部72に
設定された転送条件情報に基づいて、データ転送制御装
置とホストとの間でのデータ転送が行われる。
ージャ)は、パケットバッファ100に対するアクセス
(リード/ライト)制御や領域管理を行う。より具体的
には、CPU(広義には処理部)、DMA(Direct Mem
ory Access)、USBによるパケットバッファ100へ
のアクセス・アドレスを生成・管理する。また、CP
U、DMA、USBによるパケットバッファ100への
アクセスの調停を行う。
トローラ80は、インターフェース回路110(CPU
又はDMA)とパケットバッファ100の間のデータ転
送経路と、パケットバッファ100とホストコントロー
ラ50(USB)の間のデータ転送経路を設定(確立)
する。
コントローラ80は、インターフェース回路110(C
PU又はDMA)とパケットバッファ100の間のデー
タ転送経路と、パケットバッファ100とペリフェラル
コントローラ60(USB)の間のデータ転送経路を設
定する。
ットメモリ、バッファ)は、USBを介して転送される
データ(送信データ又は受信データ)を一時的に記憶
(バッファリング)するものである。このパケットバッ
ファ100は、例えばRAM(Random Access Memory)
などにより構成できる。なお、パケットバッファ100
をデータ転送制御装置の外部に設けてもよい(外付けメ
モリにしてもよい)。
0はパイプ転送用のFIFO(First-In First-Out)と
して使用される。即ち、パケットバッファ100には、
USB(バス)の各エンドポイントに対応するように、
パイプ領域PIPE0〜PIPEe(広義にはバッファ
領域)が確保される。また、各パイプ領域PIPE0〜
PIPEeには、それに対応する各エンドポイントとの
間で転送されるデータ(送信データ又は受信データ)が
記憶される。
バッファ100はエンドポイント転送用のFIFOとし
て使用される。即ち、パケットバッファ100には、エ
ンドポイント領域EP0〜EPe(広義にはバッファ領
域)が確保される。また、各エンドポイント領域EP0
〜EPeには、ホストとの間で転送されるデータ(送信
データ又は受信データ)が記憶される。
るバッファ領域(ホスト動作時にパイプ領域に設定さ
れ、ペリフェラル動作時にエンドポイント領域に設定さ
れる領域)は、先に入力された情報が先に出力されるよ
うな記憶領域(FIFO領域)に設定されている。
のエンドポイント0に専用のパイプ領域であり、PIP
Ea〜PIPEeは、任意のエンドポイントに割り当て
可能な汎用のパイプ領域である。
ントロール転送に専用のエンドポイントに設定される。
従って、本実施形態のようにPIPE0をコントロール
転送に専用のパイプ領域にすることで、ユーザが混乱す
るのを防止できる。また、PIPEa〜PIPEeを、
任意のエンドポイントに割り当て可能なパイプ領域にす
ることで、エンドポイントに対応するパイプ領域を動的
に変化させることが可能になる。これにより、パイプ転
送のスケジューリングの自由度を向上でき、データ転送
の効率化を図れる。
プ領域又はエンドポイント領域)は、マックスパケット
サイズMaxPktSize(広義にはページサイズ)とページ数
BufferPageにより、その領域サイズRSizeが設定される
(RSize=MaxPktSize×BufferPage)。このようにするこ
とで、バッファ領域の領域サイズや面数(ページ数)を
任意に設定できるようになり、パケットバッファ100
のリソースの有効利用を図れる。
は異なる他のバスであるDMA(システムメモリ)バス
やCPUバスと、パケットバッファ100との間でのデ
ータ転送を行うための回路である。このインターフェー
ス回路110は、パケットバッファ100と外部のシス
テムメモリとの間で、DMA転送を行うためのDMAハ
ンドラ回路112を含む。また、パケットバッファ10
0と外部のCPUとの間で、PIO(Parallel I/O)転
送を行うためのCPUインターフェース回路114を含
む。なお、CPU(処理部)をデータ転送制御装置に内
蔵させてもよい。
L又は外部入力クロックに基づいて、データ転送制御装
置の内部で使用する各種のクロックを生成する。
に、パケットバッファ100にパイプ領域PIPE0〜
PIPEeが確保(allocate)される。そして、この各
パイプ領域PIPE0〜PIPEeとペリフェラルの各
エンドポイントの間で、データが転送される。
プ」は、USBで定義される「パイプ」(デバイス上の
エンドポイントとホスト上のソフトウェアとの間の関連
を表す論理的な抽象化、論理的な経路)とは若干意味合
いが異なる。
示すように、USB(バス)に接続されるペリフェラル
が有する各エンドポイントに対応して、パケットバッフ
ァ100上に確保される。例えば図5(A)において、
パイプ領域PIPEaはペリフェラル1のエンドポイン
ト1(バルクIN)に対応し、PIPEbはペリフェラ
ル1のエンドポイント2(バルクOUT)に対応する。
また、PIPEcはペリフェラル2のエンドポイント1
(バルクIN)に対応し、PIPEdはペリフェラル2
のエンドポイント2(バルクOUT)に対応する。ま
た、PIPEeはペリフェラル3のエンドポイント1
(インタラプトIN)に対応する。なお、PIPE0
は、コントロール転送のエンドポイント0に専用のパイ
プ領域である。
IPEaとペリフェラル1のエンドポイント1との間で
USBのバルクIN転送が行われ、PIPEbとペリフ
ェラル1のエンドポイント2との間ではバルクOUT転
送が行われる。また、PIPEcとペリフェラル2のエ
ンドポイント1との間ではバルクIN転送が行われ、P
IPEdとペリフェラル2のエンドポイント2との間で
はバルクOUT転送が行われる。また、PIPEeとペ
リフェラル3のエンドポイント1との間ではインタラプ
トIN転送が行われる。
(汎用)とそれに対応するエンドポイントとの間では、
任意のデータ転送(アイソクロナス転送、バルク転送、
インタラプト転送)を行うことができる。
に対応するエンドポイントの間では、所与のデータ単位
(トータルサイズで指定されるデータ単位)のデータが
転送される。この場合のデータ単位としては、例えばI
RP(I/Oリクエストパケット)により転送要求され
るデータ単位又はそれを適当なサイズに分割したデータ
単位などを考えることができる。エンドポイントに対す
るこのデータ単位のデータ転送(一連のトランザクショ
ン)を、本実施形態における「パイプ」と呼ぶことがで
きる。そして、そのような「パイプ」のデータ(送信デ
ータ、受信データ)を記憶する領域がパイプ領域にな
る。
送が終了すると、そのパイプ領域は解放することができ
る。そして、解放されたパイプ領域は、任意のエンドポ
イントに割り当てることができる。このように本実施形
態では、パイプ領域とエンドポイントとの対応づけを、
動的に変化させることができる。
に、ペリフェラル動作時には、パケットバッファ100
にエンドポイント領域EP0〜EPeが確保(設定)さ
れる。そして、この各エンドポイント領域EP0〜EP
eとホスト(ホストコントローラ、システムメモリ)と
の間で、データが転送される。
ファ100のバッファ領域を、ホスト動作時にはパイプ
領域に割り当て、ペリフェラル動作時にはエンドポイン
ト領域に割り当てている。これにより、ホスト動作時と
ペリフェラル動作時とでパケットバッファ100のリソ
ースを共用(兼用)することが可能になり、パケットバ
ッファ100の使用記憶容量を節約できる。
数は6個に限定されず任意である。
インタラプト転送、コントロール転送という4種類の転
送方式が定義されている。この中でコントロール転送
は、クライアント・ソフトウェアとファンクションとの
間でのコンフィギュレーション/コマンド/ステータス
に関するコミュニケーションを、サポートする転送方式
である。
ェラル(デバイス)にデバイスリクエストを送るセット
アップステージと、デバイスリクエストで指定される転
送方向でデータを転送するデータステージと、データ転
送が成功したか否かを伝えるステータスステージとによ
り構成される。また、各ステージは少なくとも1以上の
トランザクションにより構成される。ここでトランザク
ションは、トークンパケット、オプショナルなデータパ
ケット、オプショナルなハンドシェークパケットにより
構成される、エンドポイントに対するサービスである。
このコントロール転送により、ペリフェラル(デバイ
ス、エンドポイント)のエニュミレーション(enumerat
ion)、コンフィギュレーション(configuration)など
が行われる。
現する1つの手法として、CPU上で動作するファーム
ウェアがコントロール転送の全てを制御、管理する手法
が考えられる。即ち、ファームウェアが、コントロール
転送を構成するセットアップステージ、データステー
ジ、ステータスステージの各ステージ(トランザクショ
ン)単位で、データ転送を制御、管理する。
くともホストによるペリフェラル(デバイス)のエニュ
メレーション時には必ず発生し、複数回のコントロール
転送(デバイスリクエスト)が行われる場合が多い。し
かも、コントロール転送はセットアップステージ、デー
タステージ、ステータスステージという複数のシーケン
シャルなステージにより構成される。従って、各ステー
ジが行われる毎にファームウェアがデータ転送を制御、
管理する上記手法では、ファームウェア(処理部)の処
理負荷が重くなってしまうという課題がある。
形態では、コントロール転送をハードウェア回路により
自動的に行う手法を採用している。この自動コントロー
ル転送手法について、以下、説明する。
図4の転送条件レジスタ部72の転送条件レジスタ(P
IPE0用レジスタ)に、コントロール転送のための転
送条件情報を設定する。具体的にはファームウェアは、
デバイスリクエストのデータや、データステージでの転
送データのトータルサイズを設定する。更に望ましく
は、データステージの有無の情報や、データステージで
の転送方向や、マックスパケットサイズなどを設定す
る。
イスリクエストの種別により、データステージの有無、
データステージでの転送方向、ステータスステージでの
転送方向は一意的に決まっており、ファームウェア(ホ
ストのソフトウェア)もそれを認識できる。また、コン
トロール転送のステージはシーケンシャルな構成となっ
ている。本実施形態では、この2つの点に着目し、ファ
ームウェアによる1回の設定(指示)だけで、ホストコ
ントローラ50が1つのコントロール転送を完結できる
ようにした。即ち、ファームウェアは、デバイスリクエ
ストのデータ(コマンド)、データステージの有無、デ
ータステージがある場合にはその転送方向、マックスパ
ケットサイズ(データペイロードサイズ)、データステ
ージでの転送データのトータルサイズを、転送条件レジ
スタ(ホストコントローラ50内に設けてもよい)に設
定し、自動コントロール転送の開始(モード)を指示す
る。すると、この設定により、ホストコントローラ50
(広義には転送コントローラ、データ転送制御装置又は
ハードウェア回路。以下の説明でも同様)が、図7に示
すようなシーケンス動作を行う。
されると、ホストコントローラ50が、セットアップス
テージのトランザクション(トークンパケット、データ
パケット、ハンドシェークパケット)を発生する。この
セットアップステージでは、まず、ホストコントローラ
50が、SETUPトークパケットを生成して、ペリフ
ェラルに送信(発行)する。次に、図6に例示されるデ
バイスリクエストのデータパケットをペリフェラルに送
信する。そして、ペリフェラルからACK(ACKnowledg
ement)のハンドシェークパケットが返ってくると、ホ
ストコントローラ50は、セットアップステージを終了
する。
リフェラルにパケットが転送されること」を表し、「P
→H」は「ペリフェラルからホストにパケットが転送さ
れること」を表す。
トコントローラ50は、データステージのトランザクシ
ョンを自動発生する。なお、「データステージ無し」が
設定されていた場合には、ステータスステージのトラン
ザクションを自動発生する。
N」が設定された場合には、ホストコントローラ50
は、INトランザクションを発生する。このINトラン
ザクションでは、ホストコントローラ50がINトーク
ンパケットをペリフェラルに送信する。そして、データ
パケットをペリフェラルから受信すると、ACKのハン
ドシェークパケットをペリフェラルに送信する。そし
て、このINトランザクションを繰り返して、ファーム
ウェアにより設定されたトータルサイズ分のデータの受
信が完了すると、データステージを終了する。
向OUT」が設定された場合には、ホストコントローラ
50は、OUTトランザクションを発生する。このOU
Tトランザクションでは、ホストコントローラ50が、
OUTトークンパケットをペリフェラルに送信し、デー
タパケットをペリフェラルに送信する。そして、ACK
のハンドシェークパケットをペリフェラルから受信す
る。そして、このOUTトランザクションを繰り返し
て、トータルサイズ分のデータをペリフェラルに送信す
ると、データステージを終了する。
ムウェアにより「データステージ無し」が設定された場
合、ホストコントローラ50が、ステータスステージを
発生する。そして、データステージがINトランザクシ
ョンであった場合には、ホストコントローラ50は、O
UTトークンパケットを送信した後、零長のデータパケ
ットをペリフェラルに送信する。そして、ACKのハン
ドシェークパケットをペリフェラルから受信すると、ホ
ストコントローラ50は、ステータスステージを終了す
る。
ションであった場合には、ホストコントローラ50は、
INトークンパケットをペリフェラルに送信する。そし
て、零長のデータパケットをペリフェラルから受信する
と、ACKのハンドシェークパケットをペリフェラルに
送信し、ステータスステージを終了する。
トロール転送時の信号波形例を示す。
ラ)からペリフェラルにデータを送信する時(書き込み
転送時)の信号波形例である。
IPE0の自動転送の開始指示を行うと、図8(A)の
C1に示すように、Pipe0TranGo(Pipe0についてのファ
ームウェアからの転送要求信号)がアクティブになる。
これにより、ホストコントローラ50による自動コント
ロール転送が開始する。そして、C2、C3、C4に示
すように、セットアップステージのSETUPトランザ
クション、データステージのOUTトランザクション、
ステータスステージのINトランザクションが発生し、
各トランザクションのパケット転送が行われる。そし
て、ステータスステージが完了すると、C5に示すよう
にCTLTranComp(ファームウェアへのコントロール転送
終了通知信号)がアクティブになり、このCTLTranComp
による割り込みにより、コントロール転送の全ステージ
の完了がファームウェアに伝えられる。
テージのトランザクションが完了すると、ファームウェ
ア(処理部)に対して割り込みが発生する。そして、フ
ァームウェアは、割り込みの要因(ステータス)を調べ
ることで、コントロール転送が完了したことを知ること
ができる。
アは、転送条件情報(デバイスリクエストデータ、トー
タルサイズ、マックスパケットサイズ等)を設定した
後、割り込み(CTLTranComp)が発生するまでは、自動
コントロール転送に関わらなくて済むようになる。これ
により、ファームウェアの処理負荷を格段に軽減でき
る。
送信などの理由で、ペリフェラル(エンドポイント)か
らストール(STALL)を受信した場合に、自動コントロ
ール転送をその時点で中断し、ファームウェアに対して
割り込みを発生するようにしている。
ス)がデータを送受信できなかった場合や、コントロー
ル転送のリクエストをペリフェラルがサポートしていな
い場合等に、ペリフェラルからホストに転送される。こ
のような場合に本実施形態によれば、ファームウェア
は、ストール返信を割り込みにより知ることができ、コ
ントロール転送を無効にすることが可能になる。
データを受信する時(読み込み転送時)の信号波形例で
ある。この場合には、C6に示すように、データステー
ジがINトランザクションになる。また、C7に示すよ
うに、ステータスステージがOUTトランザクションに
なる。
設定された時の信号波形例である。この場合には、C8
に示すように、データステージが省略される。また、C
9に示すように、ステータスステージがINトランザク
ションになる。
細な信号波形例である。D1に示すように、PipeTranGo
(ホストコントローラ50内のHCシーケンス管理回路
からの転送要求信号)がアクティブになると、トークン
パケット、デバイスリクエスト(リクエストコマンド)
のデータパケットをホストがペリフェラルに送信する。
このデバイスリクエストのデータは、ファームウェアに
より転送条件レジスタに設定される。そして、ペリフェ
ラルからハンドシェークパケット(ACK)を受信する
と、D2に示すようにTranCmpACKがアクティブになる。
これによりセットアップステージが終了する。
タステージの詳細な信号波形例である。D3に示すよう
にPipeTranGoがアクティブになると、トークンパケッ
ト、データパケットをホストがペリフェラルに送信す
る。そして、ペリフェラルからハンドシェークパケット
(ACK)を受信すると、D4に示すようにTranCmpACK
がアクティブになる。
ータサイズ=転送データのトータルサイズ−転送済みサ
イズ)が零になっていない。従って、D6に示すよう
に、PipeTranGoがアクティブになり、トークンパケッ
ト、データパケットをホストがペリフェラルに送信す
る。そしてペリフェラルからのハンドシェークパケット
(ACK)の受信後、D7に示すようにNextTotalSize
が零になっていると、データステージが完了する。
タステージの詳細な信号波形例である。この場合には図
9(B)と異なり、D8、D9に示すようにデータパケ
ットをホストがペリフェラルから受信し、D10、D1
1に示すようにホストがペリフェラルにハンドシェーク
パケット(ACK)を送信する。
ステージ無しの場合におけるステータスステージの詳細
な信号波形例である。E1に示すようにPipeTranGoがア
クティブになると、トークンパケットをホストがペリフ
ェラルに送信し、ペリフェラルから零長のデータパケッ
ト(空パケット)を受信する。そして、ホストがペリフ
ェラルにハンドシェークパケット(ACK)を送信し、
E2に示すようにTranCmpACKがアクティブになる。これ
によりステータスステージが完了する。
テータスステージの詳細な信号波形例である。この場合
には図10(A)と異なり、E3、E4に示すようにホ
ストがペリフェラルにトークンパケット、零長のデータ
パケットを送信し、E5に示すようにハンドシェークパ
ケット(ACK)をホストがペリフェラルから受信す
る。
て説明する。
(EnAutoMode)をオンにした場合のファームウェアの処
理例を示すフローチャートである。
(転送条件)情報を転送条件レジスタにセットする(ス
テップS51)。即ち、エンドポイント番号[EPNumbe
r]、ファンクションアドレス[FuncAddr]、マックス
パケットサイズ[MaxPktSize]、デバイスリクエストデ
ータ[DeviceReqData]などをセットする。そして、HC
のスケジューリング[連続実行回数:Continuity]を指
定する(ステップS52)。
する(ステップS53)。そして、データステージが無
い場合には、データステージ無し[NoDataStage=TRUE]
を設定し(ステップS54)、ステップS64に移行す
る。
イプ(バッファ)領域を既に確保しているか否かを確認
し(ステップS55)、確保している場合にはパイプ領
域のデータクリア指示[FIFOClr]を行う(ステップS
56)。
FALSE)を設定する(ステップS57)。そして、デー
タステージの転送方向[DataStageDir]を設定し、転送
データのトータルサイズ[TotalSize]をセットする(ス
テップS58、S59)。
は任意である。
[BufferPage]をセットし、パイプ領域確保の指示[Se
tAllocation]を行う(ステップS60、S61)。そ
して、DMAを用いるか否かを判断し、用いる場合には
DMAバスの接続指示[JoinDMA]を行う(ステップS
62、S63)。
[TranGo]を行う(ステップS64)。そして、割り込
みが発生するのを待ち(ステップS65)、正常完了、
STALL返答、ハンドシェーク待ちのタイムアウト処
理などを行う(ステップS66)。
のステップS51〜S64の設定を行うと、ホストコン
トローラ50(転送コントローラ)が、自動的にコント
ロール転送のセットアップステージ、データステージ、
ステータスステージを順次発生する。そして、最後のス
テータスステージが終了するとホストコントローラ50
が割り込みを発生し、これによりファームウェアがステ
ップS66の処理を行う。
ファームウェアは、図11のステップS51〜S64の
設定を行った後、割り込みが発生するまでの期間を、他
の処理に使用できるようになる。これにより、ファーム
ウェアの処理の効率化を図れる。
ード(EnAutoMode)をオフにした場合のファームウェア
の処理のフローチャートを示す。自動コントロール転送
モードをオフにした場合には、ファームウェアは、セッ
トアップステージ、データステージ、ステータスステー
ジの全てのステージで、図12のステップS71〜S8
3の処理を行う必要がある。従って、1つのコントロー
ル転送において、図12のステップS71〜S83の処
理を3回分(データステージが無い場合は2回分)行わ
なければならない。このため、ファームウェアの処理負
荷が非常に重くなるという問題が生じる。
送モード(EnAutoMode)をオンにすることで、このよう
な問題を解消できる。
有無の情報、データステージでの転送方向等を、ファー
ムウェアが転送条件レジスタに設定しているが、デバイ
スリクエストのコマンドを、デコーダ回路によりデコー
ドすることで、これらの情報を得るようにしてもよい。
この場合には、図11のステップS54、S57、S5
8の設定(データステージ有無、転送方向の設定)等は
不要になる。
示す。この回路は、図18(A)に示すホストコントロ
ーラ50のターゲットパイプ管理回路54内に設けられ
る。
となるパイプの情報を管理する回路である。このパイプ
情報管理回路240は、図18(A)のHCシーケンス
管理回路52からターゲットとなるパイプが指示された
場合に、レジスタ部70の転送条件レジスタから、対応
するパイプの情報を選択して、トランザクション管理回
路56やパケットハンドラ回路58に渡す処理などを行
う。
は、図7で説明した自動コントロール転送のシーケンス
を管理する回路である。この自動コントロール転送シー
ケンサ200は、パイプ情報をトランザクション管理回
路56やパケットハンドラ回路58に渡す前に、このパ
イプ情報に、自動コントロール転送用の情報(自動コン
トロール転送の各ステージで必要になる情報)を付加す
る処理などを行う。
は、自動コントロール転送判断回路202と、セットア
ップステージモニタ回路204と、データステージ選択
回路210と、データステージモニタ回路220と、ス
テータスステージモニタ回路230を含む。なお、自動
コントロール転送シーケンサ200はこれらの全ての回
路ブロックを含む必要はなく、その一部を省略してもよ
い。
自動コントロール転送モード(EnAutoMode)の信号とタ
ーゲットパイプ番号を受け、そのパイプについて自動コ
ントロール転送を行うか否かを判断する。例えば、自動
コントロール転送モード信号がアクティブ(オート)に
なり、ターゲットパイプがコントロール転送用のPIP
E0であった場合には、自動コントロール転送を行うと
判断し、自動コントロール転送イネーブル信号をアクテ
ィブにする。これにより自動コントロール転送の開始が
指示される。
は、自動コントロール転送の開始が指示された場合に、
セットアップステージのトランザクションの開始を指示
する回路である。
04は、自動コントロール転送イネーブル信号がアクテ
ィブになると、セットアップステージイネーブル信号を
アクティブにして、そのパイプ(PIPE0)について
のセットアップステージのトランザクションの開始を指
示する。そして、セットアップステージが完了すると、
セットアップステージ完了信号をアクティブにする。
ステージでの転送方向(DataStageDir)とデータステー
ジの有無の情報(NoDataStage)に基づいて、データス
テージのINトランザクションの実行、データステージ
のOUTトランザクションの実行、或いは「データステ
ージ無し」のいずれかを選択する回路である。
送方向が「IN」であり、「データステージ有り」の場
合には、INデータ・スタートトリガをアクティブにし
て、INトランザクションの実行を選択する。また、転
送方向が「OUT」であり、「データステージ有り」の
場合には、OUTデータ・スタートトリガをアクティブ
にして、OUTトランザクションの実行を選択する。一
方、「データステージ無し」の場合は、ステータス・ス
タートトリガをアクティブにして、データステージをバ
イパスする。
タステージのINトランザクションが選択された場合に
は、INトランザクションの開始を指示し、データステ
ージのOUTトランザクションが選択された場合には、
OUTトランザクションの開始を指示する回路である。
このデータステージモニタ回路220は、INデータス
テージモニタ回路222とOUTデータステージモニタ
回路224を含む。
22は、INデータ・スタートトリガがアクティブにな
ると、INデータステージイネーブル信号をアクティブ
にして、INトランザクションの開始を指示する。そし
て、データステージが完了すると、OUTステータス・
スタートトリガをアクティブにする。
24は、OUTデータ・スタートトリガがアクティブに
なると、OUTデータステージイネーブル信号をアクテ
ィブにして、OUTトランザクションの開始を指示す
る。そして、データステージが完了すると、INステー
タス・スタートトリガをアクティブにする。
データステージのINトランザクションが完了した場合
には、ステータスステージのOUTトランザクションの
開始を指示し、データステージのOUTトランザクショ
ンが完了した場合、或いは「データステージ無し」が選
択された場合には、ステータスステージのINトランザ
クションの開始を指示する回路である。このステータス
ステージモニタ回路230は、OUTステータスステー
ジモニタ回路232とINステータスステージモニタ回
路234を含む。
回路232は、OUTステータス・スタートトリガがア
クティブになると、OUTステータスステージイネーブ
ル信号をアクティブにして、ステータスステージのOU
Tトランザクションの開始を指示する。
234は、INステータス・スタートトリガがアクティ
ブになると、INステータスステージイネーブル信号を
アクティブにして、ステータスステージのINトランザ
クションの開始を指示する。
とで、セットアップステージ、データステージ、ステー
タスステージの一連のトランザクションを、ファームウ
ェアの介在無しに、自動的に発生できるようになる。
は、パイプ領域PIPE0〜PIPEeとエンドポイン
トとの間で行われるデータ転送の転送条件情報(転送方
向、転送種別、マックスパケットサイズ又はページ数
等)が、転送条件レジスタTREG0〜TREGeに設
定される。即ち、PIPE0、PIPEa、PIPE
b、PIPEc、PIPEd、PIPEeの転送条件情
報は、各々、TREG0、TREGa、TREGb、T
REGc、TREGd、TREGeに設定(記憶)され
る。この設定は、例えばファームウェア(CPU)によ
り行われる。
転送コントローラ)は、転送条件レジスタTREG0〜
TREGeに設定された転送条件情報に基づいて、エン
ドポイントに対するトランザクションを発生する。そし
て、パイプ領域とそれに対応するエンドポイントとの間
で、データ(パケット)を自動転送する。
(バッファ領域)に対応して各転送条件レジスタが設け
られ、この各転送条件レジスタに設定された転送条件情
報に基づいて、各パイプ領域のパイプ転送(所与のデー
タ単位の転送)がホストコントローラ50により自動的
に行われる。従って、ファームウェア(ドライバ、ソフ
トウェア)は、転送条件レジスタに転送条件情報を設定
した後は、データ転送が完了するまで、データ転送制御
に関わらなくて済むようになる。そして、所与のデータ
単位のパイプ転送が完了すると割り込みが発生し、転送
の完了がファームウェアに伝えられる。これにより、フ
ァームウェア(CPU)の処理負荷を格段に低減でき
る。
ンドポイント0(コントロール転送のエンドポイント)
に専用のパイプ領域に設定され、PIPEa〜PIPE
eは、任意のエンドポイントに割り当て可能なパイプ領
域に設定される。この場合に本実施形態では、PIPE
0(コントロール転送のパイプ領域)に対応する転送条
件レジスタTREG0に設定された転送条件情報に基づ
いて、図7で説明したようにコントロール転送のトラン
ザクションを自動発生する。そして、PIPE0とエン
ドポイント0との間で、データを自動転送する。
ペリフェラル動作時には、エンドポイント領域EP0〜
EPeとホストとの間で行われるデータ転送の転送条件
情報(転送方向、転送種別、マックスパケットサイズ又
はページ数等)が、転送条件レジスタTREG0〜TR
EGeに設定される。そしてペリフェラルコントローラ
60(広義には転送コントローラ)は、転送条件レジス
タTREG0〜TREGeに設定された転送条件情報に
基づいて、エンドポイント領域とホストとの間でのデー
タ転送を行う。
スタTREG0〜TREGeが、ホスト動作時とペリフ
ェラル動作時とで共用(兼用)される。これにより、レ
ジスタ部70のリソースを節約でき、データ転送制御装
置を小規模化できる。
例を示す。なお、レジスタ部70のレジスタの一部を、
各ブロック(OTGC、HC、PC、Xcvr等)内に
含ませてもよい。
送条件レジスタ(TREG0〜TREGeの各々)は、
ホスト動作時(HC、PIPE)とペリフェラル動作時
(PC、EP)で共用されるHC/PC共用レジスタ
(共用転送条件レジスタ)を含む。また、ホスト動作時
にのみ使用されるHC(PIPE)用レジスタ(ホスト
用転送条件レジスタ)を含む。また、ペリフェラル動作
時にのみ使用されるPC(EP)用レジスタ(ペリフェ
ラル用転送条件レジスタ)を含む。また、パケットバッ
ファ(FIFO)のアクセス制御などを行うためのレジ
スタであり、ホスト動作時とペリフェラル動作時で共用
されるアクセス制御レジスタを含む。
ト動作時に、ホストコントローラ50(HC)は、HC
/PC共用レジスタとHC用レジスタに設定される転送
条件情報に基づいて、データ(パケット)を転送する。
ラルコントローラ60(PC)は、HC/PC共用レジ
スタとPC用レジスタに設定される転送条件情報に基づ
いて、データ(パケット)を転送する。
の両方において、バッファコントローラ80は、共用ア
クセス制御レジスタに基づいて、パケットバッファ10
0へのアクセス制御(リード/ライト・アドレスの発
生、データのリード/ライト、アクセスの調停等)を行
うことになる。
ータの転送方向(IN、OUT又はSETUP等)、転
送種別(アイソクロナス、バルク、インタラプト、コン
トロールなどのトランザクションの種別)、エンドポイ
ント番号(各USBデバイスのエンドポイントに関連づ
けられる番号)、マックスパケットサイズ(エンドポイ
ントが送信又は受信可能なパケットの最大ペイロードサ
イズ。ページサイズ)が設定される。また、バッファ領
域(パイプ領域、エンドポイント領域)のページ数(バ
ッファ領域の面数)が設定される。また、DMA接続の
有無(DMAハンドラ回路112によるDMA転送の使
用の有無)を指示する情報が設定される。
ラプト転送のトークン発行周期(インタラプト・トラン
ザクションを起動する周期、インターバル)が設定され
る。また、トランザクションの連続実行回数(パイプ領
域間の転送比率を設定する情報。各パイプ領域のトラン
ザクションの連続実行回数)が設定される。また、ファ
ンクションアドレス(エンドポイントを有するファンク
ションのUSBアドレス)、転送データのトータルサイ
ズ(各パイプ領域を介して転送されるデータのトータル
サイズ。IRPなどのデータ単位)が設定される。ま
た、自動トランザクションの開始指示(ホストコントロ
ーラに対する自動トランザクション処理の開始指示)が
設定される。また、自動コントロール転送モードの指示
(コントロール転送のセットアップステージ、データス
テージ、ステータスステージのトランザクションを自動
発生するモードの指示)が設定される。
ントイネーブル(エンドポイントのイネーブルやディス
エーブルの指示)、ハンドシェーク指定(各トランザク
ションで行われるハンドシェークの指定)が設定され
る。
クセス制御レジスタには、バッファ・I/Oポート(C
PUによりPIO転送を行う場合のI/Oポート)が設
定される。また、バッファ・フル/エンプティ(各バッ
ファ領域のフル、エンプティの通知)、バッファ・残り
データサイズ(各バッファ領域の残りデータサイズ)が
設定される。
タ、ブロック系レジスタ、DMA制御レジスタなども含
む。
テータス(要因)をCPUに対して示すためのインタラ
プト・ステータスレジスタ、割り込みのイネーブル、デ
ィスエーブル(非マスク、マスク)を設定するインタラ
プト・イネーブルレジスタを含む。なお、割り込みに
は、OTGコントローラ20系、ホストコントローラ5
0系、ペリフェラルコントローラ60系の割り込みがあ
る。
されるブロック間共用レジスタや、各ブロック(Xcv
r、OTGC、HC、PC)内で使用されるブロック用
レジスタを含む。
のリセットを指示するレジスタなどがある。ブロック用
レジスタには、トランシーバ10(Xcvr)を制御す
るためのレジスタや、OTGコントローラ20(OTG
C)のステートコマンドレジスタや、ホストコントロー
ラ50(HC)のステートコマンドレジスタや、フレー
ム番号を設定するレジスタなどがある。
時とペリフェラル動作時で共用されるレジスタ(HC/
PC共用レジスタ、共用アクセス制御レジスタ)をレジ
スタ部70に設けている。これにより、ホスト動作時用
のレジスタとペリフェラル動作時用のレジスタを全く別
個に設ける場合に比べて、レジスタ部70を小規模化で
きる。また、CPU上で動作するファームウェア(ドラ
イバ)から見た共用レジスタのアクセスアドレスを、ホ
スト動作時とペリフェラル動作時とで同一にできる。従
って、ファームウェアは、これらの共用レジスタを同一
アドレスで管理できるようになり、ファームウェア処理
を簡素化できる。
を設けることで、ホスト動作時(PIPE)の転送やペ
リフェラル動作時(EP)の転送に特有の転送条件を設
定できる。例えば、トークン発行周期を設定すること
で、ホスト動作時にインタラプト転送のトークンを所望
の周期で発行することが可能になる。また、連続実行回
数を設定することで、ホスト動作時にパイプ領域間の転
送比率を任意に設定できる。また、トータルサイズを設
定することで、ホスト動作時にパイプ領域を介して自動
転送されるデータのサイズを任意に設定できる。またフ
ァームウェアは、ホスト動作時に、自動トランザクショ
ンの開始を指示したり、自動コントロール転送モードの
オン/オフを指示できるようになる。
タ部22を含む。このOTGレジスタ部22は、OTG
コントローラ20のモニタレジスタや制御レジスタを含
む。またファームウェア(CPU)により書き込まれる
OTGステートコマンドをデコードする回路を含む。
回路23を含む。そして、このOTG制御回路23は、
OTGステートの管理を行うOTG管理回路24、ID
ピンの電圧レベルを検出するID検出回路25、VBU
Sの電圧レベルを検出するVBUS検出回路26、DP
及びDMのラインステートを検出するラインステート検
出回路27を含む。
テートの遷移判断条件の1つである時間を計測するタイ
マ28を含む。
べき情報は、ID、VBUSの電圧レベル、DP/DM
のラインステートである。本実施形態のOTGコントロ
ーラ20は、これらの情報を検出し、モニタレジスタを
介してファームウェア(CPU)に伝える。
づいて自身のステートを遷移させると共に、次に遷移す
べきステートを、OTGステートコマンドを用いてOT
Gコントローラ20に伝える。
トコマンドをデコードし、そのデコード結果に基づい
て、VBUSのドライブ制御、プルアップ/プルダウン
抵抗の接続制御等を行い、図2(A)、(B)で説明し
たSRPやHNPを実現する。
OTG制御はOTGコントローラ20が担当し、ファー
ムウェアはステートの遷移管理に専念できる。この結
果、全てのステート制御をファームウェアで実現する場
合に比べて、ファームウェア(CPU)の処理負荷を軽
減できると共に、効率的なファームウェア開発が可能に
なる。
ァームウェアが行わずに、ハードウェア回路が行うよう
にしてもよい。或いは、OTGコントローラ20のほと
んど全ての処理(例えばVBUS制御、プルアップ/プ
ルダウン抵抗制御、ID検出、VBUS検出、ラインス
テート検出以外の処理)をファームウェア(ソフトウェ
ア)により実現してもよい。
ルコントローラ 図18(A)に、ホストコントローラ50の構成例を示
す。
管理回路52を含む。このHCシーケンス管理回路52
は、パイプ転送(パイプ領域を用いたデータ転送)の調
停、時間管理、パイプ転送のスケジューリング、再送管
理などを行う。
2は、フレーム番号のカウントや、SOF(Start-Of-F
rame)パケットの送信指示を行う。また、アイソクロナ
ス転送を各フレームの先頭で優先的に実行するための処
理を行ったり、インタラプト転送をアイソクロナス転送
の次に優先的に取り扱うための処理を行う。また、パイ
プ転送の順序に従って各パイプ転送を指示する処理を行
う。また、トランザクションの連続実行回数を管理した
り、残りフレーム時間の確認処理を行う。また、ペリフ
ェラルから返ってきたハンドシェークパケット(AC
K、NAK)に対する処理を行う。また、トランザクシ
ョン実行時のエラー処理を行う。
プ管理回路54を含む。このターゲットパイプ管理回路
54は、レジスタ部70の転送条件レジスタに設定され
た転送条件情報のハンドリング処理などを行う。
54は、転送条件情報の選択処理や、割り込み信号の生
成処理を行う。また自動トランザクションの開始が指示
された場合に、そのパイプ領域の転送データのトータル
サイズをロードする。そして、残り転送データサイズの
カウント(デクリメント)処理を行う。また、バッファ
コントローラ80へのデータの送受信の際にバッファ
(FIFO)領域の状態を確認する処理を行う。また、
トランザクション管理回路56への転送指示を行う。ま
た、予期しないショートパケットの受信の判断処理や、
マックスパケットサイズ以上のパケットの受信の判断処
理を行う。また、零長パケットを自動転送するモードが
設定されている場合には、最後の零長パケットの送信を
トランザクション管理回路56に指示する。また、自動
コントロール転送モードでのシーケンス管理を行う。
ン管理回路56を含む。このトランザクション管理回路
56は、転送パケットの種類や転送順序の管理(トラン
ザクションのシーケンス管理)を行う。また、タイムア
ウトの監視処理を行う。また、トランザクション終了の
通知処理を行う。
ラ回路58を含む。このパケットハンドラ回路58は、
パケットの生成、分解処理を行う。また、PIDのチェ
ックやCRCのデコード、エンコードを行う。また、バ
ッファ領域のパケットのペイロードのリード、ライト処
理や、SOFパケットの送信処理を行う。また、送受信
データのカウント処理を行う。
60の構成例を示す。
ザクション管理回路62、パケットハンドラ回路64を
含む。これらのトランザクション管理回路62、パケッ
トハンドラ回路64は、ホストコントローラ50のトラ
ンザクション管理回路56、パケットハンドラ回路58
とほぼ同様の処理を行う。
location)回路82を含む。この領域確保回路82は、
パケットバッファ100に、バッファ領域(ホスト動作
時にパイプ領域に設定され、ペリフェラル動作時にエン
ドポイント領域に設定される領域)を確保する回路であ
る。
む。この領域計算回路83は、マックスパケットサイズ
(広義にはページサイズ)やページ数に基づいて、バッ
ファ領域の領域サイズ、スタートアドレス、エンドアド
レスなどを計算する回路である。
IPE0/EP0、PIPEa/EPa、PIPEb/
EPb、PIPEc/EPcでは、マックスパケットサ
イズ(MaxPktSize)が、各々、32、64、64、64
バイトに設定され、ページ数(BufferPage)が、各々、
1、1、3、2ページに設定されている。領域計算回路
83は、これらのマックスパケットサイズ、ページ数な
どに基づいて、バッファ領域PIPE0/EP0〜PI
PEc/EPcの領域サイズ、スタートアドレス、エン
ドアドレスを計算する。例えば図20(A)において、
PIPE0/EP0、PIPEa/EPa、PIPEb
/EPb、PIPEc/EPcの領域サイズは、各々、
32(=32×1)、64(=64×1)、192(=
64×3)、128(=64×2)バイトと計算される
ことになる。
領域の書き込みポインタWP(WP0、WPa、WP
b、WPc)、読み出しポインタRP(RP0、RP
a、RPb、RPc)を、DMA用ポインタ、CPU用
ポインタ、USB用ポインタに割り当てる回路である。
送信時(DMA又はCPUからパケットバッファ100
を介してUSB側にデータが転送される時)であり、且
つ、DMA転送使用時には、そのバッファ領域の書き込
みポインタWPはDMA(DMAアクセス)用のポイン
タに割り当てられ、読み出しポインタRPはUSB(U
SBアクセス)用のポインタに割り当てられる。また、
データ送信時であり且つCPU(PIO)転送使用時に
は、そのバッファ領域の書き込みポインタWPはCPU
(CPUアクセス)用のポインタに割り当てられ、読み
出しポインタRPはUSB用のポインタに割り当てられ
る。
受信時(USBからパケットバッファ100を介してD
MA又はCPU側にデータが転送される時)であり、且
つ、DMA転送使用時には、そのバッファ領域の書き込
みポインタWPはUSB用ポインタに割り当てられ、読
み出しポインタRPはDMA用ポインタに割り当てられ
る。また、データ受信時であり且つCPU転送使用時に
は、そのバッファ領域の書き込みポインタWPはUSB
用ポインタに割り当てられ、読み出しポインタRPはC
PU用ポインタに割り当てられる。
WP、読み出しポインタRPのポインタ情報(位置情
報)は、レジスタ部70の各転送条件レジスタ(PIP
E/EPレジスタ)に保持される。
を行いながら、パケットバッファ100にアクセスする
ための実アドレスを生成する回路である。
ス生成回路87、DMA用アドレス生成回路88、US
B用アドレス生成回路89を含む。これらの生成回路8
7、88、89は、各々、ポインタ割り当て回路84に
より割り当てられたCPU用ポインタ、DMA用ポイン
タ、USB用ポインタに基づいて、CPU用アドレス、
DMA用アドレス、USB用アドレスを生成する。ま
た、CPU(CPUインターフェース回路)、DMA
(DMAハンドラ回路)からのアクセス毎に、或いはU
SB(HC又はPC)のトランザクション終了(AC
K、NAKなどのハンドシェーク送受信)毎に、ポイン
タを更新する処理を行う。なお、更新後のポインタの情
報は、領域確保回路82を介してレジスタ部70の各転
送条件レジスタに書き戻される。
ァ100へのアクセスを管理する回路である。
フェース回路92を含む。このバッファインターフェー
ス回路92は、ポインタ管理回路86からのCPU用ア
ドレス、DMA用アドレス、USB用アドレスなどを受
け、パケットバッファ100へのデータの入出力や、ア
ドレス、出力イネーブル、ライトイネーブル、リードイ
ネーブルなどの出力を行う。
む。この調停回路93は、CPU(CPUインターフェ
ース回路)、DMA(DMAハンドラ回路)、USB
(ホストコントローラ又はペリフェラルコントローラ)
からのアクセスを調停する回路である。この調停結果に
基づいて、CPU用アドレス、DMA用アドレス、US
B用アドレスのいずれかが、パケットバッファ100の
アクセス・アドレスとして出力され、CPU、DMA又
はUSBとパケットバッファ100との間のデータ転送
経路が設定される。
回路90(バッファコントローラ80)とホストコント
ローラ50(HC)又はペリフェラルコントローラ60
(PC)との間の接続の切り替え制御を行う。例えばホ
スト動作時には、ホストコントローラ50とバッファ管
理回路90を接続し、ペリフェラル動作時には、ペリフ
ェラルコントローラ60とバッファ管理回路90を接続
する。なお、この接続の切り替え制御は、OTGコント
ローラ20(OTGC)からのHC/PCイネーブル信
号に基づいて行う。
の例について説明する。
るプリンタの内部ブロック図を示し、図22(A)にそ
の外観図を示す。CPU510(処理部)はシステム全
体の制御などを行う。操作部511はプリンタをユーザ
が操作するためのものである。ROM516には、制御
プログラム、フォントなどが格納され、RAM517
(システムメモリ)はCPU510のワーク領域として
機能する。DMAC518は、CPU510を介さずに
データ転送を行うためのDMAコントローラである。表
示パネル519はプリンタの動作状態をユーザに知らせ
るためのものである。
デジタルカメラ、デジタルビデオカメラなどの他の機器
から送られてきたシリアルの印刷データ(印字データ、
画像データ)は、データ転送制御装置500によりパラ
レルの印刷データに変換される。そして、変換後のパラ
レル印刷データは、CPU510又はDMAC518に
より、印刷処理部(プリンタエンジン)512に送られ
る。そして、印刷処理部512においてパラレル印刷デ
ータに対して所与の処理が施され、プリントヘッダなど
からなる印刷部(データの出力処理を行う装置)514
により紙に印刷されて出力される。
タルカメラの内部ブロック図を示し、図22(B)にそ
の外観図を示す。CPU520はシステム全体の制御な
どを行う。操作部521(シャッターボタン、操作ボタ
ン等)はデジタルカメラをユーザが操作するためのもの
である。ROM526には制御プログラムなどが格納さ
れ、RAM527はCPU520のワーク領域として機
能する。DMAC528はDMAコントローラである。
タの取り込み処理を行う装置)522により画像が撮像
され、撮像された画像のデータは画像処理部524によ
り処理される。そして、処理後の画像データは、CPU
520又はDMAC528によりデータ転送制御装置5
00に送られる。データ転送制御装置500は、このパ
ラレルの画像データをシリアルデータに変換し、USB
を介してプリンタ、ストレージ装置、パーソナルコンピ
ュータなどの他の機器に送信する。
−RWドライブ(ストレージ装置)の内部ブロック図を
示し、図22(C)にその外観図を示す。CPU530
はシステム全体の制御などを行う。操作部531はCD
−RWをユーザが操作するためのものである。ROM5
36には制御プログラムなどが格納され、RAM537
はCPU530のワーク領域として機能する。DMAC
538はDMAコントローラである。
取り&書き込み部(データの取り込み処理を行う装置又
はデータの記憶処理を行うための装置)533によりC
D−RW532から読み取られたデータは、信号処理部
534に入力され、エラー訂正処理などの所与の信号処
理が施される。そして、信号処理が施されたデータが、
CPU530又はDMAC538によりデータ転送制御
装置500に送られる。データ転送制御装置500は、
このパラレルのデータをシリアルデータに変換し、US
Bを介して他の機器に送信する。
てきたシリアルのデータは、データ転送制御装置500
によりパラレルのデータに変換される。そして、このパ
ラレルデータは、CPU530又はDMAC538によ
り信号処理部534に送られる。そして、信号処理部5
34においてこのパラレルデータに対して所与の信号処
理が施され、読み取り&書き込み部533によりCD−
RW532に記憶される。
いて、CPU510、520、530の他に、データ転
送制御装置500でのデータ転送制御のためのCPUを
別に設けるようにしてもよい。
器に用いれば、OTG機能を有する電子機器を実現でき
る。即ち、電子機器にホストとしての役割を持たせた
り、デバイスとしての役割を持たせることが可能にな
り、これまでに存在しなかったアプリケーションを創出
できる。
子機器に用いれば、電子機器に組み込まれるCPU(処
理部)の処理負荷が軽減され、安価なCPUを用いるこ
とが可能になる。また、CPUが、データ転送制御処理
以外の他の処理を余裕を持って行うことが可能になり、
電子機器の性能向上や低コスト化を図れる。また、CP
U上で動作するファームウェアのプログラムを簡素化で
き、電子機器の開発期間の短縮化を図れる。
用できる電子機器としては、上記以外にも例えば、種々
の光ディスクドライブ(CD−ROM、DVD)、光磁
気ディスクドライブ(MO)、ハードディスクドライ
ブ、デジタルビデオカメラ、携帯電話、スキャナ、T
V、VTR、オーディオ機器、電話機、プロジェクタ、
パーソナルコンピュータ、電子手帳、或いはワードプロ
セッサなど種々のものを考えることができる。
本発明の要旨の範囲内で種々の変形実施が可能である。
成は、図4等で説明した構成に限定されるものではな
く、種々の変形実施が可能である。
路の構成も図13に示す構成に限定されない。
(HC、PC、OTGC等)の構成も、本実施形態で説
明したものに限定されず、種々の変形実施が可能であ
る。
条件情報も、本実施形態で説明した情報に限定されるも
のではない。
(ステートコントローラ、処理部、転送コントローラ、
バス、転送比率情報、バッファ領域、ページサイズ等)
として引用された用語(OTGコントローラ、CPU・
ファームウェア、ホストコントローラ・ペリフェラルコ
ントローラ、USB、連続実行回数、パイプ領域・エン
ドポイント領域、マックスパケットサイズ等)は、明細
書中の他の記載においても広義な用語に置き換えること
ができる。
においては、従属先の請求項の構成要件の一部を省略す
る構成とすることもできる。また、本発明の1の独立請
求項に係る発明の要部を、他の独立請求項に従属させる
こともできる。
への適用例を説明したが、本発明が適用されるのはOT
G規格に限定されない。例えばOTG規格と同様の思想
に基づく規格やOTG規格を発展させた規格におけるデ
ータ転送にも本発明は適用できる。
G規格について説明するための図である。
について説明するための図である。
のディスクリプタなどについて説明するための図であ
る。
す図である。
イント領域について説明するための図である。
である。
て説明するための図である。
ール転送時の信号波形例を示す図である。
ステージ、データステージでの信号波形例を示す図であ
る。
ジでの信号波形例を示す図である。
のファームウェアの処理例を示すフローチャートであ
る。
のファームウェアの処理例を示すフローチャートであ
る。
ある。
て説明するための図である。
について説明するための図である。
る。
である。
ラ、ペリフェラルコントローラの詳細な構成例を示す図
である。
図である。
手法やポインタ割り当て手法について説明するための図
である。
子機器の内部ブロック図の例である。
子機器の外観図の例である。
領域 TREG0〜TREGe 転送条件レジスタ(共用レジ
スタ) 10 トランシーバ 12 物理層回路 20 OTGコントローラ(ステートコントローラ) 30 HC/PC切り替え回路 32 HC/PCセレクタ 34 ラインステートコントローラ 40 転送コントローラ 50 ホストコントローラ 60 ペリフェラルコントローラ 70 レジスタ部 72 転送条件レジスタ部(共用レジスタ) 80 バッファコントローラ 100 パケットバッファ(FIFO、RAM) 110 インターフェース回路 112 DMAハンドラ回路 114 CPUインターフェース回路 120 クロックコントローラ
Claims (12)
- 【請求項1】 バスを介したデータ転送のためのデータ
転送制御装置であって、 転送条件情報が設定される転送条件レジスタと、 転送条件レジスタに設定される転送条件情報に基づい
て、コントロール転送を含むデータ転送を行う転送コン
トローラと、 転送データを記憶するパケットバッファのアクセス制御
を行うバッファコントローラとを含み、 前記転送コントローラが、 自動コントロール転送の開始が指示された場合に、セッ
トアップステージのトランザクションを自動発生してセ
ットアップステージのパケットを自動転送し、次に、転
送すべきデータが存在する場合にはデータステージのト
ランザクションを自動発生してデータステージのパケッ
トを自動転送し、次に、ステータスステージのトランザ
クションを自動発生してステータスステージのパケット
を自動転送することを特徴とするデータ転送制御装置。 - 【請求項2】 請求項1において、 前記転送条件レジスタに、 デバイスリクエストのデータと、データステージでの転
送データのトータルサイズが、転送条件情報として設定
されることを特徴とするデータ転送制御装置。 - 【請求項3】 請求項1又は2において、 前記転送条件レジスタに、 データステージの有無の情報と、データステージでの転
送方向と、マックスパケットサイズが、転送条件情報と
して設定されることを特徴とするデータ転送制御装置。 - 【請求項4】 請求項1乃至3のいずれかにおいて、 前記転送コントローラが、 ステータスステージのトランザクションが完了した場合
に、処理部に対して割り込みを発生することを特徴とす
るデータ転送制御装置。 - 【請求項5】 請求項1乃至4のいずれかにおいて、 前記転送コントローラが、 エンドポイントからストールを受信した場合に、自動コ
ントロール転送を中止し、処理部に対して割り込みを発
生することを特徴とするデータ転送制御装置。 - 【請求項6】 請求項1乃至5のいずれかにおいて、 前記転送コントローラが、 自動コントロール転送の開始が指示された場合に、セッ
トアップステージのトランザクションの開始を指示する
回路と、 開始したセットアップステージのトランザクションが完
了した場合に、データステージでの転送方向とデータス
テージの有無の情報に基づいて、データステージのIN
トランザクションの実行、データステージのOUTトラ
ンザクションの実行、或いはデータステージ無しのいず
れかを選択する回路と、 データステージのINトランザクションの実行が選択さ
れた場合には、データステージのINトランザクション
の開始を指示し、データステージのOUTトランザクシ
ョンの実行が選択された場合には、データステージのO
UTトランザクションの開始を指示する回路と、 開始したデータステージのINトランザクションが完了
した場合には、ステータスステージのOUTトランザク
ションの開始を指示し、開始したデータステージのOU
Tトランザクションが完了した場合、或いはデータステ
ージ無しが選択された場合には、ステータスステージの
INトランザクションの開始を指示する回路とを含むこ
とを特徴とするデータ転送制御装置。 - 【請求項7】 請求項1乃至6のいずれかにおいて、 前記パケットバッファに、 各エンドポイントとの間で転送されるデータが各パイプ
領域に記憶される複数のパイプ領域が確保され、 各パイプ領域と各エンドポイントとの間でのデータ転送
の転送条件情報が、複数の転送条件レジスタの各転送条
件レジスタに設定され、 前記転送コントローラが、 コントロール転送のパイプ領域に対応する転送条件レジ
スタに設定された転送条件情報に基づいて、コントロー
ル転送のトランザクションを自動発生し、コントロール
転送のパイプ領域とコントロール転送のエンドポイント
との間で、自動コントロール転送を行うことを特徴とす
るデータ転送制御装置。 - 【請求項8】 請求項7において、 前記パイプ領域が、 コントロール転送のエンドポイントに専用のパイプ領域
と、任意のエンドポイントに割り当て可能な汎用のパイ
プ領域を含み、 前記転送コントローラが、 前記専用のパイプ領域を用いて、自動コントロール転送
を行うことを特徴とするデータ転送制御装置。 - 【請求項9】 請求項1乃至8のいずれかにおいて、 ホストの役割として動作するホスト動作のステートと、
ペリフェラルの役割として動作するペリフェラル動作の
ステートを含む複数のステートの制御を行うステートコ
ントローラを含み、 前記転送コントローラが、 ホスト動作時において、ホストとしてのデータ転送を行
うホストコントローラと、 ペリフェラル動作時において、ペリフェラルとしてのデ
ータ転送を行うペリフェラルコントローラとを含み、 前記ホストコントローラが、 ホスト動作時に自動コントロール転送を行うことを特徴
とするデータ転送制御装置。 - 【請求項10】 請求項1乃至9のいずれかにおいて、 USB(Universal Serial Bus)のOTG(On−Th
e−Go)規格に準拠したデータ転送を行うことを特徴
とするデータ転送制御装置。 - 【請求項11】 請求項1乃至10のいずれかのデータ
転送制御装置と、 前記データ転送制御装置及びバスを介して転送されるデ
ータの出力処理又は取り込み処理又は記憶処理を行う装
置と、 前記データ転送制御装置のデータ転送を制御する処理部
と、 を含むことを特徴とする電子機器。 - 【請求項12】 バスを介したデータ転送のためのデー
タ転送制御方法であって、 転送条件レジスタに転送条件情報を設定し、 転送条件レジスタに設定される転送条件情報に基づい
て、コントロール転送を含むデータ転送を行い、 転送データを記憶するパケットバッファのアクセス制御
を行うと共に、 自動コントロール転送の開始が指示された場合に、セッ
トアップステージのトランザクションを自動発生してセ
ットアップステージのパケットを自動転送し、次に、転
送すべきデータが存在する場合にはデータステージのト
ランザクションを自動発生してデータステージのパケッ
トを自動転送し、次に、ステータスステージのトランザ
クションを自動発生してステータスステージのパケット
を自動転送することを特徴とするデータ転送制御方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002126708A JP3636160B2 (ja) | 2002-04-26 | 2002-04-26 | データ転送制御装置、電子機器及びデータ転送制御方法 |
US10/377,765 US7428600B2 (en) | 2002-04-26 | 2003-03-04 | Data transfer control device, electronic equipment, and data transfer control method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002126708A JP3636160B2 (ja) | 2002-04-26 | 2002-04-26 | データ転送制御装置、電子機器及びデータ転送制御方法 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003040091A Division JP2003323391A (ja) | 2003-02-18 | 2003-02-18 | データ転送制御装置、電子機器及びデータ転送制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003316728A true JP2003316728A (ja) | 2003-11-07 |
JP3636160B2 JP3636160B2 (ja) | 2005-04-06 |
Family
ID=29541046
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002126708A Expired - Fee Related JP3636160B2 (ja) | 2002-04-26 | 2002-04-26 | データ転送制御装置、電子機器及びデータ転送制御方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7428600B2 (ja) |
JP (1) | JP3636160B2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008205927A (ja) * | 2007-02-21 | 2008-09-04 | Canon Inc | 電子機器 |
CN113971151A (zh) * | 2021-10-28 | 2022-01-25 | 上海兆芯集成电路有限公司 | 串行传输控制器及其数据传输方法 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004310672A (ja) * | 2003-04-10 | 2004-11-04 | Seiko Epson Corp | データ入力装置および画像出力システム |
JP3649226B2 (ja) * | 2003-05-20 | 2005-05-18 | セイコーエプソン株式会社 | データ転送制御装置、電子機器及びデータ転送制御方法 |
US7631097B2 (en) * | 2005-07-21 | 2009-12-08 | National Instruments Corporation | Method and apparatus for optimizing the responsiveness and throughput of a system performing packetized data transfers using a transfer count mark |
FR2913155B1 (fr) * | 2007-02-26 | 2009-04-24 | Sagem Defense Securite | Dispositif de connexion selective permettant la connexion d'au moins un peripherique a un ordinateur cible et systeme de controle selectif comportant un tel dispositif |
WO2009088687A2 (en) * | 2007-12-31 | 2009-07-16 | Datalogic Mobile, Inc. | Systems and methods for configuring, updating, and booting an alternate operating system on a portable data reader |
JP2011065630A (ja) * | 2009-08-20 | 2011-03-31 | Renesas Electronics Corp | データ転送制御装置及びデータ転送制御方法 |
JP5456434B2 (ja) * | 2009-10-22 | 2014-03-26 | ルネサスエレクトロニクス株式会社 | パイプ調停回路、パイプ調停方法 |
CN102693198B (zh) * | 2012-05-12 | 2015-03-25 | 北京忆恒创源科技有限公司 | Dma传输方法及*** |
US9471652B1 (en) | 2015-11-18 | 2016-10-18 | International Business Machines Corporation | Extract transform load input suggestion |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US377673A (en) * | 1888-02-07 | Philip fiege | ||
US377764A (en) * | 1888-02-14 | Jambs h | ||
US369630A (en) * | 1887-09-06 | Dropping attachment for corn-planters | ||
US377632A (en) * | 1888-02-07 | Body-wire and handle for dish-pans | ||
US377763A (en) * | 1888-02-14 | Printing-telegraph | ||
JPH10301898A (ja) | 1997-04-23 | 1998-11-13 | Casio Comput Co Ltd | 電子機器及びインタフェース回路 |
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 |
JP3843667B2 (ja) | 1999-10-15 | 2006-11-08 | セイコーエプソン株式会社 | データ転送制御装置及び電子機器 |
JP3415567B2 (ja) | 2000-06-21 | 2003-06-09 | エヌイーシーマイクロシステム株式会社 | Usb転送制御方法およびusbコントローラ |
JP2002051100A (ja) | 2000-08-04 | 2002-02-15 | Naltec Inc | 中継装置およびその制御方法 |
JP2002055936A (ja) | 2000-08-08 | 2002-02-20 | Toshiba Corp | Usbデバイス機器、usbデバイス機器間の通信システムおよび通信方法 |
JP2002091717A (ja) | 2000-09-19 | 2002-03-29 | Oki Data Corp | 印刷システム |
JP2002116998A (ja) | 2000-10-05 | 2002-04-19 | Matsushita Electric Ind Co Ltd | 周辺機器内蔵型usbコントローラ |
US7000057B1 (en) * | 2002-02-11 | 2006-02-14 | Cypress Semiconductor Corp. | Method and apparatus for adding OTG dual role device capability to a USB peripheral |
-
2002
- 2002-04-26 JP JP2002126708A patent/JP3636160B2/ja not_active Expired - Fee Related
-
2003
- 2003-03-04 US US10/377,765 patent/US7428600B2/en not_active Expired - Fee Related
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008205927A (ja) * | 2007-02-21 | 2008-09-04 | Canon Inc | 電子機器 |
JP2012109991A (ja) * | 2007-02-21 | 2012-06-07 | Canon Inc | 電子機器 |
CN113971151A (zh) * | 2021-10-28 | 2022-01-25 | 上海兆芯集成电路有限公司 | 串行传输控制器及其数据传输方法 |
Also Published As
Publication number | Publication date |
---|---|
US20040037310A1 (en) | 2004-02-26 |
JP3636160B2 (ja) | 2005-04-06 |
US7428600B2 (en) | 2008-09-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7349973B2 (en) | Data transfer control device, electronic equipment, and data transfer control method | |
JP3636157B2 (ja) | データ転送制御装置、電子機器及びデータ転送制御方法 | |
JP3649226B2 (ja) | データ転送制御装置、電子機器及びデータ転送制御方法 | |
JP3632695B2 (ja) | データ転送制御装置、電子機器及びデータ転送制御方法 | |
JP3870717B2 (ja) | データ転送制御装置及び電子機器 | |
US7337382B2 (en) | Data transfer control device, electronic instrument, and data transfer control method | |
JP3726898B2 (ja) | データ転送制御装置、電子機器及びデータ転送制御方法 | |
JP3636158B2 (ja) | データ転送制御装置及び電子機器 | |
JP3755594B2 (ja) | データ転送制御装置及び電子機器 | |
EP1516261B1 (en) | Bus system, station for use in a bus system, and bus interface | |
JP3636160B2 (ja) | データ転送制御装置、電子機器及びデータ転送制御方法 | |
JP3614161B2 (ja) | データ転送制御装置、電子機器及びデータ転送制御方法 | |
WO2003029997A1 (en) | Bus system and bus interface | |
JP2003323391A (ja) | データ転送制御装置、電子機器及びデータ転送制御方法 | |
JP4127069B2 (ja) | データ転送制御装置、電子機器及びデータ転送制御方法 | |
JP4127071B2 (ja) | データ転送制御装置、電子機器及びデータ転送制御方法 | |
JP2003316734A (ja) | データ転送制御装置、電子機器及びデータ転送制御方法 | |
JP2003323399A (ja) | データ転送制御装置、電子機器及びデータ転送制御方法 | |
JP2004021976A (ja) | データ転送制御装置、電子機器及びデータ転送制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040901 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040914 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041115 |
|
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: 20041214 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20041227 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090114 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100114 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110114 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110114 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120114 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120114 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130114 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130114 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140114 Year of fee payment: 9 |
|
LAPS | Cancellation because of no payment of annual fees |