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

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

Info

Publication number
JP2003318926A
JP2003318926A JP2002126880A JP2002126880A JP2003318926A JP 2003318926 A JP2003318926 A JP 2003318926A JP 2002126880 A JP2002126880 A JP 2002126880A JP 2002126880 A JP2002126880 A JP 2002126880A JP 2003318926 A JP2003318926 A JP 2003318926A
Authority
JP
Japan
Prior art keywords
transfer
data
sof
packet
controller
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2002126880A
Other languages
English (en)
Other versions
JP3726898B2 (ja
Inventor
伸之 ▲斎▼藤
Nobuyuki Saito
Takashi Oshita
俊 大下
Yoshiyuki Kanbara
義幸 神原
Kuniaki Matsuda
邦昭 松田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2002126880A priority Critical patent/JP3726898B2/ja
Priority to US10/377,673 priority patent/US7409471B2/en
Publication of JP2003318926A publication Critical patent/JP2003318926A/ja
Application granted granted Critical
Publication of JP3726898B2 publication Critical patent/JP3726898B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • G06F13/4286Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a handshaking protocol, e.g. RS232C link

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)
  • Communication Control (AREA)
  • Bus Control (AREA)
  • Small-Scale Networks (AREA)

Abstract

(57)【要約】 【課題】 非周期転送時の転送効率を向上できるデータ
転送制御装置、電子機器及びデータ転送制御方法を提供
すること。 【解決手段】 第1のモード(SOF有りモード)が設
定された場合には、SOFパケットをフレーム周期で転
送しながらデータ転送を行い、第2のモード(SOF無
しモード)が設定され且つ非周期(バルク)転送を行う
場合には、SOFパケットの周期転送を無効にして、非
周期データを転送する。転送すべき非周期データが無い
場合には、第2のモードが設定された場合にも、SOF
パケットをフレーム周期で転送する。USBのOTG
(On−The−Go)のホスト動作時にパケットバッ
ファにパイプ領域を確保し、パイプ領域と非周期転送の
エンドポイントとの間でSOFパケットの周期転送を無
効にしながら非周期データを自動転送する。パイプ領域
の自動転送指示信号が全て非アクティブの場合には、第
2のモードが設定された場合にも、SOFパケットを周
期転送する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、データ転送制御装
置、電子機器及びデータ転送制御方法に関する。
【0002】
【背景技術及び発明が解決しようとする課題】USB
(Universal Serial Bus)2.0の市場が順調に拡大し
ているなか、USB Implementers Forum(USB−I
F)によって、USB On−The−Go(OTG)
と呼ばれるインターフェース規格が策定された。USB
2.0を拡張する形で策定されたOTG規格(OTG
1.0)は、USBインターフェースの新たな付加価値
を生む可能性を秘めており、その特質を生かしたアプリ
ケーションの登場が待たれている。
【0003】このOTGによれば、これまでUSBを介
してホスト(パーソナルコンピュータ等)に接続されて
いたペリフェラル(周辺機器)に、ホスト機能を持たせ
ることができる。これにより、ペリフェラル同士をUS
Bで接続してデータを転送することが可能になり、例え
ばデジタルカメラとプリンタとをダイレクトに接続し
て、デジタルカメラの画像を印刷することが可能にな
る。また、デジタルカメラやデジタルビデオカメラをス
トレージ装置に接続して、データを保存することが可能
になる。
【0004】しかしながら、OTGによりホスト機能を
持たせるペリフェラルには、低性能のCPU(処理部)
が組み込まれているのが一般的である。従って、ホスト
機能の追加により、ペリフェラルが有するCPU(ファ
ームウェア)の処理負荷が重くなったり、処理が複雑化
すると、他の処理に支障が生じたり、機器の設計期間が
長期化するなどの問題が生じる。
【0005】また、USB1.1、USB2.0、OT
GなどのUSB規格では、アイソクロナス転送、バルク
転送、コントロール転送、インタラプト転送という4種
類の転送タイプが定義されている。USBのホストは、
これらの各転送タイプのパケットの転送順序を管理し、
フレームの残り時間を考慮しながら、各転送タイプのパ
ケットを転送する。このために、USBではホストがフ
レーム管理を行い、FS(Full Speed)、LS(Low Sp
eed)では1ms毎に、HS(High Speed)では125
μs毎に、SOF(Start Of Frame)パケットをホスト
がペリフェラル(デバイス)に転送する。
【0006】しかしながら、バルク転送やコントロール
転送などの非周期転送では、このようなSOFパケット
の転送はバス帯域を狭める結果となり、転送効率が低下
してしまうという課題があることが判明した。
【0007】本発明は、以上のような技術的課題に鑑み
てなされたものであり、その目的とするところは、非周
期転送時の転送効率を向上できるデータ転送制御装置、
電子機器及びデータ転送制御方法を提供することにあ
る。
【0008】
【課題を解決するための手段】本発明は、バスを介した
データ転送のためのデータ転送制御装置であって、転送
データを記憶するパケットバッファのアクセス制御を行
うバッファコントローラと、パケットバッファのデータ
の転送を制御する転送コントローラとを含み、前記転送
コントローラが、第1のモードが設定された場合には、
SOF(StartOf Frame)パケットをフレーム周期で転
送しながらデータ転送を行い、第2のモードが設定され
且つ非周期転送を行う場合には、SOFパケットの周期
転送を無効にして、非周期データの転送を行うデータ転
送制御装置に関係する。
【0009】本発明では、第1のモードの設定時には、
SOFパケットがフレーム周期で転送されながら、デー
タ転送が行われる。これにより、例えばアイソクロナス
転送等の周期転送を適正に行うことが可能になる。一
方、第2のモードの設定時には、SOFパケットの転送
が無効にされて、非周期データの転送が行われる。これ
により、複数のフレームの境界をまたがったトランザク
ションの発生等が可能になり、例えばバルク転送、コン
トロール転送等の非周期転送の転送効率を向上できる。
【0010】また本発明では、前記転送コントローラ
が、転送すべき非周期データが無い場合には、第2のモ
ードが設定された場合にも、SOFパケットをフレーム
周期で転送するようにしてもよい。
【0011】このようにすれば、バスに接続される他の
機器が不適切なステートに移行してしまう事態等を防止
できる。なお、転送すべき非周期データが有るか無いか
は、例えば、転送開始指示信号や、パケットバッファの
フル、エンプティ信号等により判断できる。
【0012】また本発明では、ホストの役割として動作
するホスト動作のステートと、ペリフェラルの役割とし
て動作するペリフェラル動作のステートを含む複数のス
テートの制御を行うステートコントローラを含み、前記
パケットバッファには、各エンドポイントとの間で転送
されるデータが各パイプ領域に記憶される複数のパイプ
領域が確保され、前記転送コントローラが、ホスト動作
時において、ホストとしてのデータ転送を行うホストコ
ントローラと、ペリフェラル動作時において、ペリフェ
ラルとしてのデータ転送を行うペリフェラルコントロー
ラとを含み、前記ホストコントローラが、エンドポイン
トに対するトランザクションを自動発生し、パイプ領域
と、そのパイプ領域に対応するエンドポイントとの間
で、データを自動転送するようにしてもよい。
【0013】本発明によれば、例えば、ステートコント
ローラにより制御されるステートが、ホスト動作のステ
ートになると、ホストコントローラにより、ホストの役
割としてのデータ転送が行われる。また、ステートコン
トローラにより制御されるステートが、ペリフェラル動
作のステートになると、ペリフェラルコントローラによ
り、ペリフェラルの役割としてのデータ転送が行われ
る。これにより、いわゆるデュアルロール・デバイス機
能を実現できるようになる。
【0014】そして本発明では、ホスト動作時におい
て、パケットバッファに対して複数のパイプ領域が確保
(allocate)され、確保されたパイプ領域とエンドポイ
ントとの間で、データが自動転送される。これにより、
デュアルロール・デバイス機能を実現できると共に、ホ
スト動作時における処理部の処理負荷を軽減できる。
【0015】また本発明では、前記ホストコントローラ
が、第2のモードが設定された場合には、パイプ領域と
そのパイプ領域に対応する非周期転送のエンドポイント
との間で、SOFパケットの周期転送を無効にしなが
ら、非周期データを自動転送するようにしてもよい。
【0016】このようにすれば、パイプ領域を用いて、
非周期転送のエンドポイントとの間で、非周期データの
自動転送が可能になり、データ転送を効率化できる。そ
して、この時に本発明では、SOFパケットの周期転送
が無効になるため、データ転送を更に効率化できる。な
お、SOFパケットの転送を無効にする場合(第2のモ
ードに設定する場合)には、パケットバッファに確保さ
れるパイプ領域に、周期転送(アイソクロナス転送等)
以外の転送種別のエンドポイントを割り当てることが望
ましい。
【0017】また本発明では、前記ホストコントローラ
が、パイプ領域の自動転送指示信号が全て非アクティブ
の場合には、第2のモードが設定された場合にも、SO
Fパケットをフレーム周期で自動転送するようにしても
よい。
【0018】このようにすれば、転送すべきデータが有
るか無いかを、自動転送指示信号に基づいて判断できる
ため、判断処理を簡素化できる。そして、自動転送指示
信号が全て非アクティブの場合(転送すべきデータが無
い場合)に、SOFパケットを転送することで、バスに
接続される他の機器が不適切なステートに移行してしま
う事態等を防止できる。
【0019】また本発明では、前記ホストコントローラ
が、フレーム周期毎にSOF転送開始トリガをアクティ
ブにし、SOFパケットの転送が完了した場合に前記S
OF転送開始トリガを非アクティブにするSOF転送開
始トリガ生成回路と、パイプ領域の自動転送指示信号
と、ステートコントローラからのステート情報信号と、
第1又は第2のモードを指示する信号を受け、前記SO
F転送開始トリガを無効にする信号を生成するSOF無
効信号生成回路とを含んでもよい。
【0020】このようにすれば、SOFパケットの転送
を無効にする処理等を簡素な回路で実現できる。なお、
例えば、ステート情報信号が示すステートがホスト動作
であり、第2のモードが指示され、自動転送指示信号の
少なくとも1つがアクティブの場合には、SOF転送開
始トリガの無効信号をアクティブにして、SOF転送開
始トリガの生成を無効にすることができる。一方、ステ
ート情報信号が示すステートがホスト動作であり、第2
のモードが指示された場合にも、自動転送指示信号が全
て非アクティブの場合(転送すべきデータが無い場合)
には、SOF転送開始トリガの無効信号を非アクティブ
にして、SOF転送開始トリガの生成が無効にされない
ようにすることができる。
【0021】また本発明では、ペリフェラル動作時に
は、ホストとの間で転送されるデータが各エンドポイン
ト領域に記憶される複数のエンドポイント領域が、パケ
ットバッファに確保され、前記ペリフェラルコントロー
ラが、エンドポイント領域とホストとの間でデータを転
送するようにしてもよい。
【0022】このようにすれば、パケットバッファのバ
ッファ領域を、ホスト動作時にはパイプ領域として使用
し、ペリフェラル動作時にはエンドポイント領域として
使用できるようになる。これにより、パケットバッファ
のリソースの有効利用や、処理部の処理負荷の軽減化を
図れる。
【0023】また本発明では、前記非周期転送がUSB
(Universal Serial Bus)規格のバルク転送又はコント
ロール転送であり、前記非周期データがバルクデータ又
はコントロールデータであってもよい。
【0024】また本発明では、USB(Universal Seri
al Bus)のOTG(On−The−Go)規格に準拠し
たデータ転送を行うようにしてもよい。
【0025】また本発明は、上記のいずれかのデータ転
送制御装置と、前記データ転送制御装置及びバスを介し
て転送されるデータの出力処理又は取り込み処理又は記
憶処理を行う装置と、前記データ転送制御装置のデータ
転送を制御する処理部とを含む電子機器に関係する。
【0026】また本発明は、バスを介したデータ転送の
ためのデータ転送制御方法であって、転送データを記憶
するパケットバッファのアクセス制御を行い、パケット
バッファのデータの転送を制御すると共に、第1のモー
ドが設定された場合には、SOF(Start Of Frame)パ
ケットをフレーム周期で転送しながらデータ転送を行
い、第2のモードが設定され且つ非周期転送を行う場合
には、SOFパケットの周期転送を無効にして、非周期
データの転送を行うデータ転送制御方法に関係する。
【0027】
【発明の実施の形態】以下、本実施形態について説明す
る。
【0028】なお、以下に説明する本実施形態は、特許
請求の範囲に記載された本発明の内容を不当に限定する
ものではない。また本実施形態で説明される構成の全て
が本発明の解決手段として必須であるとは限らない。
【0029】1.OTG まず、OTG(USB On−The−Go)について
簡単に説明する。
【0030】1.1 Aデバイス、Bデバイス OTGでは、コネクタの規格として、図1(A)に示す
ようなMini-Aプラグ、Mini-Bプラグが定義されてい
る。また、これらのMini-Aプラグ、Mini−Bプラグ
(広義にはケーブルの第1、第2のプラグ)の両方を接
続できるコネクタとして、Mini-ABレセプタクル(rec
eptacle)が定義されている。
【0031】そして例えば図1(B)のように、USB
ケーブルのMini-Aプラグに電子機器Pが接続され、Min
i-Bプラグに電子機器Qが接続されると、電子機器Pは
Aデバイスに設定され、電子機器QはBデバイスに設定
される。一方、図1(C)に示すように、Mini-Bプラ
グ、Mini-Aプラグが電子機器P、Qに接続されると、
電子機器P、Qは、各々、Bデバイス、Aデバイスに設
定される。
【0032】Mini-Aプラグ内ではIDピンがGNDに
接続されており、Mini-Bプラグ内ではIDピンはフロ
ーティング状態になっている。電子機器は、内蔵するプ
ルアップ抵抗回路を用いて、このIDピンの電圧レベル
を検出することで、自身がMini-Aプラグに接続された
のか、或いはMini-Bプラグに接続されたのかを判断す
る。
【0033】OTGでは、Aデバイス(マスター)が、
電源(VBUS)を供給する側(供給元)になり、Bデ
バイス(スレイブ)が、電源の供給を受ける側(供給
先)になる。また、Aデバイスは、デフォルトのステー
トがホストになり、Bデバイスは、デフォルトのステー
トがペリフェラル(周辺機器)になる。
【0034】1.2 デュアルロール・デバイス OTGでは、ホスト(簡易ホスト)としての役割とペリ
フェラルとしての役割の両方を持つことができるデュア
ルロール・デバイス(Dual-Role Device)が定義されて
いる。
【0035】デュアルロール・デバイスは、ホストにも
ペリフェラルにもなれる。そして、デュアルロール・デ
バイスに接続された相手が、従来のUSB規格における
ホストやペリフェラルである場合には、デュアルロール
・デバイスの役割は一意に定まる。つまり、接続相手が
ホストであれば、デュアルロール・デバイスはペリフェ
ラルになり、接続相手がペリフェラルであれば、デュア
ルロール・デバイスはホストになる。
【0036】一方、接続相手がデュアルロール・デバイ
スである場合には、両方のデュアルロール・デバイス
は、お互いにホストとペリフェラルの役割を交換でき
る。
【0037】1.3 SRP、HNP デュアルロール・デバイスは、図2(A)、(B)に示
すようなセッション開始要求手順SRP(Session Requ
est Protocol)やホスト交換手順HNP(HostNegotiat
ion Protocol)の機能を持つ。
【0038】ここでセッション開始要求手順SRPは、
BデバイスがAデバイスに対して、VBUS(電源)の
供給を要求するプロトコルである。
【0039】バスを使用しない場合にOTGでは、Aデ
バイスはVBUSの供給を停止できる。これにより、A
デバイスが例えば小型の携帯機器であった場合に、無駄
な電力消費を防止できる。そして、AデバイスがVBU
Sの供給を停止した後に、BデバイスがVBUSを供給
してもらいたい場合には、このSRPを使用して、Aデ
バイスに対してVBUSの供給の再開を要求する。
【0040】図2(A)にSRPの流れを示す。図2
(A)に示すように、Bデバイスは、データ・ライン・
パルシングとVBUSパルシングを行うことで、Aデバ
イスに対してVBUSの供給を要求する。そして、Aデ
バイスによるVBUSの供給の開始後に、Bデバイスの
ペリフェラル動作(peripheral operation)と、Aデバ
イスのホスト動作(host operation)が開始する。
【0041】図1(A)〜図1(C)で説明したよう
に、デュアルロール・デバイス同士の接続では、Mini-
Aプラグが接続された側であるAデバイスがデフォルト
のホストとなり、Mini-Bプラグが接続された側である
Bデバイスがデフォルトのペリフェラルになる。そし
て、OTGでは、プラグの抜き差しを行わなくても、ホ
ストとペリフェラルの役割を交換できる。HNPは、こ
のホストとペリフェラルの役割を交換するためのプロト
コルである。
【0042】HNPの流れを図2(B)に示す。デフォ
ルトのホストとして動作するAデバイスが、バスの使用
を終了すると、バスがアイドル状態になる。その後に、
Bデバイスがデータ信号線DP(D+)のプルアップ抵
抗を無効にすると、AデバイスがDPのプルアップ抵抗
を有効にする。これにより、Aデバイスの役割はホスト
からペリフェラルに変わり、ペリフェラルとしての動作
を開始する。また、Bデバイスの役割はペリフェラルか
らホストに変わり、ホストとしての動作を開始する。
【0043】その後、Bデバイスが、バスの使用を終了
し、AデバイスがDPのプルアップ抵抗を無効にする
と、Bデバイスが、DPのプルアップ抵抗を有効にす
る。これにより、Bデバイスの役割はホストからペリフ
ェラルに戻り、ペリフェラルとしての動作を再開する。
また、Aデバイスの役割はペリフェラルからホストに戻
り、ホストとしての動作を再開する。
【0044】以上に説明したOTGによれば、携帯電話
やデジタルカメラなどの携帯機器をUSBのホストとし
て動作させ、携帯機器同士をピア・ツー・ピアで接続し
てデータ転送を行うことが可能になる。これにより、U
SBインターフェースに新たな付加価値を生むことがで
き、これまでには存在しなかったアプリケーションを創
出できる。
【0045】2.OHCI さて、従来のUSBでは、ホストであるパーソナルコン
ピュータが有するデータ転送制御装置(ホストコントロ
ーラ)は、マイクロソフト社が提唱したOHCI(Open
Host Controller Interface)や、UHCI(Universa
l Host Controller Interface)といった規格に準拠し
ていた。また、使用されるOS(Operating System)
も、マイクロソフト社のWindowsやアップル社のマッキ
ントッシュのOSなどに限定されていた。
【0046】しかしながら、OTGのターゲット・アプ
リケーションである小型携帯機器では、組み込まれるC
PUのアーキテクチャや、使用されるOSは千差万別で
ある。更に、パーソナルコンピュータのホストコントロ
ーラ向けに規格化されたOHCIやUHCIは、USB
ホストとしての機能をフルに実装することを前提として
おり、小型携帯機器への実装に最適であるとは言い難
い。
【0047】例えば、図3(A)に、OHCIで使用さ
れるリスト構造のディスクリプタの一例を示す。
【0048】図3(A)において、エンドポイントディ
スクリプタED1、ED2、ED3は、リンクポインタ
によりリンクされており、エンドポイント1、2、3と
のコミュニケーションに必要な情報が含まれている。そ
して、これらのED1、ED2、ED3には、転送ディ
スクリプタTD11〜TD13、TD21、TD31〜
TD32がリンクポインタにより更にリンクされてい
る。そして、これらの転送ディスクリプタには、エンド
ポイント1、2、3との間で転送するパケットデータに
必要な情報が含まれている。
【0049】図3(A)のリスト構造のディスクリプタ
は、図3(B)のCPU610(広義には処理部)上で
動作するファームウェア(ホストコントローラ・ドライ
バ)が作成し、システムメモリ620に書き込む。即
ち、ファームウェアは、システム中のエンドポイントに
対してエンドポイントディスクリプタを割り当て、エン
ドポイント情報等に基づいてエンドポイントディスクリ
プタ、転送ディスクリプタを作成する。そして、これら
のディスクリプタをリンクポインタでリンクさせて、シ
ステムメモリ620に書き込む。
【0050】データ転送制御装置600(ホストコント
ローラ)は、システムメモリ620に書き込まれたリス
ト構造のディスクリプタを読み出し、エンドポイントデ
ィスクリプタや転送ディスクリプタに記述される情報に
基づいて、データ転送を実行する。
【0051】具体的には、データ転送制御装置600
(ホストコントローラ)は、ED1に基づいてエンドポ
イント1の情報を設定し、ED1にリンクされるTD1
1に基づいて、エンドポイント1との間でデータ転送を
行う。次に、ED2に基づいてエンドポイント2の情報
を設定し、ED2にリンクされるTD21に基づいて、
エンドポイント2との間でデータ転送を行う。同様にし
て、データ転送制御装置600は、TD31、TD1
2、TD32、TD13に基づいてデータ転送を実行す
る。
【0052】以上のように、OHCI準拠のデータ転送
制御装置(ホストコントローラ)では、CPU上で動作
するファームウェア(ホストコントローラ・ドライバ)
が、図3(A)に示すような複雑な構造のディスクリプ
タを作成しなければならない。従って、CPUの処理負
荷が非常に重い。
【0053】この場合、従来のUSBでは、ホストの役
割が割り当てられるのはパーソナルコンピュータだけで
あり、このパーソナルコンピュータは高性能のCPUを
有している。従って、図3(A)に示すような複雑な構
造のディスクリプタの作成も、余裕を持って行うことが
可能であった。
【0054】ところが、OTGのターゲットアプリケー
ションである小型携帯機器(デジタルカメラ、携帯電話
等)に組み込まれるCPU(embedded CPU)は、パーソ
ナルコンピュータのCPUに比べて、性能が格段に低い
のが一般的である。従って、携帯機器にOTGのホスト
動作を行わせると、携帯機器に組み込まれるCPUに過
大な負荷がかかり、他の処理に支障が生じたり、データ
転送のパフォーマンスが低下するなどの問題が生じる。
【0055】3.構成例 図4に、以上のような問題を解決できる本実施形態のデ
ータ転送制御装置の構成例を示す。なお、本実施形態の
データ転送制御装置は、図4の全ての回路ブロックを含
む必要はなく、その一部の回路ブロックを省略してもよ
い。
【0056】トランシーバ10(以下、適宜Xcvrと
呼ぶ)は、差動データ信号DP、DMを用いてUSB
(広義にはバス)のデータを送受信する回路であり、U
SBの物理層(PHY)回路12を含む。より具体的に
はトランシーバ10は、DP、DMのラインステート
(J、K、SE0等)の生成、シリアル/パラレル変
換、パラレル/シリアル変換、ビットスタッフィング、
ビットアンスタッフィング、NRZIデコード、NRZ
Iエンコードなどを行う。なお、トランシーバ10をデ
ータ転送制御装置の外部に設けるようにしてもよい。
【0057】OTGコントローラ20(広義にはステー
トコントローラ。以下、適宜OTGCと呼ぶ)は、OT
GのSRP機能やHNP機能(図2(A)、(B)参
照)を実現するための種々の処理を行う。即ち、OTG
コントローラ20は、ホストの役割として動作するホス
ト動作のステートや、ペリフェラルの役割として動作す
るペリフェラル動作のステートなどを含む複数のステー
トの制御を行う。
【0058】より具体的には、OTG規格には、デュア
ルロール・デバイスのAデバイス時(図1(B)、
(C)参照)のステート遷移やBデバイス時のステート
遷移が定義されている。OTGコントローラ20は、こ
れらのステート遷移を実現するためのステートマシーン
を含む。また、OTGコントローラ20は、USBのデ
ータラインステートや、VBUSレベルや、IDピンの
ステートを検出(監視)する回路を含む。そして、OT
Gコントローラ20が含むステートマシーンは、これら
の検出情報に基づいて、そのステート(例えば、ホス
ト、ペリフェラル、サスペンド又はアイドルなどのステ
ート)を変化させる。この場合のステートの遷移は、ハ
ードウェア回路により実現してもよいし、ファームウェ
アがステートコマンドをレジスタに設定することで実現
してもよい。そして、ステートが遷移すると、OTGコ
ントローラ20は、遷移後のステートに基づいて、VB
USを制御したり、DP、DMのプルアップ抵抗/プル
ダウン抵抗の接続/非接続を制御する。また、ホストコ
ントローラ50(以下、適宜HCと呼ぶ)、ペリフェラ
ルコントローラ60(以下、適宜PCと呼ぶ)のイネー
ブル/ディスエーブルを制御する。
【0059】HC/PC切り替え回路30(HC/PC
・コモン回路)は、トランシーバ10と、ホストコント
ローラ50又はペリフェラルコントローラ60との間の
接続の切り替え制御を行う。また、USBのデータ(D
P、DM)のラインステートの生成の指示をトランシー
バ10に対して行う。なお、接続の切り替え制御は、H
C/PCセレクタ32により実現され、ラインステート
の生成指示は、ラインステートコントローラ34により
実現される。
【0060】例えばOTGコントローラ20が、ホスト
動作時(ホストステート時)にHCイネーブル信号をア
クティブにすると、HC/PC切り替え回路30(HC
/PCセレクタ32)は、トランシーバ10とホストコ
ントローラ50を接続する。一方、OTGコントローラ
20が、ペリフェラル動作時(ペリフェラルステート
時)にPCイネーブル信号をアクティブにすると、HC
/PC切り替え回路30は、トランシーバ10とペリフ
ェラルコントローラ60を接続する。このようにするこ
とで、ホストコントローラ50とペリフェラルコントロ
ーラ60とを排他的に動作させることが可能になる。
【0061】転送コントローラ40は、USB(広義に
はバス)を介したデータ転送を制御する回路であり、ホ
ストコントローラ50(HC)とペリフェラルコントロ
ーラ60(PC)を含む。
【0062】ここでホストコントローラ50は、ホスト
動作時(OTGコントローラ20からのHCイネーブル
信号のアクティブ時)に、ホストの役割としてのデータ
転送制御を行う回路である。
【0063】即ち、ホストコントローラ50は、ホスト
動作時に、HC/PC切り替え回路30によりトランシ
ーバ10に接続される。そしてホストコントローラ50
は、レジスタ部70の転送条件レジスタ部72に設定さ
れた転送条件情報に基づいて、エンドポイントに対する
トランザクションを自動発生する。そして、パケットバ
ッファ100に確保(allocate)されたパイプ領域(P
IPE0〜PIPEe。以下、適宜PIPEと呼ぶ)
と、そのパイプ領域に対応するエンドポイントとの間
で、データ(パケット)の自動転送(処理部が介在しな
いハードウェア回路によるデータ転送)を行う。
【0064】より具体的にはホストコントローラ50
は、複数のパイプ転送間の調停、フレームにおける時間
管理、転送のスケジューリング、再送の管理などを行
う。また、パイプ転送の転送条件情報(オペレーション
情報)をレジスタ部70を介して管理する。また、トラ
ンザクションの管理を行ったり、パケットを生成/分解
したり、サスペンド/レジューム/リセット状態生成の
指示を行う。
【0065】一方、ペリフェラルコントローラ60は、
ペリフェラル動作時(OTGコントローラ20からのP
Cイネーブル信号のアクティブ時)に、ペリフェラルの
役割としてのデータ転送制御を行う回路である。
【0066】即ち、ペリフェラルコントローラ60は、
ペリフェラル動作時に、HC/PC切り替え回路30に
よりトランシーバ10に接続される。そして、レジスタ
部70の転送条件レジスタ部72に設定された転送条件
情報に基づいて、パケットバッファ100に確保された
エンドポイント領域(EP0〜EPe。以下適宜EPと
呼ぶ)とホストとの間でデータを転送する。
【0067】より具体的には、ペリフェラルコントロー
ラ60は、エンドポイント転送の転送条件情報(オペレ
ーション情報)をレジスタ部70を介して管理する。ま
た、トランザクションの管理を行ったり、パケットを生
成/分解したり、リモート・ウェイクアップ信号生成の
指示を行う。
【0068】なお、エンドポイントは、ユニークなアド
レスを割り当てることができる、ペリフェラル(デバイ
ス)上のポイント(部分)である。ホストとペリフェラ
ル(デバイス)との間でのデータ転送は、全て、このエ
ンドポイントを経由して行われる。また、トランザクシ
ョンは、トークンパケットと、オプショナルなデータパ
ケットと、オプショナルなハンドシェークパケットによ
り構成される。
【0069】レジスタ部70は、データ転送(パイプ転
送、エンドポイント転送)制御、バッファアクセス制
御、バッファ管理、割り込み制御、ブロック制御、或い
はDMA制御などを行うための種々のレジスタを含む。
なお、レジスタ部70が含むレジスタは、RAMなどの
メモリにより実現してもよいし、Dフリップフロップな
どにより実現してもよい。また、レジスタ部70のレジ
スタは、1つにまとめずに、各ブロック(HC、PC、
OTGC、Xcvr等)に分散して配置してもよい。
【0070】レジスタ部70は、転送条件レジスタ部7
2を含む。そして、この転送条件レジスタ部72は、ホ
スト動作時にパケットバッファ100に確保されるパイ
プ領域(PIPE0〜PIPEe)とエンドポイントと
の間でのデータ転送の転送条件情報(転送制御情報)を
記憶するレジスタを含む。これらの各転送条件レジスタ
は、パケットバッファ100の各パイプ領域に対応して
設けられる。
【0071】なお、ペリフェラル動作時には、パケット
バッファ100にはエンドポイント領域(EP0〜EP
e)が確保される。そして、転送条件レジスタ部72に
設定された転送条件情報に基づいて、データ転送制御装
置とホストとの間でのデータ転送が行われる。
【0072】バッファコントローラ80(FIFOマネ
ージャ)は、パケットバッファ100に対するアクセス
(リード/ライト)制御や領域管理を行う。より具体的
には、CPU(広義には処理部)、DMA(Direct Mem
ory Access)、USBによるパケットバッファ100へ
のアクセス・アドレスを生成・管理する。また、CP
U、DMA、USBによるパケットバッファ100への
アクセスの調停を行う。
【0073】例えば、ホスト動作時には、バッファコン
トローラ80は、インターフェース回路110(CPU
又はDMA)とパケットバッファ100の間のデータ転
送経路と、パケットバッファ100とホストコントロー
ラ50(USB)の間のデータ転送経路を設定(確立)
する。
【0074】一方、ペリフェラル動作時には、バッファ
コントローラ80は、インターフェース回路110(C
PU又はDMA)とパケットバッファ100の間のデー
タ転送経路と、パケットバッファ100とペリフェラル
コントローラ60(USB)の間のデータ転送経路を設
定する。
【0075】パケットバッファ100(FIFO、パケ
ットメモリ、バッファ)は、USBを介して転送される
データ(送信データ又は受信データ)を一時的に記憶
(バッファリング)するものである。このパケットバッ
ファ100は、例えばRAM(Random Access Memory)
などにより構成できる。なお、パケットバッファ100
をデータ転送制御装置の外部に設けてもよい(外付けメ
モリにしてもよい)。
【0076】ホスト動作時には、パケットバッファ10
0はパイプ転送用のFIFO(First-In First-Out)と
して使用される。即ち、パケットバッファ100には、
USB(バス)の各エンドポイントに対応するように、
パイプ領域PIPE0〜PIPEe(広義にはバッファ
領域)が確保される。また、各パイプ領域PIPE0〜
PIPEeには、それに対応する各エンドポイントとの
間で転送されるデータ(送信データ又は受信データ)が
記憶される。
【0077】一方、ペリフェラル動作時には、パケット
バッファ100はエンドポイント転送用のFIFOとし
て使用される。即ち、パケットバッファ100には、エ
ンドポイント領域EP0〜EPe(広義にはバッファ領
域)が確保される。また、各エンドポイント領域EP0
〜EPeには、ホストとの間で転送されるデータ(送信
データ又は受信データ)が記憶される。
【0078】なお、パケットバッファ100に確保され
るバッファ領域(ホスト動作時にパイプ領域に設定さ
れ、ペリフェラル動作時にエンドポイント領域に設定さ
れる領域)は、先に入力された情報が先に出力されるよ
うな記憶領域(FIFO領域)に設定されている。
【0079】また、PIPE0は、コントロール転送用
のエンドポイント0に専用のパイプ領域であり、PIP
Ea〜PIPEeは、任意のエンドポイントに割り当て
可能な汎用のパイプ領域である。
【0080】即ち、USBでは、エンドポイント0がコ
ントロール転送に専用のエンドポイントに設定される。
従って、本実施形態のようにPIPE0をコントロール
転送に専用のパイプ領域にすることで、ユーザが混乱す
るのを防止できる。また、PIPEa〜PIPEeを、
任意のエンドポイントに割り当て可能なパイプ領域にす
ることで、エンドポイントに対応するパイプ領域を動的
に変化させることが可能になる。これにより、パイプ転
送のスケジューリングの自由度を向上でき、データ転送
の効率化を図れる。
【0081】なお本実施形態では、バッファ領域(パイ
プ領域又はエンドポイント領域)は、マックスパケット
サイズMaxPktSize(広義にはページサイズ)とページ数
BufferPageにより、その領域サイズRSizeが設定される
(RSize=MaxPktSize×BufferPage)。このようにするこ
とで、バッファ領域の領域サイズや面数(ページ数)を
任意に設定できるようになり、パケットバッファ100
のリソースの有効利用を図れる。
【0082】インターフェース回路110は、USBと
は異なる他のバスであるDMA(システムメモリ)バス
やCPUバスと、パケットバッファ100との間でのデ
ータ転送を行うための回路である。このインターフェー
ス回路110は、パケットバッファ100と外部のシス
テムメモリとの間で、DMA転送を行うためのDMAハ
ンドラ回路112を含む。また、パケットバッファ10
0と外部のCPUとの間で、PIO(Parallel I/O)転
送を行うためのCPUインターフェース回路114を含
む。なお、CPU(処理部)をデータ転送制御装置に内
蔵させてもよい。
【0083】クロックコントローラ120は、内蔵PL
L又は外部入力クロックに基づいて、データ転送制御装
置の内部で使用する各種のクロックを生成する。
【0084】4.パイプ領域 本実施形態では図5(A)に示すように、ホスト動作時
に、パケットバッファ100にパイプ領域PIPE0〜
PIPEeが確保(allocate)される。そして、この各
パイプ領域PIPE0〜PIPEeとペリフェラルの各
エンドポイントの間で、データが転送される。
【0085】ここで、本実施形態のパイプ領域の「パイ
プ」は、USBで定義される「パイプ」(デバイス上の
エンドポイントとホスト上のソフトウェアとの間の関連
を表す論理的な抽象化、論理的な経路)とは若干意味合
いが異なる。
【0086】本実施形態のパイプ領域は、図5(A)に
示すように、USB(バス)に接続されるペリフェラル
が有する各エンドポイントに対応して、パケットバッフ
ァ100上に確保される。例えば図5(A)において、
パイプ領域PIPEaはペリフェラル1のエンドポイン
ト1(バルクIN)に対応し、PIPEbはペリフェラ
ル1のエンドポイント2(バルクOUT)に対応する。
また、PIPEcはペリフェラル2のエンドポイント1
(バルクIN)に対応し、PIPEdはペリフェラル2
のエンドポイント2(バルクOUT)に対応する。ま
た、PIPEeはペリフェラル3のエンドポイント1
(インタラプトIN)に対応する。なお、PIPE0
は、コントロール転送のエンドポイント0に専用のパイ
プ領域である。
【0087】そして図5(A)の例では、パイプ領域P
IPEaとペリフェラル1のエンドポイント1との間で
USBのバルクIN転送が行われ、PIPEbとペリフ
ェラル1のエンドポイント2との間ではバルクOUT転
送が行われる。また、PIPEcとペリフェラル2のエ
ンドポイント1との間ではバルクIN転送が行われ、P
IPEdとペリフェラル2のエンドポイント2との間で
はバルクOUT転送が行われる。また、PIPEeとペ
リフェラル3のエンドポイント1との間ではインタラプ
トIN転送が行われる。
【0088】このように本実施形態では、パイプ領域
(汎用)とそれに対応するエンドポイントとの間では、
任意のデータ転送(アイソクロナス転送、バルク転送、
インタラプト転送)を行うことができる。
【0089】そして本実施形態では、パイプ領域とそれ
に対応するエンドポイントの間では、所与のデータ単位
(トータルサイズで指定されるデータ単位)のデータが
転送される。この場合のデータ単位としては、例えばI
RP(I/Oリクエストパケット)により転送要求され
るデータ単位又はそれを適当なサイズに分割したデータ
単位などを考えることができる。エンドポイントに対す
るこのデータ単位のデータ転送(一連のトランザクショ
ン)を、本実施形態における「パイプ」と呼ぶことがで
きる。そして、そのような「パイプ」のデータ(送信デ
ータ、受信データ)を記憶する領域がパイプ領域にな
る。
【0090】パイプ領域を用いた所与のデータ単位の転
送が終了すると、そのパイプ領域は解放することができ
る。そして、解放されたパイプ領域は、任意のエンドポ
イントに割り当てることができる。このように本実施形
態では、パイプ領域とエンドポイントとの対応づけを、
動的に変化させることができる。
【0091】また本実施形態では図5(B)に示すよう
に、ペリフェラル動作時には、パケットバッファ100
にエンドポイント領域EP0〜EPeが確保(設定)さ
れる。そして、この各エンドポイント領域EP0〜EP
eとホスト(ホストコントローラ、システムメモリ)と
の間で、データが転送される。
【0092】このように本実施形態では、パケットバッ
ファ100のバッファ領域を、ホスト動作時にはパイプ
領域に割り当て、ペリフェラル動作時にはエンドポイン
ト領域に割り当てている。これにより、ホスト動作時と
ペリフェラル動作時とでパケットバッファ100のリソ
ースを共用(兼用)することが可能になり、パケットバ
ッファ100の使用記憶容量を節約できる。
【0093】なおパイプ領域、エンドポイント領域の個
数は6個に限定されず任意である。
【0094】5.SOF無しモード(SOF無しバルク
のみ転送モード) さて、USB規格(USB1.1、USB2.0、OT
G等)では、4種類の転送タイプ(アイソクロナス、バ
ルク、コントロール、インタラプト)が定義されてい
る。USBホストは、これらの各転送タイプのパケット
の転送順序を制御、管理し、各転送タイプのパケットの
転送を指示する。このために、USBではホストがフレ
ーム管理を行い、図6(A)に示すように、フレーム
(1ms、125μs)毎に、SOF(Start Of Fram
e)パケットをペリフェラルに発行する。
【0095】なお、SOFは、フレームの先頭を示すた
めのトークンパケットであり、PIDとフレーム番号と
CRCを含む。このSOFはホストが送信する。ホスト
は、1つのトランザクションが複数のフレームにまたが
らないようにスケジューリング管理を行う。また、フレ
ームは、SOFと次のSOFとの間のインターバルであ
る。また、バルク転送は、印刷データや画像データなど
の大量のデータを、非周期的に転送する方式である。
【0096】周期(同期)転送であるアイソクロナス転
送、インタラプト転送では、フレームタイミングやフレ
ーム番号などの情報が重要な意味を持つ。従って、これ
らの情報を伝達するためにSOFパケットが必要にな
る。
【0097】一方、非周期転送であるバルク転送、コン
トロール転送では、これらの情報は特に必要ではないと
考えられるが、USBでは、このような非周期転送の場
合にも、ホストがSOFパケットを転送することを要求
している。
【0098】しかしながら、バルク転送などの非周期転
送においてSOFパケットを転送すると、このSOFパ
ケットの転送自体によりバス帯域を消費してしまう。更
に、図6(B)に示すように、USBでは、このSOF
パケットがあることで、フレーム終端に転送禁止期間
(転送禁止領域)が生じ、バス帯域が更に狭まってしま
う。
【0099】そしてUSBは、プリンタの印刷データの
転送、デジタルカメラの画像データの転送、ストレージ
装置の記憶データの転送などに広く利用されており、こ
れらのデータの転送には、バルク転送が用いられる。従
って、このバルク転送において、本来は必要でないSO
Fパケットによりバス帯域が狭まってしまうと、リソー
スの無駄な消費になってしまう。
【0100】そこで本実施形態では、バルク転送などの
非周期転送において、SOFパケット(フレーム開始を
指示するパケット)の転送を無効(cancel)にする手法
を採用している。
【0101】より具体的には、SOF有りモード(広義
には第1のモード)が設定された場合には、SOFパケ
ット(SOFトークンパケット)をフレーム周期で転送
しながらデータ転送を行う。一方、SOF無しモード
(広義には第2のモード)が設定され且つ非周期転送
(バルク転送又はコントロール転送等)を行う場合に
は、SOFパケットの周期転送を無効にして、非同期デ
ータ(バルクデータ又はコントロールデータ等)を転送
する。
【0102】図7、図8、図9に、本実施形態の手法に
よるデータ転送の信号波形例を示す。
【0103】例えば図7において、自動トランザクショ
ンの開始指示がファームウェア(処理部)により行われ
ると、C1に示すように、PipeXTranGo(PipeXについて
のファームウェアからの転送要求信号)がアクティブに
なる。これにより、そのPipeX(X=0〜e)について
の、ホストコントローラ50による自動トランザクショ
ン処理が開始する。
【0104】ここで、図7では、EnNoSOFMode(SOF
無しモード指定、SOF無しバルクのみ転送モード指
定)が非アクティブ(Lレベル)になっており、SOF
有りモード(第1のモード)に設定されている。従っ
て、この場合には、ホストコントローラ50(広義には
転送コントローラ。以下の説明でも同様)は、C2に示
すようにSOFパケットを生成して、ペリフェラルに転
送する。
【0105】次に、C3に示すようにPipeTranGo(ホス
トコントローラ50内のHCシーケンス管理回路からの
転送要求信号)がアクティブになり、C4に示すように
ホストコントローラ50がトランザクションを自動発生
してパケットを転送する。このトランザクションは、ト
ークンパケットと、オプショナルなデータパケットと、
オプショナルなハンドシェークパケットにより構成され
る。そして、トランザクションが完了すると、C5に示
すようにTranCmpACKがアクティブになる。次に、C6に
示すようにPipeTranGoがアクティブになり、C7に示す
ように次のトランザクションが行われ、トランザクショ
ンが終了するとC8に示すようにTranCmpACKがアクティ
ブになる。
【0106】以上のようにしてホストコントローラ50
は、トランザクションを次々と自動発生して、そのトラ
ンザクションを構成するパケットを自動転送する。そし
て、残りフレーム時間が少なくなり、C9に示すように
転送禁止期間になると、当該フレームでのトランザクシ
ョンの発生を終了する。
【0107】即ち、USBでは、フレーム終端に転送禁
止期間が規定されており、この期間においてはパケット
の転送が禁止される。このため、ホストコントローラ5
0は、この転送禁止期間ではトランザクションを発生し
ない。そして、C2に示す前回のSOFの転送から1フ
レーム(1ms)のインターバルが経過した後に、C1
0に示すように次のSOFを転送する。これにより、次
のフレームが開始し、ホストコントローラ50は、C1
1に示すようにこの次のフレームでのトランザクション
を自動発生する。
【0108】このように本実施形態では、SOF有りモ
ードの設定時には、C2、C10に示すようにSOFパ
ケットをフレーム毎に周期的に発生してペリフェラルに
転送する。これにより、アイソクロナス転送などの周期
転送を適正に行うことが可能になる。
【0109】一方、本実施形態では図8に示すように、
EnNoSOFModeがアクティブ(Hレベル)になると、SO
F無しモード(第2のモード)に設定される。すると、
ホストコントローラ50は、D1、D2、D3に示すよ
うに、SOFパケットの周期転送を行わないようにな
る。そして、D4〜D15に示すように、バルク転送の
トランザクションを間断なく連続実行する。
【0110】即ち図7のSOF有りモードでは、C9に
示す転送禁止期間において、トランザクションは実行さ
れない(パケットは転送されない)。
【0111】これに対して図8のSOF無しモード(S
OF無しバルクのみ転送モード)では、D7に示すよう
に、転送禁止期間においても、トランザクションを実行
する。また、D2に示すフレーム開始タイミングでSO
Fパケットを転送せずに、D8に示すようにSOF転送
期間においてもトランザクションを実行する。
【0112】このようにすれば、図7、図8を比較すれ
ば明らかなように、バルク転送時(バルクのみの転送
時)において、SOFパケットの転送期間とフレーム終
端の転送禁止期間(禁止領域)を合わせた期間(帯域)
を、バルク転送に割り当てることが可能になる。即ち、
複数フレームにまたがったトランザクションを発生でき
る。これにより、バス帯域が広がり、転送効率の向上を
図れる。
【0113】なお、SOF無しモードの設定時には、図
5(A)のパイプ領域の転送種別を、バルク転送(非周
期転送)に設定しておくことが望ましい。即ち、ファー
ムウェア等が、パイプ領域の転送種別を、アイソクロナ
ス転送やインタラプト転送などの周期転送に設定しない
ようにする。これにより適正な周期転送を実現できる。
【0114】6.転送データが無い場合のSOF発行 さて、アプリケーションの状況によっては、図8に示す
ような間断の無い連続的なバルク転送を実行できない場
合があり、転送すべきデータが一定期間存在しない事態
も生じる。
【0115】このような場合に、SOF無しモードが設
定されていると、バス・アクティビティが無くなってし
まい、ペリフェラル(デバイス)のステートがサスペン
ドなどに移行してしまうおそれがある。
【0116】そこで本実施形態では、転送すべきバルク
(非周期)データが無い場合には、SOF無しモード
(第2のモード)が設定された場合にも、SOFパケッ
トをフレーム周期で転送するようにしている。
【0117】即ち図9では、EnNoBulkModeがアクティブ
(Hレベル)になっており、SOF無しモードに設定さ
れている。従って、E1、E2に示すようにSOFパケ
ットは発行されず、E3〜E6に示すようにバルク転送
のトランザクションが連続実行されている。
【0118】ところが図9のE7では、トランザクショ
ンを連続実行したことにより、転送すべきデータ(実行
すべきトランザクション)が無くなっている。このよう
な場合に本実施形態では、SOF無しモードに設定され
ているのにもかかわらず、E8、E9、E10に示すよ
うに、ホストコントローラ50がSOFパケットをペリ
フェラルに自動転送する。このSOFパケットの転送に
より、バス・アクティビティが生じ、ペリフェラルがサ
スペンドに移行してしまう事態を防止でき、適正なデー
タ転送を実現できる。
【0119】なお、転送すべきデータがあるか否かの検
出は、例えば、自動トランザクションの開始指示信号に
より判断したり、パケットバッファ100の状態(フ
ル、エンプティ信号)を監視することなどにより判断で
きる。
【0120】より具体的には例えば図5(A)におい
て、パイプ領域PIPE0〜PIPEeの自動転送の開
始指示信号(PipeXTranGo:X=0〜e)が、全て非アクティ
ブの時に、転送すべきデータが無いと判断する。そし
て、このように判断した場合には、SOF無しモードに
設定されていてもSOFパケットを自動転送する。この
ようにすれば、転送すべきデータが有るか無いかを、少
ない負荷の処理で簡素に判断できる。
【0121】7.回路例 図10に、SOFパケットの周期転送を無効にする回路
の具体例を示す。この図10の回路は、図4のホストコ
ントローラ50に含まれる。
【0122】SOF転送開始トリガ生成回路200は、
フレーム周期毎にSOFTranGo(SOF転送開始トリガ)
をアクティブ(論理値「1」=Hレベル)にし、SOF
パケットの転送が完了した場合にSOFTranGoを非アクテ
ィブ(論理値「0」=Lレベル)にする回路である。
【0123】具体的には、SOF転送開始トリガ生成回
路200は、図4のOTGコントローラ20(ステート
コントローラ)からのRemainCount(フレーム残り時間
カウント値)とCLK(クロック信号)を受ける。ま
た、論理積回路AND1を介してSOFTranComp(SOF
転送完了信号)を受ける。そして、RemainCountに基づ
いてフレーム周期毎にSOFTranGoをアクティブ
(「1」)にする。そして、SOFTranCompがアクティブ
になり、論理積回路AND1の出力であるCLR(クリ
ア信号)がアクティブ(「0」)になると、SOFTranGo
を非アクティブ(「0」)にする。これにより、フレー
ム周期毎にアクティブになるパルス状のトリガ信号SOFT
ranGoを生成できる。
【0124】SOF無効信号生成回路210(SOF無
しモード条件判断回路)は、Pipe0TranGo〜PipeeTranGo
(パイプ領域PIPE0〜PIPEeの転送開始指示信
号)と、HCState[1],[0](OTGコントローラ20から
のステート情報信号)と、EnNoSOFMode(SOF無しモ
ード指示信号、SOF無しバルク転送のみモード指示信
号。広義には第1又は第2のモードを指示する信号)を
受ける。そして、SOFTranGoを無効にする信号(SOFTran
Goが常に非アクティブになるように設定する信号)であ
るSOFCancelを生成する。このSOF無効信号生成回路
210は、論理和回路OR1、OR2、論理積回路AN
D2、AND3、AND4、インバータ回路INV2、
INV3を含む。
【0125】ここで、OR1にはPipe0TranGo〜PipeeTr
anGoが入力される。このPipeXTran(X=0〜e)は、図7
のC1、C12に示すように、ファームウェア(処理
部)が各パイプ領域の自動転送の開始を指示した時にア
クティブ(「1」)になり、そのパイプ領域についての
ホストコントローラ50による自動転送が完了した時に
非アクティブ(「0」)になる信号である。
【0126】AND2にはHCState[1],[0]が入力され
る。このHCState[1],[0]は、図11(A)に示すよう
に、図4のOTGコントローラ20により制御されるデ
ータ転送制御装置のステート(Aデバイス、Bデバイス
のOTGステート)が、サスペンド、リセット、レジュ
ーム、ホスト動作(Host Operation)の時に、各々、
「00」、「01」、「10」、「11」になる信号で
ある。
【0127】INV2にはEnNoSOFModeが入力される。
このEnNoSOFModeは、図7のC13に示すようにSOF
有りモード(第1のモード)の時に非アクティブ
(「0」)になり、図8のD16に示すようにSOF無
しモード(第2のモード)の時にアクティブ(「1」)
になる信号である。
【0128】AND3には、OR1、AND2、INV
2の出力Q1、Q2、Q3が入力され、INV3にはQ
1が入力される。AND4には、INV3の出力Q4と
AND2の出力Q2が入力される。OR2には、AND
3、AND4の出力Q5、Q6が入力され、SOFCancel
を出力する。
【0129】図11(B)に、SOF無効信号生成回路
210の真理値表を示す。
【0130】図11(B)のF1に示すように、HCStat
e[1],[0]が、「00」、「01」、又は「10」の場合
には、SOFCancelが「0」になる。即ち、データ転送制
御装置(ホストコントローラ50)のステートがサスペ
ンド、リセット、又はレジュームの場合には、SOFCance
lが「0」になり、SOFTranGoが常に「0」になること
で、SOFパケットの周期転送が無効になる。
【0131】図11(B)のF2に示すように、HCStat
e[1],[0]が「11」で、EnNoSOFModeが「0」の場合に
は、SOFCancelが「1」になる。即ち、ステートがホス
ト動作(Host Operation)であり、SOF有りモード
(EnNoSOFMode=「0」)に設定されている場合には、
図7のC2、C10に示すようにSOFパケットがフレ
ーム周期で転送されながら、データ転送が行われる。
【0132】図11(B)のF3に示すように、HCStat
e[1],[0]が「11」で、EnNoSOFModeが「1」で、且
つ、Pipe0TranGo〜PipeeTranGoの少なくとも1つが
「1」の場合には、SOFCancelが「0」になる。即ち、
ステートがホスト動作であり、SOF無しモード(EnNo
SOFMode=「1」)に設定され、且つ、転送すべきデー
タが有る場合には、図8のD1、D2、D3に示すよう
にSOFパケットの周期転送が無効になる。そして図8
のD4〜D15に示すように、バルクデータのトランザ
クションがフレーム間にまたがって間断無く連続実行さ
れる。即ちホストコントローラ50は、パイプ領域とそ
のパイプ領域に対応するバルク(非周期)転送のエンド
ポイントの間で、SOFパケットの周期転送を無効にし
ながら、バルクデータ(パケット)を自動転送する。
【0133】図11(B)のF4に示すように、HCStat
e[1],[0]が「11」で、EnNoSOFModeが「1」で、且
つ、Pipe0TranGo〜PipeeTranGoの全てが「0」の場合に
は、SOFCancelが「1」になる。即ち、ステートがホス
ト動作であり、SOF無しモード(EnNoSOFMode=
「1」)に設定されている場合にも、転送すべきデータ
が無い場合(Pipe0TranGo〜PipeeTranGo=「0」)に
は、図9のE8、E9、E10に示すように、SOFパ
ケットが周期転送される。即ちホストコントローラ50
は、パイプ領域の自動転送開始指示信号Pipe0TranGo〜P
ipeeTranGoが全て非アクティブ(「0」)の場合には、
転送すべきデータが無いと判断する。そして、この場合
には、SOF無しモードが設定されていても、SOFパ
ケットをフレーム周期で自動転送する。これにより、ペ
リフェラルが誤ってサスペンドステートに移行してしま
う事態を防止できる。
【0134】8.転送条件レジスタ(共用レジスタ) 本実施形態では図12に示すように、ホスト動作時に
は、パイプ領域PIPE0〜PIPEeとエンドポイン
トとの間で行われるデータ転送の転送条件情報(転送方
向、転送種別、マックスパケットサイズ又はページ数
等)が、転送条件レジスタTREG0〜TREGeに設
定される。即ち、PIPE0、PIPEa、PIPE
b、PIPEc、PIPEd、PIPEeの転送条件情
報は、各々、TREG0、TREGa、TREGb、T
REGc、TREGd、TREGeに設定(記憶)され
る。この設定は、例えばファームウェア(CPU)によ
り行われる。
【0135】そしてホストコントローラ50(広義には
転送コントローラ)は、転送条件レジスタTREG0〜
TREGeに設定された転送条件情報に基づいて、エン
ドポイントに対するトランザクションを発生する。そし
て、パイプ領域とそれに対応するエンドポイントとの間
で、データ(パケット)を自動転送する。
【0136】このように本実施形態では、各パイプ領域
(バッファ領域)に対応して各転送条件レジスタが設け
られ、この各転送条件レジスタに設定された転送条件情
報に基づいて、各パイプ領域のパイプ転送(所与のデー
タ単位の転送)がホストコントローラ50により自動的
に行われる。従って、ファームウェア(ドライバ、ソフ
トウェア)は、転送条件レジスタに転送条件情報を設定
した後は、データ転送が完了するまで、データ転送制御
に関わらなくて済むようになる。そして、所与のデータ
単位のパイプ転送が完了すると割り込みが発生し、転送
の完了がファームウェアに伝えられる。これにより、フ
ァームウェア(CPU)の処理負荷を格段に低減でき
る。
【0137】なお、本実施形態では図13に示すように
ペリフェラル動作時には、エンドポイント領域EP0〜
EPeとホストとの間で行われるデータ転送の転送条件
情報(転送方向、転送種別、マックスパケットサイズ又
はページ数等)が、転送条件レジスタTREG0〜TR
EGeに設定される。そしてペリフェラルコントローラ
60(広義には転送コントローラ)は、転送条件レジス
タTREG0〜TREGeに設定された転送条件情報に
基づいて、エンドポイント領域とホストとの間でのデー
タ転送を行う。
【0138】このように本実施形態では、転送条件レジ
スタTREG0〜TREGeが、ホスト動作時とペリフ
ェラル動作時とで共用(兼用)される。これにより、レ
ジスタ部70のリソースを節約でき、データ転送制御装
置を小規模化できる。
【0139】図14に、レジスタ部70のレジスタ構成
例を示す。なお、レジスタ部70のレジスタの一部を、
各ブロック(OTGC、HC、PC、Xcvr等)内に
含ませてもよい。
【0140】図14に示すように、レジスタ部70の転
送条件レジスタ(TREG0〜TREGeの各々)は、
ホスト動作時(HC、PIPE)とペリフェラル動作時
(PC、EP)で共用されるHC/PC共用レジスタ
(共用転送条件レジスタ)を含む。また、ホスト動作時
にのみ使用されるHC(PIPE)用レジスタ(ホスト
用転送条件レジスタ)を含む。また、ペリフェラル動作
時にのみ使用されるPC(EP)用レジスタ(ペリフェ
ラル用転送条件レジスタ)を含む。また、パケットバッ
ファ(FIFO)のアクセス制御などを行うためのレジ
スタであり、ホスト動作時とペリフェラル動作時で共用
されるアクセス制御レジスタを含む。
【0141】例えば、デュアルロール・デバイスのホス
ト動作時に、ホストコントローラ50(HC)は、HC
/PC共用レジスタとHC用レジスタに設定される転送
条件情報に基づいて、データ(パケット)を転送する。
【0142】一方、ペリフェラル動作時には、ペリフェ
ラルコントローラ60(PC)は、HC/PC共用レジ
スタとPC用レジスタに設定される転送条件情報に基づ
いて、データ(パケット)を転送する。
【0143】また、ホスト動作時、ペリフェラル動作時
の両方において、バッファコントローラ80は、共用ア
クセス制御レジスタに基づいて、パケットバッファ10
0へのアクセス制御(リード/ライト・アドレスの発
生、データのリード/ライト、アクセスの調停等)を行
うことになる。
【0144】図14のHC/PC共用レジスタには、デ
ータの転送方向(IN、OUT又はSETUP等)、転
送種別(アイソクロナス、バルク、インタラプト、コン
トロールなどのトランザクションの種別)、エンドポイ
ント番号(各USBデバイスのエンドポイントに関連づ
けられる番号)、マックスパケットサイズ(エンドポイ
ントが送信又は受信可能なパケットの最大ペイロードサ
イズ。ページサイズ)が設定される。また、バッファ領
域(パイプ領域、エンドポイント領域)のページ数(バ
ッファ領域の面数)が設定される。また、DMA接続の
有無(DMAハンドラ回路112によるDMA転送の使
用の有無)を指示する情報が設定される。
【0145】HC(PIPE)用レジスタには、インタ
ラプト転送のトークン発行周期(インタラプト・トラン
ザクションを起動する周期、インターバル)が設定され
る。また、トランザクションの連続実行回数(パイプ領
域間の転送比率を設定する情報。各パイプ領域のトラン
ザクションの連続実行回数)が設定される。また、ファ
ンクションアドレス(エンドポイントを有するファンク
ションのUSBアドレス)、転送データのトータルサイ
ズ(各パイプ領域を介して転送されるデータのトータル
サイズ。IRPなどのデータ単位)が設定される。ま
た、自動トランザクションの開始指示(ホストコントロ
ーラに対する自動トランザクション処理の開始指示)が
設定される。また、自動コントロール転送モードの指示
(コントロール転送のセットアップステージ、データス
テージ、ステータスステージのトランザクションを自動
発生するモードの指示)が設定される。
【0146】PC(EP)用レジスタには、エンドポイ
ントイネーブル(エンドポイントのイネーブルやディス
エーブルの指示)、ハンドシェーク指定(各トランザク
ションで行われるハンドシェークの指定)が設定され
る。
【0147】パケットバッファ(FIFO)用の共用ア
クセス制御レジスタには、バッファ・I/Oポート(C
PUによりPIO転送を行う場合のI/Oポート)が設
定される。また、バッファ・フル/エンプティ(各バッ
ファ領域のフル、エンプティの通知)、バッファ・残り
データサイズ(各バッファ領域の残りデータサイズ)が
設定される。
【0148】レジスタ部70は、インタラプト系レジス
タ、ブロック系レジスタ、DMA制御レジスタなども含
む。
【0149】インタラプト系レジスタは、割り込みのス
テータス(要因)をCPUに対して示すためのインタラ
プト・ステータスレジスタ、割り込みのイネーブル、デ
ィスエーブル(非マスク、マスク)を設定するインタラ
プト・イネーブルレジスタを含む。なお、割り込みに
は、OTGコントローラ20系、ホストコントローラ5
0系、ペリフェラルコントローラ60系の割り込みがあ
る。
【0150】ブロック系レジスタは、ブロック間で共用
されるブロック間共用レジスタや、各ブロック(Xcv
r、OTGC、HC、PC)内で使用されるブロック用
レジスタを含む。
【0151】ブロック間共用レジスタには、各ブロック
のリセットを指示するレジスタなどがある。ブロック用
レジスタには、トランシーバ10(Xcvr)を制御す
るためのレジスタや、OTGコントローラ20(OTG
C)のステートコマンドレジスタや、ホストコントロー
ラ50(HC)のステートコマンドレジスタや、フレー
ム番号を設定するレジスタなどがある。
【0152】以上のように本実施形態では、ホスト動作
時とペリフェラル動作時で共用されるレジスタ(HC/
PC共用レジスタ、共用アクセス制御レジスタ)をレジ
スタ部70に設けている。これにより、ホスト動作時用
のレジスタとペリフェラル動作時用のレジスタを全く別
個に設ける場合に比べて、レジスタ部70を小規模化で
きる。また、CPU上で動作するファームウェア(ドラ
イバ)から見た共用レジスタのアクセスアドレスを、ホ
スト動作時とペリフェラル動作時とで同一にできる。従
って、ファームウェアは、これらの共用レジスタを同一
アドレスで管理できるようになり、ファームウェア処理
を簡素化できる。
【0153】また、HC用レジスタや、PC用レジスタ
を設けることで、ホスト動作時(PIPE)の転送やペ
リフェラル動作時(EP)の転送に特有の転送条件を設
定できる。例えば、トークン発行周期を設定すること
で、ホスト動作時にインタラプト転送のトークンを所望
の周期で発行することが可能になる。また、連続実行回
数を設定することで、ホスト動作時にパイプ領域間の転
送比率を任意に設定できる。また、トータルサイズを設
定することで、ホスト動作時にパイプ領域を介して自動
転送されるデータのサイズを任意に設定できる。またフ
ァームウェアは、ホスト動作時に、自動トランザクショ
ンの開始を指示したり、自動コントロール転送モードの
オン/オフを指示できるようになる。
【0154】9.自動トランザクション 図15に、ホストコントローラ50の自動トランザクシ
ョン(IN、OUT)処理時におけるファームウェア処
理のフローチャート例を示す。
【0155】まず、ファームウェア(処理部、ドライ
バ)は、図14等で説明した転送条件レジスタに転送条
件情報(パイプ情報)を設定する(ステップS1)。よ
り具体的には、転送データのトータルサイズ、マックス
パケットサイズ(MaxPktSize)、ページ数(BufferPag
e)、転送方向(IN、OUT又はSETUP)、転送
種別(アイソクロナス、バルク、コントロール、インタ
ラプト)、エンドポイント番号、パイプ領域のトランザ
クションの連続実行回数(転送比率)、インタラプト転
送のトークン発行周期などを、転送条件レジスタに設定
する。
【0156】次に、外部のシステムメモリとパケットバ
ッファ100の間に転送経路を設定する(ステップS
2)。即ち図4のDMAハンドラ回路112を介したD
MA転送経路を設定する。
【0157】次に、ファームウェアは、DMA転送の開
始指示を行う(ステップS3)。即ち、図14のDMA
制御レジスタのDMA転送開始指示ビットをアクティブ
にする。なお、CPUによる転送では、図14のバッフ
ァ・I/Oポートにアクセスすることで、パケットバッ
ファ100にアクセスすることが可能になる。
【0158】次に、ファームウェアは、自動トランザク
ションの開始指示を行う(ステップS4)。即ち、図1
4のHC用レジスタ(パイプレジスタ)の自動トランザ
クション開始指示ビットをアクティブにする。これによ
り、ホストコントローラ50による、自動トランザクシ
ョン処理、パケット処理(パケットの生成、分解)、ス
ケジューリング処理が行われる。即ち、ホストコントロ
ーラ50は、トータルサイズで指定されるデータを、マ
ックスパケットサイズのペイロードのパケットを用い
て、転送方向で指定される方向(IN、OUT)で、自
動転送する。
【0159】なお、ステップS3、S4の処理の順序は
問わず、自動トランザクション開始指示の後にDMA転
送の開始指示を行ってもよい。
【0160】次に、ファームウェアは、パイプ転送の完
了を知らせる割り込みが発生するのを待つ(ステップS
5)。そして、割り込みが発生すると、ファームウェア
は、図14のインタラプト系レジスタの割り込みステー
タス(要因)を調べる。そして、処理が正常完了又はエ
ラー終了する(ステップS6)。
【0161】このように本実施形態によれば、ファーム
ウェアは、各パイプ領域毎に転送条件情報を設定し(ス
テップS1)、DMA転送開始の指示(ステップS3)
と自動トランザクション開始の指示(ステップS4)を
行うだけで、その後のデータ転送処理はホストコントロ
ーラ50のハードウェア回路により自動的に行われるよ
うになる。従って、図3(A)、(B)で説明したOH
CI準拠の手法に比べて、ファームウェアの処理負荷が
軽減され、低性能のCPUが組み込まれる携帯機器に最
適なデータ転送制御装置を提供できる。
【0162】10.各ブロックの詳細な構成例 次に各ブロックの詳細な構成例について説明する。
【0163】10.1 OTGコントローラ 図16に、OTGコントローラ20の構成例を示す。
【0164】OTGコントローラ20は、OTGレジス
タ部22を含む。このOTGレジスタ部22は、OTG
コントローラ20のモニタレジスタや制御レジスタを含
む。またファームウェア(CPU)により書き込まれる
OTGステートコマンドをデコードする回路を含む。
【0165】またOTGコントローラ20はOTG制御
回路23を含む。そして、このOTG制御回路23は、
OTGステートの管理を行うOTG管理回路24、ID
ピンの電圧レベルを検出するID検出回路25、VBU
Sの電圧レベルを検出するVBUS検出回路26、DP
及びDMのラインステートを検出するラインステート検
出回路27を含む。
【0166】またOTGコントローラ20は、OTGス
テートの遷移判断条件の1つである時間を計測するタイ
マ28を含む。
【0167】OTGステートを遷移させるために検出す
べき情報は、ID、VBUSの電圧レベル、DP/DM
のラインステートである。本実施形態のOTGコントロ
ーラ20は、これらの情報を検出し、モニタレジスタを
介してファームウェア(CPU)に伝える。
【0168】ファームウェアは、これらの検出情報に基
づいて自身のステートを遷移させると共に、次に遷移す
べきステートを、OTGステートコマンドを用いてOT
Gコントローラ20に伝える。
【0169】OTGコントローラ20は、OTGステー
トコマンドをデコードし、そのデコード結果に基づい
て、VBUSのドライブ制御、プルアップ/プルダウン
抵抗の接続制御等を行い、図2(A)、(B)で説明し
たSRPやHNPを実現する。
【0170】このように本実施形態では、ステート毎の
OTG制御はOTGコントローラ20が担当し、ファー
ムウェアはステートの遷移管理に専念できる。この結
果、全てのステート制御をファームウェアで実現する場
合に比べて、ファームウェア(CPU)の処理負荷を軽
減できると共に、効率的なファームウェア開発が可能に
なる。
【0171】なお、OTGのステート遷移の判断を、フ
ァームウェアが行わずに、ハードウェア回路が行うよう
にしてもよい。或いは、OTGコントローラ20のほと
んど全ての処理(例えばVBUS制御、プルアップ/プ
ルダウン抵抗制御、ID検出、VBUS検出、ラインス
テート検出以外の処理)をファームウェア(ソフトウェ
ア)により実現してもよい。
【0172】10.2 ホストコントローラ、ペリフェ
ラルコントローラ 図17(A)に、ホストコントローラ50の構成例を示
す。
【0173】ホストコントローラ50はHCシーケンス
管理回路52を含む。このHCシーケンス管理回路52
は、パイプ転送(パイプ領域を用いたデータ転送)の調
停、時間管理、パイプ転送のスケジューリング、再送管
理などを行う。
【0174】より具体的にはHCシーケンス管理回路5
2は、フレーム番号のカウントや、SOF(Start-Of-F
rame)パケットの送信指示を行う。また、アイソクロナ
ス転送を各フレームの先頭で優先的に実行するための処
理を行ったり、インタラプト転送をアイソクロナス転送
の次に優先的に取り扱うための処理を行う。また、パイ
プ転送の順序に従って各パイプ転送を指示する処理を行
う。また、トランザクションの連続実行回数を管理した
り、残りフレーム時間の確認処理を行う。また、ペリフ
ェラルから返ってきたハンドシェークパケット(AC
K、NAK)に対する処理を行う。また、トランザクシ
ョン実行時のエラー処理を行う。
【0175】ホストコントローラ50はターゲットパイ
プ管理回路54を含む。このターゲットパイプ管理回路
54は、レジスタ部70の転送条件レジスタに設定され
た転送条件情報のハンドリング処理などを行う。
【0176】より具体的にはターゲットパイプ管理回路
54は、転送条件情報の選択処理や、割り込み信号の生
成処理を行う。また自動トランザクションの開始が指示
された場合に、そのパイプ領域の転送データのトータル
サイズをロードする。そして、残り転送データサイズの
カウント(デクリメント)処理を行う。また、バッファ
コントローラ80へのデータの送受信の際にバッファ
(FIFO)領域の状態を確認する処理を行う。また、
トランザクション管理回路56への転送指示を行う。ま
た、予期しないショートパケットの受信の判断処理や、
マックスパケットサイズ以上のパケットの受信の判断処
理を行う。また、零長パケットを自動転送するモードが
設定されている場合には、最後の零長パケットの送信を
トランザクション管理回路56に指示する。また、自動
コントロール転送モードでのシーケンス管理を行う。
【0177】ホストコントローラ50はトランザクショ
ン管理回路56を含む。このトランザクション管理回路
56は、転送パケットの種類や転送順序の管理(トラン
ザクションのシーケンス管理)を行う。また、タイムア
ウトの監視処理を行う。また、トランザクション終了の
通知処理を行う。
【0178】ホストコントローラ50はパケットハンド
ラ回路58を含む。このパケットハンドラ回路58は、
パケットの生成、分解処理を行う。また、PIDのチェ
ックやCRCのデコード、エンコードを行う。また、バ
ッファ領域のパケットのペイロードのリード、ライト処
理や、SOFパケットの送信処理を行う。また、送受信
データのカウント処理を行う。
【0179】図17(B)にペリフェラルコントローラ
60の構成例を示す。
【0180】ペリフェラルコントローラ60は、トラン
ザクション管理回路62、パケットハンドラ回路64を
含む。これらのトランザクション管理回路62、パケッ
トハンドラ回路64は、ホストコントローラ50のトラ
ンザクション管理回路56、パケットハンドラ回路58
とほぼ同様の処理を行う。
【0181】10.3 バッファコントローラ 図18にバッファコントローラ80の構成例を示す。
【0182】バッファコントローラ80は領域確保(al
location)回路82を含む。この領域確保回路82は、
パケットバッファ100に、バッファ領域(ホスト動作
時にパイプ領域に設定され、ペリフェラル動作時にエン
ドポイント領域に設定される領域)を確保する回路であ
る。
【0183】領域確保回路82は領域計算回路83を含
む。この領域計算回路83は、マックスパケットサイズ
(広義にはページサイズ)やページ数に基づいて、バッ
ファ領域の領域サイズ、スタートアドレス、エンドアド
レスなどを計算する回路である。
【0184】例えば図19(A)に示すバッファ領域P
IPE0/EP0、PIPEa/EPa、PIPEb/
EPb、PIPEc/EPcでは、マックスパケットサ
イズ(MaxPktSize)が、各々、32、64、64、64
バイトに設定され、ページ数(BufferPage)が、各々、
1、1、3、2ページに設定されている。領域計算回路
83は、これらのマックスパケットサイズ、ページ数な
どに基づいて、バッファ領域PIPE0/EP0〜PI
PEc/EPcの領域サイズ、スタートアドレス、エン
ドアドレスを計算する。例えば図19(A)において、
PIPE0/EP0、PIPEa/EPa、PIPEb
/EPb、PIPEc/EPcの領域サイズは、各々、
32(=32×1)、64(=64×1)、192(=
64×3)、128(=64×2)バイトと計算される
ことになる。
【0185】ポインタ割り当て回路84は、各バッファ
領域の書き込みポインタWP(WP0、WPa、WP
b、WPc)、読み出しポインタRP(RP0、RP
a、RPb、RPc)を、DMA用ポインタ、CPU用
ポインタ、USB用ポインタに割り当てる回路である。
【0186】例えば図19(B)に示すように、データ
送信時(DMA又はCPUからパケットバッファ100
を介してUSB側にデータが転送される時)であり、且
つ、DMA転送使用時には、そのバッファ領域の書き込
みポインタWPはDMA(DMAアクセス)用のポイン
タに割り当てられ、読み出しポインタRPはUSB(U
SBアクセス)用のポインタに割り当てられる。また、
データ送信時であり且つCPU(PIO)転送使用時に
は、そのバッファ領域の書き込みポインタWPはCPU
(CPUアクセス)用のポインタに割り当てられ、読み
出しポインタRPはUSB用のポインタに割り当てられ
る。
【0187】一方、図19(C)に示すように、データ
受信時(USBからパケットバッファ100を介してD
MA又はCPU側にデータが転送される時)であり、且
つ、DMA転送使用時には、そのバッファ領域の書き込
みポインタWPはUSB用ポインタに割り当てられ、読
み出しポインタRPはDMA用ポインタに割り当てられ
る。また、データ受信時であり且つCPU転送使用時に
は、そのバッファ領域の書き込みポインタWPはUSB
用ポインタに割り当てられ、読み出しポインタRPはC
PU用ポインタに割り当てられる。
【0188】なお、各バッファ領域の書き込みポインタ
WP、読み出しポインタRPのポインタ情報(位置情
報)は、レジスタ部70の各転送条件レジスタ(PIP
E/EPレジスタ)に保持される。
【0189】ポインタ管理回路86は、ポインタの更新
を行いながら、パケットバッファ100にアクセスする
ための実アドレスを生成する回路である。
【0190】ポインタ管理回路86は、CPU用アドレ
ス生成回路87、DMA用アドレス生成回路88、US
B用アドレス生成回路89を含む。これらの生成回路8
7、88、89は、各々、ポインタ割り当て回路84に
より割り当てられたCPU用ポインタ、DMA用ポイン
タ、USB用ポインタに基づいて、CPU用アドレス、
DMA用アドレス、USB用アドレスを生成する。ま
た、CPU(CPUインターフェース回路)、DMA
(DMAハンドラ回路)からのアクセス毎に、或いはU
SB(HC又はPC)のトランザクション終了(AC
K、NAKなどのハンドシェーク送受信)毎に、ポイン
タを更新する処理を行う。なお、更新後のポインタの情
報は、領域確保回路82を介してレジスタ部70の各転
送条件レジスタに書き戻される。
【0191】バッファ管理回路90は、パケットバッフ
ァ100へのアクセスを管理する回路である。
【0192】バッファ管理回路90はバッファインター
フェース回路92を含む。このバッファインターフェー
ス回路92は、ポインタ管理回路86からのCPU用ア
ドレス、DMA用アドレス、USB用アドレスなどを受
け、パケットバッファ100へのデータの入出力や、ア
ドレス、出力イネーブル、ライトイネーブル、リードイ
ネーブルなどの出力を行う。
【0193】バッファ管理回路90は調停回路93を含
む。この調停回路93は、CPU(CPUインターフェ
ース回路)、DMA(DMAハンドラ回路)、USB
(ホストコントローラ又はペリフェラルコントローラ)
からのアクセスを調停する回路である。この調停結果に
基づいて、CPU用アドレス、DMA用アドレス、US
B用アドレスのいずれかが、パケットバッファ100の
アクセス・アドレスとして出力され、CPU、DMA又
はUSBとパケットバッファ100との間のデータ転送
経路が設定される。
【0194】HC/PCセレクタ94は、バッファ管理
回路90(バッファコントローラ80)とホストコント
ローラ50(HC)又はペリフェラルコントローラ60
(PC)との間の接続の切り替え制御を行う。例えばホ
スト動作時には、ホストコントローラ50とバッファ管
理回路90を接続し、ペリフェラル動作時には、ペリフ
ェラルコントローラ60とバッファ管理回路90を接続
する。なお、この接続の切り替え制御は、OTGコント
ローラ20(OTGC)からのHC/PCイネーブル信
号に基づいて行う。
【0195】11.電子機器 次に、本実施形態のデータ転送制御装置を含む電子機器
の例について説明する。
【0196】例えば図20(A)に電子機器の1つであ
るプリンタの内部ブロック図を示し、図21(A)にそ
の外観図を示す。CPU510(処理部)はシステム全
体の制御などを行う。操作部511はプリンタをユーザ
が操作するためのものである。ROM516には、制御
プログラム、フォントなどが格納され、RAM517
(システムメモリ)はCPU510のワーク領域として
機能する。DMAC518は、CPU510を介さずに
データ転送を行うためのDMAコントローラである。表
示パネル519はプリンタの動作状態をユーザに知らせ
るためのものである。
【0197】USBを介してパーソナルコンピュータ、
デジタルカメラ、デジタルビデオカメラなどの他の機器
から送られてきたシリアルの印刷データ(印字データ、
画像データ)は、データ転送制御装置500によりパラ
レルの印刷データに変換される。そして、変換後のパラ
レル印刷データは、CPU510又はDMAC518に
より、印刷処理部(プリンタエンジン)512に送られ
る。そして、印刷処理部512においてパラレル印刷デ
ータに対して所与の処理が施され、プリントヘッダなど
からなる印刷部(データの出力処理を行う装置)514
により紙に印刷されて出力される。
【0198】図20(B)に電子機器の1つであるデジ
タルカメラの内部ブロック図を示し、図21(B)にそ
の外観図を示す。CPU520はシステム全体の制御な
どを行う。操作部521(シャッターボタン、操作ボタ
ン等)はデジタルカメラをユーザが操作するためのもの
である。ROM526には制御プログラムなどが格納さ
れ、RAM527はCPU520のワーク領域として機
能する。DMAC528はDMAコントローラである。
【0199】CCD、レンズなどからなる撮像部(デー
タの取り込み処理を行う装置)522により画像が撮像
され、撮像された画像のデータは画像処理部524によ
り処理される。そして、処理後の画像データは、CPU
520又はDMAC528によりデータ転送制御装置5
00に送られる。データ転送制御装置500は、このパ
ラレルの画像データをシリアルデータに変換し、USB
を介してプリンタ、ストレージ装置、パーソナルコンピ
ュータなどの他の機器に送信する。
【0200】図20(C)に電子機器の1つであるCD
−RWドライブ(ストレージ装置)の内部ブロック図を
示し、図21(C)にその外観図を示す。CPU530
はシステム全体の制御などを行う。操作部531はCD
−RWをユーザが操作するためのものである。ROM5
36には制御プログラムなどが格納され、RAM537
はCPU530のワーク領域として機能する。DMAC
538はDMAコントローラである。
【0201】レーザ、モータ、光学系などからなる読み
取り&書き込み部(データの取り込み処理を行う装置又
はデータの記憶処理を行うための装置)533によりC
D−RW532から読み取られたデータは、信号処理部
534に入力され、エラー訂正処理などの所与の信号処
理が施される。そして、信号処理が施されたデータが、
CPU530又はDMAC538によりデータ転送制御
装置500に送られる。データ転送制御装置500は、
このパラレルのデータをシリアルデータに変換し、US
Bを介して他の機器に送信する。
【0202】一方、USBを介して他の機器から送られ
てきたシリアルのデータは、データ転送制御装置500
によりパラレルのデータに変換される。そして、このパ
ラレルデータは、CPU530又はDMAC538によ
り信号処理部534に送られる。そして、信号処理部5
34においてこのパラレルデータに対して所与の信号処
理が施され、読み取り&書き込み部533によりCD−
RW532に記憶される。
【0203】なお、図20(A)、(B)、(C)にお
いて、CPU510、520、530の他に、データ転
送制御装置500でのデータ転送制御のためのCPUを
別に設けるようにしてもよい。
【0204】本実施形態のデータ転送制御装置を電子機
器に用いれば、OTG機能を有する電子機器を実現でき
る。即ち、電子機器にホストとしての役割を持たせた
り、デバイスとしての役割を持たせることが可能にな
り、これまでに存在しなかったアプリケーションを創出
できる。
【0205】また本実施形態のデータ転送制御装置を電
子機器に用いれば、電子機器に組み込まれるCPU(処
理部)の処理負荷が軽減され、安価なCPUを用いるこ
とが可能になる。また、CPUが、データ転送制御処理
以外の他の処理を余裕を持って行うことが可能になり、
電子機器の性能向上や低コスト化を図れる。また、CP
U上で動作するファームウェアのプログラムを簡素化で
き、電子機器の開発期間の短縮化を図れる。
【0206】なお本実施形態のデータ転送制御装置を適
用できる電子機器としては、上記以外にも例えば、種々
の光ディスクドライブ(CD−ROM、DVD)、光磁
気ディスクドライブ(MO)、ハードディスクドライ
ブ、デジタルビデオカメラ、携帯電話、スキャナ、T
V、VTR、オーディオ機器、電話機、プロジェクタ、
パーソナルコンピュータ、電子手帳、或いはワードプロ
セッサなど種々のものを考えることができる。
【0207】なお、本発明は本実施形態に限定されず、
本発明の要旨の範囲内で種々の変形実施が可能である。
【0208】例えば、本発明のデータ転送制御装置の構
成は、図4等で説明した構成に限定されるものではな
く、種々の変形実施が可能である。
【0209】また、データ転送制御装置の各ブロック
(HC、PC、OTGC等)の構成も、本実施形態で説
明したものに限定されず、種々の変形実施が可能であ
る。
【0210】また、SOFパケットの周期転送を無効に
する回路も、図10に示す構成に限定されず、種々の変
形実施が可能である。
【0211】また、本発明のSOFパケットは、その名
称は問わず、SOFパケットと同等の機能を有するパケ
ット(フレーム開始を指示、管理するパケット)であれ
ばよい。
【0212】また、明細書中の記載において広義な用語
(非周期転送、周期転送、第1のモード、第2のモー
ド、ステートコントローラ、処理部、転送コントロー
ラ、バス、バッファ領域等)として引用された用語(バ
ルク転送、アイソクロナス転送、SOF有りモード、S
OF無しモード、OTGコントローラ、CPU・ファー
ムウェア、ホストコントローラ・ペリフェラルコントロ
ーラ、USB、パイプ領域・エンドポイント領域等)
は、明細書中の他の記載においても広義な用語に置き換
えることができる。
【0213】また、本発明のうち従属請求項に係る発明
においては、従属先の請求項の構成要件の一部を省略す
る構成とすることもできる。また、本発明の1の独立請
求項に係る発明の要部を、他の独立請求項に従属させる
こともできる。
【0214】また、本実施形態ではUSBのOTG規格
への適用例を説明したが、本発明が適用されるのはOT
G規格に限定されない。即ち、USBのOTGのみなら
ず、従来のUSB1.1、USB2.0や、これらの規
格を発展させた規格におけるデータ転送にも本発明は適
用できる。
【図面の簡単な説明】
【図1】図1(A)、(B)、(C)は、USBのOT
G規格について説明するための図である。
【図2】図2(A)、(B)は、SRPやHNPの手順
について説明するための図である。
【図3】図3(A)、(B)は、OHCIのリスト構造
のディスクリプタなどについて説明するための図であ
る。
【図4】本実施形態のデータ転送制御装置の構成例を示
す図である。
【図5】図5(A)、(B)は、パイプ領域、エンドポ
イント領域について説明するための図である。
【図6】図6(A)、(B)は、SOFパケットについ
て説明するための図である。
【図7】SOF有りモード(第1のモード)設定時の信
号波形例である。
【図8】SOF無しモード(第2のモード)設定時の信
号波形例である。
【図9】SOF無しモードに設定され、且つ、転送すべ
きデータが無い場合の信号波形例である。
【図10】SOFパケットの周期転送を無効にする回路
の構成例である。
【図11】図11(A)、(B)は、図10の回路の動
作を説明するための真理値表である。
【図12】データ転送制御装置のホスト時の動作につい
て説明するための図である。
【図13】データ転送制御装置のペリフェラル時の動作
について説明するための図である。
【図14】レジスタ部について説明するための図であ
る。
【図15】ファームウェアの処理例を説明するためのフ
ローチャートである。
【図16】OTGコントローラの詳細な構成例を示す図
である。
【図17】図17(A)、(B)は、ホストコントロー
ラ、ペリフェラルコントローラの詳細な構成例を示す図
である。
【図18】バッファコントローラの詳細な構成例を示す
図である。
【図19】図19(A)、(B)、(C)は、領域確保
手法やポインタ割り当て手法について説明するための図
である。
【図20】図20(A)、(B)、(C)は、種々の電
子機器の内部ブロック図の例である。
【図21】図21(A)、(B)、(C)は、種々の電
子機器の外観図の例である。
【符号の説明】
PIPE0〜PIPEe パイプ(バッファ)領域 EP0〜EPe エンドポイント(バッファ)
領域 TREG0〜TREGe 転送条件レジスタ(共用レジ
スタ) 10 トランシーバ 12 物理層回路 20 OTGコントローラ(ステートコントローラ) 30 HC/PC切り替え回路 32 HC/PCセレクタ 34 ラインステートコントローラ 40 転送コントローラ 50 ホストコントローラ 60 ペリフェラルコントローラ 70 レジスタ部 72 転送条件レジスタ部(共用レジスタ) 80 バッファコントローラ 100 パケットバッファ(FIFO、RAM) 110 インターフェース回路 112 DMAハンドラ回路 114 CPUインターフェース回路 120 クロックコントローラ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 神原 義幸 長野県諏訪市大和3丁目3番5号 セイコ ーエプソン株式会社内 (72)発明者 松田 邦昭 長野県諏訪市大和3丁目3番5号 セイコ ーエプソン株式会社内 Fターム(参考) 5B061 DD09 DD11 5K032 CC12 CD01 DB20 5K034 AA02 DD01 EE11 FF12 HH01 HH02 MM08 MM11

Claims (11)

    【特許請求の範囲】
  1. 【請求項1】 バスを介したデータ転送のためのデータ
    転送制御装置であって、 転送データを記憶するパケットバッファのアクセス制御
    を行うバッファコントローラと、 パケットバッファのデータの転送を制御する転送コント
    ローラとを含み、 前記転送コントローラが、 第1のモードが設定された場合には、SOF(Start Of
    Frame)パケットをフレーム周期で転送しながらデータ
    転送を行い、第2のモードが設定され且つ非周期転送を
    行う場合には、SOFパケットの周期転送を無効にし
    て、非周期データの転送を行うことを特徴とするデータ
    転送制御装置。
  2. 【請求項2】 請求項1において、 前記転送コントローラが、 転送すべき非周期データが無い場合には、第2のモード
    が設定された場合にも、SOFパケットをフレーム周期
    で転送することを特徴とするデータ転送制御装置。
  3. 【請求項3】 請求項1又は2において、 ホストの役割として動作するホスト動作のステートと、
    ペリフェラルの役割として動作するペリフェラル動作の
    ステートを含む複数のステートの制御を行うステートコ
    ントローラを含み、 前記パケットバッファには、 各エンドポイントとの間で転送されるデータが各パイプ
    領域に記憶される複数のパイプ領域が確保され、 前記転送コントローラが、 ホスト動作時において、ホストとしてのデータ転送を行
    うホストコントローラと、 ペリフェラル動作時において、ペリフェラルとしてのデ
    ータ転送を行うペリフェラルコントローラとを含み、 前記ホストコントローラが、 エンドポイントに対するトランザクションを自動発生
    し、パイプ領域と、そのパイプ領域に対応するエンドポ
    イントとの間で、データを自動転送することを特徴とす
    るデータ転送制御装置。
  4. 【請求項4】 請求項3において、 前記ホストコントローラが、 第2のモードが設定された場合には、パイプ領域とその
    パイプ領域に対応する非周期転送のエンドポイントとの
    間で、SOFパケットの周期転送を無効にしながら、非
    周期データを自動転送することを特徴とするデータ転送
    制御装置。
  5. 【請求項5】 請求項3又は4において、 前記ホストコントローラが、 パイプ領域の自動転送指示信号が全て非アクティブの場
    合には、第2のモードが設定された場合にも、SOFパ
    ケットをフレーム周期で自動転送することを特徴とする
    データ転送制御装置。
  6. 【請求項6】 請求項3乃至5のいずれかにおいて、 前記ホストコントローラが、 フレーム周期毎にSOF転送開始トリガをアクティブに
    し、SOFパケットの転送が完了した場合に前記SOF
    転送開始トリガを非アクティブにするSOF転送開始ト
    リガ生成回路と、 パイプ領域の自動転送指示信号と、ステートコントロー
    ラからのステート情報信号と、第1又は第2のモードを
    指示する信号を受け、前記SOF転送開始トリガを無効
    にする信号を生成するSOF無効信号生成回路とを含む
    ことを特徴とするデータ転送制御装置。
  7. 【請求項7】 請求項3乃至6のいずれかにおいて、 ペリフェラル動作時には、 ホストとの間で転送されるデータが各エンドポイント領
    域に記憶される複数のエンドポイント領域が、パケット
    バッファに確保され、前記ペリフェラルコントローラ
    が、エンドポイント領域とホストとの間でデータを転送
    することを特徴とするデータ転送制御装置。
  8. 【請求項8】 請求項1乃至7のいずれかにおいて、 前記非周期転送がUSB(Universal Serial Bus)規格
    のバルク転送又はコントロール転送であり、前記非周期
    データがバルクデータ又はコントロールデータであるこ
    とを特徴とするデータ転送制御装置。
  9. 【請求項9】 請求項1乃至8のいずれかにおいて、 USB(Universal Serial Bus)のOTG(On−Th
    e−Go)規格に準拠したデータ転送を行うことを特徴
    とするデータ転送制御装置。
  10. 【請求項10】 請求項1乃至9のいずれかのデータ転
    送制御装置と、 前記データ転送制御装置及びバスを介して転送されるデ
    ータの出力処理又は取り込み処理又は記憶処理を行う装
    置と、 前記データ転送制御装置のデータ転送を制御する処理部
    と、 を含むことを特徴とする電子機器。
  11. 【請求項11】 バスを介したデータ転送のためのデー
    タ転送制御方法であって、 転送データを記憶するパケットバッファのアクセス制御
    を行い、 パケットバッファのデータの転送を制御すると共に、 第1のモードが設定された場合には、SOF(Start Of
    Frame)パケットをフレーム周期で転送しながらデータ
    転送を行い、第2のモードが設定され且つ非周期転送を
    行う場合には、SOFパケットの周期転送を無効にし
    て、非周期データの転送を行うことを特徴とするデータ
    転送制御方法。
JP2002126880A 2002-04-26 2002-04-26 データ転送制御装置、電子機器及びデータ転送制御方法 Expired - Fee Related JP3726898B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2002126880A JP3726898B2 (ja) 2002-04-26 2002-04-26 データ転送制御装置、電子機器及びデータ転送制御方法
US10/377,673 US7409471B2 (en) 2002-04-26 2003-03-04 Data transfer control device for data transfer over a bus, electronic equipment and method for data transfer over a bus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002126880A JP3726898B2 (ja) 2002-04-26 2002-04-26 データ転送制御装置、電子機器及びデータ転送制御方法

Related Child Applications (1)

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

Publications (2)

Publication Number Publication Date
JP2003318926A true JP2003318926A (ja) 2003-11-07
JP3726898B2 JP3726898B2 (ja) 2005-12-14

Family

ID=29541167

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002126880A Expired - Fee Related JP3726898B2 (ja) 2002-04-26 2002-04-26 データ転送制御装置、電子機器及びデータ転送制御方法

Country Status (2)

Country Link
US (1) US7409471B2 (ja)
JP (1) JP3726898B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006164209A (ja) * 2004-12-08 2006-06-22 Cheng-Chun Chang ホスト機能を有するデジタル画像入力装置
US7266625B2 (en) 2004-01-26 2007-09-04 Matsushita Electric Industrial Co., Ltd. Data communication system

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050251589A1 (en) * 2004-05-04 2005-11-10 Jung-Chung Wang Method of authenticating universal serail bus on-the-go device
JP2005328280A (ja) * 2004-05-13 2005-11-24 Canon Inc データ処理装置
CN1791178A (zh) * 2004-12-17 2006-06-21 张成君 具主控功能的数字影像撷取装置
JP4293141B2 (ja) * 2005-02-18 2009-07-08 セイコーエプソン株式会社 データ転送制御装置及び電子機器
US7818350B2 (en) 2005-02-28 2010-10-19 Yahoo! Inc. System and method for creating a collaborative playlist
US7631097B2 (en) * 2005-07-21 2009-12-08 National Instruments Corporation Method and apparatus for optimizing the responsiveness and throughput of a system performing packetized data transfers using a transfer count mark
US7818603B2 (en) 2007-03-28 2010-10-19 Microsoft Corporation Deriving accurate media position information
US7769015B2 (en) * 2007-09-11 2010-08-03 Liquid Computing Corporation High performance network adapter (HPNA)
EP2227741A4 (en) * 2007-12-31 2011-10-05 Datalogic Mobile Inc SYSTEMS AND METHODS FOR CONFIGURING, UPDATING AND STARTING AN ALTERNATIVE OPERATING SYSTEM ON A PORTABLE DATA READER
US9237034B2 (en) 2008-10-21 2016-01-12 Iii Holdings 1, Llc Methods and systems for providing network access redundancy
JP5383564B2 (ja) * 2010-03-10 2014-01-08 ルネサスエレクトロニクス株式会社 データ転送回路及び方法
US9009380B2 (en) * 2010-12-02 2015-04-14 Via Technologies, Inc. USB transaction translator with SOF timer and USB transaction translation method for periodically sending SOF packet
TWI512478B (zh) * 2011-01-18 2015-12-11 Asmedia Technology Inc 匯流排主控器與相關方法
JP6232604B2 (ja) * 2014-02-10 2017-11-22 サイレックス・テクノロジー株式会社 デバイスサーバとその制御方法
US11263165B2 (en) * 2016-12-31 2022-03-01 Intel Corporation Apparatuses for periodic universal serial bus (USB) transaction scheduling at fractional bus intervals

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6801959B1 (en) * 2001-05-16 2004-10-05 Lexmark International, Inc. Relaxed-timing universal serial bus with a start of frame packet generator

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7266625B2 (en) 2004-01-26 2007-09-04 Matsushita Electric Industrial Co., Ltd. Data communication system
JP2006164209A (ja) * 2004-12-08 2006-06-22 Cheng-Chun Chang ホスト機能を有するデジタル画像入力装置

Also Published As

Publication number Publication date
US7409471B2 (en) 2008-08-05
JP3726898B2 (ja) 2005-12-14
US20030236932A1 (en) 2003-12-25

Similar Documents

Publication Publication Date Title
JP3636157B2 (ja) データ転送制御装置、電子機器及びデータ転送制御方法
JP3649226B2 (ja) データ転送制御装置、電子機器及びデータ転送制御方法
US7349973B2 (en) Data transfer control device, electronic equipment, and data transfer control method
US7505461B2 (en) Data transfer control device, electronic instrument, and data transfer control method
JP3726898B2 (ja) データ転送制御装置、電子機器及びデータ転送制御方法
US7337382B2 (en) Data transfer control device, electronic instrument, and data transfer control method
JP2002342261A (ja) データ転送制御装置及び電子機器
JP3755594B2 (ja) データ転送制御装置及び電子機器
JP3636158B2 (ja) データ転送制御装置及び電子機器
JP2008502976A (ja) 分割トランザクションを処理するためのバス・コントローラ
JP3636160B2 (ja) データ転送制御装置、電子機器及びデータ転送制御方法
JP3614161B2 (ja) データ転送制御装置、電子機器及びデータ転送制御方法
JP2008242701A (ja) データ転送制御装置及び電子機器
JP2003323399A (ja) データ転送制御装置、電子機器及びデータ転送制御方法
JP4127069B2 (ja) データ転送制御装置、電子機器及びデータ転送制御方法
JP4127071B2 (ja) データ転送制御装置、電子機器及びデータ転送制御方法
JP2003316734A (ja) データ転送制御装置、電子機器及びデータ転送制御方法
JP2003323391A (ja) データ転送制御装置、電子機器及びデータ転送制御方法
JP2005122303A (ja) データ転送制御装置、電子機器及びデータ転送制御方法
JP2004021976A (ja) データ転送制御装置、電子機器及びデータ転送制御方法
TW591523B (en) Virtual input/output device connected to a memory controller

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050826

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20050907

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050920

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20091007

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20101007

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20101007

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20111007

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20121007

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20121007

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20131007

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees