(57)【要約】【課題】ホストとの間のバスを共用する二以上の入出力装置の複合であり、データ転送速度を高く維持しつつ、それぞれの装置の出力信号による他方の装置の入出力処理に対する妨害を抑制することで、データ通信に対し高い信頼性を確保する入出力装置を提供する。【解決手段】複合Ｉ／Ｏカード１０はメモリユニット１のＨＩＭ１１とＩ／Ｏユニット２のＨＩＭ２１とを含む。例えば、メモリユニット１のＨＩＭ１１は、データ出力ポートＯＤからのデータ送出時、データストローブ出力ポートＣＤからのデータストローブ信号をＨレベルにアサートする。それにより、第二のデータ入力マスク７Ｄ２の出力がＬレベルに固定されるので、Ｉ／Ｏユニット２のＨＩＭ２１のデータ入力ポートＩＤへの入力信号が遮断される。【選択図】　　　　図１
2004005053.tif 000002
【特許請求の範囲】
【請求項１】
（Ａ）　ホストと第一の機能部との間で交換される信号を中継するための第一のホストインタフェース；
（Ｂ）　前記ホストと第二の機能部との間で交換される信号を中継するための第二のホストインタフェース；
（Ｃ）　前記第一のホストインタフェースと前記第二のホストインタフェースとをそれぞれ前記ホストへ接続し、それらのホストインタフェースにより共用される双方向信号線を含むバス；及び、
（Ｄ）　前記第一のホストインタフェースと前記第二のホストインタフェースとの内、一方のホストインタフェースから前記双方向信号線への信号出力時、その双方向信号線から他方のホストインタフェースへの信号を遮断するための入力遮断部；
を有する複合入出力装置。
【請求項２】
（Ａ）　ストローブ信号に従い、入力信号を前記双方向信号線へ出力し、又は遮断するためのトライステート出力バッファ、を前記複合入出力装置が有し；
（Ｂ）　前記第一のホストインタフェースと前記第二のホストインタフェースとのそれぞれが、前記ホストとの間で交換される信号のための入力端子と出力端子、及び、前記ストローブ信号を出力するためのストローブ出力端子、を含み；
（Ｃ）　前記入力遮断部が、
（ａ）　前記双方向信号線から信号を入力するための共通入力端子、
（ｂ）　前記トライステート出力バッファへ信号を出力するための共通出力端子、
（ｃ）　前記トライステート出力バッファへ前記ストローブ信号を出力するための共通ストローブ出力端子、
（ｄ）　前記第一のホストインタフェースの出力端子からの信号と前記第二のホストインタフェースの出力端子からの信号との論理和を計算し、その計算結果を前記共通出力端子へ出力するための第一の論理和演算部、
（ｅ）　前記第一のホストインタフェースからの前記ストローブ信号と前記第二のホストインタフェースからの前記ストローブ信号との論理和を計算し、その計算結果を前記共通ストローブ出力端子へ出力するための第二の論理和演算部、
（ｆ）　前記第二のホストインタフェースからの前記ストローブ信号に応じ、前記共通入力端子から前記第一のホストインタフェースの入力端子への信号を遮断するための第一のマスク、及び、
（ｇ）　前記第一のホストインタフェースからの前記ストローブ信号に応じ、前記共通入力端子から前記第二のホストインタフェースの入力端子への信号を遮断するための第二のマスク、
を含む；
請求項１記載の複合入出力装置。
【請求項３】
（Ａ）　ホストと第一の機能部との間で交換される信号を中継するための第一のホストインタフェース；
（Ｂ）　前記ホストと第二の機能部との間で交換される信号を中継するための第二のホストインタフェース；
（Ｃ）　前記第一のホストインタフェースと前記第二のホストインタフェースとをそれぞれ前記ホストへ接続し、それらのホストインタフェースにより共用される信号線を含むバス；及び、
（Ｄ）　前記第一のホストインタフェースと前記第二のホストインタフェースとの内、一方のホストインタフェースから前記信号線への信号の出力時、他方のホストインタフェースからその信号線への信号を遮断するための出力調停部；
を有する複合入出力装置。
【請求項４】
（Ａ）　前記第一のホストインタフェースと前記第二のホストインタフェースとのそれぞれが、前記ホストとの間で交換される信号のための出力端子、及び、その信号の出力を通知するストローブ信号を出力するためのストローブ出力端子、を含み；
（Ｂ）　前記出力調停部が、
（ａ）　前記信号線へ信号を出力するための共通出力端子、
（ｂ）　前記第二のホストインタフェースからの前記ストローブ信号に応じ、前記第一のホストインタフェースの出力端子から前記共通出力端子への信号を遮断するための第三のマスク、
（ｃ）　前記第一のホストインタフェースからの前記ストローブ信号に応じ、前記第二のホストインタフェースの出力端子から前記共通出力端子への信号を遮断するための第四のマスク、及び、
（ｄ）　前記第三のマスクを通過した前記第一のホストインタフェースの出力端子から前記共通出力端子への信号と、前記第四のマスクを通過した前記第二のホストインタフェースの出力端子から前記共通出力端子への信号との論理和を計算し、その計算結果を前記共通出力端子へ出力するための第三の論理和演算部、
を含む；
請求項３記載の複合入出力装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、外部の情報処理機器との間でデータ通信を行うための入出力装置に関し、特に、その情報処理機器との間のバスを共用する二以上の入出力装置の複合に関する。
【０００２】
【従来の技術】
情報技術の飛躍的進歩及び爆発的普及により、多種多様な情報処理機器が相互に接続され、様々なデータを交換できる。それらのデータ通信を担う入出力装置（インタフェース）には、下位互換性を含め、多種多様な情報処理機器についての汎用性が要求される。その上、情報処理機器全体に対する小型軽量化の要請に伴い、入出力装置自体に対しても小型軽量化が求められる。
【０００３】
従来の入出力装置の一例として、マルチメディアカード（ＭＭＣ、登録商標）又はＳＤカードのようなＩＣカードが知られる。このＩＣカードは、特定のインタフェース内蔵の数ｃｍ角の小カードである。ＩＣカードは情報処理機器（ホスト）に設けられた専用スロットに差し込まれ、ホストとデータを交換する。そのスロットを様々な情報処理機器へ組み込むことで、上記のＩＣカードは多種多様な情報処理機器に対する汎用性を獲得する。
【０００４】
上記のＩＣカードの種類にはメモリカードとＩ／Ｏカードとがある。
メモリカードはフラッシュメモリ内蔵のカード型記録媒体である。複数のホストが同じメモリカードを共用し、相互のデータ交換を実現する。
図３は、従来のメモリカード１００とホストＨとの間でのデータ交換を示すブロック図である。
【０００５】
メモリカード１００は、少なくとも一本のデータ線ＤＡＴ、コマンド線ＣＭＤ、クロック線ＣＬＫ、電源線ＶＤＤ、及びグラウンド線ＶＳＳを含むバス３で、ホストＨと接続される。メモリカード１００はホストＨから、電源線ＶＤＤとグラウンド線ＶＳＳとを通し、電力を供給される。
ホストインタフェースモジュール（ＨＩＭ）１１は、データ線ＤＡＴとコマンド線ＣＭＤとを通し、ホストＨとの間でデータを交換する。そのデータ転送は、クロック線ＣＬＫを通しホストＨから送出されたクロックに従い、同期通信で実行される。
ホストＨはＨＩＭ１１との間のデータ通信を通じ、メモリ部１２に対し、その内部のフラッシュメモリへデータを書き込み、又はそのフラッシュメモリからデータを読み出すように指示する。
【０００６】
データゲート４Ｄはデータ入力バッファ５Ｄとデータ出力バッファ６Ｄとを含み、データ線ＤＡＴとＨＩＭ１１との間でデータを中継する。ここで、データ出力バッファ６Ｄはトライステート出力である。
データ線ＤＡＴはデータ入力バッファ５Ｄの入力端へ結線される。データ入力バッファ５Ｄの出力端は、ＨＩＭ１１のデータ入力ポートＩＤへ結線される。
ＨＩＭ１１のデータ出力ポートＯＤとデータストローブ出力ポートＣＤとは、データ出力バッファ６Ｄの入力端とストローブ入力端とへそれぞれ結線される。データ出力バッファ６Ｄの出力端はデータ線ＤＡＴへ結線される。
【０００７】
コマンドゲート４Ｃはコマンド入力バッファ５Ｃとレスポンス出力バッファ６Ｃとを含み、コマンド線ＣＭＤとＨＩＭ１１との間でコマンド／レスポンスを中継する。ここで、レスポンス出力バッファ６Ｃはトライステート出力である。
コマンド線ＣＭＤはコマンド入力バッファ５Ｃの入力端へ結線される。コマンド入力バッファ５Ｃの出力端は、ＨＩＭ１１のコマンド入力ポートＩＣへ結線される。
ＨＩＭ１１のレスポンス出力ポートＯＣとレスポンスストローブ出力ポートＣＣとは、レスポンス出力バッファ６Ｃの入力端とストローブ入力端とへ、それぞれ結線される。レスポンス出力バッファ６Ｃの出力端はコマンド線ＣＭＤへ結線される。
【０００８】
ホストＨとＨＩＭ１１との間のデータ通信には、次の二つのモードがある。
＜第一のモード＞
第一のモードでは、データ線ＤＡＴとコマンド線ＣＭＤとがそれぞれ双方向信号線として利用される。それにより、両信号線上のデータ通信が一般に並行する。
データ線ＤＡＴでは、メモリ部１２内のフラッシュメモリから読み出されたデータ、及びそのフラッシュメモリへ書き込まれるデータが伝送される。そのとき、データは、データ線ＤＡＴのいずれかを通しシリアルに、又はデータ線ＤＡＴの全てを通しパラレルに転送される。
ＨＩＭ１１は、データ出力ポートＯＤからのデータ出力時のみ、データストローブ出力ポートＣＤからストローブ信号を出力する。それにより、データ入力ポートＩＤへ入力されたデータの送信元を容易に識別できる。
【０００９】
コマンド線ＣＭＤでは、ホストＨからメモリカード１００へのコマンド、及びそのコマンドに対するＨＩＭ１１のレスポンスが伝送される。
ＨＩＭ１１は、レスポンス出力ポートＯＣからのレスポンス出力時のみ、レスポンスストローブ出力ポートＣＣからストローブ信号を出力する。それにより、コマンド入力ポートＩＣへ入力された信号がコマンド又はレスポンスのいずれであるのかを容易に識別できる。
【００１０】
第一のモードでは、ホストＨはメモリカード１００に対しカードアドレスを一つ割り当てる。ホストＨからメモリカード１００へ送出されるデータ及びコマンドは、そのカードアドレスを宛先アドレスとして含む。逆に、メモリカード１００からホストＨへ送出されるデータ及びレスポンスは、そのカードアドレスを送信元アドレスとして含む。こうして、ホストＨはデータ通信の対象として、バス３へ接続された他の同様なＩＣカード（図示せず）の中からメモリカード１００を特定する。
【００１１】
＜第二のモード＞
第二のモードでは、一本のデータ線ＤＡＴとコマンド線ＣＭＤとがそれぞれ一方向信号線として利用される。すなわち、第二のモードでは一つのシリアル通信だけが実現する。
例えば、一本のデータ線ＤＡＴを通し、メモリカード１００からホストＨへ向かう信号（上り方向の信号）だけが伝送される。その信号は、メモリ部１２内のフラッシュメモリから読み出されたデータ、及びＨＩＭ１１のレスポンスを含む。
一方、コマンド線ＣＭＤを通し、ホストＨからメモリカード１００へ向かう信号（下り方向の信号）だけが伝送される。その信号は、メモリ部１２内のフラッシュメモリへ書き込むためのデータ、及びホストＨのコマンドを含む。
【００１２】
第二のモードでは、ホストＨは例えば、上り方向信号線以外のデータ線ＤＡＴの一本をカード選択信号線として利用する。ホストＨはメモリカード１００とのデータ通信時、メモリカード１００のカード選択信号線だけをアサートする。こうして、ホストＨはデータ通信の対象として、バス３へ接続された他の同様なＩＣカード（図示せず）の中からメモリカード１００を特定する。
【００１３】
Ｉ／Ｏカードは、ホストと、そのホストとは別の情報処理機器又はネットワークとの間を接続する。例えば、Ｉ／Ｏカードはホストを携帯電話又は内部の無線通信部へ接続する。それにより、ホストは、携帯電話回線網又は無線ＬＡＮを通し、他の情報処理機器との間でデータ交換を実現する。その他に、Ｉ／Ｏカードはホストをディジタルカメラへ接続する。それにより、ホストはディジタルカメラにより撮像された画像データを取り込み、記録し又は編集できる。
上記の無線通信部及びディジタルカメラ等のように、上記のＩ／Ｏカードによりホストと接続される様々な機能部をファンクションという。ファンクションの拡張により、単一のＩ／Ｏカードで多種多様な機能をホストは獲得できる。
【００１４】
図４は、従来のＩ／Ｏカード２００とホストＨとの間でのデータ交換を示すブロック図である。
Ｉ／Ｏカード２００は、上記のメモリカード１００と同様なバス３でホストＨと接続される。すなわち、バス３は、データ線ＤＡＴ、コマンド線ＣＭＤ、クロック線ＣＬＫ、電源線ＶＤＤ、及びグラウンド線ＶＳＳを含む。Ｉ／Ｏカード２００はメモリカード１００と同様に、電源線ＶＤＤとグラウンド線ＶＳＳとを通し、ホストＨから電力を供給される。
【００１５】
Ｉ／Ｏカード２００はファンクションとして、例えば無線通信部２２Ａと撮像部２２Ｂとを含む。無線通信部２２Ａは、例えば外部の無線ＬＡＮに接続し、データを交換する。撮像部２２Ｂは、例えば電荷結合素子（ＣＣＤ）等の撮像素子を含み、外部から取り入れた光学像を画像信号へ変換する。
【００１６】
ＨＩＭ２１はメモリカード１００のＨＩＭ１１と同様に、データ線ＤＡＴとコマンド線ＣＭＤとを通し、ホストＨとの間でデータを交換する。そのとき、データ転送はメモリカード１００と同様、クロック線ＣＬＫ上のクロックに従い同期通信で実行される。そのデータ通信により、ホストＨは無線通信部２２Ａを通し無線ＬＡＮへ接続し、撮像部２２Ｂから画像信号を取り込む。
【００１７】
Ｉ／Ｏカード２００はバス３との接続部について、メモリカード１００と共通する。特に、ＨＩＭ２１はバス３へ接続する入出力ポートについて、メモリカード１００のＨＩＭ１１と共通する。更に、バス３とＨＩＭ２１との間に、メモリカード１００と同様なデータゲート４Ｄとコマンドゲート４Ｃとを含む。
これらの共通の構成により、ホストＨはメモリカード１００とＩ／Ｏカード２００とのそれぞれとの間でのデータ通信を、共通の手順で実行できる。特に、カードの認識を含む初期設定について共通する。
【００１８】
【発明が解決しようとする課題】
メモリカード１００とＩ／Ｏカード２００とは、ホストＨとの間のバス３、及びそのバス接続部で共通する。従って、それらの共通部分について単一の装置を共用できれば、メモリカード１００とＩ／Ｏカード２００との両方の機能を一枚のカード内に収め得る。そのように両機能を複合したＩＣカード（以下、複合Ｉ／Ｏカードという）が実現されれば、ホストＨは従来のスロットをそのまま利用し、メモリカード１００とＩ／Ｏカード２００との両機能を同時に利用できる。
【００１９】
図５は、複合Ｉ／Ｏカード３００の内部構成の一例を示すブロック図である。この複合Ｉ／Ｏカード３００はメモリユニット３１とＩ／Ｏユニット３２とを有する。
メモリユニット３１は、従来のメモリカード１００と同様な構成を含み、そのカードに対するコマンドと同じコマンドで制御される。Ｉ／Ｏユニット３２は、従来のＩ／Ｏカード２００と同様な構成を含み、そのカードに対するコマンドと同じコマンドで制御される。図５では、それらの同様な構成に対し、図３及び図４に示される符号と同じ符号が付される。
【００２０】
上記の複合Ｉ／Ｏカード３００では、メモリユニット３１のＨＩＭ１１とＩ／Ｏユニット３２のＨＩＭ２１とが共通のデータゲート４Ｄとコマンドゲート４Ｃとへ、次のように結線される。
データ入力バッファ５Ｄの出力は、メモリユニット３１のＨＩＭ１１とＩ／Ｏユニット３２のＨＩＭ２１との両方のデータ入力ポートＩＤへ入力される。
両ユニットのＨＩＭ１１と２１とのそれぞれのデータ出力ポートＯＤの出力は、ワイヤードＯＲ（Ｗｉｒｅｄ−ＯＲ）を通し、単一の信号としてデータ出力バッファ６Ｄの入力端へ入力される。
両ユニットのＨＩＭ１１と２１とのそれぞれのデータストローブ出力ポートＣＤの出力は、ワイヤードＯＲを通し、単一の信号としてデータ出力バッファ６Ｄのストローブ入力端へ入力される。
【００２１】
コマンド入力バッファ５Ｃの出力は、両ユニットのＨＩＭ１１と２１との両方のコマンド入力ポートＩＣへ入力される。
両ユニットのＨＩＭ１１と２１とのそれぞれのレスポンス出力ポートＯＣの出力は、ワイヤードＯＲを通し、単一の信号として、レスポンス出力バッファ６Ｃの入力端へ入力される。
両ユニットのＨＩＭ１１と２１とのそれぞれのレスポンスストローブ出力ポートＣＣの出力は、ワイヤードＯＲを通し、単一の信号として、レスポンス出力バッファ６Ｃのストローブ入力端へ入力される。
【００２２】
ホストＨは従来のスロットを通し、複合Ｉ／Ｏカード３００をメモリカード１００とＩ／Ｏカード２００と同様な一枚のＩＣカードとして制御する。
第一のモードでは、複合Ｉ／Ｏカード３００には単一のカードアドレスが割り当てられる。それにより、メモリユニット３１とＩ／Ｏユニット３２とはいずれも共通のカードアドレスでアクセスされる。ホストＨのコマンドが両ユニットのＨＩＭ１１と２１とへ入力されるとき、それぞれのＨＩＭは互いに独立して同じコマンドを解読する。
【００２３】
ホストＨにより発行されるコマンドには、メモリカード１００とＩ／Ｏカード２００とで共通するものと異なるものとがある。
例えば、ホストＨが両カードの共通コマンドを発行するとき、二つのＨＩＭ１１と２１とはそれぞれの状態に応じたレスポンスを送出する。ここで、二つのＨＩＭ１１と２１とのそれぞれの状態は一般に異なる。従って、それらのレスポンスは一般に異なる。
その他に、例えば、ホストＨがメモリカード１００専用コマンドを発行するとき、メモリユニット３１のＨＩＭ１１はコマンド受信成功を示すレスポンス（ＡＣＫ）を送出し、Ｉ／Ｏユニット３２のＨＩＭ２１はコマンド受信失敗を示すレスポンス（ＮＡＫ）を送出する。ホストＨがＩ／Ｏカード２００専用コマンドを発行するとき、メモリユニット３１のＨＩＭ１１はＮＡＫを送出し、Ｉ／Ｏユニット３２のＨＩＭ２１はＡＣＫを送出する。
【００２４】
上記のＩＣカードとホストＨとの間でのコマンド／レスポンス通信は、クロック線ＣＬＫ上のクロックと同期して行われる。従って、両ユニットのＨＩＭ１１と２１とのレスポンスが異なるとき、それらのＨＩＭの間で競合が生じる。
この競合を解消するには、例えば、いずれかのＨＩＭにレスポンスを抑制させれば良い。しかし、そのとき、レスポンスを抑制したＨＩＭのコマンド入力ポートＩＣへ、他方のＨＩＭのレスポンスが、コマンド入力バッファ５Ｃを通し入力される。それぞれのユニットのＨＩＭは、レスポンスの抑制時、コマンド入力ポートＩＣへ入力された信号をコマンドとみなし、解読を試みる。その結果、本来不要なコマンド解読動作が頻発し、ＨＩＭによるデータ処理速度を低減させた。
【００２５】
ＨＩＭのデータ入力ポートＩＤについても同様な障害があった。すなわち、一方のＨＩＭのデータ出力ポートＯＤから送出されたデータが、データ入力バッファ５Ｄを通し、他方のＨＩＭのデータ入力ポートＩＤへ入力された。そのデータはその他方のＨＩＭにとってノイズに過ぎない。第一のモードでは、データ転送と並行しコマンド／レスポンス通信が一般に実行される。上記ノイズは例えば、そのコマンド／レスポンス通信処理を妨げるおそれがあった。
【００２６】
第二のモードでは、上記のＩＣカードと同様に、データ線ＤＡＴの一本が上り方向信号線として利用され、コマンド線ＣＭＤが下り方向信号線として利用される。
下り方向信号線ＣＭＤを通し、ホストＨから複合Ｉ／Ｏカード３００へデータ又はコマンドが伝送されるとき、それらはコマンド入力バッファ５Ｃを通し、両ユニットのＨＩＭ１１と２１とのコマンド入力ポートＩＣへ入力される。
一方、それぞれのユニットのＨＩＭ１１と２１とのデータ出力ポートＯＤから送出されたデータ又はレスポンスは、データ出力バッファ６Ｄ及び上り方向信号線ＤＡＴを通しホストＨへ伝送される。ここで、二つのＨＩＭ１１と２１とのそれぞれから同時に送出された信号はトライステート出力バッファ６Ｄの入力前にワイヤードＯＲを通るので、そこで両信号が衝突する。特に、第二のモードでは第一のモードとは異なり、その衝突がデータとレスポンスとの間で生じ、データを損なうおそれがあった。従って、両信号間の調停を、第一のモードより更に確実に実行しなければならなかった。その上、その調停を迅速に実行し、データ転送速度を高く維持しなければならなかった。
【００２７】
本発明は、ホストとの間のバスを共用する二以上の入出力装置の複合であり、データ転送速度を高く維持しつつ、それぞれの装置の出力信号による他方の装置の入出力処理に対する妨害を抑制することで、データ通信に対し高い信頼性を確保する入出力装置、の提供を目的とする。
【００２８】
【課題を解決するための手段】
本発明の一つの観点による複合入出力装置は、
（Ａ）　ホストと第一の機能部との間で交換される信号を中継するための第一のホストインタフェース；
（Ｂ）　ホストと第二の機能部との間で交換される信号を中継するための第二のホストインタフェース；
（Ｃ）　第一のホストインタフェースと第二のホストインタフェースとをそれぞれホストへ接続し、それらのホストインタフェースにより共用される双方向信号線を含むバス；及び、
（Ｄ）　第一のホストインタフェースと第二のホストインタフェースとの内、一方のホストインタフェースから上記の双方向信号線への信号の出力時、その双方向信号線から他方のホストインタフェースへの信号の入力を遮断するための入力遮断部；
を有する。
【００２９】
上記の複合入出力装置では、一方のホストインタフェースから双方向信号線への出力信号が他方のホストインタフェースへ入力されない。従って、一方のホストインタフェースによる信号出力時、他方のホストインタフェースへ入力されるノイズが低減する。その結果、ノイズの判別に要するホストインタフェースの負荷が軽減し、更にノイズによる誤動作を回避できる。
【００３０】
上記の複合入出力装置では、
（Ａ）　ストローブ信号に従い、入力信号を双方向信号線へ出力し、又は遮断するためのトライステート出力バッファ、を上記の複合入出力装置が有し；
（Ｂ）　第一のホストインタフェースと第二のホストインタフェースとのそれぞれが、ホストとの間で交換される信号のための入力端子と出力端子、及び、ストローブ信号を出力するためのストローブ出力端子、を含み；
（Ｃ）　入力遮断部が、
（ａ）　双方向信号線から信号を入力するための共通入力端子、
（ｂ）　トライステート出力バッファへ信号を出力するための共通出力端子、
（ｃ）　トライステート出力バッファへストローブ信号を出力するための共通ストローブ出力端子、
（ｄ）　第一のホストインタフェースの出力端子からの信号と第二のホストインタフェースの出力端子からの信号との論理和を計算し、その計算結果を共通出力端子へ出力するための第一の論理和演算部、
（ｅ）　第一のホストインタフェースからのストローブ信号と第二のホストインタフェースからのストローブ信号との論理和を計算し、その計算結果を共通ストローブ出力端子へ出力するための第二の論理和演算部、
（ｆ）　第二のホストインタフェースからのストローブ信号に応じ、共通入力端子から第一のホストインタフェースの入力端子への信号を遮断するための第一のマスク、及び、
（ｇ）　第一のホストインタフェースからのストローブ信号に応じ、共通入力端子から第二のホストインタフェースの入力端子への信号を遮断するための第二のマスク、
を含んでも良い。
【００３１】
ここで、それぞれの論理和演算部はワイヤードＯＲであっても良い。その他にＯＲ素子であっても良い。更に、それぞれのマスクは好ましくはＡＮＤ素子を含む。
上記の複合入出力装置では、一方のホストインタフェースによる信号出力時、他方のホストインタフェースによる信号入力の遮断に対し、ホストインタフェースからトライステート出力バッファへのストローブ信号が利用される。それにより、上記の信号入力の遮断を、例えば論理素子による簡単な構成で、確実にかつ迅速に実現できる。
【００３２】
本発明の別の観点による複合入出力装置は、
（Ａ）　ホストと第一の機能部との間で交換される信号を中継するための第一のホストインタフェース；
（Ｂ）　ホストと第二の機能部との間で交換される信号を中継するための第二のホストインタフェース；
（Ｃ）　第一のホストインタフェースと第二のホストインタフェースとをそれぞれホストへ接続し、それらのホストインタフェースにより共用される信号線を含むバス；及び、
（Ｄ）　第一のホストインタフェースと第二のホストインタフェースとの内、一方のホストインタフェースから上記の信号線への信号の出力時、他方のホストインタフェースからその信号線への信号を遮断するための出力調停部；
を有する。
【００３３】
上記の複合入出力装置では、二つのホストインタフェースが共通の信号線への信号出力について競合するとき、出力調停部が一方の出力信号を遮断する。それにより、両方の出力信号の衝突が確実に回避されるので、データ出力に対する信頼性が高い。
【００３４】
上記の複合入出力装置では、
（Ａ）　第一のホストインタフェースと第二のホストインタフェースとのそれぞれが、ホストとの間で交換される信号のための出力端子、及び、その信号の出力を通知するストローブ信号を出力するためのストローブ出力端子、を含み；
（Ｂ）　出力調停部が、
（ａ）　上記の信号線へ信号を出力するための共通出力端子、
（ｂ）　第二のホストインタフェースからのストローブ信号に応じ、第一のホストインタフェースの出力端子から共通出力端子への信号を遮断するための第三のマスク、
（ｃ）　第一のホストインタフェースからのストローブ信号に応じ、第二のホストインタフェースの出力端子から共通出力端子への信号を遮断するための第四のマスク、及び、
（ｄ）　第三のマスクを通過した第一のホストインタフェースの出力端子から共通出力端子への信号と、第四のマスクを通過した第二のホストインタフェースの出力端子から共通出力端子への信号との論理和を計算し、その計算結果を共通出力端子へ出力するための第三の論理和演算部、
を含んでも良い。
【００３５】
ここで、それぞれのマスクは、好ましくはＡＮＤ素子を含む。更に、第三の論理和演算部はワイヤードＯＲであっても良い。その他に、ＯＲ素子であっても良い。
上記の複合入出力装置では、それぞれのホストインタフェースが信号出力時、ストローブ信号を出力する。二つのホストインタフェースの間での信号出力に対する調停ではそのストローブ信号が利用される。それにより、上記の調停を、例えば論理素子による簡単な構成で、確実にかつ迅速に実現できる。
【００３６】
【発明の実施の形態】
以下、本発明の最適な実施の形態について、その好ましい実施例を挙げ、図面を参照しつつ説明する。
【００３７】
《実施例１》
図１は、本発明の実施例１による複合Ｉ／Ｏカード１０について、ホストＨとの間のデータ交換を示すブロック図である。
この複合Ｉ／Ｏカード１０はバス３でホストＨと接続される。バス３は、少なくとも一本のデータ線ＤＡＴ、クロック線ＣＬＫ、電源線ＶＤＤ、グラウンド線ＶＳＳ、及びコマンド線ＣＭＤを含む。図１では複合Ｉ／Ｏカード１０のみが示されるが、バス３へはその他の同様なＩＣカードが同時に接続されても良い。
複合Ｉ／Ｏカード１０はホストＨから、電源線ＶＤＤとグラウンド線ＶＳＳとを通し、電力を供給される。
【００３８】
複合Ｉ／Ｏカード１０はメモリユニット１とＩ／Ｏユニット２とを有する。
メモリユニット１はメモリ部１２を含む。メモリ部１２はフラッシュメモリとその入出力制御用のコントローラとを持つ。メモリ部１２は、ホストＨのコマンドに従い、ホストＨからのデータをフラッシュメモリへ記憶し、又は、フラッシュメモリに記憶されたデータをホストＨへ提供する。
Ｉ／Ｏユニット２は内部の様々な機能部、又は外部の様々な情報処理機器へホストＨを接続するためのインタフェースとして機能する。例えば、Ｉ／Ｏユニット２は無線通信部２２Ａと撮像部２２Ｂとを含む。無線通信部２２Ａは、例えば外部の無線ＬＡＮへホストＨを接続し、無線ＬＡＮとホストＨとの間の無線によるデータ交換を実現する。撮像部２２Ｂは例えばＣＣＤ等の撮像素子を含み、外部から取り入れた光学像を画像信号へ変換し、ホストＨへ提供する。その他に、Ｉ／Ｏユニット２は、例えば外部の携帯電話へ接続され、ホストＨによる携帯電話網へのアクセスを可能にしても良い。更に、例えば外部のディジタルカメラへ接続され、その画像データをホストＨへ提供しても良い。
【００３９】
メモリユニット１とＩ／Ｏユニット２とはそれぞれ、同様な構成のホストインタフェースモジュール（ＨＩＭ）１１と２１とを含む。それぞれのＨＩＭは、データ入力遮断部７Ｄとデータゲート４Ｄとを通し共通のデータ線ＤＡＴへ結線され、コマンド入力遮断部７Ｃとコマンドゲート４Ｃとを通し共通のコマンド線ＣＭＤへ結線される。更に、共通のクロック線ＣＬＫへ結線される。
それらのＨＩＭとホストＨとはデータ線ＤＡＴとコマンド線ＣＭＤとを通し、同期通信でデータを交換する。すなわち、クロック線ＣＬＫを通しホストＨから送出されたクロックと同期し、信号が送受信される。
【００４０】
実施例１による複合Ｉ／Ｏカード１０の通信モードは、従来のＩＣカードでの第一のモードに相当する。その通信モードでは、データ線ＤＡＴとコマンド線ＣＭＤとがそれぞれ双方向信号線として利用される。それにより、両信号線上のデータ通信が一般に並行する。
データ線ＤＡＴでは、ホストＨと、メモリ部１２、無線通信部２２Ａ、又は撮像部２２Ｂとの間で交換されるデータが伝送される。そのときデータは、データ線ＤＡＴのいずれかを通しシリアルに、又はデータ線ＤＡＴの全てを通しパラレルに転送される。
コマンド線ＣＭＤでは、ホストＨから、メモリユニット１のＨＩＭ１１、又はＩ／Ｏユニット２のＨＩＭ２１へのコマンド、及びそのコマンドに対するそれぞれのＨＩＭのレスポンスが伝送される。
【００４１】
データゲート４Ｄはデータ入力バッファ５Ｄとデータ出力バッファ６Ｄとを含む。ここで、データ出力バッファ６Ｄはトライステート出力である。
データ入力遮断部７Ｄは、第一のデータ入力マスク７Ｄ１、第二のデータ入力マスク７Ｄ２、データ出力ＯＲ７ＤＯ、及びデータストローブＯＲ７ＤＣを含む。ここで、それぞれのデータ入力マスクは好ましくはＡＮＤ回路であり、データ出力ＯＲ７ＤＯとデータストローブＯＲ７ＤＣとはそれぞれＯＲ回路である。
【００４２】
データ線ＤＡＴ、データゲート４Ｄ、データ入力遮断部７Ｄ、及び両ユニットのＨＩＭ１１と２１は、それぞれ次のように接続される。
データ線ＤＡＴはデータ入力バッファ５Ｄの入力端へ結線される。データ入力バッファ５Ｄの出力端は、第一のデータ入力マスク７Ｄ１と第二のデータ入力マスク７Ｄ２とのそれぞれの入力端へ結線される。第一のデータ入力マスク７Ｄ１の出力端は、メモリユニット１のＨＩＭ１１のデータ入力ポートＩＤへ結線される。第二のデータ入力マスク７Ｄ２の出力端はＩ／Ｏユニット２のＨＩＭ２１のデータ入力ポートＩＤへ結線される。
【００４３】
両ユニットのＨＩＭ１１と２１とのそれぞれのデータ出力ポートＯＤはデータ出力ＯＲ７ＤＯの入力端へ結線される。データ出力ＯＲ７ＤＯの出力端はデータ出力バッファ６Ｄの入力端へ結線される。こうして、両ユニットのＨＩＭ１１と２１とから出力されたデータのＯＲがデータ出力バッファ６Ｄへ入力される。
【００４４】
メモリユニット１のＨＩＭ１１のデータストローブ出力ポートＣＤは、第二のデータ入力マスク７Ｄ２とデータストローブＯＲ７ＤＣとのそれぞれの入力端へ結線される。ここで、第二のデータ入力マスク７Ｄ２は、メモリユニット１のＨＩＭ１１のデータストローブ出力ポートＣＤの電位（データストローブ信号）を負論理で入力する。それにより、メモリユニット１のＨＩＭ１１のデータストローブ信号が高電位（Ｈレベル）であるとき、第二のデータ入力マスク７Ｄ２の出力が低電位（Ｌレベル）に固定される。こうして、データ入力バッファ５ＤからＩ／Ｏユニット２のＨＩＭ２１のデータ入力ポートＩＤへの信号が遮断される。
【００４５】
Ｉ／Ｏユニット２のＨＩＭ２１のデータストローブ出力ポートＣＤは、第一のデータ入力マスク７Ｄ１とデータストローブＯＲ７ＤＣとのそれぞれの入力端へ結線される。ここで、第一のデータ入力マスク７Ｄ１はＩ／Ｏユニット２のＨＩＭ２１のデータストローブ信号を負論理で入力する。それにより、Ｉ／Ｏユニット２のＨＩＭ２１のデータストローブ信号がＨレベルであるとき、第一のデータ入力マスク７Ｄ１の出力がＬレベルに固定される。こうして、データ入力バッファ５Ｄからメモリユニット１のＨＩＭ１１のデータ入力ポートＩＤへの信号が遮断される。
【００４６】
データストローブＯＲ７ＤＣの出力端はデータ出力バッファ６Ｄのストローブ入力端へ結線される。データ出力バッファ６Ｄの出力端はデータ線ＤＡＴへ結線される。こうして、両ユニットのＨＩＭ１１と２１との少なくともいずれかのデータストローブ信号がＨレベルであるとき、データ出力バッファ６Ｄはデータをデータ線ＤＡＴへ送出する。
【００４７】
コマンドゲート４Ｃは、コマンド入力バッファ５Ｃとレスポンス出力バッファ６Ｃとを含む。ここで、レスポンス出力バッファ６Ｃはトライステート出力である。
コマンド入力遮断部７Ｃは、第一のコマンドマスク７Ｃ１、第二のコマンドマスク７Ｃ２、レスポンスＯＲ７ＣＯ、及びレスポンスストローブＯＲ７ＣＣを含む。ここで、それぞれのコマンドマスクは好ましくはＡＮＤ回路であり、レスポンスＯＲ７ＣＯとレスポンスストローブＯＲ７ＣＣとはそれぞれＯＲ回路である。
【００４８】
コマンド線ＣＭＤ、コマンドゲート４Ｃ、コマンド入力遮断部７Ｃ、及び両ユニットのＨＩＭ１１と２１は、それぞれ次のように接続される。
コマンド線ＣＭＤはコマンド入力バッファ５Ｃの入力端へ結線される。コマンド入力バッファ５Ｃの出力端は、第一のコマンド入力マスク７Ｃ１と第二のコマンド入力マスク７Ｃ２とのそれぞれの入力端へ結線される。第一のコマンド入力マスク７Ｃ１の出力端はメモリユニット１のＨＩＭ１１のコマンド入力ポートＩＣへ結線される。第二のコマンド入力マスク７Ｃ２の出力端はＩ／Ｏユニット２のＨＩＭ２１のコマンド入力ポートＩＣへ結線される。
【００４９】
両ユニットのＨＩＭ１１と２１とのそれぞれのレスポンス出力ポートＯＣはレスポンスＯＲ７ＣＯの入力端へ結線される。レスポンスＯＲ７ＣＯの出力端はレスポンス出力バッファ６Ｃの入力端へ結線される。こうして、両ユニットのＨＩＭ１１と２１とから出力されたレスポンスのＯＲがレスポンス出力バッファ６Ｃへ入力される。
【００５０】
メモリユニット１のＨＩＭ１１のレスポンスストローブ出力ポートＣＣは、第二のコマンド入力マスク７Ｃ２とレスポンスストローブＯＲ７ＣＣとのそれぞれの入力端へ結線される。ここで、第二のコマンド入力マスク７Ｃ２は、メモリユニット１のＨＩＭ１１のレスポンスストローブ出力ポートＣＣの電位（レスポンスストローブ信号）を負論理で入力する。それにより、メモリユニット１のＨＩＭ１１のレスポンスストローブ信号がＨレベルであるとき、第二のコマンド入力マスク７Ｃ２の出力がＬレベルに固定される。こうして、コマンド入力バッファ５ＣからＩ／Ｏユニット２のＨＩＭ２１のコマンド入力ポートＩＣへの信号が遮断される。
【００５１】
Ｉ／Ｏユニット２のＨＩＭ２１のレスポンスストローブ出力ポートＣＣは、第一のコマンド入力マスク７Ｃ１とレスポンスストローブＯＲ７ＣＣとのそれぞれの入力端へ結線される。ここで、第一のコマンド入力マスク７Ｃ１はＩ／Ｏユニット２のＨＩＭ２１のレスポンスストローブ信号を負論理で入力する。それにより、Ｉ／Ｏユニット２のＨＩＭ２１のレスポンスストローブ信号がＨレベルであるとき、第一のコマンド入力マスク７Ｃ１の出力がＬレベルに固定される。こうして、コマンド入力バッファ５Ｃからメモリユニット１のＨＩＭ１１のコマンド入力ポートＩＣへの信号が遮断される。
【００５２】
レスポンスストローブＯＲ７ＣＣの出力端はレスポンス出力バッファ６Ｃのストローブ入力端へ結線される。レスポンス出力バッファ６Ｃの出力端はコマンド線ＣＭＤへ結線される。こうして、両ユニットのＨＩＭ１１と２１との少なくともいずれかのストローブ信号がＨレベルであるとき、レスポンス出力バッファ６Ｃはレスポンスをコマンド線ＣＭＤへ送出する。
【００５３】
以下、ホストＨがメモリユニット１のメモリ部１２に対しデータ読み出し命令を発行したときを想定し、上記の複合Ｉ／Ｏカード１０内での信号の流れを説明する。複合Ｉ／Ｏカード１０では、メモリユニット１のＨＩＭ１１とＩ／Ｏユニット２のＨＩＭ２１とが待機状態であり、ホストＨからのコマンド入力を待つ。待機状態のＨＩＭでは、データストローブ出力ポートＣＤとレスポンスストローブ出力ポートＣＣとがいずれもＬレベルに維持される。
【００５４】
ホストＨはコマンド線ＣＭＤを通しデータ読み出し命令を送出する。そのデータ読み出し命令はコマンドゲート４Ｃのコマンド入力バッファ５Ｃを通し、コマンド入力遮断部７Ｃ内の二つのコマンド入力マスク７Ｃ１と７Ｃ２とへ入力される。そのとき、両ユニットのＨＩＭ１１と２１とのレスポンスストローブ出力ポートＣＣが、いずれもＬレベルである。従って、第一のコマンド入力マスク７Ｃ１と第二のコマンド入力マスク７Ｃ２との両方がデータ読み出し命令を通過させる。それにより、データ読み出し命令が両ユニットのＨＩＭ１１と２１とのコマンド入力ポートＩＣへ入力される。
【００５５】
両ユニットのＨＩＭ１１と２１とは互いに独立に、そのデータ読み出し命令をそれぞれ解読する。
ここで、ホストＨは複合Ｉ／Ｏカード１０を一枚のＩＣカードとして認識する。特に、メモリユニット１とＩ／Ｏユニット２とを共通のアドレスでアクセスする。従って、上記のデータ読み出し命令はその宛先アドレスだけからは、メモリユニット１用又はＩ／Ｏユニット２用のいずれかを識別できない。
しかし、メモリユニット１用のデータ読み出し命令／書き込み命令は従来のメモリカード用のものと同じであり、Ｉ／Ｏユニット２用のデータ読み出し命令／書き込み命令は従来のＩ／Ｏカード用のものと同じである。従って、それぞれのコマンド識別情報が異なる。それ故、上記のデータ読み出し命令がメモリユニット１用であることを、それぞれのＨＩＭは他のＨＩＭとは独立に解読できる。
【００５６】
上記のデータ読み出し命令がメモリユニット１用であることが正常に解読されたとき、メモリユニット１のＨＩＭ１１はコマンドの正常受信を示すレスポンス（ＡＣＫ）をレスポンス出力ポートＯＣから送出する。それと同時に、レスポンスストローブ信号をＨレベルにアサートする。一方、Ｉ／Ｏユニット２のＨＩＭ２１はレスポンスを抑制し、レスポンス出力ポートＯＣとレスポンスストローブ出力ポートＣＣとを共にＬレベルに維持する。
【００５７】
メモリユニット１のＨＩＭ１１のレスポンスはレスポンスＯＲ７ＣＯを通し、レスポンス出力バッファ６Ｃの入力端へ入力される。そのとき、レスポンス出力バッファ６Ｃのストローブ入力端は、レスポンスストローブＯＲ７ＣＣを通しレスポンスストローブ信号を入力し、Ｈレベルにアサートされる。従って、レスポンス出力バッファ６Ｃはレスポンスをコマンド線ＣＭＤへ送出する。こうして、メモリユニット１のＨＩＭ１１からホストＨへ、データ読み出し命令のレスポンス（ＡＣＫ）が送出される。
【００５８】
そのとき、レスポンス出力バッファ６Ｃからコマンド線ＣＭＤへ送出されたレスポンスは、コマンド入力バッファ５Ｃを通し、第一のコマンド入力マスク７Ｃ１と第二のコマンド入力マスク７Ｃ２とへも届く。
Ｉ／Ｏユニット２のＨＩＭ２１のレスポンスストローブ出力ポートＣＣはＬレベルに維持されるので、第一のコマンド入力マスク７Ｃ１はレスポンスを、メモリユニット１のＨＩＭ１１のコマンド入力ポートＩＣへ送出する。ここで、レスポンスストローブ信号がＨレベルにアサートされるので、メモリユニット１のＨＩＭ１１はコマンド入力ポートＩＣへ入力されたレスポンスを自身から送出されたものと同定する。それにより、メモリユニット１のＨＩＭ１１は例えば、送出したレスポンスと実際にコマンド線ＣＭＤ上へ送出されたレスポンスとを比較できる。
【００５９】
一方、メモリユニット１のＨＩＭ１１のレスポンスストローブ出力ポートＣＣからＨレベルのレスポンスストローブ信号を入力するので、第二のコマンド入力マスク７Ｃ２はレスポンスを遮断する。その結果、Ｉ／Ｏユニット２のＨＩＭ２１のコマンド入力ポートＩＣへはレスポンスが入力されない。こうして、メモリユニット１のＨＩＭ１１のレスポンスがＩ／Ｏユニット２のＨＩＭ２１の動作を妨げない。
【００６０】
レスポンスの送出から所定時間後、メモリユニット１はメモリ部１２からホストＨへのデータ転送を開始する。そのデータは、例えば所定サイズのパケットごとに、メモリユニット１のＨＩＭ１１のデータ出力ポートＯＤから送出される。それと同時に、メモリユニット１のＨＩＭ１１のデータストローブ信号がＨレベルにアサートされる。一方、Ｉ／Ｏユニット２のＨＩＭ２１では、データ出力ポートＯＤとデータストローブ出力ポートＣＤとが共にＬレベルに維持される。
【００６１】
メモリユニット１のＨＩＭ１１から送出されたデータは、データ出力ＯＲ７ＤＯを通し、データ出力バッファ６Ｄの入力端へ入力される。そのとき、データ出力バッファ６Ｄのストローブ入力端は、データストローブＯＲ７ＤＣを通しＨレベルのデータストローブ信号を入力するので、Ｈレベルにアサートされる。従って、データ出力バッファ６Ｄはデータをデータ線ＤＡＴへ送出する。こうして、メモリユニット１のＨＩＭ１１からホストＨへデータが送出される。
【００６２】
そのとき、データ出力バッファ６Ｄからデータ線ＤＡＴへ送出されたデータは、データ入力バッファ５Ｄを通し、第一のデータ入力マスク７Ｄ１と第二のデータ入力マスク７Ｄ２とへも届く。
Ｉ／Ｏユニット２のＨＩＭ２１のデータストローブ出力ポートＣＤはＬレベルに維持されるので、第一のデータ入力マスク７Ｄ１はデータを、メモリユニット１のＨＩＭ１１のデータ入力ポートＩＤへ送出する。ここで、データストローブ信号がＨレベルにアサートされるので、メモリユニット１のＨＩＭ１１はデータ入力ポートＩＤへ入力されたデータを自身から送出されたものと同定する。それにより、メモリユニット１のＨＩＭ１１は例えば、送出したデータと実際にデータ線ＤＡＴ上へ送出されたデータとを比較できる。
【００６３】
一方、メモリユニット１のＨＩＭ１１のデータストローブ信号はＨレベルにアサートされるので、第二のデータ入力マスク７Ｄ２はデータを遮断する。その結果、Ｉ／Ｏユニット２のＨＩＭ２１のデータ入力ポートＩＤへはデータが入力されない。こうして、メモリユニット１のＨＩＭ１１の出力データがＩ／Ｏユニット２のＨＩＭ２１の動作を妨げない。
【００６４】
以上のように、実施例１による複合Ｉ／Ｏカード１０では、一方のユニットのＨＩＭがレスポンスを送出するとき、そのＨＩＭのレスポンスストローブ信号を利用し、コマンド入力遮断部７Ｃが他のＨＩＭによるそのレスポンスの入力を防ぐ。同様に、一方のユニットのＨＩＭがデータを送出するとき、そのＨＩＭのデータストローブ信号を利用し、データ入力遮断部７Ｄが他のＨＩＭによるそのデータの入力を防ぐ。こうして、一方のＨＩＭから送出された信号による他のＨＩＭの動作に対する妨害が抑制される。それにより、それぞれのＨＩＭによるデータ通信が高い信頼性を確保できる。
【００６５】
更に、上記のコマンド入力遮断部７Ｃ及びデータ入力遮断部７Ｄはいずれも、ＡＮＤ回路とＯＲ回路とにより比較的簡単に構成される。従って、回路規模を小さく維持できると共に、高速なデータ処理を確保できる。
【００６６】
《実施例２》
図２は、本発明の実施例２による複合Ｉ／Ｏカード２０について、ホストＨとの間のデータ交換を示すブロック図である。
この複合Ｉ／Ｏカード２０は実施例１による複合Ｉ／Ｏカード１０と比べ、データ入力遮断部７Ｄに代えデータ出力調停部８Ｄを有し、コマンド入力遮断部７Ｃに代えデータ入力分岐部８Ｃを有する。その他の部分については、両実施例は共通する。従って、図２ではそれらの共通部分に対し、図１での符号と同じ符号を付す。更に、それらの共通部分に対する説明は、実施例１のものを援用する。
【００６７】
実施例２による複合Ｉ／Ｏカード２０の通信モードは、従来のＩＣカードでの第二のモードに相当する。その通信モードでは、データ線ＤＡＴが上り方向信号線として利用され、コマンド線ＣＭＤが下り方向信号線として利用される。それによりデータの送受信が一般に並行する。
データ線ＤＡＴでは、メモリユニット１のＨＩＭ１１又はＩ／Ｏユニット２のＨＩＭ２１からホストＨへ向けてのみ、信号が伝送される。そのとき、信号は例えば、データ線ＤＡＴのいずれかを通しシリアルに伝送される。
コマンド線ＣＭＤでは、ホストＨからメモリユニット１のＨＩＭ１１又はＩ／Ｏユニット２のＨＩＭ２１へ向けてのみ、信号がシリアルに伝送される。
データ線ＤＡＴ及びコマンド線ＣＭＤ上の信号は、コマンド／レスポンス及びデータを含む。
【００６８】
メモリユニット１のＨＩＭ１１及びＩ／Ｏユニット２のＨＩＭ２１はいずれも、データ出力ポートＯＤ、データストローブ出力ポートＣＤ、及びコマンド入力ポートＩＣだけを使用する。
データゲート４Ｄではデータ出力バッファ６Ｄだけが使用される。データ入力バッファ５Ｄと両ユニットのＨＩＭ１１と２１との接続は、データ出力調停部８Ｄ内で切断される。更に、データ出力バッファ６Ｄのストローブ入力端は、例えばデータ出力調停部８ＤによりＨレベルに維持される。それにより、データ出力バッファ６Ｄは、実質上常にデータを通過させる。
【００６９】
コマンドゲート４Ｃではコマンド入力バッファ５Ｃだけが使用される。レスポンス出力バッファ６Ｃと両ユニットのＨＩＭ１１と２１との接続は、データ入力分岐部８Ｃ内で切断される。一方、コマンド入力バッファ５Ｃの出力端は、両ユニットのＨＩＭ１１と２１とのそれぞれのコマンド入力ポートＩＣへ結線される。
【００７０】
データ出力調停部７Ｄは、第一のデータ出力マスク８１、第二のデータ出力マスク８２、及びデータ出力ＯＲ８０を含む。ここで、それぞれのデータ出力マスクは好ましくはＡＮＤ回路であり、データ出力ＯＲ８０はＯＲ回路である。
【００７１】
データ線ＤＡＴ、データゲート４Ｄ、データ出力調停部８Ｄ、及び両ユニットのＨＩＭ１１と２１は、それぞれ次のように接続される。
メモリユニット１のＨＩＭ１１のデータ出力ポートＯＤとＩ／Ｏユニット２のＨＩＭ２１のデータストローブ出力ポートＣＤとは、第一のデータ出力マスク８１の入力端へ結線される。ここで、第一のデータ出力マスク８１はＩ／Ｏユニット２のＨＩＭ２１のデータストローブ信号を負論理で入力する。それにより、Ｉ／Ｏユニット２のＨＩＭ２１のデータストローブ信号がＨレベルであるとき、第一のデータ出力マスク８１の出力がＬレベルに固定される。こうして、メモリユニット１のＨＩＭ１１のデータ出力ポートＯＤからの信号が遮断される。
【００７２】
Ｉ／Ｏユニット２のＨＩＭ２１のデータ出力ポートＯＤとメモリユニット１のＨＩＭ１１のデータストローブ出力ポートＣＤとは、第二のデータ出力マスク８２の入力端へ結線される。ここで、第二のデータ出力マスク８２はメモリユニット１のＨＩＭ１１のデータストローブ信号を負論理で入力する。それにより、メモリユニット１のＨＩＭ１１のデータストローブ信号がＨレベルであるとき、第二のデータ出力マスク８２の出力がＬレベルに固定される。こうして、Ｉ／Ｏユニット２のＨＩＭ２１のデータ出力ポートＯＤからの信号が遮断される。
【００７３】
二つのデータ出力マスク８１と８２との出力端はデータ出力ＯＲ８０の入力端へ結線される。データ出力ＯＲ８０の出力端はデータ出力バッファ６Ｄの入力端へ結線される。こうして、二つのデータ出力マスク８１と８２との出力のＯＲがデータ出力バッファ６Ｄへ入力され、更に、データ線ＤＡＴを通し、ホストＨへ送出される。
【００７４】
以下、ホストＨがメモリユニット１のメモリ部１２に対しデータ読み出し命令を発行したときを想定し、上記の複合Ｉ／Ｏカード２０内での信号の流れを説明する。複合Ｉ／Ｏカード２０では、メモリユニット１のＨＩＭ１１とＩ／Ｏユニット２のＨＩＭ２１とが待機状態であり、ホストＨからのコマンド入力を待つ。待機状態のＨＩＭでは、データストローブ出力ポートＣＤがＬレベルに維持される。
【００７５】
ホストＨはコマンド線ＣＭＤを通し、データ読み出し命令を送出する。そのデータ読み出し命令はコマンドゲート４Ｃのコマンド入力バッファ５Ｃを通しデータ入力分岐部８Ｃへ入力され、そこで二つに分岐される。分岐されたコマンドはそれぞれ、両ユニットのＨＩＭ１１と２１とのコマンド入力ポートＩＣへ入力される。
【００７６】
両ユニットのＨＩＭ１１と２１とは互いに独立に、そのデータ読み出し命令をそれぞれ解読する。
ここで、ホストＨは複合Ｉ／Ｏカード２０を一枚のＩＣカードとして認識する。例えば、データ線ＤＡＴの内、上記の上り方向信号線として利用されるもの以外の一本をカード選択信号線として利用する。ホストＨは複合Ｉ／Ｏカード２０のカード選択信号線をアサートし、データ通信の相手として指定する。従って、上記のデータ読み出し命令はその宛先アドレスを一般に含まない。
しかし、メモリユニット１用のデータ読み出し命令／書き込み命令は従来のメモリカード用のものと同じであり、Ｉ／Ｏユニット２用のデータ読み出し命令／書き込み命令は従来のＩ／Ｏカード用のものと同じである。従って、それぞれのコマンド識別情報が異なる。それ故、上記のデータ読み出し命令がメモリユニット１用であることを、それぞれのＨＩＭは他のＨＩＭとは独立に解読できる。
【００７７】
上記のデータ読み出し命令がメモリユニット１用であることが正常に解読されたとき、メモリユニット１のＨＩＭ１１はＡＣＫを、データ出力ポートＯＤから送出する。それと同時に、データストローブ信号をＨレベルにアサートする。
一方、Ｉ／Ｏユニット２のＨＩＭ２１は、コマンドの受信エラーを示すレスポンス（ＮＡＫ）を、データ出力ポートＯＤから送出する。但し、データストローブ出力ポートＣＤはＬレベルに維持する。
【００７８】
メモリユニット１のＨＩＭ１１のレスポンス（ＡＣＫ）が第一のデータ出力マスク８１へ入力されるとき、Ｉ／Ｏユニット２のＨＩＭ２１のデータストローブ信号はＬレベルである。従って、メモリユニット１のＨＩＭ１１のレスポンスは第一のデータ出力マスク８１を通過し、データ出力ＯＲ８０へ入力される。
一方、Ｉ／Ｏユニット２のＨＩＭ２１のレスポンス（ＮＡＫ）が第二のデータ出力マスク８２へ入力されるとき、メモリユニット１のＨＩＭ１１のデータストローブ信号はＨレベルである。従って、Ｉ／Ｏユニット２のＨＩＭ２１のレスポンスは第二のデータ出力マスク８２で遮断される。
その結果、メモリユニット１のＨＩＭ１１のレスポンス（ＡＣＫ）だけが、データ出力ＯＲ８０、データ出力バッファ６Ｄ、及びデータ線ＤＡＴを順に通り、ホストＨへ送出される。
こうして、両ユニットのＨＩＭ１１と２１との間でそれぞれのレスポンスについて競合が生じるとき、データ出力調停部８Ｄによりレスポンス同士の衝突が回避される。
【００７９】
レスポンスの送出から所定時間後、メモリユニット１はメモリ部１２からホストＨへのデータ転送を開始する。そのデータは、例えば所定サイズのパケットごとに、メモリユニット１のＨＩＭ１１のデータ出力ポートＯＤから送出される。それと同時に、メモリユニット１のＨＩＭ１１のデータストローブ信号がＨレベルにアサートされる。一方、Ｉ／Ｏユニット２のＨＩＭ２１では、データストローブ信号がＬレベルに維持される。
【００８０】
メモリユニット１のＨＩＭ１１のデータ出力ポートＯＤから送出されたデータは、第一のデータ出力マスク８１へ入力される。そのとき、Ｉ／Ｏユニット２のＨＩＭ２１のデータストローブ信号はＬレベルに維持されるので、上記のデータは第一のデータ出力マスク８１を通過し、データ出力ＯＲ８０へ入力される。
一方、メモリユニット１のＨＩＭ１１のデータストローブ信号はＨレベルにアサートされるので、Ｉ／Ｏユニット２のＨＩＭ２１のデータ出力ポートＯＤから送出される信号は、第二のデータ出力マスク８２で遮断される。それにより、両ユニットのＨＩＭ１１と２１とのそれぞれのデータ出力ポートＯＤから送出されるデータが、データ出力バッファ６Ｄで相互に衝突しない。
その結果、メモリユニット１のＨＩＭ１１のデータ出力ポートＯＤから送出されたデータが、データ出力ＯＲ８０、データ出力バッファ６Ｄ、及びデータ線ＤＡＴを順に通過し、ホストＨへ送出される。
【００８１】
以上のように、実施例２による複合Ｉ／Ｏカード２０では、両ユニットのＨＩＭ１１と２１とがホストＨへ向けて送出される信号について競合するとき、それぞれのＨＩＭのストローブ信号を利用し、データ出力調停部８ＤがいずれかのＨＩＭの信号を遮断する。こうして、両方のＨＩＭから送出された信号同士の衝突が回避され、特に衝突によるデータの損傷が防止される。それにより、それぞれのＨＩＭによるデータ通信が高い信頼性を確保できる。
【００８２】
更に、上記のデータ出力調停部８ＤはＡＮＤ回路とＯＲ回路とにより比較的簡単に構成される。従って、回路規模を小さく維持できると共に、高速なデータ処理を確保できる。
【００８３】
実施例２では、データ線ＤＡＴが上り方向信号線として使用されるとき、そのデータ線ＤＡＴへの信号出力についての競合が、データ出力調停部８Ｄにより確実に解消される。その他に、データ線ＤＡＴが双方向信号線として使用されるとき、そのデータ線ＤＡＴへの信号出力について、上記と同様な調停が行われても良い。
【００８４】
上記の実施例はそれぞれ単独の通信モードで機能する。しかし、単一の複合Ｉ／Ｏカードが、実施例１によるデータ入力遮断部７Ｄとコマンド入力遮断部７Ｃと同様な機能部、及び実施例２によるデータ出力調停部８Ｄとデータ入力分岐部８Ｃと同様な機能部を共に含み、それらの機能部を、メモリユニット１のＨＩＭ１１とＩ／Ｏユニット２のＨＩＭ２１との通信モードに応じ切り換えて使用しても良い。そのことは当業者であれば、上記の実施例に基づき容易に理解できるであろう。
【００８５】
【発明の効果】
本発明による一つの観点による複合入出力装置では、データ通信時、二つのホストインタフェースが共通の双方向信号線を利用する。上記の説明から理解される通り、一方のホストインタフェースによる信号出力時、双方向信号線から他方のホストインタフェースへの入力信号が入力遮断部により遮断される。それにより、一方のホストインタフェースの出力信号が他方のホストインタフェースへは入力されない。従って、他方のホストインタフェースへ入力されるノイズが低減する。その結果、ノイズの判別に要するホストインタフェースの負荷が軽減し、更にノイズによる誤動作を回避できる。こうして、上記の複合入出力装置はデータ通信に対し、高い信頼性を確保できる。
【００８６】
上記の複合入出力装置が双方向信号線への出力ゲートとしてトライステート出力バッファを含むとき、それぞれのホストインタフェースは信号出力時、そのトライステート出力バッファに対するストローブ信号をアサートする。上記の複合入出力装置はそのストローブ信号を利用し、一方のホストインタフェースによる信号出力時、他方のホストインタフェースによる信号入力を遮断する。その信号入力の遮断は上記の通り、例えば論理素子による簡単な構成で、確実にかつ迅速に実現できる。
【００８７】
本発明による別の観点による複合入出力装置では、データ通信時、二つのホストインタフェースが共通の信号線を利用する。上記の説明から理解される通り、二つのホストインタフェースが共通の信号線への信号出力について競合するとき、出力調停部が一方の出力信号を遮断する。それにより、出力信号同士の衝突が確実に回避される。特に衝突によるデータの損傷を低減できる。こうして、上記の複合入出力装置は、出力信号の確実な調停により、データ通信に対し高い信頼性を確保できる。
【００８８】
上記の複合入出力装置では、それぞれのホストインタフェースが信号出力時、ストローブ信号を出力する。二つのホストインタフェースの間での信号出力に対する調停ではそのストローブ信号が利用される。それにより、上記の調停を、例えば論理素子による簡単な構成で、確実にかつ迅速に実現できる。
【図面の簡単な説明】
【図１】本発明の実施例１による複合Ｉ／Ｏカード１０について、ホストＨとの間のデータ交換を示すブロック図である。
【図２】本発明の実施例２による複合Ｉ／Ｏカード２０について、ホストＨとの間のデータ交換を示すブロック図である。
【図３】従来のメモリカード１００とホストＨとの間でのデータ交換を示すブロック図である。
【図４】従来のＩ／Ｏカード２００とホストＨとの間でのデータ交換を示すブロック図である。
【図５】従来の複合Ｉ／Ｏカード３００の内部構成の一例を示すブロック図である。
【符号の説明】
１１　　　　メモリユニット１のホストインタフェースモジュール
２１　　　　Ｉ／Ｏユニット２のホストインタフェースモジュール
４Ｄ　　　　データゲート
５Ｄ　　　　データ入力バッファ
６Ｄ　　　　データ出力バッファ
４Ｃ　　　　コマンドゲート
５Ｃ　　　　コマンド入力バッファ
６Ｃ　　　　レスポンス出力バッファ
７Ｄ　　　　データ入力遮断部
７Ｄ１　　　第一のデータ入力マスク
７Ｄ２　　　第二のデータ入力マスク
７ＤＯ　　　データ出力ＯＲ
７ＤＣ　　　データストローブ出力ＯＲ
７Ｃ　　　　コマンド入力遮断部
７Ｃ１　　　第一のコマンド入力マスク
７Ｃ２　　　第二のコマンド入力マスク
７ＣＯ　　　レスポンス出力ＯＲ
７ＣＣ　　　レスポンスストローブ出力ＯＲ
３　　　　バス
ＤＡＴ　　　データ線
ＣＬＫ　　　クロック線
ＶＤＤ　　　電源線
ＶＳＳ　　　グラウンド線
ＣＭＤ　　　コマンド線
【図１】
2004005053.tif 000003
【図２】
2004005053.tif 000004
【図３】
2004005053.tif 000005
【図４】
2004005053.tif 000006
【図５】
2004005053.tif 000007