(57)【要約】【課題】高電圧信号に対応した拡張デバイスを却下するとともに、低電圧信号に対応可能なホスト機器と、高電圧信号および低電圧信号に対応可能な拡張デバイスを提供する。【解決手段】拡張デバイスにおいて、クロック受信部は、クロック端子に第１のクロックパルス及び第２のクロックパルスのいずれが入力されたのかを判定するように構成されている。拡張デバイスは、Ｉ／Ｏセル部に対して入出力される信号のレベルを制御する。拡張デバイスは、Ｉ／Ｏセル部による入力信号のＨｉｇｈ／Ｌｏｗを判定するための閾値を制御する。拡張デバイスは、第１のＩ／Ｏセルが第２信号電圧を入力として動作するように第１のＩ／Ｏセルの閾値を制御する。クロック受信部が第２のクロックパルスの受信を検出したことにより、拡張デバイスは、複数のデータ端子の中のひとつのデータ端子の電圧レベルを反転する方向に複数の第３のＩ／Ｏセルの中の該当するひとつのＩ／Ｏセルを出力にドライブする。【選択図】図１
2020187768.tif 000002
【特許請求の範囲】
【請求項１】
ホストから第１電源電圧の供給を受け、クロック、コマンド/レスポンスおよびデータの信号を介して前記ホストと通信を行い、前記信号の入出力信号レベルは、第１信号電圧およびそれより低い第２信号電圧を前記通信に使用可能な拡張デバイスであって、
前記ホストから電源供給を受ける電源・グランド端子と、
時間的に連続して複数供給される第１のクロックパルス又は前記第１のクロックパルスよりパルス幅が大きく単独で供給される第２のクロックパルスを前記クロックとして入力されるクロック端子と、
前記コマンドを受信したり、前記レスポンスを送信したりするコマンド端子と、
前記データの入出力を行う複数のデータ端子と、
前記クロック端子に接続される第１のＩ／Ｏセル、前記コマンド端子に接続される第２のＩ／Ｏセル、および前記複数のデータ端子に接続される複数の第３のＩ／Ｏセルを有するＩ／Ｏセル部と、
前記クロック端子に前記第１のクロックパルス及び前記第２のクロックパルスのいずれが入力されたのかを判定するように構成されたクロック受信部と、
を備え、
前記拡張デバイスは、前記Ｉ／Ｏセル部に対して入出力される信号のレベルを制御し、前記Ｉ／Ｏセル部による入力信号のＨｉｇｈ／Ｌｏｗを判定するための閾値を制御し、
前記拡張デバイスは、前記第１のＩ／Ｏセルが前記第２信号電圧を入力として動作するように前記第１のＩ／Ｏセルの前記閾値を制御し、
前記クロック受信部が前記第２のクロックパルスの受信を検出したことにより、前記拡張デバイスは、前記複数のデータ端子の中のひとつのデータ端子の電圧レベルを反転する方向に前記複数の第３のＩ／Ｏセルの中の該当するひとつのＩ／Ｏセルを出力にドライブする
拡張デバイス。
【請求項２】
前記拡張デバイスは、前記クロック受信部が前記第２のクロックパルスの受信を検出したことにより、前記コマンド端子の信号電圧レベルを参照し、Ｈｉｇｈの場合は前記第１信号電圧で動作するように前記Ｉ／Ｏセル部を設定し、Ｌｏｗの場合は前記第２信号電圧で動作するように前記Ｉ／Ｏセル部を設定する
請求項１の拡張デバイス。
【請求項３】
前記拡張デバイスは、前記クロック端子に入力されるクロックパルスのパルス幅が所定のパルス幅より大きい場合、前記第２のクロックパルスの受信を検出し、前記クロック端子に入力されるクロックパルスのパルス幅が前記所定のパルス幅より小さい場合、前記第１のクロックパルスの受信を検出する
請求項１の拡張デバイス。
【請求項４】
前記拡張デバイスが前記Ｉ／Ｏセル部の信号電圧を設定する前に、前記クロック端子に入力されるクロックパルスの数が２個以上であることに応じて、前記クロック受信部が前記第１のクロックパルスの受信を検出した場合、前記拡張デバイスは、前記Ｉ／Ｏセル部が前記第１信号電圧で動作するように設定する
請求項２の拡張デバイス。
【請求項５】
前記第２のクロックパルスの検出において、前記クロック端子に印加されるパルス幅を測定する回路を備え、前記パルス幅がある規定値より大きい時に前記第２のクロックパルスを検出したと判定する
請求項１の拡張デバイス。
【請求項６】
前記第１電源電圧またはそれより低い第２電源電圧を選択し、前記Ｉ／Ｏセル部の電源として供給するセレクタを具備し、
前記拡張デバイスは、初期設定として前記第１電源電圧が供給されるように前記セレクタを制御し、前記第２信号電圧で動作するように前記Ｉ／Ｏセル部を設定した場合は前記第２電源電圧が供給されるように前記セレクタを制御する
請求項２の拡張デバイス。
【請求項７】
前記第１電源電圧からレギュレータにより前記第２電源電圧を生成する
請求項６の拡張デバイス。
【請求項８】
前記コマンド端子を介し、前記ホストからのコマンドを受信するとともに、前記コマンドに対する前記レスポンスを前記ホストに送信するコマンド制御部をさらに備え、
前記コマンド制御部は、電圧識別コマンドを受信した場合、前記電圧識別コマンドの引数に設定されている情報として、前記Ｉ／Ｏセル部が前記第１信号電圧で動作しているか前記第２信号電圧で動作しているかを識別する情報を読み取り、拡張デバイスにエラーの発生がなく、かつ前記引数が示す信号電圧をサポートしている場合は前記電圧識別コマンドと同じ信号電圧で前記レスポンスを返し、拡張デバイスにエラーの発生があったか、または前記引数が示す信号電圧をサポートしていない場合は前記レスポンスを返さない
請求項１に記載の拡張デバイス。
【請求項９】
デバイスに第１電源電圧の供給を行い、クロック、コマンド/レスポンスおよびデータの信号を介して前記デバイスと通信を行い、前記信号の入出力信号レベルは、第１信号電圧およびそれより低い第２信号電圧を前記通信に使用可能なホスト機器であって、
前記デバイスに電源供給する電源・グランド端子と、
時間的に連続して複数供給される第１のクロックパルス又は前記第１のクロックパルスよりパルス幅が大きく単独で供給される第２のクロックパルスを前記クロックとして出力するクロック端子と、
前記コマンドを送信したり、前記レスポンスを受信したりするコマンド端子と、
データの入出力を行う第１のデータ端子と、
データの入出力を行う第２のデータ端子と、
前記クロック端子に接続される第１のＩ／Ｏセル、前記コマンド端子に接続される第２のＩ／Ｏセル、前記第１のデータ端子に接続される第３のＩ／Ｏセル、および前記第２のデータ端子に接続される第４のＩ／Ｏセルを有するＩ／Ｏセル部と、
前記第２信号電圧で通信できるデバイスかどうかを検出するデバイス検出部を備え、
前記第１のデータ端子をＬｏｗレベルにドライブし、前記クロック端子、前記コマンド端子および前記第２のデータ端子をＬｏｗレベルにドライブし、
前記第２のクロックパルスを前記クロック端子に出力し、前記第２のクロックパルスの出力から第１の所定期間が経過した後にドライブを停止して抵抗を介して前記第１のデータ端子をプルアップし、
前記第１の所定期間の経過後さらに第２の所定時間が経過した後に、前記第１のデータ端子の信号のレベルがＬｏｗレベルに維持されていれば前記デバイスの初期化を開始し、
前記第１の所定期間の経過後さらに第２の所定時間が経過した後に、前記第１のデータ端子の信号のレベルが所定の電圧レベルとなっていれば前記デバイスの初期化を行わない
ホスト機器。
【請求項１０】
前記デバイスの初期化時の前記クロックの最低周波数におけるＨｉｇｈレベル期間よりも前記第２のクロックパルスのＨｉｇｈレベル期間の方が長い
請求項９に記載のホスト機器。
【請求項１１】
前記コマンド端子から前記コマンドを発行するとともに、前記コマンドに対する前記レスポンスを受信するコマンド制御部をさらに備え、
現在の通信が前記第２信号電圧で行われていることを識別する情報を引数に設定した電圧識別コマンドを前記デバイスに送信し、
前記電圧識別コマンドに対し前記レスポンスを受信した場合は、前記デバイスの初期化を継続し、前記電圧識別コマンドに対し前記レスポンスを受信しなかった場合は、前記デバイスの初期化を停止するとともに電源供給を停止する
請求項１０に記載のホスト機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、ホスト機器および拡張デバイスに関する。
【背景技術】
【０００２】
半導体集積回路（ＩＣ）の微細化に伴ってＩＣ電圧やＩ／Ｏ信号電圧の低電圧化が求められている。一方、高電源電圧に対応したホスト機器および拡張デバイスが流通している状況で、高電源電圧および低電圧信号インターフェースに対応したホスト機器および拡張デバイスが混在して使用されることがある。
この時、入力バッファの入力がフローティング状態にある場合や中間電圧が入力バッファに入力されると、入力バッファに貫通電流が流れることがある。特に、低電圧信号のハイレベルは高電圧信号の中間電圧となることがある。このため、異なる信号電圧で動作するホスト機器および拡張デバイスが接続されると、入力バッファに貫通電流が流れることがあった。以下高電圧信号をＨＶＳ（Ｈｉｇｈ  Ｖｏｌｔａｇｅ  Ｓｉｇｎａｌｉｎｇ）と表現し、低電圧信号をＬＶＳ（Ｌｏｗ  Ｖｏｌｔａｇｅ  Ｓｉｇｎａｌｉｎｇ）と表現する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】ＷＯ２００６／０５７３４０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明の一つの実施形態は、高電圧信号に対応した拡張デバイスを却下するとともに、低電圧信号に対応可能なホスト機器と、高電圧信号および低電圧信号に対応可能な拡張デバイスを提供することを目的とする。
【課題を解決するための手段】
【０００５】
本発明の一つの実施形態によれば、ホストから第１電源電圧の供給を受け、クロック、コマンド/レスポンスおよびデータの信号を介して前記ホストと通信を行い、前記信号の入出力信号レベルは、第１信号電圧およびそれより低い第２信号電圧を前記通信に使用可能な拡張デバイスが提供される。拡張デバイスは、電源・グランド端子とクロック端子とコマンド端子と複数のデータ端子とＩ／Ｏセル部とクロック受信部とを有する。電源・グランド端子は、ホストから電源供給を受ける。クロック端子は、第１のクロックパルス又は第２のクロックパルスをクロックとして入力される。第１のクロックパルスは、時間的に連続して複数供給される。第２のクロックパルスは、単独で供給される。コマンド端子は、コマンドを受信したり、レスポンスを送信したりする。複数のデータ端子は、データの入出力を行う。Ｉ／Ｏセル部は、第１のＩ／Ｏセル、第２のＩ／Ｏセル、および複数の第３のＩ／Ｏセルを有する。第１のＩ／Ｏセルは、クロック端子に接続される。第２のＩ／Ｏセルは、コマンド端子に接続される。複数の第３のＩ／Ｏセルは、複数のデータ端子に接続される。クロック受信部は、クロック端子に第１のクロックパルス及び第２のクロックパルスのいずれが入力されたのかを判定するように構成されている。拡張デバイスは、Ｉ／Ｏセル部に対して入出力される信号のレベルを制御する。拡張デバイスは、Ｉ／Ｏセル部による入力信号のＨｉｇｈ／Ｌｏｗを判定するための閾値を制御する。拡張デバイスは、第１のＩ／Ｏセルが第２信号電圧を入力として動作するように第１のＩ／Ｏセルの閾値を制御する。クロック受信部が第２のクロックパルスの受信を検出したことにより、拡張デバイスは、複数のデータ端子の中のひとつのデータ端子の電圧レベルを反転する方向に複数の第３のＩ／Ｏセルの中の該当するひとつのＩ／Ｏセルを出力にドライブする。
【図面の簡単な説明】
【０００６】
【図１】図１は、第１実施形態に係るホスト機器および拡張デバイスの概略構成を示すブロック図である。ＨＶＳホストとは、高電圧信号で通信を開始するホスト１を示し、ＬＶＳホストとは、低電圧信号で通信を開始するホスト２を示し、ＨＶＳデバイスとは、高電圧信号で通信を開始する拡張デバイス３を示し、ＬＶＳデバイスとは、ホスト機器の種類に応じて高電圧信号または低電圧信号を選択して通信を開始する拡張デバイス４を示す。
【図２】図２は、図１のＬＶＳホストおよびＬＶＳデバイスのより詳細な構成を示すブロック図である。
【図３】図３（ａ）は、図１のＨＶＳホストにＬＶＳデバイスが装着された時のデータラインＤＡＴ［３］の接続関係を示すブロック図、図３（ｂ）は、図１のＬＶＳホストにＬＶＳデバイスが装着された時のデータラインＤＡＴ［３］の接続関係を示すブロック図である。
【図４】図４は、図１のＬＶＳホストにＬＶＳデバイスが装着された時の前処理シーケンスを示すタイミングチャートである。
【図５】図５は、図１のＬＶＳホストにＨＶＳデバイスが装着された時の前処理シーケンスを示すタイミングチャートである。
【図６】図６（ａ）は、低電圧信号出力のＨｉｇｈが高電圧信号入力の中間電圧になることを示す図、図６（ｂ）は、図１のＨＶＳデバイスに中間電圧が入力された時に貫通電流が発生したときの状態を示すブロック図である。
【図７】図７は、第１実施形態に係るホストが送信するＬＶＳ  ＳＤカードのＣＭＤ８の内容を示す図である。
【図８】図８は、第１実施形態に係るホストの前処理および初期化シーケンスを示すフローチャートである。
【図９】図９は、第１実施形態に係る拡張デバイスの前処理および初期化シーケンスを示すフローチャートである。
【図１０】図１０は、第１実施形態に係る拡張デバイスの初期化シーケンスを示すフローチャートである。
【図１１】図１１は、第２実施形態に係るＬＶＳホストにＬＶＳデバイスが装着された時の前処理シーケンスを示すタイミングチャートである。
【図１２】図１２は、第２実施形態に係るＬＶＳホストにＨＶＳデバイスが装着された時の前処理シーケンスを示すタイミングチャートである。
【図１３】図１３は、第２実施形態に係るＨＶＳホストにＬＶＳデバイスが装着された時の前処理シーケンスを示すタイミングチャートである。
【図１４】図１４は、第２実施形態に係るＨＶＳホストにＬＶＳデバイスが装着された時の前処理シーケンスのその他の例を示すタイミングチャートである。
【図１５】図１５は、第３実施形態に係るＬＶＳデバイスに用いられる入出力バッファの構成例を示すブロック図である。
【図１６】図１６（ａ）は、第４実施形態に係るＬＶＳ識別モードの期間を示すタイミングチャート、図１６（ｂ）は、ＨＶＳホストが初期化時に供給するクロックとＨＶＳホストがＬＶＳ識別シーケンスで発行するクロックのタイミングチャートである。
【図１７】図１７は、第５実施形態に係るＬＶＳホストにＬＶＳデバイスが装着された時のＬＶＳ識別シーケンスを示すタイミングチャートである。
【図１８】図１８は、第５実施形態に係るＬＶＳホストにＨＶＳデバイスが装着された時のＬＶＳ識別シーケンスを示すタイミングチャートである。
【図１９】図１９は、第５実施形態に係る拡張デバイスのＬＶＳ識別シーケンスおよび初期化シーケンスを示すフローチャートである。
【図２０】図２０は、第５実施形態に係る拡張デバイスのＬＶＳ識別シーケンスおよび初期化シーケンスを示すフローチャートである。
【図２１】図２１は、第５実施形態に係るホストのＬＶＳ識別シーケンスおよび初期化シーケンスを示すフローチャートである。
【図２２】図２２は、第５実施形態に係るホストのＬＶＳ識別シーケンスおよび初期化シーケンスを示すフローチャートである。
【図２３】図２３は、第６実施形態に係るＬＶＳホスにＬＶＳデバイスが装着された時のデータラインＤＡＴ［２］の接続関係を示すブロック図である。
【発明を実施するための形態】
【０００７】
以下に添付図面を参照して、実施形態に係るホスト機器および拡張デバイスを詳細に説明する。ここで言う拡張デバイスとは、ホスト機器のスロットに拡張デバイスを装着することにより、ホスト機器に機能を外付けできるデバイスを言う。機能の外付けは、ホスト機器が持たない機能の追加であってもよいし、ホスト機器が持っている機能の増強であってもよい。この拡張デバイスは、ホスト機器に接続されることで動作し、拡張デバイス単体では、自律的に動作することができない。すなわち、拡張デバイスは、ホスト機器から電源、クロック、コマンドを受け取り、そのコマンドに応じてレスポンスを返したり、データを送受信したりすることができる。この時、スロットは、電源端子、クロック端子、コマンド端子およびデータ端子を備えることができる。クロック端子、コマンド端子およびデータ端子は信号端子として用いることができる。この拡張デバイスをホスト機器に装着することで、ホスト機器の機能の多様性や柔軟性を向上させることができる。
【０００８】
この拡張デバイスは、メモリカードであってもよいし、Ｉ/Ｏカードであってもよい。Ｉ/Ｏカードが提供する機能としては、例えば、ＧＰＳ、カメラ、Ｗｉ−Ｆｉ（登録商標）、ＦＭラジオ、Ｅｔｈｅｒｎｅｔ（登録商標）、バーコードリーダ、Ｂｌｕｅｔｏｏｔｈ（登録商標）などを挙げることができる。ホスト機器は、拡張デバイスの受け口となるスロットを持ち、そのスロットを介して電源、クロック、コマンドを送ったり、そのコマンドに応じてレスポンスを受け取ったり、データを送受信したりすることができる。ホスト機器は、パーソナルコンピュータであってもよいし、スマートフォンなどの携帯情報端末であってもよいし、プリンタや複写機などの周辺機器であってもよいし、冷蔵庫や電子レンジなどの情報家電であってもよい。なお、これらの実施形態により本発明が限定されるものではない。
【０００９】
（第１実施形態）
図１は、第１実施形態に係るホスト機器および拡張デバイスの概略構成を示すブロック図である。なお、図１では、ホスト１、２および拡張デバイス３、４のそれぞれについて、電源、クロック、コマンド/レスポンスおよびデータのバスインターフェース信号を介してホスト１、２と拡張デバイス３、４との間で通信を行うインターフェース部を抜粋して示した。
図１において、拡張デバイス３、４はホスト１、２に脱着可能に構成されている。この時、ホスト１は拡張デバイス３、４を使用することができ、デバイスを初期化するために拡張デバイス３、４にコマンドを送り、拡張デバイス３、４からレスポンスを受信することができる。ホスト２は拡張デバイス４を使用することができるが、拡張デバイス３を使用することができない。デバイスを初期化するために拡張デバイス４にコマンドを送り、拡張デバイス４からレスポンスを受信することができる。ホスト１および拡張デバイス３、４は高電圧信号で通信し、ホスト２および拡張デバイス４は低電圧信号で通信することができる。例えば、高電圧信号は３．３Ｖ付近、低電圧信号は１．８Ｖ付近に設定することができる。高電圧信号は高電圧で通信する信号、低電圧信号は低電圧で通信する信号である。なお、信号はクロックＣＬＫ、データＤＡＴ［３：０］およびコマンドＣＭＤを含むことができる。この時、電源電圧は、ホスト１、２から拡張デバイス３、４に電源ラインＶＤＤを介して供給される。電源電圧は高電源電圧に設定することができる。例えば、電源電圧は３．３Ｖ（２．７Ｖ〜３．６Ｖ）に設定することができる。
【００１０】
拡張デバイス３は、初期化開始時に高電圧信号で動作し、初期化の途中で高電圧信号から低電圧信号に信号レベルを切り替えることができる。ホスト１および拡張デバイス３は、例えば、ＳＤカードのＵＨＳ−Ｉ規格に準拠して動作することができる。このようなＨＶＳ（Ｈｉｇｈ  Ｖｏｌｔａｇｅ  Ｓｉｇｎａｌｉｎｇ）に対応したホストやデバイスをＨＶＳホスト、ＨＶＳデバイスと呼ぶことにする。ホスト２と拡張デバイス４の組み合わせでは、初期化開始時から継続して低電圧信号で動作し、高電圧信号を用いず使用することができる。このようなＬＶＳ（Ｌｏｗ  Ｖｏｌｔａｇｅ  Ｓｉｇｎａｌｉｎｇ）に対応したホストやデバイスをＬＶＳホスト、ＬＶＳデバイスと呼ぶことにする。
【００１１】
ホスト１には、電源供給部１Ａ、パワースイッチ１Ｂ、信号電圧制御部１Ｃ、ＶＤＤＩＯセレクタ１Ｄ（ＶＤＤＩＯはＩ／Ｏセルの電源）、クロック発生部１Ｅ、コマンド制御部１Ｆ、データ制御部１ＧおよびＩ／Ｏセル１Ｈが設けられている。ホスト２には、電源供給部２Ａ、パワースイッチ２Ｂ、クロック発生部２Ｅ、コマンド制御部２Ｆ、データ制御部２Ｇ、Ｉ／Ｏセル２ＨおよびＬＶＳ制御部２Ｊが設けられている。
【００１２】
電源供給部１Ａ、２Ａは、電源電圧ＶＤ１、ＶＤ２、ＶＤＤＬを生成する。電源電圧ＶＤ１は、例えば、３．３Ｖ（２．７Ｖ〜３．６Ｖ）、電源電圧ＶＤ２は、例えば、１．８Ｖ、電源電圧ＶＤＤＬは、例えば、１．２Ｖに設定することができる。電源電圧ＶＤＤＬはロジック回路の電源として用いることができる。パワースイッチ１Ｂ、２Ｂは、電源電圧ＶＤ１が電源ラインＶＤＤに供給されるのをオン／オフする。パワースイッチ１Ｂ、２Ｂには、出力電圧をグランド電位にプルダウンするプルダウン回路を設けることができる。信号電圧制御部１Ｃは、初期化シーケンスにおいて信号レベルを高電圧から低電圧に切り替えるように指示する。ＶＤＤＩＯセレクタ１Ｄは、電源電圧ＶＤ１、ＶＤ２のいずれかをセル電源ＶＤＤＩＯとして選択し、Ｉ／Ｏセル１Ｈに供給する。クロック発生部１Ｅ、２Ｅは、所定の周波数のクロックＣＬＫを発生する。コマンド制御部１Ｆは、拡張デバイス３、４にコマンドＣＭＤを送ったり、コマンドＣＭＤに対応するレスポンスを拡張デバイス３、４から受信したりする。データ制御部１Ｇ、２Ｇは、拡張デバイス３、４との間でデータＤＡＴ［３：０］を送受信する。Ｉ／Ｏセル１Ｈは、セル電源ＶＤＤＩＯで指定される電源電圧ＶＤ１、ＶＤ２のいずれかに応じて、クロックＣＬＫ、コマンドＣＭＤ、そのコマンドＣＭＤのレスポンスおよびデータＤＡＴ［３：０］の信号レベルを設定する。Ｉ／Ｏセル２Ｈは、セル電源ＶＤＤＩＯで指定される電源電圧ＶＤ２に応じてクロックＣＬＫ、コマンドＣＭＤ、そのコマンドＣＭＤに応じたレスポンスおよびデータＤＡＴ［３：０］の信号レベルを設定する。ＬＶＳ制御部２Ｊは、拡張デバイス３、４がＨＶＳデバイスおよびＬＶＳデバイスのいずれであるかを判定する。ＬＶＳ制御部２Ｊは、低電圧信号で通信できるデバイスかどうかを検出するデバイス検出部を備えることができる。そして、その判定結果に応じてクロックＣＬＫ、コマンドＣＭＤ、そのコマンドＣＭＤに応じたレスポンスおよびデータＤＡＴ［３：０］のシーケンスや信号レベルを制御する。この信号レベルは、Ｈｉｇｈ駆動、Ｌｏｗ駆動、プルアップ、プルダウンおよび出力Ｔｒｉｓｔａｔｅ（入力状態）から選択することができる。
【００１３】
この拡張デバイス３、４がＨＶＳデバイスおよびＬＶＳデバイスのいずれであるかをホスト２が判定する処理（以下、前処理と言うことがある）は、初期化処理の前に行うことができる。この前処理では、ＬＶＳホストは、データＤＡＴ［３］の電圧をＬｏｗに駆動することでＬＶＳホストであることを示すことができる。ＨＶＳホストは、ＬＶＳデバイスが装着された時にデータＤＡＴ［３］の電圧をＨｉｇｈに設定することができる（詳細は図３（ａ）で説明する）。また、ＬＶＳホストは、データＤＡＴ［２］の電圧を監視することができる。そして、ホスト２がデータＤＡＴ［２］をプルアップした時にデータＤＡＴ［２］の電圧がＬｏｗの時はＬＶＳデバイス、データＤＡＴ［２］の電圧がＨｉｇｈの時はＨＶＳデバイスと判定することができる。ＬＶＳデバイスと判定した時は、初期化処理に移行する。ＨＶＳデバイスと判定した時は、Ｉ／Ｏセル出力の駆動を停止し、デバイスの電源を切り、ＨＶＳデバイスを却下する。
【００１４】
拡張デバイス３には、リセット回路３Ａ、レギュレータ３Ｂ、信号電圧制御部３Ｃ、ＶＤＤＩＯセレクタ３Ｄ、クロック受信部３Ｅ、コマンド制御部３Ｆ、データ制御部３ＧおよびＩ／Ｏセル３Ｈが設けられている。拡張デバイス４には、リセット回路４Ａ、レギュレータ４Ｂ、信号電圧制御部４Ｃ、ＶＤＤＩＯセレクタ４Ｄ、クロック受信部４Ｅ、コマンド制御部４Ｆ、データ制御部４Ｇ、Ｉ／Ｏセル４ＨおよびＬＶＳ制御部４Ｊが設けられている。
【００１５】
リセット回路３Ａ、４Ａは、電源電圧ＶＤ１が動作電圧範囲で供給されているかどうかを判定し、リセット信号ＲＥＳを出力することでロジック回路をリセットする。レギュレータ３Ｂ、４Ｂは、電源電圧ＶＤ１を電源電圧ＶＤ２、ＶＤＤＬに変換する。信号電圧制御部３Ｃ、４Ｃは、信号レベルを高電圧から低電圧に切り替えるように指示する。ＶＤＤＩＯセレクタ３Ｄ、４Ｄは、電源電圧ＶＤ１、ＶＤ２のいずれかをセル電源ＶＤＤＩＯとして選択し、Ｉ／Ｏセル３Ｈ、４Ｈにそれぞれ供給する。クロック受信部３Ｅ、４Ｅは、クロックＣＬＫを受信し、ロジック回路に分配する。コマンド制御部３Ｆ、４Ｆは、ホスト１、２からコマンドＣＭＤを受信したり、コマンドＣＭＤに対応するレスポンスをホスト１、２に送ったりする。この時、コマンド制御部３Ｆ、４Ｆは、コマンドＣＭＤが入力されると、コマンド番号を解読し、実行する機能を認識するとともに、そのレスポンスをホスト１、２に返すことができる。データ制御部３Ｇ、４Ｇは、ホスト１、２拡との間でデータＤＡＴ［３：０］を送受信する。Ｉ／Ｏセル３Ｈ、４Ｈは、セル電源ＶＤＤＩＯで指定される電源電圧ＶＤ１、ＶＤ２のいずれかに応じて、クロックＣＬＫ、コマンドＣＭＤ、そのコマンドＣＭＤのレスポンスおよびデータＤＡＴ［３：０］の信号レベルを設定する。ＬＶＳ制御部４Ｊは、ホスト１、２がＨＶＳホストおよびＬＶＳホストのいずれであるかを判定する。そして、その判定結果に応じてクロックＣＬＫ、コマンドＣＭＤ、そのコマンドＣＭＤに応じたレスポンスおよびデータＤＡＴ［３：０］のシーケンスや信号レベルを制御する。この信号レベルは、Ｈｉｇｈ駆動、Ｌｏｗ駆動、プルアップ、プルダウンおよび出力Ｔｒｉｓｔａｔｅ（入力状態）から選択することができる。
【００１６】
このホスト１、２がＨＶＳホストおよびＬＶＳホストのいずれであるかを拡張デバイス４が判定する処理（以下、前処理と言うことがある）は、初期化処理の前に行うことができる。最初セル電源ＶＤＤＩＯは電源電圧ＶＤ１が接続されている。この前処理では、ＬＶＳデバイスはデータＤＡＴ［３］の電圧を監視することができる。そして、図３（ｂ）のデバイス検出抵抗Ｒ４によってＤＡＴ［３］はプルアップされているので、データＤＡＴ［３］の電圧がＬｏｗの時はＬＶＳホスト（Ｌｏｗ駆動している）、データＤＡＴ［３］の電圧がＨｉｇｈの時はＨＶＳホストと判定することができる。ＬＶＳホストと判定した時は、データＤＡＴ［２］の電圧をＬｏｗに駆動し、電源電圧ＶＤ２を生成するレギュレータ４Ｂをオンにする。電源電圧ＶＤ２が安定してからセル電源ＶＤＤＩＯを電源電圧ＶＤ２に切り替えることができる。ＨＶＳホストと判定した時は、セル電源ＶＤＤＩＯは電源電圧ＶＤ１のままにしておく。ＨＶＳデバイスはデータＤＡＴ［２］を駆動しない。
【００１７】
なお、電源供給部１Ａ、２Ａ、パワースイッチ１Ｂ、２Ｂ、レギュレータ３Ｂ、４ＢおよびＩ／Ｏセル１Ｈ〜４Ｈはアナログ回路で構成することができる。リセット回路３Ａ、４Ａ、信号電圧制御部１Ｃ、ＶＤＤＩＯセレクタ１Ｄ、３Ｄ、４Ｄ、クロック発生部１Ｅ〜４Ｅ、コマンド制御部１Ｆ〜４Ｆおよびデータ制御部１Ｇ〜４Ｇは論理回路で構成することができる。なお、コマンド制御部１Ｆ〜４Ｆ、データ制御部１Ｇ〜４ＧおよびＬＶＳ制御部２Ｊ、４Ｊは、プロセッサによるファームウェア処理で実現するようにしてもよい。
【００１８】
拡張デバイス３がホスト１に接続されたものとする。この時、ホスト１の電源電圧ＶＤ１がパワースイッチ１Ｂをオンにすることで、電源ラインＶＤＤを介して拡張デバイス３の電源電圧ＶＤ１として供給される。コマンドＣＭＤおよびデータＤＡＴ［２：０］の電圧はホスト１によってプルアップされる。データＤＡＴ［３］の電圧は拡張デバイス３のデバイス検出抵抗によってプルアップされる。電源電圧ＶＤ１が安定すると、ホスト１は初期化処理を開始する。この時、ホスト１は拡張デバイス３にクロックＣＬＫを送るとともに、コマンドＣＭＤを発行する。
【００１９】
拡張デバイス３は、そのコマンドＣＭＤ（コマンドＣＭＤ０を除く）に対するレスポンスをホスト１に返す。この時、ホスト１は、コマンドＣＭＤ８を電圧確認コマンドとして発行する。コマンドＣＭＤ８のフィールドＶＨＳにはコマンド引数０００１ｂを設定する。拡張デバイス３は、コマンドＣＭＤ８を受け取ると、コマンド引数を確認する。そして、コマンド引数が０００１ｂの場合、コマンドＣＭＤ８に対するレスポンスをホスト１に返す。ホスト１は、コマンドＣＭＤ８に対するレスポンスを受け取ると、さらに初期化を継続できると認識する。
【００２０】
拡張デバイス４がホスト１に接続されたものとする。この時、ホスト１の電源電圧ＶＤ１がパワースイッチ１Ｂをオンにすることで、電源ラインＶＤＤを介して拡張デバイス４の電源電圧ＶＤ１として供給される。コマンドＣＭＤおよびデータＤＡＴ［２：０］の電圧はホスト１によってプルアップされる。データＤＡＴ［３］の電圧は拡張デバイス４のデバイス検出抵抗によってプルアップされる。電源電圧ＶＤ１が安定すると、拡張デバイス４は、データＤＡＴ［３］の電圧を監視する。そして、データＤＡＴ［３］の電圧がＨｉｇｈの時はホスト１がＨＶＳホストと判定する。ＨＶＳホストと判定した時は、セル電源ＶＤＤＩＯを電源電圧ＶＤ１のままを維持し、データＤＡＴ［２］は駆動しない。
【００２１】
ホスト１は初期化処理を開始する。この時、ホスト１は拡張デバイス４にクロックＣＬＫを送るとともに、コマンドＣＭＤを発行する。拡張デバイス４は、そのコマンドＣＭＤ（コマンドＣＭＤ０を除く）に対するレスポンスをホスト１に返す。この時、ホスト１は、コマンドＣＭＤ８を電圧確認コマンドとして発行する。コマンドＣＭＤ８のフィールドＶＨＳにはコマンド引数０００１ｂを設定する。拡張デバイス４は、コマンドＣＭＤ８を受け取ると、コマンド引数を確認する。そして、コマンド引数が０００１ｂの場合かつそれまでの手順でエラーがなかった場合、コマンドＣＭＤ８に対するレスポンスをホスト１に返す。ホスト１は、コマンドＣＭＤ８に対するレスポンスを受け取ると、拡張デバイス４が高電圧信号で初期化処理を継続可能であると認識する。
【００２２】
拡張デバイス３がホスト２に接続されたものとする。この時、ホスト２は、クロックＳＤＣＬＫおよびデータＤＡＴ［３］をＬｏｗに駆動する。これにより、データＤＡＴ［３］の電圧が拡張デバイス３のデバイス検出抵抗を介して電源電圧ＶＤ１にプルアップされるのを防止することができる。また、ホスト２の電源電圧ＶＤ１がパワースイッチ２Ｂをオンにすることで、電源ラインＶＤＤを介して拡張デバイス３の電源電圧ＶＤ１として供給される。コマンドＣＭＤおよびデータＤＡＴ［２：０］の電圧はホスト２のプルアップ抵抗を介してプルダウンされる。この時、プルアップ抵抗にはプルアップ電圧が印加されない。あるいは、ホスト２は、コマンドＣＭＤおよびデータＤＡＴ［２：０］の電圧をＬｏｗに駆動してもよい。
【００２３】
電源電圧ＶＤ１が安定してから、ＬＶＳデバイスのセットアップ時間が経過すると、ホスト２は、プルアップ電圧を供給することでプルアップ抵抗を介してデータＤＡＴ［２］をプルアップする。そして、ホスト２は、データＤＡＴ［２］の電圧がＨｉｇｈの時は拡張デバイス３がＨＶＳデバイスと判定する。この時、データＤＡＴ［２］の電圧は拡張デバイス３にて駆動されないので、データＤＡＴ［２］の電圧がプルアップされると、データＤＡＴ［２］の電圧はＬｏｗからＨｉｇｈに移行する。ホスト２は、拡張デバイス３がＨＶＳデバイスと判定すると、プルアップ電圧の供給を停止するとともに、Ｉ／Ｏセル出力の駆動を停止し、デバイスの電源を切り、拡張デバイス３を却下する。
【００２４】
拡張デバイス４がホスト２に接続されたものとする。この時、ホスト２は、クロックＳＤＣＬＫおよびデータＤＡＴ［３］の電圧をＬｏｗに駆動する。これにより、データＤＡＴ［３］の電圧が拡張デバイス４のデバイス検出抵抗を介して電源電圧ＶＤ１にプルアップされるのを防止することができる。また、ホスト２の電源電圧ＶＤ１がパワースイッチ２Ｂをオンにすることで、電源ラインＶＤＤを介して拡張デバイス４の電源電圧ＶＤ１として供給される。コマンドＣＭＤおよびデータＤＡＴ［２：０］の電圧はホスト２のプルアップ抵抗を介してプルダウンされる。この時、プルアップ抵抗にはプルアップ電圧が印加されない。あるいは、ホスト２は、コマンドＣＭＤおよびデータＤＡＴ［２：０］の電圧をＬｏｗに駆動してもよい。
【００２５】
電源電圧ＶＤ１が安定してから、ＬＶＳデバイスのセットアップ時間が経過すると、ホスト２は、プルアップ抵抗を介してプルアップ電圧を供給することでデータＤＡＴ［２］をプルアップする。そして、ホスト２は、データＤＡＴ［２］の電圧がＬｏｗの時は拡張デバイス４がＬＶＳデバイスと判定する。この時、データＤＡＴ［２］の電圧は拡張デバイス４にてＬｏｗに駆動されているので、データＤＡＴ［２］の電圧がプルアップされた場合においても、データＤＡＴ［２］の電圧はＬｏｗを維持することができる。
【００２６】
一方、拡張デバイス４は、データＤＡＴ［３］の電圧を監視する。そして、データＤＡＴ［３］の電圧がＬｏｗの時はホスト２がＬＶＳホストと判定する。ＬＶＳホストと判定した時は、データＤＡＴ［２］の電圧をＬｏｗに駆動し、電源電圧ＶＤ２を生成するレギュレータ４Ｂをオンにする。電源電圧ＶＤ２が安定してからセル電源ＶＤＤＩＯを電源電圧ＶＤ２に切り替える。
【００２７】
コマンドＣＭＤおよびデータＤＡＴ［３：０］はホスト２によってプルアップされる。そして、ホスト２は初期化処理を開始する。この時、ホスト２は拡張デバイス４にクロックＣＬＫを送るとともに、コマンドＣＭＤを発行する。クロックＣＬＫおよびコマンドＣＭＤは低電圧信号で送られる。拡張デバイス４は、そのコマンドＣＭＤ（コマンドＣＭＤ０を除く）に対するレスポンスをホスト２に返す。この時、ホスト２は、コマンドＣＭＤ８を電圧確認コマンドとして発行する。コマンドＣＭＤ８のフィールドＶＨＳにはコマンド引数００１０ｂを設定する。拡張デバイス４は、コマンドＣＭＤ８を受け取ると、コマンド引数を確認する。そして、コマンド引数が００１０ｂの場合かつそれまでの手順でエラーがなかった場合、コマンドＣＭＤ８に対するレスポンスをホスト１に返す。このレスポンスは低電圧信号で送られる。ホスト２は、コマンドＣＭＤ８に対するレスポンスを受け取ると、拡張デバイス４が低電圧信号で初期化処理を継続可能であると認識する。
【００２８】
ここで、拡張デバイス３、４がＨＶＳデバイスおよびＬＶＳデバイスのいずれであるかをホスト２が判定する処理において、クロックＣＬＫ、データＤＡＴ［３：０］およびコマンドＣＭＤの電圧をＬｏｗに設定することにより、拡張デバイス３、４の入力バッファに中間電圧が入力されるのを防止することができ、入力バッファに貫通電流が流れるのを防止することができる。
また、ＬＶＳデバイスではデータＤＡＴ［２］がＬｏｗに起動され、ＨＶＳデバイスではデータＤＡＴ［２］が起動されない。このため、ホスト２がデータＤＡＴ［２］をプルアップした時にデータＤＡＴ［２］の電圧を検出することで拡張デバイス３、４がＨＶＳデバイスおよびＬＶＳデバイスのいずれであるかを判定することができる。この時、ＬＶＳデバイスでは、データＤＡＴ［２］の電圧がＬｏｗに維持されるので、拡張デバイス４の入力バッファに中間電圧が入力されるのを防止することができ、入力バッファに貫通電流が流れるのを防止することができる。一方、ＨＶＳデバイスでは、データＤＡＴ［２］の電圧がＨｉｇｈになるが、その時にホスト２は拡張デバイス３の駆動を即座に停止することにより、入力バッファに貫通電流が流れたとしても短時間にすることで影響を低減することができる。論理回路により制御することで数マイクロ秒程度で処理が可能である。
【００２９】
図２は、図１のＬＶＳホストおよびＬＶＳデバイスのより詳細な構成を示すブロック図である。なお、図２では、図１の拡張デバイス４としてＬＶＳに対応したＳＤカードを例にとった。
図２において、ホスト２には、電源供給部２Ａ、パワースイッチ２Ｂ（プルダウン回路があっても良いが図示はしていない）、２Ｌ、Ｉ／Ｏセル２Ｈおよびロジック回路２Ｋが設けられている。ロジック回路２Ｋには、図１のクロック発生部２Ｅ、コマンド制御部２Ｆ、データ制御部２ＧおよびＬＶＳ制御部２Ｊを設けることができる。また、ホスト２には、プルアップ抵抗Ｒ０〜Ｒ３、電源端子ＴＨ１、クロック端子ＴＨ２、コマンド端子ＴＨ３およびデータ端子ＴＨ４〜ＴＨ６が設けられている。電源端子ＴＨ１には電源ラインＶＤＤが接続されている。クロック端子ＴＨ２にはクロックＳＤＣＬＫを割り当てることができる。コマンド端子ＴＨ３にはコマンドＣＭＤおよびレスポンスを割り当てることができる。データ端子ＴＨ４にはデータＤＡＴ［３］を割り当てることができる。データ端子ＴＨ５にはデータＤＡＴ［２］を割り当てることができる。データ端子ＴＨ６にはデータＤＡＴ［１：０］を割り当てることができる。パワースイッチ２Ｌにはプルダウン回路２Ｐが設けられている。Ｉ／Ｏセル２Ｈには、出力バッファＢＨ１、ＢＨ２、ＢＨ４〜ＢＨ６および入力バッファＢＨ３、ＢＨ７〜ＢＨ９が設けられている。
【００３０】
出力バッファＢＨ１、ＢＨ２、ＢＨ４〜ＢＨ６の入力および入力バッファＢＨ３、ＢＨ７〜ＢＨ９の出力はロジック回路２Ｋに接続されている。パワースイッチ２Ｂの出力は電源端子ＴＨ１に接続されている。出力バッファＢＨ１の出力はクロック端子ＴＨ２に接続されている。出力バッファＢＨ２の出力および入力バッファＢＨ３の入力はコマンド端子ＴＨ３に接続されている。出力バッファＢＨ４の出力および入力バッファＢＨ７の入力はデータ端子ＴＨ４に接続されている。出力バッファＢＨ５の出力および入力バッファＢＨ８の入力はデータ端子ＴＨ５に接続されている。出力バッファＢＨ６の出力および入力バッファＢＨ９の入力はデータ端子ＴＨ６に接続されている。コマンド端子ＴＨ３およびデータ端子ＴＨ４〜ＴＨ６は、プルアップ抵抗Ｒ０〜Ｒ３をそれぞれ介してパワースイッチ２Ｌに接続されている。パワースイッチ２Ｌは、電源電圧ＶＤ２がセル電源ＶＤＤＩＯとしてＩ／Ｏセル２Ｈに供給されるのをオン／オフする。各パワースイッチ２Ｂ、２Ｌは、ロジック回路２Ｋからの制御信号に従って電源電圧の供給をオン／オフすることができる。プルダウン回路２Ｐは、プルアップ抵抗Ｒ０〜Ｒ３をそれぞれ介してコマンド端子ＴＨ３およびデータ端子ＴＨ４〜ＴＨ６の電位をグランド電位にプルダウンすることができる。電源供給部２Ａは、ロジック回路２Ｋに電源電圧ＶＤＤＬを供給することができる。データ端子ＴＨ６のＤＡＴ［１：０］の図の表記では、２本の信号をまとめて省略記載している。つまり、出力バッファＢＨ６、入力バッファＢＨ９、プルアップ抵抗Ｒ１は、それぞれ２つあることを意味し、それぞれＤＡＴ［１］とＤＡＴ［０］に別々に接続されている。
【００３１】
拡張デバイス４には、リセット回路４Ａ、レギュレータ４Ｂ、ＶＤＤＩＯセレクタ４Ｄ、Ｉ／Ｏセル４Ｈ、ロジック回路４Ｋおよびメモリ４Ｒが設けられている。ロジック回路４Ｋには、図１の信号電圧制御部４Ｃ、クロック受信部４Ｅ、コマンド制御部４Ｆ、データ制御部４ＧおよびＬＶＳ制御部４Ｊを設けることができる。また、拡張デバイス４には、デバイス検出抵抗Ｒ４、電源端子ＴＤ１、クロック端子ＴＤ２、コマンド端子ＴＤ３およびデータ端子ＴＤ４〜ＴＤ６が設けられている。電源端子ＴＤ１には電源ラインＶＤＤが接続されている。クロック端子ＴＤ２にはクロックＳＤＣＬＫを割り当てることができる。コマンド端子ＴＤ３にはコマンドＣＭＤおよびレスポンスを割り当てることができる。データ端子ＴＤ４にはデータＤＡＴ［３］を割り当てることができる。データ端子ＴＤ５にはデータＤＡＴ［２］を割り当てることができる。データ端子ＴＤ６にはデータＤＡＴ［１：０］を割り当てることができる。Ｉ／Ｏセル４Ｈには、出力バッファＢＤ２、ＢＤ４〜ＢＤ６および入力バッファＢＤ１、ＢＤ３、ＢＤ７〜ＢＤ９が設けられている。
【００３２】
出力バッファＢＤ２、ＢＤ４〜ＢＤ６の入力および入力バッファＢＤ１、ＢＤ３、ＢＤ７〜ＢＤ９の出力はロジック回路４Ｋに接続されている。リセット回路４Ａ、レギュレータ４Ｂ、ＶＤＤＩＯセレクタ４Ｄおよびメモリ４Ｒの各入力は電源端子ＴＤ１に接続されている。入力バッファＢＤ１の入力はクロック端子ＴＤ２に接続されている。出力バッファＢＤ２の出力および入力バッファＢＤ３の入力はコマンド端子ＴＤ３に接続されている。出力バッファＢＤ４の出力および入力バッファＢＤ７の入力はデータ端子ＴＤ４に接続されている。出力バッファＢＤ５の出力および入力バッファＢＤ８の入力はデータ端子ＴＤ５に接続されている。出力バッファＢＤ６の出力および入力バッファＢＤ９の入力はデータ端子ＴＤ６に接続されている。データ端子ＴＤ４は、デバイス検出抵抗Ｒ４を介して電源電圧ＶＤ１に接続されている。レギュレータ４Ｂは、ロジック回路４Ｋに電源電圧ＶＤＤＬを供給することができる。リセット回路４Ａは、ロジック回路４Ｋにリセット信号ＲＥＳを出力することができる。メモリ４Ｒはロジック回路４Ｋに接続されている。
【００３３】
図３（ａ）は、図１のＨＶＳホストにＬＶＳデバイスが装着された時のデータラインＤＡＴ［３］の接続関係を示すブロック図、図３（ｂ）は、図１のＬＶＳホストにＬＶＳデバイスが装着された時のデータラインＤＡＴ［３］の接続関係を示すブロック図である。
図３（ａ）において、拡張デバイス４には、デバイス検出抵抗Ｒ４が設けられている。デバイス検出抵抗Ｒ４には、電気的に制御されるスイッチＳＷ２が直列に接続されていてＤＡＴ［３］から切り離すことができる。デバイス検出抵抗Ｒ４の抵抗値は１０ｋΩ〜９０ｋΩに設定することができる。デバイス検出抵抗Ｒ４の一端の電位は、Ｉ／Ｏセル電源ＶＤＤＩＯに接続され、初期値として３．３Ｖが供給される。そして、スイッチＳＷ２はオン状態になっているため、データＤＡＴ［３］の電圧がデバイス検出抵抗Ｒ４を介してプルアップされる。この時、デバイス検出抵抗Ｒ４は、拡張デバイス４がホスト１、２に装着されたのをホスト１、２が認識するために用いることができる。
【００３４】
図１のホスト１には、出力バッファＢＨ４´、入力バッファＢＨ７´およびデータ端子ＴＨ４´が設けられている。出力バッファＢＨ４´の出力と入力バッファＢＨ７´の入力はデータ端子ＴＨ４´に接続されている。データ端子ＴＨ４´には、データＤＡＴ［３］を割り当てることができる。データ端子ＴＨ４´は、スイッチＳＷ１を介してプルアップ抵抗Ｒ３に接続されている。デバイス検出を行う場合は、スイッチＳＷ１をオフすることでプルアップ抵抗Ｒ３をＤＡＴ［３］から切り離し、デバイス検出への影響をなくすことができる。
また、データ端子ＴＨ４´は、プルダウン抵抗Ｒ６に接続されている。この時、Ｒ４とＲ６で分圧された電圧がＨｉｇｈレベルを示すような値が選ばれる。つまりＲ６≫Ｒ４となる高抵抗をプルダウン抵抗Ｒ６の抵抗値として採用することができる。プルダウン抵抗Ｒ６はデバイス検出する場合に必要になるもので、デバイスが未接続な状態のときにＤＡＴ［３］がフローティング状態になることを防いでいる。電圧のＬｏｗからＨｉｇｈへの変化でデバイスが接続されたことが検出できる。
【００３５】
ホスト１が拡張デバイス４を検出しない場合、データ端子ＴＨ４´は、プルアップ抵抗Ｒ３を介してプルアップされる。ホスト１が拡張デバイス４を検出する場合、データ端子ＴＨ４´は、プルアップ抵抗Ｒ３と切り離される。ホスト１が拡張デバイス４に装着されていない場合、データＤＡＴ［３］の電圧はプルダウン抵抗Ｒ６を介してプルダウンされ、データＤＡＴ［３］の電圧はＬｏｗとなる。ホスト１が拡張デバイス４に装着されている場合、データＤＡＴ［３］の電圧は、デバイス検出抵抗Ｒ４とプルダウン抵抗Ｒ６とで分圧された分圧電圧になる。この時、Ｒ６≫Ｒ４であるので、データＤＡＴ［３］の電圧はＨｉｇｈとなる。スイッチＳＷ１がオンで、プルアップ抵抗Ｒ３が接続されていたとしても、抵抗による分圧電圧はＨｉｇｈレベルになるため、ＨＶＳホストの識別に用いることができる。
【００３６】
一方、図３（ｂ）において、拡張デバイス４がホスト２に装着されたものとする。ホスト２は、３．３Ｖという高電圧信号を受信することができない。このため、デバイス検出抵抗Ｒ４を介してデータＤＡＴ［３］の電圧が３．３Ｖという高電圧にプルアップされるのを防止するために、ホスト２は、データＤＡＴ［３］の電圧をＬｏｗに設定する。この時、拡張デバイス４は、データＤＡＴ［３］の電圧を監視することで、拡張デバイス４に装着されたのがＬＶＳホストかＨＶＳホストかを判定することができる。拡張デバイス４は、ＬＶＳホストかＨＶＳホストかを判定すると、スイッチＳＷ２をオフし、デバイス検出抵抗Ｒ４をデータ端子ＴＤ４から切り離し、ＬＶＳホストがＤＡＴ［３］のＬｏｗ駆動を止めても、３．３ＶがＬＶＳホストに印加されるのを防ぐことができる。
なお、図３（ａ）および図３（ｂ）において、スイッチＳＷ１、ＳＷ２はメカニカルなスイッチではなく、トランジスタスイッチで構成されている。この時、トランジスタをオフに設定することでデバイス検出抵抗Ｒ４をデータ端子ＴＤ４から切り離すことができる。
【００３７】
図４は、図１のＬＶＳホストにＬＶＳデバイスが装着された時の前処理シーケンスを示すタイミングチャートである。
図４において、ホスト２が拡張デバイス４に電源を投入する前は（ｔ１）、ホスト２は全ての信号をＬｏｗに設定する。この時、クロックＳＤＣＬＫはプルアップしないので、出力バッファＢＨ１によりクロックＳＤＣＬＫ（ＴＨ２）をＬｏｗに駆動する必要がある。また、図３（ｂ）に示すように、デバイス検出抵抗Ｒ４を介してデータＤＡＴ［３］の電圧が３．３Ｖという高電圧にプルアップされるのを防止するために、ホスト２は、出力バッファＢＨ４によりデータＤＡＴ［３］（ＴＤ４）をＬｏｗに駆動する必要がある。その他の信号、コマンドＣＭＤ（ＴＨ３）およびデータＤＡＴ［２：０］（ＴＤ５，ＴＤ６）については、出力バッファＢＨ２、ＢＨ５、ＢＨ６によりＬｏｗに駆動するか、プルアップ抵抗Ｒ０〜Ｒ２によりプルダウンすることで電圧はＬｏｗに設定することができる。プルダウン回路２Ｐにより、パワースイッチ２Ｌの出力を０Ｖ付近に固定することでプルダウンが可能となる。これらはロジック回路２Ｋによって制御される。
【００３８】
ホスト２が拡張デバイス４に電源を投入すると（ｔ２）、ホスト２の電源電圧ＶＤ１がパワースイッチ２Ｂをオンにすることで、電源ラインＶＤＤを介して拡張デバイス４の電源電圧ＶＤ１として供給される。最初はＶＤＤＩＯセレクタ４Ｄによってセル電源ＶＤＤＩＯには電源電圧ＶＤ１が供給されるため、Ｉ／Ｏセル４Ｈは、高電圧信号に対応し、高電圧に対する耐性を持たせることができる。拡張デバイス４に電源電圧ＶＤ１が供給されると、リセット回路４Ａは、リセット信号ＲＥＳを出力することでロジック回路４Ｋをリセットする。
【００３９】
拡張デバイス４がリセット回路４Ａによりパワーオンを検出すると、拡張デバイス４はデータＤＡＴ［３］が安定してから電圧をチェックする（ｔ３）。なお、時刻ｔ３は、電源投入後に電源電圧ＶＤ１が最小値ＶＤＤ（ｍｉｎ）に達してから所定時間Ｔ１経過後に設定することができる。そして、拡張デバイス４は、データＤＡＴ［３］の電圧がＬｏｗの時はＬＶＳホスト、データＤＡＴ［３］の電圧がＨｉｇｈの時はＨＶＳホストと判定する。なお、データＤＡＴ［３］の電圧のチェックは、検出ミスを防止するため、複数回行ってもよい。また、拡張デバイス４がＬＶＳホストを検出すると、拡張デバイス４はデータＤＡＴ［２］の電圧をＬｏｗに駆動する（ｔ４）。ＬＶＳホストが検出された場合、電源電圧ＶＤ２を生成するレギュレータ４Ｂをオンにし、デバイス検出抵抗Ｒ４をデータ端子ＴＤ４から切り離すことができる。レギュレータ４Ｂからの電源電圧ＶＤ２の出力が安定すると、ＶＤＤＩＯセレクタ４Ｄは、セル電源ＶＤＤＩＯを電源電圧ＶＤ１から電源電圧ＶＤ２に切り替える（ｔ５）。この時、Ｉ／Ｏセル４Ｈは、１．８Ｖの低電圧信号に対応可能となる。
【００４０】
次に、ホスト２側において、パワースイッチ２Ｌは、プルアップ抵抗Ｒ２を介してデータＤＡＴ［２］をプルアップする（ｔ６）。ただし、コマンドＣＭＤ、ＤＡＴ［３］、ＤＡＴ［１：０］をＬｏｗ駆動してない場合、コマンドＣＭＤ、データＤＡＴ［３］、ＤＡＴ［１：０］の電圧はプルアップしない。拡張デバイス４がデータＤＡＴ［２］の電圧をＬｏｗに駆動している場合、プルアップされずにデータＤＡＴ［２］の電圧はＬｏｗを維持する。なお、時刻ｔ６は時刻ｔ５の後に設定することができる。この時、例えば、時間Ｔ２の最小値は４５ｍｓ、時間Ｔ３の最大値は５ｍｓに設定することができる。
【００４１】
ホスト２はデータＤＡＴ［２］の電圧をチェックする（ｔ７）。なお、データＤＡＴ［２］の電圧のチェックは、検出ミスを防止するため、複数回行ってもよい。そして、データＤＡＴ［２］の電圧がＬｏｗの時は拡張デバイス４がＬＶＳデバイスと判定し、ＬＶＳデバイスの初期化処理に移行する。この初期化処理では、１．８Ｖの低電圧信号で動作することができる。
この時、ホスト２は、コマンドＣＭＤおよびデータＤＡＴ［３］、ＤＡＴ［１：０］をプルアップする（ｔ８）。図示のようにコマンドＣＭＤはＨｉｇｈに駆動してもよい。次に、ホスト２は、クロックＳＤＣＬＫを出力する（ｔ９）。次に、ホスト２は、クロックＳＤＣＬＫを所定数ＮＫだけ出力すると、コマンドＣＭＤ０を発行する（ｔ１０）。この所定数ＮＫは、例えば、７４クロックに設定することができる。拡張デバイス４がコマンドＣＭＤ０を受信すると、データＤＡＴ［２］の電圧のＬｏｗ駆動を停止する。この時、データＤＡＴ［２］の電圧がプルアップされる（ｔ１１）。次に、ホスト２は、コマンドＣＭＤ８を発行する（ｔ１２）。なお、図４では、コマンドＣＭＤ８の発行後の初期化処理は省略した。
【００４２】
図５は、図１のＬＶＳホストにＨＶＳデバイスが装着された時の前処理シーケンスを示すタイミングチャートである。
図５において、ホスト２が拡張デバイス３に電源を投入する前は（ｔ１）、ホスト２は全ての信号をＬｏｗに設定する。この時、クロックＳＤＣＬＫはプルアップしないので、出力バッファＢＨ１によりクロックＳＤＣＬＫ（ＴＨ２）をＬｏｗに駆動する必要がある。また、図３（ｂ）に示すように、デバイス検出抵抗Ｒ４を介してデータＤＡＴ［３］の電圧が３．３Ｖという高電圧にプルアップされるのを防止するために、ホスト２は、出力バッファＢＨ４によりデータＤＡＴ［３］（ＴＤ４）をＬｏｗに駆動する必要がある。その他の信号、コマンドＣＭＤ（ＴＨ３）およびデータＤＡＴ［２：０］（ＴＤ５，ＴＤ６）については、出力バッファＢＨ２、ＢＨ５、ＢＨ６によりＬｏｗに駆動するか、プルアップ抵抗Ｒ０〜Ｒ２によりプルダウンすることで電圧はＬｏｗに設定することができる。プルダウン回路２Ｐにより、パワースイッチ２Ｌの出力を０Ｖ付近に固定することでプルダウンが可能となる。これらはロジック回路２Ｋによって制御される。
【００４３】
ホスト２が拡張デバイス３に電源を投入すると（ｔ２）、ホスト２から電源ラインＶＤＤを介して拡張デバイス３に電源電圧ＶＤ１が供給される。この時、ＶＤＤＩＯセレクタ３Ｄは、電源電圧ＶＤ１をＩ／Ｏセル３ＨのＶＤＤＩＯに供給することで、拡張デバイス３は３．３Ｖの高電圧信号に対応することができる。この時、ホスト２は、コマンドＣＭＤおよびデータＤＡＴ［３：０］の電圧をＬｏｗに設定することにより、拡張デバイス３の入力バッファに中間電圧が入力されるのを防止することができ、入力バッファに貫通電流が流れるのを防止することができる。また、拡張デバイス３は、コマンドＣＭＤおよびデータＤＡＴ［３：０］を駆動しないので、コマンドＣＭＤおよびデータＤＡＴ［３：０］の電圧はホスト２が決定することができる。
【００４４】
拡張デバイス３はパワーオンを検出しても、データＤＡＴ［３］の電圧をチェックしない（ｔ３）。このため、拡張デバイス３はＬＶＳホストかＨＶＳホストかを検出しない（ｔ４）。
【００４５】
次に、ホスト２のパワースイッチ２Ｌは、プルアップ抵抗Ｒ２を介してデータＤＡＴ［２］をプルアップする（ｔ６）。この時、拡張デバイス３は、データＤＡＴ［２］の電圧をＬｏｗに駆動しないので、データＤＡＴ［２］の電圧はＨｉｇｈに立ち上がる。貫通電流の発生を防ぐため、コマンドＣＭＤおよびデータＤＡＴ［１：０］はプルアップでＨｉｇｈにならないように制御すべきである。
【００４６】
ホスト２はデータＤＡＴ［２］の電圧をチェックする（ｔ７）。なお、データＤＡＴ［２］の電圧のチェックは、検出ミスを防止するため、複数回行ってもよい。そして、データＤＡＴ［２］の電圧がＨｉｇｈの時は拡張デバイス３がＨＶＳデバイスと判定する。そして、ホスト２は、パワースイッチ２Ｌの出力を０ＶにすることでデータＤＡＴ［２］のプルアップを停止するとともに、パワースイッチ２Ｂをオフすることで拡張デバイス３への電源電圧の供給を停止する（ｔ８）。さらに、データＤＡＴ［３］の電圧の駆動を停止し（ｔ９）、拡張デバイス３を却下する。
【００４７】
図６（ａ）は、低電圧信号出力のＨｉｇｈが高電圧信号入力の中間電圧になることを示す図、図６（ｂ）は、図１のＨＶＳデバイスに中間電圧が入力された時に貫通電流が発生したときの状態を示すブロック図である。なお、図６（ａ）では、ＶＤＤは電源電圧ＶＤ１と等価であり、電源電圧ＶＤ１の最大値３．６Ｖである場合を示した。
図６（ａ）において、高電圧信号入力では、信号電圧のＨｉｇｈの範囲は、最大値ＶＩＨ（ｍａｘ）（＝ＶＤＤ＋０．３Ｖ）と最小値ＶＩＨ（ｍｉｎ）（＝２．２５Ｖ）との間に設定される。信号電圧のＬｏｗの範囲は、最大値ＶＩＬ（ｍａｘ）（＝０．６７５Ｖ）と最小値ＶＩＬ（ｍｉｎ）（＝０Ｖ）との間に設定される。また、低電圧信号出力では、信号電圧のＨｉｇｈの範囲は、最大値ＶＯＨ（ｍａｘ）（＝２．００Ｖ）と最小値ＶＯＨ（ｍｉｎ）（＝１．４０Ｖ）との間に設定される。信号電圧のＬｏｗの範囲は、最大値ＶＯＬ（ｍａｘ）（＝０．４５Ｖ）と最小値ＶＯＬ（ｍｉｎ）（＝０Ｖ）との間に設定される。
【００４８】
このため、高電圧信号入力と低電圧信号出力の組み合わせの場合、低電圧信号出力のＨｉｇｈは、高電圧信号入力バッファに対して中間電位ＶＭＩＤとなる。
この時、図６（ｂ）に示すように、拡張デバイス３に入力バッファＢＤ０が設けられているものとする。そして、入力バッファＢＤ０が高電圧信号で動作する時に、ホスト２から入力バッファＢＤ０に低電圧信号出力のＨｉｇｈが印加されると、中間電位ＶＭＩＤが印加されるため、入力バッファＢＤ０に貫通電流Ｉｈが流れる可能性が高くなる(実装や条件に依存する)。
【００４９】
ここで、図５に示すように、ホスト２はデータＤＡＴ［２］の電圧によってカードの種類を識別し、データＤＡＴ［２］の電圧がＨｉｇｈの時は拡張デバイス３がＨＶＳデバイスと判定することができるが、そのためには、中間電圧を印加しなければならない。出来る限り中間電位が印加される時間を少なくするために、ＨＶＳデバイスと判定した時は、データＤＡＴ［２］をプルアップしてから、電源電圧供給を停止するまでの時間をできるだけ短く制御することが望ましい。そうすれば、入力バッファＢＤ０に貫通電流Ｉｈが短時間流れたとしても、その影響は無視することができる。
【００５０】
以下、ホスト２および拡張デバイス４の前処理後の初期化処理について詳細に説明する。この初期化処理は、前処理によるホストおよび拡張デバイスの検出を補完することができる。初期化処理ではコマンドＣＭＤ８およびそのレスポンスが用いられる。前処理によるデータＤＡＴ［２］、ＤＡＴ［３］の電圧の検出で、ホストおよび拡張デバイスの動作環境、損傷および経年劣化などにより誤検出の発生確率はかなり低いにしても０ではない。また、電源供給からコマンドＣＭＤ８を受信する間に、ホストと拡張デバイスが通信する間に何らかのエラーが発生する可能性もあり、安全のためにはエラーが発生したら通信を停止すべきである。エラーの発生をコマンドＣＭＤ８およびそのレスポンスを返さないことで、ホストに知らせることができる。
【００５１】
図７は、第１実施形態に係るホスト機器が送信するＬＶＳ  ＳＤカードのＣＭＤ８の内容を示す図である。
【００５２】
図７において、従来のＣＭＤ８のフィールドＶＨＳにおいて、高電源電圧が３．３Ｖであることを示すコマンド引数０００１ｂが定義されている。同時に高電圧信号が使われていることも含まれているので、新しいＣＭＤ８のフィールドＶＨＳ＝０００１ｂの定義においては、高電源電圧が３．３Ｖでかつ高電圧信号という定義にすることができる。また、ＬＶＳ対応したＣＭＤ８のフィールドＶＨＳにおいて、高電源電圧が３．３Ｖでかつ低電圧信号であることを示すコマンド引数００１０ｂを定義することで、ホストがどちらの信号電圧で動作しているか示すことが可能になる。そして、図１の拡張デバイス４がＬＶＳカードの場合、ホスト２からＣＭＤ８を受け取ると、コマンド引数ＶＨＳ＝００１０ｂを識別し、コマンド引数００１０ｂの内容をレスポンスにコピーして、他にエラーが発生していなければ、ホスト２にＣＭＤ８のレスポンスを返すことができる。そして、ホスト２が拡張デバイス４からＣＭＤ８のレスポンスを受け取ると、拡張デバイス４がＬＶＳカードであることと、エラーが発生しなかったことを認識することができる。
【００５３】
一方、図１の拡張デバイス３がＵＨＳ−Ｉ規格に準拠している場合、ホスト２からＣＭＤ８を受け取ると、コマンド引数００１０ｂを識別できず、ホスト２にＣＭＤ８のレスポンスを返さない。このため、ホスト２は、拡張デバイス３がＬＶＳカードでないと認識し、拡張デバイス３を却下することができる。
また、チェックパターンについては、信号電圧が１．８Ｖであるか３．３Ｖであるかに応じて異なるチェックパターンを設定できるようにしてもよい。
【００５４】
図８は、第１実施形態に係るホストの前処理および初期化シーケンスを示すフローチャートである。なお、図８では、コマンド発行とレスポンス受信を１組として記述した。ただし、ＣＭＤ０は、例外的にレスポンスを返さないコマンドである。
図８において、ホスト２では、初期化処理の前に前処理が実行される。前処理では、デバイスに電源を投入する処理Ｓ１は、図４および図５の時刻ｔ２が対応している。処理Ｓ２Ａは、図４および図５の時刻ｔ７に対応している。そして、データＤＡＴ［２］の電圧がＨｉｇｈの時はＨＶＳデバイスと判定し、ＨＶＳデバイスのドライブを停止するとともに、ＨＶＳデバイスを却下する（Ｓ２Ｂ）。処理Ｓ２Ｂは、図５の時刻ｔ８に対応する。一方、データＤＡＴ［２］の電圧がＬｏｗの時はＬＶＳデバイスと判定し、ＬＶＳデバイスの初期化処理に移行する。この初期化処理では、ホスト２は、コマンドＣＭＤ０を発行する（Ｓ３）。処理Ｓ３は、図４の時刻ｔ１０に対応している。この時、クロックＣＬＫとコマンドＣＭＤは、信号電圧１．８Ｖが使われる。次に、ＣＭＤ８のフィールドＶＨＳにコマンド引数００１０ｂを設定し、コマンドＣＭＤ８を発行する（Ｓ４）。処理Ｓ４は、図４の時刻ｔ１２に対応している。
【００５５】
次に、コマンドＣＭＤ８の発行に対するレスポンスをチェックする（Ｓ５）。ここで、ＬＶＳデバイスは、ＶＨＳに対応したフィールドＶＣＡを００１０ｂに設定したレスポンスを返すことができる。そして、ホスト２はＬＶＳデバイスから応答がない場合は、そのＬＶＳデバイスをリジェクトする（Ｓ６）。一方、コマンドＣＭＤ８の発行に対する応答において、ＶＣＡ＝００１０ｂである場合、初期化コマンドＡＣＭＤ４１を発行する（Ｓ７）。この時、低信号電圧を使用することを示すＳ１８Ｒ＝１に初期化コマンドＡＣＭＤ４１の引数を設定する。そして、初期化コマンドＡＣＭＤ４１に対するレスポンス中のフィールドＤ３１を参照することでビジー状態が判定され（Ｓ８）、ビジー状態でない場合は、ＡＣＭＤ４１に対するレスポンスに含まれるビットＳ１８Ａをチェックする（Ｓ９）。ここで、Ｄ３１＝１になると、ホスト２はＳ８のループを抜けることができる。一方、Ｓ８において、Ｄ３１＝０に設定されたままとなり、Ｓ７とＳ８のループを繰り返す場合、ホスト２が実装するタイマーによりタイムアウトが検出され、エラーと判定される。
【００５６】
そして、ホスト２は、ＡＣＭＤ４１に対するレスポンスに含まれるビットＳ１８Ａをチェックする（Ｓ９）。ＬＶＳデバイスが低電圧信号に信号レベルを切り替えている場合、必ずＳ１８Ａ＝０がレスポンスに設定され、電圧切替シーケンス（ＣＭＤ１１）はスキップされる。そして、コマンドＣＭＤ２の発行以降の処理が実行される（Ｓ１１）。Ｓ１８Ａをチェックした結果、Ｓ１８Ａ＝１の場合、エラーと判定され（Ｓ１０）、処理が停止する。
【００５７】
図９および図１０は、第１実施形態に係る拡張デバイスの前処理および初期化シーケンスを示すフローチャートである。なお、図１０において、ＣＭＤ２以降は、コマンド受信のみ記載し、レスポンス発行は省略した。
図９において、拡張デバイス４では、初期化処理の前に前処理が実行される。
前処理では、拡張デバイス４に電源が投入されると（Ｓ２１）、拡張デバイス４はデータＤＡＴ［３］の電圧をチェックする（Ｓ２２Ａ）。処理Ｓ２１は、図４の時刻ｔ２に対応する。処理Ｓ２２Ａは、図４の時刻ｔ３に対応する。そして、拡張デバイス４は、データＤＡＴ［３］の電圧がＬｏｗの時はＬＶＳホスト、データＤＡＴ［３］の電圧がＨｉｇｈの時はＨＶＳホストと判定する。ＬＶＳホストと判定した時は、１．８Ｖ用のレギュレータ４Ｂをオンにし、デバイス検出抵抗Ｒ４を切断し、電源電圧ＶＤ２が安定してからセル電源ＶＤＤＩＯを電源電圧ＶＤ２に切り替え、Ｉ／Ｏセルを低電圧信号に切り替える（Ｓ２２Ｂ）。ＨＶＳホストと判定した時は、すでにセル電源ＶＤＤＩＯには電源電圧ＶＤ１が接続されているので、その状態を維持する。拡張デバイス４は、前処理を実行すると、初期化処理に移行する。
【００５８】
この初期化処理では、ホスト１、２からコマンドＣＭＤ０を受信すると、拡張デバイス４はリセット動作を行う（Ｓ２３）。次に、ホスト１、２からコマンドＣＭＤ８を受信すると（Ｓ２４）、拡張デバイス４はフィールドＶＨＳをチェックする（Ｓ２５）。そして、フィールドＶＨＳにコマンド引数０００１ｂ、００１０ｂが設定されていない場合、レスポンスを返さない（Ｓ２６）。一方、フィールドＶＨＳに０００１ｂが設定されている場合、ＶＣＡ＝ＶＨＳという高電圧信号のレスポンスをホスト１、２に返す。また、エラーの発生がなく、００１０ｂが設定されている場合、ＶＣＡ＝ＶＨＳという低電圧信号のレスポンスをホストに返す（Ｓ２７、Ｓ２７´）。図９でＳ２７以降は、ＶＨＳ＝００１０ｂの場合のシーケンスを示す（図７）。次に、コマンドＡＣＭＤ４１を受信すると、Ｓ１８Ｒ＝１かどうかをチェックする（Ｓ２８）。そして、Ｓ１８Ａ＝０に設定し、コマンドＡＣＭＤ４１のレスポンスをホストに返す（Ｓ２９）。ＡＣＭＤ４１の実行が完了していればＤ３１＝１を返し、実行を継続していればＤ３１＝０を返す（Ｓ３０）。Ｓ１８Ａの値は、Ｄ３１＝１のときに有効となる。すでに低電圧信号により初期化コマンドを実行している場合は、Ｓ１８Ａ＝０を返さなければならず、それにより、図１０に示すように、電圧切替シーケンス（ＣＭＤ１１）はスキップされ、コマンドＣＭＤ２の発行以降の処理が実行される（Ｓ４０）。
【００５９】
一方、Ｓ２５において、フィールドＶＨＳにコマンド引数０００１ｂが設定されている場合、高電圧信号でＣＭＤ８のレスポンスを返した後、図１０に示すように、ホスト１、２からコマンドＡＣＭＤ４１が発行されると（Ｓ３１）、この拡張デバイス４はＵＨＳ−Ｉをサポートしているという想定なので、Ｓ１８Ａ＝Ｓ１８Ｒというレスポンスをホスト１、２に返す（Ｓ３２）。次に、Ｄ３１＝１かどうかを判断し（Ｓ３３）、Ｄ３１＝０の場合、Ｓ３１に戻り、Ｓ３１〜Ｓ３３の処理を繰り返す。Ｓ１８Ａの値は、Ｄ３１＝１のときに有効となる。一方、Ｄ３１＝１の場合、ＡＣＭＤ４１の実行が完了すると、Ｓ１８Ａに返した値によって動作が分かれる（Ｓ３４）。Ｓ１８Ａ＝０を返した場合、次に受信すべきコマンドはＳ４０からとなり、電圧切替シーケンスをスキップしなければならない。もし、ＣＭＤ１１を受信した場合はエラーとする。一方、Ｓ１８Ａ＝１を返した場合、電圧切替シーケンスに進む。そして、電圧切替シーケンスにおいて、ホスト１からのコマンドＣＭＤ１１を受信すると（Ｓ３５）、コマンドＣＭＤ１１に対するレスポンスを返し（Ｓ３６）、信号電圧を３．３Ｖから１．８Ｖに切り替える（Ｓ３７）。次に、エラー判定を行い（Ｓ３８）、エラーの場合は処理をストップし（Ｓ３９）、エラーでない場合は低電圧信号への切り換えは成功し、Ｓ４０に進む。
【００６０】
（第２実施形態）
ＨＶＳホストによっては、各信号の初期レベルが単一的ではなく、データＤＡＴ［３］をＬｏｗに設定する可能性もあり、１回のレベル確認だけではＬＶＳホストの検出を確実に行うことができない。第２実施形態では、コマンド発行前の前処理において、異なるタイミングで信号を２回以上確認することでＬＶＳデバイスとＬＶＳホストの相互検出を確実にできるようにした構成を示す。
【００６１】
図１１は、第２実施形態に係るＬＶＳホストにＬＶＳデバイスが装着された時の前処理シーケンスを示すタイミングチャートである。なお、図１１において、時刻ｔ１、ｔ２、ｔ５〜ｔ１０はホスト２が管理するタイミング、時刻ｔ３´、ｔ５´、ｔ６´、ｔ６´´、ｔ７´、ｔ１０´は拡張デバイス４が管理するタイミングである。ＬｏｗドライブまたはＨｉｇｈドライブされている信号は実線、ｐｕｌｌ−ｄｏｗｎまたはｐｕｌｌ−ｕｐされている信号は点線で示した。ただし、信号が未使用のためにＨｉｇｈドライブが連続する期間は、ｐｕｌｌ−ｕｐに置き換えてもよい。ＬｏｗドライブまたはＨｉｇｈドライブとｐｕｌｌ−ｄｏｗｎまたはｐｕｌｌ−ｕｐとが競合する場合、電圧レベルはＬｏｗドライブまたはＨｉｇｈドライブの方がｐｕｌｌ−ｄｏｗｎまたはｐｕｌｌ−ｕｐよりも優先する。実線の丸印は拡張デバイス４がチェックするポイント、点線の丸印はホスト２がチェックするポイントである。丸印ひとつ当たり複数回チェックすることでノイズ等による誤検出を防止することができる。例えば、３回連続で同じレベルであるかを確認する。
【００６２】
ホスト２が拡張デバイス４に電源を投入する前は（ｔ１）、ホスト２はデータＤＡＴ［２］だけプルダウンし、その他クロックＣＬＫ、コマンドＣＭＤ、データＤＡＴ［３］をＬｏｗドライブする。ＵＨＳ−ＩＩをサポートするホスト２は  、ＵＨＳ−ＩＩモードの初期化を試すためにデータＤＡＴ［１：０］にクロックを供給する場合があるが、ＵＨＳ−ＩＩモードの初期化ができなかった場合は、時刻ｔ５までにデータＤＡＴ［１：０］をＬｏｗドライブする。ホスト２が拡張デバイス４に電源を投入すると（ｔ２）、ホスト２の電源電圧ＶＤ１がパワースイッチ２Ｂをオンにすることで、電源ラインＶＤＤを介して拡張デバイス４の電源電圧ＶＤ１として供給される。最初はＶＤＤＩＯセレクタ４Ｄによってセル電源ＶＤＤＩＯには電源電圧ＶＤ１が供給されるため、Ｉ／Ｏセル４Ｈは、高電圧信号に対応し、高電圧に対する耐性を持たせることができる。この時、電源の投入時（ｔ２）から立ち上がり時間ｔＰＲＵだけ経過すると、リセット回路４Ａは、リセット信号ＲＥＳを出力することでロジック回路４Ｋをリセットする。立ち上がり時間ｔＰＲＵは、ホスト２の電源設計によって０．１ｍｓから３５ｍｓまでの広い時間範囲で規定することができる。拡張デバイス４は電圧検出回路などで立ち上がり時間を検出することができる。この時、立ち上がり時間ｔＰＲＵが経過した時の電源ラインＶＤＤの電圧レベルは、例えば、２．７Ｖに設定することができる。ホスト２は自身の電源回路特性から立ち上がり時間ｔＰＲＵを予測することができる。ロジック回路４Ｋにてリセットがかけられている間は、拡張デバイス４は動作を停止することができる。
【００６３】
拡張デバイス４が立ち上がり時間ｔＰＲＵを検出してから所定時間Ｔ１だけ経過すると、ロジック回路４Ｋによるリセットが解除される。そして、拡張デバイス４はコマンドＣＭＤおよびデータＤＡＴ［２］、ＤＡＴ［３］の電圧レベルをチェックする（第１確認ステップと言う）（ｔ３´）。この時、所定時間Ｔ１は、コマンドＣＭＤおよびデータＤＡＴ［２］、ＤＡＴ［３］の電圧レベルが安定するまでの時間に設定することができる。ここで、拡張デバイス４が立ち上がり時間ｔＰＲＵを検出してから所定時間Ｔ１だけ経過するまで、ロジック回路４Ｋにてリセットをかけることにより、コマンドＣＭＤおよびデータＤＡＴ［２］、ＤＡＴ［３］の電圧レベルが安定してから、それらの電圧レベルをチェックすることができ、誤検出を防止することができる。
【００６４】
次に、ホスト２は、電源の投入時（ｔ２）から所定時間Ｔ２だけ経過すると、データＤＡＴ［２］をプルアップし、データＤＡＴ［２］の電圧レベルをＨｉｇｈに移行させる（ｔ５）。所定時間Ｔ２は、ｔＰＲＵ＋１ｍｓ以上の時間に設定することができる。そして、ホスト２は、データＤＡＴ［２］のプルアップ開始（ｔ５）から所定時間Ｔ５だけ経過すると、データＤＡＴ［２］の電圧レベルをチェックする（ｔ６）。この時、所定時間Ｔ５は、データＤＡＴ［２］の電圧レベルが安定するまでの時間に設定することができる。ホスト２は、自身が実装しているプルアップ抵抗Ｒ２の値によってｔ５−ｔ６までの所定時間Ｔ５を予測することができるが、所定時間Ｔ５は、最大プルアップ抵抗と最大負荷容量による立ち上がり時間より十分大きな値、例えば、１０〜１５μｓ  に設定することもできる。
【００６５】
一方、拡張デバイス４は、データＤＡＴ［２］の電圧レベルの立ち上がりを検出した時（ｔ５´）から所定時間Ｔ３だけ経過すると、コマンドＣＭＤおよびデータＤＡＴ［２］、ＤＡＴ［３］の電圧レベルをチェックする（第２確認ステップと言う）（ｔ６´）。第１確認ステップでコマンドＣＭＤおよびデータＤＡＴ［２］、ＤＡＴ［３］の電圧レベルがすべてＬｏｗの時に第２確認ステップを実行する。所定時間Ｔ３は、データＤＡＴ［２］の電圧レベルが安定するまでの時間に設定することができる。第１確認ステップでコマンドＣＭＤおよびデータＤＡＴ［２］、ＤＡＴ［３］の電圧レベルがすべてＬｏｗでない場合は、ＨＶＳホストと判定するので第２確認ステップは実施する必要がない。
【００６６】
そして、拡張デバイス４は、第２確認ステップにおいて、コマンドＣＭＤおよびＤＡＴ［３］の電圧レベルがＬｏｗかつデータＤＡＴ［２］の電圧レベルがＨｉｇｈの時は、ＬＶＳホスト、それ以外の時はＨＶＳホストと判定する。また、拡張デバイス４がＬＶＳホストを検出すると、拡張デバイス４はデータＤＡＴ［２］の電圧をＬｏｗに駆動する（ｔ６´´）。データＤＡＴ［２］の電圧レベルの立ち上がりを検出した時（ｔ５´）からデータＤＡＴ［２］の電圧をＬｏｗに駆動するまでの所定時間Ｔ４は、例えば２０μｓ以上に設定することができる。これは所定時間Ｔ５を１０〜１５μｓを想定しているためである。拡張デバイス４は、ＬＶＳホストを検出した場合、電源電圧ＶＤ２を生成するレギュレータ４Ｂをオンにし、デバイス検出抵抗Ｒ４をデータ端子ＴＤ４から切り離すことができる。レギュレータ４Ｂからの電源電圧ＶＤ２の出力が安定すると、ＶＤＤＩＯセレクタ４Ｄは、セル電源ＶＤＤＩＯを電源電圧ＶＤ１から電源電圧ＶＤ２に切り替える。この時、Ｉ／Ｏセル４Ｈは、１．８Ｖの低電圧信号に対応可能となる。
【００６７】
次に、ホスト２はデータＤＡＴ［２］の電圧レベルをチェックする（ｔ７）。そして、時刻ｔ６でデータＤＡＴ［２］の電圧レベルがＨｉｇｈ、時刻ｔ７でデータＤＡＴ［２］の電圧レベルがＬｏｗの時は、拡張デバイス４がＬＶＳデバイスと判定する。データＤＡＴ［２］のプルアップ開始（ｔ５）からデータＤＡＴ［２］の電圧レベルをチェックするまで（ｔ７）の所定時間Ｔ６は、例えば１００μｓ以上に設定することができる。
ＬＶＳデバイスと判定した場合、ホスト２は、コマンドＣＭＤおよびデータＤＡＴ［３］、ＤＡＴ［１：０］をプルアップする（ｔ８）。図示のようにコマンドＣＭＤはＨｉｇｈに駆動してもよい。そして、ホスト２は、ＬＶＳデバイスの初期化処理に移行する。この初期化処理では、１．８Ｖの低信号電圧で動作することができる。また、ホスト２は、クロックＳＤＣＬＫを出力する（ｔ９）。拡張デバイス４がクロックＳＤＣＬＫを受信すると、データＤＡＴ［２］の電圧のＬｏｗ駆動を停止する。この時、データＤＡＴ［２］の電圧がホスト２にてプルアップされる（ｔ９´）。次に、ホスト２は、クロックＳＤＣＬＫを所定数だけ出力すると、コマンドＣＭＤ０を発行する（ｔ１０）。この所定数は、例えば、７４クロックに設定することができる。なお、拡張デバイス４はコマンドＣＭＤ０を受信した時に、データＤＡＴ［２］の電圧のＬｏｗ駆動を停止するようにしてもよい。この時、データＤＡＴ［２］の電圧がホスト２にてプルアップされる（ｔ１０´）。
【００６８】
なお、プルアップ抵抗Ｒ２の値によってデータＤＡＴ［２］の立ち上がり時間（ｔ５−ｔ６）が異なるので、拡張デバイス４は、データＤＡＴ［２］の立ち上がりを検出した時刻ｔ５´を基準に時刻ｔ６´、ｔ６´´を規定することができる。これにより、プルアップ抵抗Ｒ２の値のバラツキによる誤検出を防止することができる。この時、ＬＶＳデバイスは、電圧検出回路などでＬｏｗから１．８Ｖの  Ｈｉｇｈを検出した時刻がｔ６´となる。電圧検出回路は、高信号電圧であっても、低信号電圧のいずれであっても、１．８Ｖ以上の信号電圧を検出することができる。
【００６９】
また、拡張デバイス４は、時刻ｔ６´でＬＶＳホストを認識すると、高電圧信号から低電圧信号に移行するために、Ｉ／Ｏセル４Ｈを時刻ｔ８までに切り換える必要がある。この時、時刻ｔ５から時刻ｔ８までの設定時間Ｔ７は、５ｍｓ以上に設定することができる。これにより、電源回路が持つ３．３Ｖにチャージされた平滑コンデンサをディスチャージし、レギュレータ４Ｂをオンにして１．８Ｖ電源が安定するまでの時間を確保することができる。この期間にデバイス検出抵抗Ｒ４を切断しておくことで、ＬＶＳホストに３．３Ｖが印加されるのを防止することができる。ＬＶＳホストの識別の確実性を向上させるために、拡張デバイス４は、時刻ｔ３´、ｔ６´でクロックＳＤＣＬＫ＝Ｌｏｗであることをチェック対象に加えてもよい。
【００７０】
ここで、拡張デバイス４は、第１確認ステップでコマンドＣＭＤおよびデータＤＡＴ［２］、ＤＡＴ［３］の電圧レベルがすべてＬｏｗであることを検出し、第２確認ステップでコマンドＣＭＤおよびＤＡＴ［３］の電圧レベルがＬｏｗかつデータＤＡＴ［２］の電圧レベルがＨｉｇｈであることを検出した時に、拡張デバイス４がＬＶＳホストであると認識することができる。この時、ＨＶＳホストはデータＤＡＴ［２］だけＨｉｇｈにプルアップして、他の信号をＬｏｗにする変則的な実装はしていない。このため、ＨＶＳホストがデータＤＡＴ［３］をＬｏｗに設定する可能性がある場合においても、ＨＶＳホストとＬＶＳホストとを区別することができ、ＬＶＳホストの識別を確実に行うことが可能となる。
【００７１】
また、ホスト２は、時刻ｔ６でデータＤＡＴ［２］の電圧レベルがＨｉｇｈ、時刻ｔ７でデータＤＡＴ［２］の電圧レベルがＬｏｗの時は、拡張デバイス４がＬＶＳデバイスと判定することができる。これにより、伝送路のショートや断線などによる検出の誤動作を防ぐことができる。
【００７２】
なお、上述した説明では、拡張デバイス４は、第２確認ステップにおいて、コマンドＣＭＤおよびＤＡＴ［３］の電圧レベルがＬｏｗかつデータＤＡＴ［２］の電圧レベルがＨｉｇｈの時は、ＬＶＳホスト、それ以外の時はＨＶＳホストと判定した。ＬＶＳホストの識別の確実性を向上させるために、拡張デバイス４は第３確認ステップを追加で設けるようにしてもよい（ｔ７´）。第３確認ステップでは、ホスト２がコマンドＣＭＤおよびデータＤＡＴ［３］、ＤＡＴ［１：０］をプルアップする直前に、拡張デバイス４は、コマンドＣＭＤおよびＤＡＴ［３］の電圧レベルをチェックする。そして、コマンドＣＭＤおよびＤＡＴ［３］の電圧レベルがＬｏｗの時は、ＬＶＳホスト、それ以外の時はＨＶＳホストと判定することができる。
【００７３】
図１２は、第２実施形態に係るＬＶＳホストにＨＶＳデバイスが装着された時の前処理シーケンスを示すタイミングチャートである。
図１２において、時刻ｔ１〜時刻ｔ５までの動作は図５と同様である。その後、ホスト２のパワースイッチ２Ｌは、プルアップ抵抗Ｒ２を介してデータＤＡＴ［２］をプルアップする（ｔ５）。この時、拡張デバイス３は、データＤＡＴ［２］の電圧をＬｏｗに駆動しないので、データＤＡＴ［２］の電圧はＨｉｇｈに立ち上がる。貫通電流の発生を防ぐため、コマンドＣＭＤおよびデータＤＡＴ［１：０］はプルアップでＨｉｇｈにならないように制御すべきである。
【００７４】
ホスト２は、データＤＡＴ［２］の電圧レベルをチェックした後（ｔ６）、データＤＡＴ［２］の電圧レベルを再度チェックする（ｔ７）。そして、時刻ｔ６でデータＤＡＴ［２］の電圧レベルがＨｉｇｈ、時刻ｔ７でデータＤＡＴ［２］の電圧レベルがＨｉｇｈの時は、拡張デバイス３がＨＶＳデバイスと判定する。そして、ホスト２は、パワースイッチ２Ｌの出力を０ＶにすることでデータＤＡＴ［２］のプルアップを停止するとともに、パワースイッチ２Ｂをオフすることで拡張デバイス３への電源電圧の供給を停止する（ｔ８Ｂ）。さらに、コマンドＣＭＤおよびデータＤＡＴ［３］の電圧の駆動を停止し（ｔ９）、拡張デバイス３を却下する。この時、貫通電流を低減するため、データＤＡＴ［２］のプルアップ開始（ｔ５）から拡張デバイス３への電源電圧の供給を停止するまで（ｔ８Ｂ）の設定時間Ｔ８は、２００μｓ以下に設定することができる。
【００７５】
図１３は、第２実施形態に係るＨＶＳホストにＬＶＳデバイスが装着された時の前処理シーケンスを示すタイミングチャートである。
図１３において、時刻ｔ１〜時刻ｔ５までの動作は図１１と同様である。その後、拡張デバイス４は、データＤＡＴ［２］の電圧レベルの立ち上がりを検出した時（ｔ５´）から所定時間Ｔ３だけ経過すると、コマンドＣＭＤおよびデータＤＡＴ［２］、ＤＡＴ［３］の電圧レベルをチェックする（ｔ６´）。そして、拡張デバイス４は、コマンドＣＭＤおよびＤＡＴ［３］の電圧レベルがＬｏｗでない時は、ＨＶＳホストと判定する。この時、ＨＶＳホストは、コマンドＣＭＤとデータＤＡＴ［２：０］はプルアップ抵抗でプルアップする。データＤＡＴ［３］は、デバイス検出抵抗Ｒ４でプルアップされるが、同時にホスト側のプルアップ抵抗が接続されていてもプルアップされる。
【００７６】
図１４は、第２実施形態に係るＨＶＳホストにＬＶＳデバイスが装着された時の前処理シーケンスのその他の例を示すタイミングチャートである。
図１４において、ＨＶＳホストが拡張デバイス４に電源を投入する前は（ｔ１）、ＨＶＳホストは全ての信号をＬｏｗに設定する。ＨＶＳホストが拡張デバイス４に電源を投入すると（ｔ２）、ＨＶＳホストは、コマンドＣＭＤおよびデータＤＡＴ［３］、ＤＡＴ［２］、ＤＡＴ［１：０］をプルアップする。データＤＡＴ［３］は拡張デバイス４によってもプルアップされる。その後、拡張デバイス４は、コマンドＣＭＤおよびデータＤＡＴ［２］、ＤＡＴ［３］の電圧レベルをチェックする（ｔ３´）。そして、拡張デバイス４は、コマンドＣＭＤおよびデータＤＡＴ［２］、ＤＡＴ［３］のうちのいずれかの電圧レベルがＨｉｇｈならば、ＨＶＳホストと判定する。
【００７７】
なお、ＨＶＳホストはすでに存在しているホストのため、その起動シーケンスはいろいろ考えられる。ＬＶＳデバイスは、最初は高電圧信号で動作しているので、図１１のシーケンスを満足した場合が、唯一低電圧信号動作になる場合であり、その他の場合は最初は高電圧信号で動作する。つまり、図１２から図１４の動作は、図１１に該当しない動作の３つの例にすぎず、高電圧動作になるシーケンスは他にも存在する。例えば、図１１において、イリーガル動作を検出する例を挙げると、クロック検出回路を設けて時刻ｔ３´−ｔ９間でクロックＳＤＣＬＫを検出するようにしてもよいし、電圧検出回路を設けて時刻ｔ３´−ｔ８間でコマンドＣＭＤの電圧レベルがＨｉｇｈになったかどうかを検出するようにしてもよいし、時刻ｔ８−ｔ９でコマンドＣＭＤおよびクロックＳＤＣＬＫの電圧が低電圧信号のＨｉｇｈの最大値より大きいかどうかを検出するようにしてもよい。
【００７８】
（第３実施形態）
図１５は、第３実施形態に係るＬＶＳデバイスに用いられる入出力バッファの構成例を示すブロック図である。この第３実施形態では、貫通電流を防止するために、データＤＡＴ［２］の入力Ｉ／Ｏセルを入力禁止状態にすることができる。
図１５において、このＬＶＳデバイスでは、図２の拡張デバイス４の出力バッファＢＤ２および入力バッファＢＤ３の代わりに、出力バッファ１１、入力バッファ１２および電圧検出回路１３が設けられている。出力バッファ１１にはロジック回路４Ｋから出力信号ＯＵＴが入力され、バスインターフェース信号ＢＵＳが出力バッファ１１から出力される。バスインターフェース信号ＢＵＳは、データＤＡＴ［２］である。入力バッファ１２は、イネーブル制御信号Ｅｎａｂｌｅが入力され、イネーブル状態ではバスインターフェース信号ＢＵＳが入力信号ＩＮとしてロジック回路４Ｋに伝送される。ディセーブル状態では、バスインターフェース信号ＢＵＳがフローティングや中間電圧レベルになっても貫通電流は発生しない。
【００７９】
電圧検出回路１３では、バスインターフェース信号ＢＵＳの電圧レベルが、ある閾値より上か下かが判定され、その判定結果ＤＥＴが出力される。電圧検出回路１３にはバスインターフェース信号ＢＵＳが入力されるため、入力バッファ１２がディセーブル状態であっても、バスインターフェース信号ＢＵＳの電圧レベルを判定することができる。図１５の構成を用いることにより、図１１の時刻ｔ５からＨｉｇｈの電圧が印加されても、貫通防止することができる。図１５の構成は、データＤＡＴ［２］以外のバスインターフェース信号ＢＵＳに実装しても有効である。
【００８０】
なお、上述した第２実施形態では、コマンドＣＭＤおよびデータＤＡＴ［３：２］の信号電圧の組み合わせで判定をしているが、最低２本の信号で判定することができる。各信号の機能は入れ替えが可能であり、信号名は限定されるものではない。どの信号を用いるかの組み合わせは自由である。
【００８１】
（第４実施形態）
図１６（ａ）は、第４実施形態に係るＬＶＳ識別モードの期間を示すタイミングチャート、図１６（ｂ）は、図１６（ａ）のＬＶＳ識別シーケンスの一例を示すタイミングチャートである。
【００８２】
図１６（ａ）において、拡張デバイス４は、電源の投入時（ｔ２）から立ち上がり時間ｔＰＲＵだけ経過した後にＬＶＳ識別モードに移行する。ＬＶＳ識別モードの期間の信号の手順により、ＨＶＳモード、ＬＶＳモードおよびＵＨＳ−ＩＩモードのどのモードで動作するか識別する。そして、そのモードに応じてＩ／Ｏセルの電源ＶＤＤＩＯ、入力しきい値、および出力信号電圧レベルが選択される。ＬＶＳ識別モードでは、高電圧信号（３．３Ｖ）および低電圧信号（１．８Ｖ）のクロックＣＬＫが受けられるようにするため、低電圧信号（１．８Ｖ）に対応した入力しきい値が選択される。
【００８３】
ここで、図１６（ｂ）に示すように、電源の投入時（ｔ２）から立ち上がり後のランプアップ時間Ｔ１０にＨＶＳホストからのクロックＨＣＬＫが入力される場合がある。ＨＶＳホストからのクロックＨＣＬＫの振幅は３．３Ｖ、周波数は１００ＫＨｚ−４００ＫＨｚ、であり、周波数が１００ＫＨｚのときに周期Ｔ１１は最大となり１０μｓである。ＬＶＳホストはＬＶＳ識別モードで低電圧信号（１．８Ｖ）の１クロックパルスを出力するが、クロックＬＣＬＫのＨｉｇｈパルス幅Ｔ１２を１５μｓ以上に設定することでＨＣＬＫと区別することができる。例えば、マージンを見込んでＨｉｇｈパルス幅が１０μｓ以下の場合は、クロックＨＣＬＫであり、１０μｓ以上の場合はクロックＬＣＬＫと判定できる。Ｔ１２のＨｉｇｈパルス幅は任意であるが、少なくともクロックＨＣＬＫのＨｉｇｈパルス幅より大きく設定する必要がある。
【００８４】
そして、ＬＶＳ識別モードにおいて、ＬＶＳカードは２クロック以上のクロックを受信した場合、パルス幅が１０μｓより小さなクロックを受信した場合あるいは振幅が２Ｖ以上のクロックを受信した場合、ＨＶＳホストが接続されていると認識することができる。ＨＶＳホストを認識した場合、Ｉ／Ｏセルの電源ＶＤＤＩＯを３．３Ｖ、入力しきい値を３．３Ｖに設定し、ＨＶＳモードになる。ＬＶＳホストを認識した場合、Ｉ／Ｏセルの電源ＶＤＤＩＯを１．８Ｖ、入力しきい値を１．８Ｖに設定し、ＬＶＳモードになる。
これにより、電源の投入直後にＨＶＳホストがクロックＨＣＬＫを出力する場合においても、ＬＶＳカードはＨＶＳホストとＬＶＳホストとを区別することができる。
【００８５】
（第５実施形態）
図１７は、第５実施形態に係るＬＶＳホストにＬＶＳデバイスが装着された時のＬＶＳ識別シーケンスを示すタイミングチャートである。
なお、図１７において、ｔ１〜ｔ８はホスト２が管理するタイミング、ｔ５´、ｔ９´は拡張デバイス４が管理するタイミングである。ドライブされずにｐｕｌｌ−ｕｐされている信号を点線で示し、その他は実線で示した。ＬｏｗドライブまたはＨｉｇｈドライブとｐｕｌｌ−ｄｏｗｎまたはｐｕｌｌ−ｕｐとが競合する場合、電圧レベルはＬｏｗドライブまたはＨｉｇｈドライブの方がｐｕｌｌ−ｄｏｗｎまたはｐｕｌｌ−ｕｐよりも優先する。実線の丸印は拡張デバイス４がチェックするポイント、点線の丸印はホスト２がチェックするポイントである。
【００８６】
ホスト２が拡張デバイス４に電源を投入する前は（ｔ１）、ホスト２はデータＤＡＴ［２］だけＬｏｗドライブまたはプルダウンし、その他クロックＣＬＫ、コマンドＣＭＤおよびデータＤＡＴ［３］をＬｏｗドライブする。特にＤＡＴ［３］のＬｏｗドライブは、拡張デバイスに装着されているカード検出抵抗によりｐｕｌｌ−ｕｐされることを防ぐ。データＤＡＴ［２］をＬｏｗドライブする場合はホスト２にプルダウン抵抗は不要である。データＤＡＴ［２］をプルダウンする場合はホスト２にプルダウン抵抗が必要である。ホスト２が拡張デバイス４に電源を投入すると（ｔ２）、ホスト２の電源電圧ＶＤ１がパワースイッチ２Ｂをオンにすることで、電源ラインＶＤＤを介して拡張デバイス４の電源電圧ＶＤ１として供給される。最初はＶＤＤＩＯセレクタ４Ｄによってセル電源ＶＤＤＩＯには電源電圧ＶＤ１が供給されるため、Ｉ／Ｏセル４Ｈは、高電圧信号に対応し、高電圧に対する耐性を持たせることができる。この時、電源の投入時（ｔ２）から立ち上がり時間ｔＰＲＵだけ経過すると、リセット回路４Ａは、リセット信号ＲＥＳを出力することでロジック回路４Ｋをリセットする。ＵＨＳ−ＩＩをサポートするホスト２は  、ＵＨＳ−ＩＩが使えるかを試し、ＵＨＳ−ＩＩが使えないならＬＶＳ識別シーケンスに移行する。この時、ＵＨＳ−ＩＩモードの初期化を試すためにデータＤＡＴ［１：０］にクロックを供給する場合があるが、ＵＨＳ−ＩＩモードの初期化ができなかった場合は、時刻ｔ５までにデータＤＡＴ［１：０］をＬｏｗドライブする。
【００８７】
ＵＨＳ−ＩＩ初期化を行わない場合、電源の投入時（ｔ２）から少なくとも所定時間Ｔ２１だけ経過した後に、ホスト２はクロックＣＬＫとして１クロックパルスＰＬを拡張デバイス４に送信し（ｔ３−ｔ４）、ＬＶＳ識別シーケンスを開始する。所定時間Ｔ２１は、例えば、ｔＰＲＵ＋１ｍｓ以上の時間に設定することができる。１クロックパルスＰＬのパルス幅Ｔ２２は１０μｓ以上に設定することができる。例えば、ホスト１が供給するクロックの最低周波数が１００ＫＨｚであることから、Ｈｉｇｈの幅でクロックを識別する場合のマージンを見込んでパルス幅Ｔ２２の最小値を１５μｓに設定してもよい。そうすると、Ｈｉｇｈの幅が１０μｓより小さければホスト１、１０μｓより大きければホスト２と判定できる。１クロックパルスＰＬの振幅は低電圧信号（１．８Ｖ）となるため、拡張デバイス４は、高電圧信号と低電圧信号どちらのクロックも受信できるようにしておく必要がある。これは、クロック入力バッファＢＤ１の閾値電圧を低電圧信号にしておくことで可能となる。
【００８８】
拡張デバイス４は、１クロックパルスＰＬの受信時のタイミングにおいて、コマンドＣＭＤの電圧レベルをチェックする。そして、コマンドＣＭＤの電圧レベルがＬｏｗまたは１クロックパルスＰＬのパルス幅Ｔ２２が１０μｓ以上である場合、ホスト２がＬＶＳホストであると認識する。両方の条件を満足する方がより認識の確実性を大きくすることができる。そして、低電圧信号（１．８Ｖ）での動作の準備が整うと、時刻ｔ５までにデバイス検出抵抗Ｒ４を切り離す。時刻ｔ４から時刻ｔ５までの時間Ｔ２３は、例えば、３．３Ｖから１．８Ｖの電源を生成するレギュレーターの安定期間として５ｍｓ以上の時間に設定することができる。また、拡張デバイス４はホスト２がＬＶＳホストであると認識すると、拡張デバイス４は、データＤＡＴ［２］のレベルを反転させるようにドライブし、ＬＶＳモードに移行する（ｔ５´）。ｔ５´＜ｔ５となる。
【００８９】
一方、ホスト２は、時刻ｔ４から所定時間Ｔ２３だけ経過すると、データＤＡＴ［２］をＬｏｗドライブしていた場合は、駆動を停止してデータＤＡＴ［２］をプルアップする（ｔ５）。この時、拡張デバイス４がＬＶＳデバイスの場合、データＤＡＴ［２］がＬｏｗドライブされているので、データＤＡＴ［２］の電圧レベルはＬｏｗを維持する。データＤＡＴ［２］をプルダウンした場合は、プルダウンによりデータＤＡＴ［２］の電圧レベルはＬｏｗを維持する。
【００９０】
次に、ホスト２は、時刻ｔ５から所定時間Ｔ２４だけ経過すると、データＤＡＴ［２］をプルアップした場合、電圧の立ち上がり時間を考慮して、例えば、５μｓ以上経過後にデータＤＡＴ［２］の電圧レベルをチェックする（ｔ６）。データＤＡＴ［２］をプルダウンした場合は、Ｔ２４は０μｓ以上とすることができる。そして、ホスト２は、データＤＡＴ［２］に設定した電圧レベルがｔ６で反転していた場合、拡張デバイス４がＬＶＳデバイスであると認識する。
【００９１】
ホスト２は、ＬＶＳデバイスと判定した場合、コマンドＣＭＤおよびデータＤＡＴ［３］、ＤＡＴ［１：０］を低信号電圧でプルアップする（ｔ７）。図示のようにコマンドＣＭＤは低信号電圧のＨｉｇｈに駆動してもよい。そして、ＬＶＳデバイスの初期化処理に移行する。この初期化処理では、１．８Ｖの低信号電圧で動作することができる。また、ホスト２は、クロックＳＤＣＬＫを出力する（ｔ８）。拡張デバイス４がクロックＣＬＫを受信すると、データＤＡＴ［２］の駆動を停止する。この時、データＤＡＴ［２］の電圧がホスト２にてプルアップされる（ｔ９´）。次に、ホスト２は、クロックＣＬＫを所定数だけ出力すると、コマンドＣＭＤ０を発行し拡張デバイスの初期化を開始する。
【００９２】
ここで、１クロックパルスＰＬの受信時のタイミングにおいて、拡張デバイス４がコマンドＣＭＤの電圧レベルをチェックすることにより、そのチェックのタイミングをホスト２が決めることができる。このため、コマンドＣＭＤの電圧レベルのチェックのタイミングを時間で規定する必要がなくなり、デバイス設計を容易化することができる。また、コマンドＣＭＤの電圧レベルのチェックのタイミングをホスト２が決めるので、データ不定期間を排除することができ、規格を簡素化することができる。
【００９３】
図１８は、第５実施形態に係るＬＶＳホストにＨＶＳデバイスが装着された時のＬＶＳ識別シーケンスを示すタイミングチャートである。
図１８において、時刻ｔ１〜時刻ｔ５までの動作は図１７と同様である。この時、拡張デバイス３がＨＶＳデバイスの場合、拡張デバイス３はデータＤＡＴ［２］の電圧を反転しない。このため、ホスト２がデータＤＡＴ［２］の電圧レベルはホストが設定した電圧レベルとなる。
【００９４】
次に、ホスト２は、時刻ｔ５から前記所定時間Ｔ２４だけ経過すると、データＤＡＴ［２］の電圧レベルをチェックする（ｔ６）。そして、ホスト２は、設定したデータＤＡＴ［２］の電圧レベルと一致した場合、拡張デバイス３がＨＶＳデバイスであると認識する。そして、ホスト２は、データＤＡＴ［２］のプルアップを停止するとともに、拡張デバイス３への電源電圧の供給を停止する（ｔ７）。さらに、コマンドＣＭＤおよびデータＤＡＴ［１：０］、ＤＡＴ［３］の電圧の駆動を停止し（ｔ８）、拡張デバイス３を却下する。
【００９５】
図１９および図２０は、第５実施形態に係る拡張デバイスの前処理および初期化シーケンスを示すフローチャートである。
【００９６】
図１９において、拡張デバイス４に電源が投入されると（Ｓ５１）、拡張デバイス４はＵＨＳ−ＩＩモードかどうかをチェックする（Ｓ５２）。拡張デバイス４の電源投入時には、デフォルトとしてＩ／Ｏセルは高電圧信号（３．３Ｖ）耐性の必要がある。そのためＩ／Ｏセル電源は高電圧電源（３．３Ｖ）が供給されている必要がある。コマンドＣＭＤとデータＤＡＴ［３：０］はホストが管理するため拡張デバイス３、４はドライブしない（ただし拡張デバイス４は、ＬＶＳ識別シーケンスｔ５’でデータＤＡＴ［２］をドライブする）。
【００９７】
拡張デバイス４がＵＨＳ−ＩＩモードを検出した場合、ＵＨＳ−ＩＩモードに移行する（Ｓ５３）。拡張デバイス４がＵＨＳ−ＩＩモードを検出しない場合、クロックＣＬＫの待ち状態に移行する（Ｓ５４）。
【００９８】
次に、拡張デバイス４は、コマンドＣＭＤの電圧レベルをチェックする（Ｓ５５）。そして、コマンドＣＭＤの電圧レベルがＬｏｗでない場合、ホスト１がＨＶＳホストであると認識し、ＨＶＳモードに移行する（Ｓ６０）。
【００９９】
一方、コマンドＣＭＤの電圧レベルがＬｏｗの場合、ホスト２がＬＶＳホストであると認識し、低電圧信号（１．８Ｖ）での動作を準備する（Ｓ５６）。この時、ＬＶＳホストであると認識するために、１クロックパルスＰＬのパルス幅Ｔ２２が１０μｓ以上であるという条件を追加してもよい。そして、低電圧信号（１．８Ｖ）に切り替える途中で何らかのエラーを検出した場合（Ｓ５７）、Ｉ／Ｏセルの電源ＶＤＤＩＯを高電源電圧（３．３Ｖ）に設定し、ＨＶＳモードに移行する（Ｓ６０）。一方、低電圧信号（１．８Ｖ）での動作の準備が整うと（Ｓ５７）、デバイス検出抵抗Ｒ４を切り離す（Ｓ５８）。さらに、拡張デバイス４は、データＤＡＴ［２］の電圧を反転するようにドライブし（Ｓ５９）、ＬＶＳモードに移行する（Ｓ６１）。
【０１００】
次に、図２０において、拡張デバイス４は、クロックＳＤＣＬＫを受信することで初期化処理に移行する（Ｓ６２）。コマンドＣＭＤ０を受信すると、拡張デバイス４はリセット動作を行う（Ｓ６３）。次に、コマンドＣＭＤ８を受信すると（Ｓ６４）、拡張デバイス４はフィールドＶＨＳをチェックする（Ｓ６５）。そして、フィールドＶＨＳにコマンド引数０００１ｂ、００１０ｂが設定されていない場合、拡張デバイス４はレスポンスを返さず（Ｓ６６）、停止する（Ｓ６７）。
【０１０１】
一方、フィールドＶＨＳに０００１ｂが設定されている場合、拡張デバイス４はＶＨＳ＝０００１ｂという高電圧信号のレスポンスを返す（Ｓ７１）。そして、高電圧信号（３．３Ｖ）による初期化処理を継続する（Ｓ７２）。また、エラーの発生がなく、００１０ｂが設定されている場合、ＶＨＳ＝００１０ｂという低電圧信号のレスポンスを返す（Ｓ６８）。
【０１０２】
次に、コマンドＡＣＭＤ４１を受信すると、Ｓ１８Ｒ＝１かどうかをチェックする（Ｓ６９）。そして、低電圧信号で動作しているときは、Ｓ１８Ａ＝０に設定し、コマンドＡＣＭＤ４１のレスポンスをホストに返す（Ｓ７０）。ＡＣＭＤ４１の実行が完了していればＤ３１＝１を返し、実行を継続していればＤ３１＝０を返す。Ｓ１８Ａの値は、Ｄ３１＝１のときに有効となる。すでに低電圧信号により初期化コマンドを実行している場合は、Ｓ１８Ａ＝０を返す。この時、電圧切替シーケンス（ＣＭＤ１１）はスキップされ、コマンドＣＭＤ２の発行以降の処理が実行される（Ｓ７３）。
【０１０３】
図２１および図２２は、第５実施形態に係るホストの前処理および初期化シーケンスを示すフローチャートである。
【０１０４】
図２１において、ホスト２が電源を投入する前は、データＤＡＴ［２］だけＬｏｗドライブまたはプルダウンし、その他クロックＳＤＣＬＫ、コマンドＣＭＤおよびデータＤＡＴ［３］をＬｏｗドライブする（Ｓ８１）。ホスト２が電源を投入すると（Ｓ８２）、拡張デバイス３、４の電源が安定するまで待機する（Ｓ８３）。
【０１０５】
次に、ホスト２はクロックＣＬＫとして１クロックパルスＰＬを拡張デバイス３、４に送信する（Ｓ８４）。次に、ホスト２は、例えば、５ｍｓ以上待機した後（Ｓ８５）、データＤＡＴ［２］の電圧レベルをチェックする（Ｓ８６）。そして、データＤＡＴ［２］の電圧レベルがホストの設定と同じ場合、ホスト２は、電源の投入を停止し（Ｓ８７）、デバイスを却下する（Ｓ８８）。
【０１０６】
一方、データＤＡＴ［２］の電圧レベルがホストの設定から反転していた場合、ホスト２は、拡張デバイス４がＬＶＳデバイスであると認識する。この時、ホスト２は、コマンドＣＭＤおよびデータＤＡＴ［３：０］をプルアップし（Ｓ８９）、ＬＶＳモードに移行する（Ｓ９０）。
【０１０７】
次に、図２２において、ホスト２は、ＬＶＳモードに移行すると、初期化処理を開始する。この時、ホスト２は、低電圧信号（１．８Ｖ）のクロックＳＤＣＬＫを供給し（Ｓ９１）、コマンドＣＭＤ０を発行する（Ｓ９２）。次に、ＣＭＤ８のフィールドＶＨＳにコマンド引数００１０ｂを設定し、コマンドＣＭＤ８を発行する（Ｓ９３）。それ以降の初期化シーケンスコマンドは省略し記載していない。
【０１０８】
次に、コマンドＣＭＤ８の発行に対するレスポンスをチェックする（Ｓ９４）。ここで、ＬＶＳデバイスは、ＶＨＳに対応したフィールドＶＣＡを００１０ｂに設定したレスポンスを返すことができる。そして、ホスト２はＬＶＳデバイスから応答がない場合は、そのＬＶＳデバイスをリジェクトし、パワーオフする（Ｓ９８）。一方、コマンドＣＭＤ８の発行に対する応答において、ＶＣＡ＝００１０ｂである場合、初期化コマンドＡＣＭＤ４１を発行する（Ｓ９５）。そして、初期化コマンドＡＣＭＤ４１に対するレスポンス中のフィールドＤ３１を参照することでビジー状態が判定され、ビジー状態でない場合は、ＡＣＭＤ４１に対するレスポンスに含まれるビットＳ１８Ａをチェックする（Ｓ９６）。ＬＶＳデバイスが低電圧信号に信号レベルを切り替えている場合、必ずＳ１８Ａ＝０がレスポンスに設定され、電圧切替シーケンス（ＣＭＤ１１）はスキップされる。そして、コマンドＣＭＤ２の発行以降の処理が実行される（Ｓ９７）。Ｓ１８Ａをチェックした結果、Ｓ１８Ａ＝１の場合、エラーと判定され、ＬＶＳデバイスをパワーオフする（Ｓ９８）。
【０１０９】
（第６実施形態）
図２３は、第６実施形態に係るＬＶＳホスにＬＶＳデバイスが装着された時のデータラインＤＡＴ［２］の接続関係を示すブロック図である。
【０１１０】
図２３において、ホスト２には、データＤＡＴ［２］をプルダウンするプルダウン抵抗Ｒ７を設けるようにしてもよい。プルダウン抵抗Ｒ７の値は、例えば１．５ｋΩ〜１５ｋΩの範囲に設定することができる。データＤＡＴ［２］のプルアップ抵抗Ｒ２の値は、１０ｋΩ〜１００ｋΩの範囲に設定することができる。プルダウン/プルダウン抵抗はどちらか一方のみ有効にし、同時に有効にすることはない。プルダウンする場合、プルダウン抵抗Ｒ７にかかる電圧Ｖ１は、低信号電圧のＬｏｗレベル最大値入力電圧である０．５８Ｖ未満とする必要がある。プルダウン抵抗値を決める要素としては、リーク電流とノイズマージンがある。この図の場合の１２ｕＡの電流がＲ７に流れ、４００ｍＶのノイズマージンを確保した場合のプルダウン抵抗の関係式は、１２ｕＡ＊Ｒ７＋４００ｍＶ＜０．５８Ｖとなり、この不当式から、Ｒ７＜１５ＫΩという結果を得る。
【０１１１】
プルダウン抵抗Ｒ７を設けることで、ホスト２が拡張デバイス４に電源を投入する前から、データＤＡＴ［２］をプルダウンすることができる。そして、拡張デバイス４は、１クロックパルスＰＬを受信した時刻ｔ４から所定時間Ｔ２３以内にデータＤＡＴ［２］をＨｉｇｈドライブすることができる。そして、ホスト２は、時刻ｔ４から所定時間Ｔ２３以降にデータＤＡＴ［２］の電圧レベルをチェックすることができる。そして、ホスト２は、データＤＡＴ［２］の電圧レベルが反転した場合、拡張デバイス４がＬＶＳデバイスであると認識することができる。
【０１１２】
ここで、ホスト２がデータＤＡＴ［２］をプルダウンする方法では、拡張デバイス４はデータＤＡＴ［２］の電圧レベルを反転させるために、データＤＡＴ［２］をＨｉｇｈドライブすることができ、図１７の方法に比べてタイミング処理を簡易化することができる。
【０１１３】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１１４】
１、２  ホスト、３、４  拡張デバイス、１Ａ、２Ａ  電源供給部、３Ａ、４Ａ  リセット回路、１Ｂ、２Ｂ  パワースイッチ、３Ｂ、４Ｂ  レギュレータ、１Ｃ  信号電圧制御部、１Ｄ、３Ｄ、４Ｄ  ＶＤＤＩＯセレクタ、１Ｅ、２Ｅ  クロック発生部、３Ｅ、４Ｅ  クロック受信部、１Ｆ〜４Ｆ  コマンド制御部、１Ｇ〜４Ｇ  データ制御部、１Ｈ〜４Ｈ  Ｉ／Ｏセル、２Ｊ、４Ｊ  ＬＶＳ制御部
【図１】
2020187768.tif 000003
【図２】
2020187768.tif 000004
【図３】
2020187768.tif 000005
【図４】
2020187768.tif 000006
【図５】
2020187768.tif 000007
【図６】
2020187768.tif 000008
【図７】
2020187768.tif 000009
【図８】
2020187768.tif 000010
【図９】
2020187768.tif 000011
【図１０】
2020187768.tif 000012
【図１１】
2020187768.tif 000013
【図１２】
2020187768.tif 000014
【図１３】
2020187768.tif 000015
【図１４】
2020187768.tif 000016
【図１５】
2020187768.tif 000017
【図１６】
2020187768.tif 000018
【図１７】
2020187768.tif 000019
【図１８】
2020187768.tif 000020
【図１９】
2020187768.tif 000021
【図２０】
2020187768.tif 000022
【図２１】
2020187768.tif 000023
【図２２】
2020187768.tif 000024
【図２３】
2020187768.tif 000025