JP2003323226A - クロック制御回路、データ転送制御装置及び電子機器 - Google Patents

クロック制御回路、データ転送制御装置及び電子機器

Info

Publication number
JP2003323226A
JP2003323226A JP2002127159A JP2002127159A JP2003323226A JP 2003323226 A JP2003323226 A JP 2003323226A JP 2002127159 A JP2002127159 A JP 2002127159A JP 2002127159 A JP2002127159 A JP 2002127159A JP 2003323226 A JP2003323226 A JP 2003323226A
Authority
JP
Japan
Prior art keywords
clock
state
output
circuit
control
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
JP2002127159A
Other languages
English (en)
Other versions
JP3685151B2 (ja
Inventor
伸之 ▲斎▼藤
Nobuyuki Saito
Hiroaki Shimono
洋昭 下野
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 JP2002127159A priority Critical patent/JP3685151B2/ja
Priority to US10/379,686 priority patent/US7039826B2/en
Publication of JP2003323226A publication Critical patent/JP2003323226A/ja
Application granted granted Critical
Publication of JP3685151B2 publication Critical patent/JP3685151B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3209Monitoring remote activity, e.g. over telephone lines or network connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3237Power saving characterised by the action undertaken by disabling clock generation or distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3253Power saving in bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Information Transfer Systems (AREA)

Abstract

(57)【要約】 【課題】 簡素化されたクロック供給制御により低消費
電力化を図るクロック制御回路、データ転送制御装置及
び電子機器を提供する。 【解決手段】 クロック生成回路310では、生成され
たクロックが、クロック分配制御回路316において回
路ブロック単位に分配される。クロック出力制御回路3
20では、クロックコマンドがクロックコマンドデコー
ダ328によりデコードされ、回路ブロック単位にクロ
ックの出力制御が行われる。クロック制御回路300を
含むデータ転送制御装置は、第1のデバイス又は第2の
デバイスに設定された状態で、ホスト又はペリフェラル
としてデータ転送を行う。そして、第2のデバイスに設
定された状態でアイドルステートのとき、ホスト機能及
びペリフェラル機能の切り替え制御を行うステートコン
トローラへのクロックの出力制御を行う。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、クロック制御回
路、データ転送制御装置及び電子機器に関する。
【0002】
【背景技術及び発明が解決しようとする課題】近年、パ
ーソナルコンピュータと周辺機器(広義には電子機器)
とを接続するためのインタフェース規格として、USB
(Universal Serial Bus)規格が注目を集めている。と
ころが、USB規格では必ずホストが必要であり、これ
まで周辺機器間でUSB規格のデータ転送を行うことが
できなかった。そこでUSB2.0規格の追加規格とし
て、「USB On−The−Go(OTG)1.0」
規格(以下では、OTG規格と略す。)が策定され、周
辺機器間でもUSB規格のデータ転送を行うことができ
る。
【0003】OTG規格では、USB規格におけるデバ
イスとして動作するペリフェラルに、ホストとして動作
するために必要なホスト機能を持たせることができる。
これによって、従来のUSB規格におけるデバイスだっ
た周辺機器同士を相互に接続することができ、従来のU
SB規格におけるホストを介することなく、データ転送
を行うことができる。
【0004】そのためOTG規格では、デュアルロール
デバイス(Dual-role Device)が規定される。デュアル
ロールデバイスとなる機器は、ホストとしてもペリフェ
ラルとしても動作することができるようになる。デュア
ルロールデバイスとなる場合、例えばOTG規格におい
て示されるステート遷移により制御が行われる。したが
って、OTG規格では数多くのステートが存在し、各ス
テートに対応した信号状態の生成や検出の制御を行う必
要がある。
【0005】ところが、ステートごとに使用される機能
ブロックが異なり、未使用の機能ブロックに対してもク
ロックが供給されると消費電力の増大を招く。したがっ
て、所与のブロック単位でクロック供給制御を行って、
低消費電力化を図ることが望ましい。しかしながら、こ
の場合数多くのステートが存在するため、遷移後のステ
ートにおいて使用する機能ブロックと未使用の機能ブロ
ックとを判別してクロック供給制御を行うと、処理の複
雑化を招く。また各ステートにおいても、クロックの供
給制御タイミングが異なり、遷移したステート内におい
て一定の手続後にクロック供給制御を行う場合には、ハ
ードウェアでクロック供給制御を行うと回路規模を増大
させる。
【0006】本発明は、以上のような技術的課題に鑑み
てなされたものであり、その目的とするところは、簡素
化されたクロック供給制御により低消費電力化を図るク
ロック制御回路、データ転送制御装置及び電子機器を提
供することにある。
【0007】
【課題を解決するための手段】上記課題を解決するため
に本発明は、デフォルト状態においてホストとして動作
する第1のデバイスのステート遷移又はデフォルト状態
においてペリフェラルとして動作する第2のデバイスの
ステート遷移により、少なくともホスト及びペリフェラ
ルのステートの切り替え制御を行うステートコントロー
ラを含むデータ転送制御装置のクロック制御回路であっ
て、前記データ転送制御装置の回路ブロックごとにクロ
ックを生成するクロック生成回路と、前記回路ブロック
ごとに前記クロックの出力を制御する出力制御信号を生
成するクロック出力制御回路とを含み、前記クロック出
力制御回路は、前記第2のデバイスのステート遷移にお
いてアイドルステートのとき、前記出力制御信号に基づ
いて、前記ステートコントローラへのクロック出力を停
止させ、又はクロック周波数を低減させる出力制御を行
うクロック制御回路に関係する。
【0008】ここで、第1のデバイスは、デフォルト状
態においてホストとして動作するデバイスということが
できる。或いは、データ転送を行う相手方の電源を用い
ることなく自己の電源を用いて(セルフパワー電源で)
データ転送を行うデバイスといってもよい。また第2の
デバイスは、デフォルト状態においてペリフェラルとし
て動作するデバイスということができる。或いは、自己
の電源又はデータ転送を行う相手方の電源を用いて(バ
スパワー電源で)データ転送を行うデバイスといっても
よい。例えば、データ転送に先立って、第1又は第2の
デバイスのいずれかに設定するようにしてもよい。
【0009】またホストとは、データ転送制御の主導権
を有するデバイスの機能をいう。またペリフェラルは、
データ転送制御の主導権がなく、ホストからの指示に従
うデバイスの機能をいう。
【0010】本発明においては、第1又は第2のデバイ
スのステート遷移により、少なくともホスト及びペリフ
ェラルのステートの切り替え制御を行うステートコント
ローラを含むデータ転送制御装置において、クロック生
成回路により回路ブロックごとにクロックを生成すると
共に、回路ブロック単位でクロックの出力制御を行う。
第1のデバイスでは、ホストとしてデータ転送制御を行
うため、アイドルステートにおいても、ステートコント
ローラにクロックを供給することが望ましい。一方、第
2のデバイスでは、デフォルト状態としてペリフェラル
として動作するため、アイドルステートにおいて、ホス
トからの指示がない限りデータ転送を行うことができ
ず、無駄な電力を消費してしまう。したがって、第2の
デバイスのアイドルステートにおいてステートコントロ
ーラに供給されるクロック出力の停止又はクロック周波
数の低減を行うことで、不要な消費電力を削減すること
ができる。
【0011】また本発明に係るクロック制御回路では、
前記クロック出力制御回路は、前記第1のデバイスのス
テート遷移を行うとき、前記ステートコントローラへの
クロックの出力制御を省略することができる。
【0012】本発明によれば、第1のデバイスがホスト
として動作するために、ステートコントローラへのクロ
ックを供給することができる。したがって、上述した低
消費電力化を図る一方で、ホスト及びペリフェラルのス
テートの切り替え制御を行うことができる。
【0013】また本発明に係るクロック制御回路では、
前記クロック出力制御回路は、前記第2のデバイスのス
テート遷移においてアイドルステートのとき、ホストと
して動作するための動作制御を行うホストコントローラ
へのクロック出力を停止させ、又はクロック周波数を低
減させる出力制御を行うと共に、ペリフェラルとして動
作するための動作制御を行うペリフェラルコントローラ
へのクロック出力を停止させ、又はクロック周波数を低
減させる出力制御を行うことができる。
【0014】本発明によれば、第2のデバイスのアイド
ルステートでは、ホストコントローラ及びペリフェラル
コントローラは動作させないため、不要な消費電力を削
減することができる。
【0015】また本発明は、デフォルト状態においてホ
ストとして動作する第1のデバイスのステート遷移又は
デフォルト状態においてペリフェラルとして動作する第
2のデバイスのステート遷移により、少なくともホスト
及びペリフェラルのステートの切り替え制御を行うステ
ートコントローラを含むデータ転送制御装置のクロック
制御回路であって、前記データ転送制御装置の回路ブロ
ックごとにクロックを生成するクロック生成回路と、前
記回路ブロックごとに前記クロックの出力を制御する出
力制御信号を生成するクロック出力制御回路とを含み、
前記クロック出力制御回路は、前記第2のデバイスのペ
リフェラルのステート遷移において接続相手からのデー
タ転送がサスペンドになったとき、前記出力制御信号に
基づいて、前記ステートコントローラへのクロック出力
を停止させ、又はクロック周波数を低減させる出力制御
を行い、前記第1のデバイスのステート遷移においてサ
スペンドステートのとき、前記ステートコントローラへ
のクロックの出力制御を省略するクロック制御回路に関
係する。
【0016】本発明によれば、第2のデバイスがペリフ
ェラルとして動作中に接続相手からのデータ転送がサス
ペンドになったとき、第2のデバイスとしては接続相手
からの指示がない限りデータ転送制御を行うことができ
ないために不要なステートコントローラの動作を停止さ
せることができる。また、第1のデバイスのサスペンド
ステートにおいては、ホストとしてステート切り替え制
御を行う必要がある。そのため、ホスト及びペリフェラ
ルのステート切り替え制御を行うと共に、不要な消費電
力を削減することができる。
【0017】また本発明に係るクロック制御回路では、
前記クロック出力制御回路は、前記第1のデバイスのス
テート遷移においてサスペンドステートのとき、前記出
力制御信号に基づいて、ペリフェラルとして動作するた
めの動作制御を行うペリフェラルコントローラへのクロ
ック出力を停止させ、又はクロック周波数を低減させる
出力制御を行うことができる。
【0018】本発明によれば、第1のデバイスがホスト
として動作する場合には、ペリフェラルコントローラへ
のクロック出力を停止、又はクロック周波数を低減させ
ることにより、ペリフェラルコントローラの不要な消費
電力を削減することができる。
【0019】また本発明に係るクロック制御回路では、
前記クロック出力制御回路は、ペリフェラルとして動作
するとき、前記出力制御信号に基づいて、ホストとして
動作するための動作制御を行うホストコントローラへの
クロック出力を停止させ、又はクロック周波数を低減さ
せる出力制御を行い、ホストとして動作するとき、ペリ
フェラルとして動作するための動作制御を行うペリフェ
ラルコントローラへのクロック出力を停止させ、又はク
ロック周波数を低減させる出力制御を行うことができ
る。
【0020】本発明によれば、ホスト及びペリフェラル
のステートを切り替え制御できるため、ホストとして動
作しているときにはペリフェラルコントローラの動作を
停止させ、ペリフェラルとして動作しているときにはホ
ストコントローラの動作を停止させることにより、排他
的に制御される回路ブロックの不要な消費電力を削減す
ることができる。
【0021】また本発明に係るクロック制御回路では、
前記クロック出力制御回路は、前記データ転送制御装置
の各回路ブロックに供給されるクロックごとに出力停止
させるか否か、又はクロック周波数を低減させるか否か
を示すクロック制御パターンに基づいて、前記出力制御
信号を生成することができる。
【0022】本発明によれば、クロック制御パターンを
用いて出力制御信号を生成するようにしたので、ステー
トを遷移した後に制御すべきクロックを判別する処理を
不要とすることができ、処理の簡素化を図ることができ
る。
【0023】また本発明に係るクロック制御回路では、
前記クロック出力制御回路は、前記クロック制御パター
ンに対応したクロックコマンドが設定されるクロックコ
マンドレジスタと、前記クロックコマンドレジスタの設
定内容を監視するためのクロックモニタレジスタとを含
み、前記出力制御信号は、前記クロックコマンドレジス
タに設定されたクロックコマンドのデコード結果に基づ
いて生成されてもよい。
【0024】本発明によれば、クロック制御パターンを
用いたクロック制御を、簡素な回路で実現することがで
きる。
【0025】また本発明に係るクロック制御回路では、
前記クロックコマンドは、前記ステートコントローラに
設定される遷移先のステートに応じて生成されてもよ
い。
【0026】本発明によれば、第1及び第2のデバイス
のホスト又はペリフェラルのステートに応じて、クロッ
ク制御パターンを規定しておくことで、処理の簡素化を
図ることができる。
【0027】また本発明に係るクロック制御回路では、
前記第1のデバイスは、USB(Universal Serial Bu
s)のOTG(On-The-Go)規格のAデバイスであり、前
記第2のデバイスは、USBのOTG規格のBデバイス
であり、前記ステートコントローラは、USBのOTG
規格にしたがって、ホスト及びペリフェラルのステート
の切り替え制御を行うことができる。
【0028】本発明によれば、USBのOTG規格によ
る携帯機器を用いたUSB転送に伴う消費電力を、簡素
な処理で低減することができる。
【0029】また本発明は、所与の回路ブロックごとに
クロックを生成するクロック生成回路と、前記回路ブロ
ックごとに前記クロックの出力を制御する出力制御信号
を生成するクロック出力制御回路とを含み、前記クロッ
ク出力制御回路は、各回路ブロックに供給されるクロッ
クごとに出力を停止するか又はその周波数を低減するか
否かを示すクロック制御パターンに基づいて生成された
出力制御信号を用いて、回路ブロックごとにクロックの
出力を制御するクロック制御回路に関係する。
【0030】本発明によれば、クロック制御パターンを
用いて出力制御信号を生成するようにしたので、ステー
トを遷移した後に制御すべきクロックを判別する処理を
不要とすることができ、処理の簡素化を図ることができ
る。
【0031】また本発明は、USB(Universal Serial
Bus)のOTG(On-The-Go)規格のステート切り替え
制御を行うステートコントローラを含むデータ転送制御
装置のクロック制御回路であって、前記データ転送制御
装置の回路ブロックごとにクロックを生成するクロック
生成回路と、前記回路ブロックごとに前記クロックの出
力を制御する出力制御信号を生成するクロック出力制御
回路とを含み、前記クロック出力制御回路は、USBの
OTG規格のBデバイスのアイドルステートのとき、前
記出力制御信号に基づいて、前記ステートコントローラ
へのクロック出力を停止させ、又はクロック周波数を低
減させる出力制御を行うクロック制御回路に関係する。
【0032】また本発明は、USB(Universal Serial
Bus)のOTG(On-The-Go)規格のステート切り替え
制御を行うステートコントローラを含むデータ転送制御
装置のクロック制御回路であって、前記データ転送制御
装置の回路ブロックごとにクロックを生成するクロック
生成回路と、前記回路ブロックごとに前記クロックの出
力を制御する出力制御信号を生成するクロック出力制御
回路とを含み、前記クロック出力制御回路は、OTG規
格のBデバイスでペリフェラルとして動作している場合
に接続相手からのデータ転送がサスペンドになったと
き、前記出力制御信号に基づいて、前記ステートコント
ローラへのクロック出力を停止させ、又はクロック周波
数を低減させる出力制御を行い、OTG規格のAデバイ
スのサスペンドステートのとき、前記ステートコントロ
ーラへのクロックの出力制御を省略するクロック制御回
路に関係する。
【0033】なお、ステートコントローラは、USBの
OTG規格を発展させた規格のステート切り替え制御を
行うようにすることができる。
【0034】また本発明に係るデータ転送制御装置は、
上記いずれか記載のクロック制御回路と、第1又は第2
のデバイスのステート遷移により、少なくともホスト及
びペリフェラルのステートの切り替え制御を行うステー
トコントローラと、ホストとして動作するための動作制
御を行うホストコントローラと、ペリフェラルとして動
作するための動作制御を行うペリフェラルコントローラ
とを含むことができる。
【0035】本発明によれば、処理を簡素化して低消費
電力化を図るデータ転送制御装置を提供することができ
る。
【0036】また本発明に係る電子機器は、上記記載の
データ転送制御装置と、前記データ転送制御装置及びバ
スを介して転送されるデータの出力処理又は取り込み処
理又は記憶処理を行う装置とを含むことができる。
【0037】本発明によれば、処理を簡素化して低消費
電力化を図るデータ転送制御装置を含む電子機器を提供
することができる。
【0038】
【発明の実施の形態】以下、本発明の好適な実施の形態
について図面を用いて詳細に説明する。なお、以下に説
明する実施の形態は、特許請求の範囲に記載された本発
明の内容を不当に限定するものではない。また以下で説
明される構成の全てが本発明の必須構成要件であるとは
限らない。
【0039】1. OTG(On-The-Go)規格 1.1 AデバイスとBデバイス まず、OTG規格について簡単に説明する。
【0040】USB(Universal Serial Bus)規格は、
ホスト(host)(例えばパーソナルコンピュータ)と1
又は複数のペリフェラル(peripheral)(例えば周辺機
器)との間のデータ転送を行うための規格であり、ホス
ト側でデータ転送制御が行われる。その一方で、USB
規格においてペリフェラルであった携帯機器等において
処理するデータ量が増大し、ホストを介在させることな
く、低消費電力でUSB規格のデータ転送する要求が高
まっている。
【0041】このような背景の下、OTG規格はUSB
2.0規格の追加規格として策定された。OTG規格で
は、コネクタの小型化や、ホストとして動作するために
必要なホスト機能をペリフェラルに持たせるデュアルロ
ールデバイス等についての規格が新たに盛り込まれてい
る。
【0042】OTG規格によるデータ転送を行う場合、
例えば図1(A)に示すように、その両端にMini−
Aプラグ(plug)及びMini−Bプラグが設けられた
USBケーブルにより、ホストとペリフェラルとが接続
される。Mini−Aプラグは、Mini−Aレセプタ
クル(receptacle)及びMini−ABレセプタクルに
挿入可能な構造を有している。Mini−Bプラグは、
Mini−Bレセプタクル及びMini−ABレセプタ
クルに挿入可能な構造を有している。デュアルロールデ
バイスの場合、Mini−ABレセプタクルを備えてお
く必要がある。
【0043】ところで、USB規格では、VBUS(電
源)、GND(グラウンド)及び2本のデータ信号線
(D+、D−)のみでホストとペリフェラルとを接続す
ることができる。VBUSは、ホスト側から供給され
る。データ信号線D+、D−は、差動で用いられる。
【0044】OTG規格では、図1(B)に示すように
Mini−Aプラグが接続されたデュアルロールデバイ
スは、Aデバイス(A-Device)となる。Aデバイスは、
セッション開始時においてホストとして動作し、所与の
条件の下で、Bデバイスに対してホスト機能を譲ること
ができる。一方、Mini−Bプラグが接続されたデュ
アルロールデバイスは、Bデバイス(B-Device)とな
る。Bデバイスは、セッション開始時においてペリフェ
ラルとして動作し、Aデバイスからホストとして動作す
ることが許可される。なおAデバイスが、VBUSを供
給する。
【0045】デュアルロールデバイスにおいて、Min
i−ABレセプタクルに挿入されたプラグの種類を判別
するため、図1(C)に示すように、これまでのコネク
タの端子(VBUS、D−、D+、GND)の他に、I
D端子が定義されている。Mini−AプラグではID
端子がGNDに接続され、Mini−BプラグではID
端子がオープン状態である。
【0046】図2に、USBケーブルが接続されたデュ
アルロールデバイスの例を模式的に示す。
【0047】Mini−Aプラグが接続されたデュアル
ロールデバイス10と、Mini−Bプラグが接続され
たデュアルロールデバイス20とは、USBケーブルを
介して接続されている。デュアルロールデバイス10、
20は、ID検出回路12、22を含む。ID検出回路
12、22は、それぞれID端子と電気的に接続される
信号線をプルアップし、該信号線の電圧に応じて、ID
端子が接地されているか否かを検出する。図2における
ID検出回路12は、ID端子に接続される信号線が接
地されるため、Mini−Aプラグであることを検出す
ることができる。一方、ID検出回路22は、ID端子
に接続される信号線がプルアップされるため、Mini
−Bプラグであることを検出する。
【0048】デュアルロールデバイス10では、ホスト
及びペリフェラルとして動作するため、データ信号線D
+をプルアップするためのプルアップ抵抗R1と、デー
タ信号線D+をプルダウンするためのプルダウン抵抗R
2とを有している。プルアップ抵抗R1は、プルアップ
のオン/オフを切り替えるために、スイッチ回路SW1
を介して電源電圧線に接続される。プルダウン抵抗R2
は、プルダウンのオン/オフを切り替えるために、スイ
ッチ回路SW2を介して接地線に接続される。スイッチ
回路SW1、SW2については、いずれか一方がオンの
とき、他方がオフとなるように排他的に制御される。
【0049】デュアルロールデバイス20も同様に、デ
ータ信号線D+をプルアップするためのプルアップ抵抗
R3と、データ信号線D+をプルダウンするためのプル
ダウン抵抗R4とを有している。プルアップ抵抗R3
は、プルアップのオン/オフを切り替えるために、スイ
ッチ回路SW3を介して電源電圧線に接続される。プル
ダウン抵抗R4は、プルダウンのオン/オフを切り替え
るために、スイッチ回路SW4を介して接地線に接続さ
れる。スイッチ回路SW3、SW4については、いずれ
か一方がオンのとき、他方がオフとなるように排他的に
制御される。
【0050】デュアルロールデバイス10、20では、
データ信号線D−はプルダウンされている。
【0051】またデュアルロールデバイス10、20
は、共にAデバイスになり得るため、VBUSに電流を
供給する電源制御回路VBA、VBBを含む。図2で
は、デュアルロールデバイス10が、電源制御回路VB
AによりVBUSに電流を供給する。
【0052】1.2 SRP(Session Request Protoc
ol) OTG規格では、バス上でやり取りがないとき、Aデバ
イスがVBUSへの電流供給を停止することができる。
したがって、バッテリで動作する携帯機器等がホストと
して動作した場合でも無駄な電力消費を削減し、低消費
電力化を図ることができるようになっている。この状態
でBデバイスがセッションを開始してデータ転送を行う
場合、SRPと呼ばれる手順にしたがってAデバイスに
対しVBUSへの電流供給を要求することができる。こ
こで、セッションとはVBUSの電圧が所与の閾値電圧
を越えている期間をいう。
【0053】図3に、図2に示したデュアルロールデバ
イスの構成を参照しながら、FSモードにおけるSRP
の実行手順を説明するための図を示す。
【0054】FSモードでは、ホスト側のデータ信号線
D+はプルダウンされ(スイッチ回路SW1がオフ、ス
イッチ回路SW2がオン)、ペリフェラル側のデータ信
号線D+はプルアップされている(スイッチ回路SW3
がオン、スイッチ回路SW4がオフ)。
【0055】バス上のやり取りがなくAデバイスがVB
USへの電流供給を停止すると(S10)、VBUSの
電圧が下がり「Vb_sess_vld」レベル(B-De
viceSession Valid未満)となる(S11)。Bデバイ
スは、これを検出すると、スイッチ回路SW3によりデ
ータ信号線D+のプルアップ抵抗を無効にする(S1
2)。これにより、データ信号線のラインステートは
「SE0」状態(FSモードでは、データ信号線D+が
「L」レベル、データ信号線D−が「L」レベルの状
態)となる(S13)。
【0056】VBUSの電圧が「Vb_sess_en
d」(B-Device Session End)より小さく、かつライン
ステートの「SE0」状態が2ms以上継続すると、B
デバイスがSRPを開始(initiate)することができ
る。SRPは、データラインパルシング(Data-line Pu
lsing)又はVBUSパルシング(VBUS Pulsing)によ
り行うことができる。データラインパルシングは、ライ
ンステートを「SE0」状態、「J」状態(FSモード
では、データ信号線D+が「H」レベル、データ信号線
D−が「L」レベルの状態)、「SE0」状態に遷移さ
せる方法である。VBUSパルシングは、Bデバイスか
らVBUSに電流を供給し、VBUSの電圧を「L」レ
ベル(Vb_sess_vld未満)、「H」レベル(Va_sess_vld
より大)、「L」レベルの状態に遷移させる方法である
(S14、S15)。
【0057】Aデバイスは、データ信号線又はVBUS
の電圧を監視して、いずれかの方法によりSRPが行わ
れたことを検出すると、AデバイスがVBUSへの電流
供給を開始する(S16)。これにより、VBUSの電
圧が「Vb_sess_vld」以上となる(S1
7)。
【0058】Bデバイスは、VBUSの電圧が「Vb_
sess_end」以上になったことを検出すると、ス
イッチ回路SW3によりデータ信号線D+のプルアップ
抵抗を有効にして(S18)、ラインステートを「J」
状態に遷移させ(S19)、ペリフェラルとして動作開
始する。
【0059】Aデバイスは、ラインステートが「J」状
態になったことを検出すると、ホストとして動作開始す
る(S20)。
【0060】1.3 HNP(Host Negotiation Proto
col) OTG規格では、接続されたプラグによりAデバイスか
Bデバイスかが決まるが、そのプラグを差し替えること
なく、ホスト機能とペリフェラル機能とを交換すること
ができる。HNPは、このホスト機能とペリフェラル機
能とを交換するための手順である。
【0061】図4に、図2に示したデュアルロールデバ
イスの構成を参照しながら、FSモードにおけるHNP
の実行手順を説明するための図を示す。
【0062】Aデバイスがホストとして動作し、Bデバ
イスがペリフェラルとして動作し、HNPがイネーブル
の状態であるものとする。
【0063】Aデバイスがバスの使用を終了すると(S
30)、ラインステートをアイドル状態(FSモードで
は、「J」状態)にする(S31)。
【0064】Bデバイスは、3ms以上「J」状態であ
ることを検出すると、スイッチ回路SW3によりデータ
信号線D+のプルアップ抵抗を無効にして(S32)、
ラインステートを「SE0」状態にする(S33)。A
デバイスは、ラインステートが「SE0」状態であるこ
とを検出すると、スイッチ回路SW1によりデータ信号
線D+のプルアップ抵抗を有効(プルダウン抵抗を無
効)にする(S34)。これにより、ラインステートが
「J」状態となるので(S35)、Aデバイスはペリフ
ェラルとして動作を開始し、Bデバイスはラインステー
トが「J」状態であることを検出してホストとして動作
を開始することができる(S36)。
【0065】Bデバイスが、ホストとしてバスの使用を
終了すると(S37)、スイッチ回路SW3、SW4に
よりラインステートをアイドル状態にする(S38)。
Aデバイスは、これを検出するとデータ信号線D+のプ
ルアップ抵抗を無効にして(S39)、ラインステート
を「SE0」状態に遷移させる(S40)。Bデバイス
は、ラインステートが「SE0」状態であることを検出
すると、スイッチ回路SW3によりデータ信号線D+の
プルアップ抵抗を有効(プルダウン抵抗を無効)にする
(S41)。これにより、ラインステートが「J」状態
となるので(S42)、Bデバイスはペリフェラルとし
て動作を開始し、Aデバイスはラインステートが「J」
状態であることを検出してホストとして動作を開始する
ことができる(S43)。
【0066】このようなプロトコルによるデータ転送制
御は、それぞれの状態を規定したステート間を遷移条件
にしたがって遷移させることで、実現することができ
る。
【0067】以下では、Aデバイス及びBデバイスのス
テート遷移について説明する。
【0068】1.4 Aデバイスのステート遷移 図5に、Aデバイスのステート遷移を説明するための図
を示す。
【0069】Aデバイスは、a_idleステートが開
始ステートである(ST1)。
【0070】デュアルロールデバイスのMini−AB
レセプタクルに、USBケーブルのMini−Aプラグ
が挿入されていないとき、プルアップされたID端子は
「H」レベル(id)となるため、b_idleステート
に遷移する(ST2)。すなわち、デュアルロールデバ
イスでは、デフォルトでBデバイスとなる。一方、Mi
ni−Aプラグが挿入されると、ID端子が「L」レベ
ル(id/)となるためa_idleステートとなる(S
T1)。
【0071】a_idleステートでは、VBUSへの
電流供給が停止される。またデータ信号線D+のプルア
ップが無効化(オフ)される(プルダウンが有効化され
る。より具体的には、スイッチ回路SW1がオフ、スイ
ッチ回路SW2がオン)。したがって、ラインステート
は「SE0」状態となる。上位アプリケーションからV
BUSの電圧を落とす要求がないとき(a_bus_drop/)
であって、USB転送を行いたいとき(a_bus_req)又
はBデバイスからのSRPを検出したとき(a_srp_de
t)、a_wait_vriseステートに遷移する
(ST3)。
【0072】a_wait_vriseステートでは、
VBUSへの電流供給が開始され、VBUSの電圧が上
がる。Mini−Aプラグが抜かれたとき(id)、上位
アプリケーションからVBUSの電圧を落とす要求があ
ったとき(a_bus_drop)、VBUSの電圧が所与の閾値
電圧を越えたとき(a_vbus_vld)、又は当該ステートに
規定時間以上経過したとき(a_wait_vrise_tmout)、a
_wait_bconステートに遷移する(ST4)。
【0073】a_wait_bconステートでは、A
デバイス側のデータ信号線D+のプルアップがオフとな
る。このときBデバイスによりデータ信号線D+のプル
アップが有効化(オン)(Bデバイスのスイッチ回路S
W3がオン、スイッチ回路SW4がオフ)され、データ
信号線D+が「H」レベルになったとき(ラインステー
トが「J」状態)(b_conn)、a_hostステートに
遷移する(ST5)。なお、Mini−Aプラグが抜か
れたとき(id)、上位アプリケーションからVBUSの
電圧を落とす要求があったとき(a_bus_drop)、又は当
該ステートで規定時間以上経過したとき(a_wait_bcon_
tmout)、a_wait_vfallステートに遷移す
る(ST6)。また、何らかの原因で、VBUSの電圧
が所与の閾値電圧を下回ったとき(a_vbus_vld/)、a
_vbus_errステートに遷移する(ST7)。
【0074】すなわちデュアルロールデバイスは、デフ
ォルト状態ではBデバイスであるため、Aデバイスにつ
いては、a_wait_bconステートまで、データ
信号線D+はプルダウンされた状態のままである。a_
wait_vriseステートにおいてVBUSへの電
流供給が開始されると、Bデバイスのプルアップがオン
となる。これにより、データ信号線D+がプルダウンさ
れた状態であるAデバイスはホストとして動作し、デー
タ信号線D+がプルアップされた状態であるBデバイス
はペリフェラルとして動作する。
【0075】a_hostステートでは、Aデバイスが
USB規格のホストとして動作する。より具体的には、
ホストとしてペリフェラルをエニュメレート(enumerat
e)するため、バスリセットするためのリセット信号と
して、「SE0」状態にデータ信号線を駆動する。そし
て、所与の規定時間だけその状態を継続させることによ
り、ペリフェラルではリセット処理が行われる。その
後、ホストは、コントロール転送を用いて、コンフィギ
ュレーション情報の転送やアドレスの割り当てなどを行
い、USB転送を開始する。当該ステートにおいて、ホ
ストになったがバスを使わなくなったとき(a_bus_req
/)、又はサスペンド状態への遷移要求があるとき(a_s
uspend_req)、a_suspendステートに遷移する
(ST8)。また、Mini−Aプラグが抜かれたとき
(id)、ラインステートが「J」状態から「SE0」の
状態になったとき(b_conn/)、又は上位アプリケーシ
ョンからVBUSの電圧を落とす要求があったとき(a_
bus_drop)、a_wait_bconステートに遷移す
る(ST9)。また、何らかの原因で、VBUSの電圧
が所与の閾値電圧を下回ったとき(a_vbus_vld/)、a
_vbus_errステートに遷移する(ST10)。
【0076】a_suspendステートでは、SOF
(Start Of Frame)パケットの送出が停止される。この
とき、Bデバイスはペリフェラルとして動作しており、
Bデバイスではb_peripheralステートのま
まである。このとき、AデバイスがBデバイスに対して
上述のHNPを許可し(a_set_b_hnp_en)、Bデバイス
においてプルアップがオフされてラインステートが「S
E0」状態になると(b_conn/)、a_periphe
ralステートに遷移する(ST11)。また、Aデバ
イスがバスを使用したいとき(a_bus_req)、又はBデ
バイスがラインステートを「K」状態にしたとき(b_bu
s_resume)、a_hostステートに遷移する(ST1
2)。更にまたAデバイスがBデバイスに対して上述の
HNPを許可せず(a_set_b_hnp_en/)、Bデバイスに
おいてプルアップがオフされてラインステートが「SE
0」状態になると(b_conn/)、a_wait_bco
nステートに遷移する(ST13)。更にまたMini
−Aプラグが抜かれたとき(id)、上位アプリケーショ
ンからVBUSの電圧を落とす要求があったとき(a_bu
s_drop)、又はa_suspendステートで規定時間
以上経過したとき(a_aidl_bdis_tmout)、a_wai
t_vfallステートに遷移する(ST14)。ま
た、何らかの原因で、VBUSの電圧が所与の閾値電圧
を下回ったとき(a_vbus_vld/)、a_vbus_er
rステートに遷移する(ST15)。
【0077】a_peripheralステートでは、
Aデバイスではプルアップをオンにし、Bデバイスでは
後述するようにAデバイスからHNPのイネーブルによ
りBデバイス側のプルアップがオフされるため、Aデバ
イスがペリフェラルとなり、Bデバイスがホストにな
る。ホストとなったBデバイスがデータ転送を終えた場
合のようにBデバイスがバスを使わないとき(b_bus_su
spend)、a_wait_bconステートに遷移する
(ST16)。a_wait_bconステートでは、
上述したようにAデバイスのプルアップがオフされる。
また、a_peripheralステートにおいて、M
ini−Aプラグが抜かれたとき(id)、又は上位アプ
リケーションからVBUSの電圧を落とす要求があった
とき(a_bus_drop)、a_wait_vfallステー
トに遷移する(ST17)。また、何らかの原因で、V
BUSの電圧が所与の閾値電圧を下回ったとき(a_vbus
_vld/)、a_vbus_errステートに遷移する
(ST18)。
【0078】a_bus_errステートでは、過電流
状態となるため、例えばファームウェアによりVBUS
の電圧を落とすように要求される。このようなステート
においては、Mini−Aプラグが抜かれたとき(i
d)、又は上位アプリケーションからVBUSの電圧を
落とす要求があったとき(a_bus_drop)、a_wait
_vfallステートに遷移する(ST19)。
【0079】a_wait_vfallステートでは、
VBUSへの電流供給が停止される。Mini−Aプラ
グが抜かれたとき(id)、バスを使いたいとき(a_bus_
req)、又はVBUSの電圧が所与の閾値電圧を下回っ
た状態で(a_sess_vld/)Bデバイスにおいてプルアッ
プがオフされてラインステートが「SE0」状態になる
と(b_conn/)、a_idleステートに遷移する(S
T20)。
【0080】1.5 Bデバイスのステート遷移 図6に、Bデバイスのステート遷移を説明するための図
を示す。
【0081】Bデバイスは、b_idleステートが開
始ステートである(ST30)。
【0082】b_idleステートでは、VBUSへの
電流供給は停止される。したがって、VBUSの電圧
は、所与の閾値電圧を下回る。またデータ信号線D+の
プルアップがオフされる。このとき、Mini−Aプラ
グが挿入されると、ID端子が「L」レベル(id/)と
なるためa_idleステートとなる(ST31)。ま
たVBUSの電圧が所与の閾値電圧を越えると(b_sess
_vld)、b_peripheralステートに遷移する
(ST32)。
【0083】b_peripheralステートでは、
データ信号線D+のプルアップがオンとなるため、Aデ
バイスのa_wait_bconステートにおいてb_
connの検出を行うことができる。b_perihe
ralステートでは、Aデバイスからの要求に応答し
て、ペリフェラルとして動作する。Bデバイスがホスト
になるときは、Aデバイスがa_suspendになっ
たことを検出し(a_bus_suspend)、Bデバイスの上位
アプリケーションからのホスト動作要求(b_bus_req)
があって、かつAデバイスからHNPをイネーブルに設
定されているとき(b_hnp_en)、b_wait_aco
nステートに遷移する(ST33)。またb_peri
pheralステートにおいて、Mini−Aプラグが
挿入されたとき(id/)、又はVBUSの電圧が所与の
閾値電圧を下回ったとき(b_sess_vld/)、b_idl
eステートに遷移する(ST34)。この結果、b_i
dleステートにおいてプルアップがオフされ、例えば
Aデバイスはa_wait_vfallステートからa
_idleステートに遷移することができる。
【0084】b_wait_aconステートでは、B
デバイスのデータ信号線D+のプルアップがオフされ、
Aデバイス側でデータ信号線D+がプルアップされるの
を待つ。そして、Aデバイス側でデータ信号線D+のプ
ルアップがオンされると(a_conn)、b_hostステ
ートに遷移する(ST35)。またb_wait_ac
onステートにおいて、Aデバイスがラインステートを
「K」状態にしたことを検出したとき(a_bus_resum
e)、又はb_wait_aconステートで規定時間
以上経過すると(b_ase0_brst_tmout)、b_peri
pheralステートに遷移する(ST36)。また、
Mini−Aプラグが挿入されたとき(id/)、又はV
BUSの電圧が所与の閾値電圧を下回るとき(b_sess_v
ld/)、b_idleステートに遷移する(ST3
7)。
【0085】b_hostステートでは、ホスト処理が
行われる。すなわち、バスリセットを行って、SOFパ
ケットの生成を開始する。Aデバイスは、ホストとして
動作するBデバイスからの要求に応答することになる。
Bデバイスが、ホストとして転送するデータがなくなり
バスを使用しないとき(b_bus_req/)、又はAデバイス
においてプルアップがオフされたことが検出されたとき
(a_conn/)、b_peripheralに遷移する
(ST38)。このとき、Aデバイスは、Bデバイスの
b_bus_suspendとして検出することがで
き、Aデバイスではa_peripheralステート
からa_wait_bconステートに遷移する。この
結果、Aデバイスのプルアップがオフされる。b_pe
ripheralステートでは、Bデバイスはプルアッ
プがオンされる。また、b_hostステートにおい
て、Mini−Aプラグが挿入されたとき(id/)、又
はVBUSの電圧が所与の閾値電圧を下回るとき(b_se
ss_vld/)、b_idleステートに遷移する(ST3
9)。
【0086】Bデバイスは、Aデバイスがサスペンド状
態のときSRPによりセッション開始を要求することが
できる。すなわち、b_idleステートにおいて、B
デバイスの上位アプリケーションからのバス使用要求が
あり(b_bus_req)、VBUSの電圧がBデバイスのセ
ッション終了閾値電圧を下回った状態で(b_sess_en
d)、かつラインステートが「SE0」の状態で規定時
間以上経過したとき(b_se0_srp)、b_srp_in
itステートに遷移する(ST40)。
【0087】b_srp_initステートでは、SR
Pによりセッション開始をAデバイスに対して要求す
る。BデバイスがSRPを終了したとき(b_srp_don
e)、又はMini−Aプラグが挿入されたとき(id
/)、b_idleステートに遷移する(ST41)。
【0088】2. データ転送制御装置 次に、上述したステート遷移によりホスト機能及びペリ
フェラル機能を切り替えてUSB転送のデータ転送制御
を行うOTGデバイスコントローラIC(広義にはデー
タ転送制御装置)について説明する。
【0089】図7に、OTGデバイスコントローラIC
の機能ブロック図を示す。
【0090】OTGデバイスコントローラIC200
は、OTGコントローラ(広義には、ステートコントロ
ーラ)210、HC220、PC230、レジスタ部2
40、パケットバッファ250、バッファコントローラ
260、ホスト/ペリフェラル切り替え回路270、ト
ランシーバ280、CPUインタフェース(InterFac
e:I/F)290、DMAハンドラ292、クロック
コントローラ(広義にはクロック制御回路)294、テ
ストモジュール296を含む。
【0091】OTGコントローラ210は、データライ
ン及びVBUSの状態を監視しながら図5及び図6に示
したステート遷移により、各ステートに応じたコントロ
ール信号を生成し、例えばホスト及びペリフェラルの切
り替え制御を行ってデータライン制御を行う。
【0092】このようなOTGコントローラ210は、
OTG管理回路212、ID検出回路214、VBUS
検出回路216、ラインステート検出回路218を含
む。OTG管理回路212は、デュアルロールデバイス
として機能するためのOTGステート(図5及び図6に
示す各ステート)の管理を行う。より具体的には、OT
G管理回路212は、CPUから設定されたOTGステ
ートに対応したOTGステートコマンドに基づいて、当
該OTGステートに対応したコントロール信号を生成す
る。ID検出回路214は、図2に示したようにID端
子の状態を検出する。VBUS検出回路216は、VB
USの状態が、OTGステートに応じた検出条件を満た
したか否かを検出する。ラインステート検出回路218
は、トランシーバ280から通知されるラインステート
が、OTGステートに応じた検出条件を満たしたか否か
を検出する。
【0093】ID信号は、ID端子に接続される信号で
ある。ID検出回路214は、ID信号によりAデバイ
スかBデバイスかを判別することができる。
【0094】1.0Vレベル検出信号COMPIN10
は、VBUS/2の電圧が1.0V以上であるか否かを
示す検出信号である。2.2Vレベル検出信号COMP
IN22は、VBUS/2の電圧が2.2V以上である
か否かを示す検出信号である。VBUS検出回路216
は、1.0Vレベル検出信号COMPIN10又は2.
2Vレベル検出信号COMPIN22を参照すること
で、VBUSの状態が、所与のステートにおける検出条
件を満たすか否かを検出することができる。
【0095】VBUSドライブ信号BUSPWRSEL
は、5V電源使用時において、VBUSに供給する電流
の8mA又は500mAのいずれかに切り替えるための
イネーブル信号である。VBUSドライブ信号VBUS
DRV5は、5V電源でVBUSに電流を供給するため
のイネーブル信号である。VBUSドライブ信号VBU
SDRV3は、3.3V電源でVBUSに電流を供給す
るためのイネーブル信号である。Rpuイネーブル信号
xRPUENは、データ信号線D+のプルアップのイネ
ーブル信号である。Rpdイネーブル信号RPDEN
は、データ信号線D+のプルダウンのイネーブル信号で
ある。
【0096】OTG管理回路212は、当該OTGステ
ートに対応して、コントロール信号(VBUSドライブ
信号BUSPWRSEL、VBUSDRV5、VBUS
DRV3、Rpuイネーブル信号xRPUEN、Rpd
イネーブル信号RPDEN、HCイネーブル信号HCE
nb、PCイネーブル信号PCEnbなど)を生成する
ことができる。
【0097】HC220は、OTGコントローラ210
からのHCイネーブル信号HCEnbによりイネーブル
にされたときホスト機能の動作制御を行う。HC220
のステート制御は、CPU(ファームウェア)により行
うことができる。より具体的には、ファームウェアが、
種々のイベント(例えばOTGステートa_hostに
遷移したことを示すイベント)をトリガとしてホストの
ステート遷移を行い、ホストの遷移先のステート(Su
spend、Reset、Oprational、Re
sume)に対応したHCステートコマンドを所与のコ
ントロールレジスタに設定することによって各ステート
におけるUSBデータライン状態(「J」、「K」、
「SE0」)の生成をHCに指示することができる。H
C220は、設定されたステートコマンドに応じて、デ
ータライン状態の生成を行う。当該ステートにおいて時
間制限(タイムアウト条件)がある場合にはファームウ
ェアが時間計測を行ってステート遷移制御を行うことが
できる。HC220がAデバイスでイネーブルにされた
とき、図8に示すようなフローでホストのステート遷移
を行う。「Operational」ステートにおい
て、USB転送が行われる。またHC220がBデバイ
スでイネーブルにされたとき、図9に示すようなフロー
でホストのステート遷移を行う。
【0098】PC230は、OTGコントローラ210
からのPCイネーブル信号PCEnbによりイネーブル
にされたときペリフェラル機能の動作制御を行う。PC
230は、OTGコントローラ210によって検出され
たラインステート等に基づくOTGステートの遷移にお
いてペリフェラルのとき、リセット検出、サスペンド検
出及びレジューム検出を行い、割り込みによりCPUに
通知する。またOTGステートの遷移においてホストの
とき、リモートウェイクアップ検出が有効になる。HC
220とPC230とは、排他的にイネーブル制御され
る。
【0099】レジスタ部240は、ホスト及びペリフェ
ラルとして動作制御するためのレジスタ群である。
【0100】パケットバッファ250は、ホスト又はペ
リフェラルとして転送されるパケットを蓄積するバッフ
ァである。
【0101】バッファコントローラ260は、CPU
I/F290又はDMAハンドラ292を介して入出力
されるパケットバッファ250へのアクセスアドレスの
管理や、USB転送を行う場合に入出力されるパケット
バッファ250へのアクセスアドレスの管理の制御を行
う。
【0102】ホスト/ペリフェラル切り替え回路270
は、ラインステートコントローラ272、HC/PCセ
レクタ274を含む。ラインステートコントローラ27
2は、トランシーバ280に対して信号ライン状態の生
成の指示を行う。UTMIセレクタ274は、トランシ
ーバ280と、HC220又はPC230とを接続する
ための、経路切り替えを行う。
【0103】トランシーバ280は、USBデータ信号
の送受信、USBデータライン状態の生成、パラレル/
シリアル変換処理やビットスタッフィング/アンスタッ
フィング処理等を行う。USB正極信号DPは、データ
信号線D+に出力される。USB負極信号DMは、デー
タ信号線D−に出力される。
【0104】CPUインタフェース290は、PIO転
送の制御を行うと共に、CPUへの割り込み信号を生成
する。CPUアドレスCA[7:0]は、CPUアドレ
スバスである。CPUデータCD[15:0]は、CP
Uデータバスであり、DMAデータバスと共用される。
チップセレクトxCSは、チップセレクト信号である。
リードストローブxRDは、CPUリートストローブで
あり、DMAリードストローブと共用される。ライトス
トローブxWRは、CPUライトストローブであり、D
MAライトストローブと共用される。ウェイト信号xW
AITは、CPUへのウェイト信号である。割り込み信
号xINTは、CPUへの割り込み信号である。
【0105】DMAハンドラ292は、DMA転送制御
を行う。DMA要求xDREQは、DMA転送要求信号
である。DMAアクノリッジxDACKは、DMA転送
許可信号である。
【0106】クロックコントローラ(クロック制御回
路)294は、上述した各機能ブロックに供給されるク
ロック信号の分配や動作制御を行う。クロックコントロ
ーラ294は、発振子入力XI及び発振子出力XOに接
続された発振子を用いた発振出力を、PLL回路で逓倍
してクロック信号を生成する。なお、クロックコントロ
ーラ294は、PLLフィルタVCにPLLフィルタ回
路を接続するようにしてもよいし、クロック選択信号C
LKSEL[1:0]により外部クロック入力CLKI
Nからのクロック信号、又は発振子を使用したクロック
信号のいずれかを選択することができるようにしてもよ
い。
【0107】テストモジュール296は、OTGデバイ
スコントローラIC200の各部の動作確認テストを行
うためのモジュールである。テストイネーブルTEST
によりテストモードに設定されると、テストモードTI
N[1:0]で選択されたテストモードでテストを行
い、テストモニタTESTMONを介して内部テストを
モニタすることができる。
【0108】このような構成のOTGデバイスコントロ
ーラIC200では、OTGコントローラ210によっ
て検出された遷移条件が、CPUインタフェース290
を介してCPUに対し割り込み信号として通知され、C
PU(ファームウェア)にステート遷移を制御させる。
そして、CPUにより、CPUインタフェース290を
介して、遷移先のOTGステートに対応したOTGステ
ートコマンドがOTGコントローラ210に設定され
る。OTGコントローラ210は、設定されたOTGス
テートコマンドに対応したコントロール信号を生成し、
各機能ブロックを制御する。すなわち、各ステート間
は、ファームウェアにより遷移制御される。上述したH
/W割り込み信号又は上位アプリケーション(ソフトウ
ェア)からの指示が、ステートの遷移条件となる。
【0109】またHC220において、ホスト機能を実
行するための各ステートを遷移させる場合にも同様に制
御することができる。より具体的には、図8及び図9に
示したように、ファームウェアによりHCステートのス
テート遷移制御を行い、遷移先のHCステートに対応し
たHCステートコマンドが設定されたHC220が、該
HCステートコマンドに応じたコントロール信号により
ホスト制御を行う。
【0110】こうすることで、図10に示すように、H
NPによりホスト機能及びペリフェラル機能を切り替え
ながらデュアルロールデバイスとしての動作を実現する
ことができる。図10では、割り込み信号により、ファ
ームウェアがOTGステートコマンド及びHCステート
コマンドを設定して、デュアルロールデバイスの動作制
御を行っている。
【0111】3. クロックコントローラ(クロック制
御回路) 上述したOTGデバイスコントローラIC200は、デ
ュアルロールデバイスとしての機能を実現する場合に、
図5及び図6に示すような複数のステート間の遷移を行
って、ホスト機能とペリフェラル機能を切り替える。と
ころがOTGデバイスコントローラIC200は、これ
ら機能を排他的に切り替えるため、図7に示した各機能
ブロックにクロックを定常的に供給することは消費電力
の増大を招く。そこでクロックコントローラ294は、
OTGデバイスコントローラIC200の各部について
共通にクロックを供給することができる複数の機能ブロ
ックを制御単位とする回路ブロックごとに、ステート遷
移に応じてその出力を停止させ、又はその周波数を低減
させる出力制御可能なクロックを生成することができ
る。
【0112】更に、遷移後のステートにおいて、使用す
る機能ブロックと未使用の機能ブロックとを判別してク
ロック供給制御を行うと処理の複雑化を招く。その上、
各ステートにおいてもクロックの供給制御タイミングが
異なり、遷移したステート内において一定の手続後にク
ロック供給制御を行う場合には、ハードウェアでクロッ
ク供給制御を行うことは困難である。そのためクロック
コントローラ294では、ファームウェアにより回路ブ
ロック単位に供給するか否かを示すクロック制御パター
ンが設定され、該クロック制御パターンをデコードして
回路ブロック単位にクロックの出力制御を行うことがで
きるようになっている。こうすることで、多数のステー
ト遷移により制御され、かつ各ステートに応じて使用す
る機能ブロック及び未使用の機能ブロックがある場合
に、処理が簡素化されたクロック供給制御により無駄な
電力消費を抑えることができる。
【0113】3.1 構成の概要 図11に、クロックコントローラ294に適用されるク
ロック制御回路の構成の概要を示す。
【0114】クロック制御回路300は、クロック生成
回路310と、クロック出力制御回路320とを含む。
【0115】クロック生成回路310は、発振回路31
2と、PLL回路314と、クロック分配制御回路31
6とを含む。発振回路312は、外部に接続された発振
子318の発振周波数に応じた発振出力をPLL回路3
14に供給する。PLL回路314は、その発振出力を
逓倍したPLLクロックを生成する。クロック分配制御
回路316は、PLLクロックを用いて回路ブロックご
とに供給される複数のクロック(CLK、CLK
・・・、CLK)を生成し、各回路ブロックに分配す
る。
【0116】発振回路312は、発振イネーブル信号O
SCen(広義には出力制御信号)により、発振動作を
開始又は停止する。
【0117】PLL回路314は、PLLイネーブル信
号PLLen(広義には出力制御信号)により、PLL
発振動作を開始又は停止し、或いはPLLクロックの出
力を停止する。
【0118】クロック分配制御回路316は、クロック
出力制御回路320からのクロック分配制御信号(広義
には出力制御信号)により、回路ブロックごとにクロッ
クの出力制御を行って、回路ブロックにクロックを供給
する。
【0119】クロック出力制御回路320は、クロック
コントロールレジスタ322、クロックモニタレジスタ
324、クロックコマンドレジスタ326、クロックコ
マンドデコーダ328、起動回路330を含むことがで
きる。
【0120】クロックコントロールレジスタ322に
は、ファームウェアによりクロックコントロールデータ
が設定される。クロックコントロールデータとして、例
えば発振回路又はPLL回路を安定させるまでのウェイ
ト数がある。
【0121】クロックモニタレジスタ324には、クロ
ック出力制御回路320によるクロック生成回路310
の監視結果が設定される。この監視結果として、例えば
起動回路330から出力される発振イネーブル信号OS
Cenの状態が設定されたり、クロックコマンドデコー
ダ328から出力される出力制御信号の状態が設定され
たりする。ファームウェアを処理するCPUは、例えば
クロックモニタレジスタ324から読み出されたクロッ
クモニタデータを参照することができる。
【0122】クロックコマンドレジスタ326には、フ
ァームウェア若しくはハードウェアによりクロックコマ
ンドが設定される。クロックコマンドは、回路ブロック
単位にクロック(CLK〜CLK)の出力を制御す
るか否かを示すクロック制御パターンである。
【0123】クロックコマンドデコーダ328は、クロ
ックコマンドレジスタ326に設定されたクロック制御
パターンをデコードして出力制御信号を生成する。この
出力制御信号により、発振回路312、PLL回路31
4又はクロック分配制御回路316の出力制御を行うこ
とができる。
【0124】起動回路330は、トリガ信号が入力され
ると、発振回路312の発振動作を開始させる発振イネ
ーブル信号OSCenとPLLイネーブル信号PLLe
nを出力する。起動回路330は、クロックコマンドデ
コーダ328のデコード結果を用いて、発振制御又はP
LL発振制御が行われる。また起動回路330は、クロ
ックコントロールレジスタ322の設定内容に基づき、
発振制御又はPLL発振制御を行うことができるように
してもよい。
【0125】また起動回路330は、例えば発振回路ウ
ェイクアップ回路やPLL回路ウェイクアップ回路を含
むことができる。この場合、トリガ信号が入力されると
発振回路312の発振動作を開始させ、発振回路ウェイ
クアップ回路により、発振回路312の発振動作が安定
するまでの時間をカウントさせることができる。そし
て、タイムアウトになったときに、発振回路ウェイクア
ップ回路は、発振回路312の後段に接続されるPLL
回路に対し、発振クロックが安定していることを通知す
ることができる。そして、PLL回路の発振動作を開始
させ、PLL回路ウェイクアップ回路により、PLL回
路314の発振動作が安定するまでの時間をカウントさ
せることができる。更にタイムアウトになったときに、
PLL回路ウェイクアップ回路は、PLL回路314の
出力をイネーブルにして、安定したPLLクロックを出
力させることができる。
【0126】発振回路312及びPLL回路314の内
部の所与の発振ノードを固定するか否かを制御すること
で、発振開始及び停止の制御が可能である。またPLL
回路314の出力を「L」レベルに固定するか否かを制
御することで、PLL回路の出力開始及び停止の制御が
可能である。
【0127】ところで、OTGデバイスコントローラI
C200では、USBケーブルの接続により、セルフパ
ワーで動作するAデバイス(広義には、第1のデバイ
ス)、又はバスパワーで動作可能なBデバイス(広義に
は、第2のデバイス)のいずれかに設定される。更にA
デバイス及びBデバイスのいずれかに設定された後に、
ホスト(データ転送制御の主導権を有するホスト)機能
及びペリフェラル(データ転送制御の主導権を有しない
ペリフェラル)機能の切り替え制御が行われる。そのた
め、OTGデバイスコントローラIC200の各部に対
し、複雑なステート遷移に応じたクロック供給制御を行
うことは、重要な課題となる。以下では、OTGデバイ
スコントローラIC200のクロック供給制御について
詳細に説明する。
【0128】3.2 回路ブロック 図12に、クロック制御回路300が適用されるクロッ
クコントローラ294の出力制御単位である回路ブロッ
クの一例を説明するための図を示す。
【0129】ここでは、図7に示すOTGデバイスコン
トローラIC200の機能ブロックと同一部分には同一
符号をしている。
【0130】本実施形態では、OTGデバイスコントロ
ーラIC200を例えば5つの回路ブロックに分割し、
各回路ブロック単位にクロックを生成すると共に出力制
御を行う。より具体的には、クロックコントローラ29
4は、トランシーバクロックXcvr_CLK、HCク
ロックHC_CLK、PCクロックPC_CLK、メイ
ンクロックMain_CLK、OTGCクロックOTG
C_CLKを生成する。トランシーバクロックXcvr
_CLKは、トランシーバ280に供給される。HCク
ロックHC_CLKは、HC220に供給される。PC
クロックPC_CLKは、PC230に供給される。メ
インクロックMain_CLKは、レジスタ部240、
パケットバッファ250、バッファコントローラ260
及びDMAハンドラ292に供給される。OTGコント
ローラ210は、OTGコントローラ210、ホスト/
ペリフェラル切り替え回路270及びCPUインタフェ
ース290に供給される。
【0131】3.3 クロック制御パターン 図13に、クロック制御パターンの一例を示す。
【0132】クロック制御パターンは、図5及び図6に
示したOTGステートに応じて、回路ブロック単位に出
力制御を行うか否かを示す。
【0133】OTGデバイスコントローラIC200で
は、ファームウェアでステート遷移制御が行われる。そ
して、遷移先のステートに応じたステートコマンドがO
TGコントローラ210に設定され、該ステートコマン
ドをデコードして当該ステートの制御を行うコントロー
ル信号が生成される。そのためOTGデバイスコントロ
ーラIC200では、原則としてファームウェアにより
ステートコマンドが設定されるため、ステートに応じた
コントロール信号を生成するOTGコントローラ210
と、該ステートに対応したステートコマンドを設定する
ためのCPUインタフェース290に対してはクロック
供給を行う必要がある。したがって、OTGCクロック
OTGC_CLKは、ほとんどのステートで供給され
る。
【0134】Aデバイスに設定された場合、a_idl
eステートでは、VBUSへの電流供給が行われず、か
つデータ信号線D+、D−が駆動されない。しかしなが
らAデバイスとしては、接続相手のBデバイスからのS
RPを検出する必要があるため、OTGコントローラ2
10及びCPUインタフェース290にクロックを供給
しておく必要がある。そこで、a_idleステートで
は、OTGCクロックOTGC_CLKのみ供給する。
【0135】a_wait_vriseステートはVB
USの電圧が所与の閾値電圧に達するのを待つステート
であり、a_wait_bconステートはBデバイス
でデータ信号線がプルアップされるのを待つステートで
ある。そのため、両ステートではOTGコントローラ2
10及びCPUインタフェース290にクロックを供給
しておく必要がある。
【0136】a_hostステートでは、HC220に
よりホスト動作が行われる。したがって、ホスト機能と
排他的に切り替えられるペリフェラル機能の動作制御を
行うPC230についてはクロックを供給する必要がな
い。そのためa_hostステートでは、PCクロック
PC_CLKのみ供給を停止させることにより、低消費
電力化を図ることができる。
【0137】a_suspendステートでは、Bデバ
イスはSRPやHNPを開始することができる。そのた
め、OTGコントローラ210及びCPUインタフェー
ス290にクロックを供給しておく必要がある。
【0138】a_peripheralステートでは、
PC230によりペリフェラル動作が行われる。したが
って、ペリフェラル機能と排他的に切り替えられるホス
ト機能の動作制御を行うHC220についてはクロック
を供給する必要がない。そのためa_peripher
alステートでは、HCクロックHC_CLKのみ供給
を停止させることにより、低消費電力化を図ることがで
きる。
【0139】a_wait_vfallステートは、V
BUSの電圧が所与の閾値電圧を下回るのを待つステー
トである。そのため、OTGコントローラ210及びC
PUインタフェース290にクロックを供給しておく必
要がある。
【0140】a_vbus_errステートでは、過電
流によりVBUSの電圧が下がるのを待つステートであ
る。そのため、OTGコントローラ210及びCPUイ
ンタフェース290にクロックを供給しておく必要があ
る。
【0141】一方、Bデバイスに設定された場合、b_
idleステートは、USBケーブルが接続されていな
いときのデフォルトのステートである。したがって、デ
ータ転送制御を行うことなく電流が消費されてしまう事
態を回避するため、OTGデバイスコントローラIC2
00の各部へのクロックの供給を停止する。b_idl
eステートから他のステートに遷移するときは、まず、
遷移条件に対応した割り込み(例えば、後述するCha
ngeID割り込みやCross44V割り込み)をト
リガとして発振回路及びPLL回路の動作を開始させ
る。その後、クロックが安定して供給されてOTGコン
トローラ210及びCPUインタフェース290にステ
ートコマンドを設定可能になった後に、遷移先のステー
トに対応したステートコマンドが設定される。
【0142】b_srp_initステートでは、Bデ
バイスがSRPを開始するステートである。b_srp
_initステートでは、SRPによりデータラインパ
ルシング及びVBUSパルシングを行うために、OTG
コントローラ210及びCPUインタフェース290に
クロックを供給しておく必要がある。
【0143】b_peripheralステートでは、
PC230によりペリフェラル動作が行われる。したが
って、ペリフェラル機能と排他的に切り替えられるホス
ト機能の動作制御を行うHC220についてはクロック
を供給する必要がない。そのためb_peripher
alステートでは、HCクロックHC_CLKのみ供給
を停止させることにより、低消費電力化を図ることがで
きる。
【0144】ところが、b_periheralステー
トであっても、USB2.0規格によれば、ダウンスト
リームデバイス(the downstream device)としてのB
デバイスは、接続相手であるアップストリームデバイス
(the upstream device)としてのAデバイスが3ms
以上バスをサスペンド状態にしたことを検出すると、A
デバイスはUSBホストのサスペンド状態となる。この
場合、ホストとして動作するAデバイスがUSBサスペ
ンド状態であるため、Bデバイスは動作することができ
ないため、全てのブロックへのクロックの供給を停止さ
せることで、低消費電力化を図ることができる。
【0145】b_wait_aconステートは、HN
PによりAデバイスがペリフェラルになるのを待つステ
ートである。したがって、OTGコントローラ210及
びCPUインタフェース290のみクロックを供給させ
ればよい。しかしながら、b_wait_aconステ
ートは、通常の場合、b_periheralステート
からb_hostステートへの遷移途中である。そこ
で、b_wait_aconステートの期間が短い場合
には、b_peripheralステートと同じクロッ
ク供給制御を行う方が制御が簡素化される。したがっ
て、図13ではb_peripheralステートと同
じクロック制御パターンになっている。
【0146】b_hostステートでは、HC220に
よりホスト動作が行われる。しかしながら、ホスト機能
と排他的に切り替えられるペリフェラル機能の動作制御
を行うPC230についてはクロックを供給する必要が
ない。そのためb_hostステートでは、PCクロッ
クPC_CLKのみ供給を停止させることにより、低消
費電力化を図ることができる。
【0147】その他、テストモードでは全機能ブロック
について所与の検査を行うために、全機能ブロックにク
ロックが供給される。
【0148】以上のようにAデバイス及びBデバイスの
各ステートについて、回路ブロック単位でクロック制御
を行う場合、クロック制御パターンは、Waitモー
ド、Hostモード、Peripheralモード、A
llSleepモード、AllActiveモードの5
パターンである。
【0149】Waitモードでは、OTGコントローラ
210、CPUインタフェース290及びホスト/ペリ
フェラル切り替え回路270にのみクロック(OTGC
クロックOTGC_CLK)が供給される。
【0150】Hostモードでは、OTGコントローラ
210、CPUインタフェース290及びホスト/ペリ
フェラル切り替え回路270及びHC220にクロック
(OTGCクロックOTGC_CLK、HCクロックH
C_CLK)が供給される。
【0151】Peripheralモードでは、OTG
コントローラ210、CPUインタフェース290及び
ホスト/ペリフェラル切り替え回路270及びPC23
0にのみクロック(OTGCクロックOTGC_CL
K、PCクロックPC_CLK)が供給される。
【0152】AllSleepモードでは、全機能ブロ
ックのみならず、発振回路及びPLL回路の発振動作も
停止される。
【0153】AllActiveモードでは、全機能ブ
ロックに対してクロックが供給される。
【0154】このような5パターンのいずれかのパター
ンが、クロック制御パターンとしてファームウェアによ
りクロック制御回路300に設定される。クロック制御
回路300では、クロック制御パターンをデコードして
回路ブロック単位で、クロックの出力制御が行われる。
【0155】3.4 具体的な構成例 図14に、クロックコントローラ294の詳細な構成例
を示す。
【0156】ただし、図11に示すクロック制御回路3
00と同一部分には同一符号を付し、適宜説明を省略す
る。
【0157】クロック生成回路310は、発振回路31
2、PLL回路314、クロック分配制御回路316を
含む。
【0158】クロック生成回路310では、発振回路3
12から発振クロックXCLKが出力され、PLL回路
314において発振クロックXCLKを逓倍したPLL
クロックPLL_CLKが生成される。PLLクロック
PLL_CLKは、クロック分配制御回路316に供給
される。
【0159】クロック分配制御回路316は、PLLク
ロックPLL_CLKを用いて、回路ブロック単位にク
ロック(図14ではトランシーバXcvr_CLK、H
CクロックHC_CLK、PCクロックPC_CLK、
メインクロックMain_CLK、OTGCクロックO
TGC_CLK)を生成する。クロック分配制御回路3
16は、Xcvr_CLK生成回路350、HC_CL
K生成回路352、PC_CLK生成回路354、Ma
in_CLK生成回路356、OTGC_CLK生成回
路358を含む。Xcvr_CLK生成回路350は、
PLLクロックPLL_CLKを用いて所与の周波数の
トランシーバクロックXcvr_CLKを生成すると共
に、クロックコマンドデコーダ328からの出力制御信
号XcvrSleepに基づいてトランシーバクロック
Xcvr_CLKの停止又はその周波数を低減する出力
制御を行う。HC_CLK生成回路352は、PLLク
ロックPLL_CLKを用いて所与の周波数のHCクロ
ックHC_CLKを生成すると共に、クロックコマンド
デコーダ328からの出力制御信号HCSleepに基
づいてHCクロックHC_CLKの出力制御を行う。P
C_CLK生成回路354は、PLLクロックPLL_
CLKを用いて所与の周波数のPCクロックPC_CL
Kを生成すると共に、クロックコマンドデコーダ328
からの出力制御信号PCSleepに基づいてPCクロ
ックPC_CLKの出力制御を行う。Main_CLK
生成回路356は、PLLクロックPLL_CLKを用
いて所与の周波数のメインクロックMain_CLKを
生成すると共に、クロックコマンドデコーダ328から
の出力制御信号MainSleepに基づいてメインク
ロックMain_CLKの出力制御を行う。OTGC_
CLK生成回路358は、PLLクロックPLL_CL
Kを用いて所与の周波数のOTGCクロックOTGC_
CLKを生成すると共に、クロックコマンドデコーダ3
28からの出力制御信号OTGCSleepに基づいて
OTGCクロックOTGC_CLKの出力制御を行う。
【0160】クロック出力制御回路320の起動回路3
30は、発振回路起動タイマ360、PLL回路起動タ
イマ362、発振回路ウェイクアップ(OSCWakeUp)回
路364、PLL回路ウェイクアップ(PLLWakeUp)回
路366を含む。
【0161】発振回路起動タイマ360は、クロックコ
ントロールレジスタ322に設定されたウェイト数を発
振出力安定期間とし、タイマ起動後、該ウェイト数分を
経過したときに、PLL回路起動信号を出力し、PLL
回路314のPLL発振を開始させると共にPLL回路
起動タイマ362を起動させる。
【0162】PLL回路起動タイマ362は、クロック
コントロールレジスタ322に設定されたウェイト数を
PLL発振出力安定期間とし、タイマ起動後、該ウェイ
ト数分を経過したときに、PLL回路ウェイクアップ信
号をPLLウェイクアップ回路366に出力する。
【0163】発振回路ウェイクアップ回路364には、
クロックコマンドデコーダ328から出力される発振回
路発振イネーブル信号が入力される。発振回路発振イネ
ーブル信号によりイネーブル状態になった発振回路ウェ
イクアップ回路364は、レジュームトリガ信号により
起動され、発振イネーブル信号OSCenを発振回路3
12に出力する。より具体的には、発振回路発振イネー
ブル信号によりイネーブル状態になった発振回路ウェイ
クアップ回路364は、リモートウェイクアップ(Remo
teWakeUp)トリガ又はローカルウェイクアップ(LocalW
akeUp)トリガにより起動され、発振イネーブル信号O
SCenを発振回路312に出力する。リモートウェイ
クアップトリガは、Aデバイスが、a_suspend
ステートからa_hostステートに遷移するとき、B
デバイスがラインステートを「K」状態にしたことを検
出したときにアクティブとなる。ローカルウェイクアッ
プトリガは、ChangeID割り込み、Detnon
J割り込み又はCross44V割り込みが発生したと
きにアクティブとなる。ここでChangeID割り込
みは、例えばb_idleステートからa_idleス
テートに遷移するときに、Mini−Aプラグが挿入さ
れたときのようにID端子の変化をトリガとして発生す
る。DetnonJ割り込みは、b_idleステート
からb_peripheralステートに遷移するとき
に、ラインステートが「J」状態でないことを検出した
ときに発生する。Cross44V割り込みは、Aデバ
イスにおいてVBUSの電圧が所与の閾値電圧が4.4
Vを境に変化したときに発生する。
【0164】PLL回路ウェイクアップ回路366に
は、クロックコマンドデコーダ328から出力されるP
LL回路発振イネーブル信号が入力される。PLL回路
発振イネーブル信号によりイネーブル状態になったPL
L回路ウェイクアップ回路366は、PLL回路起動タ
イマ362からのPLL回路ウェイクアップ信号により
起動され、PLL回路出力イネーブル信号を生成する。
【0165】クロックコントロールレジスタ322に
は、書き込みイネーブル信号CPU_Ctl_wrに基
づき、ファームウェアにより発振回路又はPLL回路の
ウェイト数がCPU_WDataとして設定される。
【0166】クロックコマンドレジスタ326には、フ
ァームウェアからの書き込みイネーブル信号CPU_C
md_wr又はOTGコントローラ210からの書き込
みイネーブル信号OTGC_Cmd_wrに基づき、フ
ァームウェアからのクロックコマンド又はOTGコント
ローラ210からのクロックコマンドが設定される。な
お、書き込みイネーブル信号OTGC_Cmd_wrに
は、ラインステートの監視結果に基づいて生成されるト
リガ信号(例えば、上述のリモートウェイクアップトリ
ガやローカルウェイクアップ)も含まれる。
【0167】クロックモニタレジスタ324には、発振
回路ウェイクアップ回路364から出力される発振イネ
ーブル信号OSCenの状態がEnOSCとして割り当
てられているビットフィールドに設定される。また発振
回路起動タイマ360から出力されるPLLイネーブル
信号PLLenの状態が、EnPLLとして割り当てら
れているクロックモニタレジスタ324のビットフィー
ルドに設定される。更にPLL回路ウェイクアップ回路
366から出力されるPLL回路出力イネーブル信号の
状態が、PLLClkActiveとして割り当てられ
ているクロックモニタレジスタ324のビットフィール
ドに設定される。更にまた、クロックコマンドデコーダ
328から出力されるクロック分配制御信号OTGCS
leepの状態が、CPUClkActiveとして割
り当てられているクロックモニタレジスタ324のビッ
トフィールドに設定される。このようなクロックコマン
ドレジスタ326の内容は、ファームウェアからの読み
出しイネーブル信号CPU_Mon_rに基づき、CP
U_RDataとして読み出される。
【0168】クロックコマンドデコーダ328は、クロ
ックコマンドレジスタ326に設定されたクロックコマ
ンドをデコードして、発振回路発振イネーブル信号、P
LL回路発振イネーブル信号、クロック分配制御信号X
cvrSleep、HCSleep、PCSleep、
MainSleep、OTGCSleep(広義には出
力制御信号)を生成する。クロック分配制御信号は、そ
れぞれXcvr_CLK生成回路350、HC_CLK
生成回路352、PC_CLK生成回路354、Mai
n_CLK生成回路356、OTGC_CLK生成回路
358に供給される。
【0169】次にこのような構成のクロックコントロー
ラ294の動作について説明する。
【0170】図15乃至図20に、クロックコントロー
ラ294の動作タイミングの例を示す。
【0171】図15はリセット後のデフォルト状態か
ら、Bデバイスのアイドル状態に遷移するときのクロッ
ク供給制御の動作タイミングの一例である。クロックコ
ントローラ294は、リセットされると、クロックコマ
ンドレジスタ326に、内部状態の初期化のため全機能
ブロックにクロックを供給するAllActiveモー
ドに対応するクロックコマンドが設定される。これによ
り、クロック分配制御信号(広義には出力制御信号)X
cvrSleep、HCSleep、PCSleep、
MainSleep、OTGCSleepがそれぞれ
「L」レベルとしてデコード出力される。そして、発振
回路発振イネーブル信号及びPLL回路発振イネーブル
信号(広義には出力制御信号)が、それぞれイネーブル
状態としてデコード出力される。したがって、発振回路
及びPLL回路が発振動作を行い、PLLクロックPL
L_CLKを出力する。そして、クロック分配制御回路
316からトランシーバクロックXcvr_CLK、H
CクロックHC_CLK、PCクロックPC_CLK、
メインクロックMain_CLK、OTGCクロックO
TGC_CLKが出力される。
【0172】その後、Bデバイスのアイドル状態になる
と、ファームウェアはクロックコマンドレジスタ326
に、AllSleepモードに対応するクロックコマン
ドが設定される。これにより、クロック分配制御信号
(広義には出力制御信号)XcvrSleep、HCS
leep、PCSleep、MainSleep、OT
GCSleepがそれぞれ「H」レベルとしてデコード
出力される。したがって、クロック分配制御回路316
からトランシーバクロックXcvr_CLK、HCクロ
ックHC_CLK、PCクロックPC_CLK、メイン
クロックMain_CLK、OTGCクロックOTGC
_CLKの出力が停止される。そして、PLL回路発振
イネーブル信号及び発振回路発振イネーブル信号(広義
には出力制御信号)がディセーブル(disable)
状態としてデコードされるため、発振動作を停止する。
【0173】図16は、AデバイスでのBデバイス検知
待ち状態からホスト状態になるときのクロック供給制御
の動作タイミングの一例である。Aデバイスにおいて、
a_wait_bconステートからa_hostステ
ートに遷移したときに、ファームウェアによりWait
モードに対応して設定されていたクロックコマンドレジ
スタに、Hostモードに対応するクロックコマンドが
設定される。これにより、新たにHCクロックHC_C
LK、トランシーバクロックXcvr_CLK及びメイ
ンクロックMain_CLKの出力が開始される。
【0174】図17は、Aデバイスでホスト状態からサ
スペンド状態になるときのクロック供給制御の動作タイ
ミングの一例である。Aデバイスにおいて、a_hos
tステートからa_suspendステートに遷移した
ときに、ファームウェアによりHostモードに対応し
て設定されていたクロックコマンドレジスタに、Wai
tモードに対応するクロックコマンドが設定される。こ
れにより、HCクロックHC_CLK、トランシーバク
ロックXcvr_CLK及びメインクロックMain_
CLKの出力が停止される。
【0175】図18は、Bデバイスでホスト状態からペ
リフェラル状態になるときのクロック供給制御の動作タ
イミングの一例である。Bデバイスにおいて、b_ho
stステートからb_peripheralステートに
遷移したときに、ファームウェアによりHostモード
に対応して設定されていたクロックコマンドレジスタ
に、Peripheralモードに対応するクロックコ
マンドが設定される。これにより、HCクロックHC_
CLKの出力が停止され、PCクロックPC_CLKの
出力が開始される。
【0176】図19は、Aデバイスでアイドル状態から
テスト状態になるときのクロック供給制御の動作タイミ
ングの一例である。Aデバイスにおいて、ファームウェ
アによりWaitモードに対応して設定されていたクロ
ックコマンドレジスタに、AllActiveモードに
対応するクロックコマンドが設定される。これにより、
新たにHCクロックHC_CLK、PCクロックPC_
CLK、トランシーバクロックXcvr_CLK及びメ
インクロックMain_CLKの出力が開始される。
【0177】なおクロックコマンドレジスタには、上述
した5種類のクロック制御パターンのみが設定されるも
のではなく、発振回路312及びPLL回路314の出
力制御を行う発振回路発振イネーブル信号及びPLL回
路発振イネーブル信号の少なくとも1つを、クロックコ
マンドをデコードさせて出力させるようにしてもよい。
【0178】図20は、テスト状態において、PLL回
路の出力を停止させるときのクロック供給制御の動作タ
イミングの一例である。ファームウェアによりAllA
ctiveモードに対応して設定されていたクロックコ
マンドレジスタに、PLL回路出力イネーブル信号をデ
ィセーブルにするためのクロックコマンドが設定され
る。この場合、PLL回路発振イネーブル信号をディセ
ーブルにすると、PLL回路出力イネーブル信号がディ
セーブルになる。そして、発振回路312の発振出力を
除く全クロックの出力を停止している。
【0179】なお上述したクロックコマンドは、遷移制
御された遷移先のステートに対応するステートコマンド
と同一タイミングで設定するようにしてもよいし、互い
に時間差を設けて設定するようにしてもよく、遷移制御
されるステートにおいて任意のタイミングで設定するこ
とができる。
【0180】図21及び図22に、このようなクロック
制御回路がクロックコントローラとして適用されたOT
GデバイスコントローラIC200を用いたデータ転送
制御の一例を示す。
【0181】ここでは、デフォルト状態のb_idle
ステートからAデバイスとしてa_hostステートに
遷移するまでの間で行われるファームウェアの処理と、
接続相手とのやり取りを示している。
【0182】Connect(J)Detは、接続相手
と接続されたか否かを検出するためにラインステートが
「J」状態であることを検出する機能をいう。Disc
onnect(SE0)Detは、接続相手と切断され
たか否かを検出するためにラインステートが「SE0」
状態であることを検出する機能をいう。
【0183】上述したようにデュアルロールデバイス
は、デフォルト状態ではb_idleステートである。
このときCPU(ファームウェア)により、AllSl
eepモードに対応するクロックコマンドが、クロック
コマンドレジスタに設定される。これにより、図15に
示すように全クロックの出力が停止される。
【0184】その後、接続相手にはMini−Bプラグ
が挿入され、OTGデバイスコントローラIC200に
Mini−Aプラグが挿入されると、ID信号が変化し
たことを示すChnageID割り込みがCPU(ファ
ームウェア)に通知される。なお、CPUに通知される
割り込み信号は、CPUにより非アクティブになるよう
に制御される。
【0185】CPUは、図5に示したように、遷移先の
ステートがa_idleステートであると判断して、O
TGステートコマンドを設定する。したがって、OTG
デバイスコントローラIC200では、a_idleス
テートにおけるコントロール信号に基づいて各ブロック
が制御される。更にCPUは、図13に示すようにa_
idleステートにおけるクロック制御パターンをWa
itモードであると判断し、Waitモードに対応する
クロックコマンドを、クロックコマンドレジスタに設定
する。これにより、OTGCクロックOTGC_CLK
のみ出力が開始され、OTGコントローラ210、CP
Uインタフェース290及びホスト/ペリフェラル切り
替え回路270に対してクロックが供給される。
【0186】続いて、上位アプリケーションからバスの
使用要求があると(a_bus_req)、CPUは、
遷移先のステートがa_wait_vriseステート
であると判断して、OTGステートコマンドを設定す
る。更にCPUは、図13に示すようにa_wait_
vriseステートにおけるクロック制御パターンがW
aitモードであると判断し、Waitモードに対応す
るクロックコマンドをクロックコマンドレジスタに設定
する。この場合、各クロックの出力状態は、a_idl
eステートのときと変わらない。
【0187】a_wait_vriseステートに対応
したステートコマンドが設定されてa_wait_vr
iseステートに遷移すると、CPUは200msのタ
イマを起動する。そして、VBUSの電圧が所与の閾値
電圧を越えたことが検出されると、Cross44V割
り込みにより、当該ステートにおけるタイマを停止する
と共に、遷移先のステートがa_wait_bconス
テートであると判断して、OTGステートコマンドを設
定する。なお、CPUは起動したタイマが200msに
なってタイムアウトとなった場合にも、a_wait_
bconステートに遷移するものと判断し、a_wai
t_bconステートに対応するOTGステートコマン
ドを設定することができる。更にCPUは、図13に示
すようにa_wait_bconステートにおけるクロ
ック制御パターンがWaitモードであると判断し、W
aitモードに対応するクロックコマンドをクロックコ
マンドレジスタに設定する。この場合、各クロックの出
力状態は、a_wait_vriseステートのときと
変わらない。
【0188】a_wait_bconステートに遷移す
ると、CPUは200msのタイマを起動する。そし
て、ラインステートが「J」状態であることを規定時
間、検出するとChangeConnStat割り込み
により、タイマを停止すると共に、遷移先のステートが
a_hostステートであると判断して、OTGステー
トコマンドを設定する。更にCPUは、図13に示すよ
うにa_hostステートにおけるクロック制御パター
ンがHostモードであると判断し、Hostモードに
対応するクロックコマンドをクロックコマンドレジスタ
に設定する。これにより、図16に示すように、HCク
ロックHC_CLK、メインクロックMain_CLK
及びトランシーバクロックXcrv_CLKの出力が開
始される。
【0189】3.5 他の構成例 クロック制御回路は、図14に示すように全クロック制
御パターンに対応してクロックコマンドを設定する必要
はなく、少なくとも1つのクロック制御パターンに対応
するクロックコマンドを設定することができればよい。
【0190】図23に、図14に示すクロックコントロ
ーラの別の構成例を示す。
【0191】クロックコマンドデコーダ400は、クロ
ックコマンドレジスタ402に設定されたクロックコマ
ンドをデコードして、出力制御信号を生成する。図23
では、出力制御信号として、クロック分配制御信号とし
てのOTGCSleepと、発振回路発振イネーブル信
号とPLL回路発振イネーブル信号とが生成される。
【0192】クロックコントロールレジスタ404に
は、ファームウェア若しくはOTGコントローラ210
等のハードウェアにより、クロックコントロールデータ
が設定される。クロックコントローラ390では、図2
4に示すようにクロックコントロールレジスタとして、
発振ウェイト数として発振回路ウェイクアップタイムO
SCWakeUpTime[1:0]、PLL発振ウェ
イト数としてPLL回路ウェイクアップタイムPLLW
akeUpTime[1:0]、回路ブロック単位にク
ロック供給制御を行うクロック分配制御信号XcvrS
leep、HCSleep、PCSleep、Main
Sleepが生成される。
【0193】クロックコマンドレジスタ402には、図
24に示すように、ファームウェア若しくはOTGコン
トローラ210等のハードウェアにより、クロックコマ
ンドが設定される。
【0194】クロックモニタレジスタ406には、図2
4に示すように、OTGCクロックOTGC_CLKの
供給有無、PLLクロックPLL_CLKの出力有無、
PLL回路の有効/無効EnPLL、発振回路の有効/
無効EnOSCが設定される。
【0195】このように、少なくとも1つのクロック制
御パターンを用いてクロック供給制御を行うことによ
り、処理を簡素化し、無駄な電力消費を抑えることがで
きる。またクロックコントロールレジスタを用いて回路
ブロック単位にクロック供給制御を併用して行うこと
で、より細かなクロック供給制御が可能となる。
【0196】図25乃至図30に、クロックコントロー
ラ390の動作タイミングの例を示す。
【0197】例えばクロックコマンドが「55h」のと
きOSCウェイクアップ、[aah]のときOSCスリ
ープ、「3ch」のときPLLウェイクアップ、「c3
h」のときPLLスリープ、「69h」のときOTGC
_CLKのウェイクアップ、「96h」のときOTGC
_CLKスリープとする。
【0198】図25はリセット後のデフォルト状態か
ら、Bデバイスのアイドル状態に遷移するときのクロッ
ク供給制御の動作タイミングの一例である。クロックコ
ントローラ390は、リセットされると、クロックコマ
ンドレジスタ402に「00h」が設定され、全クロッ
クの出力が行われる。その後、CPU(ファームウェ
ア)は、クロックコントロールレジスタ404により、
クロック分配制御信号Xcvr_Cleep、HCSl
eep、PCSleep、MainSleepを「H」
レベルにして、HCクロックHC_CLK、PCクロッ
クPC_CLK、メインクロックMain_CLK、ト
ランシーバクロックXcvr_CLKの出力を停止す
る。
【0199】続いて、Bデバイスのアイドル状態になる
と、ファームウェアは、クロックコマンドレジスタ40
2に「69h」、「c3h」、「aah」、「00h」
を順次設定して、OTGCクロックOTGC_CLK、
PLLクロックPLL_CLK、発振クロックXCLK
の順に出力を停止させる。
【0200】図26は、AデバイスでのBデバイス検知
待ち状態からホスト状態になるときのクロック供給制御
の動作タイミングの一例である。Aデバイスにおいて、
a_wait_bconステートからa_hostステ
ートに遷移したときに、ファームウェアによりクロック
コントロールレジスタ404を用いて、HCクロックH
C_CLK、トランシーバクロックXcvr_CLK及
びメインクロックMain_CLKの出力を開始させ
る。こうすることで、PCクロックPC_CLKのみク
ロックが供給されず、a_hostステートでの低消費
電力化を図ることができる。
【0201】図27は、Aデバイスでホスト状態からサ
スペンド状態になるときのクロック供給制御の動作タイ
ミングの一例である。Aデバイスにおいて、a_hos
tステートからa_suspendステートに遷移した
ときに、ファームウェアによりクロックコントロールレ
ジスタ404を用いてクロック分配制御信号HCSle
ep、MainSleep、XcvrSleepを
「H」レベルにして、HCクロックHC_CLK、トラ
ンシーバクロックXcvr_CLK及びメインクロック
Main_CLKの出力を停止させる。こうすること
で、OTGCクロックOTGC_CLKのみクロックが
供給され、a_suspendステートでの低消費電力
化を図ることができる。
【0202】図28は、Bデバイスでホスト状態からペ
リフェラル状態になるときのクロック供給制御の動作タ
イミングの一例である。Bデバイスにおいて、b_ho
stステートからb_peripheralステートに
遷移したときに、ファームウェアによりクロックコント
ロールレジスタ404を用い、クロック分配制御信号H
CSleepを「H」レベルにしてHCクロックHC_
CLKを停止させると共に、クロック分配制御信号PC
Sleepを「L」レベルにしてPCクロックPC_C
LKの出力を開始させる。こうすることで、b_per
ipheralステートにおいて、HCクロックHC_
CLKの供給が停止され、低消費電力化を図ることがで
きる。
【0203】図29は、Aデバイスでアイドル状態から
テスト状態になるときのクロック供給制御の動作タイミ
ングの一例である。Aデバイスにおいて、テスト状態に
設定されると、ファームウェアによりクロックコントロ
ールレジスタ404を用い、クロック分配制御信号HC
Sleep、PCSleep、MainSleep、X
cvrSleepを「L」レベルにして、HCクロック
HC_クロック、PCクロックPC_CLK、メインク
ロックMain_CLK、トランシーバクロックXcv
r_CLKの出力を開始させる。こうすることで、低消
費電力化を図る一方で、各機能ブロックのテストを行う
ことができる。
【0204】図30は、テスト状態において、PLL回
路の出力を停止させるときのクロック供給制御の動作タ
イミングの一例である。クロックコントローラ390
は、テスト状態において、ファームウェアによりクロッ
クコマンドレジスタ402に「00h」が設定され、全
クロックの出力が行われる。その後、PLL回路を停止
させる場合、CPU(ファームウェア)は、クロックコ
ントロールレジスタ404により、クロック分配制御信
号HCSleep、PCSleep、MainSlee
p、Xcvr_Cleepを「H」レベルにして、HC
クロックHC_CLK、PCクロックPC_CLK、メ
インクロックMain_CLK、トランシーバクロック
Xcvr_CLKの出力を停止する。
【0205】続いて、ファームウェアは、クロックコマ
ンドレジスタ402に「69h」、「c3h」、「00
h」を順次設定して、OTGCクロックOTGC_CL
K、PLLクロックPLL_CLK、発振クロックXC
LKの順に出力を停止させる。
【0206】4. 電子機器 次に本実施形態のクロック制御回路が適用されたデータ
転送制御装置を含む電子機器の例について説明する。
【0207】例えば図31(A)に電子機器の1つであ
るプリンタの内部ブロック図を示し、図32(A)にそ
の外観図を示す。CPU(マイクロコンピュータ)51
0はシステム全体の制御などを行う。操作部511はプ
リンタをユーザが操作するためのものである。ROM5
16には、制御プログラム、フォントなどが格納され、
RAM517はCPU510のワーク領域として機能す
る。DMAC518は、CPU510を介さずにデータ
転送を行うためのDMAコントローラである。表示パネ
ル519はプリンタの動作状態をユーザに知らせるため
のものである。
【0208】USBを介してパーソナルコンピュータな
どの他のデバイスから送られてきたシリアルの印字デー
タは、データ転送制御装置500によりパラレルの印字
データに変換される。そして、変換後のパラレル印字デ
ータは、CPU510又はDMAC518により、印字
処理部(プリンタエンジン)512に送られる。そし
て、印字処理部512においてパラレル印字データに対
して所与の処理が施され、プリントヘッダなどからなる
印字部(データの出力処理を行う装置)514により紙
に印字されて出力される。
【0209】図31(B)に電子機器の1つであるデジ
タルカメラの内部ブロック図を示し、図32(B)にそ
の外観図を示す。CPU520はシステム全体の制御な
どを行う。操作部521はデジタルカメラをユーザが操
作するためのものである。ROM526には制御プログ
ラムなどが格納され、RAM527はCPU520のワ
ーク領域として機能する。DMAC528はDMAコン
トローラである。
【0210】CCDなどからなる撮像部522により撮
影対象の画像が読み取られ、読み取られた画像のデータ
は画像処理部524により処理される。そして、処理後
の画像データは、CPU520又はDMAC528によ
りデータ転送制御装置500に送られる。データ転送制
御装置500は、このパラレルの画像データをシリアル
データに変換し、USBを介してパーソナルコンピュー
タなどの他のデバイスに送信する。
【0211】図31(C)に電子機器の1つであるCD
−RWドライブの内部ブロック図を示し、図32(C)
にその外観図を示す。CPU530はシステム全体の制
御などを行う。操作部531はCD−RWをユーザが操
作するためのものである。ROM536には制御プログ
ラムなどが格納され、RAM537はCPU530のワ
ーク領域として機能する。DMAC538はDMAコン
トローラである。
【0212】レーザ、モータ、光学系などからなる読み
取り&書き込み部(データの取り込み処理を行う装置又
はデータの記憶処理を行うための装置)533によりC
D−RW532から読み取られたデータは、信号処理部
534に入力され、エラー訂正処理などの所与の信号処
理が施される。そして、信号処理が施されたデータが、
CPU530又はDMAC538によりデータ転送制御
装置500に送られる。データ転送制御装置500は、
このパラレルのデータをシリアルデータに変換し、US
Bを介してパーソナルコンピュータなどの他のデバイス
に送信する。
【0213】一方、USBを介して他のデバイスから送
られてきたシリアルのデータは、データ転送制御装置5
00によりパラレルのデータに変換される。そして、こ
のパラレルデータは、CPU530又はDMAC538
により信号処理部534に送られる。そして、信号処理
部534においてこのパラレルデータに対して所与の信
号処理が施され、読み取り&書き込み部533によりC
D−RW532に記憶される。
【0214】なお、図31(A)、(B)、(C)にお
いて、CPU510、520、530の他に、データ転
送制御装置500でのデータ転送制御のためのCPUを
別に設けるようにしてもよい。
【0215】本実施形態のデータ転送制御装置を電子機
器に用いれば、ホスト動作を行うパーソナルコンピュー
タと接続することなく、USB転送を行うことができ
る。特に携帯型の電子機器に用いることによって、ユー
ザはパーソナルコンピュータを持ち歩く必要がなくな
り、手軽にUSB転送を行うことができる。例えば、パ
ーソナルコンピュータを介することなく、プリンタや、
CD−RWとの間でUSB転送を行うことができる。
【0216】また本実施形態のデータ転送制御装置を電
子機器に用いれば、CPU上で動作するファームウェア
の処理負荷が軽減され、安価なCPUを用いることが可
能になる。更に、データ転送制御装置の低コスト化、小
規模化を図れるため、電子機器の低コスト化、小規模化
も図れるようになる。
【0217】なお本実施形態のデータ転送制御装置を適
用できる電子機器としては、上記以外にも例えば、種々
の光ディスクドライブ(CD−ROM、DVD)、光磁
気ディスクドライブ(MO)、ハードディスクドライ
ブ、TV、VTR、ビデオカメラ、オーディオ機器、電
話機、プロジェクタ、パーソナルコンピュータ、電子手
帳、ワードプロセッサなど種々のものを考えることがで
きる。
【0218】なお、本発明は本実施形態に限定されず、
本発明の要旨の範囲内で種々の変形実施が可能である。
【0219】また、本発明は、OTG規格でのデータ転
送に適用されることが特に望ましいが、これに限定され
るものではない。例えばOTG規格と同様の思想に基づ
く規格やOTG規格を発展させた規格におけるデータ転
送にも本発明は適用できる。
【0220】更にまた回路ブロックの分割方法は、上述
の機能ブロックの分割方法に限定されるものではない。
OTGデバイスコントローラICの各機能ブロックの動
作周波数、レイアウト配置及び回路規模に応じて複数の
回路ブロックに適宜分割することができる。
【0221】更にOTG規格のデータ転送として図13
に示すクロック制御パターンでクロック供給制御を行う
ものとして説明したが、これに限定されるものではな
い。より多くのクロック制御パターンを設けることで、
より細かなクロック供給制御を行うことができるように
なる。
【0222】更に上述した実施形態において、転送に先
立ってMini−Aプラグが挿入されたデバイスをAデ
バイス、Mini−Bプラグが挿入されたデバイスをB
デバイスであるものとして説明したが、転送制御中に、
Aデバイス及びBデバイスを入れ替え、例えばVBUS
の供給源を切り替えるようにした場合でも、本発明は適
用できる。
【図面の簡単な説明】
【図1】図1(A)は、その両端にMini−Aプラグ
及びMini−Bプラグを有するUSBケーブルの概要
を示す模式図である。図1(B)は、Aデバイス及びB
デバイスについて説明するための図である。図1(C)
は、端子表を示す図である。
【図2】USBケーブルが接続されたデュアルロールデ
バイスの例を模式的に示す図である。
【図3】SRPについて説明するための図である。
【図4】HNPについて説明するための図である。
【図5】Aデバイスのステート遷移を説明するための図
である。
【図6】Bデバイスのステート遷移を説明するための図
である。
【図7】OTGデバイスコントローラICの機能ブロッ
ク図である。
【図8】OTGデバイスコントローラICがAデバイス
のとき、HCで行われるステート遷移の一例を示すフロ
ー図である。
【図9】OTGデバイスコントローラICがBデバイス
のとき、HCで行われるステート遷移の一例を示すフロ
ー図である。
【図10】OTGデバイスコントローラICによるHN
Pの動作タイミングの一例を示すタイミングチャートで
ある。
【図11】クロック制御回路の構成の概要を示すブロッ
ク図である。
【図12】回路ブロック単位に供給されるクロックにつ
いて説明するための図である。
【図13】クロック制御パターンの一例を示す図であ
る。
【図14】クロックコントローラの詳細な構成例を示す
回路図である。
【図15】リセット後のデフォルト状態から、Bデバイ
スのアイドル状態に遷移するときのクロック供給制御の
動作タイミングの一例を示すタイミングチャートであ
る。
【図16】AデバイスでのBデバイス検知待ち状態から
ホスト状態になるときのクロック供給制御の動作タイミ
ングの一例を示すタイミングチャートである。
【図17】Aデバイスでホスト状態からサスペンド状態
になるときのクロック供給制御の動作タイミングの一例
を示すタイミングチャートである。
【図18】Bデバイスでホスト状態からペリフェラル状
態になるときのクロック供給制御の動作タイミングの一
例を示すタイミングチャートである。
【図19】Aデバイスでアイドル状態からテスト状態に
なるときのクロック供給制御の動作タイミングの一例を
示すタイミングチャートである。
【図20】テスト状態において、PLL回路の出力を停
止させるときのクロック供給制御の動作タイミングの一
例を示すタイミングチャートである。
【図21】OTGデバイスコントローラIC200を用
いたデータ転送制御の一例の前半部を示すシーケンス図
である。
【図22】OTGデバイスコントローラIC200を用
いたデータ転送制御の一例の後半部を示すシーケンス図
である。
【図23】クロックコントローラの別の詳細な構成例を
示す回路図である。
【図24】クロックモニタレジスタ、クロックコントロ
ールレジスタ、クロックコマンドレジスタのレジスタマ
ップの一例を示す図である。
【図25】リセット後のデフォルト状態から、Bデバイ
スのアイドル状態に遷移するときのクロック供給制御の
動作タイミングの一例を示すタイミングチャートであ
る。
【図26】AデバイスでのBデバイス検知待ち状態から
ホスト状態になるときのクロック供給制御の動作タイミ
ングの一例を示すタイミングチャートである。
【図27】Aデバイスでホスト状態からサスペンド状態
になるときのクロック供給制御の動作タイミングの一例
を示すタイミングチャートである。
【図28】Bデバイスでホスト状態からペリフェラル状
態になるときのクロック供給制御の動作タイミングの一
例を示すタイミングチャートである。
【図29】Aデバイスでアイドル状態からテスト状態に
なるときのクロック供給制御の動作タイミングの一例を
示すタイミングチャートである。
【図30】テスト状態において、PLL回路の出力を停
止させるときのクロック供給制御の動作タイミングの一
例を示すタイミングチャートである。
【図31】図31(A)、(B)、(C)は、種々の電
子機器の内部ブロック図の例である。
【図32】図32(A)、(B)、(C)は、種々の電
子機器の外観図の例である。
【符号の説明】
10、20 デュアルロールデバイス(Dual-Role Devi
ce) 12、22、214 ID検出回路 200 OTGデバイスコントローラIC 210 OTGコントローラ 212 OTG管理回路 216 VBUS検出回路 218 ラインステート検出回路 220 ホストコントローラ(HC) 230 ペリフェラルコントローラ(PC) 240 レジスタ部 250 パケットバッファ(FIFO) 260 バッファコントローラ 270 ホスト/ペリフェラル切り替え回路 272 ラインステートコントローラ 274 UTMIセレクタ 280 トランシーバ 290 CPUインタフェース 292 DMAハンドラ 294、390 クロックコントローラ 296 テストモジュール 300 クロック制御回路 310 クロック生成回路 312 発振回路 314 PLL回路 316 クロック分配制御回路 318 発振子 320 クロック出力制御回路 322、404 クロックコントロールレジスタ 324、406 クロックモニタレジスタ 326、402 クロックコマンドレジスタ 328、400 クロックコマンドデコーダ 330 起動回路 350 Xcvr_CLK生成回路 352 HC_CLK生成回路 354 PC_CLK生成回路 356 Main_CLK生成回路 358 OTGC_CLK生成回路 360 発振回路起動タイマ 362 PLL回路起動タイマ 364 発振回路ウェイクアップ回路 366 PLL回路ウェイクアップ回路 500 データ転送制御装置 510、520、530 CPU 511、521、531 操作部 512 印字処理部 514 印字部 516、526、536 ROM 517、527、537 RAM 518、528、538 DMAC 519 表示パネル 522 撮像部 524 画像処理部 532 CD−RW 533 読み取り&書き込み部 534 信号処理部

Claims (15)

    【特許請求の範囲】
  1. 【請求項1】 デフォルト状態においてホストとして動
    作する第1のデバイスのステート遷移又はデフォルト状
    態においてペリフェラルとして動作する第2のデバイス
    のステート遷移により、少なくともホスト及びペリフェ
    ラルのステートの切り替え制御を行うステートコントロ
    ーラを含むデータ転送制御装置のクロック制御回路であ
    って、 前記データ転送制御装置の回路ブロックごとにクロック
    を生成するクロック生成回路と、 前記回路ブロックごとに前記クロックの出力を制御する
    出力制御信号を生成するクロック出力制御回路と、 を含み、 前記クロック出力制御回路は、 前記第2のデバイスのステート遷移においてアイドルス
    テートのとき、前記出力制御信号に基づいて、前記ステ
    ートコントローラへのクロック出力を停止させ、又はク
    ロック周波数を低減させる出力制御を行うことを特徴と
    するクロック制御回路。
  2. 【請求項2】 請求項1において、 前記クロック出力制御回路は、 前記第1のデバイスのステート遷移を行うとき、前記ス
    テートコントローラへのクロックの出力制御を省略する
    ことを特徴とするクロック制御回路。
  3. 【請求項3】 請求項1又は2において、 前記クロック出力制御回路は、 前記第2のデバイスのステート遷移においてアイドルス
    テートのとき、ホストとして動作するための動作制御を
    行うホストコントローラへのクロック出力を停止させ、
    又はクロック周波数を低減させる出力制御を行うと共
    に、ペリフェラルとして動作するための動作制御を行う
    ペリフェラルコントローラへのクロック出力を停止さ
    せ、又はクロック周波数を低減させる出力制御を行うこ
    と特徴とするクロック制御回路。
  4. 【請求項4】 デフォルト状態においてホストとして動
    作する第1のデバイスのステート遷移又はデフォルト状
    態においてペリフェラルとして動作する第2のデバイス
    のステート遷移により、少なくともホスト及びペリフェ
    ラルのステートの切り替え制御を行うステートコントロ
    ーラを含むデータ転送制御装置のクロック制御回路であ
    って、 前記データ転送制御装置の回路ブロックごとにクロック
    を生成するクロック生成回路と、 前記回路ブロックごとに前記クロックの出力を制御する
    出力制御信号を生成するクロック出力制御回路と、 を含み、 前記クロック出力制御回路は、 前記第2のデバイスのペリフェラルのステート遷移にお
    いて接続相手からのデータ転送がサスペンドになったと
    き、前記出力制御信号に基づいて、前記ステートコント
    ローラへのクロック出力を停止させ、又はクロック周波
    数を低減させる出力制御を行い、 前記第1のデバイスのステート遷移においてサスペンド
    ステートのとき、前記ステートコントローラへのクロッ
    クの出力制御を省略することを特徴とするクロック制御
    回路。
  5. 【請求項5】 請求項4において、 前記クロック出力制御回路は、 前記第1のデバイスのステート遷移においてサスペンド
    ステートのとき、前記出力制御信号に基づいて、ペリフ
    ェラルとして動作するための動作制御を行うペリフェラ
    ルコントローラへのクロック出力を停止させ、又はクロ
    ック周波数を低減させる出力制御を行うことを特徴とす
    るクロック制御回路。
  6. 【請求項6】 請求項1乃至5のいずれかにおいて、 前記クロック出力制御回路は、 ペリフェラルとして動作するとき、前記出力制御信号に
    基づいて、ホストとして動作するための動作制御を行う
    ホストコントローラへのクロック出力を停止させ、又は
    クロック周波数を低減させる出力制御を行い、 ホストとして動作するとき、ペリフェラルとして動作す
    るための動作制御を行うペリフェラルコントローラへの
    クロック出力を停止させ、又はクロック周波数を低減さ
    せる出力制御を行うことを特徴とするクロック制御回
    路。
  7. 【請求項7】 請求項1乃至6のいずれかにおいて、 前記クロック出力制御回路は、 前記データ転送制御装置の各回路ブロックに供給される
    クロックごとに出力停止させるか否か、又はクロック周
    波数を低減させるか否かを示すクロック制御パターンに
    基づいて、前記出力制御信号を生成することを特徴とす
    るクロック制御回路。
  8. 【請求項8】 請求項7において、 前記クロック出力制御回路は、 前記クロック制御パターンに対応したクロックコマンド
    が設定されるクロックコマンドレジスタと、 前記クロックコマンドレジスタの設定内容を監視するた
    めのクロックモニタレジスタと、 を含み、 前記出力制御信号は、 前記クロックコマンドレジスタに設定されたクロックコ
    マンドのデコード結果に基づいて生成されることを特徴
    とするクロック制御回路。
  9. 【請求項9】 請求項8において、 前記クロックコマンドは、 前記ステートコントローラに設定される遷移先のステー
    トに応じて生成されることを特徴とするクロック制御回
    路。
  10. 【請求項10】 請求項1乃至9のいずれかにおいて、 前記第1のデバイスは、 USB(Universal Serial Bus)のOTG(On-The-G
    o)規格のAデバイスであり、 前記第2のデバイスは、 USBのOTG規格のBデバイスであり、 前記ステートコントローラは、 USBのOTG規格にしたがって、ホスト及びペリフェ
    ラルのステートの切り替え制御を行うことを特徴とする
    クロック制御回路。
  11. 【請求項11】 所与の回路ブロックごとにクロックを
    生成するクロック生成回路と、 前記回路ブロックごとに前記クロックの出力を制御する
    出力制御信号を生成するクロック出力制御回路と、 を含み、 前記クロック出力制御回路は、 各回路ブロックに供給されるクロックごとに出力を停止
    するか又はその周波数を低減するか否かを示すクロック
    制御パターンに基づいて生成された出力制御信号を用い
    て、回路ブロックごとにクロックの出力を制御すること
    を特徴とするクロック制御回路。
  12. 【請求項12】 USB(Universal Serial Bus)のO
    TG(On-The-Go)規格のステート切り替え制御を行う
    ステートコントローラを含むデータ転送制御装置のクロ
    ック制御回路であって、 前記データ転送制御装置の回路ブロックごとにクロック
    を生成するクロック生成回路と、 前記回路ブロックごとに前記クロックの出力を制御する
    出力制御信号を生成するクロック出力制御回路と、 を含み、 前記クロック出力制御回路は、 USBのOTG規格のBデバイスのアイドルステートの
    とき、前記出力制御信号に基づいて、前記ステートコン
    トローラへのクロック出力を停止させ、又はクロック周
    波数を低減させる出力制御を行うことを特徴とするクロ
    ック制御回路。
  13. 【請求項13】 USB(Universal Serial Bus)のO
    TG(On-The-Go)規格のステート切り替え制御を行う
    ステートコントローラを含むデータ転送制御装置のクロ
    ック制御回路であって、 前記データ転送制御装置の回路ブロックごとにクロック
    を生成するクロック生成回路と、 前記回路ブロックごとに前記クロックの出力を制御する
    出力制御信号を生成するクロック出力制御回路と、 を含み、 前記クロック出力制御回路は、 OTG規格のBデバイスでペリフェラルとして動作して
    いる場合に接続相手からのデータ転送がサスペンドにな
    ったとき、前記出力制御信号に基づいて、前記ステート
    コントローラへのクロック出力を停止させ、又はクロッ
    ク周波数を低減させる出力制御を行い、 OTG規格のAデバイスのサスペンドステートのとき、
    前記ステートコントローラへのクロックの出力制御を省
    略することを特徴とするクロック制御回路。
  14. 【請求項14】 請求項1乃至11のいずれか記載のク
    ロック制御回路と、 第1又は第2のデバイスのステート遷移により、少なく
    ともホスト及びペリフェラルのステートの切り替え制御
    を行うステートコントローラと、 ホストとして動作するための動作制御を行うホストコン
    トローラと、 ペリフェラルとして動作するための動作制御を行うペリ
    フェラルコントローラと、 を含むことを特徴とするデータ転送制御装置。
  15. 【請求項15】 請求項14記載のデータ転送制御装置
    と、 前記データ転送制御装置及びバスを介して転送されるデ
    ータの出力処理又は取り込み処理又は記憶処理を行う装
    置と、 を含むことを特徴とする電子機器。
JP2002127159A 2002-04-26 2002-04-26 クロック制御回路、データ転送制御装置及び電子機器 Expired - Fee Related JP3685151B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2002127159A JP3685151B2 (ja) 2002-04-26 2002-04-26 クロック制御回路、データ転送制御装置及び電子機器
US10/379,686 US7039826B2 (en) 2002-04-26 2003-03-06 Circuit for controlling the clock supplied to a state controller in a data transfer control device according to states of first and second devices

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002127159A JP3685151B2 (ja) 2002-04-26 2002-04-26 クロック制御回路、データ転送制御装置及び電子機器

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2003040182A Division JP2003323400A (ja) 2003-02-18 2003-02-18 クロック制御回路、データ転送制御装置及び電子機器

Publications (2)

Publication Number Publication Date
JP2003323226A true JP2003323226A (ja) 2003-11-14
JP3685151B2 JP3685151B2 (ja) 2005-08-17

Family

ID=29541351

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002127159A Expired - Fee Related JP3685151B2 (ja) 2002-04-26 2002-04-26 クロック制御回路、データ転送制御装置及び電子機器

Country Status (2)

Country Link
US (1) US7039826B2 (ja)
JP (1) JP3685151B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008522325A (ja) * 2004-11-30 2008-06-26 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド Usb・otgコントローラ

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7413129B2 (en) * 2004-09-30 2008-08-19 Stmicroelectronics, Inc. USB device with secondary USB on-the-go function
US7533286B2 (en) * 2005-06-29 2009-05-12 Intel Corporation Regulating application of clock to control current rush (DI/DT)
US7475262B2 (en) * 2005-06-29 2009-01-06 Intel Corporation Processor power management associated with workloads
US20070239924A1 (en) * 2006-03-28 2007-10-11 Toon-Jeow Foo Electronic device transmitting audio-and-video signals with USB connector
GB0614258D0 (en) * 2006-07-18 2006-08-30 Nokia Corp A method for use where a first and second device are connected
CN101136000B (zh) * 2006-09-01 2011-01-05 飞思卡尔半导体公司 实现sd主机/从属设备的应用处理器电路和电子设备
JP2008310425A (ja) * 2007-06-12 2008-12-25 Seiko Epson Corp 集積回路装置、電子機器
FR2922339B1 (fr) * 2007-10-12 2010-06-18 Sagem Monetel Echange de donnees entre un terminal de paiement electronique et un outil de maintenance par une liaison usb
US7979838B2 (en) * 2008-02-15 2011-07-12 International Business Machines Corporation Method of automating creation of a clock control distribution network in an integrated circuit floorplan
US8006079B2 (en) * 2008-02-22 2011-08-23 Netapp, Inc. System and method for fast restart of a guest operating system in a virtual machine environment
US20100082846A1 (en) * 2008-10-01 2010-04-01 Kyung Hwan Kim Usb device and method for connecting the usb device with usb host
KR20130113203A (ko) * 2012-04-05 2013-10-15 삼성전자주식회사 전자 장치 및 전자 장치의 파워 관리 방법

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5452401A (en) * 1992-03-31 1995-09-19 Seiko Epson Corporation Selective power-down for high performance CPU/system
US5996083A (en) * 1995-08-11 1999-11-30 Hewlett-Packard Company Microprocessor having software controllable power consumption
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
JP4180161B2 (ja) 1998-10-15 2008-11-12 株式会社三共 遊技機
JP2000183894A (ja) 1998-12-11 2000-06-30 Toshiba Corp 伝送制御装置
JP2000196648A (ja) 1998-12-28 2000-07-14 Toshiba Corp 電子機器制御方法および電子機器制御装置
JP2000316006A (ja) * 1999-04-28 2000-11-14 Nec Corp バスマネージャ機能自動切換対応ノード、移動端末、及び、移動端末システム
JP2001202155A (ja) 2000-01-18 2001-07-27 Hitachi Ltd 低消費電力処理装置
US6546496B1 (en) * 2000-02-16 2003-04-08 3Com Corporation Network interface with power conservation using dynamic clock control
JP4403331B2 (ja) * 2000-02-22 2010-01-27 ソニー株式会社 電子機器システム、情報処理機器
JP2001238190A (ja) 2000-02-25 2001-08-31 Canon Inc 画像処理装置及びその制御処理方法
JP2002091608A (ja) 2000-09-18 2002-03-29 Matsushita Electric Ind Co Ltd クロック供給装置、及びクロック供給方法
JP2002091603A (ja) 2000-09-20 2002-03-29 Sharp Corp クロック発生回路を内蔵する集積回路

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8180947B2 (en) 2004-10-29 2012-05-15 Advanced Micro Devices, Inc. USB on-the-go controller
JP2008522325A (ja) * 2004-11-30 2008-06-26 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド Usb・otgコントローラ

Also Published As

Publication number Publication date
US7039826B2 (en) 2006-05-02
US20040083400A1 (en) 2004-04-29
JP3685151B2 (ja) 2005-08-17

Similar Documents

Publication Publication Date Title
JP3722217B2 (ja) データ転送制御装置、電子機器及びデータ転送制御方法
JP3654274B2 (ja) データ転送制御装置、電子機器及び電源切替方法
KR100518376B1 (ko) 프로세서 전력 관리를 개선하기 위한 방법 및 장치
TWI464571B (zh) A power saving electronic device for a computer motherboard in a standby dormant state and a computer motherboard
US20130061068A1 (en) Method and apparatus for dynamic power management control using serial bus management protocols
JP3974510B2 (ja) コンピュータ装置、電力管理方法、およびプログラム
US20090249090A1 (en) Method and apparatus for dynamic power management control using parallel bus management protocols
JP3685151B2 (ja) クロック制御回路、データ転送制御装置及び電子機器
JP5089415B2 (ja) 周辺機器、その制御方法及びプログラム
JP2002328754A (ja) 電源供給システム、コンピュータ装置、および最大電力制御方法
JP3685150B2 (ja) クロック制御回路、データ転送制御装置及び電子機器
CN112148662A (zh) 利用i2c地址匹配唤醒的低功耗芯片架构及唤醒方法
CN111741518A (zh) 一种WiFi芯片电路及WiFi装置
JP2001067156A (ja) コンピュータ周辺機器及びその制御方法、撮像装置並びに記憶媒体
JP4660140B2 (ja) データ転送制御システム、電子機器及びプログラム
JP2006227985A (ja) データ転送制御装置及び電子機器
JP2011090423A (ja) コンピュータおよび電源装置
JP2000357079A (ja) コンピュータシステムおよび同システムの制御方法
JP2003122458A (ja) コンピュータ装置、コントローラ、コンピュータ装置の制御方法
JP2003323400A (ja) クロック制御回路、データ転送制御装置及び電子機器
US20060190635A1 (en) Information processing apparatus and state control method of the same apparatus
TWI389104B (zh) 支援硬碟最高傳輸速率的硬碟存取方法及系統
JP2003323227A (ja) クロック制御回路、データ転送制御装置及び電子機器
JP2003323395A (ja) データ転送制御装置、電子機器及びデータ転送制御方法
US20200065274A1 (en) Always-on ibi handling

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040723

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040907

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041108

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050523

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

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100610

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees