JP2005122303A - データ転送制御装置、電子機器及びデータ転送制御方法 - Google Patents
データ転送制御装置、電子機器及びデータ転送制御方法 Download PDFInfo
- Publication number
- JP2005122303A JP2005122303A JP2003354044A JP2003354044A JP2005122303A JP 2005122303 A JP2005122303 A JP 2005122303A JP 2003354044 A JP2003354044 A JP 2003354044A JP 2003354044 A JP2003354044 A JP 2003354044A JP 2005122303 A JP2005122303 A JP 2005122303A
- Authority
- JP
- Japan
- Prior art keywords
- clock
- data transfer
- data
- state
- controller
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Classifications
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Transfer Systems (AREA)
Abstract
【課題】 種々のデータ転送速度をサポートし、データ転送処理能力を低下させることなく低消費電力化を図るデータ転送制御装置、電子機器及びデータ転送制御方法を提供する。
【解決手段】 データ転送制御装置30は、シリアルバスを介してシリアルデータを転送するシリアルデータ処理部32と、シリアルデータを変換したパラレルデータのデータ転送処理を行うパラレルデータ処理部34と、シリアルバスのデータ転送モードを検出する転送モード検出部36と、各部に供給される動作クロックを生成するクロック生成部38とを含む。クロック生成部38は、データ転送モードが高速な第1の転送モードであると判断されたとき、シリアルデータ処理部32及びパラレルデータ処理部34の動作クロックの周波数の低減制御を省略する。データ転送モードが低速な第2の転送モードであると判断されたとき、シリアルデータ処理部32の動作クロックの周波数の低減制御を省略し、パラレルデータ処理部34の少なくとも一部の動作クロックの周波数の低減制御を行う。
【選択図】 図3
【解決手段】 データ転送制御装置30は、シリアルバスを介してシリアルデータを転送するシリアルデータ処理部32と、シリアルデータを変換したパラレルデータのデータ転送処理を行うパラレルデータ処理部34と、シリアルバスのデータ転送モードを検出する転送モード検出部36と、各部に供給される動作クロックを生成するクロック生成部38とを含む。クロック生成部38は、データ転送モードが高速な第1の転送モードであると判断されたとき、シリアルデータ処理部32及びパラレルデータ処理部34の動作クロックの周波数の低減制御を省略する。データ転送モードが低速な第2の転送モードであると判断されたとき、シリアルデータ処理部32の動作クロックの周波数の低減制御を省略し、パラレルデータ処理部34の少なくとも一部の動作クロックの周波数の低減制御を行う。
【選択図】 図3
Description
本発明は、データ転送制御装置、電子機器及びデータ転送制御方法に関する。
USB(Universal Serial Bus)1.1規格では、種々のパーソナルコンピュータ周辺機器にとって必要とされる12Mビット毎秒(bit per second:bps)(FS(Full Speed)モード)、或いはより低コストな周辺機器との接続を目的とした1.5Mbps(LS(Low Speed)モード)のデータ転送速度が定義されている。そして近年、このUSB1.1規格に対する互換性を持ちながら、USB1.1規格に比べて格段に高速な480Mbps(HS(High Speed)モード)のデータ転送速度を実現できる規格として、USB2.0規格が策定され、注目を浴びている。
特開2002−135132号公報
HSモードをサポートするUSB2.0規格に準拠した製品の市場が順調に拡大しているなか、USB Implementers Forum(USB−IF)によって、USB規格の簡易ホストを実現する規格の1つとしてUSB On−The−Go(OTG)が策定された。USB2.0規格を拡張する形で策定されたOTG規格(OTG1.0)は、USBインターフェースの新たな付加価値を生む可能性を秘めており、その特質を生かしたアプリケーションの登場が待たれている。
OTG規格等により実現される簡易ホストを利用すれば、これまでUSBを介してホスト(パーソナルコンピュータ等)に接続されていたペリフェラル(周辺機器)に、ホスト機能を持たせることができる。これにより、ペリフェラル同士をUSBで接続してデータを転送することが可能となる。例えばデジタルカメラとプリンタとをダイレクトに接続して、デジタルカメラの画像を印刷したり、デジタルカメラやデジタルビデオカメラをストレージ装置に接続して、画像データや映像データを保存することが可能となる。
このようにOTG規格等により実現される簡易ホストを利用することで、ペリフェラルはUSBを介してホストに接続する必要がなくなり、例えば内蔵バッテリで駆動される携帯機器への応用が期待される。そのため、ペリフェラルの低消費電力化がますます重要となってくる。
USB規格では、ホストが、種々のデータ転送速度を有するデバイスをサポートする必要がある。そのため、FSモードのデータ転送速度を有するデバイス(FSデバイス)と接続される場合、ホストは、FSモードのデータ転送速度に合わせて、USBのインターフェース部分のクロックのみを12MHzに変更することが考えられる。同様に、LSモードのデータ転送速度を有するデバイス(LSデバイス)と接続される場合、ホストは、LSモードのデータ転送速度に合わせて、USBのインターフェース部分のクロックのみを1.5MHzに変更することが考えられる。この場合、FSデバイスとLSデバイスのいずれと接続される場合であっても、ホスト内においてインターフェース部分で送受信される転送データを処理するデータ転送処理部のクロックの周波数が一定となる。
しかしながら、ホスト内のデータ転送処理部のクロックをLSモードのデータ転送速度に合わせると、FSデバイスのデータ転送処理が間に合わなくなる場合が生ずる。また、ホスト内のデータ転送処理部のクロックをFSモードのデータ転送速度に合わせると、LSデバイスと接続された場合であっても、該データ転送処理部の消費電力は、FSデバイスと接続された場合とほぼ同じになってしまう。
本発明は、以上のような技術的課題に鑑みてなされたものであり、その目的とするところは、種々のデータ転送速度をサポートし、データ転送処理能力を低下させることなく低消費電力化を図るデータ転送制御装置、電子機器及びデータ転送制御方法を提供することにある。
上記課題を解決するために本発明は、シリアルバスを介したデータ転送のためのデータ転送制御装置であって、前記シリアルバスに接続され、該シリアルバスを介してシリアルデータを転送するシリアルデータ処理部と、前記シリアルデータ処理部によって転送される前記シリアルデータを変換したパラレルデータのデータ転送処理を行うパラレルデータ処理部と、前記シリアルバスのデータ転送モードが高速な第1の転送モードか、又は低速な第2の転送モードかを検出する転送モード検出部と、前記データ転送制御装置の各部に供給される動作クロックを生成するクロック生成部とを含み、前記クロック生成部は、前記転送モード検出部の検出結果により前記データ転送モードが前記第1の転送モードであると判断されたとき、前記シリアルデータ処理部の動作クロック及び前記パラレルデータ処理部の動作クロックの周波数の低減制御を省略し、前記転送モード検出部の検出結果により前記データ転送モードが前記第2の転送モードであると判断されたとき、前記シリアルデータ処理部の動作クロックについてはその周波数の低減制御を省略する一方で、前記パラレルデータ処理部の少なくとも一部の動作クロックについてはその周波数の低減制御を行うデータ転送制御装置に関係する。
本発明においては、シリアルバスのデータ転送モードに関わらず、シリアルデータ処理部の動作クロックの周波数を変化させない。その一方で、パラレルデータ処理部の少なくとも一部の動作クロックについては、シリアルバスのデータ転送モードに応じて、その周波数を低減させる制御を行う。こうすることで、シリアルバスのデータ転送モードが高速な第1の転送モードであっても低速な第2の転送モードであっても、シリアルデータ処理部には、シリアルバスのデータ転送速度に合わせて動作クロックを供給でき、正常なデータ転送を実現する。その一方、第1の転送モードでは、パラレルデータ処理部への動作クロックの周波数を変化させないため、第1の転送モードのデータ転送速度に合わせてパラレルデータ処理部のデータ転送処理を実行できる。パラレルデータ処理部は第1の転送モードのデータ転送速度を満足させるデータ転送能力を有していることになるため、第2の転送モードでは、パラレルデータ処理部への動作クロックの周波数を低減させることができ、パラレルデータ処理部の消費電力を削減できる。
また本発明に係るデータ転送制御装置では、前記パラレルデータ処理部は、前記シリアルデータ処理部によって各エンドポイントとの間で転送されるデータが各パイプ領域に記憶される複数のパイプ領域が確保されるパケットバッファと、パイプ領域と該パイプ領域に対応するエンドポイントとの間でのデータ転送を制御する転送コントローラと、前記複数のパイプ領域を前記パケットバッファに確保すると共に、前記パケットバッファのアクセス制御を行うバッファコントローラと、前記バッファコントローラによってアクセスされたデータが転送される第2のバスのインターフェース処理を行うインターフェース部とを含み、前記クロック生成部は、前記転送モード検出部の検出結果により前記データ転送モードが前記第2の転送モードであると判断されたとき、前記インターフェース部の動作クロックについてその周波数の低減制御を省略することができる。
本発明よれば、高速なアクセスが要求される第2のバスを介したデータ転送能力を低下させることがなくなる。これにより、データ転送制御装置の低消費電力化とデータ転送処理能力の低下の防止とを両立させることができる。
また本発明に係るデータ転送制御装置では、前記シリアルバスは、電源ラインを含み、前記パラレルデータ処理部は、前記電源ラインの状態を検出する電源ライン検出回路と、ホストの役割として動作するホスト動作のステートと、ペリフェラルの役割として動作するペリフェラル動作のステートとを含む複数のステートのステート間の遷移制御を行うステートコントローラとを含み、前記電源ライン検出回路が、前記電源ラインの電圧と基準電圧とを比較するコンパレータと、前記電源ライン検出回路の動作クロックに基づき前記コンパレータの出力を取り込むモニタ部とを含み、前記転送コントローラが、ホスト動作時においてホストとしてのデータ転送を行うホストコントローラと、ペリフェラル動作時においてペリフェラルとしてのデータ転送を行うペリフェラルコントローラとを含み、前記クロック生成部が、前記転送モード検出部の検出結果により前記データ転送モードが前記第2の転送モードであると判断されたとき、前記ホストコントローラの動作クロック、前記電源ライン検出回路の動作クロック、及び前記ステートコントローラの動作クロックのうち少なくとも1つについてはその周波数の低減制御を行うことができる。
本発明によれば、ホストが、例えば第1又は第2のデータ転送速度を有するペリフェラルとの間のデータ転送を実現する場合であっても、データ転送処理能力を低下させることなく、低消費電力化を図ることができる。
また本発明に係るデータ転送制御装置では、前記クロック生成部は、前記ステートコントローラ用の前記第1の転送モードにおける高速な第1の動作クロック及び前記第2の転送モードにおける低速な第2の動作クロック、前記ホストコントローラ用の前記第1の転送モードにおける高速な第3の動作クロック及び前記第2の転送モードにおける低速な第4の動作クロック、前記ペリフェラルコントローラの動作クロック、及び前記インターフェース部の動作クロックを生成し、前記クロック生成部は、前記転送モード検出部の検出結果に基づいて第1及び第2の動作クロックの一方を前記ステートコントローラの動作クロックとして出力する第1のセレクタと、前記転送モード検出部の検出結果に基づいて第3及び第4の動作クロックの一方を前記ホストコントローラの動作クロックとして出力する第2のセレクタとを含むことができる。
本発明によれば、簡素な構成で、その周波数の低減制御が行われるステートコントローラの動作クロック及びホストコントローラの動作クロックを生成できる。
また本発明に係るデータ転送制御装置では、前記クロック生成部は、前記第1のセレクタの出力を停止させる制御を行うステートコントローラ用動作クロック生成回路と、前記第2のセレクタの出力を停止させる制御を行うホストコントローラ用動作クロック生成回路と、前記インターフェース部の動作クロックの出力を停止させる制御を行うインターフェース用動作クロック生成回路とを含み、前記ステートコントローラ用動作クロック生成回路、前記ホストコントローラ用動作クロック生成回路、及び前記インターフェース用動作クロック生成回路の各動作クロック生成回路は、前記ステートコントローラによって遷移制御された遷移先のステートに応じて、その出力を停止させることができる。
また本発明に係るデータ転送制御装置では、前記ステートコントローラによって遷移制御された遷移先のステートに対応したクロックコマンドが設定されるクロックコマンドレジスタと、前記クロックコマンドレジスタに設定された内容をデコードするクロックコマンドデコーダとを含み、前記ステートコントローラ用動作クロック生成回路、前記ホストコントローラ用動作クロック生成回路、及び前記インターフェース用動作クロック生成回路の各動作クロック生成回路は、前記クロックコマンドデコーダのデコード結果に基づいて、その出力を停止させることができる。
本発明によれば、ステートの遷移によって、各部の動作クロックの出力を停止させるため、上記の効果に加えて、より一層の低消費電力化を実現できる。
また本発明に係るデータ転送制御装置では、USB(Universal Serial Bus)のOTG(On-The-Go)規格に準拠したデータ転送を行うことができる。
また本発明は、上記のいずれか記載のデータ転送制御装置と、前記データ転送制御装置及び前記シリアルバスを介して転送されるデータの出力処理又は取り込み処理又は記憶処理を行う装置と、前記データ転送制御装置のデータ転送を制御する処理部とを含む電子機器に関係する。
本発明によれば、データ転送処理能力を低下させることなく、低消費電力化を図る電子機器を提供できる。
また本発明は、シリアルバスを介したデータ転送のためのデータ転送制御方法であって、前記シリアルバスのデータ転送モードが高速な第1の転送モードか、又は低速な第2の転送モードかを検出し、前記データ転送モードが前記第1の転送モードであると判断されたとき、前記シリアルバスに接続され該シリアルバスを介してシリアルデータを転送するシリアルデータ処理部の動作クロック、及び前記シリアルデータを変換したパラレルデータのデータ転送処理を行うパラレルデータ処理部の動作クロックの周波数の低減制御を省略し、前記データ転送モードが前記第2の転送モードであると判断されたとき、前記シリアルデータ処理部の動作クロックについてはその周波数の低減制御を省略すると一方で前記パラレルデータ処理部の少なくとも一部の動作クロックについてはその周波数の低減制御を行うデータ転送制御方法に関係する。
また本発明に係るデータ転送制御装置では、前記データ転送モードが前記第2の転送モードであると判断されたとき、前記パラレルデータが転送される第2のバスのインターフェース処理を行うインターフェース部の動作クロックの周波数の低減制御を省略することができる。
以下、本発明の実施の形態について図面を用いて詳細に説明する。なお、以下に説明する実施の形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また以下で説明される構成のすべてが本発明の必須構成要件であるとは限らない。
1. 簡易ホスト
1.1 Aデバイス、Bデバイス
まず、簡易ホストを実現する規格の一例としてOTG(USB On-The-Go)について説明する。但し本発明の手法は、OTG規格のデータ転送制御手法に限定されるものではない。
1.1 Aデバイス、Bデバイス
まず、簡易ホストを実現する規格の一例としてOTG(USB On-The-Go)について説明する。但し本発明の手法は、OTG規格のデータ転送制御手法に限定されるものではない。
OTGでは、コネクタの規格として、図1(A)に示すようなMini−Aプラグ(plug)、Mini−Bプラグが定義されている。また、これらのMini−Aプラグ、Mini−Bプラグの両方を接続できるコネクタとしてMini−ABレセプタクル(receptacle)が定義されている。
そして図1(B)のように、USBケーブルのMini−Aプラグに電子機器Pが接続され、Mini−Bプラグに電子機器Qが接続されると、電子機器P、Qは、それぞれAデバイス、Bデバイスに設定される。一方、図1(C)に示すように、Mini−Bプラグ、Mini−Aプラグが電子機器P、Qに接続されると、電子機器P、Qは、それぞれBデバイス、Aデバイスに設定される。電子機器は、Mini−Aプラグ及びMini−BプラグのIDピンの電圧レベルを検出することで、自身がどちらのタイプのプラグに接続されたのか判断する。
図2に、USBケーブルが接続される電子機器P、Qを模式的に示す。USBケーブルは、VBUS(電源)、GND及び2本のデータ信号線(DP、DM)を有する。2本のデータ信号線DP、DMの信号は、差動対を構成する。電子機器P、Qは、ID検出回路12、22を含む。IDピンと電気的に接続される信号線をプルアップし、ID検出回路12、22が、該信号線の電圧レベルを検出することでIDピンが接地されているか否かを検出する。ID検出回路12はIDピンに接続される信号線が接地されたことを検出するため、電子機器PはMini−Aプラグが接続されたと判断する。ID検出回路22はIDピンに接続される信号線がプルアップされたことを検出するため、電子機器QはMini−Bプラグが接続されたと判断する。
このような電子機器Pは、データ信号線DPをプルアップするためのプルアップ抵抗R1、データ信号線DPをプルダウンするためのプルダウン抵抗R2を有する。プルアップ抵抗R1は、スイッチ回路SW1を介してプルアップ用電源線に接続される。プルダウン抵抗R2は、スイッチ回路SW2を介してプルダウン用電源線に接続される。電子機器Qは、電子機器Pと同様に、データ信号線DPをプルアップするためのプルアップ抵抗R3、データ信号線DPをプルダウンするためのプルダウン抵抗R4を有する。プルアップ抵抗R3は、スイッチ回路SW3を介してプルアップ用電源線に接続される。プルダウン抵抗R4は、スイッチ回路SW4を介してプルダウン用電源線に接続される。電子機器P、Qでは、データ信号線DMはプルダウンが可能な構成となっている。
OTGでは、Aデバイス(マスタ)が、(図2では電源制御回路VBAにより)電源(VBUS)を供給する側(供給元)になり、Bデバイス(スレーブ)が、電源の供給を受ける側(供給先)になる。またAデバイスは、デフォルト状態においてホストになり、Bデバイスは、デフォルト状態においてペリフェラル(周辺機器)になる。
OTGでは、データ信号線DP、DMの状態により規定されるラインステートを変化させることで、ホストとペリフェラルとの間のデータ転送制御を実現する。ラインステートの変化は、上記のプルアップ抵抗やプルダウン抵抗により実現される。
1.2 SRP、HNP
OTGでは、ホスト(簡易ホスト)としての役割とペリフェラルとしての役割の両方を持つことができるデュアルロール・デバイス(Dual-Role Device)が定義されている。
OTGでは、ホスト(簡易ホスト)としての役割とペリフェラルとしての役割の両方を持つことができるデュアルロール・デバイス(Dual-Role Device)が定義されている。
デュアルロール・デバイスは、ホストにもペリフェラルにもなることができる。デュアルロール・デバイスに接続された装置が、従来のUSB規格におけるホストやペリフェラルである場合には、デュアルロール・デバイスの役割は一意に定まる。つまり、接続相手がホストであれば、デュアルロール・デバイスはペリフェラルに設定され、接続相手がペリフェラルであれば、デュアルロール・デバイスはホストに設定される。一方、接続相手がデュアルロール・デバイスである場合には、両方のデュアルロール・デバイスは、互いにホストの役割とペリフェラルの役割を交換できる。
デュアルロール・デバイスは、セッション開始要求手順SRP(Session Request Protocol)やホスト交換手順HNP(Host Negotiation Protocol)に従って制御される。
OTGでは、バス上のやり取りがないとき、Aデバイスが電源供給を停止して、低消費電力化を図ることができる。SRPは、Bデバイスがセッションを開始してデータ転送を行う場合に、BデバイスがAデバイスに対してVBUS(電源)の供給を要求するプロトコルである。
またOTGでは、上述のようにデュアルロール・デバイス同士の接続では、Mini−Aプラグが接続された側であるAデバイスがデフォルトのホストとなり、Mini−Bプラグが接続された側であるBデバイスがデフォルトのペリフェラルとなる。そしてプラグの抜き差しを行わなくても、ホストの役割とペリフェラルの役割とを交換でき、HNPではこの役割交換を実現するプロトコルである。
2. データ転送制御装置
OTGでは、内蔵バッテリで動作する携帯機器への適用を容易にするため、低消費電力化を図る種々の規格が規定されているが、OTG規格を実現するだけでは十分な低消費電力化を実現できない。
OTGでは、内蔵バッテリで動作する携帯機器への適用を容易にするため、低消費電力化を図る種々の規格が規定されているが、OTG規格を実現するだけでは十分な低消費電力化を実現できない。
ところでUSB規格では、ホストが、種々のデータ転送速度を有するデバイスをサポートする必要がある。これは、OTGの簡易ホストであっても同様である。USB規格では、HSモード、FSモード及びLSモードが定義されており、ホストは、ペリフェラルのデータ転送速度に合わせて、USBのインターフェース部分のクロックのみを変更することが考えられる。
従って、HSデバイス、FSデバイス及びLSデバイスのいずれと接続される場合であっても、ホスト内においてインターフェース部分によって送受信される転送データを処理するデータ転送処理部のクロックは一定となる。そのため、ホスト内のデータ転送処理部のクロックをLSモードのデータ転送速度に合わせると、HSデバイスやFSデバイスのデータ転送処理が間に合わなくなる。一方、ホスト内のデータ転送処理部のクロックをHSモードやFSモードのデータ転送速度に合わせると、LSデバイスと接続された場合であっても、該データ転送処理部の消費電力は、HSデバイスやFSデバイスと接続された場合とほぼ同じになってしまい、無駄な電力が消費されてしまう。
本実施形態におけるデータ転送制御装置では、以上のような問題を解決できる。
図3に、本実施形態のデータ転送制御装置の構成の概要を示す。本実施形態におけるデータ転送制御装置30は、図3の一部の機能ブロックを省略する構成としてもよい。また図3に示す機能ブロックは、ハードウェア回路のみにより実現してもよいし、ハードウェア回路とファームウェア(ソフトウェア)の両方により実現してもよい。
本実施形態におけるデータ転送制御装置30は、シリアルバス(例えばUSB)を介して接続される外部装置40との間でデータ転送を行う。ここで外部装置40は、高速な第1の転送モード、又は低速な第2の転送モードにより、データ転送制御装置30との間でシリアルデータの転送を行うようになっている。シリアルバスのデータ転送モードが第1の転送モードのとき、高速なデータ転送速度でシリアルデータの転送を行う。シリアルバスのデータ転送モードが第2の転送モードのとき、低速なデータ転送速度でシリアルデータの転送を行う。
データ転送制御装置30は、シリアルデータ処理部32を含む。シリアルデータ処理部32は、シリアルバスに接続され、該シリアルバスを介して外部装置40との間でシリアルデータを転送(送信又は受信)する。
データ転送制御装置30は、パラレルデータ処理部34を含む。パラレルデータ処理部34は、シリアルデータ処理部32によって転送されるシリアルデータを変換したパラレルデータのデータ転送処理を行う。ここでデータ転送処理は、物理層の上位の層の処理を含む。
データ転送制御装置30は、転送モード検出部36を含む。転送モード検出部36は、シリアルバスのデータ転送モードが高速な第1の転送モードか、又は低速な第2の転送モードかを検出する。転送モード検出部36は、例えばシリアルバスのラインステートを検出したり、外部装置40との間の転送データ(ヘッダ部)の内容を参照したりして、シリアルバスのデータ転送モードを検出する。
なおデータ転送制御装置30と外部装置40との間のネゴシエーションによってシリアルバスのデータ転送モードを定める場合、転送モード検出部36は、外部装置40のデータ転送モードを検出するようにしてもよい。
本発明は、転送モード検出部36によるデータ転送モードの検出方式に限定されるものではない。
データ転送制御装置30は、クロック生成部38を含む。クロック生成部38は、データ転送制御装置30の各部に供給される動作クロックを生成する。クロック生成部38は、シリアルデータ処理部32、パラレルデータ処理部34及び転送モード検出部36のうち、少なくともシリアルデータ処理部32及びパラレルデータ処理部34に対して動作クロックを供給する。そして、転送モード検出部36の検出結果に基づいて、シリアルバスのデータ転送モードが第1の転送モードであると判断されたとき、クロック生成部38はシリアルデータ処理部32の動作クロック及びパラレルデータ処理部34の動作クロックの周波数の低減制御を行わない(省略する)。一方、転送モード検出部36の検出結果により、データ転送モードが第2の転送モードであると判断されたとき、クロック生成部38は、シリアルデータ処理部32の動作クロックの周波数の低減制御を行わず(省略すると共に)、パラレルデータ処理部34の少なくとも一部の動作クロックの周波数を低減させて出力する。
例えばUSB規格において、第1の転送モードをHSモードとすると、第2の転送モードをFSモード又はLSモードとすることができる。或いは第1の転送モードをFSモードとすると、第2の転送モードをLSモードとすることができる。
こうすることで、シリアルバスが(高速な)第1の転送モード(例えばFSモード)で転送される場合、シリアルデータ処理部32及びパラレルデータ処理部34の動作クロックの周波数は変化しない。そのため、シリアルデータ処理部32は、第1の転送モードのデータ転送速度(例えばFSモードの12Mbps)に合わせてシリアルデータの転送を実現し、パラレルデータ処理部34は第1の転送モードのデータ転送速度に応じたデータ転送処理を実行できる。
これに対して、シリアルバスが(低速な)第2の転送モード(例えばLSモード)で転送される場合、シリアルデータ処理部32の動作クロックの周波数は変化せず、パラレルデータ処理部34の少なくとも一部の動作クロックの周波数が低くなる。ここでパラレルデータ処理部34に供給される動作クロックすべての周波数を低くしてもよい。そのため、シリアルデータ処理部32は、第2の転送モードのデータ転送速度(例えばLSモードの1.5Mbps)に合わせてシリアルデータの転送を実現し、パラレルデータ処理部34は、低速な第2の転送モードのデータ転送速度に応じたデータ転送処理を実行でき、パラレルデータ処理部34の消費電力を低減できる。
このような構成によりシリアルバスのデータ転送モードに応じてパラレルデータ処理部34の動作クロックの周波数を制御することで、例えばパラレルデータ処理部34が第2のバスを介して他の装置との間でパラレルデータの転送を行う場合であっても、該パラレルデータの転送処理能力を低減させることなく、消費電力の低減を図ることができる。
なお、図3において外部装置40は、データ転送制御装置30との間でシリアルバスに接続される装置であればよく、外部装置40がデータ転送制御装置30内に設けられていてもよい。
以下では、このような本実施形態におけるデータ転送制御装置30を、OTG規格に準拠したデータ転送制御装置に適用した場合について説明する。しかしながら、本発明は、OTG規格を発展させた規格に準拠したデータ転送制御装置や、OTG規格に準拠しないデータ転送制御装置にも適用できる。例えばデュアルロール・デバイスの機能を持たず、簡易ホストとしての機能だけを持つようなデータ転送制御装置にも本発明を適用できる。
図4に、図3に示すデータ転送制御装置が適用されたOTG規格に準拠したデータ転送制御装置の構成例を示す。図3に示すデータ転送制御装置が適用されたデータ転送制御装置は、図4の一部の機能ブロックを省略する構成としてもよい。また図4に示す機能ブロックは、ハードウェア回路のみにより実現してもよいし、ハードウェア回路とファームウェア(ソフトウェア)の両方により実現してもよい。
データ転送制御装置100は、トランシーバ(以下、適宜Xcvrと呼ぶ)110を含む。このトランシーバ110は、差動対を構成するデータ信号線DP、DMの信号を用いてUSBのデータを送受信する回路である。トランシーバ110は、USBの物理層(PHY)回路112を含む。より具体的には、トランシーバ110は、データ信号線DP、DMのラインステート(J、K、SE0等)の生成、シリアル・パラレル変換、パラレル・シリアル変換、ビットスタッフィング、ビットアンスタッフィング、NRZIデコード、NRZIエンコード等を行う。なおトランシーバ110をデータ転送制御装置100の外部に設けるようにしてもよい。
データ転送制御装置100は、OTGコントローラ(広義にはステートコントローラ。以下、適宜OTGCと呼ぶ)120を含む。このOTGコントローラ120は、OTGのSRP機能やHNP機能を実現するための処理を行う。このためOTGコントローラ120は、ホストの役割として動作するホスト動作のステートや、ペリフェラルの役割として動作するペリフェラル動作のステート等を含む複数のステートの制御を行う。
より具体的には、OTG規格には、デュアルロール・デバイスのAデバイスに設定された状態のステート遷移やBデバイスに設定された状態のステート遷移が定義されている。OTGコントローラ120は、これらのステート遷移を実現するステートマシーンの機能を有する。またOTGコントローラ120は、USBのラインステートやIDピンの状態を検出(監視)する回路を含む。そしてOTGコントローラ120は、これらの検出状態や、VBUSコンパレータ130の検出状態に基づいてそのステート(例えば、ホスト、ペリフェラル、サスペンド又はアイドル等のステート)を変化させる。この場合のステート遷移は、ハードウェア回路により実現してもよいし、ファームウェアがステートコマンドをレジスタに設定することで実現してもよい。そしてステートが遷移すると、OTGコントローラ120は、遷移後のステートに応じて、VBUSを制御したり、データ信号線DP、DMのプルアップ制御、プルダウン制御を行う。またホストコントローラ(以下、適宜HCと呼ぶ)150、ペリフェラルコントローラ(以下、適宜PCと呼ぶ)160のイネーブル又はディセーブルを制御する。
データ転送制御装置100は、VBUSコンパレータ130を含む。このVBUSコンパレータ130は、USB(バス)のVBUS(電源ライン)の電圧レベルを検出する。より具体的にはVBUSコンパレータ130は、VBUSの電圧レベルが所与の基準電圧レベルを越えたか否かを検出し、その検出結果をOTGコントローラ120に通知する。なおVBUSコンパレータ130をOTGコントローラ120に内蔵するようにしてもよい。
データ転送制御装置100は、HC/PC切り替え回路(HC/PC・コモン回路)140を含む。このHC/PC切り替え回路140は、トランシーバ110と、ホストコントローラ150又はペリフェラルコントローラ160との間の接続の切り替えを制御する。またUSBのデータ信号線DP、DMのラインステートの生成の指示をトランシーバ110に対して行う。なお接続の切り替え制御は、HC/PCセレクタ142により実現され、ラインステートの生成指示は、ラインステートコントローラ144により実現される。
例えばOTGコントローラ120がホスト動作時にHCイネーブル信号(HC_Enable)をアクティブにすると、HC/PC切り替え回路140(HC/PCセレクタ142)は、トランシーバ110とホストコントローラ150とを接続する。一方、OTGコントローラ120がペリフェラル動作時にPCイネーブル信号(PC_Enable)をアクティブにすると、HC/PC切り替え回路140は、トランシーバ110とペリフェラルコントローラ160とを接続する。これにより、ホストコントローラ150とペリフェラルコントローラ160とを排他的に動作させる。
データ転送制御装置100は、転送コントローラ170を含む。この転送コントローラ170は、USBを介したデータ転送を制御する回路であり、ホストコントローラ(HC)150と、ペリフェラルコントローラ(PC)160とを含む。なお簡易ホスト機能だけを実現する場合には、転送コントローラ170にペリフェラルコントローラ160を含ませない構成としてもよい。
ホストコントローラ150は、ホスト動作時にホストの役割としてのデータ転送制御を行う回路である。即ちホストコントローラ150は、ホスト動作時にHC/PC切り替え回路140によりトランシーバ110に接続される。そしてホストコントローラ150は、レジスタ部180の転送条件レジスタ部182に設定された転送条件情報に基づき、エンドポイントに対するトランザクションを(自動)発生する。そしてパケットバッファ190に、確保(allocate)されたパイプ領域(PIPE0〜PIPEe。以下、適宜PIPEと呼ぶ)と、そのパイプ領域に対応するエンドポイントとの間で、データ(パケット)の自動転送(処理部が介在しないハードウェア回路によるデータ転送)を行う。
より具体的にはホストコントローラ150は、複数のパイプ転送間の調停、フレームにおける時間管理、転送のスケジューリング、再送の管理等を行う。またパイプ転送の転送条件情報(オペレーション情報)をレジスタ部180を介して管理する。またトランザクションの管理を行ったり、パケットを生成又は分解したり、サスペンド、レジューム又はリセット状態の生成の指示を行う。
ペリフェラルコントローラ160はペリフェラル動作時にペリフェラルの役割としてのデータ転送制御を行う回路である。即ちペリフェラルコントローラ160は、ペリフェラル動作時にHC/PC切り替え回路140によりトランシーバ110に接続される。そしてレジスタ部180の転送条件レジスタ部182に設定された転送条件情報に基づき、パケットバッファ190に確保されたエンドポイント領域(EP0〜EPe。以下適宜EPと呼ぶ)とホストとの間でデータを転送する。
より具体的には、ペリフェラルコントローラ160は、エンドポイント転送の転送条件情報(オペレーション情報)をレジスタ部180を介して管理する。また、トランザクションの管理を行ったり、パケットを生成又は分解したり、リモート・ウェイクアップ信号の生成の指示を行う。
なおエンドポイントは、ユニークなアドレスを割り当てることができる、ペリフェラル(デバイス)上のポイント(部分)である。ホストとペリフェラル(デバイス)との間のデータ転送のすべては、このエンドポイントを経由して行われる。またトランザクションは、トークンパケットが発行されるフェーズと、オプショナルなデータパケットが発行されるフェーズと、オプショナルなハンドシェークパケットが発行されるフェーズとにより構成される。
データ転送制御装置100は、レジスタ部180を含む。このレジスタ部180は、データ転送(パイプ転送、エンドポイント転送)制御、バッファアクセス制御、バッファ管理、割り込み制御、ブロック制御、クロック制御、或いはDMA制御等を行うための種々のレジスタを含む。なおレジスタは、RAM(Random Access Memory)等のメモリにより実現してもよいし、Dフリップフロップ等により実現してもよい。またレジスタ部180のレジスタは、1つにまとめず、各ブロック(HC、PC、OTGC、Xcvr等)に分散して配置してもよい。
レジスタ部180は、転送条件レジスタ部182を含む。この転送条件レジスタ部182は、ホスト動作時にパケットバッファ190に確保されるパイプ領域(PIPE0〜PIPEe)とエンドポイントとの間でのデータ転送の転送条件情報を記憶するレジスタを含む。これらの各転送条件レジスタは、パケットバッファ190の各パイプ領域に対応して設けられる。
なおペリフェラル動作時には、パケットバッファ190にエンドポイント領域(EP0〜EPe)が確保される。そして転送条件レジスタ部182に設定された転送条件情報に基づいて、データ転送制御装置100とホストとの間でのデータ転送が行われる。
レジスタ部180は、低消費電力モード設定レジスタ部184を含む。この低消費電力モード設定レジスタ部184は、ホスト動作時に、USB(バス)のデータ転送モード(或いはペリフェラルのデータ転送モード)に応じてデータ転送制御装置100の各部の動作クロックの周波数の低減制御をイネーブル又はディセーブルにするためのデータが設定される。データ転送制御装置100の各部の動作クロックは、クロックコントローラ200により生成される。低消費電力モード設定レジスタ部184の設定データにより低消費電力モードがイネーブル状態に設定されている場合、USB(バス)がFSモードか、LSモードかに応じて、各部に供給される動作クロックの周波数の低減制御が行われたり、該低減制御が省略されたりする。
データ転送制御装置100はバッファコントローラ(FIFOマネージャ)210を含む。このバッファコントローラ210は、パケットバッファ190に、パイプ領域やエンドポイント領域を確保する処理を行う。またパケットバッファ190に対するアクセス制御や領域管理を行う。より具体的にはバッファコントローラ210は、CPUからのアクセス(処理部側からのアクセス)、DMAからのアクセス(アプリケーション層デバイスからのアクセス)、USBからのアクセス(転送コントローラからのアクセス)の制御を行ったり、これらのアクセスの調停を行ったり、これらのアクセスに必要なアドレスの生成及び管理を行う。
データ転送制御装置100は、パケットバッファ(FIFO、パケットメモリ、データバッファ)190を含む。このパケットバッファ190は、USBを介して転送されるデータ(送信データ又は受信データ)を一時的に記憶(バッファリング)するものである。このパケットバッファ190は、例えばRAM等により構成できる。なおパケットバッファ190の一部又は全部を、外付けメモリとしてデータ転送制御装置100の外部に設けてもよい。
ホスト動作時には、パケットバッファ190はパイプ転送用のFIFO(First-In First-Out)として用いられる。即ち、USB転送の各エンドポイントに対応するパイプ領域PIPE0〜PIPEe(広義にはバッファ領域)が、パケットバッファ190に確保される。またパイプ領域PIP0〜PIPEeの各パイプ領域には、パイプ領域に対応するエンドポイントとの間で転送されるデータ(送信データ又は受信データ)が記憶される。
一方、ペリフェラル動作時には、パケットバッファ190はエンドポイント転送用のFIFOとして用いられる。即ち、エンドポイント領域EP0〜EPe(広義にはバッファ領域)がパケットバッファ190に確保される。またエンドポイント領域EP0〜EPeの各エンドポイント領域には、ホストとの間で転送されるデータ(送信データ又は受信データ)が記憶される。
なおパケットバッファ190に確保されるバッファ領域(ホスト動作時にパイプ領域に設定され、ペリフェラル動作時にエンドポイント領域に設定される領域)は、先に入力された情報が先に出力されるような記憶領域(FIFO領域)に設定されている。またPIPE0は、コントロール転送用のエンドポイント0として割り当てられる専用のパイプ領域であり、PIPEa〜PIPEeは、任意のエンドポイントに割り当て可能な汎用のパイプ領域である。即ち、USB転送では、エンドポイント0がコントロール転送に専用のエンドポイントに設定される。従って本実施形態のようにPIPE0をコントロール転送に専用のパイプ領域にすることで、ユーザが混乱するのを防止したり、ユーザによるパイプ領域の設定を簡素化できる。またPIPEa〜PIPEeを任意のエンドポイントに割り当て可能な汎用のパイプ領域にすることで、エンドポイントに対応するパイプ領域を動的に変化させることが可能になる。これにより、パイプ転送のスケジューリングの自由度を向上でき、データ転送を効率化できる。
なお本実施形態では、マックスパケットサイズMaxPktSize(広義にはページサイズ)とページ数BufferPageにより、バッファ領域の領域サイズRsizeが設定される(Rsize=MaxPktSize×BuuferPage)。転送条件レジスタ部182は、バッファ領域ごとに、マックスパケットサイズMaxPktSize及びページ数BufferPageが設定されるレジスタを含む。このようにすることで、バッファ領域の領域サイズやページ数を任意に設定できるようになり、パケットバッファ190のリソースを有効利用できる。
データ転送制御装置100は、インターフェース部220を含む。このインターフェース部220は、USBとは異なる他のバスであるDMA(Direct Memory Access)バスやCPUバス(第2のバス)と、パケットバッファ190との間のデータ転送を行うためのものである。インターフェース部220は、パケットバッファ190と外部のシステムメモリとの間でDMA転送を行うためのDMAハンドラ回路222を含む。またパケットバッファ190と外部のCPUとの間でPIO(Parallel I/O)転送を行うためのCPUインターフェース回路224を含む。なお、CPU(広義には処理部)をデータ転送制御装置に内蔵させてもよい。
データ転送制御装置100は、クロックコントローラ200を含む。このクロックコントローラ200は、内蔵するPLL(Phase Locked Loop)回路が生成するクロックに基づいて、データ転送制御装置100の各部に供給されるクロックを生成する。
より具体的には、クロックコントローラ200は、1又は複数の機能ブロックを1つの回路ブロックとし、この回路ブロックごとに動作クロックを生成し、図4に示す各機能ブロックに対して動作クロックを供給する。そして低消費電力モード設定レジスタ部184の設定データにより低消費電力モードに設定されたとき、クロックコントローラ200は、所定の回路ブロックごとに生成された動作クロックの周波数を低減させて出力する。
2.1 詳細な構成例
次に、各ブロックの詳細な構成例について説明する。
次に、各ブロックの詳細な構成例について説明する。
2.1.1 OTGコントローラ
図5に、OTGコントローラ120の構成例のブロック図を示す。
図5に、OTGコントローラ120の構成例のブロック図を示す。
OTGコントローラ120は、OTGレジスタ部122を含む。このOTGレジスタ部122は、OTGコントローラ120の状態をモニタするためのモニタレジスタや制御レジスタを含む。またファームウェア(CPU)により設定されるステートコマンドをデコードする回路を含む。
OTGコントローラ120は、OTG制御回路124を含む。このOTG制御回路124は、ステートの管理を行うOTG管理回路125、IDピンの電圧レベルを検出するID検出回路126、USBバスの状態(リセット、レジューム等)を検出するラインステート検出回路127を含む。
またOTGコントローラ120は、時間計測を行うタイマ128を含む。ラインステート検出回路127は、トランシーバ110からのラインステート情報(J、K、SE0等)と、このタイマ128の時間計測情報とに基づいて、USB(バス)の状態を検出する。
ホスト動作のステートや、ペリフェラル動作のステートを遷移させるために検出すべき情報として、IDピンの状態、VBUSの電圧レベル、データ信号線DP、DMのラインステートがある。OTGコントローラ120は、これらの情報を、モニタレジスタを介してファームウェア(CPU)に伝える。ファームウェアは、これらの情報に基づいて自身のステートを遷移させると共に、遷移先のステートに対応したステートコマンドを制御レジスタに設定することで、遷移先のステートをOTGコントローラ120に伝える。OTGコントローラ120は、ステートコマンドをデコードし、そのデコード結果に基づいて、VBUSの電源供給制御、データ信号線DP(DM)のプルアップ制御及びプルダウン制御を行い、上述のSRPやHNPの機能を実現する。
本実施形態では、ステートごとの制御はOTGコントローラ120が担当し、ファームウェアはステートの遷移管理に専念できる。この結果、すべてのステート制御をファームウェアで実現する場合に比べて、ファームウェア(CPU)の処理負荷を軽減し、効率的なファームウェアを提供できる。
なおステート遷移の判断を、ファームウェアが行わずにハードウェアが行うようにしてもよい。或いはOTGコントローラ120のほとんどの処理(例えばVBUSの電源供給制御、データ信号線DP(DM)のプルアップ制御及びプルダウン制御、IDピンの検出、ラインステート検出以外の処理)をファームウェア(ソフトウェア)により実現してもよい。
2.1.2 VBUSコンパレータ
図6に、VBUSコンパレータ130の構成例の回路図を示す。
図6に、VBUSコンパレータ130の構成例の回路図を示す。
VBUSコンパレータ(電源ライン検出回路)130は、コンパレータ132と、モニタ部134とを含む。コンパレータ132は、基準電圧Vrefの電圧レベルと、VBUS(電源ライン)の電圧レベルとの比較結果に対応した信号を出力する。より具体的には、コンパレータ132は、基準電圧Vrefの電圧レベルの半分(Vref/2)と、VBUSラインの電圧レベルの半分(VBUS/2)とを比較し、この比較結果に対応した電圧レベルの信号を出力する。このように、基準電圧Vref及びVBUSの電圧それぞれの半分の電圧レベルを比較することで、コンパレータ132を構成する回路に必要な耐圧を低くできる。
モニタ部134は、例えばDフリップフロップにより構成される。Dフリップフロップのデータ入力端子Dには、コンパレータ132の出力が接続される。Dフリップフロップのクロック入力端子Cには、OTGコントローラ120に供給される動作クロックOTGC_CLKが入力される。Dフリップフロップのデータ出力端子Qの出力信号が、OTGコントローラ120に供給される。
このような構成により、VBUSの電圧レベルに対応した信号が、モニタ部134に取り込まれる。そしてモニタ部134の出力が、OTGコントローラ120に供給される。
ここでは、VBUSコンパレータ130の動作クロックとして、OTGコントローラ120の動作クロックOTGC_CLKを供給しているが、これに限定されるものではなく、VBUSコンパレータ130に専用の動作クロックであってもよい。
2.1.3 転送コントローラ
図7に、ホストコントローラ150の構成例のブロック図を示す。
図7に、ホストコントローラ150の構成例のブロック図を示す。
ホストコントローラ150は、HCシーケンス管理部152を含む。このHCシーケンス管理部152は、パイプ転送(パイプ領域を用いたデータ転送)の調停、時間管理、パイプ転送のスケジューリング、再送管理等を行う。
より具体的にはHCシーケンス管理部152は、フレーム番号のカウントや、SOF(Start-Of-Frame)パケットの送信指示を行う。またアイソクロナス転送を各フレームの先頭で優先的に実行するための処理を行ったり、インタラプト転送をアイソクロナス転送の次に優先的に取り扱うための処理を行う。またパイプ転送の順序に従って各パイプ転送を指示する処理を行う。またトランザクションの連続実行回数を管理したり、残りフレーム時間の確認処理を行う。またペリフェラルから返ってきたハンドシェークパケット(ACK、NAK)に対する処理を行う。また、トランザクション実行時のエラー処理を行う。
ホストコントローラ150は、ターゲットパイプ管理部154を含む。このターゲットパイプ管理部154は、転送条件レジスタ部182に設定された転送条件情報のハンドリング処理等を行う。またトランザクション管理部156への転送指示を行う。
ホストコントローラ150は、トランザクション管理部156を含む。このトランザクション管理部156は、転送パケットの種類や転送順序の管理(トランザクションのシーケンス管理)を行う。また、タイムアウトの監視処理を行う。また、トランザクション終了の通知処理を行う。
ホストコントローラ150は、パケットハンドラ部158を含む。このパケットハンドラ部158は、パケットの生成、分解処理を行う。また、PID(Packet ID)のチェックやCRCのデコード、エンコードを行う。また、バッファ領域のパケットのペイロードのリード、ライト処理や、SOFパケットの送信処理を行う。また、送受信データのカウント処理を行う。
ホストコントローラ150の各部は、ハードウェアにより実現してもよいし、ファームウェアとハードウェアの両方により実現してもよい。
図8に、ペリフェラルコントローラ160の構成例のブロック図を示す。
ペリフェラルコントローラ160は、トランザクション管理部162、パケットハンドラ部164を含む。トランザクション管理部162は、ホストコントローラ150のトランザクション管理部156とほぼ同様の処理を行う。パケットハンドラ部164は、ホストコントローラ150のパケットハンドラ部158とほぼ同様の処理を行う。
ペリフェラルコントローラ160の各部は、ハードウェアにより実現してもよいし、ファームウェアとハードウェアの両方により実現してもよい。
2.1.4 バッファコントローラ
図9に、バッファコントローラ210の構成例のブロック図を示す。
図9に、バッファコントローラ210の構成例のブロック図を示す。
バッファコントローラ210は、領域確保(allocation)部212を含む。この領域確保部212は、バッファ領域(ホスト動作時にパイプ領域に設定され、ペリフェラル動作時にエンドポイント領域に設定される領域)を、パケットバッファ190に確保する。
領域確保部212では、ページサイズとしてのマックスパケットサイズMaxPktSizeと、ページ数BufferPageとにより、バッファ領域の領域サイズ、スタートアドレス、エンドアドレス等が計算される。そして、各バッファ領域の書き込みポインタ、読み出しポインタが、データの転送方向に合わせて、DMA用ポインタ、CPU用ポインタ、USB用ポインタに割り当てられる。各バッファ領域の書き込みポインタ、読み出しポインタのポインタ情報(位置情報)は、レジスタ部180の転送条件レジスタ部182に保持される。転送条件レジスタ部182は、バッファ領域ごとにポインタ情報を保持する。
バッファコントローラ210は、ポインタ管理部214を含む。このポインタ管理部214は、上記の各ポインタの更新を行いながら、パケットバッファ190にアクセスするための実アドレスを生成する。より具体的には、領域確保部212によって割り当てられた各種ポインタに基づいて、CPU用アドレス、DMA用アドレス、USB用アドレスを生成する。またCPU(CPUインターフェース回路)、DMA(DMAハンドラ回路)からのアクセスごとに、或いはUSB(HC又はPC)のトランザクション終了(ACK、NAK等のハンドシェークパケット送受信)ごとに、ポインタを更新する処理を行う。なお、更新後のポインタの情報は、領域確保部212を介してレジスタ部180の転送条件レジスタ部182に書き戻される。
バッファコントローラ210は、バッファ管理部216を含む。このバッファ管理部216は、パケットバッファ190へのアクセスを管理する。バッファ管理部216は、ポインタ管理部214からのアドレスを受け、パケットバッファ190へのデータの入出力や、アドレス、出力イネーブル、ライトイネーブル、リードイネーブル等の出力を行う。
またバッファ管理部216は、CPU(CPUインターフェース回路)、DMA(DMAハンドラ回路)、USB(HC又はPC)からのアクセスを調停する。この調停結果に基づいて、CPU用アドレス、DMA用アドレス、USB用アドレスのいずれかが、パケットバッファ190のアクセスアドレスとして出力され、CPU、DMA又はUSBとパケットバッファ190との間のデータ転送経路が設定される。
バッファコントローラ210は、HC/PCセレクタ218を含む。このHC/PCセレクタ218は、バッファ管理部216とホストコントローラ150又はペリフェラルコントローラ160との間の接続の切り替え制御を行う。例えばホスト動作時には、ホストコントローラ150とバッファ管理部216とを接続し、ペリフェラル動作時には、ペリフェラルコントローラ160とバッファ管理部216とを接続する。なお、この接続の切り替え制御は、OTGコントローラ120からのHCイネーブル信号(HC_Enable)、PCイネーブル信号(PC_Enable)に基づいて行う。
バッファコントローラ210の各部は、ハードウェアにより実現してもよいし、ファームウェアとハードウェアの両方により実現してもよい。
2.2 パイプ領域、エンドポイント領域
本実施形態では、図10(A)に示すように、ホスト動作時にパケットバッファ190にパイプ領域PIPE0〜PIPEeが確保される。そしてこの各パイプ領域とペリフェラルの各エンドポイントの間でデータが転送される。
本実施形態では、図10(A)に示すように、ホスト動作時にパケットバッファ190にパイプ領域PIPE0〜PIPEeが確保される。そしてこの各パイプ領域とペリフェラルの各エンドポイントの間でデータが転送される。
ここで、本実施形態のパイプ領域の「パイプ」は、USB規格で定義される「パイプ」(デバイス上のエンドポイントとホスト上のソフトウェアとの間の関連を表す論理的な抽象化、論理的な経路)とは若干意味合いが異なる。
本実施形態のパイプ領域は、図10(A)に示すように、USB(バス)に接続されるペリフェラルが有する各エンドポイント領域に対応して、パケットバッファ190上に確保される。例えば図10(A)において、パイプ領域PIPEaは、ペリフェラル1のエンドポイント1(バルクIN)に対応し、パイプ領域PIPEbは、ペリフェラル1のエンドポイント2(バルクOUT)に対応する。またパイプ領域PIPEcは、ペリフェラル2のエンドポイント1(バルクIN)に対応し、パイプ領域PIPEdは、ペリフェラル2のエンドポイント2(バルクOUT)に対応する。またパイプ領域PIPEeは、ペリフェラル3のエンドポイント1(インタラプトIN)に対応する。なおパイプ領域PIPE0は、コントロール転送のエンドポイント0に専用のパイプ領域である。
そして図10(A)の例では、パイプ領域PIPEaとペリフェラル1のエンドポイント1との間でUSB規格のバルクIN転送が行われ、パイプ領域PIPEbとペリフェラル1のエンドポイント2との間でバルクOUT転送が行われる。またパイプ領域PIPEcとペリフェラル2のエンドポイント1との間ではバルクIN転送が行われ、パイプ領域PIPEdとペリフェラル2のエンドポイント2との間でバルクOUT転送が行われる。またパイプ領域PIPEeとペリフェラル3のエンドポイント1との間ではインタラプトIN転送が行われる。以上のように本実施形態では、パイプ領域(汎用)とそれに対応するエンドポイントとの間では、任意のデータ転送(アイソクロナス転送、バルク転送、インタラプト転送)を行うことができる。
そして本実施形態では、パイプ領域とそれに対応するエンドポイントの間では所与のデータ単位(トータルサイズで指定されるデータ単位)のデータが転送される。このデータ単位としては、例えばIRP(I/Oリクエストパケット)により転送要求されるデータ単位又はそれを適当なサイズに分割したデータ単位を想定できる。エンドポイントに対するこのデータ単位のデータ転送(一連のトランザクション)を本実施形態における「パイプ」と呼ぶことができ、「パイプ」のデータ(送信データ、受信データ)を記憶する領域がパイプ領域になる。
パイプ領域を用いた所与のデータ単位の転送が終了すると、そのパイプ領域は解放される。そして解放されたパイプ領域は新たに任意のエンドポイントに割り当てられる。このように本実施形態では、パイプ領域とエンドポイントとの対応付けを動的に変化させることができる。
また本実施形態では図10(B)に示すように、ペリフェラル動作時にはパケットバッファ190にエンドポイント領域EP0〜EPeが確保される。そして各エンドポイント領域とホストとの間でデータが転送される。
このように本実施形態では、パケットバッファ190のバッファ領域を、ホスト動作時にはパイプ領域に割り当て、ペリフェラル動作時にはエンドポイント領域に割り当てている。これにより、ホスト動作時とペリフェラル動作時とでパケットバッファ190のリソースを共用(兼用)でき、パケットバッファ190の使用記憶容量を節約できる。なおパイプ領域、エンドポイント領域の個数は6個に限定されず任意である。
2.3 動作クロック制御
データ転送制御装置100は、図3に示すデータ転送制御装置30の機能を有する。このためデータ転送制御装置100の機能ブロックを、図3に示すようなシリアルデータ処理部又はパラレルデータ処理部に割り当てることができる。更にパラレルデータ処理部を、高速処理部と低速処理可能部とに分ける。高速処理可能部では、USB(バス)のデータ転送モードに関わらず、動作クロックの周波数の低減制御が省略される(動作クロックの周波数が変化しない)。低速処理可能部では、USB(バス)のデータ転送モードに応じて、動作クロックの周波数の低減制御が行われる。
データ転送制御装置100は、図3に示すデータ転送制御装置30の機能を有する。このためデータ転送制御装置100の機能ブロックを、図3に示すようなシリアルデータ処理部又はパラレルデータ処理部に割り当てることができる。更にパラレルデータ処理部を、高速処理部と低速処理可能部とに分ける。高速処理可能部では、USB(バス)のデータ転送モードに関わらず、動作クロックの周波数の低減制御が省略される(動作クロックの周波数が変化しない)。低速処理可能部では、USB(バス)のデータ転送モードに応じて、動作クロックの周波数の低減制御が行われる。
以下では、データ転送制御装置100がFSモード及びLSモードのみをサポートする場合について説明するが、データ転送制御装置100が更にHSモードをサポートする場合であっても同様である。
図11に、データ転送制御装置100の機能ブロックを、シリアルデータ処理部又はパラレルデータ処理部に割り当てた例の模式図を示す。
シリアルデータ処理部300は、物理層回路112と、USB(バス)を介して転送されるシリアルデータを扱う回路(リンク層回路)とを含む。即ちシリアルデータ処理部300には、回線速度処理部302として、USB(バス)のデータ転送速度に合わせた動作クロックが供給される。これは、データ転送を正常に行うために、回線速度処理部302の動作クロックをデータ転送速度に合わせる必要があるからである。
例えばUSB(バス)のデータ転送モードがFSモードの場合、物理層回路112及びUSB(バス)を介して転送されるシリアルデータを扱う回路ではFSモードのデータ転送速度に対応する12MHzの動作クロックが供給される。また、USB(バス)のデータ転送モードがLSモードの場合、物理層回路112及びUSB(バス)を介して転送されるシリアルデータを扱う回路ではLSモードのデータ転送速度に対応する1.5MHzの動作クロックが供給される。
パラレルデータ処理部310は、OTGコントローラ120、VBUSコンパレータ130、ホストコントローラ150、ペリフェラルコントローラ160、パケットバッファ190、クロックコントローラ200のPLL回路、バッファコントローラ210、インターフェース部220を含む。
パラレルデータ処理部310の低速処理可能部320は、OTGコントローラ120、VBUSコンパレータ130、ホストコントローラ150を含む。
USB規格では、ホスト動作時においてFSモード及びLSモードのデバイスの接続をサポートする必要がある。そのため、LSモードではホストコントローラ150の動作クロックの周波数を低くしてもUSBを介したデータ転送に影響を与えないため、ホストコントローラ150を低速処理可能部320に割り当てることができる。一方、FSモードでは、高速な周波数の動作クロックを供給することで、データ転送処理の低下を防止する。こうすることで、データ転送処理能力の低下を防止し、かつ低消費電力化を図ることができる。
また、OTGコントローラ120は、ホスト動作又はペリフェラル動作のステート制御を行う。そのため、クロック周波数の低減制御が行われるホスト動作を行うホストコントローラ150と同じ低速処理可能部320に割り当てることが望ましい。
更にセッションを確認したりSRPを行ったりするVBUSコンパレータ130の比較結果は、ミリ秒単位で監視され、精度や速度が要求されない。また、USBのデータ転送に関わらないため、VBUSコンパレータ130を、低速処理可能部320に割り当てることができる。
例えばUSB(バス)のデータ転送モードがFSモードの場合、低速処理可能部320の各部には、FSモードでのデータ転送処理が可能な例えば48MHzの動作クロックが供給される。また、USB(バス)のデータ転送モードがLSモードの場合、低速処理可能部320の各部には、LSモードでのデータ転送処理が可能な例えば3MHzの動作クロックが供給される。
高速処理部330は、ペリフェラルコントローラ160、パケットバッファ190、クロックコントローラ200のPLL回路、バッファコントローラ210、インターフェース部220を含む。これら各部は、USB(バス)のデータ転送モードがFSモードであってもLSモードであっても、CPUやDMAの高速アクセスを実現する必要があり、高速処理部330に割り当てることが望ましいからである。
USB(バス)のデータ転送モードに関わらず、高速処理部330の各部には、例えば48MHzの動作クロックが供給される。
図11においては、転送コントローラ170を構成するホストコントローラ150及びペリフェラルコントローラ160が、それぞれ低速処理可能部320及び高速処理部330に割り当てられている。しかしながら、設計や制御等の簡素化のため、転送コントローラ170を構成するホストコントローラ150及びペリフェラルコントローラ160を低速処理可能部320に割り当ててもよい。
またクロックコントローラ200は、図3に示すクロック生成部38の機能を有する。転送モード検出部36の機能は、トランシーバ110又はOTGコントローラ120に持たせることができる。
なお低速処理可能部320及び高速処理部330は、図11に示すものに限定されるものではなく、図11の一部の機能ブロックを省略してもよい。
以上のように、パラレルデータ処理部310は、転送コントローラ170と、パケットバッファ190と、バッファコントローラ210と、インターフェース部220とを含み、USB(バス)のデータ転送モードがLSモード(第2の転送モード)であると判断されたとき、クロック生成部としてのクロックコントローラ200は、少なくともインターフェース部220の動作クロックの周波数の低減制御を省略すると言うことができる。
更に、データ転送制御装置100において、パラレルデータ処理部310は、電源ライン検出回路としてのVBUSコンパレータ130と、ステートコントローラとしてのOTGコントローラ120とを含み、転送コントローラ170が、ホストコントローラ150と、ペリフェラルコントローラ160とを含む。そして、USB(バス)のデータ転送モードがLSモード(第2の転送モード)であると判断されたとき、クロックコントローラ200が、ホストコントローラ150の動作クロック、VBUSコンパレータ130の動作クロック(VBUSの電圧レベルの比較結果をモニタするためのモニタ部の動作クロック)、及びOTGコントローラ120の動作クロックのうち少なくとも1つの周波数の低減制御を行うと言うことができる。
なおUSB(バス)のデータ転送モードがFSモードである場合、低速処理可能部320及び高速処理部330の動作クロックの周波数を48MHzとしたのは1つの例である。パケットバッファ190へのアクセス時間が許容範囲内であって、かつシリアルデータ処理部300のデータ転送に支障を来たさない(即ち、理論上のデータ転送速度がFSモードの12MHzを下回らない)範囲においては、低速処理可能部320の動作クロックの周波数を更に低くしてもよい。
同様にUSB(バス)のデータ転送モードがLSモードである場合、低速処理可能部320の動作クロックの周波数を3MHzとしたのは1つの例である。シリアルデータ処理部300のデータ転送に支障を来たさない(即ち、理論上のデータ転送速度がLSモードの1.5MHzを下回らない)範囲においては、低速処理可能部320の動作クロックの周波数を更に低くしてもよい。
2.3.1 動作クロック制御の動作例
以下では、パラレルデータ処理部310の低速処理可能部320に対して行われる動作クロックの周波数の低減制御について説明する。
以下では、パラレルデータ処理部310の低速処理可能部320に対して行われる動作クロックの周波数の低減制御について説明する。
低消費電力モードに設定されているとき、USB(バス)のデータ転送モードに応じて、低速処理可能部320に対して、動作クロックの周波数の低減制御が行われる。レジスタ部180の低消費電力モード設定レジスタ部184にオンに対応する値を設定することで、低消費電力モードに移行する。
図12に、低消費電力モードへの移行フローの一例を示す。
まず初期状態では、低消費電力モードがオンの状態となっている(ステップS10)。即ち、レジスタ部180の低消費電力モード設定レジスタ部184には、オンに対応する値が設定されている。
次に、外部装置としての機器が、(USB)ポートに接続されたか否かを判別する(ステップS11)。ポートに機器が接続されていないと判別されたとき(ステップS11:N)、ステップS11に戻り、ウェイト状態となる。
ポートに機器が接続されたと判別されたとき(ステップS11:Y)、ホストコントローラ150がイネーブル状態であるか否かを判別する(ステップS12)。これは、OTGコントローラ120が出力するHCイネーブル信号(HC_Enable)を参照することで判別できる。
ステップS12において、ホストコントローラ150がイネーブル状態ではないと判別されたとき(ステップS12:N)、一連の動作を終了する(エンド)。
一方、ホストコントローラ150がイネーブル状態であると判別されたとき(ステップS12:Y)、接続された機器のデータ転送モードがFSモードであるFS機器であるか否かを判別する(ステップS13)。
接続された機器がFS機器であると判別されたとき(ステップS13:Y)、USB(バス)のデータ転送モードがFSモードであると判断し、低消費電力モードをオフに設定する(ステップS14)。
接続された機器がFS機器ではないと判別されたとき(ステップS13:N)、即ちLS機器であると判別されたとき、USB(バス)のデータ転送モードがFSモードであると判断し、ステップS15に進む。或いはステップS14の後に、ステップS15に進む。
ステップS15では、接続された機器がポートより切断されたか否かを判別する(ステップS15)。接続された機器がポートより切断されたと判別されたとき(ステップS15:Y)、低消費電力モードをオンに設定して(ステップS16)、ステップS11に戻る。ステップS15において、接続された機器がポートより切断されていないと判別されたとき(ステップS15:N)、ステップS15に戻る。
このような移行フローは、外部装置としての機器がUSB(バス)に接続されたことによるラインステートの変化を検出するハードウェアによって実現される。
図13に、低消費電力モードにおいて低速処理可能部320に対して行われる動作クロックの周波数の低減制御を実現する回路の構成要部を示す。
図13におけるFS接続検出部350、セレクタ360は、トランシーバ110又はOTGコントローラ120に含めることができる。以下では、USB(バス)のデータ転送モードが、外部装置のデータ転送モードにより一意に決まるものとして説明する。
FS接続検出部(広義には転送モード検出部)350は、USB(バス)を介して外部装置としての機器の接続の有無、及び該機器のデータ転送モードを検出する。より具体的には、HCイネーブル信号(HC_Enable)がアクティブのとき、FS接続検出部350は、FS機器の接続の検出を行い、その検出結果に対応したFS接続検出信号FSConnectを出力する。FS機器が接続されたことが検出されたとき、FS接続検出信号FSConnectを1(Hレベル)とし、FS機器が接続されたことが検出されないとき、FS接続検出信号FSConnectを0(Lレベル)とするものとする。このようなFS接続検出部350は、トランシーバ110からのデータ信号線DPのシングルエンドのデータレシーバの受信信号SingleEnd_DPと、データ信号線DMのシングルエンドのデータレシーバの受信信号SingleEnd_DMとを用いて、FS機器の接続の検出を行う。
クロックコントローラ200は、OTGコントローラ120用の例えば48MHzの動作クロックCLKf(FSモードにおける高速な第1の動作クロック)及び例えば3MHzの動作クロックCLKs(LSモードにおける低速な第2の動作クロック)を生成する。またクロックコントローラ200は、ホストコントローラ150用の例えば48MHzの動作クロックCLKf(FSモードにおける高速な第3の動作クロック)及び例えば3MHzの動作クロックCLKs(LSモードにおける低速な第4の動作クロック)を生成する。更にクロックコントローラ200は、VBUSコンパレータ130用の例えば48MHzの動作クロックCLKf(FSモードにおける高速な第5の動作クロック)及び例えば3MHzの動作クロックCLKs(LSモードにおける低速な第6の動作クロック)を生成する。更にまたクロックコントローラ200は、ペリフェラルコントローラ160の動作クロック、及びインターフェース部220の動作クロックのクロックを生成する。
そして、クロックコントローラ200は、FS接続検出信号SFConnectに基づいて(広義には転送モード検出部の検出結果に基づいて)動作クロックCLKf、CLKsの一方をOTGコントローラ120用の動作クロックとして出力する第1のセレクタを含む。またクロックコントローラ200は、FS接続検出信号SFConnectに基づいて(広義には転送モード検出部の検出結果に基づいて)動作クロックCLKf、CLKsの一方をホストコントローラ150用の動作クロックとして出力する第2のセレクタを含む。
図13では、第1及び第3の動作クロックとして、48MHzの動作クロックCLKfを共用している。また第2及び第4の動作クロックとして、3MHzの動作クロックCLKsを共用している。更に第1及び第2のセレクタとして、セレクタ360を共用している。
より具体的には、図13において、クロックコントローラ200は、PLL回路370を含む。PLL回路370は、例えば48MHzの高速な動作クロックCLKfと、例えば3MHzの低速な動作クロックCLKsを生成する。セレクタ360は、FS接続検出信号FSConnectが1のとき、動作クロックCLKfを選択動作クロックSEL_CLKとして出力し、FS接続検出信号FSConnectが0のとき、動作クロックCLKsを選択動作クロックSEL_CLKとして出力する。選択動作クロックSEL_CLKが、低速処理可能部320のOTGコントローラ120、VBUSコンパレータ130、ホストコントローラ150の動作クロックとなる。
まずトランシーバ110の構成例について説明する。
図14に、トランシーバ110の構成例のブロック図を示す。
トランシーバ110は、物理層回路112、ビットスタッフ&NRZIエンコード部400、ビットアンスタッフ&NRZIデコード部402、パラレル・シリアル変換部404、シリアル・パラレル変換部406、セレクタ408、分周部410を含む。
ビットスタッフ&NRZIエンコード部400は、パラレル・シリアル変換部404からのシリアル送信データDataOut_sに対して、スタッフビットを挿入して、NRZI(Non Return to Zero Invert)エンコードを行ってシリアル送信信号LineDataOutとして物理層回路112に出力する。
ビットアンスタッフ&NRZIデコード部402は、物理層回路112からのシリアル受信信号LineDataInに対して、NRZIデコードを行った後、スタッフビットを削除し、シリアル受信データDataIn_sとしてシリアル・パラレル変換部406に出力する。
パラレル・シリアル変換部404は、転送コントローラ170からのパラレルデータDataOut(例えば8ビット)を、パラレルデータ処理クロックPACLKによって一旦保持した後、シリアルデータ処理クロックSRCLKによってシリアル化し、シリアル送信データDataOut_sとして出力する。
シリアル・パラレル変換部406は、シリアルデータ処理クロックSRCLKに同期してシリアル受信データDataIn_sを順次保持してパラレル化した後、パラレルデータ処理クロックPACLKに同期してパラレルデータDataIn(例えば8ビット)として出力する。
パラレルデータ処理クロックPACLKは、セレクタ408の出力である。セレクタ408には、ホストコントローラ150の動作クロックとして図13に示す選択動作クロックSEL_CLKと、ペリフェラルコントローラ160の動作クロックPC_CLKが入力される。HCイネーブル信号(HC_Enable)が1(Hレベル)のとき、セレクタ408は選択動作クロックSEL_CLKを出力し、HCイネーブル信号(HC_Enable)が0(Lレベル)のとき、セレクタ408は動作クロックPC_CLKを出力する。ここで、動作クロックPC_CLKは、動作クロックCLKfとすることができる。
シリアルデータ処理クロックSRCLKは、トランシーバクロックXcvr_CLKを分周する分周部410の出力である。トランシーバクロックXcvr_CLKは、例えば48MHzの周波数の動作クロックである。FSモードのとき、分周部410はトランシーバクロックXcvr_CLKを分周して12MHzのシリアルデータ処理クロックSRCLKを出力し、LSモードのとき、分周部410はトランシーバクロックXcvr_CLKを分周して1.5MHzのシリアルデータ処理クロックSRCLKを出力するようになっている。
トランシーバ110では、物理層回路112、ビットスタッフ&NRZIエンコード部400、ビットアンスタッフ&NRZIデコード部402を回線速度処理部302に割り当てることができる。またトランシーバ110では、パラレル・シリアル変換部404、シリアル・パラレル変換部406を低速処理可能部320に割り当てることができる。
図15に、物理層回路112の構成例の回路図を示す。
物理層回路112は、LS/FSドライバ450、LS/FS差動データレシーバ452、シングルエンドレシーバ454、456を含む。
LS/FSドライバ450は、LSモード及びFSモードにおいて、ビットスタッフ&NRZIエンコード部400からのシリアル送信信号LineDataOutにより、データ信号線DP、DMを駆動する。
LSモード及びFSモードにおいて、LS/FS差動データレシーバ452にはデータ信号線DP、DMの差動信号が入力され、該差動信号に対応したシリアル受信信号LineDataInを出力する。
シングルエンドレシーバ454には、データ信号線DPの信号が入力され、該信号に対応した受信信号SingleEnd_DPを出力する。
シングルエンドレシーバ456には、データ信号線DMの信号が入力され、該信号に対応した受信信号SingleEnd_DMを出力する。
データ信号線DPは、プルアップ抵抗イネーブル信号Rpu_Enable信号によってプルアップ制御が行われる。
図16に、FS接続検出部350の構成例のブロック図を示す。
FS接続検出部350は、物理層回路112からの受信信号SingleEnd_DP、SingleEnd_DMにより、ラインステートを検出する。このFS接続検出部350は、SE0検出部352、FS_J検出部353、LS_J検出部354、ラインステート検出タイマ356を含む。
SE0検出部352は、受信信号SingleEnd_DPが0、かつ受信信号SingleEnd_DMが0のとき、検出信号Line_SE0を1にする。
FS_J検出部353は、受信信号SingleEnd_DPが1、かつ受信信号SingleEnd_DMが0のとき、検出信号Line_FS_Jを1にする。
LS_J検出部353は、受信信号SingleEnd_DPが0、かつ受信信号SingleEnd_DMが1のとき、検出信号Line_LS_Jを1にする。
ラインステート検出タイマ356は、検出信号Line_SE0、Line_FS_J、Line_LS_Jに基づいて、SE0状態、FSモードのJ状態又はLSモードのJ状態を検出する。
より具体的には、ラインステート検出タイマ356は、検出信号Line_SE0が1である状態が2.5μ秒以上継続したとき、SE0状態を検出したと判断し、検出信号Detect_SE0として、1となるパルスを出力する。ラインステート検出タイマ356は、検出信号Line_FS_Jが1である状態が2.5μ秒以上継続したとき、FSモードのJ状態を検出したと判断し、検出信号Detect_FS_Jとして、1となるパルスを出力する。ラインステート検出タイマ356は、検出信号Line_LS_Jが1である状態が2.5μ秒以上継続したとき、LSモードのJ状態を検出したと判断し、検出信号Detect_LS_Jとして、1となるパルスを出力する。
検出信号Detect_SE0、Detect_LS_Jの論理和演算結果が、セレクタ357の切り替え制御信号となる。セレクタ357の出力が、セレクタ358の一方に入力される。検出信号Detect_FS_JとHCイネーブル信号(HC_Enable)の論理積演算結果が、セレクタ358の切り替え制御信号となる。セレクタ358の出力が、Dフリップフロップ359において48MHzの動作クロックCLKfに同期して取り込まれ、FS接続検出信号FSConnectとして出力される。このFS接続検出信号FSConnectは、セレクタ357の一方にも入力され、ループを形成する。
まずリセット信号XRstによりDフリップフロップ359が初期化される。このとき、FS接続検出信号FSConnectが0となる。そして、HCイネーブル信号(HC_Enable)が1となり、FSモードのJ状態(FS機器が接続され、かつアイドル状態)を検出すると、セレクタ358の出力が1となる。そして、セレクタ358の出力がDフリップフロップ359に取り込まれた結果、FS接続検出信号FSConnectが1となる。
FS接続検出信号FSConnectが1になると、検出信号Detect_SE0、Detect_LS_Jの少なくとも一方が1にならない限り、即ちリセット状態(機器の切断状態)又はLSモードのJ状態(LS機器が接続され、かつアイドル状態)が検出されない限り、FS接続検出信号FSConnectが0にならない。
図17に、図13に示す構成の動作例のタイミング図を示す。
リセット信号XRstにより初期化された後、HCイネーブル信号(HC_Enable)が1になるものとする。FS接続検出部350は、FS機器の接続を検出すると、FS接続検出信号FSConnectを1にする。
FS接続検出信号FSConnectがLレベル(0)のとき、セレクタ360は、動作クロックCLKsをOTGコントローラ120、VBUSコンパレータ130及びホストコントローラ150に対して供給する。従って、低速処理可能部320の低消費電力化を実現できる。そして、FS接続検出信号FSConnectがHレベル(1)になると、動作クロックCLKfをOTGコントローラ120、VBUSコンパレータ130及びホストコントローラ150に対して供給する。従って、低速処理可能部320のデータ転送処理の遅延を回避できる。
3. 変形例
上述の実施形態では、シリアルバスのデータ転送モードに応じて動作クロックの周波数を変化させていたが、本変形例では、更にデータ転送制御装置の各部に供給する動作クロックの出力の停止制御も行うことで、より低消費電力化を図ることができる。本変形例では、OTGコントローラ120によって制御されるステートに応じて動作クロックの出力の停止制御行う。
上述の実施形態では、シリアルバスのデータ転送モードに応じて動作クロックの周波数を変化させていたが、本変形例では、更にデータ転送制御装置の各部に供給する動作クロックの出力の停止制御も行うことで、より低消費電力化を図ることができる。本変形例では、OTGコントローラ120によって制御されるステートに応じて動作クロックの出力の停止制御行う。
まず、適宜図2を参照しながら、OTGコントローラ120によって制御されるAデバイス及びBデバイスのステート遷移について説明する。
3.1 Aデバイスのステート遷移
図18に、Aデバイスのステート遷移を説明するための図を示す。
図18に、Aデバイスのステート遷移を説明するための図を示す。
Aデバイスは、a_idleステートが開始ステートである(ST1)。
デュアルロール・デバイスのMini−ABレセプタクルに、USBケーブルのMini−Aプラグが挿入されていないとき、プルアップされたIDピンはHレベル(id)となるため、b_idleステートに遷移する(ST2)。即ち、デュアルロール・デバイスでは、デフォルトでBデバイスとなる。一方、Mini−Aプラグが挿入されると、IDピンがLレベル(id/)となるためa_idleステートとなる(ST1)。
a_idleステートでは、VBUSへの電流供給が停止される。またデータ信号線DPのプルアップが無効化(オフ)される(プルダウンが有効化される。より具体的には、図2に示すスイッチ回路SW1がオフ、スイッチ回路SW2がオン)。従って、ラインステートはSE0状態となる。上位アプリケーションからVBUSの電圧を落とす要求がないとき(a_bus_drop/)であって、USB転送を行いたいとき(a_bus_req)又はBデバイスからのSRPを検出したとき(a_srp_det)、a_wait_vriseステートに遷移する(ST3)。
a_wait_vriseステートでは、VBUSへの電流供給が開始され、VBUSの電圧が上がる。Mini−Aプラグが抜かれたとき(id)、上位アプリケーションからVBUSの電圧を落とす要求があったとき(a_bus_drop)、VBUSの電圧が所与の閾値電圧を越えたとき(a_vbus_vld)、又は当該ステートに規定時間以上経過したとき(a_wait_vrise_tmout)、a_wait_bconステートに遷移する(ST4)。
a_wait_bconステートでは、Aデバイス側のデータ信号線DPのプルアップがオフとなる。このときBデバイスによりデータ信号線DPのプルアップが有効化(オン)(図2に示すBデバイスのスイッチ回路SW3がオン、スイッチ回路SW4がオフ)され、データ信号線DPが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)。
即ちデュアルロール・デバイスは、デフォルト状態ではBデバイスであるため、Aデバイスについては、a_wait_bconステートまで、データ信号線DPはプルダウンされた状態のままである。a_wait_vriseステートにおいてVBUSへの電流供給が開始されると、Bデバイスのプルアップがオンとなる。これにより、データ信号線DPがプルダウンされた状態であるAデバイスはホストとして動作し、データ信号線DPがプルアップされた状態であるBデバイスはペリフェラルとして動作する。
a_hostステートでは、AデバイスがUSB規格のホストとして動作する。より具体的には、ホストとしてペリフェラルをエニュメレート(enumerate)するため、バスリセットするためのリセット信号として、SE0状態にデータ信号線を駆動する。そして、所与の規定時間だけその状態を継続させることにより、ペリフェラルではリセット処理が行われる。その後、ホストは、コントロール転送を用いて、コンフィギュレーション情報の転送やアドレスの割り当て等を行い、USB転送を開始する。当該ステートにおいて、ホストになったがバスを使わなくなったとき(a_bus_req/)、又はサスペンド状態への遷移要求があるとき(a_suspend_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)。
a_suspendステートでは、SOF(Start Of Frame)パケットの送出が停止される。このとき、Bデバイスはペリフェラルとして動作しており、Bデバイスではb_peripheralステートのままである。このとき、AデバイスがBデバイスに対して上述のHNPを許可し(a_set_b_hnp_en)、BデバイスにおいてプルアップがオフされてラインステートがSE0状態になると(b_conn/)、a_peripheralステートに遷移する(ST11)。また、Aデバイスがバスを使用したいとき(a_bus_req)、又はBデバイスがラインステートをK状態にしたとき(b_bus_resume)、a_hostステートに遷移する(ST12)。更にまたAデバイスがBデバイスに対して上述のHNPを許可せず(a_set_b_hnp_en/)、BデバイスにおいてプルアップがオフされてラインステートがSE0状態になると(b_conn/)、a_wait_bconステートに遷移する(ST13)。更にまたMini−Aプラグが抜かれたとき(id)、上位アプリケーションからVBUSの電圧を落とす要求があったとき(a_bus_drop)、又はa_suspendステートで規定時間以上経過したとき(a_aidl_bdis_tmout)、a_wait_vfallステートに遷移する(ST14)。また、何らかの原因で、VBUSの電圧が所与の閾値電圧を下回ったとき(a_vbus_vld/)、a_vbus_errステートに遷移する(ST15)。
a_peripheralステートでは、Aデバイスではプルアップをオンにし、Bデバイスでは後述するようにAデバイスからHNPのイネーブルによりBデバイス側のプルアップがオフされるため、Aデバイスがペリフェラルとなり、Bデバイスがホストになる。ホストとなったBデバイスがデータ転送を終えた場合のようにBデバイスがバスを使わないとき(b_bus_suspend)、a_wait_bconステートに遷移する(ST16)。a_wait_bconステートでは、上述したようにAデバイスのプルアップがオフされる。また、a_peripheralステートにおいて、Mini−Aプラグが抜かれたとき(id)、又は上位アプリケーションからVBUSの電圧を落とす要求があったとき(a_bus_drop)、a_wait_vfallステートに遷移する(ST17)。また、何らかの原因で、VBUSの電圧が所与の閾値電圧を下回ったとき(a_vbus_vld/)、a_vbus_errステートに遷移する(ST18)。
a_bus_errステートでは、過電流状態となるため、例えばファームウェアによりVBUSの電圧を落とすように要求される。このようなステートにおいては、Mini−Aプラグが抜かれたとき(id)、又は上位アプリケーションからVBUSの電圧を落とす要求があったとき(a_bus_drop)、a_wait_vfallステートに遷移する(ST19)。
a_wait_vfallステートでは、VBUSへの電流供給が停止される。Mini−Aプラグが抜かれたとき(id)、バスを使いたいとき(a_bus_req)、又はVBUSの電圧が所与の閾値電圧を下回った状態で(a_sess_vld/)BデバイスにおいてプルアップがオフされてラインステートがSE0状態になると(b_conn/)、a_idleステートに遷移する(ST20)。
3.2 Bデバイスのステート遷移
図19に、Bデバイスのステート遷移を説明するための図を示す。
図19に、Bデバイスのステート遷移を説明するための図を示す。
Bデバイスは、b_idleステートが開始ステートである(ST30)。
b_idleステートでは、VBUSへの電流供給は停止される。従って、VBUSの電圧は、所与の閾値電圧を下回る。またデータ信号線DPのプルアップがオフされる。このとき、Mini−Aプラグが挿入されると、IDピンがLレベル(id/)となるためa_idleステートとなる(ST31)。またVBUSの電圧が所与の閾値電圧を越えると(b_sess_vld)、b_peripheralステートに遷移する(ST32)。
b_peripheralステートでは、データ信号線DPのプルアップがオンとなるため、Aデバイスのa_wait_bconステートにおいてb_connの検出を行うことができる。b_periheralステートでは、Aデバイスからの要求に応答して、ペリフェラルとして動作する。Bデバイスがホストになるときは、Aデバイスがa_suspendになったことを検出し(a_bus_suspend)、Bデバイスの上位アプリケーションからのホスト動作要求(b_bus_req)があって、かつAデバイスからHNPをイネーブルに設定されているとき(b_hnp_en)、b_wait_aconステートに遷移する(ST33)。またb_peripheralステートにおいて、Mini−Aプラグが挿入されたとき(id/)、又はVBUSの電圧が所与の閾値電圧を下回ったとき(b_sess_vld/)、b_idleステートに遷移する(ST34)。この結果、b_idleステートにおいてプルアップがオフされ、例えばAデバイスはa_wait_vfallステートからa_idleステートに遷移することができる。
b_wait_aconステートでは、Bデバイスのデータ信号線DPのプルアップがオフされ、Aデバイス側でデータ信号線DPがプルアップされるのを待つ。そして、Aデバイス側でデータ信号線DPのプルアップがオンされると(a_conn)、b_hostステートに遷移する(ST35)。またb_wait_aconステートにおいて、AデバイスがラインステートをK状態にしたことを検出したとき(a_bus_resume)、又はb_wait_aconステートで規定時間以上経過すると(b_ase0_brst_tmout)、b_peripheralステートに遷移する(ST36)。また、Mini−Aプラグが挿入されたとき(id/)、又はVBUSの電圧が所与の閾値電圧を下回るとき(b_sess_vld/)、b_idleステートに遷移する(ST37)。
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_peripheralステートでは、Bデバイスはプルアップがオンされる。また、b_hostステートにおいて、Mini−Aプラグが挿入されたとき(id/)、又はVBUSの電圧が所与の閾値電圧を下回るとき(b_sess_vld/)、b_idleステートに遷移する(ST39)。
Bデバイスは、Aデバイスがサスペンド状態のときSRPによりセッション開始を要求することができる。即ち、b_idleステートにおいて、Bデバイスの上位アプリケーションからのバス使用要求があり(b_bus_req)、VBUSの電圧がBデバイスのセッション終了閾値電圧を下回った状態で(b_sess_end)、かつラインステートがSE0の状態で規定時間以上経過したとき(b_se0_srp)、b_srp_initステートに遷移する(ST40)。
b_srp_initステートでは、SRPによりセッション開始をAデバイスに対して要求する。BデバイスがSRPを終了したとき(b_srp_done)、又はMini−Aプラグが挿入されたとき(id/)、b_idleステートに遷移する(ST41)。
3.3 回路ブロック
本変形例では、以下に示す回路ブロック単位で動作クロックを供給すると共に、この回路ブロック単位で動作クロックの停止制御を行う。
本変形例では、以下に示す回路ブロック単位で動作クロックを供給すると共に、この回路ブロック単位で動作クロックの停止制御を行う。
図20に、本変形例におけるクロックコントローラの停止制御単位である回路ブロックの一例を説明するための図を示す。ここでは、図4に示すデータ転送制御装置100の機能ブロックと同一部分には同一符号をしている。
本変形例におけるデータ転送制御装置500では、5つの回路ブロックに分割し、各回路ブロック単位に動作クロックを生成すると共に出力の停止制御を行う。即ち、各回路ブロック単位に生成される動作クロックは、上述の実施形態で説明したようにその周波数の低減制御が行われ、かつその出力の停止制御も行われる。
クロックコントローラ510は、トランシーバクロックXcvr_CLK、HCクロックHC_CLK、PCクロックPC_CLK、メインクロックMain_CLK、OTGCクロックOTGC_CLKを生成する。トランシーバクロックXcvr_CLKは、トランシーバ110に供給される。HCクロックHC_CLKは、ホストコントローラ150に供給される。PCクロックPC_CLKは、ペリフェラルコントローラ160に供給される。メインクロックMain_CLKは、レジスタ部180、パケットバッファ190、バッファコントローラ210及びDMAハンドラ回路222に供給される。OTGCクロックOTGC_CLKは、OTGコントローラ120、HC/PC切り替え回路140及びCPUインターフェース回路224に供給される。
本変形例では、図20に示した回路ブロックを単位として、図18及び図19に示したステートに応じて動作クロックの停止制御を行うか否かを示すクロック制御パターンに従って、動作クロックの停止制御を行う。
3.4 クロック制御パターン
図21に、クロック制御パターンの一例を示す。
図21に、クロック制御パターンの一例を示す。
クロック制御パターンでは、ステートごとに、「on」又は「off」が指定される。
「on」として指定される回路ブロックについては、動作クロックが供給される。「off」として指定される回路ブロックについては、動作クロックが、例えばLレベルに固定され、停止制御が行われる。
「on」として指定される回路ブロックについては、動作クロックが供給される。「off」として指定される回路ブロックについては、動作クロックが、例えばLレベルに固定され、停止制御が行われる。
データ転送制御装置500では、ファームウェアでステート遷移制御が行われる。そして、遷移先のステートに応じたステートコマンドがOTGコントローラ120に設定され、該ステートコマンドをデコードして当該ステートの制御を行うコントロール信号が生成される。そのためデータ転送制御装置500では、原則としてファームウェアによりステートコマンドが設定されるため、ステートに応じたコントロール信号を生成するOTGコントローラ120と、該ステートに対応したステートコマンドを設定するためのCPUインターフェース回路224に対しては動作クロックを供給しておく必要がある。従って、OTGCクロックOTGC_CLKは、ほとんどのステートで供給される。
Aデバイスに設定された場合、a_idleステートでは、VBUSへの電流供給が行われず、かつデータ信号線DP、DMが駆動されない。しかしながらAデバイスとしては、接続相手のBデバイスからのSRPを検出する必要があるため、OTGコントローラ120及びCPUインターフェース回路224に動作クロックを供給しておく必要がある。そこで、a_idleステートでは、OTGCクロックOTGC_CLKのみ供給する。
a_wait_vriseステートはVBUSの電圧が所与の閾値電圧に達するのを待つステートであり、a_wait_bconステートはBデバイスでデータ信号線がプルアップされるのを待つステートである。そのため、両ステートではOTGコントローラ120及びCPUインターフェース回路224に動作クロックを供給しておく必要がある。
a_hostステートでは、ホストコントローラ150によりホスト動作が行われる。従って、ホスト機能と排他的に切り替えられるペリフェラル機能の動作制御を行うペリフェラルコントローラ160については動作クロックを供給する必要がない。そのためa_hostステートでは、PCクロックPC_CLKのみ供給を停止させることにより、低消費電力化を図ることができる。
a_suspendステートでは、BデバイスはSRPやHNPを開始することができる。そのため、OTGコントローラ120及びCPUインターフェース回路224に動作クロックを供給しておく必要がある。
a_peripheralステートでは、ペリフェラルコントローラ160によりペリフェラル動作が行われる。従って、ペリフェラル機能と排他的に切り替えられるホスト機能の動作制御を行うホストコントローラ150については動作クロックを供給する必要がない。そのためa_peripheralステートでは、HCクロックHC_CLKのみ供給を停止させることにより、低消費電力化を図ることができる。
a_wait_vfallステートは、VBUSの電圧が所与の閾値電圧を下回るのを待つステートである。そのため、OTGコントローラ120及びCPUインターフェース回路224に動作クロックを供給しておく必要がある。
a_vbus_errステートでは、過電流によりVBUSの電圧が下がるのを待つステートである。そのため、OTGコントローラ120及びCPUインターフェース回路224に動作クロックを供給しておく必要がある。
一方、Bデバイスに設定された場合、b_idleステートは、USBケーブルが接続されていないときのデフォルトのステートである。従って、データ転送制御を行うことなく電流が消費されてしまう事態を回避するため、データ転送制御装置500の各部への動作クロックの供給を停止する。b_idleステートから他のステートに遷移するときは、まず遷移条件に対応した割り込み(例えば、ChangeID割り込みやCross44V割り込み)をトリガとしてPLL回路の動作を開始させる。その後、クロックが安定して供給されてOTGコントローラ120及びCPUインターフェース回路224にステートコマンドを設定可能になった後に、遷移先のステートに対応したステートコマンドが設定される。
b_srp_initステートでは、BデバイスがSRPを開始するステートである。b_srp_initステートでは、SRPによりデータラインパルシング及びVBUSパルシングを行うために、OTGコントローラ120及びCPUインターフェース回路224に動作クロックを供給しておく必要がある。
b_peripheralステートでは、ペリフェラルコントローラ160によりペリフェラル動作が行われる。従って、ペリフェラル機能と排他的に切り替えられるホスト機能の動作制御を行うホストコントローラ150については動作クロックを供給する必要がない。そのためb_peripheralステートでは、HCクロックHC_CLKのみ供給を停止させることにより、低消費電力化を図ることができる。
ところが、b_periheralステートであっても、USB2.0規格によれば、ダウンストリームデバイス(the downstream device)としてのBデバイスは、接続相手であるアップストリームデバイス(the upstream device)としてのAデバイスが3ms以上バスをサスペンド状態にしたことを検出すると、AデバイスはUSBホストのサスペンド状態となる。この場合、ホストとして動作するAデバイスがUSBサスペンド状態であるため、Bデバイスは動作することができないため、すべてのブロックへのクロックの供給を停止させることで、低消費電力化を図ることができる。
b_wait_aconステートは、HNPによりAデバイスがペリフェラルになるのを待つステートである。従って、OTGコントローラ120及びCPUインターフェース回路224のみ動作クロックを供給させればよい。しかしながら、b_wait_aconステートは、通常の場合、b_periheralステートからb_hostステートへの遷移途中である。そこで、b_wait_aconステートの期間が短い場合には、b_peripheralステートと同じクロック供給制御を行う方が制御が簡素化される。従って、図21ではb_peripheralステートと同じクロック制御パターンになっている。
b_hostステートでは、ホストコントローラ150によりホスト動作が行われる。しかしながら、ホスト機能と排他的に切り替えられるペリフェラル機能の動作制御を行うペリフェラルコントローラ160については動作クロックを供給する必要がない。そのためb_hostステートでは、PCクロックPC_CLKのみ供給を停止させることにより、低消費電力化を図ることができる。
その他、テストモードでは全機能ブロックについて所与の検査を行うために、全機能ブロックにクロックが供給されるようにしてもよい。
以上のようにAデバイス及びBデバイスの各ステートについて、回路ブロック単位でクロック制御を行う場合、クロック制御パターンは、Waitモード、Hostモード、Peripheralモード、AllSleepモード、AllActiveモードの5パターンである。
Waitモードでは、OTGコントローラ120、CPUインターフェース回路224及びHC/PC切り替え回路140にのみ動作クロック(OTGCクロックOTGC_CLK)が供給される。
Hostモードでは、OTGコントローラ120、CPUインターフェース回路224、HC/PC切り替え回路140及びホストコントローラ150に動作クロック(OTGCクロックOTGC_CLK、HCクロックHC_CLK)が供給される。
Peripheralモードでは、OTGコントローラ120、CPUインターフェース回路224、HC/PC切り替え回路140及びペリフェラルコントローラ160にのみクロック(OTGCクロックOTGC_CLK、PCクロックPC_CLK)が供給される。
AllSleepモードでは、全機能ブロックのみならず、PLL回路の発振動作も停止される。
AllActiveモードでは、全機能ブロックに対して動作クロックが供給される。
このような5パターンのいずれかのパターンに対応したクロックコマンドが、ファームウェアによりクロックコントローラ510に設定される。クロックコントローラ510では、このクロックコマンドをデコードして、回路ブロック単位で動作クロックの停止制御が行われる。
3.5 クロックコントローラ
図22に、クロックコントローラ510の構成例のブロック図を示す。
図22に、クロックコントローラ510の構成例のブロック図を示す。
クロックコントローラ510は、クロック生成回路600、クロック出力制御回路610を含む。
クロック生成回路600は、発振回路602、PLL回路604、クロック分配制御回路606を含む。発振回路602は、外部に接続された発振子の発振周波数に応じた発振出力をPLL回路604に供給する。PLL回路604は、その発振出力を逓倍したPLLクロックPLL_CLK(CLKf)(例えば48MHz)、CLKs(例えば3MHz)を生成する。クロック分配制御回路606は、PLLクロックPLL_CLK又はCLKsを用いて回路ブロックごとに供給される動作クロックを生成し、各回路ブロックに分配する。
発振回路602は、発振イネーブル信号OSCen(広義には出力制御信号)により、発振動作を開始又は停止する。PLL回路604は、PLLイネーブル信号PLLen(広義には出力制御信号)により、PLL発振動作を開始又は停止し、或いはPLLクロックの出力を停止する。
クロック分配制御回路606は、クロック出力制御回路610からのクロック分配制御信号(広義には出力制御信号)により、回路ブロックごとに動作クロックの出力制御を行って、回路ブロックに動作クロックを供給する
クロック出力制御回路610は、クロックコントロールレジスタ612、クロックモニタレジスタ614、クロックコマンドレジスタ616、クロックコマンドデコーダ618、起動回路630を含む。
クロック出力制御回路610は、クロックコントロールレジスタ612、クロックモニタレジスタ614、クロックコマンドレジスタ616、クロックコマンドデコーダ618、起動回路630を含む。
クロックコントロールレジスタ612には、ファームウェアによりクロックコントロールデータが設定される。クロックコントロールデータとして、例えば発振回路又はPLL回路を安定させるまでのウェイト数がある。
クロックモニタレジスタ614には、クロック出力制御回路610によるクロック生成回路600の監視結果が設定される。この監視結果として、例えば起動回路630から出力される発振イネーブル信号OSCenの状態が設定されたり、クロックコマンドデコーダ618から出力される出力制御信号の状態が設定されたりする。ファームウェアを処理するCPUは、例えばクロックモニタレジスタ614から読み出されたクロックモニタデータを参照することができる。
クロックコマンドレジスタ616には、ファームウェア若しくはハードウェアによりクロックコマンドが設定される。クロックコマンドは、回路ブロック単位に動作クロックの出力を停止制御するか否かを示すクロック制御パターンに対応したコマンドである。
クロックコマンドデコーダ618は、クロックコマンドレジスタ616に設定されたクロックコマンドをデコードして出力制御信号を生成する。この出力制御信号により、発振回路602、PLL回路604又はクロック分配制御回路606の出力制御を行うことができる。
起動回路630は、トリガ信号が入力されると、発振回路602の発振動作を開始させる発振イネーブル信号OSCenとPLLイネーブル信号PLLenを出力する。起動回路630では、クロックコマンドデコーダ618のデコード結果を用いて、発振制御又はPLL発振制御が行われる。また起動回路630は、クロックコントロールレジスタ612の設定内容に基づき、発振制御又はPLL発振制御を行うことができるようにしてもよい。
クロック出力制御回路610の起動回路630は、発振回路起動タイマ620、PLL回路起動タイマ622、発振回路ウェイクアップ(OSCWakeUp)回路624、PLLウェイクアップ(PLLWakeUp)回路626を含む。
発振回路起動タイマ620は、クロックコントロールレジスタ612に設定されたウェイト数を発振出力安定期間とし、タイマ起動後、該ウェイト数分を経過したときに、PLL回路起動信号を出力し、PLL回路604のPLL発振を開始させると共にPLL回路起動タイマ622を起動させる。
PLL回路起動タイマ622は、クロックコントロールレジスタ612に設定されたウェイト数をPLL発振出力安定期間とし、タイマ起動後、該ウェイト数分を経過したときに、PLL回路ウェイクアップ信号をPLLウェイクアップ回路626に出力する。
発振回路ウェイクアップ回路624には、クロックコマンドデコーダ618から出力される発振回路発振イネーブル信号が入力される。発振回路発振イネーブル信号によりイネーブル状態になった発振回路ウェイクアップ回路624は、レジュームトリガ信号により起動され、発振イネーブル信号OSCenを発振回路602に出力する。より具体的には、発振回路発振イネーブル信号によりイネーブル状態になった発振回路ウェイクアップ回路624は、リモート・ウェイクアップ(RemoteWakeUp)トリガ又はローカルウェイクアップ(LocalWakeUp)トリガにより起動され、発振イネーブル信号OSCenを発振回路602に出力する。リモートウェイクアップトリガは、Aデバイスが、a_suspendステートからa_hostステートに遷移するとき、BデバイスがラインステートをK状態にしたことを検出したときにアクティブとなる。ローカルウェイクアップトリガは、ChangeID割り込み、DetnonJ割り込み又はCross44V割り込みが発生したときにアクティブとなる。ここでChangeID割り込みは、例えばb_idleステートからa_idleステートに遷移するときに、Mini−Aプラグが挿入されたときのようにIDピンの変化をトリガとして発生する。DetnonJ割り込みは、b_idleステートからb_peripheralステートに遷移するときに、ラインステートがJ状態でないことを検出したときに発生する。Cross44V割り込みは、AデバイスにおいてVBUSの電圧が所与の閾値電圧が4.4Vを境に変化したときに発生する。
PLLウェイクアップ回路626には、クロックコマンドデコーダ618から出力されるPLL回路発振イネーブル信号が入力される。PLL回路発振イネーブル信号によりイネーブル状態になったPLLウェイクアップ回路626は、PLL回路起動タイマ622からのPLL回路ウェイクアップ信号により起動され、PLL回路出力イネーブル信号を生成する。
クロックコントロールレジスタ612には、書き込みイネーブル信号CPU_Ctl_wrに基づき、ファームウェアにより発振回路又はPLL回路のウェイト数がCPU_WDataとして設定される。
クロックコマンドレジスタ616には、ファームウェアからの書き込みイネーブル信号CPU_Cmd_wr又はOTGコントローラ120からの書き込みイネーブル信号OTGC_Cmd_wrに基づき、ファームウェアからのクロックコマンド又はOTGコントローラ120からのクロックコマンドが設定される。なお、書き込みイネーブル信号OTGC_Cmd_wrには、ラインステートの監視結果に基づいて生成されるトリガ信号(例えばリモートウェイクアップトリガやローカルウェイクアップ)も含まれる。
クロックモニタレジスタ614には、発振回路ウェイクアップ回路624から出力される発振イネーブル信号OSCenの状態がEnOSCとして割り当てられているクロックモニタレジスタ614のビットフィールドに設定される。また発振回路起動タイマ620から出力されるPLLイネーブル信号PLLenの状態が、EnPLLとして割り当てられているクロックモニタレジスタ614のビットフィールドに設定される。更にPLLウェイクアップ回路626から出力されるPLL回路出力イネーブル信号の状態が、PLLClkActiveとして割り当てられているクロックモニタレジスタ614のビットフィールドに設定される。更にまた、クロックコマンドデコーダ618から出力されるクロック分配制御信号OTGCSleepの状態が、CPUClkActiveとして割り当てられているクロックモニタレジスタ614のビットフィールドに設定される。このようなクロックモニタレジスタ614の内容は、ファームウェアからの読み出しイネーブル信号CPU_Mon_rdに基づき、CPU_RDataとして読み出される。
クロックコマンドデコーダ618は、クロックコマンドレジスタ616に設定されたクロックコマンドをデコードして、発振回路発振イネーブル信号、PLL回路発振イネーブル信号、クロック分配制御信号XcvrSleep、HCSleep、PCSleep、MainSleep、OTGCSleep(広義には出力制御信号)を生成する。クロック分配制御信号は、クロック分配制御回路606に供給される。
図23に、クロック分配制御回路606の構成例の回路図を示す。
クロック分配制御回路606は、Xcvr_CLK生成回路650、HC_CLK生成回路652、PC_CLK生成回路654、Main_CLK生成回路656、OTGC_CLK生成回路658を含む。
Xcvr_CLK生成回路650は、トランシーバクロックXcvr_CLKを生成する。より具体的には、Xcvr_CLK生成回路650は、PLL回路604からのPLLクロックPLL_CLK(CLKf)に基づいてトランシーバクロックXcvr_CLKを生成する。クロック分配制御信号XcvrSleepがLレベル(0)のとき、Xcvr_CLK生成回路650はPLLクロックPLL_CLKをトランシーバクロックXcvr_CLKとして出力する。クロック分配制御信号XcvrSleepがHレベル(1)のとき、Xcvr_CLK生成回路650はその出力をLレベルに固定してトランシーバクロックXcvr_CLKを停止させる。
HC_CLK生成回路(ホストコントローラ用動作クロック生成回路)652は、HCクロックHC_CLKを生成する。より具体的には、HC_CLK生成回路652は、セレクタSEL2(第2のセレクタ)の出力に基づいてHCクロックHC_CLKを生成する。クロック分配制御信号HCSleepがLレベル(0)のとき、HC_CLK生成回路652はセレクタSEL2の出力Sel_HC_CLKをHCクロックHC_CLKとして出力する。クロック分配制御信号HCSleepがHレベル(1)のとき、HC_CLK生成回路652はその出力をLレベルに固定してHCクロックHC_CLKを停止させる。
FS接続検出信号FSConnectが1のとき、セレクタSEL2はPLL回路604によって生成された例えば48MHzのPLLクロックPLL_CLKを出力する。FS接続検出信号FSConnectが0のとき、セレクタSEL2はPLL回路604によって生成された例えば3MHzの動作クロックCLKsを出力する。
PC_CLK生成回路654は、PCクロックPC_CLKを生成する。より具体的には、PC_CLK生成回路654は、PLL回路604からのPLLクロックPLL_CLK(CLKf)に基づいてPCクロックPC_CLKを生成する。クロック分配制御信号PCSleepがLレベル(0)のとき、PC_CLK生成回路654はPLLクロックPLL_CLKをPCクロックPC_CLKとして出力する。クロック分配制御信号PCSleepがHレベル(1)のとき、PC_CLK生成回路654はその出力をLレベルに固定してPCクロックPC_CLKを停止させる。
Main_CLK生成回路656は、メインクロックMain_CLKを生成する。より具体的には、Main_CLK生成回路656は、PLL回路604からのPLLクロックPLL_CLK(CLKf)に基づいてメインクロックMain_CLKを生成する。クロック分配制御信号MainSleepがLレベル(0)のとき、Main_CLK生成回路656はPLLクロックPLL_CLKをメインクロックMain_CLKとして出力する。クロック分配制御信号MainSleepがHレベル(1)のとき、Main_CLK生成回路656はその出力をLレベルに固定してメインクロックMain_CLKを停止させる。
OTGC_CLK生成回路(ステートコントローラ用動作クロック生成回路、又はインターフェース用動作クロック生成回路)658は、OTGCクロックOTGC_CLKを生成する。より具体的には、OTGC_CLK生成回路658は、セレクタSEL1(第1のセレクタ)の出力に基づいてOTGCクロックOTGC_CLKを生成する。クロック分配制御信号OTGCSleepがLレベル(0)のとき、OTGC_CLK生成回路652はセレクタSEL2の出力Sel_OTGC_CLKをOTGCクロックOTGC_CLKとして出力する。クロック分配制御信号OTGCSleepがHレベル(1)のとき、OTGC_CLK生成回路658はその出力をLレベルに固定してOTGCクロックOTGC_CLKを停止させる。
FS接続検出信号FSConnectが1のとき、セレクタSEL1はPLL回路604によって生成された例えば48MHzのPLLクロックPLL_CLKを出力する。FS接続検出信号FSConnectが0のとき、セレクタSEL1はPLL回路604によって生成された例えば3MHzの動作クロックCLKsを出力する。
図24に、クロック分配制御回路606の動作例のタイミング図を示す。
ここでは低消費電力モードがオンに設定されている状態でAデバイスでのBデバイス検知待ち状態からホスト状態に遷移した後に、FS機器に接続されたときのタイミングを示している。
Aデバイスにおいて、a_wait_bconステートでは、図21に示すようにクロック制御パターンはWaitモードである。そのため、クロックコマンドレジスタ616にはWaitモードに対応したクロックコマンドが設定されている。従ってクロック分配制御信号HCSleep、PCSleep、MainSleep、XcvrSleepがHレベルで、クロック分配制御信号OTGCSleepがLレベルとなる。この結果、HCクロックHC_CLK、PCクロックPC_CLK、メインクロックMain_CLK、トランシーバクロックXcvr_CLKはLレベルに固定される。また、このときホストに移行していないためFS接続検出信号FSConnectがLレベルであり、セレクタSEL1は動作クロックCLKsを出力するため、OTGC_CLK生成回路658は、例えば3MHzのOTGCクロックOTGC_CLKを出力する。
続いて、a_wait_bconステートからa_hostステートに遷移するものとする。図21に示すようににおいて、a_hostステートでは、クロック制御パターンはHostモードである。そのため、クロックコマンドレジスタ616にはHostモードに対応したクロックコマンドが、ファームウェアにより設定される。この結果、クロック分配制御信号PCSleepがHレベルで、クロック分配制御信号HCSleep、MainSleep、XcvrSleep、OTGCSleepがLレベルとなる。従って、PCクロックPC_CLKのみがLレベルに固定される。そして、Xcvr_CLK生成回路650、Main_CLK生成回路656は、例えば48MHzのトランシーバクロックXcvr_CLK、メインクロックMain_CLKを出力する。また、このときホストに移行していないためFS接続検出信号FSConnectがLレベルであり、セレクタSEL1は動作クロックCLKsを出力するため、OTGC_CLK生成回路658は、例えば3MHzのOTGCクロックOTGC_CLKを出力する。同様に、セレクタSEL2は動作クロックCLKsを出力するため、HC_CLK生成回路652は、例えば3MHzのHCクロックHC_CLKを出力する。
次に、ホストに移行した後に、FS機器の接続が検出されたものとする。これにより、FS接続検出信号FSConnectがHレベルとなる。セレクタSEL1はPLLクロックPLL_CLKを出力するため、OTGC_CLK生成回路658は、例えば48MHzのOTGCクロックOTGC_CLKを出力する。同様に、セレクタSEL2はPLLクロックPLL_CLKを出力するため、HC_CLK生成回路652は、例えば48MHzのHCクロックHC_CLKを出力する。
このように本変形例によれば、遷移先のステートに応じて、更に回路ブロック単位に動作クロックを停止させることができるので、データ転送処理能力を低下させることなく、より低消費電力化を図ることができるようになる。
4. 電子機器
図25に、本実施形態又は本変形例のデータ転送制御装置を含む電子機器の構成例を示す。この電子機器800は、本実施形態又は本変形例のデータ転送制御装置810、ASIC等で構成されるアプリケーション層デバイス820、CPU(処理部)830、ROM840、RAM850、表示部860、操作部870を含む。なおこれらの機能ブロックの一部を省略する構成としてもよい。
図25に、本実施形態又は本変形例のデータ転送制御装置を含む電子機器の構成例を示す。この電子機器800は、本実施形態又は本変形例のデータ転送制御装置810、ASIC等で構成されるアプリケーション層デバイス820、CPU(処理部)830、ROM840、RAM850、表示部860、操作部870を含む。なおこれらの機能ブロックの一部を省略する構成としてもよい。
ここでアプリケーション層デバイス(広義にはデータ転送制御装置810及びシリアルバスを介して転送されるデータの出力処理又は取り込み処理又は記憶処理を行う装置)820は、例えばハードディスクドライブ、光ディスクドライブ、或いはプリンタを制御するデバイスや、MPEGエンコーダ、MPEGデコーダ等を含むデバイス等である。CPU830(処理部)はデータ転送制御装置810や電子機器全体の制御を行う。ROM840は制御プログラムや各種データを記憶する。RAM850はCPU830やデータ転送制御装置810のワーク領域やデータ格納領域として機能する。表示部860は種々の情報をユーザに表示する。操作部870はユーザが電子機器を操作するためのものである。
なお図25ではDMAバスとCPUバスが分離されているが、これらを共通化してもよい。またCPU830をデータ転送制御装置810に内蔵させたり、データ転送制御装置810を制御するCPUと、電子機器を制御するCPUとを別々に設けてもよい。また本実施形態又は本変形例が適用できる電子機器としては、光ディスクドライブ(CD−ROM、DVD)、光磁気ディスクドライブ(MO)、ハードディスクドライブ、TV、TVチューナ、VTR、ビデオカメラ、オーディオ機器、電話機、プロジェクタ、パーソナルコンピュータ、電子手帳、或いはワードプロセッサ等の種々のものがある。
なお、本発明は上記の実施形態に限定されず、本発明の要旨の範囲内で種々の変形実施が可能である。
例えば、本発明のデータ転送制御装置の構成は図3又は図4等で説明した構成に限定されるものではなく、種々の変形実施が可能である。例えば図4のOTGコントローラ120、HC/PC切り替え回路140、ペリフェラルコントローラ160等の構成が省略され、ペリフェラル機能を持たず簡易ホスト機能だけを持つデータ転送制御装置にも、本発明は適用できる。
また、明細書や図面中の記載において広義な用語(ステートコントローラ、処理部、転送コントローラ、バス、バッファ領域等)として引用された用語(OTGコントローラ、CPU・ファームウェア、ホストコントローラ・ペリフェラルコントローラ、USB、パイプ領域・エンドポイント領域等)は、明細書や図面中の他の記載においても広義な用語に置き換えることができる。
また、本発明のうち従属請求項に係る発明においては、従属先の請求項の構成要件の一部を省略する構成とすることもできる。また、本発明の1の独立請求項に係る発明の要部を、他の独立請求項に従属させることもできる。
また、上記の実施形態ではUSBのOTG規格への適用例を説明したが、本発明が適用されるのはOTG規格に限定されない。例えばOTG規格と同様の思想に基づく規格やOTG規格を発展させた規格におけるデータ転送にも本発明は適用できる。
30 データ転送制御装置、32 シリアルデータ処理部、34 パラレルデータ処理部、 36 転送モード検出部、38 クロック生成部、40 外部装置
Claims (10)
- シリアルバスを介したデータ転送のためのデータ転送制御装置であって、
前記シリアルバスに接続され、該シリアルバスを介してシリアルデータを転送するシリアルデータ処理部と、
前記シリアルデータ処理部によって転送される前記シリアルデータを変換したパラレルデータのデータ転送処理を行うパラレルデータ処理部と、
前記シリアルバスのデータ転送モードが高速な第1の転送モードか、又は低速な第2の転送モードかを検出する転送モード検出部と、
前記データ転送制御装置の各部に供給される動作クロックを生成するクロック生成部と、
を含み、
前記クロック生成部は、
前記転送モード検出部の検出結果により前記データ転送モードが前記第1の転送モードであると判断されたとき、前記シリアルデータ処理部の動作クロック及び前記パラレルデータ処理部の動作クロックの周波数の低減制御を省略し、
前記転送モード検出部の検出結果により前記データ転送モードが前記第2の転送モードであると判断されたとき、前記シリアルデータ処理部の動作クロックについてはその周波数の低減制御を省略する一方で、前記パラレルデータ処理部の少なくとも一部の動作クロックについてはその周波数の低減制御を行うことを特徴とするデータ転送制御装置。 - 請求項1において、
前記パラレルデータ処理部は、
前記シリアルデータ処理部によって各エンドポイントとの間で転送されるデータが各パイプ領域に記憶される複数のパイプ領域が確保されるパケットバッファと、
パイプ領域と該パイプ領域に対応するエンドポイントとの間でのデータ転送を制御する転送コントローラと、
前記複数のパイプ領域を前記パケットバッファに確保すると共に、前記パケットバッファのアクセス制御を行うバッファコントローラと、
前記バッファコントローラによってアクセスされたデータが転送される第2のバスのインターフェース処理を行うインターフェース部とを含み、
前記クロック生成部は、
前記転送モード検出部の検出結果により前記データ転送モードが前記第2の転送モードであると判断されたとき、前記インターフェース部の動作クロックについてその周波数の低減制御を省略することを特徴とするデータ転送制御装置。 - 請求項2において、
前記シリアルバスは、電源ラインを含み、
前記パラレルデータ処理部は、
前記電源ラインの状態を検出する電源ライン検出回路と、
ホストの役割として動作するホスト動作のステートと、ペリフェラルの役割として動作するペリフェラル動作のステートとを含む複数のステートのステート間の遷移制御を行うステートコントローラとを含み、
前記電源ライン検出回路が、
前記電源ラインの電圧と基準電圧とを比較するコンパレータと、
前記電源ライン検出回路の動作クロックに基づき前記コンパレータの出力を取り込むモニタ部とを含み、
前記転送コントローラが、
ホスト動作時においてホストとしてのデータ転送を行うホストコントローラと、
ペリフェラル動作時においてペリフェラルとしてのデータ転送を行うペリフェラルコントローラとを含み、
前記クロック生成部が、
前記転送モード検出部の検出結果により前記データ転送モードが前記第2の転送モードであると判断されたとき、前記ホストコントローラの動作クロック、前記電源ライン検出回路の動作クロック、及び前記ステートコントローラの動作クロックのうち少なくとも1つについてはその周波数の低減制御を行うことを特徴とするデータ転送制御装置。 - 請求項3において、
前記クロック生成部は、
前記ステートコントローラ用の前記第1の転送モードにおける高速な第1の動作クロック及び前記第2の転送モードにおける低速な第2の動作クロック、前記ホストコントローラ用の前記第1の転送モードにおける高速な第3の動作クロック及び前記第2の転送モードにおける低速な第4の動作クロック、前記ペリフェラルコントローラの動作クロック、及び前記インターフェース部の動作クロックを生成し、
前記クロック生成部は、
前記転送モード検出部の検出結果に基づいて第1及び第2の動作クロックの一方を前記ステートコントローラの動作クロックとして出力する第1のセレクタと、
前記転送モード検出部の検出結果に基づいて第3及び第4の動作クロックの一方を前記ホストコントローラの動作クロックとして出力する第2のセレクタとを含むことを特徴とするデータ転送制御装置。 - 請求項4において、
前記クロック生成部は、
前記第1のセレクタの出力を停止させる制御を行うステートコントローラ用動作クロック生成回路と、
前記第2のセレクタの出力を停止させる制御を行うホストコントローラ用動作クロック生成回路と、
前記インターフェース部の動作クロックの出力を停止させる制御を行うインターフェース用動作クロック生成回路とを含み、
前記ステートコントローラ用動作クロック生成回路、前記ホストコントローラ用動作クロック生成回路、及び前記インターフェース用動作クロック生成回路の各動作クロック生成回路は、
前記ステートコントローラによって遷移制御された遷移先のステートに応じて、その出力を停止させることを特徴とするデータ転送制御装置。 - 請求項5において、
前記ステートコントローラによって遷移制御された遷移先のステートに対応したクロックコマンドが設定されるクロックコマンドレジスタと、
前記クロックコマンドレジスタに設定された内容をデコードするクロックコマンドデコーダとを含み、
前記ステートコントローラ用動作クロック生成回路、前記ホストコントローラ用動作クロック生成回路、及び前記インターフェース用動作クロック生成回路の各動作クロック生成回路は、
前記クロックコマンドデコーダのデコード結果に基づいて、その出力を停止させることを特徴とするデータ転送制御装置。 - 請求項1乃至6のいずれかにおいて、
USB(Universal Serial Bus)のOTG(On-The-Go)規格に準拠したデータ転送を行うことを特徴とするデータ転送制御装置。 - 請求項1乃至7のいずれか記載のデータ転送制御装置と、
前記データ転送制御装置及び前記シリアルバスを介して転送されるデータの出力処理又は取り込み処理又は記憶処理を行う装置と、
前記データ転送制御装置のデータ転送を制御する処理部と、
を含むことを特徴とする電子機器。 - シリアルバスを介したデータ転送のためのデータ転送制御方法であって、
前記シリアルバスのデータ転送モードが高速な第1の転送モードか、又は低速な第2の転送モードかを検出し、
前記データ転送モードが前記第1の転送モードであると判断されたとき、前記シリアルバスに接続され該シリアルバスを介してシリアルデータを転送するシリアルデータ処理部の動作クロック、及び前記シリアルデータを変換したパラレルデータのデータ転送処理を行うパラレルデータ処理部の動作クロックの周波数の低減制御を省略し、前記データ転送モードが前記第2の転送モードであると判断されたとき、前記シリアルデータ処理部の動作クロックについてはその周波数の低減制御を省略すると一方で前記パラレルデータ処理部の少なくとも一部の動作クロックについてはその周波数の低減制御を行うことを特徴とするデータ転送制御方法。 - 請求項9において、
前記データ転送モードが前記第2の転送モードであると判断されたとき、前記パラレルデータが転送される第2のバスのインターフェース処理を行うインターフェース部の動作クロックの周波数の低減制御を省略することを特徴とするデータ転送制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003354044A JP2005122303A (ja) | 2003-10-14 | 2003-10-14 | データ転送制御装置、電子機器及びデータ転送制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003354044A JP2005122303A (ja) | 2003-10-14 | 2003-10-14 | データ転送制御装置、電子機器及びデータ転送制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005122303A true JP2005122303A (ja) | 2005-05-12 |
Family
ID=34612145
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003354044A Withdrawn JP2005122303A (ja) | 2003-10-14 | 2003-10-14 | データ転送制御装置、電子機器及びデータ転送制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005122303A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007018400A (ja) * | 2005-07-11 | 2007-01-25 | Fujitsu Ltd | バス・システム、バス管理装置、ノード装置、およびバス管理装置用のプログラム |
JP5093109B2 (ja) * | 2006-08-04 | 2012-12-05 | 株式会社ニコン | 外部記憶装置およびカメラ |
JP2017527921A (ja) * | 2014-09-15 | 2017-09-21 | マイクロ モーション インコーポレイテッド | デバイスのモードを制御する方法および装置 |
US11249722B2 (en) * | 2018-06-15 | 2022-02-15 | Renesas Electronics Corporation | Semiconductor device and method of controlling the semiconductor device |
CN114564099A (zh) * | 2022-01-20 | 2022-05-31 | 珠海亿智电子科技有限公司 | 一种降低usb传输功耗的方法及电子装置 |
-
2003
- 2003-10-14 JP JP2003354044A patent/JP2005122303A/ja not_active Withdrawn
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007018400A (ja) * | 2005-07-11 | 2007-01-25 | Fujitsu Ltd | バス・システム、バス管理装置、ノード装置、およびバス管理装置用のプログラム |
JP4684031B2 (ja) * | 2005-07-11 | 2011-05-18 | 富士通株式会社 | バス・システム、バス管理装置、ノード装置、およびバス管理装置用のプログラム |
JP5093109B2 (ja) * | 2006-08-04 | 2012-12-05 | 株式会社ニコン | 外部記憶装置およびカメラ |
US8581989B2 (en) | 2006-08-04 | 2013-11-12 | Nikon Corporation | External storage device and camera |
JP2017527921A (ja) * | 2014-09-15 | 2017-09-21 | マイクロ モーション インコーポレイテッド | デバイスのモードを制御する方法および装置 |
US11249722B2 (en) * | 2018-06-15 | 2022-02-15 | Renesas Electronics Corporation | Semiconductor device and method of controlling the semiconductor device |
US11907681B2 (en) | 2018-06-15 | 2024-02-20 | Renesas Electronics Corporation | Semiconductor device and method of controlling the semiconductor device |
CN114564099A (zh) * | 2022-01-20 | 2022-05-31 | 珠海亿智电子科技有限公司 | 一种降低usb传输功耗的方法及电子装置 |
CN114564099B (zh) * | 2022-01-20 | 2024-06-04 | 珠海亿智电子科技有限公司 | 一种降低usb传输功耗的方法及电子装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3636157B2 (ja) | データ転送制御装置、電子機器及びデータ転送制御方法 | |
JP3722217B2 (ja) | データ転送制御装置、電子機器及びデータ転送制御方法 | |
JP3632695B2 (ja) | データ転送制御装置、電子機器及びデータ転送制御方法 | |
US8312299B2 (en) | Method and apparatus for dynamic power management control using serial bus management protocols | |
US7802034B2 (en) | Method for performing full transfer automation in a USB controller | |
US7337382B2 (en) | Data transfer control device, electronic instrument, and data transfer control method | |
JP2004021613A (ja) | データ転送制御装置、電子機器及びデータ転送制御方法 | |
JP3726898B2 (ja) | データ転送制御装置、電子機器及びデータ転送制御方法 | |
US7039826B2 (en) | Circuit for controlling the clock supplied to a state controller in a data transfer control device according to states of first and second devices | |
JP3755594B2 (ja) | データ転送制御装置及び電子機器 | |
JP3636158B2 (ja) | データ転送制御装置及び電子機器 | |
US7076683B2 (en) | Clock control circuit for controlling an oscillation circuit in a data transfer control device according to states of a first device and a second device | |
JP3636160B2 (ja) | データ転送制御装置、電子機器及びデータ転送制御方法 | |
JP3614161B2 (ja) | データ転送制御装置、電子機器及びデータ転送制御方法 | |
JP2005122303A (ja) | データ転送制御装置、電子機器及びデータ転送制御方法 | |
JP2007233998A (ja) | データ転送制御装置及び電子機器 | |
JP4127069B2 (ja) | データ転送制御装置、電子機器及びデータ転送制御方法 | |
JP4127071B2 (ja) | データ転送制御装置、電子機器及びデータ転送制御方法 | |
JP2003323391A (ja) | データ転送制御装置、電子機器及びデータ転送制御方法 | |
JP2003316734A (ja) | データ転送制御装置、電子機器及びデータ転送制御方法 | |
JP2003323399A (ja) | データ転送制御装置、電子機器及びデータ転送制御方法 | |
JP2003323400A (ja) | クロック制御回路、データ転送制御装置及び電子機器 | |
JP2003323395A (ja) | データ転送制御装置、電子機器及びデータ転送制御方法 | |
JP2004021976A (ja) | データ転送制御装置、電子機器及びデータ転送制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20070109 |