(57)【要約】【課題】  ステート遷移制御を効率的に実現できるデータ転送制御装置、電子機器の提供。【解決手段】  データ転送制御装置は、ステート制御のための第１〜第Ｎのステートの各ステートの処理を実行するステート実行回路２３０と、各ステートの処理の実行結果に基づいてデータ転送のための制御を行う転送コントローラ５０と、ステート遷移実行コマンドが設定されるコマンドレジスタ２１０と、ステート遷移実行コマンドをデコードし、デコード結果に基づいてステート実行回路２３０を制御する制御回路２２０を含む。制御回路２２０は、第Ｌのステート（１≦Ｌ≦Ｎ）から第Ｍのステート（１≦Ｍ≦Ｎ）に至るまでステートを連続的に遷移させる連続ステート遷移実行コマンドが、コマンドレジスタ２１０に設定された場合には、第Ｌのステートから第Ｍのステートに至る複数ステートの処理をステート実行回路２３０に連続実行させる制御を行う。【選択図】        図４
2006227985.tif 000002
【特許請求の範囲】
【請求項１】
バスを介したデータ転送のためのデータ転送制御装置であって、
データ転送制御装置のステート制御のための第１〜第Ｎのステートの各ステートの処理を実行するステート実行回路と、
前記ステート実行回路での各ステートの処理の実行結果に基づいて、データ転送のための制御を行う転送コントローラと、
ステート遷移実行コマンドが設定されるコマンドレジスタと、
前記コマンドレジスタに設定された前記ステート遷移実行コマンドをデコードし、デコード結果に基づいて前記ステート実行回路を制御する制御回路とを含み、
前記制御回路は、
データ転送制御装置のステートを第Ｋのステート（１≦Ｋ≦Ｎ）に遷移させる個別ステート遷移実行コマンドが、前記コマンドレジスタに設定された場合には、前記第Ｋのステートの処理を前記ステート実行回路に実行させる制御を行い、
第Ｌのステート（１≦Ｌ≦Ｎ）から第Ｍのステート（１≦Ｍ≦Ｎ）に至るまでデータ転送制御装置のステートを連続的に遷移させる連続ステート遷移実行コマンドが、前記コマンドレジスタに設定された場合には、前記第Ｌのステートから前記第Ｍのステートに至る複数ステートの処理を前記ステート実行回路に連続実行させる制御を行うことを特徴とするデータ転送制御装置。
【請求項２】
請求項１において、
前記ステート実行回路は、
前記第１〜第Ｎのステートの処理を実行する第１〜第Ｎのステートシーケンサを含み、
前記制御回路は、
前記個別ステート遷移実行コマンドが前記コマンドレジスタに設定された場合には、前記第Ｋのステートの処理を実行する第Ｋのステートシーケンサに対して、ステート処理実行の起動信号を出力し、
前記連続ステート遷移実行コマンドが前記コマンドレジスタに設定された場合には、前記第Ｌ〜第Ｍのステートの処理を実行する第Ｌ〜第Ｍのステートシーケンサの各ステートシーケンサに対して、ステート処理実行の起動信号を順次出力し、各ステートシーケンサからステート処理実行の完了信号を受けることを特徴とするデータ転送制御装置。
【請求項３】
請求項２において、
前記コマンドレジスタに対してステート遷移実行コマンドを設定する処理部に対する割り込み信号を生成する割り込み信号生成回路を含み、
前記割り込み信号生成回路は、
前記各ステートシーケンサから前記完了信号を受け、前記完了信号に基づいて前記割り込み信号を生成することを特徴とするデータ転送制御装置。
【請求項４】
請求項１乃至３のいずれかにおいて、
前記連続ステート遷移実行コマンドは、
ウェイトコネクトステートから開始してリセットステートを経てオペレーショナルステートに至るまでステートを連続的に遷移させるコマンド、及びリセットステートから開始してオペレーショナルステートに至るまでステートを連続的に遷移させるコマンドの少なくとも一方を含むことを特徴とするデータ転送制御装置。
【請求項５】
請求項４において、
前記制御回路は、
前記ステート実行回路からリセットステート処理実行の完了信号を受けた場合に、オペレーショナルステート処理実行の起動信号を前記ステート実行回路に出力することを特徴とするデータ転送制御装置。
【請求項６】
請求項１乃至５のいずれかにおいて、
前記連続ステート遷移実行コマンドは、
サスペンドステートから開始してレジュームステートを経てオペレーショナルステートに至るまでステートを連続的に遷移させるコマンド、及びレジュームステートから開始してオペレーショナルステートに至るまでステートを連続的に遷移させるコマンドの少なくとも一方を含むことを特徴とするデータ転送制御装置。
【請求項７】
請求項６において、
前記制御回路は、
前記ステート実行回路からレジュームステート処理実行の完了信号を受けた場合に、オペレーショナルステート処理実行の起動信号を前記ステート実行回路に出力することを特徴とするデータ転送制御装置。
【請求項８】
バスを介したデータ転送のためのデータ転送制御装置であって、
データ転送制御装置のステート制御のための第１〜第Ｎのステートの各ステートの処理を実行するステート実行回路と、
前記ステート実行回路での各ステートの処理の実行結果に基づいて、データ転送のための制御を行う転送コントローラと、
ステート遷移実行コマンドが設定されるコマンドレジスタと、
前記コマンドレジスタに設定された前記ステート遷移実行コマンドをデコードし、デコード結果に基づいて前記ステート実行回路を制御する制御回路とを含み、
前記制御回路は、
データ転送制御装置のステートを第Ｋのステート（１≦Ｋ≦Ｎ）に遷移させる個別ステート遷移実行コマンドが、前記コマンドレジスタに設定された場合には、前記第Ｋのステートの処理を前記ステート実行回路に実行させる制御を行うことを特徴とするデータ転送制御装置。
【請求項９】
バスを介したデータ転送のためのデータ転送制御装置であって、
データ転送制御装置のステート制御のための第１〜第Ｎのステートの各ステートの処理を実行するステート実行回路と、
前記ステート実行回路での各ステートの処理の実行結果に基づいて、データ転送のための制御を行う転送コントローラと、
ステート遷移実行コマンドが設定されるコマンドレジスタと、
前記コマンドレジスタに設定された前記ステート遷移実行コマンドをデコードし、デコード結果に基づいて前記ステート実行回路を制御する制御回路とを含み、
前記制御回路は、
第Ｌのステート（１≦Ｌ≦Ｎ）から第Ｍのステート（１≦Ｍ≦Ｎ）に至るまでデータ転送制御装置のステートを連続的に遷移させる連続ステート遷移実行コマンドが、前記コマンドレジスタに設定された場合には、前記第Ｌのステートから前記第Ｍのステートに至る複数ステートの処理を前記ステート実行回路に連続実行させる制御を行うことを特徴とするデータ転送制御装置。
【請求項１０】
請求項１乃至９のいずれかにおいて、
バスのデータラインのラインステートを検出するラインステート検出回路を含み、
前記ステート実行回路は、
前記ラインステート検出回路に含まれる検出回路のうち、検出動作が必要な検出回路をイネーブルにし、検出動作が不要な検出回路をディスエーブルにする信号を、前記ラインステート検出回路に対して出力することを特徴とするデータ転送制御装置。
【請求項１１】
請求項１乃至１０のいずれかにおいて、
前記転送コントローラは、トランザクション処理を実行するトランザクション実行回路を含み、
前記トランザクション実行回路は、
前記ステート実行回路からトランザクション実行起動信号を受け、前記トランザクション実行起動信号に基づいてトランザクション処理の実行を開始することを特徴とするデータ転送制御装置。
【請求項１２】
請求項１乃至１１のいずれかにおいて、
バスのデータラインのラインステートを制御するラインステート制御回路を含み、
前記ラインステート制御回路は、
前記ステート実行回路からラインステート制御信号を受け、前記ラインステート制御信号に基づいてラインステートを制御することを特徴とするデータ転送制御装置。
【請求項１３】
請求項１乃至１２のいずれかにおいて、
ＵＳＢ（Universal serial Bus）を介したデータ転送を行うことを特徴とするデータ転送制御装置。
【請求項１４】
請求項１乃至１３のいずれかに記載のデータ転送制御装置と、
前記データ転送制御装置により転送されるデータを記憶するストレージとを含むことを特徴とする電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ転送制御装置及び電子機器に関する。
【背景技術】
【０００２】
近年、携帯電話機、携帯型オーディオ機器などのペリフェラル機器に、ＵＳＢのホスト機能を持たせる事への要望が強まっている。このようなペリフェラル機器のホスト機能を実現するデータ転送制御装置の従来技術しては、特開２００２−５５９３６号公報に開示される技術や、ＵＳＢ Ｏｎ−Ｔｈｅ−Ｇｏ（ＯＴＧ）規格などがある。
【０００３】
ところで、ペリフェラル機器に組み込まれるデータ転送制御装置にホスト機能を実現させる場合には、ホストとしてのステート制御をデータ転送制御装置に行わせる必要がある。
【０００４】
しかしながら、ホストのステート制御では、数多くのステートが存在し、各ステートに対応したラインステートの制御、検出のための複雑な処理が必要になる。従って、ステート制御の全てをハードウェア回路により実現しようとすると、回路規模の増大化、設計の複雑化などの問題を招く。
【０００５】
一方、ステート制御の全てをＣＰＵ上で動作するファームウェア（ソフトウェア）の処理により実現しようとすると、各ステート毎のラインステートの制御、検出などをファームウェアが制御、管理しなければならなくなる。このため、ファームウェアの設計が複雑化したり、ステート制御の処理が所定期間内に間に合わなくなるなどの問題を招く。特に、ペリフェラル機器に組み込まれるＣＰＵは、パーソナルコンピュータ（ＰＣ）に組み込まれるＣＰＵに比べて処理能力が一般的に低い。このため、ステート制御の全てをファームウェア処理により実現しようとすると、ＣＰＵの処理負荷が増加し、データ転送の高速化の妨げになったり、機器全体のパフォーマンスを低下させるなどの問題を招く。
【０００６】
本発明は、以上のような技術的課題に鑑みてなされたものであり、その目的とするところは、ステート遷移の制御を効率的に実現できるデータ転送制御装置及び電子機器を提供することにある。
【特許文献１】特開２００２−５５９３６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は、以上のような技術的課題に鑑みてなされたものであり、その目的とするところは、効率的なデータ転送制御を実現できるデータ転送制御装置及び電子機器を提供することにある。
【課題を解決するための手段】
【０００８】
本発明は、バスを介したデータ転送のためのデータ転送制御装置であって、データ転送制御装置のステート制御のための第１〜第Ｎのステートの各ステートの処理を実行するステート実行回路と、前記ステート実行回路での各ステートの処理の実行結果に基づいて、データ転送のための制御を行う転送コントローラと、ステート遷移実行コマンドが設定されるコマンドレジスタと、前記コマンドレジスタに設定された前記ステート遷移実行コマンドをデコードし、デコード結果に基づいて前記ステート実行回路を制御する制御回路とを含み、前記制御回路は、データ転送制御装置のステートを第Ｋのステート（１≦Ｋ≦Ｎ）に遷移させる個別ステート遷移実行コマンドが、前記コマンドレジスタに設定された場合には、前記第Ｋのステートの処理を前記ステート実行回路に実行させる制御を行い、第Ｌのステート（１≦Ｌ≦Ｎ）から第Ｍのステート（１≦Ｍ≦Ｎ）に至るまでデータ転送制御装置のステートを連続的に遷移させる連続ステート遷移実行コマンドが、前記コマンドレジスタに設定された場合には、前記第Ｌのステートから前記第Ｍのステートに至る複数ステートの処理を前記ステート実行回路に連続実行させる制御を行うデータ転送制御装置に関係する。
【０００９】
本発明によればコマンドレジスタにステート遷移実行コマンドが設定される。そしてコマンドレジスタに個別ステート遷移実行コマンドが設定された場合には、第Ｋのステートの処理が個別的に実行される。一方、連続ステート遷移実行コマンドが設定された場合には、第Ｌのステートから第Ｍのステートに至る複数ステートの処理が連続実行される。このようにすれば、処理部（ファームウェア）等によりステート遷移実行コマンドをコマンドレジスタに設定するだけで、各ステート処理が自動的に実行されるようになるため、効率的なデータ転送制御を実現できる。また処理部等が複数の個別ステート遷移実行コマンドを設定しなくても、連続ステート遷移実行コマンドを利用することで、複数のステート処理を自動的に連続実行できるため、処理部等の処理負荷を軽減できる。
【００１０】
また本発明では、前記ステート実行回路は、前記第１〜第Ｎのステートの処理を実行する第１〜第Ｎのステートシーケンサを含み、前記制御回路は、前記個別ステート遷移実行コマンドが前記コマンドレジスタに設定された場合には、前記第Ｋのステートの処理を実行する第Ｋのステートシーケンサに対して、ステート処理実行の起動信号を出力し、前記連続ステート遷移実行コマンドが前記コマンドレジスタに設定された場合には、前記第Ｌ〜第Ｍのステートの処理を実行する第Ｌ〜第Ｍのステートシーケンサの各ステートシーケンサに対して、ステート処理実行の起動信号を順次出力し、各ステートシーケンサからステート処理実行の完了信号を受けるようにしてもよい。
【００１１】
このようにすれば、各ステート処理を独立して実行できる各ステートシーケンサを用いて、個別ステート遷移によるステート処理を実現できる。また起動信号や完了信号を用いて、連続ステート遷移によるステート処理も実現できるため、個別ステート遷移によるステート処理と連続ステート遷移によるステート処理の両立が容易になる。
【００１２】
また本発明では、前記コマンドレジスタに対してステート遷移実行コマンドを設定する処理部に対する割り込み信号を生成する割り込み信号生成回路を含み、前記割り込み信号生成回路は、前記各ステートシーケンサから前記完了信号を受け、前記完了信号に基づいて前記割り込み信号を生成するようにしてもよい。
【００１３】
こようにすれば、個別ステート遷移によるステート処理時には、各ステート処理の完了を割り込み信号を用いて処理部に通知できる。一方、連続ステート遷移によるステート処理時には、制御回路がこの割り込み信号を用いて、完了したステート処理の次のステート処理を起動できるようになるため、割り込み信号の有効利用を図れる。
【００１４】
また本発明では、前記連続ステート遷移実行コマンドは、ウェイトコネクトステートから開始してリセットステートを経てオペレーショナルステートに至るまでステートを連続的に遷移させるコマンド、及びリセットステートから開始してオペレーショナルステートに至るまでステートを連続的に遷移させるコマンドの少なくとも一方を含むようにしてもよい。
【００１５】
このようにすれば、ウェイトコネクトステート或いはリセットステートから開始して自動的にオペレーショナルステートにステートを遷移させて、データ転送を開始できるようになるため、データ転送制御を更に効率化できる。
【００１６】
また本発明では、前記制御回路は、前記ステート実行回路からリセットステート処理実行の完了信号を受けた場合に、オペレーショナルステート処理実行の起動信号を前記ステート実行回路に出力するようにしてもよい。
【００１７】
このようにすれば、処理部等は、リセットステート処理が完了した後、オペレーショナルステートによるデータ転送が開始するまでの期間の時間管理を行わなくても済むようになるため、その処理負荷を更に軽減できる。
【００１８】
また本発明では、前記連続ステート遷移実行コマンドは、サスペンドステートから開始してレジュームステートを経てオペレーショナルステートに至るまでステートを連続的に遷移させるコマンド、及びレジュームステートから開始してオペレーショナルステートに至るまでステートを連続的に遷移させるコマンドの少なくとも一方を含むようにしてもよい。
【００１９】
このようにすれば、サスペンドステート或いはレジュームステートから開始して自動的にオペレーショナルステートにステートを遷移させて、データ転送を開始できるようになるため、データ転送制御を更に効率化できる。
【００２０】
また本発明では、前記制御回路は、前記ステート実行回路からレジュームステート処理実行の完了信号を受けた場合に、オペレーショナルステート処理実行の起動信号を前記ステート実行回路に出力するようにしてもよい。
【００２１】
このようにすれば、処理部等は、レジュームステート処理が完了した後、オペレーショナルステートによるデータ転送が開始するまでの期間の時間管理を行わなくても済むようになるため、その処理負荷を更に軽減できる。
【００２２】
また本発明は、バスを介したデータ転送のためのデータ転送制御装置であって、データ転送制御装置のステート制御のための第１〜第Ｎのステートの各ステートの処理を実行するステート実行回路と、前記ステート実行回路での各ステートの処理の実行結果に基づいて、データ転送のための制御を行う転送コントローラと、ステート遷移実行コマンドが設定されるコマンドレジスタと、前記コマンドレジスタに設定された前記ステート遷移実行コマンドをデコードし、デコード結果に基づいて前記ステート実行回路を制御する制御回路とを含み、前記制御回路は、データ転送制御装置のステートを第Ｋのステート（１≦Ｋ≦Ｎ）に遷移させる個別ステート遷移実行コマンドが、前記コマンドレジスタに設定された場合には、前記第Ｋのステートの処理を前記ステート実行回路に実行させる制御を行うデータ転送制御装置に関係する。
【００２３】
本発明によれば、処理部等により個別ステート遷移実行コマンドを設定するだけで、各ステート処理が自動的に実行されるようになるため、効率的なデータ転送制御を実現できる。
【００２４】
また本発明は、バスを介したデータ転送のためのデータ転送制御装置であって、データ転送制御装置のステート制御のための第１〜第Ｎのステートの各ステートの処理を実行するステート実行回路と、前記ステート実行回路での各ステートの処理の実行結果に基づいて、データ転送のための制御を行う転送コントローラと、ステート遷移実行コマンドが設定されるコマンドレジスタと、前記コマンドレジスタに設定された前記ステート遷移実行コマンドをデコードし、デコード結果に基づいて前記ステート実行回路を制御する制御回路とを含み、前記制御回路は、第Ｌのステート（１≦Ｌ≦Ｎ）から第Ｍのステート（１≦Ｍ≦Ｎ）に至るまでデータ転送制御装置のステートを連続的に遷移させる連続ステート遷移実行コマンドが、前記コマンドレジスタに設定された場合には、前記第Ｌのステートから前記第Ｍのステートに至る複数ステートの処理を前記ステート実行回路に連続実行させる制御を行うデータ転送制御装置に関係する。
【００２５】
本発明によれば、処理部等により連続ステート遷移実行コマンドを設定するだけで、複数のステート処理が自動的に連続実行されるようになるため、効率的なデータ転送制御を実現できる。
【００２６】
また本発明では、バスのデータラインのラインステートを検出するラインステート検出回路を含み、前記ステート実行回路は、前記ラインステート検出回路に含まれる検出回路のうち、検出動作が必要な検出回路をイネーブルにし、検出動作が不要な検出回路をディスエーブルにする信号を、前記ラインステート検出回路に対して出力するようにしてもよい。
【００２７】
このようにすれば、各ステートにおいて適正なタイミングで各検出回路を動作させることが可能になり、誤動作等を防止できる。
【００２８】
また本発明では、前記転送コントローラは、トランザクション処理を実行するトランザクション実行回路を含み、前記トランザクション実行回路は、前記ステート実行回路からトランザクション実行起動信号を受け、前記トランザクション実行起動信号に基づいてトランザクション処理の実行を開始するようにしてもよい。
【００２９】
このようにすれば、トランザクション実行回路からの起動信号に基づいて、データ転送のトランザクションを自動実行できるようになり、データ転送制御を効率化できる。
【００３０】
また本発明では、バスのデータラインのラインステートを制御するラインステート制御回路を含み、前記ラインステート制御回路は、前記ステート実行回路からラインステート制御信号を受け、前記ラインステート制御信号に基づいてラインステートを制御するようにしてもよい。
【００３１】
このようにすれば、処理部等は、バスのラインステートについては詳細に制御する必要がなくなるため、その処理負荷を更に軽減できる。
【００３２】
また本発明では、ＵＳＢ（Universal serial Bus）を介したデータ転送を行うようにしてもよい。
【００３３】
また本発明は、上記のいずれかに記載のデータ転送制御装置と、前記データ転送制御装置により転送されるデータを記憶するストレージとを含む電子機器に関係する。
【発明を実施するための最良の形態】
【００３４】
以下、本発明の実施形態について詳細に説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが本発明の解決手段として必須であるとは限らない。
【００３５】
１．ＵＳＢ
まずＵＳＢのデータ転送について説明する。ＵＳＢでは、図１（Ａ）に示すようなエンドポイント（ＥＰ０〜１５）がデバイス（ＵＳＢデバイス）側に用意される。ホストは、デバイスのファンクションアドレスとエンドポイント番号を指定することで、所望のエンドポイントへのデータ送信や、所望のエンドポイントからのデータ受信を自由に行うことができる。
【００３６】
ＵＳＢでは、転送（transfer）のタイプとして、コントロール転送、アイソクロナス転送、インタラプト転送、バルク転送などが定義されている。そして、これらの各転送（transfer）は一連のトランザクションにより構成される。また各トランザクションは図１（Ｂ）に示すように、トークンパケットと、オプショナルなデータパケットと、オプショナルなハンドシェークパケットにより構成される。
【００３７】
ＯＵＴトランザクション（ホストがデバイスにデータを出力するトランザクション）では、図１（Ｃ）に示すように、まず、ホストがデバイスに対してＯＵＴトークン（トークンパケット）を発行する。次に、ホストはデバイスに対してＯＵＴデータ（データパケット）を送信する。そして、デバイスは、ＯＵＴデータの受信に成功すれば、ホストに対してＡＣＫ（ハンドシェークパケット）を送信する。このようにすることで、ホストがデバイスにデータを出力する処理が実現される。
【００３８】
一方、ＩＮトランザクション（ホストがデバイスからデータを入力するトランザクション）では、図１（Ｄ）に示すように、まず、ホストがデバイスに対してＩＮトークンを発行する。そしてＩＮトークンを受信したデバイスは、ホストに対してＩＮデータを送信する。そしてホストは、ＩＮデータの受信に成功すると、デバイスに対してＡＣＫを送信する。このようにすることで、ホストがデバイスからデータを入力する処理が実現される。
【００３９】
なお図１（Ｃ）、（Ｄ）において、”Ｄ←Ｈ”は、ホストからデバイスに対して情報が転送されることを意味し、”Ｄ→Ｈ”は、デバイスからホストに対して情報が転送されることを意味する。
【００４０】
２．ステート遷移
図２に本実施形態のデータ転送制御装置のステート遷移図を示す。図２においてアイドルステートは、ＵＳＢ（広義にはバス、シリアルバス）のホスト機能を初期化するステートであり、ホスト機能をイネーブルした時のデフォルトのステートである。アイドルステート以外のステートにおいて、ＶＢＵＳ異常（VBUS_Err）が検出された場合には、データ転送制御装置のステートをアイドルステートに遷移させる必要がある。
【００４１】
ウェイトコネクトステートは、ダウンストリームポートにデバイスが接続されるのを待つステートである。アイドルステートにおいてトランザクションを行う必要が生じた場合や、各ステートにおいてデバイスの切断を検出した場合などには、一旦、ステートをウェイトコネクトステートに遷移させ、相手デバイスの接続を待つ。
【００４２】
リセットステートは、ダウンストリームポートに対してＵＳＢリセットを発行するステートである。ウェイトコネクトステートにおいて接続検出ステート（DetectCon）が発行された場合には、リセットステートに遷移し、ＵＳＢリセットが発行される。また上位層から要求があった場合には、ＵＳＢのいかなるステート（オペレーショナル、サスペンド、レジューム）からでも、リセットステートに遷移することができる。
【００４３】
オペレーショナルステートは、ＵＳＢのトランザクションを実行するステートである。リセットステート又はレジュームステートの完了後に、ステートをオペレーショナルステートに遷移させて、トランザクションを実行する。
【００４４】
サスペンドステートは、ＵＳＢをサスペンド状態に設定するステートである。ＵＳＢのバスの使用を停止させる時に、オペレーショナルステートからサスペンドステートに遷移させる。
【００４５】
レジュームステートは、ダウンストリームポートにＵＳＢのレジューム信号を発行するステートである。ＵＳＢに接続されるデバイスをサスペンドステートから復帰させるために、サスペンドステートからレジュームステートに遷移させる。
【００４６】
図１（Ａ）〜図１（Ｄ）で説明したように、ＵＳＢにおいては、ホスト側がデータ転送の主導権を有している。このため、図２のステート制御はホスト側が行う必要がある。
【００４７】
この場合に、ＰＣに組み込まれるＣＰＵの処理能力は高い。従って、図２のステート制御の全てをファームウェア（ソフトウェア）処理により実現することも可能である。ところが、携帯電話機や携帯型オーディオ機器などに組み込まれるＣＰＵの処理能力は一般的に低い。従って、図２のステート制御の全てをファームウェア処理により実現しようとすると、ＣＰＵの処理負荷が増加し、データ転送の高速化の妨げになったり、機器全体のパフォーマンスを低下させる。一方、図２のステート制御の全てをハードウェア回路により実現しようとすると、回路の大規模化、設計の繁雑化などの問題を招く。
【００４８】
そこで本実施形態では、次のようにファームウェアとハードウェア回路で役割分担を行って、図２のステート制御を実現している。即ち各ステートをコード化したステート遷移実行コマンドを、ファームウェア（処理部）がデータ転送制御装置のハードウェア回路（レジスタ）に対して設定（発行）する。するとハードウェア回路が、各ステートの処理を自動的に実行する。そしてハードウェア回路は、実行が完了すると、実行の完了をファームウェアに対して割り込みにより通知する。
【００４９】
例えば図２のステート制御の全てをファームウェア処理により実現しようとすると、ファームウェアがステート制御のための細かな設定を行う必要があり、ファームウェアの処理負荷が過大になる。また例えば１ｍｓｅｃ未満の時間制約がある遷移や制御を、リアルタイムＯＳ上で動作するファームウェアの処理により実現するのは困難である。
【００５０】
これに対してステート遷移実行コマンドを用いる本実施形態によれば、各ステートの細かな設定や時間制約をファームウェアが意識する必要がなくなる。このためファームウェア（ＣＰＵ）の処理負荷を軽減でき、効率的なステート制御を実現できる。
【００５１】
３．個別ステート遷移
本実施形態のステート遷移実行コマンドは、データ転送制御装置（転送コントローラ）のステートを、そのステート遷移実行コマンドにより指定されるステートに遷移させるコマンドである。本実施形態では、このステート遷移実行コマンドとして、第Ｋのステート（１≦Ｋ≦Ｎ）にデータ転送制御装置のステートを遷移させる個別ステート遷移実行コマンドを用意している。この個別ステート遷移実行コマンドでは、第Ｋのステート以外のステートから第Ｋのステートにデータ転送制御装置のステートを遷移させる。
【００５２】
例えば図２において、ファームウェアがGoIDLEという個別ステート遷移実行コマンドを発行すると、データ転送制御装置のステートがアイドルステート（広義には第Ｋのステート）に遷移する。アイドルステートに遷移すると、データ転送制御装置のハードウェア回路は、ホスト（ホストコントローラ）のトランザクション実行機能を即時に停止する。またポートをＵＳＢのＦＳ（Full Speed）モードに設定して、ノンドライブ状態に設定する。またＶＢＵＳ（VBUSEN_A）をオフにする。更に接続検出、切断検出、リモートウェークアップ検出、デバイスチャープ検出の全検出機能をオフ（ディスエーブル）にする。
【００５３】
またファームウェアがGoWAIT_CONNECTという個別ステート遷移実行コマンドを発行すると、ウェイトコネクトステートに遷移する。ウェイトコネクトステートに遷移すると、ハードウェア回路は、ホストのトランザクション実行機能を即時に停止する。またポートをＵＳＢのＦＳモードに設定して、パワーダウン状態に設定する。またＶＢＵＳ（VBUSEN_A）をオンにする。更に接続検出、切断検出、リモートウェークアップ検出、デバイスチャープ検出の全検出機能をオフにする。その後、バスパワーデバイスの内部電源安定時間を待って、接続検出機能を自動的にオン（イネーブル）にして、デバイスの接続を待つ。そして接続が検出されると、接続検出機能を自動的にオフにし、切断検出機能を自動的にオンにする。その後、所定期間の間、切断が検出されない場合には、ファームウェアに対して接続検出ステータス（DetectCon）を発行する。一方、切断が検出された場合には、ファームウェアに対して切断検出ステータス（DetectDiscon）を発行する。
【００５４】
またファームウェアがGoRESETという個別ステート遷移実行コマンドを発行すると、リセットステートに遷移する。リセットステートに遷移すると、ハードウェア回路は、ホストのトランザクション実行機能を即時に停止する。またポートをＨＳ（High Speed）モードに設定して、ノーマルオペレーション状態に設定する。また接続検出、切断検出、リモートウェークアップ検出の機能をオフにし、デバイスチャープ検出機能をオンにして、デバイスからのチャープを検出する。そして正常なデバイスからのチャープが検出された場合には、デバイスからのチャープ完了の後、ホストのチャープであるＨＳのＫ、Ｊを連続して送出する。そして送出が完了すると、ファームウェアに対してリセット完了ステータス（ResetCmp）を発行する。一方、異常なデバイスからのチャープが検出された場合には、規定時間が過ぎた時点で、ファームウェアに対してデバイスチャープの異常検出ステータス（DetectDevChirpNG）を発行する。
【００５５】
またファームウェアがGoOPERATIONALという個別ステート遷移実行コマンドを発行すると、オペレーショナルステートに遷移する。オペレーショナルステートに遷移すると、ハードウェア回路は、ポートをノーマルオペレーション状態に設定する。またＵＳＢホストのトランザクション実行機能と切断検出機能をオンにする。
【００５６】
またファームウェアがGoSUPENDという個別ステート遷移実行コマンドを発行すると、サスペンドステートに遷移する。サスペンドステートに遷移すると、ハードウェア回路は、切断検出、リモートウェークアップ検出の機能をオフにする。また現在のトランザクションの完了を待って、ＵＳＢホストのトランザクション実行機能を停止する。またポートがＨＳモードであった場合にはＦＳモードに設定し、パワーダウン状態に設定する。次に、切断及びリモートウェークアップ検出ディスエーブル期間の完了後に、切断検出機能をオンにする。またリモートウェークアップ受付許可（RmtWkupDetEnb）がイネーブルの場合には、リモートウェークアップ検出機能をオンにする。そしてファームウェアに対してサスペンド遷移完了ステータス（SuspendCmp）を発行する。更に、リモートウェークアップ受付許可がイネーブルであり、リモートウェークアップ信号を検出した場合には、ファームウェアに対してリモートウェークアップ検出ステータス（DetectRmtWkup）を発行する。
【００５７】
またファームウェアがGoRESUMEという個別ステート遷移実行コマンドを発行すると、レジュームステートに遷移する。レジュームステートに遷移すると、ハードウェア回路は、切断検出及びリモートウェークアップ検出の機能をオフにして、規定時間のレジューム信号（ｋ）を発行する。そして、レジューム信号の発行完了時に、ポートを、サスペンドステートに遷移する前のモード設定に戻し、ノーマルオペレーション状態に設定する。またファームウェアに対してレジューム完了ステータス（ResumeCmp）を発行する。
【００５８】
以上のように本実施形態によれば、ファームウェアはステート遷移実行コマンドを発行するだけで、データ転送制御装置のステートを所望のステートに遷移させることができる。そしてステート遷移実行コマンドが発行されると、データ転送制御装置のハードウェア回路が、ラインステートの制御や検出などの処理を自動的に実行する。そして実行が完了すると、割り込みを発行して、実行の完了と各種ステータスをファームウェアに通知する。このようにすれば、現在のステートをどのステートに遷移させるかを決める処理等については、ファームウェアが、各種ステータスに応じたステート遷移実行コマンドを発行することで、インテリジェントに制御できる。一方、ラインステートの制御や検出などの時間的な制約がある処理については、ハードウェア回路が行う。従って、ファームウェアの処理負荷を軽減でき、効率的なステート制御を実現できる。
【００５９】
４．連続ステート遷移
本実施形態では、ステート遷移実行コマンドとして、第Ｌのステート（１≦Ｌ≦Ｎ）から第Ｍのステート（１≦Ｍ≦Ｎ）に至るまで、データ転送制御装置のステートを連続的に遷移させる連続ステート遷移実行コマンドを用意している。この連続ステート遷移実行コマンドでは、第Ｌ、第Ｍのステート以外のステートから第Ｌのステートにデータ転送制御装置のステートを遷移させ、その後、第Ｌのステートから第Ｍのステートに至るまでデータ転送制御装置のステートを自動的に遷移させる。
【００６０】
ファームウェアが図３のＡ１に示すGoWAIT_CONNECTtoOPという連続ステート遷移実行コマンドを発行すると、データ転送制御装置のステートがウェイトコネクトステート（広義には第Ｌのステート）に遷移する。するとハードウェア回路は、上述の個別ステート遷移で説明したウェイトコネクトステートの処理（ラインステート制御、検出）を実行する。そしてウェイトコネクトステートの処理の実行が完了すると、リセットステートに自動的に遷移する。
【００６１】
即ち個別ステート遷移では、ウェイトコネクトステート処理の実行が完了すると、ファームウェアに対して割り込みが通知され、この通知を受けたファームウェアが次のGoRESETの個別ステート遷移実行コマンドを発行する。これに対して、連続ステート遷移では、ファームウェアが次のGoRESETの個別ステート遷移実行コマンドを発行しなくても、ハードウェア回路により自動的にリセットステートに遷移する。
【００６２】
リセットステートに遷移すると、ハードウェア回路は、上述の個別ステート遷移で説明したリセットステートの処理を実行する。そしてリセットステートの処理の実行が完了すると、オペレーショナルステート（広義には第Ｍのステート）に自動的に遷移する。即ちファームウェアが、次のGoOPERATIONALの個別ステート遷移実行コマンドを発行しなくても、ハードウェア回路により自動的にオペレーショナルステートに遷移する。
【００６３】
同様に、ファームウェアが図３のＡ２に示すようにGoRESETtoOPという連続ステート遷移実行コマンドを発行すると、リセットステート（第Ｌのステート）に遷移し、リセットステートの処理が完了すると、オペレーショナルステート（第Ｍのステート）に自動的に遷移する。またファームウェアが図３のＡ３に示すようにGoSUSPENDtoOPという連続ステート遷移実行コマンドを発行すると、サスペンドステート（第Ｌのステート）に遷移する。そしてサスペンドステートの処理が完了するとレジュームステートに自動的に遷移し、レジュームステートの処理が完了すると、オペレーショナルステート（第Ｍのステート）に自動的に遷移する。またファームウェアが図３のＡ４に示すようにGoRESUMEtoOPという連続ステート遷移実行コマンドを発行すると、レジュームステート（第Ｌのステート）に遷移し、レジュームステートの処理が完了すると、オペレーショナルステート（第Ｍのステート）に自動的に遷移する。
【００６４】
個別ステート遷移手法では、ファームウェアは例えばGoWAIT_CONNECT、GoRESET、GoOPERATIONALというように複数の個別ステート遷移実行コマンドを発行する必要があり、ファームウェアの処理負荷が重くなる。これに対して連続ステート遷移手法では、ファームウェアはGoWAIT_CONNECTtoOPというような連続ステート遷移実行コマンドを発行するだけで済むため、ファームウェアの処理負荷を軽減でき、ステート制御の更なる効率化を図れる。なお本実施形態では、個別ステート遷移手法と連続ステート遷移手法のいずれか一方の手法のみを採用する構成としてもよい。
【００６５】
５．データ転送制御装置の構成
図４に本実施形態のデータ転送制御装置の構成例を示す。このデータ転送制御装置は、ステートコントローラ７２、ホストコントローラ５０（広義には転送コントローラ）、ラインステート制御回路２２、ＶＢＵＳ制御回路２４を含む。なお、これらの一部を省略する構成としてもよい。
【００６６】
ステートコントローラ７２は、データ転送制御装置のステート（ホストステート、バスステート）を制御するコントローラである。このステートコントローラ７２は、コマンドレジスタ２１０、制御回路２２０、ステート実行回路２３０（ステートシーケンサ）、タイマ２４０、ラインステート検出回路２５０、ＶＢＵＳ異常検出回路２５６、割り込み信号生成回路２６０を含む。なおこれらの一部を省略する構成としてもよい。
【００６７】
コマンドレジスタ２１０（制御レジスタ）には、ステート遷移実行コマンドが設定される。具体的にはファームウェア（処理部）によりステート遷移実行コマンドのコードがコマンドレジスタ２１０に書き込まれる。
【００６８】
制御回路２２０（オートモード制御回路）は、コマンドレジスタ２１０に設定されたステート遷移実行コマンド（個別ステート遷移実行コマンド、連続ステート遷移実行コマンド）をデコードし、デコード結果に基づきステート実行回路２３０を制御する。具体的には制御回路２２０は、第Ｋのステートへの個別ステート遷移実行コマンドがコマンドレジスタ２１０に設定された場合には、第Ｋのステートの処理をステート実行回路２３０に実行させる。例えば図２のリセットステートへの個別ステート遷移実行コマンドGoRESETが設定されると、リセットステートの処理（シーケンス制御）をステート実行回路２３０（リセットステートシーケンサ２３３）に実行させる。
【００６９】
また制御回路２２０は、第Ｌのステートから第Ｍのステートに至る連続ステート遷移実行コマンドがコマンドレジスタ２１０に設定された場合には、第Ｌのステートから第Ｍのステートに至る複数ステートの処理を、ステート実行回路２３０に連続実行（自動実行）させる制御を行う。例えば図３のＡ１に示すように連続ステート遷移実行コマンドGoWAIT_CONNECTtoOPが設定されると、ウェイトコネクトからリセットを経てオペレーショナルに至るステート処理を、ステート実行回路２３０（ステートシーケンサ２３２、２３３、２３４）に連続実行させる。
【００７０】
制御回路２２０は、ステートコマンドデコーダ２２２、シーケンサ２２４、ステートモニタレジスタ２２６を含む。ステートコマンドデコーダ２２２は、コマンドレジスタ２１０に設定されたステート遷移実行コマンドのデコード処理を行う。シーケンサ２２４は、ステート遷移実行コマンドのデコード結果や、ステート実行回路２３０からの完了信号（WaitConnectCmp、ResetCmp等）や、割り込み信号生成回路２６０（ラインステート検出回路２５０）からの検出信号（DetectCon、DetectDiscon等）などに基づいて、ステート遷移実行コマンドの実行に必要なシーケンス制御を行う。ステートモニタレジスタ２２６は、現在のステート（アイドル、ウェイトコネクト等）をファームウェアに示す。
【００７１】
ステート実行回路２３０は、データ転送制御装置のステート制御のための第１〜第Ｎのステート（アイドル、ウェイトコネクト、リセット、オペレーショナル、サスペンド、レジュームのステート）の各ステートの処理を実行する。具体的にはステート実行回路２３０は、個別ステート遷移実行コマンドが設定された場合には、制御回路２２０からの起動信号（IdleAct、WaitConnectAct等）や割り込み信号生成回路２６０（ラインステート検出回路２５０）からの検出信号（DetectCon、DetectDiscon等）に基づいて、ステートの処理を実行する。また連続ステート遷移実行コマンドが設定された場合には、上述の起動信号や検出信号に基づいて、複数ステートの処理を連続実行（自動実行）する。
【００７２】
なおステート実行回路２３０は、ステート処理実行のために時間カウント処理のためにタイマ１４０を使用する。即ちタイマ起動信号TimerActを用いてタイマ１４０を起動し、タイマ完了信号TimerCmpをタイマ１４０から受けることで、待ち時間をカウントする。
【００７３】
またステート実行回路２３０は、ラインステート検出回路２５０に含まれる検出回路（２５１、２５２、２５３、２５４）のうち、検出動作が必要な検出回路（検出機能）をイネーブルにし、検出動作が不要な検出回路をディスエーブルにする信号DetEnb、DetDisEnbを、ラインステート検出回路２５０に対して出力する。このようにすることで、各ステートにおいて適正なタイミング（規格で決まるタイミング）で、各検出回路を動作させることが可能になり、誤動作等を防止できる。
【００７４】
ステート実行回路２３０は、第１〜第Ｎのステートの処理を実行する第１〜第Ｎのステートシーケンサを含む。具体的には、アイドル、ウェイトコネクト、リセット、オペレーショナル、サスペンド、レジュームのステートシーケンサ２３１、２３２、２３３、２３４、２３５、２３６を含む。そして制御回路２２０は、個別ステート遷移実行コマンドが設定された場合には、第Ｋのステートの処理を実行する第Ｋのステートシーケンサに対して、ステート処理実行の起動信号を出力する。例えばリセットステートへの個別ステート遷移実行コマンドが設定された場合には、リセットステートシーケンサ２３３に対して起動信号ResetActを出力する。
【００７５】
また制御回路２２０は、連続ステート遷移実行コマンドが設定された場合には、第Ｌ〜第Ｍのステートの処理を実行する第Ｌ〜第Ｍのステートシーケンサの各ステートシーケンサに対して、ステート処理実行の起動信号を順次出力する。そして各ステートシーケンサからステート処理実行の完了信号を受ける。例えば連続ステート遷移実行コマンドGoWAIT_CONNECTtoOPが設定された場合には、ウェイトコネクト、リセット、オペレーショナルのステートシーケンサ２３２、２３３、２３４に対して起動信号WaitConnectAct、ResetAct、OperationalActを順次出力する。そしてステートシーケンサ２３２、２３３から完了信号WaitConnectCmp、ResetCmpを順次受ける。
【００７６】
ステート実行回路２３０が含むアイドルステートシーケンサ２３１は、起動信号IdleActがアサートされると処理を開始する。そしてトランシーバセレクト、ターミナルセレクト、ポートスピードなどのレジスタの初期化処理を行う。またウェイトコネクトステートシーケンサ２３２は、起動信号WaitConnectActがアサートされると処理を開始する。そしてＶＢＵＳイネーブル信号VBUSEN_Aをアサートしたり、接続検出、切断検出をディスエーブル或いはイネーブルにしたり、デバイスチャープ検出、リモートウェークアップ検出をディスエーブルにするなどのステート処理（シーケンス制御）を実行する。そして実行が完了すると完了信号WaitConnectCmpをアサートする。
【００７７】
リセットステートシーケンサ２３３は、起動信号ResetActがアサートされると処理を開始する。そしてＵＳＢのリセット発行やホストチャープ発行のためのラインステート制御信号をラインステート制御回路２２に出力したり、接続検出、切断検出、リモートウェークアップ検出をディスエーブルにしたり、デバイスチャープをイネーブルにするなどのステート処理を実行する。そして実行が完了すると完了信号ResetCmpをアサートする。オペレーショナルステートシーケンサ２３４は、起動信号OperationalActがアサートされると処理を開始する。そしてトランザクション実行起動信号TransactionActをアサートして、ホストコントローラ５０のトランザクション実行回路５２にトランザクション処理の実行を開始させる。
【００７８】
サスペンドステートシーケンサ２３５は、起動信号SuspendActがアサートされると処理を開始する。そして切断検出、リモートウェークアップ検出をディスエーブル或いはイネーブルにするなどのステート処理を実行する。そして実行が完了すると完了信号SuspendCmpをアサートする。またレジュームステートシーケンサ２３６は、起動信号ResumeActがアサートされると処理を開始する。そして切断検出、リモートウェークアップ検出をディスエーブルにしたり、レジューム信号発行のためのラインステート制御信号をラインステート制御回路２２に出力するなどのステート処理を実行する。そして実行が完了すると完了信号ResumeCmpをアサートする。
【００７９】
以上のように本実施形態では、各ステート処理を独立に実行できるステートシーケンサ２３１〜２３６を設けているため、個別ステート遷移と連続ステート遷移をステートシーケンサ２３１〜２３６への起動信号等の制御だけで実現できる。即ちアサートする起動信号を選択することで個別ステート遷移を実現でき、アサートする起動信号の順番を制御することで連続ステート遷移を実現できるため、回路や処理の簡素化を図れる。
【００８０】
ラインステート検出回路２５０は、データラインＤＰ、ＤＭのラインステートの検出処理を行う。具体的にはラインステート制御回路２２からの信号LineStateを受け、ラインステートを検出する。このラインステート検出回路２５０は、デバイスの接続を検出する接続検出回路２５１と、デバイスの切断を検出する切断検出回路２５２と、デバイスからのチャープ送出を検出するデバイスチャープ検出回路２５３と、デバイスからのリモートウェークアップ信号を検出するリモートウェークアップ検出回路２５４を含む。ここで信号LineStateは、データラインＤＰ、ＤＭがＳＥ０、Ｊ、Ｋのいずれの状態なのかを示す２ビットの信号である。検出回路２５１〜２５４は、信号LineStateをトリガとして時間カウント処理を行い、接続、切断、デバイスチャープ、リモートウェークアップの検出処理を行う。そして検出信号DetectCon、DetectDiscon、DetectDevChirpOK、DetectDevChirpNG、DetectRmtWkupを割り込み信号生成回路２６０に出力する。なお検出回路２５１〜２５４は、ステート実行回路２３０からの信号DetEnb、DetDisEnbに基づいて、その検出機能がオン或いはオフにされる。
【００８１】
ＶＢＵＳ異常検出回路２５６は、信号VBUS_Stateを受けて電源ラインＶＢＵＳの異常を検出し、検出信号VBUS_Errを出力する。
【００８２】
割り込み信号生成回路２６０は、コマンドレジスタ２１０に対してステート遷移実行コマンドを設定するファームウェア（処理部）に対して、割り込み信号Interruptを生成して出力する回路である。この割り込み信号生成回路２６０は、割り込み要因のステータスが設定される割り込みステータスレジスタ２６２を含む。
【００８３】
そして本実施形態では割り込み信号生成回路２６０が、ステートシーケンサ２３２、２３３、２３５、２３６から完了信号WaitConnectCmp、ResetCmp、SuspendCmp、ResetCmpを受け、これらの完了信号に基づいて割り込み信号Interruptを生成する。このようにすれば、例えば個別ステート遷移の場合には、これらの完了信号WaitConnectCmp〜ResetCmpに基づいて生成された割り込み信号Interruptを用いて、各ステート処理の完了をファームウェアに通知できる。そして次の個別ステート遷移実行コマンドの発行をファームウェアに促すことが可能になる。一方、連続ステート遷移の場合には、これらの完了信号WaitConnectCmp〜ResetCmpは制御回路２２０に出力される。そして制御回路２２０は、これらの完了信号WaitConnectCmp〜ResetCmpに基づいて、次のステート処理を起動する信号を生成できるようになり、ファームウェアに代わってステート遷移を制御できるようになる。
【００８４】
ホストコントローラ５０（転送コントローラ）は、ステート実行回路２３０での各ステートの処理の実行結果に基づいて、データ転送のための制御を行う。このホストコントローラ５０はトランザクション実行回路５２を含む。そしてトランザクション実行回路５２は、ステートがオペレーショナルステートに遷移してオペレーショナルステートシーケンサ２３４が起動信号TransactionActをアサートすると、トランザクション処理の実行を開始する。具体的にはフレームタイマ５６からのＳＯＦタイミング信号SOFTimingに基づいて、ＳＯＦ生成回路５８がＳＯＦを生成する。またパケット生成＆解析回路５４が、送信データを含む送信パケットの生成処理や、受信データを含む受信パケットの解析処理などを行う。
【００８５】
ラインステート制御回路２２は、データラインＤＰ、ＤＭのラインステートを制御する。具体的にはラインステート制御回路２２は、ステート実行回路２３０からラインステート制御信号を受け、このラインステート制御信号に基づいてラインステートを制御する。ここでラインステート制御信号は、リセット発行やホストチャープ発行やレジューム発行を指示する信号である。例えばラインステート制御回路２２は、リセット発行やホストチャープ発行を指示するラインステート制御信号をリセットステートシーケンサ２３３から受けると、リセット信号やホストチャープ信号をＵＳＢに出力するためのラインステート制御を行う。またラインステート制御回路２２は、レジューム発行を指示するラインステート制御信号をレジュームステートシーケンサ２３６から受けると、レジューム信号をＵＳＢに出力するためのラインステート制御を行う。
【００８６】
ＶＢＵＳ（電源ライン）制御回路２４は、ＶＢＵＳイネーブル信号VBUSEN_Aを受け、ＶＢＵＳラインの給電制御を行う。またＶＢＵＳ状態信号VBUS_StateをＶＢＵＳ異常検出回路２５６に出力する。
【００８７】
図５に本実施形態のデータ転送制御装置の詳細な構成例を示す。このデータ転送制御装置１２０は、トランシーバ１０、転送コントローラ４０、レジスタ部８０、バッファコントローラ９０、データバッファ１００、ストレージＩ／Ｆ（インターフェース）コントローラ１１０、ＣＰＵＩ／Ｆコントローラ１１２、ＤＭＡ（Direct Memory Access）コントローラ１１４を含む。なおこれらの一部を省略する構成としてもよく、例えばトランシーバ１０やデータバッファ１００などを含まない構成としてもよい。或いはＣＰＵ１４０（処理部）を含む構成としてもよい。
【００８８】
トランシーバ１０（デュアルトランシーバ）は、差動信号（ＤＰ、ＤＭ）を用いてＵＳＢ（広義にはバス或いはシリアルバス）のデータを送受信するための回路であり、ホストトランシーバ２０、ラインステート制御回路２２、デバイストランシーバ３０を含む。
【００８９】
ホストトランシーバ２０は、アナログフロントエンド回路（物理層回路）及び高速ロジック回路を有し、ＵＳＢのＨＳモード（４８０Ｍｂｐｓ）、ＦＳモード（１２Ｍｂｐｓ）、ＬＳモード（１．５Ｍｂｐｓ）をサポートする。
【００９０】
デバイストランシーバ３０は、アナログフロントエンド回路（物理層回路）及び高速ロジック回路を有し、ＵＳＢのＨＳモード、ＦＳモードをサポートする。このデバイストランシーバ３０としてはＵＴＭＩ（USB2.0 Transceiver Macrocell Interface）仕様に準拠した回路を用いることができる。
【００９１】
転送コントローラ４０は、ＵＳＢを介したデータ転送を制御するためのコントローラであり、トランザクション層やリンク層などのデータ転送制御を行う。この転送コントローラ４０は、ホストコントローラ５０、デバイスコントローラ６０、ポートセレクタ７０、ステートコントローラ７２を含む。なおこれらの一部を省略する構成としてもよい。
【００９２】
ホストコントローラ５０（ホストSerial Interface Engine）は、ホストモード時のデータ転送を制御する。具体的にはホストコントローラ５０は、トランザクションのスケジューリング（発行）やトランザクションの管理やパケットの生成＆解析などを行う。
【００９３】
デバイスコントローラ６０（デバイスSerial Interface Engine）は、デバイスモード時のデータ転送を制御する。具体的にはデバイスコントローラ６０は、トランザクションの管理やパケットの生成＆解析などを行う。
【００９４】
ポートセレクタ７０は、ホストモードとデバイスモードのいずれかを選択して有効にするためのセレクタである。即ち図５のデータ転送制御装置１２０は、アップストリームポートＵＰＰＴ（広義には第１のポート）とダウンストリームポートＤＷＰＴ（広義には第２のポート）の両方を備えている。そしてレジスタ等の設定によりホストモードが選択されると、ポートセレクタ７０はホストコントローラ５０、ホストトランシーバ２０を選択（イネーブル）する。そしてホストコントローラ５０、ホストトランシーバ２０により、ダウンストリームポートＤＷＰＴに接続されたデバイス（他の電子機器）との間でのデータの送受信が実現される。
【００９５】
一方、レジスタ等の設定によりデバイスモードが選択されると、ポートセレクタ７０はデバイスコントローラ６０、デバイストランシーバ３０を選択（イネーブル）する。そしてデバイスコントローラ６０、デバイストランシーバ３０により、アップストリームポートＵＰＰＴに接続されたホスト（他の電子機器）との間でのデータの送受信が実現される。
【００９６】
レジスタ部８０は、チャネル情報レジスタ８２、ステート管理サポートレジスタ８４、ステータスレジスタ８６を含む。これらのレジスタはＲＡＭなどのメモリにより構成してもよいし、フリップフロップなどにより構成してもよい。またレジスタ部８０のレジスタは各回路ブロックに分散して配置することができる。
【００９７】
チャネル情報レジスタ８２には、データバッファ１００に確保されるチャネル領域（複数のチャネル領域）のチャネル情報（各チャネル情報）が設定される。このチャネル情報（転送設定情報）としては、マックスパケットサイズや、ＵＳＢに接続されるデバイスのファンクションアドレス（ＵＳＢアドレス）や、転送速度や、トグルシーケンスビットや、データバッファ１００での各チャネル領域のスタートドレス、エンドアドレスなどがある。ステート管理サポートレジスタ８４は、図２〜図４で説明したステート管理サポート機能に使用されるレジスタである。ステータスレジスタ８６には、データ転送制御装置１２０やデータ転送の各種ステータス情報が表示（indicate）される。
【００９８】
バッファコントローラ９０は、データバッファ１００への領域（チャネル領域、エンドポイント領域等）の確保（allocate）処理や、データバッファ１００へのアクセス制御（ライト、リード制御）を行う。またデータバッファ１００に確保される各領域のポインタ制御、ＦＩＦＯ制御などを行う。
【００９９】
データバッファ１００（ＦＩＦＯ、パケットバッファ）は、ＵＳＢ（シリアルバス）を介して転送されるデータ（送信データ、受信データ）を一時的に格納（バッファリング）するためのバッファである。このデータバッファ１００は、ＲＡＭなどのメモリにより実現できる。
【０１００】
ストレージＩ／Ｆコントローラ１１０は、ＨＤＤなどのマスストレージクラスのストレージ１３０とのＩ／Ｆ（インターフェース）制御を行う。具体的にはＩＤＥ（ＡＴＡ／ＡＴＡＰＩ）のＩ／Ｆ制御を行う。またＣＰＵＩ／Ｆコントローラ１１２は、ＣＰＵ１４０（広義には処理部）とのＩ／Ｆ制御を行う。これによりＣＰＵ１４０によるレジスタアクセスなどが可能になる。ＤＭＡコントローラ１１４は、ＣＰＵＩ／ＦでのＤＭＡ制御を行う。これによりＣＰＵ１４０によるデータバッファ１００へのアクセスが可能になる。
【０１０１】
なお図１６に本実施形態で使用されるレジスタとその機能を示す。ステート遷移実行コマンドレジスタは、GoIDLE等のステート遷移実行コマンドを設定するためのレジスタである。ステート遷移実行キャンセルレジスタは、ステート遷移実行コマンドのキャンセルを行うためのレジスタである。ステートモニタ、ＶＢＵＳステートモニタのレジスタは、各々、現在のステート（アイドル、ウェイトコネクト等）、ＶＢＵＳ状態を示すレジスタである。リモートウェークアップ受付許可レジスタは、リモートウェークアップの受付許可を設定するためのレジスタである。ＶＢＵＳ異常検出ステータス、接続検出ステータス、切断検出ステータス、リモートウェークアップ検出ステータスのレジスタは、各々、ＶＢＵＳ異常の発生、ダウンストリームポートへのデバイスの接続、ダウンストリームポートからのデバイスの切断、デバイスからのリモートウェークアップ信号の検出のステータスを示すためのレジスタである。デバイスチャープ異常検出ステータス、デバイスチャープ正常検出ステータスのレジスタは、各々、デバイスからのチャープ信号が正常或いは異常であったことを示すレジスタである。リセット完了ステータス、サスペンド遷移完了ステータス、レジューム完了ステータスのレジスタは、各々、ＵＳＢリセットの正常完了、サスペンドへの遷移の完了、レジュームの正常完了を示すためのレジスタである。ポートスピードレジスタはダウンストリームポートの動作速度を示すレジスタであり、ラインステートレジスタは、ＵＳＢケーブル上の信号状態を示すレジスタである。トランシーバセレクトレジスタは、ＨＳ／ＦＳ／ＬＳのいずれかのトランシーバを選択して有効にするためのレジスタであり、ターミナル選択レジスターは、ＨＳ／ＦＳ及びＬＳのいずれかのターミナルを選択して有効にするためのレジスタである。オペレーションモードレジスタは、トランシーバのオペレーションモードを設定するためのレジスタである。
【０１０２】
６．個別ステート遷移実行コマンドの詳細
次に個別ステート遷移実行コマンドの詳細について図７〜図１２のタイミング波形図を用いて説明する。図７は個別ステート遷移実行コマンドGoIDLEが発行された場合のタイミング波形図である。ファームウェアによりGoIDLEが設定されると（Ｔ０）、ハードウェア回路（制御回路、アイドルステートシーケンサ）により以下のステート処理が実行される。
【０１０３】
まずホストステートモニタ（HostState[2:0]）がアイドルに設定され、VBUSEN_Aがオフに設定される（Ｔ０）。またトランシーバ選択（XcvrSelect[1:0])とターミナル選択(TermSelect)がFSモードに設定され、オペレーションモード（OpMode[1:0]）がノンドライビング状態に設定される（Ｔ０）。またＵＳＢホストのトランザクション実行機能が即時に停止され、接続検出、切断検出、リモートウェークアップ検出、デバイスチャープ検出の全検出機能がオフに設定される（Ｔ０）。
【０１０４】
図８は個別ステート遷移実行コマンドGoWAIT_CONNECTが発行された場合のタイミング波形図である。なお図８はＦＳデバイスがダウンストリームポートに接続された場合の例であるが、ＨＳデバイスはこの時点ではＦＳデバイスとして認識されている。ファームウェアによりGoWAIT_CONNECTが設定されると（Ｔ０）、ハードウェア回路（制御回路、ウェイトコネクトステートシーケンサ）により以下のステート処理が実行される。
【０１０５】
まずホストステートモニタ（HostState[2:0]）がウェイトコネクトに設定され、VBUSEN_Aがオンに設定される（Ｔ０）。またトランシーバ選択（XcvrSelect[1:0]）とターミナル選択（TermSelect）がFSモードに設定され、オペレーションモード（OpMode[1:0]）がパワーダウン状態に設定される（Ｔ０）。
【０１０６】
そしてデバイス内部電源の安定化のために一定期間待ち、接続検出機能がオンに設定される（Ｔ１）。ＦＳデバイスが接続されると、ラインステート(LineState)に“Ｊ”が現れ（Ｔ２）、“Ｊ”が２．５μｓ以上継続すると、ＦＳデバイスが接続されたと見なされる（Ｔ３）。そしてポートスピード（PortSpeed[1:0]）がＦＳに設定され、接続検出機能がオフに設定され、切断検出機能がオンに設定される（Ｔ３）。そしてデバウンスインターバル期間中に切断が検出されない場合には接続検出ステータス（DetectCon）が発行される（Ｔ４）。
【０１０７】
図９は個別ステート遷移実行コマンドGoRESETが発行された場合のタイミング波形図である。ファームウェアによりGoRESETが設定されると（Ｔ０）、ハードウェア回路（制御回路、リセットステートシーケンサ）により以下のステート処理が実行される。
【０１０８】
まずトランシーバ選択（XcvrSelect[1:0]）とターミナル選択（TermSelect）がHSモードに設定され、オペレーションモード（OpMode[1:0]）がノーマル状態に設定され、デバイスチャープ検出機能がオンに設定される（Ｔ０）。
【０１０９】
ラインステート（LineState[1:0]）に“K”が２．５μｓ以上継続することで、デバイスのチャープが認識される。そしてデバイスのチャープがリセット開始から規定時間以内に終了すると（LineState[1:0]が“ＳＥ０”になると）、デバイスチャープ正常検出ステータス（DetectDevChirpOK）が発行される（Ｔ２）。そしてデバイスチャープ検出機能がオフに設定される（Ｔ２）。
【０１１０】
デバイスのチャープ終了後、ホスト（ハードウェア回路）はチャープＫを出力し始め、その後、ホストはチャープＫとチャープＪを交互に切り替えて出力する（Ｔ３〜Ｔ８）。デバイスはホストのチャープを検出するとＨＳモードに移行し(Ｔ６)、デバイス側のＨＳターミネーションが有効になる（Ｔ７）。そしてホストはチャープ送出を終了する（Ｔ８）。そしてリセットを終了し、リセット完了ステータス（ResetCmp）が発行される（Ｔ９）。
【０１１１】
図１０は個別ステート遷移実行コマンドGoOPERATIONALが発行された場合のタイミング波形図である。ファームウェアによりGoOPERATIONALが設定されると（Ｔ０）、ハードウェア回路（制御回路、オペレーショナルステートシーケンサ）により以下のステート処理が実行される。
【０１１２】
まずホストステートモニタ（HostState）がオペレーショナルに設定され、オペレーションモード（OpMode[1:0]）がノーマル状態に設定される（Ｔ０）。またＵＳＢのトランザクションを実行する状態に設定され、切断検出機能がオンに設定される（Ｔ０）。そしてポートスピード（PortSpeed[1:0]）がＨＳまたはＦＳに設定されている場合には最初のＳＯＦが発行され、ＬＳに設定されている場合には最初のKeepAliveが発行され（Ｔ１）、以降、チャネルの設定に従ってデータ転送が行われる。
【０１１３】
図１１は個別ステート遷移実行コマンドGoSUSPENDが発行された場合のタイミング波形図である。ファームウェアによりGoSUSPENDが設定されると（Ｔ０）、ハードウェア回路（制御回路、サスペンドステートシーケンサ）により以下のステート処理が実行される。なお図１１はＨＳデバイスが接続された場合の例である。
【０１１４】
まず切断検出機能及びリモートウェークアップ検出機能がオフに設定される（Ｔ０）。そして現在実行中のトランザクションの完了を待って、トランシーバ選択（XcvrSelect[1:0]）とターミナル選択（TermSelect）がＦＳモードに設定され、オペレーションモード（OpMode[1:0]）がパワーダウン状態に設定される（Ｔ１）。
【０１１５】
次に切断検出機能がオンに設定される（Ｔ３）。またリモートウェークアップ受付許可（RmtWkupDetEnb）がイネーブルに設定されている場合にはリモートウェークアップ検出機能がオンに設定される（Ｔ３）。そしてファームウェアに対して、サスペンド遷移完了ステータス（SuspendCmp）が発行される（Ｔ３）。
【０１１６】
図１２は個別ステート遷移実行コマンドGoRESUMEが発行された場合のタイミング波形図である。ファームウェアによりGoRESUMEが設定されると（Ｔ０）、ハードウェア回路（制御回路、レジュームステートシーケンサ）により以下のステート処理が実行される。なお図１２はＨＳデバイスが接続された場合の例である。
【０１１７】
まず切断検出機能及びリモートウェークアップ検出機能がオフに設定される（Ｔ０）。またオペレーションモード（OpMode[1:0]）がDisＢＳ＆ＮＲＺＩに設定され、レジューム信号“Ｋ”の発行が開始される（Ｔ０）。
【０１１８】
次にレジューム信号“Ｋ”の発行が完了し、ターミナル選択（TermSelect）がＨＳに設定される（Ｔ１）。そしてトランシーバ選択（XcvrSelect）がＨＳに設定され、ファームウェアに対してレジューム完了ステータス（ResumeCmp）が発行される（Ｔ２）。
【０１１９】
図７〜図１２に示すように本実施形態によれば、ファームウェアが個別ステート遷移実行コマンドを設定すると、各種レジスタ・モード・信号の設定や各種検出機能のオン、オフの設定がハードウェア回路により自動的に実行される。そしてステート処理が完了すると、完了ステータス（完了割り込み）がファームウェアに通知され、これによりファームウェアは次の個別ステート遷移実行コマンドを設定できるようになる。従ってファームウェアは、どのステートを実行するのかを管理するだけで済むようになるため、ファームウェアの処理負荷を軽減できる。またハードウェア化に適さないインテリジェントな処理はファームウェアに任せることができるため、ハードウェアの回路規模の増加も最小限に抑えることが可能になる。
【０１２０】
特に本実施形態では、ファームウェアは完了ステータス等をモニタするだけで済み、処理の時間管理の大部分はハードウェア回路に任せることができるため、ファームウェアの処理負荷を軽減できる。例えば図８のＴ０〜Ｔ１に示す、接続検出機能をオンにする待ち期間（１００ｍｓ）や、Ｔ２〜Ｔ３に示す、ポートスピードをＦＳに設定し接続検出機能をオフにして切断検出機能をオンにする待ち期間（２．５μＳ）や、Ｔ３〜Ｔ４に示すデバウンスインターバル期間（１００ｍｓ）等は、ハードウェア回路のタイマ２４０によりカウントできる。図９〜図１５の各種期間も同様にハードウェア回路によりカウントできる。これによりファームウェアの処理負荷を更に軽減できる。
【０１２１】
７．連続ステート遷移実行コマンドの詳細
次に連続ステート遷移実行コマンドの詳細について図１３〜図１６のタイミング波形図を用いて説明する。図１３は連続ステート遷移実行コマンドGoWAIT_CONNECTtoOPが発行された場合のタイミング波形図である。ファームウェアによりGoWAIT_CONNECTtoOPが設定されると（Ｔ０）、ハードウェア回路（制御回路、ウエイトコネクト・リセット・オペレーショナルのステートシーケンサ）により以下のステート処理が実行される。なお図１３はＨＳデバイスが接続された場合の例である。
【０１２２】
まず図８のGoWAIT_CONNECTと同等のステート処理が実行される（Ｔ０）。そして接続検出が行われ、接続検出ステータス（DetectCon）が発行されると、図９のGoRESETと同等のステート処理が実行される（Ｔ１）。次にデバイスのチャープが検出され、デバイスチャープ正常検出ステータス（DetectDevChirpOK）が発行される（Ｔ２）。そしてリセット完了ステータス（ResetCmp）を発行されると、図１０のGoOPERATIONALと同等のステート処理が実行される（Ｔ３）。なお各ステート処理におけるタイミングは図８〜図１０のGoWAIT_CONNECT、GoRESET、GoOPERATIONALに示した通りである。
【０１２３】
図１４は連続ステート遷移実行コマンドGoRESETtoOPが発行された場合のタイミング波形図である。ファームウェアによりGoRESETtoOPが設定されると（Ｔ０）、ハードウェア回路（制御回路、リセット・オペレーショナルのステートシーケンサ）により以下のステート処理が実行される。なお図１４はＨＳデバイスが接続された場合の例である。
【０１２４】
まず図９のGoRESETと同等のステート処理が実行される（Ｔ０）。次にデバイスのチャープが検出され、デバイスチャープ正常検出ステータス（DetectDevChirpOK）が発行される（Ｔ１）。そしてリセット完了ステータス（ResetCmp）を発行されると、図１０のGoOPERATIONALと同等のステート処理が実行される（Ｔ２）。なお各ステート処理におけるタイミングは図９、図１０のGoRESET、GoOPERATIONALに示した通りである。
【０１２５】
図１５は連続ステート遷移実行コマンドGoSUSPENDtoOPが発行された場合のタイミング波形図である。ファームウェアによりGoSUSPENDtoOPが設定されると（Ｔ０）、ハードウェア回路（制御回路、サスペンド・レジューム・オペレーショナルのステートシーケンサ）により以下のステート処理が実行される。なおこの際にリモートウェークアップ検出許可（RmtWkupDetEnb）もハードウェアにより自動的にイネーブルにされる。
【０１２６】
まず図１１のGoSUSPENDと同等の処理が実行される（Ｔ０）。そしてサスペンド遷移完了ステータス（SuspendCmp）が発行される（Ｔ１）。次にリモートウェークアップ信号が検出され、リモートウェークアップ検出ステータス（DetectRmtWkup）が発行されると、図１２のGoRESUMEと同等の処理が実行される（Ｔ２）。そしてレジューム完了ステータス（ResumeCmp）が発行されると、図１０のGoOPERATIONALと同等の処理が実行される（Ｔ３）。
【０１２７】
図１６は連続ステート遷移実行コマンドGoRESUMEtoOPが発行された場合のタイミング波形図である。ファームウェアによりGoRESUMEtoOPが設定されると（Ｔ０）、ハードウェア回路（制御回路、レジューム・オペレーショナルのステートシーケンサ）により以下のステート処理が実行される。
【０１２８】
まず図１２のGoRESUMEと同等の処理が実行される（Ｔ０）。そしてレジューム完了ステータス（ResumeCmp）が発行されると、図１０のGoOPERATIONALと同等の処理が実行される（Ｔ１）。
【０１２９】
図１３〜図１６に示すように本実施形態によれば、ファームウェアが連続ステート遷移実行コマンドを設定すると、複数のステート処理が連続実行される。そして各ステート処理においては、図７〜図１２で説明したように、各種レジスタ・モード・信号の設定や各種検出機能のオン、オフの設定がハードウェア回路により自動的に実行される。また期間のカウント処理もハードウェア回路（タイマ）により自動的に行われる。そしてオペレーショナルステートの前のステート処理（リセット、レジューム）が完了すると、完了ステータス（完了割り込み）がファームウェアに通知され、ファームウェアはオペレーショナルステートによるデータ転送を開始できるようになる。このように本実施形態によれば、ファームウェアは、一連の複数の個別ステート遷移実行コマンドを発行する必要がなく、１つの連続ステート遷移実行コマンドを発行するだけで済むため、その処理負荷を更に軽減できる。
【０１３０】
例えば図７〜図１２の個別ステート遷移手法では、ファームウェアは、例えば図９のＴ９でリセット完了ステータスResetCmpの発行を確認した後、Ｔ１０で個別ステート遷移実行コマンドGoOPERATIONALを発行する必要がある。この場合に図９のＴ０〜Ｔ１１の期間はＵＳＢのリセット期間として規格化されているため、ファームウェアによるＴ１０でのGoOPERATIONALの発行が遅くなると、規格を遵守できなくなる可能性がある。
【０１３１】
これに対して図１３〜図１６の連続ステート遷移手法では、図９のＴ９でリセット完了ステータスResetCmpが発行されると、図４の制御回路２２０がこのResetCmpを受ける。そして制御回路２２０が、起動信号OperationalActをオペレーショナルステートシーケンサ２３４に出力することで、データ転送制御装置のステートがリセットステートからオペレーショナルステートに自動的に遷移する。従ってＴ０〜Ｔ１１のリセット期間のＵＳＢ規格を遵守して、Ｔ１１においてＳＯＦパケットをＵＳＢに適正に出力できるようになる。即ちファームウェアはＴ１０のGoOPERATIONALの発行タイミングについては管理しなくても済むようになるため、規格を遵守しながらもファームウェアの処理負荷を軽減できるという効果がある。
【０１３２】
また本実施形態では、図４のステート実行回路２３０の各ステートシーケンサ２３１〜２３６は、個別ステート遷移実行コマンドによる各ステート処理を独立に実行でき、制御回路２２０がこれらの各ステートシーケンサを制御する構成となっている。従って、回路規模をそれほど増加させることなく図７〜図１２の個別ステート遷移手法と図１３〜図１６の連続ステート遷移手法を両立できるという効果がある。
【０１３３】
８．電子機器の構成
図１７（Ａ）（Ｂ）に、本実施形態のデータ転送制御装置を含む電子機器の構成例を示す。電子機器１１０は、図４、図５等で説明したデータ転送制御装置１２０、ストレージ１３０、ＣＰＵ１４０（処理部）、操作部１５０、表示部１６０、音出力部１７０を含む。またアップストリームポートＵＰＰＴとダウンストリームポートＤＷＰＴを含む。なおこれらの一部を省略する構成としてもよい。
【０１３４】
図１７（Ａ）（Ｂ）では、アップストリームポートＵＰＰＴが電子機器１１０の側面ＳＦ１（第１の側面、第１の辺）に設けられている。一方、ダウンストリームポートＤＷＰＴが電子機器１１０の側面ＳＦ２（第２の側面、第２の辺）に設けられている。ここで側面ＳＦ２は、側面ＤＦ１の反対側の面（対面）である。より具体的には、ダウンストリームポートＤＷＰＴは、アップストリームポートＵＰＰＴが設けられている位置（側面ＳＦ１上の位置）に対応する位置（側面ＳＦ２上の位置）に設けられている。更に具体的には、ＵＰＰＴとＤＷＰＴは、側面ＳＦ１に沿って長手方向に延びる線（ＳＦ１の中心線）と、側面ＳＦ２に沿って長手方向に延びる線（ＳＦ２の中心線）の中心線を基準として、線対称の位置に設けられている。
【０１３５】
データ転送制御装置１２０は、アップストリームポートＵＰＰＴ、ダウンストリームポートＤＷＰＴに接続され、ＵＰＰＴを介したデータ転送（アップストリーム方向でのデータ転送）と、ＤＷＰＴを介したデータ転送（ダウンストリーム方向でのデータ転送）を制御する。具体的には、データ転送制御装置１２０は、デバイスモードではＵＰＰＴを介したデータ転送を制御し、ホストモードではＤＷＰＴを介したデータ転送を制御する。
【０１３６】
ストレージ１３０は、音データ（音楽データ、音声データ）や画像データ（静止画データ、映像データ）を記憶するものである。このストレージ１３０としては、ハードディスク（ＨＤＤ）や大容量のメモリ（ＲＡＭ）や光ディスクなどを用いることができる。
【０１３７】
ＣＰＵ１４０は、電子機器１１０の全体の制御等を行うものである。操作部１５０は、ユーザが電子機器１１０を操作するためのものである。表示部１６０（液晶ディスプレイ、有機ＥＬディスプレイ）は、各種画像（静止画、動画）をユーザに表示するためのものである。音出力部１９０（スピーカ、ヘッドホン端子）は、音楽や音声などの音を出力するためのものである。
【０１３８】
例えば電子機器１１０が携帯型音楽プレーヤ（オーディオ機器）である場合には、音楽データが、ＵＰＰＴやＤＷＰＴを介して外部の電子機器（ＰＣ等）からストレージ１３０にダウンロードされて記憶される。そして記憶された音楽データがストレージ１３０から読み出されて再生され、音出力部１７０によりユーザに出力される。また電子機器１１０が携帯型映像プレーヤである場合には、映像データが、ＵＰＰＴやＤＷＰＴを介して外部の電子機器からストレージ１３０にダウンロードされて記憶される。そして記憶された映像データがストレージ１３０から読み出されて、表示部１６０を用いてユーザに表示される。
【０１３９】
なお、本発明は本実施形態に限定されず、本発明の要旨の範囲内で種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語（バス・シリアルバス、転送コントローラ等）として引用された用語（ＵＳＢ、ホストコントローラ等）は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。
【０１４０】
また本発明のデータ転送制御装置、電子機器の構成は、図４、図５、図１７（Ａ）（Ｂ）等に示した構成に限定されず、これらの図の構成要素の一部を省略したり、その接続関係を変更してもよい。例えばデータ転送制御装置は、ＵＳＢのホスト機能（簡易ホスト機能）だけを持つものであったり、ＵＳＢのＯＴＧ規格に準拠するものであってもよい。
【０１４１】
また本発明は種々の電子機器（携帯型音楽プレーヤ、携帯型映像プレーヤ、携帯電話機、携帯情報端末、ＰＤＡ、電子辞書、又は電子手帳等）に適用できる。
【０１４２】
また本実施形態では、ＵＳＢのデータ転送に本発明を適用した場合について説明したが、これと同様の思想に基づく規格やこれを発展させた規格等のデータ転送にも本発明は適用できる。
【図面の簡単な説明】
【０１４３】
【図１】図１（Ａ）〜図１（Ｄ）はＵＳＢのデータ転送の説明図。
【図２】本実施形態のデータ転送制御装置のステート遷移図。
【図３】連続ステート遷移手法の説明図。
【図４】本実施形態のデータ転送制御装置の構成例。
【図５】本実施形態のデータ転送制御装置の詳細な構成例。
【図６】本実施形態で使用されるレジスタとその機能の説明図。
【図７】GoIDLEの説明のためのタイミング波形図。
【図８】GoWAIT_CONNECTの説明のためのタイミング波形図。
【図９】GoRESETの説明のためのタイミング波形図。
【図１０】GoOPERATIONALの説明のためのタイミング波形図。
【図１１】GoSUSPENDの説明のためのタイミング波形図。
【図１２】GoRESUMEの説明のためのタイミング波形図。
【図１３】GoWAIT_CONNECTtoOPの説明のためのタイミング波形図。
【図１４】GoRESETtoOPの説明のためのタイミング波形図。
【図１５】GoSUSPENDtoOPの説明のためのタイミング波形図。
【図１６】GoRESUMEtoOPの説明のためのタイミング波形図。
【図１７】図１７（Ａ）（Ｂ）は本実施形態の電子機器の構成例。
【符号の説明】
【０１４４】
ＵＰＰＴ  アップストリームポート、ＤＷＰＴ  ダウンストリームポート、
１０  トランシーバ、２０  ホストトランシーバ、２２  ラインステート制御回路、
２４  ＶＢＵＳ制御回路、３０  デバイストランシーバ、４０  転送コントローラ、
５０  ホストコントローラ、５２  トランザクション実行回路、
５４  パケット生成＆解析回路、５６  フレームタイマ、５８  ＳＯＦ生成回路、
６０  デバイスコントローラ、７０  ポートセレクタ、７２  ステートコントローラ、
８０  レジスタ部、８２  チャネル情報レジスタ、８４  ステート管理サポートレジスタ、
８６  ステータスレジスタ、９０  バッファコントローラ、１００  データバッファ、
１１０  ストレージＩ／Ｆコントローラ、１１２  ＣＰＵＩ／Ｆコントローラ、
１１４  ＤＭＡコントローラ、１２０  データ転送制御装置、１３０  ストレージ、
１４０  ＣＰＵ（処理部）、２１０  コマンドレジスタ、２２０  制御回路、
２２２  ステートコマンドデコーダ、２２４  シーケンサ、
２２６  ステートモニタレジスタ、２３０  ステート実行回路、２３１〜２３６  アイドル・ウェイトコネクト・リセット・オペレーショナル・サスペンド・レジューム・ステートシーケンサ、２４０  タイマ、２５０  ラインステート検出回路、
２５１  接続検出回路、２５２  切断検出回路、２５３  デバイスチャープ検出回路、
２５４  リモートウェークアップ検出回路、２５６  ＶＢＵＳ異常検出回路、
２６０  割り込み信号生成回路、２６２  割り込みステータスレジスタ、
【図１】
2006227985.tif 000003
【図２】
2006227985.tif 000004
【図３】
2006227985.tif 000005
【図４】
2006227985.tif 000006
【図５】
2006227985.tif 000007
【図６】
2006227985.tif 000008
【図７】
2006227985.tif 000009
【図８】
2006227985.tif 000010
【図９】
2006227985.tif 000011
【図１０】
2006227985.tif 000012
【図１１】
2006227985.tif 000013
【図１２】
2006227985.tif 000014
【図１３】
2006227985.tif 000015
【図１４】
2006227985.tif 000016
【図１５】
2006227985.tif 000017
【図１６】
2006227985.tif 000018
【図１７】
2006227985.tif 000019