JP2003316732A - データ転送制御装置、電子機器及びデータ転送制御方法 - Google Patents

データ転送制御装置、電子機器及びデータ転送制御方法

Info

Publication number
JP2003316732A
JP2003316732A JP2002118251A JP2002118251A JP2003316732A JP 2003316732 A JP2003316732 A JP 2003316732A JP 2002118251 A JP2002118251 A JP 2002118251A JP 2002118251 A JP2002118251 A JP 2002118251A JP 2003316732 A JP2003316732 A JP 2003316732A
Authority
JP
Japan
Prior art keywords
host
peripheral
controller
data
transfer
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
JP2002118251A
Other languages
English (en)
Other versions
JP3636158B2 (ja
Inventor
伸之 ▲斎▼藤
Nobuyuki Saito
Hiroaki Shimono
洋昭 下野
Yoshiyuki Kanbara
義幸 神原
Hironobu Kazama
宏信 風間
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.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
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 Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2002118251A priority Critical patent/JP3636158B2/ja
Priority to US10/369,630 priority patent/US7469304B2/en
Publication of JP2003316732A publication Critical patent/JP2003316732A/ja
Application granted granted Critical
Publication of JP3636158B2 publication Critical patent/JP3636158B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40052High-speed IEEE 1394 serial bus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40052High-speed IEEE 1394 serial bus
    • H04L12/40058Isochronous transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40052High-speed IEEE 1394 serial bus
    • H04L12/40123Interconnection of computers and peripherals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Transfer Systems (AREA)

Abstract

(57)【要約】 【課題】 ホスト動作とペリフェラル動作の両方を可能
にしながら、装置の大規模化を最小限に抑えることがで
きるデータ転送制御装置等を提供すること。 【解決手段】 データ転送制御装置は、ホスト動作ステ
ートとペリフェラル動作ステートを含む複数のステート
の制御を行うOTG(ステート)コントローラ20と、
トランシーバ10にホスト動作時に接続されるホストコ
ントローラ50と、トランシーバ10にペリフェラル動
作時に接続されるペリフェラルコントローラ60と、ホ
スト動作時とペリフェラル動作時とで共用される転送条
件レジスタを含むレジスタ部70と、ホストコントロー
ラ50とペリフェラルコントローラ60により共用され
るパケットバッファ100にアクセス制御を行うバッフ
ァコントローラ80を含む。ホスト動作時にはパケット
バッファ100にパイプ領域PIPE0〜PIPEeが
確保され、ペリフェラル動作時にはエンドポイント領域
EP0〜EPeが確保される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、データ転送制御装
置、電子機器及びデータ転送制御方法に関する。
【0002】
【背景技術及び発明が解決しようとする課題】HS(Hi
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インターフェースの新たな付加価値を生む可能性を秘
めており、その特質を生かしたアプリケーションの登場
が待たれている。
【0003】このOTGによれば、これまでUSBを介
してホスト(パーソナルコンピュータ等)に接続されて
いたペリフェラル(周辺機器)に、ホスト機能を持たせ
ることができる。これにより、ペリフェラル同士をUS
Bで接続してデータを転送することが可能になり、例え
ばデジタルカメラとプリンタとをダイレクトに接続し
て、デジタルカメラの画像を印刷することが可能にな
る。また、デジタルカメラやデジタルビデオカメラをス
トレージ装置に接続して、データを保存することが可能
になる。
【0004】しかしながら、OTGによりホスト機能を
持たせるペリフェラルには、低性能のCPU(処理部)
が組み込まれているのが一般的である。従って、ホスト
機能の追加により、ペリフェラルが有するCPU(ファ
ームウェア)の処理負荷が重くなったり、処理が複雑化
すると、他の処理に支障が生じたり、機器の設計期間が
長期化するなどの問題が生じる。
【0005】また、OTGによりホスト機能を持たせる
ことで、データ転送制御装置が大規模化してしまうと、
データ転送制御装置の高コスト化や、データ転送制御装
置が組み込まれる機器(電子機器)の高コスト化等を招
く。
【0006】本発明は、以上のような技術的課題に鑑み
てなされたものであり、その目的とするところは、ホス
ト動作とペリフェラル動作の両方の動作を可能にしなが
らも、装置の大規模化を最小限に抑えることができるデ
ータ転送制御装置、電子機器及びデータ転送制御方法を
提供することにある。
【0007】
【課題を解決するための手段】本発明は、バスを介した
データ転送のためのデータ転送制御装置であって、ホス
トの役割として動作するホスト動作のステートと、ペリ
フェラルの役割として動作するペリフェラル動作のステ
ートを含む複数のステートの制御を行うステートコント
ローラと、物理層回路を含むトランシーバに対してホス
ト動作時に接続され、ホストとしてのデータ転送を行う
ホストコントローラと、前記トランシーバに対してペリ
フェラル動作時に接続され、ペリフェラルとしてのデー
タ転送を行うペリフェラルコントローラと、ホスト動作
時とペリフェラル動作時とで共用される共用レジスタを
含むレジスタ部と、前記ホストコントローラ、前記ペリ
フェラルコントローラにより転送されるデータを記憶
し、前記ホストコントローラ、前記ペリフェラルコント
ローラにより共用されるパケットバッファに対して、ア
クセス制御を行うバッファコントローラとを含むデータ
転送制御装置に関係する。
【0008】本発明によれば、ステートコントローラに
より制御されるステートが、ホスト動作のステートにな
ると、トランシーバにホストコントローラが接続され、
ホストコントローラがホストとしてのデータ転送を行
う。一方、ステートコントローラにより制御されるステ
ートが、ペリフェラル動作のステートになると、トラン
シーバにペリフェラルコントローラが接続され、ペリフ
ェラルコントローラがペリフェラルとしてのデータ転送
を行う。そして本発明では、ホスト動作時とペリフェラ
ル動作時とで、レジスタ部の共用レジスタと、転送デー
タを行うパケットバッファが共用される。これにより、
ホスト動作とペリフェラル動作の両方の動作(デュアル
ロール・デバイス)を可能にしながらも、レジスタ部や
パケットバッファのリソースを節約でき、データ転送制
御装置の大規模化を最小限に抑えることが可能になる。
なお、レジスタ部の少なくとも一部を各ブロックに分散
して設けるようにしてもよい。
【0009】また本発明では、前記レジスタ部が、デー
タ転送の転送条件情報が各転送条件レジスタに設定され
る複数の転送条件レジスタを含み、前記転送条件レジス
タが、ホスト動作時とペリフェラル動作時とで共用され
る共用転送条件レジスタと、ホスト動作時に使用される
ホスト用転送条件レジスタと、ペリフェラル動作時に使
用されるペリフェラル用転送条件レジスタとを含んでも
よい。
【0010】このように共用転送条件レジスタを設ける
ことで、転送条件情報(エンドポイント情報)を記憶す
るレジスタのリソースを節約できる。また、ホスト用転
送条件レジスタやペリフェラル用転送条件レジスタを設
けることで、ホスト動作やペリフェラル動作に特有の転
送条件を設定できるようになる。
【0011】また本発明では、前記共用転送条件レジス
タに、データの転送方向、データ転送の転送種別、及び
マックスパケットサイズが、転送条件情報として設定さ
れるようにしてもよい。
【0012】このようにすることで、ホストコントロー
ラやペリフェラルコントローラは、共用転送条件レジス
タに設定される転送方向、転送種別、マックスパケット
サイズを用いて、ホスト動作時、ペリフェラル動作時の
データ転送を行うことが可能になる。なお、エンドポイ
ント番号や、DMA転送(接続)の有無などを、共用転
送条件レジスタに設定しもよい。
【0013】また本発明では、前記ホスト用転送条件レ
ジスタに、インタラプト転送におけるトークン発行周
期、複数のパイプ領域間の転送比率情報、エンドポイン
トのファンクションアドレス、及びエンドポイントとの
間で転送されるデータのトータルサイズの少なくとも1
つが、転送条件情報として設定されるようにしてもよ
い。
【0014】このようにホスト用転送条件レジスタにト
ークン発行周期を設定することで、2分木構造のディス
クリプタ等を用いることなく、インタラプト転送のトー
クンパケットを自動的に転送できるようになる。また、
複数のパイプ領域間の転送比率情報を、ホスト用転送条
件レジスタに設定することで、複数のパイプ領域のデー
タを、任意の転送比率で転送できるようになり、データ
転送の効率的なスケジューリングが可能になる。また、
転送データのトータルサイズをホスト用転送条件レジス
タに設定することで、ホスト動作時に、パケットバッフ
ァのバッファ領域(パイプ領域)毎に任意のトータルサ
イズを設定して、データを転送(送信又は受信)できる
ようになる。
【0015】なお、転送比率情報は、パケットバッファ
に確保されるバッファ領域(パイプ領域)のトランザク
ションの連続実行回数であってもよい。このようにすれ
ば、例えば、第Kのバッファ領域(パイプ領域)のデー
タ転送のトランザクションを複数回連続して実行(発
生)した後に、第K+1のバッファ領域(パイプ領域)
のデータ転送のトランザクションを実行できるようにな
る。
【0016】また本発明では、ホスト動作時には、前記
ホストコントローラが、前記共用転送条件レジスタと前
記ホスト用転送条件レジスタに設定される転送条件情報
に基づいて、データを転送し、ペリフェラル動作時に
は、前記ペリフェラルコントローラが、前記共用転送条
件レジスタと前記ペリフェラル用転送条件レジスタに設
定される転送条件情報に基づいて、データを転送するよ
うにしてもよい。
【0017】このようにすれば、共用転送条件レジスタ
をホストコントローラとペリフェラルコントローラで共
用できるため、レジスタ部のリソースを節約できる。ま
た、ホストコントローラ、ペリフェラルコントローラ
は、ホスト用転送条件レジスタ、ペリフェラル用転送条
件レジスタを用いて、ホスト動作やペリフェラル動作に
特有の転送条件が設定されたデータ転送を行うことが可
能になる。
【0018】また本発明では、前記レジスタ部が、パケ
ットバッファのアクセス制御レジスタであり、ホスト動
作時とペリフェラル動作時で共用される共用アクセス制
御レジスタを含み、前記バッファコントローラが、ホス
ト動作時とペリフェラル動作時において、前記共用アク
セス制御レジスタに基づいて、パケットバッファのアク
セス制御を行うようにしてもよい。
【0019】この場合の共用アクセス制御レジスタとし
ては、例えば、処理部がパケットバッファにアクセスす
る際のI/Oポート・レジスタや、バッファ領域のフル
又はエンプティを知らせるレジスタなどを考えることが
できる。
【0020】また本発明では、ホスト動作時とペリフェ
ラル動作時において、処理部による共用レジスタのアク
セスアドレスが、同一に設定されるようにしてもよい。
【0021】このようにすることで、処理部のアドレス
管理を簡素化できる。なお、アクセスアドレスで指定さ
れる共用レジスタには、ホスト動作時とペリフェラル動
作時とで、ほぼ同内容の情報を設定することができる。
【0022】また本発明では、前記バスとは異なる他の
バスとパケットバッファとの間でのデータ転送を行うイ
ンターフェース回路を含み、前記バッファコントローラ
が、ホスト動作時には、前記インターフェース回路とパ
ケットバッファの間のデータ転送経路と、パケットバッ
ファと前記ホストコントローラの間のデータ転送経路を
設定し、ペリフェラル動作時には、前記インターフェー
ス回路とパケットバッファの間のデータ転送経路と、パ
ケットバッファと前記ペリフェラルコントローラの間の
データ転送経路を設定するようにしてもよい。
【0023】このようにすることで、ホスト動作時とペ
リフェラル動作時でパケットバッファを共用できるよう
になる。
【0024】また本発明では、ホスト動作時には、各エ
ンドポイントとの間で転送されるデータが各パイプ領域
に記憶される複数のパイプ領域が、パケットバッファに
確保され、前記ホストコントローラが、パイプ領域とそ
のパイプ領域に対応するエンドポイントとの間でデータ
を転送し、ペリフェラル動作時には、ホストとの間で転
送されるデータが各エンドポイント領域に記憶される複
数のエンドポイント領域が、パケットバッファに確保さ
れ、前記ペリフェラルコントローラが、エンドポイント
領域とホストとの間でデータを転送してもよい。
【0025】このようにすれば、パケットバッファのバ
ッファ領域を、ホスト動作時にはパイプ領域として使用
し、ペリフェラル動作時にはエンドポイント領域として
使用できるようになる。これにより、パケットバッファ
のリソースの有効利用や、処理部の処理負荷の軽減化を
図れる。
【0026】なお、バッファ領域(パイプ領域又はエン
ドポイント領域)のデータの書き込み、読み出しは、各
バッファ領域毎に設定される書き込みポインタ、読み出
しポインタを用いて実現できる。そして、書き込みポイ
ンタ、読み出しポインタのポインタ情報(位置情報)
は、各バッファ領域(パイプ領域又はエンドポイント領
域)に対応する各共用レジスタに記憶してもよい。ま
た、バスにデータを送信する送信時と、バスからデータ
を受信する受信時において、バスからのアクセスに対す
る書き込みポインタ、読み出しポインタの割り当てと、
他のバスからのアクセスに対する書き込みポインタ、読
み出しポインタの割り当てとを、異ならせてもよい。
【0027】また本発明では、前記レジスタ部が、デー
タ転送の転送条件情報が各転送条件レジスタに設定され
る複数の転送条件レジスタを含み、前記転送条件レジス
タが、ホスト動作時とペリフェラル動作時とで共用され
る共用転送条件レジスタと、ホスト動作時に使用される
ホスト用転送条件レジスタと、ペリフェラル動作時に使
用されるペリフェラル用転送条件レジスタとを含み、ホ
スト動作時には、前記ホストコントローラが、前記共用
転送条件レジスタと前記ホスト用転送条件レジスタに設
定される転送条件情報に基づいて、パイプ領域とそのパ
イプ領域に対応するエンドポイントとの間でデータを転
送し、ペリフェラル動作時には、前記ペリフェラルコン
トローラが、前記共用転送条件レジスタと前記ペリフェ
ラル用転送条件レジスタに設定される転送条件情報に基
づいて、エンドポイント領域とホストとの間でデータを
転送してもよい。
【0028】また本発明は、バスを介したデータ転送の
ためのデータ転送制御装置であって、ホストの役割とし
て動作するホスト動作のステートと、ペリフェラルの役
割として動作するペリフェラル動作のステートを含む複
数のステートの制御を行うステートコントローラと、物
理層回路を含みバスに接続されるトランシーバに対して
ホスト動作時に接続され、ホストとしてのデータ転送を
行うホストコントローラと、前記トランシーバに対して
ペリフェラル動作時に接続され、ペリフェラルとしての
データ転送を行うペリフェラルコントローラと、前記ホ
ストコントローラ、前記ペリフェラルコントローラによ
り転送されるデータを記憶し、前記ホストコントロー
ラ、前記ペリフェラルコントローラにより共用されるパ
ケットバッファに対して、アクセス制御を行うバッファ
コントローラとを含み、ホスト動作時には、各エンドポ
イントとの間で転送されるデータが各パイプ領域に記憶
される複数のパイプ領域が、パケットバッファに確保さ
れ、前記ホストコントローラが、パイプ領域とそのパイ
プ領域に対応するエンドポイントとの間でデータを転送
し、ペリフェラル動作時には、ホストとの間で転送され
るデータが各エンドポイント領域に記憶される複数のエ
ンドポイント領域が、パケットバッファに確保され、前
記ペリフェラルコントローラが、エンドポイント領域と
ホストとの間でデータを転送するデータ転送制御装置に
関係する。
【0029】本発明によれば、ホスト動作とペリフェラ
ル動作の両方の動作(デュアルロール・デバイス)を可
能にしながらも、パケットバッファのリソースを節約で
き、データ転送制御装置の大規模化を最小限に抑えるこ
とが可能になる。また、パケットバッファのバッファ領
域を、ホスト動作時にはパイプ領域として使用し、ペリ
フェラル動作時にはエンドポイント領域として使用でき
るようになる。これにより、パケットバッファのリソー
スの有効利用や、処理部の処理負荷の軽減化を図れる。
【0030】また本発明では、USB(Universal Seri
al Bus)のOTG(On−The−Go)規格に準拠し
たデータ転送を行うようにしてもよい。
【0031】また本発明は、上記のいずれかのデータ転
送制御装置と、前記データ転送制御装置及びバスを介し
て転送されるデータの出力処理又は取り込み処理又は記
憶処理を行う装置と、前記データ転送制御装置のデータ
転送を制御する処理部とを含む電子機器に関係する。
【0032】また本発明は、バスを介したデータ転送の
ためのデータ転送制御方法であって、ホストの役割とし
て動作するホスト動作のステートと、ペリフェラルの役
割として動作するペリフェラル動作のステートを含む複
数のステートの制御を行い、ホスト動作時には、物理層
回路を含みバスに接続されるトランシーバにホストコン
トローラを接続し、前記ホストコントローラを用いてホ
ストとしてのデータ転送を行い、ペリフェラル動作時に
は、前記トランシーバにペリフェラルコントローラを接
続し、前記ペリフェラルコントローラを用いてペリフェ
ラルとしてのデータ転送を行い、レジスタ部が含む共用
レジスタを、ホスト動作時とペリフェラル動作時とで共
用し、前記ホストコントローラ、前記ペリフェラルコン
トローラにより転送されるデータを記憶するパケットバ
ッファを、前記ホストコントローラ、前記ペリフェラル
コントローラにより共用するデータ転送制御方法に関係
する。
【0033】また本発明は、バスを介したデータ転送の
ためのデータ転送制御方法であって、ホストの役割とし
て動作するホスト動作のステートと、ペリフェラルの役
割として動作するペリフェラル動作のステートを含む複
数のステートの制御を行い、ホスト動作時には、物理層
回路を含みバスに接続されるトランシーバにホストコン
トローラを接続し、前記ホストコントローラを用いてホ
ストとしてのデータ転送を行い、ペリフェラル動作時に
は、前記トランシーバにペリフェラルコントローラを接
続し、前記ペリフェラルコントローラを用いてペリフェ
ラルとしてのデータ転送を行い、前記ホストコントロー
ラ、前記ペリフェラルコントローラにより転送されるデ
ータを記憶するパケットバッファを、前記ホストコント
ローラ、前記ペリフェラルコントローラにより共用し、
ホスト動作時には、各エンドポイントとの間で転送され
るデータが各パイプ領域に記憶される複数のパイプ領域
を、パケットバッファに確保し、パイプ領域とそのパイ
プ領域に対応するエンドポイントとの間でデータを転送
し、ペリフェラル動作時には、ホストとの間で転送され
るデータが各エンドポイント領域に記憶される複数のエ
ンドポイント領域を、パケットバッファに確保し、エン
ドポイント領域とホストとの間でデータを転送するデー
タ転送制御方法に関係する。
【0034】
【発明の実施の形態】以下、本実施形態について説明す
る。
【0035】なお、以下に説明する本実施形態は、特許
請求の範囲に記載された本発明の内容を不当に限定する
ものではない。また本実施形態で説明される構成の全て
が本発明の解決手段として必須であるとは限らない。
【0036】1.OTG まず、OTG(USB On−The−Go)について
簡単に説明する。
【0037】1.1 Aデバイス、Bデバイス OTGでは、コネクタの規格として、図1(A)に示す
ようなMini-Aプラグ、Mini-Bプラグが定義されてい
る。また、これらのMini-Aプラグ、Mini−Bプラグ
(広義にはケーブルの第1、第2のプラグ)の両方を接
続できるコネクタとして、Mini-ABレセプタクル(rec
eptacle)が定義されている。
【0038】そして例えば図1(B)のように、USB
ケーブルのMini-Aプラグに電子機器Pが接続され、Min
i-Bプラグに電子機器Qが接続されると、電子機器Pは
Aデバイスに設定され、電子機器QはBデバイスに設定
される。一方、図1(C)に示すように、Mini-Bプラ
グ、Mini-Aプラグが電子機器P、Qに接続されると、
電子機器P、Qは、各々、Bデバイス、Aデバイスに設
定される。
【0039】Mini-Aプラグ内ではIDピンがGNDに
接続されており、Mini-Bプラグ内ではIDピンはフロ
ーティング状態になっている。電子機器は、内蔵するプ
ルアップ抵抗回路を用いて、このIDピンの電圧レベル
を検出することで、自身がMini-Aプラグに接続された
のか、或いはMini-Bプラグに接続されたのかを判断す
る。
【0040】OTGでは、Aデバイス(マスター)が、
電源(VBUS)を供給する側(供給元)になり、Bデ
バイス(スレイブ)が、電源の供給を受ける側(供給
先)になる。また、Aデバイスは、デフォルトのステー
トがホストになり、Bデバイスは、デフォルトのステー
トがペリフェラル(周辺機器)になる。
【0041】1.2 デュアルロール・デバイス OTGでは、ホスト(簡易ホスト)としての役割とペリ
フェラルとしての役割の両方を持つことができるデュア
ルロール・デバイス(Dual-Role Device)が定義されて
いる。
【0042】デュアルロール・デバイスは、ホストにも
ペリフェラルにもなれる。そして、デュアルロール・デ
バイスに接続された相手が、従来のUSB規格における
ホストやペリフェラルである場合には、デュアルロール
・デバイスの役割は一意に定まる。つまり、接続相手が
ホストであれば、デュアルロール・デバイスはペリフェ
ラルになり、接続相手がペリフェラルであれば、デュア
ルロール・デバイスはホストになる。
【0043】一方、接続相手がデュアルロール・デバイ
スである場合には、両方のデュアルロール・デバイス
は、お互いにホストとペリフェラルの役割を交換でき
る。
【0044】1.3 SRP、HNP デュアルロール・デバイスは、図2(A)、(B)に示
すようなセッション開始要求手順SRP(Session Requ
est Protocol)やホスト交換手順HNP(HostNegotiat
ion Protocol)の機能を持つ。
【0045】ここでセッション開始要求手順SRPは、
BデバイスがAデバイスに対して、VBUS(電源)の
供給を要求するプロトコルである。
【0046】バスを使用しない場合にOTGでは、Aデ
バイスはVBUSの供給を停止できる。これにより、A
デバイスが例えば小型の携帯機器であった場合に、無駄
な電力消費を防止できる。そして、AデバイスがVBU
Sの供給を停止した後に、BデバイスがVBUSを供給
してもらいたい場合には、このSRPを使用して、Aデ
バイスに対してVBUSの供給の再開を要求する。
【0047】図2(A)にSRPの流れを示す。図2
(A)に示すように、Bデバイスは、データ・ライン・
パルシングとVBUSパルシングを行うことで、Aデバ
イスに対してVBUSの供給を要求する。そして、Aデ
バイスによるVBUSの供給の開始後に、Bデバイスの
ペリフェラル動作(peripheral operation)と、Aデバ
イスのホスト動作(host operation)が開始する。
【0048】図1(A)〜図1(C)で説明したよう
に、デュアルロール・デバイス同士の接続では、Mini-
Aプラグが接続された側であるAデバイスがデフォルト
のホストとなり、Mini-Bプラグが接続された側である
Bデバイスがデフォルトのペリフェラルになる。そし
て、OTGでは、プラグの抜き差しを行わなくても、ホ
ストとペリフェラルの役割を交換できる。HNPは、こ
のホストとペリフェラルの役割を交換するためのプロト
コルである。
【0049】HNPの流れを図2(B)に示す。デフォ
ルトのホストとして動作するAデバイスが、バスの使用
を終了すると、バスがアイドル状態になる。その後に、
Bデバイスがデータ信号線DP(D+)のプルアップ抵
抗を無効にすると、AデバイスがDPのプルアップ抵抗
を有効にする。これにより、Aデバイスの役割はホスト
からペリフェラルに変わり、ペリフェラルとしての動作
を開始する。また、Bデバイスの役割はペリフェラルか
らホストに変わり、ホストとしての動作を開始する。
【0050】その後、Bデバイスが、バスの使用を終了
し、AデバイスがDPのプルアップ抵抗を無効にする
と、Bデバイスが、DPのプルアップ抵抗を有効にす
る。これにより、Bデバイスの役割はホストからペリフ
ェラルに戻り、ペリフェラルとしての動作を再開する。
また、Aデバイスの役割はペリフェラルからホストに戻
り、ホストとしての動作を再開する。
【0051】以上に説明したOTGによれば、携帯電話
やデジタルカメラなどの携帯機器をUSBのホストとし
て動作させ、携帯機器同士をピア・ツー・ピアで接続し
てデータ転送を行うことが可能になる。これにより、U
SBインターフェースに新たな付加価値を生むことがで
き、これまでには存在しなかったアプリケーションを創
出できる。
【0052】2.OHCI さて、従来のUSBでは、ホストであるパーソナルコン
ピュータが有するデータ転送制御装置(ホストコントロ
ーラ)は、マイクロソフト社が提唱したOHCI(Open
Host Controller Interface)や、UHCI(Universa
l Host Controller Interface)といった規格に準拠し
ていた。また、使用されるOS(Operating System)
も、マイクロソフト社のWindowsやアップル社のマッキ
ントッシュのOSなどに限定されていた。
【0053】しかしながら、OTGのターゲット・アプ
リケーションである小型携帯機器では、組み込まれるC
PUのアーキテクチャや、使用されるOSは千差万別で
ある。更に、パーソナルコンピュータのホストコントロ
ーラ向けに規格化されたOHCIやUHCIは、USB
ホストとしての機能をフルに実装することを前提として
おり、小型携帯機器への実装に最適であるとは言い難
い。
【0054】例えば、図3(A)に、OHCIで使用さ
れるリスト構造のデスクリプタの一例を示す。
【0055】図3(A)において、エンドポイントディ
スクリプタED1、ED2、ED3は、リンクポインタ
によりリンクされており、エンドポイント1、2、3と
のコミュニケーションに必要な情報が含まれている。そ
して、これらのED1、ED2、ED3には、転送ディ
スクリプタTD11〜TD13、TD21、TD31〜
TD32がリンクポインタにより更にリンクされてい
る。そして、これらの転送ディスクリプタには、エンド
ポイント1、2、3との間で転送するパケットデータに
必要な情報が含まれている。
【0056】図3(A)のリスト構造のディスクリプタ
は、図3(B)のCPU610(広義には処理部)上で
動作するファームウェア(ホストコントローラ・ドライ
バ)が作成し、システムメモリ620に書き込む。即
ち、ファームウェアは、システム中のエンドポイントに
対してエンドポイントディスクリプタを割り当て、エン
ドポイント情報等に基づいてエンドポイントディスクリ
プタ、転送ディスクリプタを作成する。そして、これら
のディスクリプタをリンクポインタでリンクさせて、シ
ステムメモリ620に書き込む。
【0057】データ転送制御装置600(ホストコント
ローラ)は、システムメモリ620に書き込まれたリス
ト構造のディスクリプタを読み出し、エンドポイントデ
ィスクリプタや転送ディスクリプタに記述される情報に
基づいて、データ転送を実行する。
【0058】具体的には、データ転送制御装置600
(ホストコントローラ)は、ED1に基づいてエンドポ
イント1の情報を設定し、ED1にリンクされるTD1
1に基づいて、エンドポイント1との間でデータ転送を
行う。次に、ED2に基づいてエンドポイント2の情報
を設定し、ED2にリンクされるTD21に基づいて、
エンドポイント2との間でデータ転送を行う。同様にし
て、データ転送制御装置600は、TD31、TD1
2、TD32、TD13に基づいてデータ転送を実行す
る。
【0059】インタラプト転送を行う場合には、CPU
610上で動作するファームウェア(ホストコントロー
ラ・ドライバ)は、図4に示すような2分木(binary t
ree)構造のディスクリプタを作成する。例えば、1m
s毎にインタラプト転送のポーリングを行うエンドポイ
ントについては、そのディスクリプタを図4のプレイス
ホルダ(placeholder)700に設定する。同様に、2
ms毎にポーリングを行うエンドポイントについては、
そのディスクリプタをプレイスホルダ701、702に
設定し、4ms毎にポーリングを行うエンドポインタに
ついては、プレイスホルダ703、704、705、7
06に設定する。
【0060】そして、ポーリングを行う際には、インタ
ラプトヘッドポインタのインデックスにしたがって、最
下位層のプレイスホルダから順に2分木探索を行う。即
ち、図4の経路710に示すように、まずインデックス
0について最下位層から2分木探索を行う。次に、経路
711に示すように、インデックス1について2分木探
索を行う。同様にしてインデックス2〜31について2
分木探索を行う。これにより、プレイスホルダ700に
対応するエンドポイントについては1ms(1フレー
ム)毎に、701、702に対応するエンドポイントに
ついては2ms毎に、703〜706に対応するエンド
ポイントについては4ms毎にインタラプト転送が行わ
れるようになる。
【0061】以上のように、OHCI準拠のデータ転送
制御装置(ホストコントローラ)では、CPU上で動作
するファームウェア(ホストコントローラ・ドライバ)
が、図3(A)、図4に示すような複雑な構造のディス
クリプタを作成しなければならない。従って、CPUの
処理負荷が非常に重い。
【0062】この場合、従来のUSBでは、ホストの役
割が割り当てられるのはパーソナルコンピュータだけで
あり、このパーソナルコンピュータは高性能のCPUを
有している。従って、図3(A)、図4に示すような複
雑な構造のディスクリプタの作成も、余裕を持って行う
ことが可能であった。
【0063】ところが、OTGのターゲットアプリケー
ションである小型携帯機器(デジタルカメラ、携帯電話
等)に組み込まれるCPU(embedded CPU)は、パーソ
ナルコンピュータのCPUに比べて、性能が格段に低い
のが一般的である。従って、携帯機器にOTGのホスト
動作を行わせると、携帯機器に組み込まれるCPUに過
大な負荷がかかり、他の処理に支障が生じたり、データ
転送のパフォーマンスが低下するなどの問題が生じる。
【0064】3.構成例 図5に、以上のような問題を解決できる本実施形態のデ
ータ転送制御装置の構成例を示す。なお、本実施形態の
データ転送制御装置は、図5の全ての回路ブロックを含
む必要はなく、その一部の回路ブロックを省略してもよ
い。
【0065】トランシーバ10(以下、適宜Xcvrと
呼ぶ)は、差動データ信号DP、DMを用いてUSB
(広義にはバス)のデータを送受信する回路であり、U
SBの物理層(PHY)回路12を含む。より具体的に
はトランシーバ10は、DP、DMのラインステート
(J、K、SE0等)の生成、シリアル/パラレル変
換、パラレル/シリアル変換、ビットスタッフィング、
ビットアンスタッフィング、NRZIデコード、NRZ
Iエンコードなどを行う。なお、トランシーバ10をデ
ータ転送制御装置の外部に設けるようにしてもよい。
【0066】OTGコントローラ20(広義にはステー
トコントローラ。以下、適宜OTGCと呼ぶ)は、OT
GのSRP機能やHNP機能(図2(A)、(B)参
照)を実現するための種々の処理を行う。即ち、OTG
コントローラ20は、ホストの役割として動作するホス
ト動作のステートや、ペリフェラルの役割として動作す
るペリフェラル動作のステートなどを含む複数のステー
トの制御を行う。
【0067】より具体的には、OTG規格には、デュア
ルロール・デバイスの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と呼ぶ)のイネー
ブル/ディスエーブルを制御する。
【0068】HC/PC切り替え回路30(HC/PC
・コモン回路)は、トランシーバ10と、ホストコント
ローラ50又はペリフェラルコントローラ60との間の
接続の切り替え制御を行う。また、USBのデータ(D
P、DM)のラインステートの生成の指示をトランシー
バ10に対して行う。なお、接続の切り替え制御は、H
C/PCセレクタ32により実現され、ラインステート
の生成指示は、ラインステートコントローラ34により
実現される。
【0069】例えばOTGコントローラ20が、ホスト
動作時(ホストステート時)にHCイネーブル信号をア
クティブにすると、HC/PC切り替え回路30(HC
/PCセレクタ32)は、トランシーバ10とホストコ
ントローラ50を接続する。一方、OTGコントローラ
20が、ペリフェラル動作時(ペリフェラルステート
時)にPCイネーブル信号をアクティブにすると、HC
/PC切り替え回路30は、トランシーバ10とペリフ
ェラルコントローラ60を接続する。このようにするこ
とで、ホストコントローラ50とペリフェラルコントロ
ーラ60とを排他的に動作させることが可能になる。
【0070】転送コントローラ40は、USB(広義に
はバス)を介したデータ転送を制御する回路であり、ホ
ストコントローラ50(HC)とペリフェラルコントロ
ーラ60(PC)を含む。
【0071】ここでホストコントローラ50は、ホスト
動作時(OTGコントローラ20からのHCイネーブル
信号のアクティブ時)に、ホストの役割としてのデータ
転送制御を行う回路である。
【0072】即ち、ホストコントローラ50は、ホスト
動作時に、HC/PC切り替え回路30によりトランシ
ーバ10に接続される。そしてホストコントローラ50
は、レジスタ部70の転送条件レジスタ部72に設定さ
れた転送条件情報に基づいて、エンドポイントに対する
トランザクションを自動発生する。そして、パケットバ
ッファ100に確保(allocate)されたパイプ領域(P
IPE0〜PIPEe。以下、適宜PIPEと呼ぶ)
と、そのパイプ領域に対応するエンドポイントとの間
で、データ(パケット)の自動転送(処理部が介在しな
いハードウェア回路によるデータ転送)を行う。
【0073】より具体的にはホストコントローラ50
は、複数のパイプ転送間の調停、フレームにおける時間
管理、転送のスケジューリング、再送の管理などを行
う。また、パイプ転送の転送条件情報(オペレーション
情報)をレジスタ部70を介して管理する。また、トラ
ンザクションの管理を行ったり、パケットを生成/分解
したり、サスペンド/レジューム/リセット状態生成の
指示を行う。
【0074】一方、ペリフェラルコントローラ60は、
ペリフェラル動作時(OTGコントローラ20からのP
Cイネーブル信号のアクティブ時)に、ペリフェラルの
役割としてのデータ転送制御を行う回路である。
【0075】即ち、ペリフェラルコントローラ60は、
ペリフェラル動作時に、HC/PC切り替え回路30に
よりトランシーバ10に接続される。そして、レジスタ
部70の転送条件レジスタ部72に設定された転送条件
情報に基づいて、パケットバッファ100に確保された
エンドポイント領域(EP0〜EPe。以下適宜EPと
呼ぶ)とホストとの間でデータを転送する。
【0076】より具体的には、ペリフェラルコントロー
ラ60は、エンドポイント転送の転送条件情報(オペレ
ーション情報)をレジスタ部70を介して管理する。ま
た、トランザクションの管理を行ったり、パケットを生
成/分解したり、リモート・ウェイクアップ信号生成の
指示を行う。
【0077】なお、エンドポイントは、ユニークなアド
レスを割り当てることができる、ペリフェラル(デバイ
ス)上のポイント(部分)である。ホストとペリフェラ
ル(デバイス)との間でのデータ転送は、全て、このエ
ンドポイントを経由して行われる。また、トランザクシ
ョンは、トークンパケットと、オプショナルなデータパ
ケットと、オプショナルなハンドシェークパケットによ
り構成される。
【0078】レジスタ部70は、データ転送(パイプ転
送、エンドポイント転送)制御、バッファアクセス制
御、バッファ管理、割り込み制御、ブロック制御、或い
はDMA制御などを行うための種々のレジスタを含む。
なお、レジスタ部70が含むレジスタは、RAMなどの
メモリにより実現してもよいし、Dフリップフロップな
どにより実現してもよい。また、レジスタ部70のレジ
スタは、1つにまとめずに、各ブロック(HC、PC、
OTGC、Xcvr等)に分散して配置してもよい。
【0079】レジスタ部70は、転送条件レジスタ部7
2を含む。そして、この転送条件レジスタ部72は、ホ
スト動作時にパケットバッファ100に確保されるパイ
プ領域(PIPE0〜PIPEe)とエンドポイントと
の間でのデータ転送の転送条件情報(転送制御情報)を
記憶するレジスタを含む。これらの各転送条件レジスタ
は、パケットバッファ100の各パイプ領域に対応して
設けられる。
【0080】なお、ペリフェラル動作時には、パケット
バッファ100にはエンドポイント領域(EP0〜EP
e)が確保される。そして、転送条件レジスタ部72に
設定された転送条件情報に基づいて、データ転送制御装
置とホストとの間でのデータ転送が行われる。
【0081】バッファコントローラ80(FIFOマネ
ージャ)は、パケットバッファ100に対するアクセス
(リード/ライト)制御や領域管理を行う。より具体的
には、CPU(広義には処理部)、DMA(Direct Mem
ory Access)、USBによるパケットバッファ100へ
のアクセス・アドレスを生成・管理する。また、CP
U、DMA、USBによるパケットバッファ100への
アクセスの調停を行う。
【0082】例えば、ホスト動作時には、バッファコン
トローラ80は、インターフェース回路110(CPU
又はDMA)とパケットバッファ100の間のデータ転
送経路と、パケットバッファ100とホストコントロー
ラ50(USB)の間のデータ転送経路を設定(確立)
する。
【0083】一方、ペリフェラル動作時には、バッファ
コントローラ80は、インターフェース回路110(C
PU又はDMA)とパケットバッファ100の間のデー
タ転送経路と、パケットバッファ100とペリフェラル
コントローラ60(USB)の間のデータ転送経路を設
定する。
【0084】パケットバッファ100(FIFO、パケ
ットメモリ、バッファ)は、USBを介して転送される
データ(送信データ又は受信データ)を一時的に記憶
(バッファリング)するものである。このパケットバッ
ファ100は、例えばRAM(Random Access Memory)
などにより構成できる。なお、パケットバッファ100
をデータ転送制御装置の外部に設けてもよい(外付けメ
モリにしてもよい)。
【0085】ホスト動作時には、パケットバッファ10
0はパイプ転送用のFIFO(First-In First-Out)と
して使用される。即ち、パケットバッファ100には、
USB(バス)の各エンドポイントに対応するように、
パイプ領域PIPE0〜PIPEe(広義にはバッファ
領域)が確保される。また、各パイプ領域PIPE0〜
PIPEeには、それに対応する各エンドポイントとの
間で転送されるデータ(送信データ又は受信データ)が
記憶される。
【0086】一方、ペリフェラル動作時には、パケット
バッファ100はエンドポイント転送用のFIFOとし
て使用される。即ち、パケットバッファ100には、エ
ンドポイント領域EP0〜EPe(広義にはバッファ領
域)が確保される。また、各エンドポイント領域EP0
〜EPeには、ホストとの間で転送されるデータ(送信
データ又は受信データ)が記憶される。
【0087】なお、パケットバッファ100に確保され
るバッファ領域(ホスト動作時にパイプ領域に設定さ
れ、ペリフェラル動作時にエンドポイント領域に設定さ
れる領域)は、先に入力された情報が先に出力されるよ
うな記憶領域(FIFO領域)に設定されている。
【0088】また、PIPE0は、コントロール転送用
のエンドポイント0に専用のパイプ領域であり、PIP
Ea〜PIPEeは、任意のエンドポイントに割り当て
可能な汎用のパイプ領域である。
【0089】即ち、USBでは、エンドポイント0がコ
ントロール転送に専用のエンドポイントに設定される。
従って、本実施形態のようにPIPE0をコントロール
転送に専用のパイプ領域にすることで、ユーザが混乱す
るのを防止できる。また、PIPEa〜PIPEeを、
任意のエンドポイントに割り当て可能なパイプ領域にす
ることで、エンドポイントに対応するパイプ領域を動的
に変化させることが可能になる。これにより、パイプ転
送のスケジューリングの自由度を向上でき、データ転送
の効率化を図れる。
【0090】なお本実施形態では、バッファ領域(パイ
プ領域又はエンドポイント領域)は、マックスパケット
サイズMaxPktSize(広義にはページサイズ)とページ数
BufferPageにより、その領域サイズRSizeが設定される
(RSize=MaxPktSize×BufferPage)。このようにするこ
とで、バッファ領域の領域サイズや面数(ページ数)を
任意に設定できるようになり、パケットバッファ100
のリソースの有効利用を図れる。
【0091】インターフェース回路110は、USBと
は異なる他のバスであるDMA(システムメモリ)バス
やCPUバスと、パケットバッファ100との間でのデ
ータ転送を行うための回路である。このインターフェー
ス回路110は、パケットバッファ100と外部のシス
テムメモリとの間で、DMA転送を行うためのDMAハ
ンドラ回路112を含む。また、パケットバッファ10
0と外部のCPUとの間で、PIO(Parallel I/O)転
送を行うためのCPUインターフェース回路114を含
む。なお、CPU(処理部)をデータ転送制御装置に内
蔵させてもよい。
【0092】クロックコントローラ120は、内蔵PL
L又は外部入力クロックに基づいて、データ転送制御装
置の内部で使用する各種のクロックを生成する。
【0093】4.パイプ領域 本実施形態では図6(A)に示すように、ホスト動作時
に、パケットバッファ100にパイプ領域PIPE0〜
PIPEeが確保(allocate)される。そして、この各
パイプ領域PIPE0〜PIPEeとペリフェラルの各
エンドポイントの間で、データが転送される。
【0094】ここで、本実施形態のパイプ領域の「パイ
プ」は、USBで定義される「パイプ」(デバイス上の
エンドポイントとホスト上のソフトウェアとの間の関連
を表す論理的な抽象化、論理的な経路)とは若干意味合
いが異なる。
【0095】本実施形態のパイプ領域は、図6(A)に
示すように、USB(バス)に接続されるペリフェラル
が有する各エンドポイントに対応して、パケットバッフ
ァ100上に確保される。例えば図6(A)において、
パイプ領域PIPEaはペリフェラル1のエンドポイン
ト1(バルクIN)に対応し、PIPEbはペリフェラ
ル1のエンドポイント2(バルクOUT)に対応する。
また、PIPEcはペリフェラル2のエンドポイント1
(バルクIN)に対応し、PIPEdはペリフェラル2
のエンドポイント2(バルクOUT)に対応する。ま
た、PIPEeはペリフェラル3のエンドポイント1
(インタラプトIN)に対応する。なお、PIPE0
は、コントロール転送のエンドポイント0に専用のパイ
プ領域である。
【0096】そして図6(A)の例では、パイプ領域P
IPEaとペリフェラル1のエンドポイント1との間で
USBのバルクIN転送が行われ、PIPEbとペリフ
ェラル1のエンドポイント2との間ではバルクOUT転
送が行われる。また、PIPEcとペリフェラル2のエ
ンドポイント1との間ではバルクIN転送が行われ、P
IPEdとペリフェラル2のエンドポイント2との間で
はバルクOUT転送が行われる。また、PIPEeとペ
リフェラル3のエンドポイント1との間ではインタラプ
トIN転送が行われる。
【0097】このように本実施形態では、パイプ領域
(汎用)とそれに対応するエンドポイントとの間では、
任意のデータ転送(アイソクロナス転送、バルク転送、
インタラプト転送)を行うことができる。
【0098】そして本実施形態では、パイプ領域とそれ
に対応するエンドポイントの間では、所与のデータ単位
(トータルサイズで指定されるデータ単位)のデータが
転送される。この場合のデータ単位としては、例えばI
RP(I/Oリクエストパケット)により転送要求され
るデータ単位又はそれを適当なサイズに分割したデータ
単位などを考えることができる。エンドポイントに対す
るこのデータ単位のデータ転送(一連のトランザクショ
ン)を、本実施形態における「パイプ」と呼ぶことがで
きる。そして、そのような「パイプ」のデータ(送信デ
ータ、受信データ)を記憶する領域がパイプ領域にな
る。
【0099】パイプ領域を用いた所与のデータ単位の転
送が終了すると、そのパイプ領域は解放することができ
る。そして、解放されたパイプ領域は、任意のエンドポ
イントに割り当てることができる。このように本実施形
態では、パイプ領域とエンドポイントとの対応づけを、
動的に変化させることができる。
【0100】また本実施形態では図6(B)に示すよう
に、ペリフェラル動作時には、パケットバッファ100
にエンドポイント領域EP0〜EPeが確保(設定)さ
れる。そして、この各エンドポイント領域EP0〜EP
eとホスト(ホストコントローラ、システムメモリ)と
の間で、データが転送される。
【0101】このように本実施形態では、パケットバッ
ファ100のバッファ領域を、ホスト動作時にはパイプ
領域に割り当て、ペリフェラル動作時にはエンドポイン
ト領域に割り当てている。これにより、ホスト動作時と
ペリフェラル動作時とでパケットバッファ100のリソ
ースを共用(兼用)することが可能になり、パケットバ
ッファ100の使用記憶容量を節約できる。
【0102】なおパイプ領域、エンドポイント領域の個
数は6個に限定されず任意である。
【0103】5.転送条件レジスタ(共用レジスタ) 本実施形態では図7に示すように、ホスト動作時には、
パイプ領域PIPE0〜PIPEeとエンドポイントと
の間で行われるデータ転送の転送条件情報が、転送条件
レジスタTREG0〜TREGeに設定される。即ち、
PIPE0、PIPEa、PIPEb、PIPEc、P
IPEd、PIPEeの転送条件情報は、各々、TRE
G0、TREGa、TREGb、TREGc、TREG
d、TREGeに設定(記憶)される。この設定は、例
えばファームウェア(CPU)により行われる。
【0104】そしてホストコントローラ50(広義には
転送コントローラ)は、転送条件レジスタTREG0〜
TREGeに設定された転送条件情報に基づいて、エン
ドポイントに対するトランザクションを発生する。そし
て、パイプ領域とそれに対応するエンドポイントとの間
で、データ(パケット)を自動転送する。
【0105】このように本実施形態では、各パイプ領域
(バッファ領域)に対応して各転送条件レジスタが設け
られ、この各転送条件レジスタに設定された転送条件情
報に基づいて、各パイプ領域のパイプ転送(所与のデー
タ単位の転送)がホストコントローラ50により自動的
に行われる。従って、ファームウェア(ドライバ、ソフ
トウェア)は、転送条件レジスタに転送条件情報を設定
した後は、データ転送が完了するまで、データ転送制御
に関わらなくて済むようになる。そして、所与のデータ
単位のパイプ転送が完了すると割り込みが発生し、転送
の完了がファームウェアに伝えられる。これにより、フ
ァームウェア(CPU)の処理負荷を格段に低減でき
る。
【0106】なお、本実施形態では図8に示すようにペ
リフェラル動作時には、エンドポイント領域EP0〜E
Peとホストとの間で行われるデータ転送の転送条件情
報が、転送条件レジスタTREG0〜TREGeに設定
される。そしてペリフェラルコントローラ60(広義に
は転送コントローラ)は、転送条件レジスタTREG0
〜TREGeに設定された転送条件情報に基づいて、エ
ンドポイント領域とホストとの間でのデータ転送を行
う。
【0107】このように本実施形態では、転送条件レジ
スタTREG0〜TREGeが、ホスト動作時とペリフ
ェラル動作時とで共用(兼用)される。これにより、レ
ジスタ部70のリソースを節約でき、データ転送制御装
置を小規模化できる。
【0108】図9に、レジスタ部70のレジスタ構成例
を示す。なお、レジスタ部70のレジスタの一部を、各
ブロック(OTGC、HC、PC、Xcvr等)内に含
ませてもよい。
【0109】図9に示すように、レジスタ部70の転送
条件レジスタ(TREG0〜TREGeの各々)は、ホ
スト動作時(HC、PIPE)とペリフェラル動作時
(PC、EP)で共用されるHC/PC共用レジスタ
(共用転送条件レジスタ)を含む。また、ホスト動作時
にのみ使用されるHC(PIPE)用レジスタ(ホスト
用転送条件レジスタ)を含む。また、ペリフェラル動作
時にのみ使用されるPC(EP)用レジスタ(ペリフェ
ラル用転送条件レジスタ)を含む。また、パケットバッ
ファ(FIFO)のアクセス制御などを行うためのレジ
スタであり、ホスト動作時とペリフェラル動作時で共用
されるアクセス制御レジスタを含む。
【0110】例えば、デュアルロール・デバイスのホス
ト動作時に、ホストコントローラ50(HC)は、HC
/PC共用レジスタとHC用レジスタに設定される転送
条件情報に基づいて、データ(パケット)を転送する。
【0111】一方、ペリフェラル動作時には、ペリフェ
ラルコントローラ60(PC)は、HC/PC共用レジ
スタとPC用レジスタに設定される転送条件情報に基づ
いて、データ(パケット)を転送する。
【0112】また、ホスト動作時、ペリフェラル動作時
の両方において、バッファコントローラ80は、共用ア
クセス制御レジスタに基づいて、パケットバッファ10
0へのアクセス制御(リード/ライト・アドレスの発
生、データのリード/ライト、アクセスの調停等)を行
うことになる。
【0113】図9のHC/PC共用レジスタには、デー
タの転送方向(IN、OUT又はSETUP等)、転送
種別(アイソクロナス、バルク、インタラプト、コント
ロールなどのトランザクションの種別)、エンドポイン
ト番号(各USBデバイスのエンドポイントに関連づけ
られる番号)、マックスパケットサイズ(エンドポイン
トが送信又は受信可能なパケットの最大ペイロードサイ
ズ。ページサイズ)が設定される。また、バッファ領域
(パイプ領域、エンドポイント領域)のページ数(バッ
ファ領域の面数)が設定される。また、DMA接続の有
無(図5のDMAハンドラ回路112によるDMA転送
の使用の有無)を指示する情報が設定される。
【0114】HC(PIPE)用レジスタには、インタ
ラプト転送のトークン発行周期(インタラプト・トラン
ザクションを起動する周期、インターバル)が設定され
る。また、トランザクションの連続実行回数(パイプ領
域間の転送比率を設定する情報。各パイプ領域のトラン
ザクションの連続実行回数)が設定される。また、ファ
ンクションアドレス(エンドポイントを有するファンク
ションのUSBアドレス)、転送データのトータルサイ
ズ(各パイプ領域を介して転送されるデータのトータル
サイズ。IRPなどのデータ単位)が設定される。ま
た、自動トランザクションの開始指示(ホストコントロ
ーラに対する自動トランザクション処理の開始指示)が
設定される。また、自動コントロール転送モードの指示
(コントロール転送のセットアップステージ、データス
テージ、ステータスステージのトランザクションを自動
発生するモードの指示)が設定される。
【0115】PC(EP)用レジスタには、エンドポイ
ントイネーブル(エンドポイントのイネーブルやディス
エーブルの指示)、ハンドシェーク指定(各トランザク
ションで行われるハンドシェークの指定)が設定され
る。
【0116】パケットバッファ(FIFO)用の共用ア
クセス制御レジスタには、バッファ・I/Oポート(C
PUによりPIO転送を行う場合のI/Oポート)が設
定される。また、バッファ・フル/エンプティ(各バッ
ファ領域のフル、エンプティの通知)、バッファ・残り
データサイズ(各バッファ領域の残りデータサイズ)が
設定される。
【0117】レジスタ部70は、インタラプト系レジス
タ、ブロック系レジスタ、DMA制御レジスタなども含
む。
【0118】インタラプト系レジスタは、割り込みのス
テータス(要因)をCPUに対して示すためのインタラ
プト・ステータスレジスタ、割り込みのイネーブル、デ
ィスエーブル(非マスク、マスク)を設定するインタラ
プト・イネーブルレジスタを含む。なお、割り込みに
は、OTGコントローラ20系、ホストコントローラ5
0系、ペリフェラルコントローラ60系の割り込みがあ
る。
【0119】ブロック系レジスタは、ブロック間で共用
されるブロック間共用レジスタや、各ブロック(Xcv
r、OTGC、HC、PC)内で使用されるブロック用
レジスタを含む。
【0120】ブロック間共用レジスタには、各ブロック
のリセットを指示するレジスタなどがある。ブロック用
レジスタには、トランシーバ10(Xcvr)を制御す
るためのレジスタや、OTGコントローラ20(OTG
C)のステートコマンドレジスタや、ホストコントロー
ラ50(HC)のステートコマンドレジスタや、フレー
ム番号を設定するレジスタなどがある。
【0121】以上のように本実施形態では、ホスト動作
時とペリフェラル動作時で共用されるレジスタ(HC/
PC共用レジスタ、共用アクセス制御レジスタ)をレジ
スタ部70に設けている。これにより、ホスト動作時用
のレジスタとペリフェラル動作時用のレジスタを全く別
個に設ける場合に比べて、レジスタ部70を小規模化で
きる。また、CPU上で動作するファームウェア(ドラ
イバ)から見た共用レジスタのアクセスアドレスを、ホ
スト動作時とペリフェラル動作時とで同一にできる。従
って、ファームウェアは、これらの共用レジスタを同一
アドレスで管理できるようになり、ファームウェア処理
を簡素化できる。
【0122】また、HC用レジスタや、PC用レジスタ
を設けることで、ホスト動作時(PIPE)の転送やペ
リフェラル動作時(EP)の転送に特有の転送条件を設
定できる。例えば、トークン発行周期を設定すること
で、図4で説明した手法を用いることなく、ホスト動作
時にインタラプト転送のトークンを所望の周期で発行す
ることが可能になる。また、連続実行回数を設定するこ
とで、ホスト動作時にパイプ領域間の転送比率を任意に
設定できる。また、トータルサイズを設定することで、
ホスト動作時にパイプ領域を介して自動転送されるデー
タのサイズを任意に設定できる。またファームウェア
は、ホスト動作時に、自動トランザクションの開始を指
示したり、自動コントロール転送モードのオン/オフを
指示できるようになる。
【0123】なお、図10に、汎用の転送条件(PIP
E/EP)レジスタTREGa〜TREGe(TREG
x:x=a〜e)のレジスタマップの詳細例を示し、図
11に、コントロール転送用の転送条件レジスタTRE
G0のレジスタマップの詳細例を示す。また、図12
(A)、(B)、図13に、これらの転送条件レジスタ
の各ビットフィールドに設定される転送条件情報(Join
DMA,FIFOClr,ToggleMode,AutoZeroLen,BufferPage,DirP
ID,TranType,EPNumber,MaxPktSize等)の概要を示す。
【0124】例えば図10において、ホスト動作時とペ
リフェラル動作時とで、共用レジスタxConfig_0,xConfi
g_1,xMaxPktSize_H,xMaxPktSize_Lのアクセスアドレス0
x0,0x1,0x2,0x3は同一になる。またホスト動作時とペリ
フェラル動作時とで、これらのレジスタには同内容の情
報がファームウェアにより設定されることになる。
【0125】6.自動トランザクション 図14に、ホストコントローラ50の自動トランザクシ
ョン(IN、OUT)処理時におけるファームウェア処
理のフローチャート例を示す。
【0126】まず、ファームウェア(処理部、ドライ
バ)は、図9等で説明した転送条件レジスタに転送条件
情報(パイプ情報)を設定する(ステップS1)。より
具体的には、転送データのトータルサイズ、マックスパ
ケットサイズ(MaxPktSize)、ページ数(BufferPag
e)、転送方向(IN、OUT又はSETUP)、転送
種別(アイソクロナス、バルク、コントロール、インタ
ラプト)、エンドポイント番号、パイプ領域のトランザ
クションの連続実行回数(転送比率)、インタラプト転
送のトークン発行周期などを、転送条件レジスタに設定
する。
【0127】次に、外部のシステムメモリとパケットバ
ッファ100の間に転送経路を設定する(ステップS
2)。即ち図5のDMAハンドラ回路112を介したD
MA転送経路を設定する。
【0128】次に、ファームウェアは、DMA転送の開
始指示を行う(ステップS3)。即ち、図9のDMA制
御レジスタのDMA転送開始指示ビットをアクティブに
する。なお、CPUによる転送では、図9のバッファ・
I/Oポートにアクセスすることで、パケットバッファ
100にアクセスすることが可能になる。
【0129】次に、ファームウェアは、自動トランザク
ションの開始指示を行う(ステップS4)。即ち、図9
のHC用レジスタ(パイプレジスタ)の自動トランザク
ション開始指示ビットをアクティブにする。これによ
り、ホストコントローラ50による、自動トランザクシ
ョン処理、パケット処理(パケットの生成、分解)、ス
ケジューリング処理が行われる。即ち、ホストコントロ
ーラ50は、トータルサイズで指定されるデータを、マ
ックスパケットサイズのペイロードのパケットを用い
て、転送方向で指定される方向(IN、OUT)で、自
動転送する。
【0130】なお、ステップS3、S4の処理の順序は
問わず、自動トランザクション開始指示の後にDMA転
送の開始指示を行ってもよい。
【0131】次に、ファームウェアは、パイプ転送の完
了を知らせる割り込みが発生するのを待つ(ステップS
5)。そして、割り込みが発生すると、ファームウェア
は、図9のインタラプト系レジスタの割り込みステータ
ス(要因)を調べる。そして、処理が正常完了又はエラ
ー終了する(ステップS6)。
【0132】このように本実施形態によれば、ファーム
ウェアは、各パイプ領域毎に転送条件情報を設定し(ス
テップS1)、DMA転送開始の指示(ステップS3)
と自動トランザクション開始の指示(ステップS4)を
行うだけで、その後のデータ転送処理はホストコントロ
ーラ50のハードウェア回路により自動的に行われるよ
うになる。従って、図3(A)、(B)、図4で説明し
たOHCI準拠の手法に比べて、ファームウェアの処理
負荷が軽減され、低性能のCPUが組み込まれる携帯機
器に最適なデータ転送制御装置を提供できる。
【0133】図15、図16に、ホストコントローラ5
0による自動トランザクション処理時の信号波形例を示
す。なお、これらの図において、「H→P」は「ホスト
からペリフェラルにパケットが転送されること」を表
し、「P→H」は「ペリフェラルからホストにパケット
が転送されること」を表す。
【0134】図15は、INトランザクションの場合
(転送種別がINの場合)の信号波形例である。
【0135】図14のステップS4で、ファームウェア
が自動トランザクションの開始指示を行うと、図15の
C1に示すように、PipeXTranGo(PipeXについてのファ
ームウェアからの転送要求信号)がアクティブになる。
これにより、そのPipeX(X=0〜e)についての、ホ
ストコントローラ50による自動トランザクション処理
が開始する。
【0136】そして、C2に示すようにPipeTranGo(ホ
ストコントローラ50内のHCシーケンス管理回路から
の転送要求信号)がアクティブになると、C3に示すよ
うに、ホストコントローラ50がINトークンパケット
を生成して、USBを介してペリフェラルに転送する。
そして、C4に示すようにペリフェラルからホストコン
トローラ50にINデータパケットが転送されると、ホ
ストコントローラ50は、C5に示すようにハンドシェ
ークパケット(ACK)を生成して、ペリフェラルに転
送する。これにより、C6に示すようにTranCmpACKがア
クティブになる。
【0137】同様にして、C7に示すようにPipeTranGo
がアクティブになると、C8、C9、C10に示すパケ
ット転送が行われ、C11に示すようにTranCmpACKがア
クティブになる。そして、C12に示すようにPipeXTra
nComp(ファームウェアへのIRPのデータ単位の転送
終了通知信号)がアクティブになる。このPipeXTranCom
pによる割り込みにより、ファームウェアは、そのパイ
プについての転送が完了したことを知ることができる。
【0138】なお、PipeXTranCompがアクティブになる
と、C13に示すようにPipeXTranGoが非アクティブに
なり、そのパイプが非転送状態であることが示されるよ
うになる。
【0139】図16は、OUTトランザクションの場合
(転送種別がOUTの場合)の信号波形例である。
【0140】ファームウェアが自動トランザクションの
開始指示を行うと、E1に示すようにPipeXTranGoがア
クティブになり、E2に示すようにPipeTranGoがアクテ
ィブになる。すると、ホストコントローラ50は、E3
に示すようにOUTトークンパケットをペリフェラルに
転送し、E4に示すようにOUTデータパケットを転送
する。そして、E5に示すようにペリフェラルからハン
ドシェークパケット(ACK)が返ってくると、E6に
示すようにTranCmpACKがアクティブになる。
【0141】同様にして、E7に示すようにPipeTranGo
がアクティブになると、E8、E9、E10に示すパケ
ット転送が行われ、E11に示すようにTranCmpACKがア
クティブになる。そして、E12に示すようにPipeXTra
nCompがアクティブになる。このPipeXTranCompによる割
り込みにより、ファームウェアは、そのパイプについて
の転送が完了したことを知ることができる。なお、Pipe
XTranCompがアクティブになると、E13に示すようにP
ipeXTranGoが非アクティブになる。
【0142】7.パケットバッファの共用 本実施形態では図17(A)に示すように、ホスト動作
時においては、インターフェース回路110(他のバ
ス)とパケットバッファ100の間のデータ転送経路3
00と、パケットバッファ100とホストコントローラ
50の間のデータ転送経路302を設定する。更に、ホ
ストコントローラ50とトランシーバ10(USB)の
間のデータ転送経路304を設定する。これにより、パ
ケットバッファ100のパイプ領域PIPE0〜PIP
Eeを介して、DMAバス又はCPUバス(他のバス)
とUSB(バス)の間で、データ転送(送信又は受信)
を行うことが可能になる。
【0143】一方、図17(B)に示すように、ペリフ
ェラル動作時においては、インターフェース回路110
(他のバス)とパケットバッファ100の間のデータ転
送経路310と、パケットバッファ100とペリフェラ
ルコントローラ60の間のデータ転送経路312を設定
する。更に、ペリフェラルコントローラ60とトランシ
ーバ10(USB)の間のデータ転送経路314を設定
する。そして、パケットバッファ100のエンドポイン
ト領域EP0〜EPeを介して、DMAバス又はCPU
バス(他のバス)とUSB(バス)の間で、データ転送
(送信又は受信)を行うことが可能になる。
【0144】図17(A)、(B)に示すようにデータ
転送経路300、302、304、310、312、3
14を設定して、データ転送を行うことで、パケットバ
ッファ100を、ホスト動作時(ホストコントローラ5
0)とペリフェラル動作時(ペリフェラルコントローラ
60)で共用できるようになる。これにより、ホスト動
作(HC)用のパケットバッファとペリフェラル動作
(PC)用のパケットバッファを別々に用意する場合に
比べて、データ転送制御装置の小規模化を図れる。
【0145】なお、データ転送経路300、302、3
10、312の設定(調停)は、OTGコントローラ2
0からのHC/PCイネーブルに基づき、バッファコン
トローラ80が行う。一方、データ転送経路304、3
14の設定(接続)は、OTGコントローラ20からの
HC/PCイネーブルに基づき、HC/PC切り替え回
路30が行う。
【0146】8.変形例 図18に、データ転送制御装置の他の構成例を示す。
【0147】図18では図5とは異なり、転送条件レジ
スタ部を、ホストコントローラ50(ホスト動作時)と
ペリフェラルコントローラ60(ペリフェラル動作時)
で、共用していない。即ち、図18では、ホスト動作時
にホストコントローラ50が使用する転送条件レジスタ
部74と、ペリフェラル動作時にペリフェラルコントロ
ーラ60が使用する転送条件レジスタ部76を、共用せ
ずに、別個に設けている。
【0148】図18では、図5とは異なり、転送条件レ
ジスタ部が共用されないため、図5に比べてレジスタ部
の回路規模が大きくなってしまう。
【0149】しかしながら、図18においても、パケッ
トバッファ100については、図17(A)、(B)で
説明した手法により、ホストコントローラ50(ホスト
動作時)とペリフェラルコントローラ60(ペリフェラ
ル動作時)とで共用される。従って、これにより、デー
タ転送制御装置の回路規模の増加を、パケットバッファ
100を共用しない場合に比べて、抑えることが可能に
なる。
【0150】なお、ホスト動作時にパケットバッファ1
00に確保されるパイプ領域と、ペリフェラル動作時に
パケットバッファ100に確保されるエンドポイント領
域を、別領域に設定する変形実施も可能である。
【0151】9.各ブロックの詳細な構成例 次に各ブロックの詳細な構成例について説明する。
【0152】9.1 OTGコントローラ 図19に、OTGコントローラ20の構成例を示す。
【0153】OTGコントローラ20は、OTGレジス
タ部22を含む。このOTGレジスタ部22は、OTG
コントローラ20のモニタレジスタや制御レジスタを含
む。またファームウェア(CPU)により書き込まれる
OTGステートコマンドをデコードする回路を含む。
【0154】またOTGコントローラ20はOTG制御
回路23を含む。そして、このOTG制御回路23は、
OTGステートの管理を行うOTG管理回路24、ID
ピンの電圧レベルを検出するID検出回路25、VBU
Sの電圧レベルを検出するVBUS検出回路26、DP
及びDMのラインステートを検出するラインステート検
出回路27を含む。
【0155】またOTGコントローラ20は、OTGス
テートの遷移判断条件の1つである時間を計測するタイ
マ28を含む。
【0156】OTGステートを遷移させるために検出す
べき情報は、ID、VBUSの電圧レベル、DP/DM
のラインステートである。本実施形態のOTGコントロ
ーラ20は、これらの情報を検出し、モニタレジスタを
介してファームウェア(CPU)に伝える。
【0157】ファームウェアは、これらの検出情報に基
づいて自身のステートを遷移させると共に、次に遷移す
べきステートを、OTGステートコマンドを用いてOT
Gコントローラ20に伝える。
【0158】OTGコントローラ20は、OTGステー
トコマンドをデコードし、そのデコード結果に基づい
て、VBUSのドライブ制御、プルアップ/プルダウン
抵抗の接続制御等を行い、図2(A)、(B)で説明し
たSRPやHNPを実現する。
【0159】このように本実施形態では、ステート毎の
OTG制御はOTGコントローラ20が担当し、ファー
ムウェアはステートの遷移管理に専念できる。この結
果、全てのステート制御をファームウェアで実現する場
合に比べて、ファームウェア(CPU)の処理負荷を軽
減できると共に、効率的なファームウェア開発が可能に
なる。
【0160】なお、OTGのステート遷移の判断を、フ
ァームウェアが行わずに、ハードウェア回路が行うよう
にしてもよい。或いは、OTGコントローラ20のほと
んど全ての処理(例えばVBUS制御、プルアップ/プ
ルダウン抵抗制御、ID検出、VBUS検出、ラインス
テート検出以外の処理)をファームウェア(ソフトウェ
ア)により実現してもよい。
【0161】9.2 ホストコントローラ、ペリフェラ
ルコントローラ 図20(A)に、ホストコントローラ50の構成例を示
す。
【0162】ホストコントローラ50はHCシーケンス
管理回路52を含む。このHCシーケンス管理回路52
は、パイプ転送(パイプ領域を用いたデータ転送)の調
停、時間管理、パイプ転送のスケジューリング、再送管
理などを行う。
【0163】より具体的にはHCシーケンス管理回路5
2は、フレーム番号のカウントや、SOF(Start-Of-F
rame)パケットの送信指示を行う。また、アイソクロナ
ス転送を各フレームの先頭で優先的に実行するための処
理を行ったり、インタラプト転送をアイソクロナス転送
の次に優先的に取り扱うための処理を行う。また、パイ
プ転送の順序にしたがって各パイプ転送を指示する処理
を行う。また、トランザクションの連続実行回数を管理
したり、残りフレーム時間の確認処理を行う。また、ペ
リフェラルから返ってきたハンドシェークパケット(A
CK、NAK)に対する処理を行う。また、トランザク
ション実行時のエラー処理を行う。
【0164】ホストコントローラ50はターゲットパイ
プ管理回路54を含む。このターゲットパイプ管理回路
54は、レジスタ部70の転送条件レジスタに設定され
た転送条件情報のハンドリング処理などを行う。
【0165】より具体的にはターゲットパイプ管理回路
54は、転送条件情報の選択処理や、割り込み信号の生
成処理を行う。また自動トランザクションの開始が指示
された場合に、そのパイプ領域の転送データのトータル
サイズをロードする。そして、残り転送データサイズの
カウント(デクリメント)処理を行う。また、バッファ
コントローラ80へのデータの送受信の際にバッファ
(FIFO)領域の状態を確認する処理を行う。また、
トランザクション管理回路56への転送指示を行う。ま
た、予期しないショートパケットの受信の判断処理や、
マックスパケットサイズ以上のパケットの受信の判断処
理を行う。また、零長パケットを自動転送するモードが
設定されている場合には、最後の零長パケットの送信を
トランザクション管理回路56に指示する。また、自動
コントロール転送モードでのシーケンス管理を行う。
【0166】ホストコントローラ50はトランザクショ
ン管理回路56を含む。このトランザクション管理回路
56は、転送パケットの種類や転送順序の管理(トラン
ザクションのシーケンス管理)を行う。また、タイムア
ウトの監視処理を行う。また、トランザクション終了の
通知処理を行う。
【0167】ホストコントローラ50はパケットハンド
ラ回路58を含む。このパケットハンドラ回路58は、
パケットの生成、分解処理を行う。また、PIDのチェ
ックやCRCのデコード、エンコードを行う。また、バ
ッファ領域のパケットのペイロードのリード、ライト処
理や、SOFパケットの送信処理を行う。また、送受信
データのカウント処理を行う。
【0168】図20(B)にペリフェラルコントローラ
60の構成例を示す。
【0169】ペリフェラルコントローラ60は、トラン
ザクション管理回路62、パケットハンドラ回路64を
含む。これらのトランザクション管理回路62、パケッ
トハンドラ回路64は、ホストコントローラ50のトラ
ンザクション管理回路56、パケットハンドラ回路58
とほぼ同様の処理を行う。
【0170】9.3 バッファコントローラ 図21にバッファコントローラ80の構成例を示す。
【0171】バッファコントローラ80は領域確保(al
location)回路82を含む。この領域確保回路82は、
パケットバッファ100に、バッファ領域(ホスト動作
時にパイプ領域に設定され、ペリフェラル動作時にエン
ドポイント領域に設定される領域)を確保する回路であ
る。
【0172】領域確保回路82は領域計算回路83を含
む。この領域計算回路83は、マックスパケットサイズ
(広義にはページサイズ)やページ数に基づいて、バッ
ファ領域の領域サイズ、スタートアドレス、エンドアド
レスなどを計算する回路である。
【0173】例えば図22(A)に示すバッファ領域P
IPE0/EP0、PIPEa/EPa、PIPEb/
EPb、PIPEc/EPcでは、マックスパケットサ
イズ(MaxPktSize)が、各々、32、64、64、64
バイトに設定され、ページ数(BufferPage)が、各々、
1、1、3、2ページに設定されている。領域計算回路
83は、これらのマックスパケットサイズ、ページ数な
どに基づいて、バッファ領域PIPE0/EP0〜PI
PEc/EPcの領域サイズ、スタートアドレス、エン
ドアドレスを計算する。例えば図22(A)において、
PIPE0/EP0、PIPEa/EPa、PIPEb
/EPb、PIPEc/EPcの領域サイズは、各々、
32(=32×1)、64(=64×1)、192(=
64×3)、128(=64×2)バイトと計算される
ことになる。
【0174】ポインタ割り当て回路84は、各バッファ
領域の書き込みポインタWP(WP0、WPa、WP
b、WPc)、読み出しポインタRP(RP0、RP
a、RPb、RPc)を、DMA用ポインタ、CPU用
ポインタ、USB用ポインタに割り当てる回路である。
【0175】例えば図22(B)に示すように、データ
送信時(DMA又はCPUからパケットバッファ100
を介してUSB側にデータが転送される時)であり、且
つ、DMA転送使用時には、そのバッファ領域の書き込
みポインタWPはDMA(DMAアクセス)用のポイン
タに割り当てられ、読み出しポインタRPはUSB(U
SBアクセス)用のポインタに割り当てられる。また、
データ送信時であり且つCPU(PIO)転送使用時に
は、そのバッファ領域の書き込みポインタWPはCPU
(CPUアクセス)用のポインタに割り当てられ、読み
出しポインタRPはUSB用のポインタに割り当てられ
る。
【0176】一方、図22(C)に示すように、データ
受信時(USBからパケットバッファ100を介してD
MA又はCPU側にデータが転送される時)であり、且
つ、DMA転送使用時には、そのバッファ領域の書き込
みポインタWPはUSB用ポインタに割り当てられ、読
み出しポインタRPはDMA用ポインタに割り当てられ
る。また、データ受信時であり且つCPU転送使用時に
は、そのバッファ領域の書き込みポインタWPはUSB
用ポインタに割り当てられ、読み出しポインタRPはC
PU用ポインタに割り当てられる。
【0177】なお、各バッファ領域の書き込みポインタ
WP、読み出しポインタRPのポインタ情報(位置情
報)は、レジスタ部70の各転送条件レジスタ(PIP
E/EPレジスタ)に保持される。
【0178】ポインタ管理回路86は、ポインタの更新
を行いながら、パケットバッファ100にアクセスする
ための実アドレスを生成する回路である。
【0179】ポインタ管理回路86は、CPU用アドレ
ス生成回路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の各転
送条件レジスタに書き戻される。
【0180】バッファ管理回路90は、パケットバッフ
ァ100へのアクセスを管理する回路である。
【0181】バッファ管理回路90はバッファインター
フェース回路92を含む。このバッファインターフェー
ス回路92は、ポインタ管理回路86からのCPU用ア
ドレス、DMA用アドレス、USB用アドレスなどを受
け、パケットバッファ100へのデータの入出力や、ア
ドレス、出力イネーブル、ライトイネーブル、リードイ
ネーブルなどの出力を行う。
【0182】バッファ管理回路90は調停回路93を含
む。この調停回路93は、CPU(CPUインターフェ
ース回路)、DMA(DMAハンドラ回路)、USB
(ホストコントローラ又はペリフェラルコントローラ)
からのアクセスを調停する回路である。この調停結果に
基づいて、CPU用アドレス、DMA用アドレス、US
B用アドレスのいずれかが、パケットバッファ100の
アクセス・アドレスとして出力され、CPU、DMA又
はUSBとパケットバッファ100との間のデータ転送
経路が設定される。
【0183】HC/PCセレクタ94は、バッファ管理
回路90(バッファコントローラ80)とホストコント
ローラ50(HC)又はペリフェラルコントローラ60
(PC)との間の接続の切り替え制御を行う。例えばホ
スト動作時には、ホストコントローラ50とバッファ管
理回路90を接続し、ペリフェラル動作時には、ペリフ
ェラルコントローラ60とバッファ管理回路90を接続
する。なお、この接続の切り替え制御は、OTGコント
ローラ20(OTGC)からのHC/PCイネーブル信
号に基づいて行う。
【0184】10.ファームウェアの処理 次に、ファームウェア(処理部)の処理の詳細例につい
て説明する。
【0185】図23は、ホスト動作時におけるファーム
ウェア処理のフローチャートである。
【0186】まず、パイプ(バッファ)領域を既に確保
しているか否かを確認し(ステップS11)、確保して
いる場合にはパイプ領域のデータクリア指示[FIFOCl
r]を行う(ステップS12)。
【0187】次に、エンドポイント(転送条件)情報を
転送条件レジスタにセットする(ステップS13)。即
ち、エンドポイント番号[EPNumber]、ファンクション
アドレス[FuncAddr]、IN/OUT/SETUPなどの転送方向
[DirPID]、アイソクロナス、バルク、コントロール、
インタラプトなどの転送種別[TranType]、マックスパ
ケットサイズ[MaxPktSize]などをセットする。
【0188】次に、転送種別[TranType]を判断し(ス
テップS14)、転送種別がアイソクロナスの場合には
ステップS18に移行する。転送種別がインタラプト転
送の場合にはトークン発行周期[Interval]を指定する
と共にトグルモード[ToggleMode]を指定する(ステッ
プS15、S16)。転送種別が、アイソクロナスでも
インタラプトでもない場合(バルク、コントロールの場
合)には、HCのスケジューリング[連続実行回数:Co
ntinuity]を指定する(ステップS17)。
【0189】次に、トグルビットの初期値[Toggle]を
セットし、転送データのトータルサイズ[TotalSize]
をセットする(ステップS18、S19)。なお、アイ
ソクロナス転送の場合はトグルビットの初期値のセット
は不要となる。また、ステップS13〜S19の設定順
序は任意である。
【0190】次に、パイプ(バッファ)領域のページ数
[BufferPage]をセットし(ステップS20)、パイプ
領域確保の指示[SetAllocation]を行う(ステップS
21)。
【0191】次に、DMAを用いるか否かを判断し、用
いる場合にはDMAバスの接続指示[JoinDMA]を行う
(ステップS22、S23)。また、自動トランザクシ
ョンの開始指示[TranGo]を行う(ステップS24)。
【0192】そして、割り込みが発生するのを待ち(ス
テップS25)、正常完了、STALL返答、ハンドシ
ェーク待ちのタイムアウト処理などを行う(ステップS
26)。
【0193】図24は、ペリフェラル動作時におけるフ
ァームウェア処理のフローチャートである。
【0194】まず、エンドポイント(バッファ)領域の
データクリア指示[FIFOClr]を行う(ステップS3
1)。そして、トグルビット初期値[Toggle]をセット
する(ステップS32)。
【0195】次にエンドポイント(転送条件)情報をセ
ットする(ステップS33)。即ち、エンドポイント番
号[EPNumber]、転送方向[DirPID]、転送種別[Tran
Type]、マックスパケットサイズ[MaxPktSize]などを
セットする。
【0196】次に、エンドポイントイネーブル指示[En
EndPoint]を行う(ステップS34)。そして、転送種
別[TranType]を判断し、インタラプト転送の場合には
トグルモード[ToggleMode]を指定する(ステップS3
5、S36)。
【0197】次に、エンドポイント(バッファ)領域の
ページ数[BufferPage]をセットし(ステップS3
7)、エンドポイント領域確保の指示[SetAllocatio
n]を行う(ステップS38)。
【0198】次に、DMAを用いるか否かを判断し、D
MAを用いる場合にはDMAバスの接続指示[JoinDM
A]を行う(ステップS39、S40)。
【0199】次に、ホストからのトークン受信の持ち状
態になる(ステップS41)。そして、割り込みが発生
するのを待ち(ステップS42)、正常完了(ACK受
信)、NAK返信、STALL返信 、ハンドシェーク
待ちのタイムアウト処理などを行う(ステップS4
3)。
【0200】11.電子機器 次に、本実施形態のデータ転送制御装置を含む電子機器
の例について説明する。
【0201】例えば図25(A)に電子機器の1つであ
るプリンタの内部ブロック図を示し、図26(A)にそ
の外観図を示す。CPU510(処理部)はシステム全
体の制御などを行う。操作部511はプリンタをユーザ
が操作するためのものである。ROM516には、制御
プログラム、フォントなどが格納され、RAM517
(システムメモリ)はCPU510のワーク領域として
機能する。DMAC518は、CPU510を介さずに
データ転送を行うためのDMAコントローラである。表
示パネル519はプリンタの動作状態をユーザに知らせ
るためのものである。
【0202】USBを介してパーソナルコンピュータ、
デジタルカメラ、デジタルビデオカメラなどの他の機器
から送られてきたシリアルの印刷データ(印字データ、
画像データ)は、データ転送制御装置500によりパラ
レルの印刷データに変換される。そして、変換後のパラ
レル印刷データは、CPU510又はDMAC518に
より、印刷処理部(プリンタエンジン)512に送られ
る。そして、印刷処理部512においてパラレル印刷デ
ータに対して所与の処理が施され、プリントヘッダなど
からなる印刷部(データの出力処理を行う装置)514
により紙に印刷されて出力される。
【0203】図25(B)に電子機器の1つであるデジ
タルカメラの内部ブロック図を示し、図26(B)にそ
の外観図を示す。CPU520はシステム全体の制御な
どを行う。操作部521(シャッターボタン、操作ボタ
ン等)はデジタルカメラをユーザが操作するためのもの
である。ROM526には制御プログラムなどが格納さ
れ、RAM527はCPU520のワーク領域として機
能する。DMAC528はDMAコントローラである。
【0204】CCD、レンズなどからなる撮像部(デー
タの取り込み処理を行う装置)522により画像が撮像
され、撮像された画像のデータは画像処理部524によ
り処理される。そして、処理後の画像データは、CPU
520又はDMAC528によりデータ転送制御装置5
00に送られる。データ転送制御装置500は、このパ
ラレルの画像データをシリアルデータに変換し、USB
を介してプリンタ、ストレージ装置、パーソナルコンピ
ュータなどの他の機器に送信する。
【0205】図25(C)に電子機器の1つであるCD
−RWドライブ(ストレージ装置)の内部ブロック図を
示し、図26(C)にその外観図を示す。CPU530
はシステム全体の制御などを行う。操作部531はCD
−RWをユーザが操作するためのものである。ROM5
36には制御プログラムなどが格納され、RAM537
はCPU530のワーク領域として機能する。DMAC
538はDMAコントローラである。
【0206】レーザ、モータ、光学系などからなる読み
取り&書き込み部(データの取り込み処理を行う装置又
はデータの記憶処理を行うための装置)533によりC
D−RW532から読み取られたデータは、信号処理部
534に入力され、エラー訂正処理などの所与の信号処
理が施される。そして、信号処理が施されたデータが、
CPU530又はDMAC538によりデータ転送制御
装置500に送られる。データ転送制御装置500は、
このパラレルのデータをシリアルデータに変換し、US
Bを介して他の機器に送信する。
【0207】一方、USBを介して他の機器から送られ
てきたシリアルのデータは、データ転送制御装置500
によりパラレルのデータに変換される。そして、このパ
ラレルデータは、CPU530又はDMAC538によ
り信号処理部534に送られる。そして、信号処理部5
34においてこのパラレルデータに対して所与の信号処
理が施され、読み取り&書き込み部533によりCD−
RW532に記憶される。
【0208】なお、図25(A)、(B)、(C)にお
いて、CPU510、520、530の他に、データ転
送制御装置500でのデータ転送制御のためのCPUを
別に設けるようにしてもよい。
【0209】本実施形態のデータ転送制御装置を電子機
器に用いれば、OTG機能を有する電子機器を実現でき
る。即ち、電子機器にホストとしての役割を持たせた
り、デバイスとしての役割を持たせることが可能にな
り、これまでに存在しなかったアプリケーションを創出
できる。
【0210】また本実施形態のデータ転送制御装置を電
子機器に用いれば、電子機器に組み込まれるCPU(処
理部)の処理負荷が軽減され、安価なCPUを用いるこ
とが可能になる。また、CPUが、データ転送制御処理
以外の他の処理を余裕を持って行うことが可能になり、
電子機器の性能向上や低コスト化を図れる。また、CP
U上で動作するファームウェアのプログラムを簡素化で
き、電子機器の開発期間の短縮化を図れる。
【0211】なお本実施形態のデータ転送制御装置を適
用できる電子機器としては、上記以外にも例えば、種々
の光ディスクドライブ(CD−ROM、DVD)、光磁
気ディスクドライブ(MO)、ハードディスクドライ
ブ、デジタルビデオカメラ、携帯電話、スキャナ、T
V、VTR、オーディオ機器、電話機、プロジェクタ、
パーソナルコンピュータ、電子手帳、或いはワードプロ
セッサなど種々のものを考えることができる。
【0212】なお、本発明は本実施形態に限定されず、
本発明の要旨の範囲内で種々の変形実施が可能である。
【0213】例えば、本発明のデータ転送制御装置の構
成は、図5等で説明した構成に限定されるものではな
く、種々の変形実施が可能である。
【0214】また、データ転送制御装置の各ブロック
(HC、PC、OTGC等)の構成も、本実施形態で説
明したものに限定されず、種々の変形実施が可能であ
る。
【0215】また、転送条件レジスタに設定される転送
条件情報も、本実施形態で説明した情報に限定されるも
のではない。
【0216】また、明細書中の記載において広義な用語
(ステートコントローラ、処理部、転送コントローラ、
バス、転送比率情報、バッファ領域等)として引用され
た用語(OTGコントローラ、CPU・ファームウェ
ア、ホストコントローラ・ペリフェラルコントローラ、
USB、連続実行回数、パイプ領域・エンドポイント領
域等)は、明細書中の他の記載においても広義な用語に
置き換えることができる。
【0217】また、本発明のうち従属請求項に係る発明
においては、従属先の請求項の構成要件の一部を省略す
る構成とすることもできる。また、本発明の1の独立請
求項に係る発明の要部を、他の独立請求項に従属させる
こともできる。
【0218】また、本実施形態ではUSBのOTG規格
への適用例を説明したが、本発明が適用されるのはOT
G規格に限定されない。例えばOTG規格と同様の思想
に基づく規格やOTG規格を発展させた規格におけるデ
ータ転送にも本発明は適用できる。
【図面の簡単な説明】
【図1】図1(A)、(B)、(C)は、USBのOT
G規格について説明するための図である。
【図2】図2(A)、(B)は、SRPやHNPの手順
について説明するための図である。
【図3】図3(A)、(B)は、OHCIのリスト構造
のディスクリプタなどについて説明するための図であ
る。
【図4】OHCIの2分木構造のディスクリプタについ
て説明するための図である。
【図5】本実施形態のデータ転送制御装置の構成例を示
す図である。
【図6】図6(A)、(B)は、パイプ領域、エンドポ
イント領域について説明するための図である。
【図7】データ転送制御装置のホスト時の動作について
説明するための図である。
【図8】データ転送制御装置のペリフェラル時の動作に
ついて説明するための図である。
【図9】レジスタ部について説明するための図である。
【図10】汎用転送条件レジスタのレジスタマップの詳
細例である。
【図11】コントロール転送用転送条件レジスタのレジ
スタマップの詳細例である。
【図12】図12(A)、(B)は、転送条件レジスタ
の各ビットフィールドに設定される転送条件情報の概要
について示す図である。
【図13】転送条件レジスタの各ビットフィールドに設
定される転送条件情報の概要について示す図である。
【図14】ファームウェアの処理例を説明するためのフ
ローチャートである。
【図15】INトランザクションでの自動トランザクシ
ョン処理の信号波形例である。
【図16】OUTトランザクションでの自動トランザク
ション処理の信号波形例である。
【図17】図17(A)、(B)は、データ転送経路の
設定手法について説明するための図である。
【図18】データ転送制御装置の他の構成例を示す図で
ある。
【図19】OTGコントローラの詳細な構成例を示す図
である。
【図20】図20(A)、(B)は、ホストコントロー
ラ、ペリフェラルコントローラの詳細な構成例を示す図
である。
【図21】バッファコントローラの詳細な構成例を示す
図である。
【図22】図22(A)、(B)、(C)は、領域確保
手法やポインタ割り当て手法について説明するための図
である。
【図23】ホスト動作時におけるファームウェアの詳細
な処理例を示すフローチャートである。
【図24】ペリフェラル動作時におけるファームウェア
の詳細な処理例を示すフローチャートである。
【図25】図25(A)、(B)、(C)は、種々の電
子機器の内部ブロック図の例である。
【図26】図26(A)、(B)、(C)は、種々の電
子機器の外観図の例である。
【符号の説明】
PIPE0〜PIPEe パイプ(バッファ)領域 EP0〜EPe エンドポイント(バッファ)
領域 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 クロックコントローラ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 神原 義幸 長野県諏訪市大和3丁目3番5号 セイコ ーエプソン株式会社内 (72)発明者 風間 宏信 長野県諏訪市大和3丁目3番5号 セイコ ーエプソン株式会社内 Fターム(参考) 5B014 EB03 GE01 5B077 NN02

Claims (16)

    【特許請求の範囲】
  1. 【請求項1】 バスを介したデータ転送のためのデータ
    転送制御装置であって、 ホストの役割として動作するホスト動作のステートと、
    ペリフェラルの役割として動作するペリフェラル動作の
    ステートを含む複数のステートの制御を行うステートコ
    ントローラと、 物理層回路を含むトランシーバに対してホスト動作時に
    接続され、ホストとしてのデータ転送を行うホストコン
    トローラと、 前記トランシーバに対してペリフェラル動作時に接続さ
    れ、ペリフェラルとしてのデータ転送を行うペリフェラ
    ルコントローラと、 ホスト動作時とペリフェラル動作時とで共用される共用
    レジスタを含むレジスタ部と、 前記ホストコントローラ、前記ペリフェラルコントロー
    ラにより転送されるデータを記憶し、前記ホストコント
    ローラ、前記ペリフェラルコントローラにより共用され
    るパケットバッファに対して、アクセス制御を行うバッ
    ファコントローラと、 を含むことを特徴とするデータ転送制御装置。
  2. 【請求項2】 請求項1において、 前記レジスタ部が、 データ転送の転送条件情報が各転送条件レジスタに設定
    される複数の転送条件レジスタを含み、 前記転送条件レジスタが、 ホスト動作時とペリフェラル動作時とで共用される共用
    転送条件レジスタと、ホスト動作時に使用されるホスト
    用転送条件レジスタと、ペリフェラル動作時に使用され
    るペリフェラル用転送条件レジスタとを含むことを特徴
    とするデータ転送制御装置。
  3. 【請求項3】 請求項2において、 前記共用転送条件レジスタには、 データの転送方向、データ転送の転送種別、及びマック
    スパケットサイズが、転送条件情報として設定されるこ
    とを特徴とするデータ転送制御装置。
  4. 【請求項4】 請求項3において、 前記ホスト用転送条件レジスタには、 インタラプト転送におけるトークン発行周期、複数のパ
    イプ領域間の転送比率情報、エンドポイントのファンク
    ションアドレス、及びエンドポイントとの間で転送され
    るデータのトータルサイズの少なくとも1つが、転送条
    件情報として設定されることを特徴とするデータ転送制
    御装置。
  5. 【請求項5】 請求項2乃至4のいずれかにおいて、 ホスト動作時には、 前記ホストコントローラが、前記共用転送条件レジスタ
    と前記ホスト用転送条件レジスタに設定される転送条件
    情報に基づいて、データを転送し、 ペリフェラル動作時には、 前記ペリフェラルコントローラが、前記共用転送条件レ
    ジスタと前記ペリフェラル用転送条件レジスタに設定さ
    れる転送条件情報に基づいて、データを転送することを
    特徴とするデータ転送制御装置。
  6. 【請求項6】 請求項1乃至5のいずれかにおいて、 前記レジスタ部が、 パケットバッファのアクセス制御レジスタであり、ホス
    ト動作時とペリフェラル動作時で共用される共用アクセ
    ス制御レジスタを含み、 前記バッファコントローラが、 ホスト動作時とペリフェラル動作時において、前記共用
    アクセス制御レジスタに基づいて、パケットバッファの
    アクセス制御を行うことを特徴とするデータ転送制御装
    置。
  7. 【請求項7】 請求項1乃至6のいずれかにおいて、 ホスト動作時とペリフェラル動作時において、処理部に
    よる共用レジスタのアクセスアドレスが、同一に設定さ
    れていることを特徴とするデータ転送制御装置。
  8. 【請求項8】 請求項1乃至7のいずれかにおいて、 前記バスとは異なる他のバスとパケットバッファとの間
    でのデータ転送を行うインターフェース回路を含み、 前記バッファコントローラが、 ホスト動作時には、前記インターフェース回路とパケッ
    トバッファの間のデータ転送経路と、パケットバッファ
    と前記ホストコントローラの間のデータ転送経路を設定
    し、 ペリフェラル動作時には、前記インターフェース回路と
    パケットバッファの間のデータ転送経路と、パケットバ
    ッファと前記ペリフェラルコントローラの間のデータ転
    送経路を設定することを特徴とするデータ転送制御装
    置。
  9. 【請求項9】 請求項1乃至8のいずれかにおいて、 ホスト動作時には、 各エンドポイントとの間で転送されるデータが各パイプ
    領域に記憶される複数のパイプ領域が、パケットバッフ
    ァに確保され、前記ホストコントローラが、パイプ領域
    とそのパイプ領域に対応するエンドポイントとの間でデ
    ータを転送し、 ペリフェラル動作時には、 ホストとの間で転送されるデータが各エンドポイント領
    域に記憶される複数のエンドポイント領域が、パケット
    バッファに確保され、前記ペリフェラルコントローラ
    が、エンドポイント領域とホストとの間でデータを転送
    することを特徴とするデータ転送制御装置。
  10. 【請求項10】 請求項9において、 前記レジスタ部が、 データ転送の転送条件情報が各転送条件レジスタに設定
    される複数の転送条件レジスタを含み、 前記転送条件レジスタが、 ホスト動作時とペリフェラル動作時とで共用される共用
    転送条件レジスタと、ホスト動作時に使用されるホスト
    用転送条件レジスタと、ペリフェラル動作時に使用され
    るペリフェラル用転送条件レジスタとを含み、 ホスト動作時には、 前記ホストコントローラが、前記共用転送条件レジスタ
    と前記ホスト用転送条件レジスタに設定される転送条件
    情報に基づいて、パイプ領域とそのパイプ領域に対応す
    るエンドポイントとの間でデータを転送し、 ペリフェラル動作時には、 前記ペリフェラルコントローラが、前記共用転送条件レ
    ジスタと前記ペリフェラル用転送条件レジスタに設定さ
    れる転送条件情報に基づいて、エンドポイント領域とホ
    ストとの間でデータを転送することを特徴とするデータ
    転送制御装置。
  11. 【請求項11】 バスを介したデータ転送のためのデー
    タ転送制御装置であって、 ホストの役割として動作するホスト動作のステートと、
    ペリフェラルの役割として動作するペリフェラル動作の
    ステートを含む複数のステートの制御を行うステートコ
    ントローラと、 物理層回路を含みバスに接続されるトランシーバに対し
    てホスト動作時に接続され、ホストとしてのデータ転送
    を行うホストコントローラと、 前記トランシーバに対してペリフェラル動作時に接続さ
    れ、ペリフェラルとしてのデータ転送を行うペリフェラ
    ルコントローラと、 前記ホストコントローラ、前記ペリフェラルコントロー
    ラにより転送されるデータを記憶し、前記ホストコント
    ローラ、前記ペリフェラルコントローラにより共用され
    るパケットバッファに対して、アクセス制御を行うバッ
    ファコントローラとを含み、 ホスト動作時には、 各エンドポイントとの間で転送されるデータが各パイプ
    領域に記憶される複数のパイプ領域が、パケットバッフ
    ァに確保され、前記ホストコントローラが、パイプ領域
    とそのパイプ領域に対応するエンドポイントとの間でデ
    ータを転送し、 ペリフェラル動作時には、 ホストとの間で転送されるデータが各エンドポイント領
    域に記憶される複数のエンドポイント領域が、パケット
    バッファに確保され、前記ペリフェラルコントローラ
    が、エンドポイント領域とホストとの間でデータを転送
    することを特徴とするデータ転送制御装置。
  12. 【請求項12】 請求項11において、 前記バスとは異なる他のバスとパケットバッファとの間
    でのデータ転送を行うインターフェース回路を含み、 前記バッファコントローラが、 ホスト動作時には、前記インターフェース回路とパケッ
    トバッファの間のデータ転送経路と、パケットバッファ
    と前記ホストコントローラの間のデータ転送経路を設定
    し、 ペリフェラル動作時には、前記インターフェース回路と
    パケットバッファの間のデータ転送経路と、パケットバ
    ッファと前記ペリフェラルコントローラの間のデータ転
    送経路を設定することを特徴とするデータ転送制御装
    置。
  13. 【請求項13】 請求項1乃至12のいずれかにおい
    て、 USB(Universal Serial Bus)のOTG(On−Th
    e−Go)規格に準拠したデータ転送を行うことを特徴
    とするデータ転送制御装置。
  14. 【請求項14】 請求項1乃至13のいずれかのデータ
    転送制御装置と、 前記データ転送制御装置及びバスを介して転送されるデ
    ータの出力処理又は取り込み処理又は記憶処理を行う装
    置と、 前記データ転送制御装置のデータ転送を制御する処理部
    と、 を含むことを特徴とする電子機器。
  15. 【請求項15】 バスを介したデータ転送のためのデー
    タ転送制御方法であって、 ホストの役割として動作するホスト動作のステートと、
    ペリフェラルの役割として動作するペリフェラル動作の
    ステートを含む複数のステートの制御を行い、 ホスト動作時には、物理層回路を含みバスに接続される
    トランシーバにホストコントローラを接続し、前記ホス
    トコントローラを用いてホストとしてのデータ転送を行
    い、 ペリフェラル動作時には、前記トランシーバにペリフェ
    ラルコントローラを接続し、前記ペリフェラルコントロ
    ーラを用いてペリフェラルとしてのデータ転送を行い、 レジスタ部が含む共用レジスタを、ホスト動作時とペリ
    フェラル動作時とで共用し、 前記ホストコントローラ、前記ペリフェラルコントロー
    ラにより転送されるデータを記憶するパケットバッファ
    を、前記ホストコントローラ、前記ペリフェラルコント
    ローラにより共用することを特徴とするデータ転送制御
    方法。
  16. 【請求項16】 バスを介したデータ転送のためのデー
    タ転送制御方法であって、 ホストの役割として動作するホスト動作のステートと、
    ペリフェラルの役割として動作するペリフェラル動作の
    ステートを含む複数のステートの制御を行い、 ホスト動作時には、物理層回路を含みバスに接続される
    トランシーバにホストコントローラを接続し、前記ホス
    トコントローラを用いてホストとしてのデータ転送を行
    い、 ペリフェラル動作時には、前記トランシーバにペリフェ
    ラルコントローラを接続し、前記ペリフェラルコントロ
    ーラを用いてペリフェラルとしてのデータ転送を行い、 前記ホストコントローラ、前記ペリフェラルコントロー
    ラにより転送されるデータを記憶するパケットバッファ
    を、前記ホストコントローラ、前記ペリフェラルコント
    ローラにより共用し、 ホスト動作時には、 各エンドポイントとの間で転送されるデータが各パイプ
    領域に記憶される複数のパイプ領域を、パケットバッフ
    ァに確保し、パイプ領域とそのパイプ領域に対応するエ
    ンドポイントとの間でデータを転送し、 ペリフェラル動作時には、 ホストとの間で転送されるデータが各エンドポイント領
    域に記憶される複数のエンドポイント領域を、パケット
    バッファに確保し、エンドポイント領域とホストとの間
    でデータを転送することを特徴とするデータ転送制御方
    法。
JP2002118251A 2002-04-19 2002-04-19 データ転送制御装置及び電子機器 Expired - Fee Related JP3636158B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2002118251A JP3636158B2 (ja) 2002-04-19 2002-04-19 データ転送制御装置及び電子機器
US10/369,630 US7469304B2 (en) 2002-04-19 2003-02-21 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

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002118251A JP3636158B2 (ja) 2002-04-19 2002-04-19 データ転送制御装置及び電子機器

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2003043574A Division JP2003316734A (ja) 2003-02-21 2003-02-21 データ転送制御装置、電子機器及びデータ転送制御方法

Publications (2)

Publication Number Publication Date
JP2003316732A true JP2003316732A (ja) 2003-11-07
JP3636158B2 JP3636158B2 (ja) 2005-04-06

Family

ID=29207860

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002118251A Expired - Fee Related JP3636158B2 (ja) 2002-04-19 2002-04-19 データ転送制御装置及び電子機器

Country Status (2)

Country Link
US (1) US7469304B2 (ja)
JP (1) JP3636158B2 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2412757B (en) * 2004-03-31 2006-02-15 Mentor Graphics Multi-point USB connection
JP2005328280A (ja) * 2004-05-13 2005-11-24 Canon Inc データ処理装置
KR20060070112A (ko) * 2004-12-20 2006-06-23 삼성전자주식회사 Usb otg를 이용한 프로그래밍/업데이트 방법
US20060284876A1 (en) * 2005-06-15 2006-12-21 Low Yun S Method and apparatus for programming an input/output device over a serial bus
US7281074B2 (en) * 2005-06-29 2007-10-09 Intel Corporation Method and apparatus to quiesce USB activities using interrupt descriptor caching and asynchronous notifications
US20070083771A1 (en) * 2005-10-11 2007-04-12 Ping-Hung Chen Portable storage device with data security functions and method of protecting data thereof
JP5506304B2 (ja) * 2009-09-18 2014-05-28 ルネサスエレクトロニクス株式会社 データ処理装置及びデータ処理システム
US8626979B2 (en) * 2010-12-22 2014-01-07 Intel Corporation Common protocol engine interface for a controller interface
KR101920236B1 (ko) * 2012-06-19 2018-11-20 삼성전자주식회사 배터리를 충전하기 위한 방법 및 그 전자 장치
TW201413458A (zh) * 2012-09-20 2014-04-01 Sk Hynix Inc 可提升效能的高速介面控制裝置及資料傳輸方法
CN103576544B (zh) * 2013-11-04 2016-08-17 惠州Tcl移动通信有限公司 一种具有otg功能的终端
MX367638B (es) * 2014-09-15 2019-08-29 Micro Motion Inc Metodo y aparato para controlar modo de dispositivo.
KR20220014708A (ko) * 2020-07-29 2022-02-07 삼성전자주식회사 전력을 공급하는 전자 장치 및 이의 동작 방법

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5784581A (en) * 1996-05-03 1998-07-21 Intel Corporation Apparatus and method for operating a peripheral device as either a master device or a slave device
JPH10301898A (ja) 1997-04-23 1998-11-13 Casio Comput Co Ltd 電子機器及びインタフェース回路
US6105097A (en) * 1998-10-14 2000-08-15 Cypress Semiconductor Corp. Device and method for interconnecting universal serial buses including power management
JP2000134527A (ja) * 1998-10-26 2000-05-12 Minolta Co Ltd デジタルカメラ
JP2000196986A (ja) * 1998-12-25 2000-07-14 Olympus Optical Co Ltd 電子的撮像装置
JP3415567B2 (ja) 2000-06-21 2003-06-09 エヌイーシーマイクロシステム株式会社 Usb転送制御方法およびusbコントローラ
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コントローラ
JP4416315B2 (ja) * 2000-12-21 2010-02-17 キヤノン株式会社 撮影装置、及び撮影装置の制御方法
US7035948B1 (en) * 2001-03-19 2006-04-25 Transdimension, Inc. System and method for USB controllers
JP2002288112A (ja) * 2001-03-27 2002-10-04 Hitachi Ltd 通信制御用半導体装置およびインタフェースシステム
JP3382933B2 (ja) * 2001-07-27 2003-03-04 沖電気工業株式会社 インタフェース回路
US6732218B2 (en) * 2002-07-26 2004-05-04 Motorola, Inc. Dual-role compatible USB hub device and method

Also Published As

Publication number Publication date
US20030200360A1 (en) 2003-10-23
US7469304B2 (en) 2008-12-23
JP3636158B2 (ja) 2005-04-06

Similar Documents

Publication Publication Date Title
JP3636157B2 (ja) データ転送制御装置、電子機器及びデータ転送制御方法
US7349973B2 (en) Data transfer control device, electronic equipment, and data transfer control method
JP3649226B2 (ja) データ転送制御装置、電子機器及びデータ転送制御方法
JP3632695B2 (ja) データ転送制御装置、電子機器及びデータ転送制御方法
JP3870717B2 (ja) データ転送制御装置及び電子機器
JP3726898B2 (ja) データ転送制御装置、電子機器及びデータ転送制御方法
US7337382B2 (en) Data transfer control device, electronic instrument, and data transfer control method
JP3636158B2 (ja) データ転送制御装置及び電子機器
JP3755594B2 (ja) データ転送制御装置及び電子機器
JP3636160B2 (ja) データ転送制御装置、電子機器及びデータ転送制御方法
EP1516261A2 (en) Bus system, station for use in a bus system, and bus interface
JP3614161B2 (ja) データ転送制御装置、電子機器及びデータ転送制御方法
EP1433070A1 (en) Bus system and bus interface
JP4127069B2 (ja) データ転送制御装置、電子機器及びデータ転送制御方法
JP2003316734A (ja) データ転送制御装置、電子機器及びデータ転送制御方法
JP4127071B2 (ja) データ転送制御装置、電子機器及びデータ転送制御方法
JP2003323391A (ja) データ転送制御装置、電子機器及びデータ転送制御方法
JP2003323399A (ja) データ転送制御装置、電子機器及びデータ転送制御方法
JP2004021976A (ja) データ転送制御装置、電子機器及びデータ転送制御方法

Legal Events

Date Code Title Description
A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20040331

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20040517

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