JP2003158533A - Usb−hubデバイスおよびその制御方法 - Google Patents

Usb−hubデバイスおよびその制御方法

Info

Publication number
JP2003158533A
JP2003158533A JP2001355781A JP2001355781A JP2003158533A JP 2003158533 A JP2003158533 A JP 2003158533A JP 2001355781 A JP2001355781 A JP 2001355781A JP 2001355781 A JP2001355781 A JP 2001355781A JP 2003158533 A JP2003158533 A JP 2003158533A
Authority
JP
Japan
Prior art keywords
address
hub
transaction
request
port
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
JP2001355781A
Other languages
English (en)
Other versions
JP3609051B2 (ja
Inventor
Masataka Yatsugayo
雅高 八ヶ代
Makoto Mizoguchi
誠 溝口
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.)
NEC Electronics Corp
Original Assignee
NEC Electronics 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 NEC Electronics Corp filed Critical NEC Electronics Corp
Priority to JP2001355781A priority Critical patent/JP3609051B2/ja
Priority to TW091134034A priority patent/TW583859B/zh
Priority to US10/301,240 priority patent/US7054983B2/en
Publication of JP2003158533A publication Critical patent/JP2003158533A/ja
Application granted granted Critical
Publication of JP3609051B2 publication Critical patent/JP3609051B2/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/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)
  • Small-Scale Networks (AREA)

Abstract

(57)【要約】 【課題】 USB−HUBデバイスにおいて、HUBデ
バイスのポートに接続されるデバイスに対するリクエス
トをHUBデバイスのシリアル・インターフェース・エ
ンジンを兼用して実行する。 【解決手段】 USB−HUBデバイス内に、HUBの
アドレスを保持するHUBアドレスレジスタ124と、
HIDのアドレスを保持するHIDアドレスレジスタ1
25と、HUBのアドレスレジスタの値と供給されたト
ークンパケットのアドレスフィールドとを比較する第1
の比較器123と、HIDアドレスレジスタの値と供給
されたトークンパケットのアドレスフィールドとを比較
する第2の比較器113と、デバイス3が仮想的に接続
されたポートの状態を示す仮想ポート制御部18と、リ
クエストに応答して処理を行なうHID用リクエスト処
理部131とを備える。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ユニバーサル・シ
リアル・バス(USB)に使用されるHUBデバイスに
関し、特にHUBデバイス内のシリアルインターフェー
スエンジンを共用するための制御回路を備えたUSB−
HUBデバイスおよびその制御方法に関する。
【0002】
【従来の技術】近年、ホストコンピュータ(以下、ホス
ト)に、キーボード、タッチパネル、トラックボールや
マウス等のヒューマン・インターフェース・デバイス
(HID)、プリンタ、スキャナ、デジタルカメラ、大
容量メモリなどをデバイスとして、ホストとこれらデバ
イスとの間を接続する規格化されたシリアル通信のイン
ターフェースとしてユニバーサル・シリアル・バス(U
SB)が注目されている。
【0003】このようなUSBを備えた複数のデバイス
をホストに接続するために、一つのアップポートと複数
のダウンポートを有するUSB−HUBデバイス(以
下、HUB)が用いられる。
【0004】HUB用チップ61は、図6に示すよう
に、ホストと接続するためのアップポート618、シリ
アル・インターフェース・エンジン(SIE)611、
エンドポイント(EP)部612、HUBとしての処理
を行なうHUB用リクエスト処理部613及びダウンポ
ート数に対応して設けられたPORT制御部614、6
15(ここでは2つだけ示す)、複数のダウンポート6
16及び617とから構成されている。
【0005】この複数のダウンポート616及び617
に、デバイスを接続することによりホストと各デバイス
がHUB用チップ61を介してホストと接続される。こ
こでは、デバイスとしてダウンポート617にHID6
3が接続され、ダウンポート616には、デバイスが接
続されていないものとして説明する。
【0006】HID63をHUB用チップ61と接続す
るためには、ダウンポート617に、SIE621、エ
ンドポイント部622、HID63に関する処理を行な
うHID用リクエスト処理部623とを備えたHID用
チップのアップポートを接続することが必要である。
【0007】
【発明が解決しようとする課題】このように、従来のU
SBインターフェースでは、USBの仕様上、HUBの
ダウンポートにデバイスを接続する場合、HID用リク
エスト処理部に対してもSIEを設ける必要性がある。
すなわち、HUBの機能と、デバイスの機能を同一のア
ドレスにまとめることができないため、これらデバイス
の機能毎に別々のアドレスを持っている必要があり、そ
のため、それぞれの機能に対してアドレスを識別するた
めのSIEを設ける必要がある。そのため、回路規模が
増大し、コストが上昇するという問題点を有している。
【0008】したがって、本発明では、HUBに用いら
れているSIEを用いてデバイスをホストに認識させる
ため、HUBのSIEを共有する構成を提供することを
目的とする。
【0009】
【課題を解決するための手段】本発明に係る第1のUS
B−HUBデバイスは、アップポートと、ダウンポート
とを備えたUSB−HUBデバイスであって、前記アッ
プポートに入力されたトランザクションを制御信号に応
答して転送するシリアルインターフェースエンジンと、
前記アップポートに入力された前記トランザクションの
トークンパケットのアドレスフィールドとHUBアドレ
スとを比較すると共に前記トークンパケットのアドレス
フィールドとデバイスアドレスとを比較し少なくとも一
方が一致した場合には前記制御信号を出力し、前記シリ
アルインターフェースエンジンから前記トランザクショ
ンを受け取るエンドポイント部とを備えることを特徴と
する。
【0010】また、本発明に係る第2のUSB−HUB
デバイスは、アップポートに接続されたホストコンピュ
ータからトランザクションを受け取り、制御信号に応答
して前記トランザクションを転送するシリアルインター
フェースエンジンと、ダウンポートと、前記ダウンポー
トに対して設けられたポート制御部と、前記ダウンポー
トを介さずに接続されるデバイスに対して設けられた仮
想ポート制御部と、HUBアドレスを保持するHUBア
ドレスレジスタと、前記デバイスのデバイスアドレスを
保持するデバイスアドレスレジスタと、前記トランザク
ションのトークンパケットのアドレスフィールドと前記
HUBアドレス及び前記デバイスアドレスを比較し、少
なくとも一方が一致した場合一致信号を出力すると共に
前記一致信号に応答した前記制御信号を出力する比較器
と、第1のリクエスト信号に応答してHUBアドレスレ
ジスタ、ポート制御部、仮想ポート制御部への設定を行
なうHUB用リクエスト処理部と、第2のリクエスト信
号に応答してデバイスアドレスレジスタへの設定を行な
うデバイス用リクエスト処理部と、前記制御信号に応答
して転送された前記トランザクションを受け取り、前記
トランザクションがコントロール転送の場合、前記トラ
ンザクションのデータパケットを転送し、前記トランザ
クションがインターラプト転送の場合、前記トランザク
ションのトークンパケットに従ってデータ転送を行なう
制御ブロックと、前記制御ブロックからの前記データパ
ケットをデコードして前記第1または第2のリクエスト
信号を発生させるデコーダとを備えることを特徴とす
る。
【0011】このように第1及び第2のUSB―HUB
デバイスでは、デバイスに対して送られたトランザクシ
ョンをUSB−HUBデバイスのシリアルインターフェ
ースエンジンによって認識することができ、エンドポイ
ント部で実行することができる。したがって、USB−
HUBデバイスのシリアルインターフェースエンジンを
HUBとデバイスとで兼用することが可能となる。
【0012】本発明に係る第1のUSB−HUBデバイ
スの制御方法は、ホストから供給されるトランザクショ
ンのトークンパケットのアドレスフィールドをラッチす
るステップと、HUBアドレスレジスタの値と前記アド
レスフィールドとを比較するステップと、前記比較によ
り一致の場合、自局アドレスをHUBアドレスの値とす
るステップと、前記比較により不一致の場合、自局アド
レスをデバイスアドレスの値とするステップと、前記自
局アドレスと前記アドレスフィールドとを比較する自局
アドレス比較ステップと、前記自局アドレス比較ステッ
プにより一致した場合、前記トランザクションが第1の
転送か、第2の転送かを判定し、第1の転送の場合には
前記トランザクションのデータパケットを転送し、第2
の転送の場合には、前記トランザクションに基づく処理
を実行するステップと、前記転送されたデータパケット
からリクエストをデコードするステップと、前記HUB
アドレスと前記アドレスフィールドが一致している場合
には、HUB用リクエストとして処理を行なうステップ
と、前記デバイスアドレスと前記アドレスフィールドが
一致している場合かつ、仮想ポート制御部にイネーブル
が設定されている場合には、デバイス用リクエストとし
て処理を行なうステップとを備えることを特徴とする。
【0013】本発明に係る第2のUSB−HUBデバイ
スの制御方法は、ホストから供給されるトランザクショ
ンのトークンパケットのアドレスフィールドをラッチす
るステップと、HUBアドレスレジスタの値及びデバイ
スアドレスと前記アドレスフィールドとを比較するステ
ップと、前記比較により少なくとも一方が一致した場
合、前記トランザクションが第1の転送か、第2の転送
かを判定し、第1の転送の場合には前記トランザクショ
ンのデータパケットを転送し、第2の転送の場合には、
前記トランザクションに基づく処理を実行するステップ
と、前記転送されたデータパケットからリクエストをデ
コードするステップと、前記HUBアドレスと前記アド
レスフィールドが一致していた場合には、HUB用リク
エストとして処理を行なうステップと、前記デバイスア
ドレスと前記アドレスフィールドが一致していた場合か
つ、仮想ポート制御部にイネーブルが設定されている場
合には、デバイス用リクエストとして処理を行なうステ
ップとを備えることを特徴とする。
【0014】このように、第1及び第2のUSB−HU
Bデバイスの制御方法によって、USB−HUBデバイ
スにおいてデバイスアドレスを認識し、当該デバイスア
ドレスによって指定されるデバイスに対する処理を行な
うことが可能となる。
【0015】本発明の第3のUSB−HUBデバイスの
制御方法は、ホストが接続されるアップポートと、ダウ
ンポートを介してデバイスを接続するためのポート制御
部と、前記ダウンポートを介さずにデバイスを接続する
ための仮想ポート制御部とを備えるUSB−HUBデバ
イスの制御方法であって、ホストから出力されるコント
ロール転送である第1のトランザクションによりHUB
アドレスを設定するステップと、前記ホストから出力さ
れる前記コントロール転送である第2のトランザクショ
ンにより前記仮想ポート制御部にイネーブルを設定する
ステップと、前記ホストから出力される前記コントロー
ル転送である第3のトランザクション及び前記仮想ポー
ト制御部からのイネーブルにより前記USB−HUBデ
バイス内にデバイスアドレスを設定するステップと、前
記ホストから出力されるインターラプト転送により前記
デバイスアドレスによって特定されるデバイスの情報を
読み出すステップとを備えることを特徴とする。
【0016】このように、仮想ポート制御部を利用する
ことによってダウンポートを介さずにHUBデバイスに
接続されたデバイスに対する処理をUSB−HUBデバ
イスによって実行することが可能となる。
【0017】
【発明の実施の形態】本発明の実施の形態では、トラン
ザクションが入力されるアップポートを備えたシリアル
・インターフェース・エンジンと、HUBアドレスを保
持するHUBアドレスレジスタ及びデバイスのアドレス
を備えるデバイスアドレスレジスタとを有するエンドポ
イント部と、トランザクション内のデータパケットが示
すデバイスに対するリクエストの処理を行なうデバイス
用リクエスト処理部と、HUBに対するリクエストの処
理を行なうHUBリクエスト処理部と、HUBリクエス
ト処理部に対応して設けられダウンポートを備えたポー
ト制御部、デバイスに対するリクエスト処理を行なうデ
バイス用リクエスト処理部、デバイス用リクエスト処理
部に対応して設けられた仮想ポート制御部とを有してい
る。
【0018】本発明の第1の実施例について図面を参照
しながら説明する。
【0019】本発明のUSB−HUBは、HIDの中、
例えばキーボードの中に搭載されるマイクロコンピュー
タ(マイコン)のチップ内に実現されているとして説明
する。また、デバイスとしてHIDが接続されているも
のとして説明する。
【0020】マイコン1は、HUB19、HIDからの
データが入力される外部端子34、外部端子34に接続
されたI/O制御部31、I/O制御部31に接続され
たCPU32及びCPU32に接続されたバッファ33
を備えている。ここで、CPU32は、HID3のデー
タを外部端子34、I/O制御部を介して受け取り、定
期的にバッファ33に書きこんでいるものとする。
【0021】HUB19は、図1に示すとおり、ホスト
10と接続するためのアップポート13、シリアル・イ
ンターフェース・エンジン(SIE)11と、エンドポ
イント(EP)部12と、ポート制御部16、17と、
仮想ポート制御部18、ポート制御部に対応して設けら
れデバイスと接続するためのダウンポート14、15と
を備えている。
【0022】ここで、ホスト10は、アップポート13
に対してトランザクションを出力することによりHUB
及びデバイスに対するリクエストを実行する。
【0023】このトランザクションは、トークンパケッ
ト及びデータパケットを有し、トークンパケット内のア
ドレスフィールドにHUB及びデバイスを特定するため
のアドレス値が格納され、データパケット内にはHUB
及びデバイスに対するリクエストが格納されている。ま
た、トランザクションを転送する場合の、転送の型に
は、バルク、割り込み、アイソクロナス、制御の4種類
がある。これら転送の型及びトランザクションについ
て、詳細は、USB Hardware & Software 日本語版第6章
パケット及びトランザクション P161−192、
第8章 データ転送 P199−242、著者:John G
arney, Ed solari, Shelagh Callahan, Kosar Jaff, Br
ad Hosler 発行:1999年9月8日を参照されたい。
【0024】SIE11は、アップポート13に接続さ
れ供給されたトランザクションをパラレルデータに変換
するシリアル/パラレル変換部111、シリアル/パラ
レル変換部111から供給されるトークンパケットのア
ドレスフィールドをラッチするアドレスラッチ112、
アドレスラッチ112の値とEP部12から供給される
自局アドレスとを比較する比較器113、アップポート
13に接続され比較器113の出力によってトランザク
ションの転送が制御される制御ブロック114から構成
されている。
【0025】EP部12は、アップポート13に接続さ
れたシリアル/パラレル変換器121、シリアル/パラ
レル変換器121から供給されるトークンパケットのア
ドレスフィールドをラッチするアドレスラッチ122、
アドレスラッチ122の値とHUBアドレスレジスタ1
24に保持されたHUBアドレスとを比較する比較器1
23、HIDアドレスを保持するHIDアドレスレジス
タ125、比較器123の出力に応答してHUBアドレ
スレジスタ124の値とHIDアドレスレジスタ125
の値とを切替えて自局アドレスとして出力するセレクタ
126、制御ブロック114から供給されたトランザク
ションがコントロール転送の時にトランザクションのデ
ータパケットをリクエストデコーダに伝達する制御ブロ
ック127、制御ブロック127から供給されたデータ
パケットをデコードするリクエストデコーダ128、デ
コード結果に基づいてリクエスト信号を出力するアンド
ゲート1291及び1292から構成された選択ゲート
129、リクエスト信号を受け取るとHUB用のリクエ
スト処理を実行するHUB用リクエスト処理部130、
リクエスト信号を受け取るとHID用のリクエスト処理
を実行するHID用リクエスト処理部131、HIDが
仮想的に接続されているポートの状態を保持する仮想ポ
ート制御部132、仮想ポート制御部132によりHI
D用リクエスト処理部へのリクエスト信号をイネーブル
にするアンドゲート133から構成されている。
【0026】以下、第1の実施例のUSB−HUBデバ
イスを備えたマイコンの動作を図3に示すフローチャー
トを参照しながら簡単に説明する。ここでは、ホスト1
0からアップポートにトランザクションが出された場合
を想定して説明する。
【0027】まず最初に、アップポートに供給されたト
ランザクションをシリアル/パラレル変換部を介して受
け取りトークンパケット内のアドレスフィールドをラッ
チする(ステップ301)。ラッチされたアドレスフィ
ールドとHUBアドレスレジスタの値とを比較し、一致
の場合はステップ303、不一致の場合はステップ30
4に移行する(ステップ302)。HUBアドレスレジ
スタの値と一致した場合には、HUBアドレスレジスタ
の値を自局アドレスとする(ステップ303)。HUB
アドレスレジスタの値と不一致の場合は、HIDアドレ
スレジスタの値を自局アドレスとする(ステップ30
4)。自局アドレスとアドレスフィールドとを比較し、
一致した場合はHUBデバイス内で実行すべきトランザ
クションとしてステップ306へ、不一致の場合は他の
デバイスで実行すべきトランザクションであるとして、
受け取ったトランザクションに対しては何もせず最初に
戻る(ステップ305)。自局アドレスとアドレスフィ
ールドが一致した場合、トランザクションをSIEから
EP部へ転送する(ステップ306)。受け取ったトラ
ンザクションがコントロール転送の場合はステップ30
8へ移行し、インターラプト転送の場合はステップ30
9に移行する(ステップ307)。コントロール転送の
場合は、トランザクションのデータパケットをデコード
しリクエストを特定する(ステップ308)。インター
ラプト転送の場合は、トランザクションのトークンパケ
ットに従ってデータ転送を実行し最初に戻る(ステップ
309)。アドレスフィールドがHUBアドレスと一致
していた場合には、ステップ311へ、HIDアドレス
と一致していた場合にはステップ312に移行する(ス
テップ310)。アドレスフィールドがHUBアドレス
と一致していた場合、HUB用リクエスト処理部によっ
て、リクエストを実行し最初に戻る(ステップ31
1)。HIDアドレスと一致していた場合、HID用リ
クエスト処理部によって、リクエストを実行し最初に戻
る(ステップ312)。
【0028】以下、第1の実施例のUSB−HUBデバ
イスを備えたマイコンの設定動作について図1を用いて
詳述する。
【0029】1.HUBアドレスの設定 ホストコンピュータ(ホスト)10に電源が入ると、ホ
スト10は接続されているマイコンのアップポート13
に対して、HUBのアドレスを設定するために制御転送
(コントロール転送)として、Set_upトランザク
ションを送る。コントロール転送は、デバイス、デバイ
スのインターフェース、及びエンドポイントをコンフィ
ギュレーションし初期化するために使用される転送モー
ドである。ただし、Set_upトランザクション内の
トークンパケットのアドレスフィールドは、”00”に
設定され、Set_upトランザクション内のデータパ
ケットにはSet_Addressリクエストであるこ
と及びアドレス設定値が”01”であることが設定され
ているものとする。ここで、アドレス設定値は、デバイ
スに対して付与される固有の識別番号である。
【0030】アップポート13を介してSet_upト
ランザクションを受け取ったSIE11は、Set_u
pトランザクションをシリアル/パラレル変換部111
でシリアルデータからパラレルデータに変換し、トーク
ンパケットのアドレスフィールドをアドレスラッチ11
2にラッチする。このとき、同時にEP部12に対して
もSet_upトランザクションが送られ、シリアル/
パラレル変換部121を介してアドレスラッチ122に
アドレスフィールドがラッチされる。
【0031】EP部12の比較器123は、アドレスラ
ッチ122の値とHUBアドレスレジスタ124との値
を比較するが、HUBアドレスレジスタ124には、初
期値として”00”が記憶されているため一致信号が出
力される。したがって、セレクタ126は、HUBアド
レスレジスタ124の値をSIE11の比較器1に自局
アドレスとして供給する。比較器113は、自局アドレ
ス”00”とアドレスラッチ112にラッチされたアド
レスフィールド”00”とを比較する。アドレスフィー
ルドと自局アドレスが一致するため、比較器113は一
致信号を出力する。
【0032】一致信号を受け取ったSIE11の制御ブ
ロック114は、Set_upトランザクションをEP
部の制御ブロック127に渡す。EP部12の制御ブロ
ック127は、受け取ったトランザクションがコントロ
ール転送かインターラプト転送か判断する。Set_u
pトランザクションはコントロール転送のため制御ブロ
ック127は、データパケットをリクエストデコーダ1
28に送る。リクエストデコーダ128は、データパケ
ットからHUB19に対するSet−Addressリ
クエストであること及びアドレス設定値”01”をデコ
ードし、選択ゲート129を介してHUB用リクエスト
処理部130にリクエスト信号を出力する。リクエスト
信号が供給されたHUB用リクエスト処理部130は、
Set−Addressリクエストに基づいてアドレス
設定値”01”をHUBアドレスレジスタ124に書き
込みSet−Addressリクエスト処理が終了す
る。
【0033】2.ポートイネーブルの設定 この後、ホスト10は、HUB19のポートにデバイス
が接続されているか否かを確認するためアップポート1
3に対してコントロール転送であるポートステータスビ
ット参照リクエスト(Get_Statusリクエス
ト)をデータパケットに含むトランザクションを送る。
トランザクションの中のトークンパケットには、HUB
19のアドレスである”01”が設定されている。この
リクエストに対して、HUB19は、ポート制御部及び
仮想ポート制御部からポートの状態を示す情報(ポート
情報)を、EP部12の制御ブロック127及びSIE
11の制御ブロック114を介してホスト10に送り返
す。
【0034】ここで、仮想ポート制御部18、複数のポ
ート制御部16、17には、予めポート番号1、2、3
がそれぞれ付されているものとする。
【0035】本実施例では、HUB19は、仮想ポート
制御部18からの、仮想ポートであるポート番号1にデ
バイス(HID3)が接続され、ポート番号2及び3に
は、デバイスが接続されていないというポート情報を制
御ブロック127及び制御ブロック114を介してホス
ト10に返す。ポート情報を受け取ったホスト10は、
コントロール転送であるSet_upトランザクション
をHUB19に送る。Set_upトランザクションの
データパケットは、ポート番号1の仮想ポート制御部1
8をリセットするポートリセットリクエストを含み、S
et_upトランザクションのトークンパケットには、
HUB19のアドレスである”01”が設定されてい
る。
【0036】ホスト10は、仮想ポート制御部18をポ
ートイネーブル状態とするため、上述したトランザクシ
ョンをアップポート13に供給する。供給されたトラン
ザクションのトークンパケット内のアドレスフィール
ド”01”は、上述したHUBアドレスの設定と同様
に、EP部12のシリアル/パラレル変換器121を介
してアドレスラッチ122にラッチされる。同様に、S
IE11側のアドレスラッチ122にもアドレスフィー
ルド”01”がラッチされる。
【0037】比較器123は、アドレスラッチ122に
保持されたアドレスフィールド”01”とHUBアドレ
スレジスタ124の値”01”を比較し、一致信号を出
力する。比較器123からの一致信号を受け取ったセレ
クタ126は、一致信号に基づいてHUBアドレスレジ
スタ124の値を自局アドレスとしてSIE11側の比
較器113に供給する。
【0038】比較器113は、アドレスラッチ112に
保持されたアドレスフィールド”01”とHUBアドレ
スレジスタ124の値”01”とを比較し、一致信号を
出力する。比較器113からの一致信号を受け取ったS
IE11側の制御ブロック114は、一致信号に応答し
てトランザクションをEP12側の制御ブロック127
に送る。
【0039】制御ブロック127は、受け取ったトラン
ザクションがコントロール転送であるため、データパケ
ットをリクエストデコーダ128に送る。リクエストデ
コーダ128は、受け取ったデータパケットから仮想ポ
ート制御部132をリセットするポートリセットリクエ
ストであることをデコードし、選択ゲート129に対し
てリクエスト信号を出力する。
【0040】このとき、選択ゲート129内のアンドゲ
ート1291は比較器123からの一致信号により活性
化されているため、HUB用リクエスト処理部130へ
リクエスト信号を伝達する。選択ゲート129内のアン
ドゲート1292は、比較器123からの一致信号の反
転信号が入力されているため非活性化状態となってい
る。リクエスト信号により選択されたHUB用リクエス
ト処理部130は、ポートリセットリクエストに基づい
て仮想ポート制御部18をリセットする。その後、仮想
ポート制御部18にポートイネーブルを設定してポート
リセットリクエストが終了する。
【0041】この仮想ポート制御部18にポートイネー
ブルが設定されたことによって、HID用リクエスト処
理部131へのリクエストが受け付けられる状態とな
る。また、ホスト10からHID3への経路を確立する
ことが可能となる。
【0042】3.ポートに接続されたデバイスへのアド
レス設定 ホスト10は、仮想ポート制御部18にポートアドレス
を付与するため、コントロール転送であるSet_Ad
dressリクエストを含むSet_upトランザクシ
ョンをアップポートに供給する。このSet_Addr
essリクエストは、新たなポート、本実施例では仮想
ポート制御部に対するアドレス設定リクエストのため、
トークンパケットのアドレスフィールドには”00”、
データパケットにはSet_Addressリクエスト
であること及びアドレス設定値は”02”であることが
設定されている。
【0043】供給されたSet_upトランザクション
のトークンパケットのアドレスフィールド”00”は、
上述したHUBアドレスの設定と同様に、EP部12の
シリアル/パラレル変換器121を介してアドレスラッ
チ122にラッチされる。同様に、SIE11側のアド
レスラッチ112にもアドレスフィールド”00”がラ
ッチされる。
【0044】アドレスフィールドがアドレスラッチ12
2にラッチされると、比較器123は、アドレスラッチ
122に保持されたアドレスフィールド”00”とHU
Bアドレスレジスタの値”01”を比較し、不一致信号
を出力する。
【0045】不一致信号に基づいて、セレクタ126
は、HIDアドレスレジスタ125の値(初期値は、”
00”)を自局アドレスとしてSIE11側の比較器1
13に供給する。
【0046】HIDアドレスレジスタ125の値を自局
アドレスとして供給された比較器113は、アドレスラ
ッチ112に保持されたアドレスフィールド”00”と
自局アドレス”00”とを比較し、一致信号を出力す
る。一致信号を受け取ったSIE11側の制御ブロック
114は、一致信号に応答してトランザクションをEP
12側の制御ブロック127に送る。
【0047】制御ブロック127は、受け取ったトラン
ザクションがコントロール転送であるためデータパケッ
トをリクエストデコーダ128に送る。リクエストデコ
ーダ128は、受け取ったデータパケットからSet−
addressリクエストであること及び設定値”0
2”をデコードし、リクエスト信号を出力する。このと
き、選択ゲート129は、比較器123からの不一致信
号によりアンドゲート1292が活性化されているた
め、アンドゲート133にリクエスト信号を伝達する。
アンドゲート133は、仮想ポート制御部18からのイ
ネーブル信号により活性化されているため、リクエスト
信号をHID用リクエスト処理部に伝達する。
【0048】リクエスト信号を受け取ったHID用リク
エスト処理部131は、Set−addressリクエ
ストに基づいて設定値”02”をHIDアドレスレジス
タ125に書き込んでSet−addressリクエス
ト処理が終了する。
【0049】ここでは、他のポート制御部16、17に
デバイスが接続されていない場合について説明したが、
他のポート制御部16、17にデバイスが接続されてい
る場合には、上述したポートイネーブルリクエスト及び
ポート制御部に接続されたデバイスに対するSet_A
ddressリクエストをホスト10がアップポート1
3に供給し、ポートに接続されたデバイスに対するアド
レスの設定が行なわれる。
【0050】4.HIDに対する割り込み転送(インタ
ーラプト転送) 次に、ホスト10が、HIDに対する割り込み転送を実
行した場合の動作について説明する。
【0051】HIDへの割り込み転送(インターラプト
転送)は、ホスト10がトークンパケットのアドレスフ
ィールドにHIDのアドレス設定値(現在は、”0
2”)をトークンパケットに含むようなINトランザク
ション或いはOUTトランザクションをアップポートへ
供給することによって行なわれる。ここで、インターラ
プト転送とは、データをデバイスからホスト側に搬送す
るもしくは、データをホストからデバイス側に搬送する
転送のモードである。本実施例では、INトランザクシ
ョンはバッファ33に書きこまれたHID3のデータを
ホスト10に読み出すこととして説明する。
【0052】HUB19は、アップポートを介して受け
取ったHIDに対するINトランザクションを受け取
る。INトランザクションを受け取ると、EP12のア
ドレスラッチ122は、シリアル/パラレル変換器12
1を介してトークンパケットのアドレスフィールド”0
2”を保持する。同様に、SIE11のアドレスラッチ
112は、シリアル/パラレル変換器111を介してア
ドレスフィールド”02”を保持する。
【0053】アドレスラッチ121がアドレスフィール
ドをラッチすると、比較器123は、アドレスフィール
ド”02”とHUBアドレスレジスタの値”01”とを
比較し、不一致信号を出力する。その結果、セレクタ1
26はHIDアドレスレジスタ125の値”02”を自
局アドレスとしてSIE11の比較器113に供給す
る。比較器113は、SIE11のアドレスラッチ11
2に保持されたアドレスフィールド”02”と自局アド
レス”02”を比較し、一致信号を出力する。受け取っ
た一致信号に応答して制御ブロック114は、トランザ
クションを制御ブロック127に送る。
【0054】制御ブロック127は、トランザクション
がインターラプト転送であり、データをHID3からホ
ストに転送することを要求しているため、HID3のデ
ータが保持されているバッファ33からデータを読出
し、制御ブロック114を介してアップポート13に出
力することによってホスト10に送るという処理を行な
いINトランザクションを終了する。ここで、制御ブロ
ック114は、バッファ33から読み出されたパラレル
データをシリアルデータに変換する動作も行なってい
る。
【0055】このように、EP部12内に、シリアル/
パラレル変換器121、アドレスラッチ122、比較器
123、HIDアドレスレジスタ125、選択ゲート1
29、HID用リクエスト処理部131、仮想ポート制
御部18及びアンドゲート133をHUB1内に設ける
ことにより、SIE11をHIDのシリアル・インター
フェース・エンジンとして利用することが可能となる。
【0056】簡単に説明すると、物理的な構造として
は、図5(a)に示すとおり、HUB51の中にシリア
ル・インターフェース・エンジン511、HUB用リク
エスト処理部512、HID用リクエスト処理部51
3、仮想ポート制御部、ポート517に接続されたポー
ト制御部515、ポート518に接続されたポート制御
部516を備える構成となっているが、ホストから見た
論理的な構造としては、図5(b)に示すとおり、シリ
アル・インターフェース・エンジン521、HUB用リ
クエスト処理部522、仮想ポート526に接続された
仮想ポート制御部523、ポート527に接続されたポ
ート制御部524、ポート528に接続されたポート制
御部525を備えたHUB52のダウンポートに、シリ
アル・インターフェース・エンジン531及びHID用
リクエスト処理部532を備えたHIDがアップポート
534を介して接続されている構造となる。このような
論理構造とするために、HUB51内に、上述した仮想
ポート制御部を用いている。
【0057】以下、本発明の第2の実施例について図面
を用いて説明する。
【0058】本発明のUSB−HUBは、第1の実施例
と同様に、HIDの中、例えば、キーボードの中に搭載
されるマイクロコンピュータのチップ内に実現されてい
るものとして説明する。
【0059】図2に示すとおり、マイコン2は、HUB
29、HID3のデータが入力される外部端子34、外
部端子34に接続されたI/O制御部31、I/O制御
部31に接続されたCPU32及びCPU32に接続さ
れたバッファ33を備えている。ここで、CPU32
は、HID3のデータを外部端子34、I/O制御部を
介して受け取り、定期的にバッファ33に書きこんでい
るものとする。
【0060】HUB29は、ホスト10と接続するため
のアップポート13、シリアル・インターフェース・エ
ンジン(SIE)21と、エンドポイント(EP)部2
2と、ポート制御部16、17と、仮想ポート制御部1
8と、ポート制御部16、17に対応して設けられデバ
イスと接続するためのダウンポート14、15とを備え
ている。
【0061】ホスト10が出力するトランザクションに
ついては、第1の実施例において説明したので、説明を
省略する。
【0062】SIE21は、アップポート13に供給さ
れたシリアルデータをパラレルデータに変換するシリア
ル/パラレル変換部111、シリアル/パラレル変換部
111から供給されるトークンパケットのアドレスフィ
ールドをラッチするアドレスラッチ112、アップポー
ト13に接続されEP部22からの制御信号により制御
される制御ブロック114から構成されている。
【0063】EP部22は、アドレスラッチ112の値
とHUBアドレスレジスタ124に保持されたHUBア
ドレスとを比較する比較器136、アドレスラッチ11
2の値とHIDアドレスレジスタ125に保持されたH
IDアドレスとを比較する比較器137、比較器136
及び137の出力の論理和を制御信号として出力するオ
アゲート135、制御ブロック114から供給されたト
ランザクションがコントロール転送の時にトランザクシ
ョンのデータパケットをリクエストデコーダに伝達する
制御ブロック127、制御ブロック127から供給され
たデータパケットをデコードしリクエスト信号を出力す
るリクエストデコーダ128、リクエストデコーダ12
8のデコード結果及び比較器136及び137の出力に
基づいてリクエスト信号を伝達するアンドゲート134
1及び1342から構成された選択ゲート134、リク
エスト信号を受け取るとHUB用のリクエスト処理を実
行するHUB用リクエスト処理部130、リクエスト信
号を受け取るとHID用のリクエスト処理を実行するH
ID用リクエスト処理部131、HIDが仮想的に接続
されているポートの状態を保持する仮想ポート制御部1
8、仮想ポート制御部18によりHID用リクエスト処
理部へのリクエスト信号をイネーブルにするアンドゲー
ト133から構成されている。
【0064】以下、本発明の第2の実施例のUSB−H
UBデバイスを備えたマイコンの動作を、図4に示すフ
ローチャートを参照しながら簡単に説明する。ここで
は、ホスト10からアップポートにリクエストが出され
た場合を想定して説明する。
【0065】アップポートに供給されたトランザクショ
ンをシリアル/パラレル変換部を介して受け取りトーク
ンパケットのアドレスフィールドをラッチする(ステッ
プ401)。ラッチされたアドレスフィールドとHUB
アドレスレジスタの値及び、ラッチされたアドレスフィ
ールドとHIDアドレスレジスタの値とを比較し、少な
くとも一方が一致の場合はステップ403、不一致の場
合は最初の状態に移行する(ステップ402)。少なく
とも一方が一致している場合には、SIEからEP部へ
トランザクションを転送する(ステップ403)。トラ
ンザクションがコントロール転送の場合にはステップ4
05に移行し、インターラプト転送の場合にはステップ
406に移行する(ステップ404)。コントロール転
送の場合は、転送されたトランザクションのデータパケ
ットをデコードし、リクエストの種類を特定する(ステ
ップ405)。インターラプト転送の場合には、トーク
ンパケットに従ってデータ転送を実行し最初に戻る(ス
テップ406)。HUBアドレスレジスタの値及びHI
Dアドレスレジスタの値のいずれとアドレスフィールド
が一致したかを比較し、HUBアドレスレジスタの値と
一致した場合にはステップ406、HIDアドレスレジ
スタの値と一致した場合にはステップ407に移行する
(ステップ407)。HUBアドレスレジスタの値と一
致した場合、HUBリクエスト処理部によってリクエス
トを実行し最初の状態に戻る(ステップ408)。HI
Dアドレスレジスタの値と一致した場合、仮想ポート制
御部によりゲートが活性化されているか比較し、活性化
されている場合にはステップ408へ、活性化されてい
ない場合には最初の状態に戻る(ステップ409)。H
IDリクエスト処理部によってリクエストを実行し最初
の状態に戻る(ステップ410)。
【0066】以下、第2の実施例のUSB−HUBデバ
イスを備えたマイコンの設定動作について図1を用いて
詳述する。
【0067】1.HUBアドレスの設定 ホスト10に電源が入ると、ホスト10は接続されてい
るUSB−HUB1に対して、コントロール転送である
Set_upトランザクションを送る。ただし、Set
_upトランザクション内のトークンパケットのアドレ
スフィールドは、”00”に設定され、Set_upト
ランザクション内のデータパケットにはSet_Add
ressリクエストであること及びアドレス設定値が”
01”であることが設定されているものとする。アドレ
ス設定値は、デバイスに対して付与される固有の識別番
号である。
【0068】アップポート13を介してSet_Add
ressリクエストを受け取ったSIE21は、Set
_upトランザクションをシリアル/パラレル変換部1
11でシリアルデータからパラレルデータに変換し、ト
ークンパケット内のアドレスフィールドをアドレスラッ
チ112にラッチする。
【0069】アドレスフィールドがアドレスラッチ11
2にラッチされると、EP部12の比較器136は、ア
ドレスラッチ112に保持されたアドレスフィールドと
HUBアドレスレジスタ124との値を比較する。この
とき、HUBアドレスレジスタ124には、初期値とし
て”00”が記憶されているため比較器136は一致信
号を出力する。同様に、比較器137は、アドレスラッ
チ112に保持されたアドレスフィールドとHIDアド
レスレジスタ125との値を比較する。このとき、HI
Dアドレスレジスタ125には、初期値として”00”
が記憶されているため比較器137は一致信号を出力す
る。したがって、オアゲート135は、両比較器136
及び137の一致信号に基づいて一致信号を制御ブロッ
ク114に供給する。
【0070】一致信号を受けた制御ブロック114は、
Set_upトランザクションを制御ブロック127に
送る。制御ブロック127は、受け取ったトランザクシ
ョンがコントロール転送であるためデータパケットをリ
クエストデコーダ128に送る。リクエストデコーダ1
28は、受け取ったデータパケットからHUB29に対
するSet−addressリクエストであること及び
設定値”01”をデコードし、選択ゲート134に対し
てリクエスト信号を出力する。
【0071】選択ゲート134は、アンドゲート134
1及び1342から構成されており、アンドゲート13
41には、活性化信号と比較器136の出力が入力さ
れ、アンドゲート1342には、活性化信号と比較器1
37の出力が入力されている。HUBアドレスの設定時
には、両方の比較器が一致信号を出力しているため、両
方のアンドゲート1341及び1342から活性化信号
が出力されることになる。
【0072】アンドゲート1341から出力された活性
化信号は、HUB用リクエスト処理部130に供給さ
れ、アンドゲート1342から出力されたリクエスト信
号は、アンドゲート133に供給される。ここで、アン
ドゲート133の一方の入力には、仮想ポート制御部1
8から制御信号が供給されているが、制御信号の初期値
はディスエーブルとなっており、アンドゲート1342
は非活性となっている。
【0073】その結果、選択ゲート134からのリクエ
スト信号は、HUB用リクエスト処理部130にのみ供
給され、HUB用リクエスト処理部130がリクエスト
信号に応答して処理を行なう。HUB用リクエスト処理
部130は、デコードされたSet_Addressリ
クエストに基づいてHUBアドレスレジスタ124に”
01”を設定しSet_Addressリクエストを終
了する。
【0074】2.ポートイネーブルの設定 この後、ホスト10は、HUB19のポートにデバイス
が接続されているか否かを確認するためアップポート1
3に対してポートステータスビット参照リクエスト(G
et_Statusリクエスト)をデータパケットに含
むコントロール転送であるトランザクションを送る。ト
ランザクションの中のトークンパケットには、HUB1
9のアドレスである”01”が設定されている。このト
ランザクションに対して、HUB29は、ポート制御部
及び仮想ポート制御部からポートの状態を示す情報(ポ
ート情報)を、EP部22の制御ブロック114及びS
IE11の制御ブロック127を介してホスト10に送
り返す。ここで、仮想ポート制御部18、複数のポート
制御部16、17には、予めポート番号1、2、3がそ
れぞれ付されているものとする。
【0075】本実施例では、HUB29は、仮想ポート
制御部18からの、仮想ポートであるポート番号1にデ
バイス(HID3)が接続され、ポート番号2及び3に
は、デバイスが接続されていないというポート情報を制
御ブロック127及び制御ブロック114を介してホス
ト10に返す。ポート情報を受け取ったホスト10は、
コントロール転送であるSet_upトランザクション
をHUB29に送る。Set_upトランザクションの
データパケットは、ポート番号1の仮想ポート制御部1
8をリセットするポートリセットリクエストを含み、S
et_upトランザクションのトークンパケットには、
HUB29のアドレスである”01”が設定されてい
る。
【0076】ホスト10は、仮想ポート制御部18をポ
ートイネーブル状態とするため、上述したトランザクシ
ョンをアップポート13に供給する。供給されたトラン
ザクションのトークンパケット内のアドレスフィール
ド”01”は、上述したHUBアドレスの設定と同様
に、EP部22のシリアル/パラレル変換器111を介
してアドレスラッチ112にラッチされる。
【0077】アドレスラッチ112にアドレスフィール
ドがラッチされると、比較器136は、アドレスラッチ
112に保持されたアドレスフィールド”01”とHU
Bアドレスレジスタの値”01”とを比較し、一致信号
を出力し、比較器137は、アドレスフィールド”0
1”とHIDアドレスレジスタの初期値”00”とを比
較し、不一致信号を出力する。
【0078】比較器136からの一致信号及び比較器1
37からの不一致信号を受けたオアゲート135は、比
較器136からの一致信号を制御ブロック114に供給
する。一致信号を受け取った制御ブロック114は、S
et_upトランザクションを制御ブロック127に送
る。制御ブロック127は、受け取ったトランザクショ
ンがコントロール転送であるため、データパケットをリ
クエストデコーダ128に送る。
【0079】リクエストデコーダ128は、受け取った
データパケットからポート番号1の仮想ポート制御部に
対するポートリセットリクエストであることをデコード
し、リクエスト信号を出力する。リクエスト信号を受け
取った選択ゲート134は、比較器136の一致信号に
応答して活性化されたアンドゲート1341を介して、
HUB用リクエスト処理部130にリクエスト信号を伝
達する。
【0080】リクエスト信号を受け取ったHUB用リク
エスト処理部130は、仮想ポート制御部18をリセッ
トする。その後、HUB用リクエスト処理部130は、
仮想ポート制御部18の中にポートイネーブルを設定し
て、ポートリセットリクエストが終了する。
【0081】この仮想ポート制御部18に、ポートイネ
ーブルが設定されたことによって、HIDリクエスト処
理部131に対するリクエストが受け付けられる状態と
なる。また、ホスト10からHID3への経路を確立す
ることが可能となる。
【0082】3.ポートに接続されたデバイスのアドレ
ス設定 ホスト10は、仮想ポート制御部18にアドレスを付与
するため、コントロール転送であるSet_Addre
ssリクエスト含むSet_upトランザクションをア
ップポートに供給する。このSet_Addressリ
クエストは、新たなポート、本実施例では仮想ポート制
御部に対するアドレス設定リクエストのため、トークン
パケットのアドレスフィールドには、”00”、データ
パケットにはSet_Addressリクエストである
こと及びアドレス設定値は”02”であることが設定さ
れている。
【0083】このSet_Addressリクエストの
アドレスフィールド”00”は、上述したHUBアドレ
スの設定と同様に、シリアル/パラレル変換器111を
介して、アドレスラッチ112にラッチされる。
【0084】アドレスラッチ112にアドレスフィール
ドがラッチされると、比較器136は、アドレスラッチ
112に保持されたアドレスフィールド”00”とHU
Bアドレスレジスタの値”01”とを比較し、不一致信
号を出力し、比較器137は、アドレスフィールド”0
0”とHIDアドレスレジスタの値”00”とを比較
し、一致信号を出力する。
【0085】比較器136からの不一致信号と、比較器
137からの一致信号に基づき、オアゲート135は比
較器137の一致信号を制御ブロック114に供給す
る。
【0086】一致信号を受け取った制御ブロック114
は、Set_upトランザクションを制御ブロック12
7に送る。制御ブロック127は、受け取ったトランザ
クションがコントロール転送であるため、データパケッ
トをリクエストデコーダ128に送る。
【0087】リクエストデコーダ128は、受け取った
データパケットからHID用リクエスト処理部131に
対するSet_Addressリクエストであること及
びアドレス設定値”02”であることをデコードし、選
択ゲート134へリクエスト信号を出力する。リクエス
ト信号を受け取った選択ゲートは、比較器137の一致
信号に応答してアンドゲート1342を介してリクエス
ト信号をアンドゲート133に伝達する。
【0088】アンドゲート133は、仮想ポート制御部
18により活性化されているため、リクエスト信号をH
IDリクエスト処理部131に供給する。
【0089】リクエスト信号を受け取ったHID用リク
エスト処理部131は、デコードされたSet_Add
ressリクエストに基づきHIDアドレスレジスタに
アドレス設定値”02”を設定し、Set_Addre
ssリクエストが終了する。
【0090】ここでは、他のポート制御部16、17に
デバイスが接続されていない場合について説明したが、
他のポート制御部16、17にデバイスが接続されてい
る場合には、上述したポートイネーブルリクエスト及び
ポート制御部に接続されたデバイスに対するSet_A
ddressリクエストをホスト10がアップポート1
3に供給することになる。
【0091】4.HIDに対する割り込み転送(インタ
ーラプト転送) 次に、ホスト10が、HIDに対する割り込み転送を実
行した場合の動作について説明する。
【0092】HIDへの割り込み転送(インターラプト
転送)は、ホスト10がトークンパケットのアドレスフ
ィールドにHIDのアドレス設定値(現在は、”0
2”)をトークンパケットに含むようなINトランザク
ション或いはOUTトランザクションをアップポートへ
供給することによって行なわれる。本実施例でも、IN
トランザクションはバッファ33に書きこまれたHID
3のデータをホスト10に読み出すこととして説明す
る。
【0093】HUB29は、アップポートを介して受け
取ったHIDに対するINトランザクションを受け取
る。INトランザクションを受け取ると、アドレスラッ
チ112は、シリアル/パラレル変換器111を介して
リクエストのアドレスフィールド”02”を保持する。
【0094】アドレスラッチ112がトークンパケット
のアドレスフィールドをラッチすると、比較器136
は、HUBアドレスレジスタ124に保持された値”0
1”とアドレスラッチ112の値”02”を比較して不
一致信号を出力し、比較器137は、HIDアドレスレ
ジスタ125に保持された値”02”とアドレスラッチ
112の値”02”とを比較して一致信号を出力する。
【0095】比較器136からの不一致信号及び比較器
137からの一致信号を受け取ったオアゲート135
は、比較器137からの一致信号を制御ブロック114
に供給する。
【0096】一致信号を受け取った制御ブロック114
は、INトランザクションを制御ブロック127に送
る。制御ブロック127は、トランザクションがインタ
ーラプト転送であり、データをHID3からホスト10
に転送することを要求しているため、HID3のデータ
が保持されているバッファ33からデータを読出し、制
御ブロック114を介してアップポート13に出力する
ことによってホスト10に送るという処理を行ないIN
トランザクションを終了する。
【0097】このように、EP部22内に、HUBアド
レスレジスタ124、HIDアドレスレジスタ125、
HID用リクエスト処理部131、仮想ポート制御部1
8、アンドゲート133、選択ゲート134、オアゲー
ト135、比較器136及び137を設けることによ
り、HUB29に設けられたSIE21をHIDに対す
るシリアル・インターフェース・エンジンとして利用す
ることが可能となる。
【0098】また、第2の実施例では、EP部内にシリ
アルパラレル変換器を必要としない点で、第1の実施例
よりも回路構成が簡単である。
【0099】さらに、第2の実施例では、EP部内で、
HUBアドレスとアドレスフィールドとの比較及びHI
Dアドレスとアドレスフィールドとの比較が同時に行な
われているため、第1の実施例よりも応答速度を向上さ
せることができる。
【0100】なお、HIDが複数個ある場合には、HI
D用リクエスト処理部及び仮想ポート制御部を複数個設
け、単一のリクエスト処理部が選択されるように選択ゲ
ート134を適宜変更し、アンドゲート133をHID
用リクエスト処理部に対応させて設けることによって複
数のHIDに対応させることもできる。
【0101】なお上述した第1の実施例では、単一のH
IDが接続されるものについて説明したが、複数のデバ
イスによりSIEを共有することも可能である。そのた
めには、HID用リクエスト処理部、仮想ポート制御
部、HIDアドレスレジスタ及び比較器を複数個設け、
アンドゲート133と選択ゲート129を単一の処理部
のみを選択するように適宜設計変更すればよい。
【0102】第2の実施例でも同様にHID用リクエス
ト処理部、仮想ポート制御部、HIDアドレスレジスタ
及び比較器を複数個設け、選択ゲート134を単一の処
理部のみを選択するように適宜設計変更することにより
複数のデバイスによりSIEを共有することが可能とな
る。
【0103】なお、第1及び第2の実施例では、リクエ
ストデコーダ128は、説明を簡単にするため、単一の
出力しか持たないものを記載しているが、リクエストに
応じて多数の出力を有するものであってもよい。その場
合、HUB用リクエスト処理部、HID用リクエスト処
理部の入力もリクエストに応じて増加し、選択ゲートを
構成するアンドゲート群もリクエストに応じて増加す
る。
【0104】また、第1及び第2の実施例では、USB
−HUBがマイコンのチップ内に搭載されている例につ
いて説明したが、HUBの機能を別チップにより構成し
ても良い。
【0105】また、第1及び第2の実施例では、仮想ポ
ートに接続されるデバイスとしてHIDを例にして説明
したが、HIDに限らずアドレス設定を必要とするデバ
イスであれば種々のデバイスに対して適用可能である。
【0106】また、第1及び第2の実施例では、コント
ロール転送及びインターラプト転送について説明した
が、他の転送モードにも適用することが可能である。
【0107】
【発明の効果】このように、HUBの内部に仮想ポート
制御部を設けることによって、ホストに対して論理的に
HID用リクエスト処理部がHUBのダウンポートの一
つに接続されているように見せることができるため、H
UBのシリアル・インターフェース・エンジンをHID
に対するリクエストを受け取った場合も使用することが
できる。したがって、回路規模を小さくすることができ
コストを低減することができる。
【図面の簡単な説明】
【図1】本発明の第1の実施例を示すUSB−HUBデ
バイスを含むマイコンのシステム図
【図2】本発明の第2の実施例を示すUSB−HUBデ
バイスを含むマイコンのシステム図
【図3】本発明の第1の実施例の動作を示すフローチャ
ート
【図4】本発明の第2の実施例の動作を示すフローチャ
ート
【図5】(a)本発明によるUSB−HUBデバイスの
物理的構造、(b)本発明によるUSB−HUBデバイ
スの論理構造
【図6】従来のUSB−HUBデバイスのシステム図
【符号の説明】
3 HID 11、21 シリアル・インターフェース・エンジン 12、22 エンドポイント部 18 仮想ポート制御部 113、123 比較器 111、121 シリアル/パラレル変換器 126 セレクタ 129、 選択ゲート 124 HUBアドレスレジスタ 125 HIDアドレスレジスタ 130 HUB用リクエスト処理部 131 HID用リクエスト処理部 133 アンドゲート 135 オアゲート 136、137 比較器

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】 アップポートと、ダウンポートとを備え
    たUSB−HUBデバイスであって、 前記アップポートに入力されたトランザクションを制御
    信号に応答して転送するシリアルインターフェースエン
    ジンと、 前記アップポートに入力された前記トランザクションの
    トークンパケットのアドレスフィールドとHUBアドレ
    スとを比較すると共に前記トークンパケットのアドレス
    フィールドとデバイスアドレスとを比較し少なくとも一
    方が一致した場合には前記制御信号を出力し、前記シリ
    アルインターフェースエンジンから前記トランザクショ
    ンを受け取るエンドポイント部とを備えることを特徴と
    するUSB−HUBデバイス。
  2. 【請求項2】 前記エンドポイント部は前記転送された
    トランザクションを受け取り、前記トランザクションが
    前記HUBデバイスのHUB機能に対するコントロール
    転送である場合には、データパケットに含まれたリクエ
    スト内容に従い、前記HUB機能に対する設定処理を行
    なうHUB用リクエスト処理部と、前記トランザクショ
    ンが前記HUBデバイス内のデバイス機能に対するコン
    トロール転送である場合には、前記デバイス機能に対す
    る設定処理を行なうデバイス用リクエスト処理部とを更
    に備えることを特徴とする請求項1記載のUSB−HU
    Bデバイス。
  3. 【請求項3】 前記USB−HUBデバイスが搭載され
    たチップの外のデバイスと前記アップポートに接続され
    るホストコンピュータとを前記ダウンポートを介して接
    続するためのポート制御部と、前記ダウンポートを介さ
    ずにデバイスと前記ホストコンピュータとを接続するた
    めの仮想ポート制御部とを更に備えることを特徴とする
    請求項1に記載のUSB−HUBデバイス。
  4. 【請求項4】 前記データパケットに応答して前記仮想
    ポート制御部に対する制御を行なうことを特徴とするデ
    バイス用リクエスト処理部を更に備えることを特徴とす
    る請求項3記載のUSB−HUBデバイス。
  5. 【請求項5】 前記HUBデバイスのHUB機能に対す
    るアドレスを保持するHUBアドレスレジスタと、前記
    ダウンポートを介さずに接続されたデバイスに対するア
    ドレスを保持するデバイスアドレスレジスタとを更に備
    えることを特徴とする請求項1記載のUSB−HUBデ
    バイス。
  6. 【請求項6】 前記トランザクションのデータパケット
    が前記HUB機能に対するアドレス設定リクエストの場
    合には前記HUBアドレスレジスタにHUBアドレスを
    設定するHUB用リクエスト処理部と、前記トランザク
    ションのデータパケットが前記デバイスに対するアドレ
    ス設定リクエストの場合には、前記デバイスアドレスレ
    ジスタにデバイスアドレスを設定するデバイス用リクエ
    スト処理部とを備えることを特徴とする請求項5記載の
    USB−HUBデバイス。
  7. 【請求項7】 アップポートに接続されたホストコンピ
    ュータからトランザクションを受け取り、制御信号に応
    答して前記トランザクションを転送するシリアルインタ
    ーフェースエンジンと、 ダウンポートと、 前記ダウンポートに対して設けられたポート制御部と、 前記ダウンポートを介さずに接続されるデバイスに対し
    て設けられた仮想ポート制御部と、 HUBアドレスを保持するHUBアドレスレジスタと、 前記デバイスのデバイスアドレスを保持するデバイスア
    ドレスレジスタと、 前記トランザクションのトークンパケットのアドレスフ
    ィールドと前記HUBアドレス及び前記デバイスアドレ
    スを比較し、少なくとも一方が一致した場合一致信号を
    出力すると共に前記一致信号に応答した前記制御信号を
    出力する比較器と、 第1のリクエスト信号に応答してHUBアドレスレジス
    タ、ポート制御部、仮想ポート制御部への設定を行なう
    HUB用リクエスト処理部と、 第2のリクエスト信号に応答してデバイスアドレスレジ
    スタへの設定を行なうデバイス用リクエスト処理部と、 前記制御信号に応答して転送された前記トランザクショ
    ンを受け取り、前記トランザクションがコントロール転
    送の場合、前記トランザクションのデータパケットを転
    送し、前記トランザクションがインターラプト転送の場
    合、前記トランザクションのトークンパケットに従って
    データ転送を行なう制御ブロックと、 前記制御ブロックからの前記データパケットをデコード
    して前記第1または第2のリクエスト信号を発生させる
    デコーダとを備えることを特徴とするUSB−HUBデ
    バイス。
  8. 【請求項8】 ホストから供給されるトランザクション
    のトークンパケットのアドレスフィールドをラッチする
    ステップと、 HUBアドレスレジスタの値と前記アドレスフィールド
    とを比較するステップと、 前記比較により一致の場合、自局アドレスをHUBアド
    レスの値とするステップと、 前記比較により不一致の場合、自局アドレスをデバイス
    アドレスの値とするステップと、 前記自局アドレスと前記アドレスフィールドとを比較す
    る自局アドレス比較ステップと、 前記自局アドレス比較ステップにより一致した場合、前
    記トランザクションが第1の転送か、第2の転送かを判
    定し、第1の転送の場合には前記トランザクションのデ
    ータパケットを転送し、第2の転送の場合には、前記ト
    ランザクションに基づく処理を実行するステップと、 前記転送されたデータパケットからリクエストをデコー
    ドするステップと、 前記HUBアドレスと前記アドレスフィールドが一致し
    ている場合には、HUB用リクエストとして処理を行な
    うステップと、 前記デバイスアドレスと前記アドレスフィールドが一致
    している場合かつ、仮想ポート制御部にイネーブルが設
    定されている場合には、デバイス用リクエストとして処
    理を行なうステップとを備えることを特徴とするUSB
    −HUBデバイスの制御方法。
  9. 【請求項9】 ホストから供給されるトランザクション
    のトークンパケットのアドレスフィールドをラッチする
    ステップと、 HUBアドレスレジスタの値及びデバイスアドレスと前
    記アドレスフィールドとを比較するステップと、 前記比較により少なくとも一方が一致した場合、前記ト
    ランザクションが第1の転送か、第2の転送かを判定
    し、第1の転送の場合には前記トランザクションのデー
    タパケットを転送し、第2の転送の場合には、前記トラ
    ンザクションに基づく処理を実行するステップと、 前記転送されたデータパケットからリクエストをデコー
    ドするステップと、 前記HUBアドレスと前記アドレスフィールドが一致し
    ていた場合には、HUB用リクエストとして処理を行な
    うステップと、 前記デバイスアドレスと前記アドレスフィールドが一致
    していた場合かつ、仮想ポート制御部にイネーブルが設
    定されている場合には、デバイス用リクエストとして処
    理を行なうステップとを備えることを特徴とするUSB
    −HUBデバイスの制御方法。
  10. 【請求項10】 ホストが接続されるアップポートと、
    ダウンポートを介してデバイスを接続するためのポート
    制御部と、前記ダウンポートを介さずにデバイスを接続
    するための仮想ポート制御部とを備えるUSB−HUB
    デバイスの制御方法であって、 ホストから出力されるコントロール転送である第1のト
    ランザクションによりHUBアドレスを設定するステッ
    プと、 前記ホストから出力される前記コントロール転送である
    第2のトランザクションにより前記仮想ポート制御部に
    イネーブルを設定するステップと、 前記ホストから出力される前記コントロール転送である
    第3のトランザクション及び前記仮想ポート制御部から
    のイネーブルにより前記USB−HUBデバイス内にデ
    バイスアドレスを設定するステップと、 前記ホストから出力されるインターラプト転送により前
    記デバイスアドレスによって特定されるデバイスの情報
    を読むあるいは書くステップとを備えることを特徴とす
    るUSB−HUBデバイスの制御方法。
JP2001355781A 2001-11-21 2001-11-21 Usb−hubデバイスおよびその制御方法 Expired - Fee Related JP3609051B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2001355781A JP3609051B2 (ja) 2001-11-21 2001-11-21 Usb−hubデバイスおよびその制御方法
TW091134034A TW583859B (en) 2001-11-21 2002-11-21 USB-HUB device and its control method
US10/301,240 US7054983B2 (en) 2001-11-21 2002-11-21 USB-HUB device and its control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001355781A JP3609051B2 (ja) 2001-11-21 2001-11-21 Usb−hubデバイスおよびその制御方法

Publications (2)

Publication Number Publication Date
JP2003158533A true JP2003158533A (ja) 2003-05-30
JP3609051B2 JP3609051B2 (ja) 2005-01-12

Family

ID=19167422

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001355781A Expired - Fee Related JP3609051B2 (ja) 2001-11-21 2001-11-21 Usb−hubデバイスおよびその制御方法

Country Status (3)

Country Link
US (1) US7054983B2 (ja)
JP (1) JP3609051B2 (ja)
TW (1) TW583859B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010282557A (ja) * 2009-06-08 2010-12-16 Canon Inc データ処理装置、データ処理方法およびプログラム

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7222201B2 (en) * 2003-01-06 2007-05-22 Plx Technology, Inc. Virtual endpoint for USB devices
US20050170699A1 (en) * 2004-02-03 2005-08-04 Overtoom Eric J. USB OTG adapter module for debugging USB OTG devices
US20060036784A1 (en) * 2004-08-10 2006-02-16 Fok-Kei Loo Mobile image retrieving and storing device
US20060149870A1 (en) * 2004-12-30 2006-07-06 Randall Sears Parallel to USB bridge controller
US7685333B2 (en) * 2005-03-22 2010-03-23 Sigmatel, Inc Method and system for communicating with memory devices utilizing selected timing parameters from a timing table
US20080155165A1 (en) * 2006-12-20 2008-06-26 Cyber Group Usa, Inc. Computerized multiple input/output system combined with USB hub and wireless communication functions
US20080276009A1 (en) * 2007-05-04 2008-11-06 Joe Mesa Enabling Efficient Communication Between a Host and Multiple USB Devices
US8135874B2 (en) * 2008-04-02 2012-03-13 June-On Technology Co., Ltd. Automatic mapping and updating computer switching device
US20100185785A1 (en) * 2008-04-02 2010-07-22 June-On Co., Ltd. Automatic mapping and updating computer switching device
TWI423007B (zh) * 2009-12-31 2014-01-11 Via Tech Inc 串列匯流排裝置以及其時脈差補償方法
US20120070019A1 (en) * 2010-09-21 2012-03-22 Barry Corlett Methods for addressing equipment in tree networks
CN103678230B (zh) * 2013-10-25 2016-09-28 北京中科微电子技术有限公司 一种低速usb设备外围接口端点的扩展方法
US10061735B2 (en) 2015-03-06 2018-08-28 Via Technologies, Inc. USB chipset
TWM519756U (zh) * 2015-03-06 2016-04-01 威盛電子股份有限公司 Usb晶片組

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5960180A (en) * 1994-09-07 1999-09-28 Adaptec, Inc. Host adapter integrated circuit having autoaccess pause
US6219736B1 (en) * 1997-04-24 2001-04-17 Edwin E. Klingman Universal serial bus (USB) RAM architecture for use with microcomputers via an interface optimized for integrated services device network (ISDN)
US6185641B1 (en) * 1997-05-01 2001-02-06 Standard Microsystems Corp. Dynamically allocating space in RAM shared between multiple USB endpoints and USB host
JP3045985B2 (ja) 1997-08-07 2000-05-29 インターナショナル・ビジネス・マシーンズ・コーポレイション 接続確立方法、通信方法、状態変化伝達方法、状態変化実行方法、無線装置、無線デバイス、及びコンピュータ
US5974486A (en) * 1997-08-12 1999-10-26 Atmel Corporation Universal serial bus device controller comprising a FIFO associated with a plurality of endpoints and a memory for storing an identifier of a current endpoint
US6230226B1 (en) * 1997-09-30 2001-05-08 Intel Corporation Compound device implementing hub and function endpoints on a single chip
US5987617A (en) * 1997-09-30 1999-11-16 Intel Corporation Low ICC enumeration scheme for bus powered USB device
JPH11122280A (ja) 1997-10-14 1999-04-30 Hitachi Cable Ltd スイッチングハブ
US6205501B1 (en) * 1998-01-07 2001-03-20 National Semiconductor Corp. Apparatus and method for handling universal serial bus control transfers
JP4310878B2 (ja) * 2000-02-10 2009-08-12 ソニー株式会社 バスエミュレーション装置
US6718423B2 (en) * 2000-12-29 2004-04-06 Gateway, Inc. Bus hub with a selectable number of ports
US6990549B2 (en) * 2001-11-09 2006-01-24 Texas Instruments Incorporated Low pin count (LPC) I/O bridge

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010282557A (ja) * 2009-06-08 2010-12-16 Canon Inc データ処理装置、データ処理方法およびプログラム
US9152605B2 (en) 2009-06-08 2015-10-06 Canon Kabushiki Kaisha Apparatus, method, and computer-readable storage medium for data processing in a ring bus

Also Published As

Publication number Publication date
US7054983B2 (en) 2006-05-30
US20030097512A1 (en) 2003-05-22
TW200301640A (en) 2003-07-01
TW583859B (en) 2004-04-11
JP3609051B2 (ja) 2005-01-12

Similar Documents

Publication Publication Date Title
KR100245818B1 (ko) 트랜잭션 및 수신지 id를 가진 공유 버스 시스템
US5649128A (en) Multiple bus interface adapter for connection to a plurality of computer bus architectures
KR970000842B1 (ko) 정보 처리 시스템 및 컴퓨터 시스템
US6523081B1 (en) Architecture using dedicated endpoints and protocol for creating a multi-application interface and improving bandwidth over universal serial bus
US6122690A (en) On-chip bus architecture that is both processor independent and scalable
US5835791A (en) Versatile connection of a first keyboard/mouse interface and a second keyboard/mouse interface to a host computer
US5751976A (en) Bus system for use with information processing apparatus
US5396602A (en) Arbitration logic for multiple bus computer system
US5996051A (en) Communication system which in a first mode supports concurrent memory acceses of a partitioned memory array and in a second mode supports non-concurrent memory accesses to the entire memory array
JP3609051B2 (ja) Usb−hubデバイスおよびその制御方法
US20050125585A1 (en) Bus system for use with information processing apparatus
JPH09244987A (ja) コンピュータシステム、pcカードコントローラ、及び複数のpcカードコントローラを有するコンピュータシステム内のデータ入出力転送をコントロールする方法
US6601165B2 (en) Apparatus and method for implementing fault resilient booting in a multi-processor system by using a flush command to control resetting of the processors and isolating failed processors
EP1021756A1 (en) Direct memory access (dma) transactions on a low pin count bus
JP4444101B2 (ja) バスシステム、バスシステム内で用いるためのステーション、及びバスインタフェース
US5933613A (en) Computer system and inter-bus control circuit
US4723205A (en) Micro computer system
US6934789B2 (en) Interface, structure and method for transmitting data of PCI bus which uses bus request signal for judging whether a device supporting dual transmission mode
JP3836485B2 (ja) デバイスコントローラ
JPH0227696B2 (ja) Johoshorisochi
JP2002149623A (ja) マイクロコンピュータ
JPH0973429A (ja) コンピュータシステム及びバス間制御回路
JPH10198524A (ja) ハードディスク制御装置
JP4860811B2 (ja) マイクロコンピュータ
EP0814412B1 (en) A digital signal processor and a method for interfacing a digital signal processor

Legal Events

Date Code Title Description
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: 20040914

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20041012

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

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20091022

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20091022

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20101022

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20101022

Year of fee payment: 6

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

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

Free format text: PAYMENT UNTIL: 20101022

Year of fee payment: 6

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20111022

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20111022

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20121022

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20121022

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20131022

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees