説明

ホストコントローラ、情報処理装置及び電子機器

【課題】デバイスの種類が増えたとしても、リソースの増大を抑えるホストコントローラ、情報処理装置及び電子機器を提供する。
【解決手段】ホストコントローラは、第j(1≦j≦N、j、Nは正の整数)の挿抜検出回路が、第jのデバイスが挿抜されるデバイス装着部に対応して設けられ第jのデバイスの挿抜状態を検出する第1〜第Nの挿抜検出回路と、前記第1〜第Nの挿抜検出回路の検出結果に基づいて、第1〜第Nのデバイスのうち少なくとも1つが挿入されたか否かを制御マスタに対して通知するデバイス挿抜状態通知回路とを含み、前記デバイス挿抜状態通知回路が、第1〜第Nの挿抜検出回路からの第1〜第Nの挿抜状態変化検出信号、第1〜第Nの挿抜状態安定化検出信号及び第1〜第Nの挿入状態指示信号に基づいて、第1〜第Nのデバイスの少なくとも1つが挿入されたか否かを制御マスタに対して通知する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ホストコントローラ、情報処理装置及び電子機器等に関する。
【背景技術】
【0002】
近年、パーソナルコンピュータやその周辺機器(例えばプリンタ装置、スキャナ装置又は複合機)に限らず、携帯電話機、携帯情報端末(Personal Digital Assistant:PDA)やオーディオプレーヤ等の携帯型の情報機器、ロボット装置、デジタルカメラ、ビデオカメラ、全地球測位システム(Global Positioning System:GPS)装置、テレビ受信装置、プロジェクタ等の電子機器に、データストレージ用途にフラッシュメモリカードが使用される機会が多くなっている。
【0003】
フラッシュメモリカードには、その用途に応じて、種々の規格、バージョンが規定されている。例えば動画データ、静止画データ又は音楽データを携帯するために可搬性に優れ、大容量のフラッシュメモリとして、MMC(MultiMediaCard)規格等に準拠したフラッシュメモリカードがある。また、例えば携帯機器や家庭用電化製品の小型化により小型のコネクタ形状や高速なデータ転送が可能なHDD装置として、CE−ATA(Consumer Electronics-AT Attachment)規格に準拠した記憶装置がある。
【0004】
ところで、フラッシュメモリカード等の記憶デバイスの規格の種類が増え、各規格の利便性が明らかになってくると、電子機器では、複数種類の規格の記憶デバイス、又は複数の記憶デバイスに接続され、これらの記憶デバイスにアクセスできることが要求されている。この場合、活線挿抜が可能な記憶デバイスの電子機器のデバイス装着部への挿抜を検出すると、各規格で定められた通り、記憶デバイスにアクセスするための初期化処理等を行う必要がある。
【0005】
このような活線挿抜が可能なデバイスの挿抜に関する技術については、例えば特許文献1又は特許文献2に記載されている。
【0006】
特許文献1には、例えば抜き差し可能電子周辺カードの挿入或いは抜き差しの発生及び状態を検出してコントローラの状態レジスタに設定し、ホストシステムが該状態レジスタを読み取ることで、抜き差し可能電子周辺カードの挿入或いは抜き差しを検出できるようにした技術が開示されている。
【0007】
特許文献2には、例えば複数のメモリカードと接続する場合に、未使用のメモリカードには信号を供給しないようにすることで、インタフェースの数より多くのメモリカードを選択的に切り替えて使用できるようにした技術が開示されている。
【特許文献1】特開2003−281473号公報
【特許文献2】特開2004−133695号公報
【発明の開示】
【発明が解決しようとする課題】
【0008】
しかしながら、特許文献1に開示された技術では、複数の電子周辺カードの挿入或いは抜き差しの状態を検出しようとすると、各電子周辺カードに対応して状態レジスタを用意する必要がある。そのため、電子周辺カードの数が増えるほど、多くのリソースが必要となるという問題がある。
【0009】
また、特許文献2に開示された技術であっても、複数のメモリカードの挿抜状態を検出する必要があり、メモリカードの数が増えるほど、挿抜状態を検出するために多くのリソースを必要としてしまう事態に変わりがない。
【0010】
このようなデバイスにアクセスするコントローラは、対応するデバイスの個数が増加しても、設計変更が少ないことが望ましい。
【0011】
本発明の幾つかの態様によれば、デバイスの種類が増えたとしても、リソースの増大を抑えるホストコントローラ、情報処理装置及び電子機器を提供できる。
【0012】
また、本発明の幾つかの態様によれば、デバイスの種類が増えたとしても設計変更すべき回路規模の増大を抑えるホストコントローラ、情報処理装置及び電子機器を提供できる。
【課題を解決するための手段】
【0013】
本発明は、活線挿抜が可能なデバイスの挿抜状態を検出し該デバイスへのアクセスを制御するためのホストコントローラであって、
第j(1≦j≦N、j、Nは正の整数)の挿抜検出回路が、第jのデバイスが挿抜されるデバイス装着部に対応して設けられ第jのデバイスの挿抜状態を検出する第1〜第Nの挿抜検出回路と、
前記第1〜第Nの挿抜検出回路の検出結果に基づいて、第1〜第Nのデバイスのうち少なくとも1つが挿入されたか否かを制御マスタに対して通知するデバイス挿抜状態通知回路とを含み、
前記第jの挿抜検出回路が、
前記第jのデバイスの挿抜状態の変化の検出結果を示す第jの挿抜状態変化検出信号、前記第jのデバイスの挿抜状態が安定したか否か示す第jの挿抜状態安定化検出信号、及び所定の期間、前記第jのデバイスの挿入状態が継続していることを示す第jの挿入状態指示信号を出力し、
前記デバイス挿抜状態通知回路が、
前記第1〜第Nの挿抜状態変化検出信号、第1〜第Nの挿抜状態安定化検出信号及び前記第1〜第Nの挿入状態指示信号に基づいて、前記第1〜第Nのデバイスのうち少なくとも1つが挿入されたか否かを前記制御マスタに対して通知するホストコントローラに関係する。
【0014】
本発明においては、デバイス装着部ごとに挿抜検出回路を設け、各挿抜検出回路から挿抜状態変化検出信号、挿抜状態安定化検出信号、及び挿入状態指示信号の3種類の信号を出力させる。そして、デバイス挿抜状態通知回路が、第1〜第Nの挿抜状態変化検出信号、第1〜第Nの挿抜状態安定化検出信号及び第1〜第Nの挿入状態指示信号に基づいて、第1〜第Nのデバイスのうち少なくとも1つが挿入されたか否かを制御マスタに対して通知する。こうすることで、デバイスの種類が増えたとしても、制御レジスタのビット割り当てを増加させる必要性がなくなり、かつ設計変更すべき回路規模の増大を抑えることができるようになる。
【0015】
また本発明に係るホストコントローラでは、
前記第jの挿抜検出回路が、
前記第jの挿入状態指示信号に代えて、所定の期間、前記第jのデバイスの抜去状態が継続していることを示す第jの抜去状態指示信号を出力し、
前記デバイス挿抜状態通知回路が、
前記第1〜第Nの挿抜状態変化検出信号、第1〜第Nの挿抜状態安定化検出信号及び前記第1〜第Nの抜去状態指示信号に基づいて、前記第1〜第Nのデバイスのうち少なくとも1つが挿入されたか否かを前記制御マスタに対して通知することができる。
【0016】
本発明においては、デバイス装着部ごとに挿抜検出回路を設け、各挿抜検出回路から挿抜状態変化検出信号、挿抜状態安定化検出信号、及び抜去状態指示信号の3種類の信号を出力させる。そして、デバイス挿抜状態通知回路が、第1〜第Nの挿抜状態変化検出信号、第1〜第Nの挿抜状態安定化検出信号及び第1〜第Nの抜去状態指示信号に基づいて、第1〜第Nのデバイスのうち少なくとも1つが挿入されたか否かを制御マスタに対して通知する。こうすることで、デバイスの種類が増えたとしても、制御レジスタのビット割り当てを増加させる必要性がなくなり、かつ設計変更すべき回路規模の増大を抑えることができるようになる。
【0017】
また本発明は、
活線挿抜が可能なデバイスの挿抜状態を検出し該デバイスへのアクセスを制御するためのホストコントローラであって、
第j(1≦j≦N、j、Nは正の整数)の挿抜検出回路が、第jのデバイスが挿抜されるスロットに対応して設けられ第jのデバイスの挿抜状態を検出する第1〜第Nの挿抜検出回路と、
前記第1〜第Nの挿抜検出回路の検出結果に基づいて、前記第1〜第Nのデバイスのうち少なくとも1つが挿入されたか否かを制御マスタに対して通知するデバイス挿抜状態通知回路とを含み、
前記第jの挿抜検出回路が、
第jのデバイスの挿抜状態の変化の検出結果を示す第jの挿抜状態変化検出信号を出力すると共に、前記第jのデバイスの挿抜状態が安定したか否かを検出して第jの挿抜状態安定化検出信号を出力し、
前記デバイス挿抜状態通知回路が、
前記第1〜第Nの挿抜状態変化検出信号と第1〜第Nの挿抜状態安定化検出信号とに基づいて、前記第1〜第Nのデバイスのうち少なくとも1つが挿入されたか否かを前記制御マスタに対して通知するホストコントローラに関係する。
【0018】
本発明においては、デバイス装着部ごとに挿抜検出回路を設け、各挿抜検出回路から挿抜状態変化検出信号及び挿抜状態安定化検出信号の2種類の信号を出力させる。そして、デバイス挿抜状態通知回路が、第1〜第Nの挿抜状態変化検出信号及び第1〜第Nの挿抜状態安定化検出信号に基づいて、第1〜第Nのデバイスのうち少なくとも1つが挿入されたか否かを制御マスタに対して通知する。こうすることで、制御マスタは、第1〜第Nのデバイス装着部の挿抜状態が変化したことを認識し、改めてどのデバイス装着部の装着状態が変化したかを判別するようにすればよい。従って、本発明によれば、デバイスの種類が増えたとしても、制御レジスタのビット割り当てを増加させる必要性がなくなり、かつ設計変更すべき回路規模の増大を抑えることができるようになる。
【0019】
また本発明に係るホストコントローラでは、
前記デバイス挿抜状態通知回路が、
前記第1〜第Nのデバイスの挿抜状態に応じて変化する第1〜第Nの挿抜状態指示信号に基づいて、前記第1〜第Nのデバイスの挿抜状態を前記制御マスタに通知する手段を有することができる。
【0020】
本発明によれば、第1〜第Nのデバイス装着部の挿抜状態の変化が通知されたときに、簡素な構成で、制御マスタはが、どのデバイス装着部の装着状態が変化したかを判別できるようになる。
【0021】
また本発明に係るホストコントローラでは、
前記第jの挿抜検出回路が、
前記第jのデバイスの挿入を検出する挿入検出回路と、
前記第jのデバイスの抜去を検出する抜去検出回路とを含み、
前記挿入検出回路の検出結果及び前記抜去検出回路の検出結果に基づいて、前記第jの挿抜状態変化検出信号を出力することができる。
【0022】
また本発明に係るホストコントローラでは、
前記挿入検出回路が、
前記第jのデバイスが挿入されたときにセットされる挿入検出用フリップフロップを有し、
前記挿入検出用フリップフロップのラッチ信号に基づいて、前記挿入検出用フリップフロップのセット信号がパルス化される共に、前記第jの挿抜状態変化検出信号が生成されてもよい。
【0023】
また本発明に係るホストコントローラでは、
前記抜去検出回路が、
前記第jのデバイスが抜去されたときにセットされる抜去検出用フリップフロップを有し、
前記抜去検出用フリップフロップのラッチ信号に基づいて、前記抜去検出用フリップフロップのセット信号がパルス化される共に、前記第jの挿抜状態変化検出信号が生成されてもよい。
【0024】
上記のいずれかの発明によれば、挿入検出用フリップフロップ又は抜去検出用フリップフロップが繰り返しセットされることを防止でき、簡素な構成で挿入検出回路又は抜去検出回路の誤動作を防止できるようになる。
【0025】
また本発明に係るホストコントローラでは、
前記挿入検出用フリップフロップが、
前記第jの挿抜状態安定化検出信号に基づいて初期化されてもよい。
【0026】
また本発明に係るホストコントローラでは、
前記抜去検出用フリップフロップが、
前記第jの挿抜状態安定化検出信号に基づいて初期化されてもよい。
【0027】
上記のいずれかの発明によれば、挿抜状態安定化検出信号により各フリップフロップが初期化されるので、挿抜状態が安定したときに各フリップフロップが必ず初期化される。そのため、挿入状態指示信号又は抜去状態指示信号が安定しない状態で、誤って挿抜状態を認識してしまう事態を確実に回避できる。
【0028】
また本発明は、
上記のいずれか記載のホストコントローラと、
前記ホストコントローラからの通知を受けて、第1〜第Nのデバイス装着部のいずれかに挿入されたデバイスにアクセスするための初期化処理を行う制御マスタと、
を含む情報処理装置に関係する。
【0029】
上記のいずれかの発明によれば、デバイスの種類が増えたとしても、リソースの増大を抑えるホストコントローラが適用された情報処理装置を提供できる。また、上記のいずれかの発明によれば、デバイスの種類が増えたとしても設計変更すべき回路規模の増大を抑えるホストコントローラが適用された情報処理装置を提供できる。
【0030】
また本発明は、
各デバイス装着部にデバイスが挿抜される第1〜第Nのデバイス装着部と、
上記記載の情報処理装置と、
を含む電子機器に関係する。
【0031】
また本発明は、
上記のいずれか記載のホストコントローラを含む電子機器に関係する。
【0032】
上記のいずれかの発明によれば、デバイスの種類が増えたとしても、リソースの増大を抑えるホストコントローラが適用された電子機器を提供できる。また、上記のいずれかの発明によれば、デバイスの種類が増えたとしても設計変更すべき回路規模の増大を抑えるホストコントローラが適用された電子機器を提供できる。
【発明を実施するための最良の形態】
【0033】
以下、本発明の実施の形態について図面を用いて詳細に説明する。なお、以下に説明する実施の形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また以下で説明される構成のすべてが本発明の必須構成要件であるとは限らない。
【0034】
1. 情報処理装置
以下の実施形態では、デバイス(記憶デバイス)としてのメモリカードにアクセスするためのホストコントローラ(カードコントローラ、記憶デバイスコントローラ)が情報処理装置としてのホストシステムに適用されているものとする。
【0035】
図1に、本実施形態における情報処理装置が適用された電子機器の構成例のブロック図を示す。
【0036】
図1の構成を有する電子機器としては、例えばパーソナルコンピュータ、その周辺機器(例えばプリンタ装置、スキャナ装置又は複合機)、携帯電話機、携帯情報端末、オーディオプレーヤ、ロボット装置、デジタルカメラ、ビデオカメラ、GPS装置、テレビ受信装置、プロジェクタ等がある。
【0037】
電子機器10は、情報処理装置としてのホストシステム100と、第1〜第N(Nは、正の整数)のデバイスとしてのメモリカード(広義にはデバイス又は記憶デバイス)200〜200とを含み、ホストシステム100と第1〜第Nのメモリカード200〜200の各メモリカードとがカードバス(カードバス20〜20)を介して接続されている。なお、ホストシステム100と第1〜第Nのメモリカード200〜200の各メモリカードとが、共通バスとしてのカードバスを介して接続されてもよい。ここで、各メモリカードは、MMC(MultiMediaCard)規格又はCE−ATA(Consumer Electronics-AT Attachment)規格等に準拠したデバイスとすることができる。
【0038】
電子機器10では、各メモリカードに対する制御コマンドを発行することにより、各メモリカードにデータを書き込んだり、各メモリカードからデータを読み出したりすることができる。各メモリカードは、例えばフラッシュメモリカード、I/OデバイスやHDD装置であってもよい。
【0039】
ホストシステム100は、制御マスタ126と、カードコントローラ(ホストコントローラ、記憶デバイスコントローラ、メモリコントローラ)130とを含む。制御マスタ26は、中央演算処理装置(Central Processing Unit:CPU)110、メモリ120を含む。CPU110、メモリ120及びカードコントローラ130は、システムバス122を介して接続されている。従って、CPU110は、システムバス122を介してメモリ120又はカードコントローラ130にアクセスできる。そして、CPU110が、メモリ120に格納されたプログラムを読み込んで該プログラムに対応した処理を実行する。より具体的には、制御マスタ126は、カードコントローラ130からの通知を受けて、第1〜第Nのデバイス装着部のいずれかに挿入されたデバイスにアクセスするための初期化処理を行うことができる。
【0040】
カードコントローラ130と第1〜第Nのメモリカード200〜200とは、カードバスを介して接続され、CPU110が、カードコントローラ130から第1〜第Nのメモリカード200〜200に対して発行する制御コマンドを生成する制御を行う。第1〜第Nのメモリカード200〜200の各メモリカードを「デバイス」と定義すると、カードコントローラ130はホスト側を制御する「ホストコントローラ」と定義することができる。
【0041】
各カードバスは、転送クロックCLKが伝送されるクロックライン、制御コマンドCMD及びレスポンスが伝送されるコマンドライン、例えば4ビット(又は8ビット)の転送データDAT0−DAT3が伝送されるデータラインを有する。カードコントローラ130が、転送クロックCLKに同期してコマンドCMDを発行する。そして、転送クロックCLKに同期して例えば4ビットの転送データDAT0−DAT3が送受信される。また、コマンドCMDの種類によっては、各メモリカードが制御コマンドCMDに対するレスポンスとして、例えばコマンドラインを用いてレスポンスを返すことができる。
【0042】
ここで、本実施形態のカードコントローラ130は、例えばMMC規格等のメモリーカード規格に準拠したメモリーカードや、CE−ATA規格に準拠したHDD装置等に適用できる。
【0043】
以下では、第1〜第Nのメモリカード200〜200の各メモリカードがMMC規格に準拠したフラッシュメモリカードであり、各カードバスにはMMC規格に準拠したシーケンスで制御コマンドやレスポンス、転送データの送受信が行われる場合を例に説明する。
【0044】
このとき、カードバス20(1≦j≦N、jは正の整数)のクロックライン、コマンドライン及びデータラインのうち双方向の信号ラインはプルアップされてもよい。例えば、コマンドライン及びデータラインが双方向の信号ラインである場合には、コマンドライン及びデータラインの各ラインはプルアップされてもよい。具体的には、コマンドラインは、所与の高電位側電源線との間にプルアップ抵抗を介してプルアップ接続されてもよく、同様に、データラインの各ラインは、所与の高電位側電源線との間にそれぞれプルアップ抵抗を介してプルアップ接続されてもよい。なお、クロックラインは、カードコントローラ130側の図示しないクロックドライバによりプッシュプル動作で駆動される。このクロックラインも、他のラインと同様にプルアップ接続されてもよい。
【0045】
MMC規格の第jのメモリカード200にアクセスする場合、データ転送が不要な期間に転送クロックCLKを停止させることで消費電力を削減できる。その一方、転送クロックCLKを停止させることで、カードコントローラ130からのコマンドの送出、第jのメモリカード200からのレスポンスの受信、データラインを介してデータの送受信ができなくなる。
【0046】
図2に、第jのメモリカード200の構成例のブロック図を示す。
【0047】
図2では、第jのメモリカード200について説明するが、他のメモリカードも同様である。
【0048】
第jのメモリカード200は、カードI/F回路210、PLL回路212、カードI/F制御回路220、カード制御レジスタ部230、メモリI/F回路240、メモリコア部250を含む。
【0049】
カードI/F回路210は、カードバス20を伝送される信号のインタフェース処理を行う。カードI/F制御回路220は、カードI/F回路210を制御してカードバス20に信号を出力する制御を行ったり、カードバス20からの信号を入力する制御を行ったりする。カードI/F回路210は、転送クロックCLKに同期して入力された転送データやコマンドデータを図示しないバッファにバッファリングしたり、該バッファにバッファリングされた転送データやレスポンスデータを転送クロックCLKに同期して出力したりする。
【0050】
PLL回路212は、図示しない発振器からの発振出力を逓倍して、転送クロックCLKとは異なる内部クロックを生成する。PLL回路212によって生成された内部ブロックは、第jのメモリカード200の各部に供給され、第jのメモリカード200は内部クロックに同期して動作する。より具体的には、カードI/F回路210にバッファリングされたデータは、内部クロックに同期して読み出されて第jのメモリカード200の内部に取り込まれる。また、第jのメモリカード200の内部から出力されるデータは、内部クロックに同期してカードI/F回路210でバッファリングされ、転送クロックCLKに同期して外部に出力される。従って、第jのメモリカード200は、転送クロックCLKの供給が停止されたとしても、第jのメモリカード200の内部で、内部クロックに同期してメモリにアクセスできるようになっている。即ち、第jのメモリカード200は、転送クロックに同期して入力されたコマンドに対しデータのアクセスをその内部クロックに同期して行うことができる。
【0051】
カード制御レジスタ部230は、複数の制御レジスタを有する。例えば、カード制御レジスタ部230は、動作条件レジスタ(Operation Conditions Resister:OCR)、カード識別レジスタ(Card IDentification register:CID)、カード特性データレジスタ(Card-Specific Data register:CSD)、相対カードアドレスレジスタ(Relative Card Address register:RCA)、ドライバステージレジスタ(Driver Stage Register:DSR)等を含む。
【0052】
カードI/F制御回路220は、カード制御レジスタ部230の設定データに基づいて第jのメモリカード200の各部を制御すると共に、その制御結果をカード制御レジスタ部230に格納する制御を行う。
【0053】
メモリI/F回路240は、カードI/F制御回路220の制御により、メモリコア部250のメモリ素子にデータを書き込んだり、メモリコア部250のメモリ素子からデータを読み出したりする制御を行う。
【0054】
メモリコア部250は、複数のメモリ素子を有する。メモリI/F回路240は、予め割り当てられたアドレスに対応したメモリ素子からデータを読み出したり、該アドレスに対応したメモリ素子にデータを書き込んだりすることができる。
【0055】
以下では、第1〜第Nのメモリカード200〜200とカードコントローラ130とが、共通バスであるカードバスを介して接続されるものとする。
【0056】
2. カードコントローラ(ホストコントローラ)
2.1 第1の実施形態
図3に、第1の実施形態におけるカードコントローラの構成要部のブロック図の一例を示す。図3において、図1と同一部分には同一符号を付し、適宜説明を省略する。
【0057】
カードコントローラ130は、各記憶デバイス装着部にメモリカードが活線挿抜される第1〜第Nの記憶デバイス装着部(ソケット)840〜840からの記憶デバイス検出信号(挿抜状態指示信号)CD_Sig#1〜CD_Sig#Nが入力され、第1〜第Nの記憶デバイス装着部(ソケット)840〜840のいずれかにメモリカードが挿抜されたことを検出すると、制御マスタ126に通知する。
【0058】
即ち、カードコントローラ130は、どの記憶デバイス装着部にメモリカードが挿入されているかを検出するのではなく、第1〜第Nの記憶デバイス装着部840〜840にメモリカードが全く挿入されていないのか、或いは1以上のメモリカードが挿入されているかを検出する。
【0059】
この通知を受けた制御マスタ126は、例えば挿入されたメモリカードに対し、カードコントローラ130を介してMMC規格で規定された初期化処理を行う。また、上記の通知を受けた制御マスタ126は、例えば抜去(除去、抜き取り)されたメモリカードに対し、カードコントローラ130に対して所与の抜去処理を行う。この抜去処理としては、例えば抜去されたデバイス装着部のメモリカードをアクセス対象から除外する処理がある。
【0060】
このようなカードコントローラ130は、第1〜第Nの挿抜検出回路300〜300と、デバイス挿抜状態通知回路350と、カード制御部360とを含む。
【0061】
第1〜第Nの挿抜検出回路300〜300はそれぞれ同様の構成を有し、第j(1≦j≦N、j、Nは正の整数)の挿抜検出回路が、第jのメモリカード200(第jのデバイス)が挿抜される第jの記憶デバイス装着部(第jのデバイス装着部)840に対応して設けられる。第jの挿抜検出回路は、第jの記憶デバイス装着部840からの記憶デバイス検出信号CD_Sig#jに基づいて、第jのメモリカード200の挿抜状態の変化の検出結果を示す第jの挿抜状態変化検出信号CardChg#j、第jのメモリカード200の挿抜状態が安定したか否か示す第jの挿抜状態安定化検出信号StateStable#j、及び所定の期間(例えば10ミリ秒)、第jのメモリカード200の挿入状態が継続していることを示す第jの挿入状態指示信号Inserted#jを出力する。
【0062】
デバイス挿抜状態通知回路350は、第1〜第Nの挿抜検出回路300〜300の検出結果に基づいて、第1〜第Nのメモリカード200〜200(第1〜第Nのデバイス)のうち少なくとも1つが挿入されたか否かを制御マスタ126に対して通知する。より具体的には、デバイス挿抜状態通知回路350は、第1〜第Nの挿抜状態変化検出信号CardChg#1〜CardChg#N、第1〜第Nの挿抜状態安定化検出信号StateStable#1〜StateStable#N及び第1〜第Nの挿入状態指示信号Inserted#1〜Inserted#Nに基づいて、第1〜第Nのメモリカード200〜200のうち少なくとも1つが挿入されたか否かを制御マスタ126に対して通知する。デバイス挿抜状態通知回路350は、例えば制御マスタ126に対して割り込み信号を出力することで上記の通知を行ったり、制御レジスタのフラグを設定することで、ポーリング動作を行う制御マスタ126に対して上記の通知を行ったりすることができる。
【0063】
カード制御部360は、第1〜第Nの記憶デバイス装着部840〜840に接続されるカードバスを制御する。より具体的には、カード制御部360は、制御マスタ126で実行される上位アプリケーションプログラムからの制御コマンドの発行指示を受けると、カードバスのクロックライン、データライン及びコマンドラインを制御して、メモリカードに対して制御コマンドを発行する。そして、カード制御部360は、メモリカードからのレスポンスやデータを受信する制御を行って、制御マスタ126がカードコントローラ130から受信データを取り込んだりする。
【0064】
図4に、図3のカードコントローラ130のハードウェア構成例を示す。
【0065】
カードコントローラ130は、制御インタフェース(InterFace:I/F)回路132、FIFO(First-In First-Out)I/F回路134、コントローラ制御レジスタ部136、クロック制御部138、コマンド制御部140、データ制御部146、ドライバ部150、記憶デバイス検出回路152を含む。コマンド制御部140は、コマンドシーケンサ142を含む。データ制御部146は、データシーケンサ148を含む。
【0066】
制御I/F回路132は、システムバス122を介してCPU110やメモリ120との間で送受信される制御信号や制御データのインタフェース処理を行う。CPU110は、制御I/F回路132を介してコントローラ制御レジスタ部136の各制御レジスタに制御データを設定できる。
【0067】
FIFOI/F回路134は、システムバス122を介してCPU110やメモリ120との間で送受信される制御信号や制御データのインタフェース処理を行う。システムバス122を介してメモリ120から読み出されたデータ(ライトデータ)は、FIFOI/F回路134の図示しないFIFO(バッファ)においてバッファリングされた後、データ制御部146に供給される。また、メモリカードから読み出されたデータ(リードデータ)は、FIFOI/F回路134の図示しないFIFO(バッファ)においてバッファリングされた後に、システムバス122を介してCPU110又はメモリ120に出力される。
【0068】
コントローラ制御レジスタ部136は、1又は複数の制御レジスタを有し、各制御レジスタにはカードコントローラ130を制御するための制御データが設定される。コントローラ制御レジスタ部136の各制御レジスタに設定された制御データに対応した制御信号に基づいて、カードコントローラ130の各部が制御される。制御マスタ126からのコマンドの発行指示CMD_Goは、コントローラ制御レジスタ部136のコマンド発行指示レジスタにセットされることでカードコントローラ130のコマンド制御部140及びデータ制御部146にコマンド発行指示が通知される。
【0069】
また、制御I/F回路132又はコントローラ制御レジスタ部136は、CPU110(制御マスタ126)に対して割り込み信号を発生する割り込み発生部(図示せず)を有する。
【0070】
クロック制御部138は、カードバスのクロックラインを制御する。より具体的には、クロック制御部138は、カードコントローラ130の各部にクロックを供給すると共に、カードバスを構成するクロックラインに転送クロックCLKを出力する制御を行う。
【0071】
コマンド制御部140は、カードバスのコマンドラインを制御する。より具体的には、コマンド制御部140のコマンドシーケンサ142は、コントローラ制御レジスタ部136の制御レジスタの制御データ(コマンドデータ)に基づいて、カードバスを構成するコマンドラインを介してメモリカードに対してコマンドを発行する制御を行う。コマンドシーケンサ142は、コマンドの発行が完了すると、コマンド完了通知をコントローラ制御レジスタ部136及びデータ制御部146に出力する。コントローラ制御レジスタ部136に入力されたコマンド完了通知に基づき、制御マスタ126に対してコマンド完了通知割り込みを発行する。また、コマンドシーケンサ142は、該コマンドに対応するメモリカードからのレスポンスを受信する制御を行う。コマンドシーケンサ142において受信されたレスポンスは、レスポンスデータとしてコントローラ制御レジスタ部136に出力される。
【0072】
図5(A)に、コマンド制御部140により送信されるコマンドの説明図を示す。図5(B)に、コマンド制御部140により受信されるレスポンスの説明図を示す。
【0073】
コマンドは、スタートビット「S」が「0」、エンドビット「E」が「1」で挟まれた所定ビットのコマンドデータである。図5(A)に示すようなコマンドが、コマンドラインを介して送信される。
【0074】
レスポンスは、スタートビット「S」が「0」、エンドビット「E」が「1」で挟まれた所定ビットのレスポンスデータである。図5(B)に示すようなレスポンスが、コマンドラインを介して受信される。
【0075】
図4において、データ制御部146は、カードバスのデータラインを制御する。より具体的には、データ制御部146のデータシーケンサ148は、コントローラ制御レジスタ部136の制御レジスタの制御データに基づいて、カードバスを構成するデータラインを介してメモリカードとの間でデータを送受信する制御を行う。データ制御部146においてデータ転送完了が検出されると、コントローラ制御レジスタ部136に対してデータ転送完了通知を出力する。コントローラ制御レジスタ部136に入力されたデータ転送完了通知に基づき、制御マスタ126に対してデータ転送完了通知割り込みを発行する。
【0076】
ドライバ部150は、コマンドシーケンサ142の制御結果に基づいてコマンドラインの信号の入出力制御を行う。また、データシーケンサ148の制御結果に基づいてデータラインの信号の入出力制御を行う。
【0077】
記憶デバイス検出回路152は、第1〜第Nの記憶デバイス装着部840〜840からの記憶デバイス検出信号xCD_Sig#1〜xCD_Sig#Nに基づいて、第1〜第Nの記憶デバイス装着部840〜840の少なくとも1つにメモリカードが挿抜されたか否かを検出する。ここで、xCD_Sig#1は、CD_Sig#1の論理反転信号である。
【0078】
記憶デバイス検出回路152の検出信号は、記憶デバイス検出結果としてコントローラ制御レジスタ部136に通知される。そして、制御I/F回路132又はコントローラ制御レジスタ部136は、CPU110(制御マスタ126)に対して上記の通知を行うための割り込み信号を発生させる。
【0079】
記憶デバイス検出回路152は、図3の第1〜第Nの挿抜検出回路300〜300及びデバイス挿抜状態通知回路350の機能を有する。制御I/F回路132、FIFOI/F回路134、コントローラ制御レジスタ部136、クロック制御部138、コマンド制御部140、データ制御部146及びドライバ部150は、図3のカード制御部360の機能を有する。
【0080】
図6に、図4の記憶デバイス検出回路152の構成例の回路図を示す。
【0081】
図6では、説明を簡略化するためにNが「3」であるものとし、図3と同一部分には同一符号を付し、適宜説明を省略する。
【0082】
記憶デバイス検出回路152は、第1〜第3の挿抜検出回路300〜300、検出用タイマ370を含む。第1〜第3の挿抜検出回路300〜300のそれぞれの構成は同様であり、検出用タイマ370により生成された検出用クロックが第1〜第3の挿抜検出回路300〜300に入力される。この検出用クロックは、メモリカードの挿抜状態が安定しているか否かを検出するためのクロックである。
【0083】
第1の挿抜検出回路300には、第1の記憶デバイス装着部840からの記憶デバイス検出信号xCD_Sig#1が入力される。例えば第1の記憶デバイス装着部840において、記憶デバイス検出信号の信号線が、プルアップ接続される。そして、メモリカードの挿入により該信号線がGNDレベルに電気的に接続されることで、記憶デバイス検出信号がLレベルに駆動される。そのため、第1の記憶デバイス装着部840のメモリカードの挿抜状態が抜去状態(除去状態)のとき、記憶デバイス検出信号xCD_Sig#1はHレベルとなり、挿入状態のとき、記憶デバイス検出信号xCD_Sig#1はLレベルとなる。
【0084】
第1の挿抜検出回路300は、記憶デバイス検出信号xCD_Sig#1を用いて(より具体的には、記憶デバイス検出信号xCD_Sig#1及び検出用クロックに基づいて)、第1の挿抜状態変化検出信号irq_AsyncCardChg#1、第1の挿抜状態安定化検出信号CardStateStable#1、及び第1の挿入状態指示信号CardInserted#1を生成する。第1の挿抜状態変化検出信号irq_AsyncCardChg#1は、第1のメモリカード200の挿抜状態の変化の検出結果を示し、挿抜状態が変化したとき正論理のパルス信号となる。第1の挿抜状態安定化検出信号CardStateStable#1は、第1のメモリカード200が挿入された状態又は抜去された状態が、検出クロックの所定クロック数の期間、継続しているときに、Hレベルとなる信号である。第1の挿入状態指示信号CardInserted#1は、第1のメモリカード200が挿入された状態が、検出クロックの所定クロック数の期間、継続しているときに、Hレベルとなる信号である。
【0085】
同様に、第2の挿抜検出回路300は、記憶デバイス検出信号xCD_Sig#2を用いて(より具体的には、記憶デバイス検出信号xCD_Sig#2及び検出用クロックに基づいて)、第2の挿抜状態変化検出信号irq_AsyncCardChg#2、第2の挿抜状態安定化検出信号CardStateStable#2、及び第2の挿入状態指示信号CardInserted#2を生成する。第3の挿抜検出回路300は、記憶デバイス検出信号xCD_Sig#3を用いて(より具体的には、記憶デバイス検出信号xCD_Sig#3及び検出用クロックに基づいて)、第3の挿抜状態変化検出信号irq_AsyncCardChg#3、第3の挿抜状態安定化検出信号CardStateStable#3、及び第3の挿入状態指示信号CardInserted#3を生成する。
【0086】
デバイス挿抜状態通知回路350は、第1〜第3の挿抜検出回路300〜300からの第1〜第3の挿抜状態変化検出信号irq_AsyncCardChg#1〜irq_AsyncCardChg#3の論理和演算結果を、コントローラ制御レジスタ部136の制御レジスタに設定する。これにより、制御I/F回路132又はコントローラ制御レジスタ部136は、制御マスタ126に対して、メモリカードの挿抜状態の変化を割り込み通知できる。
【0087】
またデバイス挿抜状態通知回路350は、第1〜第3の挿抜検出回路300〜300からの第1〜第3の挿抜状態安定化検出信号CardStateStable#1〜CardStateStable#3の論理積演算結果を、コントローラ制御レジスタ部136の制御レジスタに設定する。これにより、制御マスタ126は、第1〜第3の記憶デバイス装着部840〜840のメモリカードの挿抜状態が安定していること(第1〜第3の記憶デバイス装着部840〜840のいずれにも挿抜状態の変化がないこと)を認識できる。
【0088】
更に、デバイス挿抜状態通知回路350は、第1〜第3の挿抜検出回路300〜300からの第1〜第3の挿入状態指示信号CardInserted#1〜CardInserted#3の論理和演算結果を、コントローラ制御レジスタ部136の制御レジスタに設定する。これにより、制御マスタ126は、いずれかのメモリカードが挿入状態であることを認識できる。
【0089】
更にまた、デバイス挿抜状態通知回路350は、第1〜第3の挿抜検出回路300〜300からの第1〜第3の挿抜状態安定化検出信号CardStateStable#1〜CardStateStable#3の論理積演算結果が変化タイミングで発生するパルス信号を、コントローラ制御レジスタ部136の制御レジスタに設定する。これにより、制御I/F回路132又はコントローラ制御レジスタ部136は、制御マスタ126に対して、メモリカードの挿抜の安定状態の変化を割り込み通知できる。
【0090】
次に、図6の第1〜第3の挿抜検出回路300〜300の構成例について説明する。第1〜第3の挿抜検出回路300〜300のそれぞれは同様の構成を有し、以下に示す共通の挿抜検出回路を有する。
【0091】
図7に、図6の第1〜第3の挿抜検出回路300〜300に共通の挿抜検出回路の構成例の回路図を示す。
【0092】
第1〜第3の挿抜検出回路300〜300に共通の挿抜検出回路300は、記憶デバイス装着部に活線挿抜されるメモリカードの挿入を検出する挿入検出回路310と、記憶デバイス装着部に活線挿抜されるメモリカードの抜去を検出する抜去検出回路320とを含む。そして、挿抜検出回路300は、挿入検出回路310の検出結果及び抜去検出回路320の検出結果に基づいて、挿抜状態変化検出信号irq_AsyncCardChgを出力する。
【0093】
更に、挿抜検出回路300は、挿抜状態安定検出回路330を含み、記憶デバイス検出信号である挿抜状態指示信号xCD_Sigの遅延信号xCD_SigDと、挿抜状態変化検出信号irq_AsyncCardChgの反転信号xirq_AsyncCardChgとに基づいて、挿入状態指示信号CardInserted、挿抜状態安定化検出信号CardStateStableを出力すると共に、信号sync_ins、Pulse_CardStateStabledを生成する。即ち、挿抜状態安定検出回路330が、所定の期間、メモリカードの挿入状態が継続していることを示す挿入状態指示信号CardInsertedや、メモリカードの挿抜状態が安定したか否か示す挿抜状態安定化検出信号CardStateStableを生成できる。
【0094】
挿入検出回路310は、挿入検出用フリップフロップ312を有する。挿入検出用フリップフロップ312は、リセット信号xResetによりリセットされると共に、挿抜状態指示信号xCD_Sigによりセットされる。より具体的には、挿抜状態指示信号xCD_Sigにより挿入状態が指定され、且つ信号sync_insにより所定期間だけ非挿入状態が安定していることを条件に、挿入検出用フリップフロップ312がセットされる。挿入検出用フリップフロップ312がリセット(クリア)された後に再セットを防止するために、挿入状態指示信号CardInserted(第jの挿入状態指示信号)である信号sync_insを用いて、挿抜状態指示信号xCD_Sigがマスクされる。
【0095】
また、挿入検出用フリップフロップ312のセット信号set_insは、挿入検出用フリップフロップ312のラッチ信号async_insによりパルス化される。そのため、セット信号set_insは、ラッチ信号async_insを遅延させた信号によりマスクされることが望ましい。また、挿入検出用フリップフロップ312のラッチ信号async_insに基づいて、挿抜状態変化検出信号irq_AsyncCardChgが生成される。
【0096】
抜去検出回路320は、抜去検出用フリップフロップ322を有する。抜去検出用フリップフロップ322は、リセット信号xResetによりリセットされると共に、挿抜状態指示信号xCD_Sigの反転信号によりセットされる。より具体的には、挿抜状態指示信号xCD_Sigにより抜去状態が指定され、且つ信号sync_insにより所定期間だけ挿入状態が安定していることを条件に、抜去検出用フリップフロップ322がセットされる。抜去検出用フリップフロップ322がリセット(クリア)された後に再セットを防止するために、挿入状態指示信号CardInserted(第jの挿入状態指示信号)である信号sync_insの反転信号を用いて、挿抜状態指示信号xCD_Sigの反転信号がマスクされる。
【0097】
また、抜去検出用フリップフロップ322のセット信号set_rmvは、抜去検出用フリップフロップ322のラッチ信号async_rmvによりパルス化される。そのため、セット信号set_rmvは、ラッチ信号async_rmvを遅延させた信号によりマスクされることが望ましい。また、抜去検出用フリップフロップ322のラッチ信号async_rmvに基づいて、挿抜状態変化検出信号irq_AsyncCardChgが生成される。
【0098】
なお、図7では、挿抜状態指示信号xCD_Sigの遅延信号に基づいて、挿入検出回路310及び抜去検出回路320が、挿入検出用フリップフロップ312及び抜去検出用フリップフロップ322がセットされる。そして、挿抜検出回路は、セット信号set_ins、set_rmvに基づいて、挿抜状態変化検出信号irq_AsyncCardChgを出力する。
【0099】
そして、挿入検出用フリップフロップ312は、信号Pulse_CardStateStabledにより初期化(クリア)される。また、抜去検出用フリップフロップ322もまた、信号Pulse_CardStateStabledにより初期化(クリア)される。信号Pulse_CardStateStabledは、信号sync_ins、sync_rmvに基づいて生成されるため、挿入検出用フリップフロップ312は、信号sync_ins(挿入状態指示信号)に基づいて初期化され、抜去検出用フリップフロップ322は、信号sync_rmv(抜去状態指示信号)に基づいて初期化されるということができる。抜去検出用フリップフロップ322のセット信号set_rmvを、信号sync_insを用いて生成することで、メモリカードの挿入後に該メモリカードの除去を検出できる。
【0100】
図8に、図7の挿抜状態安定検出回路330の構成例の回路図を示す。
【0101】
挿抜状態安定検出回路330には、検出用タイマ370から検出用クロックCLK100が入力される。挿抜状態安定検出回路330は、第1及び第2のフィルタ回路332、334、挿入検出パルス発生回路336、抜去検出パルス発生回路338を含む。
【0102】
第1のフィルタ回路332は、複数のフリップフロップにより構成されるシフトレジスタを有する。このシフトレジスタは、各フリップフロップが挿抜状態変化検出信号irq_AsyncCardChgの反転信号xirq_AsyncCardChgによりリセットされる、直列に接続された例えば5個のフリップフロップを含む。第1のフィルタ回路332には、挿抜状態指示信号xCD_Sigの遅延信号が、検出クロックCLK100の5クロック分に相当する期間だけ同じHレベルのとき、Hレベルの出力信号を出力する。この出力信号は、挿入状態指示信号CardInserted(信号sync_ins)となる。挿入検出パルス発生回路336は、挿入状態指示信号CardInserted(信号sync_ins)の変化タイミングでパルス信号を発生させる。
【0103】
第2のフィルタ回路334は、複数のフリップフロップにより構成されるシフトレジスタを有する。このシフトレジスタは、各フリップフロップが挿抜状態変化検出信号irq_AsyncCardChgの反転信号xirq_AsyncCardChgによりリセットされる、直列に接続された例えば5個のフリップフロップを含む。第2のフィルタ回路334には、挿抜状態指示信号xCD_Sigの遅延信号が、検出クロックCLK100の5クロック分に相当する期間だけ同じHレベルのとき、Hレベルの出力信号を出力する。この出力信号は、抜去状態指示信号(信号sync_rmv)となる。抜去検出パルス発生回路338は、抜去状態指示信号(信号sync_rmv)の変化タイミングでパルス信号を発生させる。
【0104】
信号Pulse_CardStateStabledは、挿入検出パルス発生回路336の出力と、抜去検出パルス発生回路338の出力との論理和演算結果として出力される。
【0105】
更に、図8では、所与のマスク期間を指定するマスク信号xmask_stableを用いて、sync_ins、sync_rmvの論理和演算結果を上記のマスク期間だけマスクした信号に基づいて、挿抜状態安定化検出信号CardStateStableが生成される。
【0106】
このように、信号Pulse_CardStateStabledは、信号sync_ins、sync_rmvの論理和演算結果に基づいて生成されるため、図7の挿入検出用フリップフロップ312、抜去検出用フリップフロップ322のセット信号もリセットされ、挿入状態又は抜去状態が変化した後に安定したこと条件に、いずれか一方のみがセットされるようになっている。従って、挿抜状態指示信号xCD_Sigが安定しない状態で、誤って挿抜状態を認識してしまう事態を確実に回避できる。
【0107】
図9に、図6の記憶デバイス検出回路152の動作例のタイミング図を示す。
【0108】
図9では、記憶デバイス装着部におけるメモリカードの抜去状態から挿入状態に変化し、安定期間が経過した後に挿入状態から抜去状態に変化するときのタイミング例を示す。
【0109】
記憶デバイス装着部にメモリカードが挿入されると、挿抜状態指示信号xCD_SigがチャタリングによりHレベルとLレベルとを繰り返す(t1)。挿抜状態指示信号xCD_Sigが一旦Lレベルに変化すると、信号async_insがHレベルに変化し、挿入検出用フリップフロップ312のセット信号set_insのパルスが生成される(t2)。その後、挿抜状態指示信号xCD_Sigにより、信号sync_rmvがLレベルに変化する。信号sync_insのパルスが生成されることで、挿抜状態変化検出信号irq_AsyncCardChgのパルスが出力されて、コントローラ制御レジスタ部136に通知される。コントローラ制御レジスタ部136の制御レジスタAsyncCardChgはセットされ、制御レジスタCardStateStableはリセットされる(t3)。なお、コントローラ制御レジスタ部136の制御レジスタAsyncCardChgをセットすることで、制御マスタ126に対する割り込み通知が行われる。この割り込み通知を受けた制御マスタ126は、コントローラ制御レジスタ部136の制御レジスタAsyncCardChgをリセットする。
【0110】
その後、挿抜状態指示信号xCD_Sigのレベルが安定し、所与の安定期間(例えば検出クロックCLK100の5クロック分に相当する期間)T10が経過すると、信号sync_insがHレベルに変化し、信号Pulse_CardStateStabledのパルスが生成される(t4)。これにより、挿入検出用フリップフロップ312はクリアされると共に、挿抜状態安定化検出信号CardStateStableがHレベルに変化する(t5)。
【0111】
次に、記憶デバイス装着部からメモリカードが抜去されると、挿抜状態指示信号xCD_SigがチャタリングによりHレベルとLレベルとを繰り返す(t6)。挿抜状態指示信号xCD_Sigが一旦Hレベルに変化すると、信号async_rmvがHレベルに変化し、抜去検出用フリップフロップ322のセット信号set_rmvのパルスが生成される(t7)。その後、挿抜状態指示信号xCD_Sigにより、信号sync_insがLレベルに変化する。信号sync_rmvのパルスが生成されることで、挿抜状態変化検出信号irq_AsyncCardChgのパルスが出力されて、コントローラ制御レジスタ部136に通知される。コントローラ制御レジスタ部136の制御レジスタAsyncCardChgはリセットされ、制御レジスタCardStateStableはリセットされる(t8)。
【0112】
その後、挿抜状態指示信号xCD_Sigのレベルが安定し、所与の安定期間(例えば検出クロックCLK100の5クロック分に相当する期間)T11が経過すると、信号sync_rmvがHレベルに変化し、信号Pulse_CardStateStabledのパルスが生成される(t9)。これにより、抜去検出用フリップフロップ322はクリアされると共に、挿抜状態安定化検出信号CardStateStableがHレベルに変化する(t10)。
【0113】
図10に、図6の記憶デバイス検出回路152の他の動作例のタイミング図を示す。
【0114】
図10では、記憶デバイス装着部におけるメモリカードの抜去状態から挿入状態に変化し、安定期間が経過する前に挿入状態から抜去状態に変化するときのタイミング例を示す。
【0115】
図10では、メモリカードが挿入されて抜去状態から挿入状態に変化後、安定期間が経過する前にメモリカードの抜去状態となる。このとき、抜去状態に変化してから安定期間T20が経過したときに、信号sync_rmvがセットされ、信号Pulse_CardStateStabledのパルスにより、挿入検出用フリップフロップ312が初期化される。その結果、信号async_insがLレベルとなる(t30)。
【0116】
このように、抜去により挿抜状態が変化した場合でも、挿入検出用フリップフロップ312を初期化できるようにしているため、誤って挿抜状態が認識されることがない。
【0117】
図11に、図6の記憶デバイス検出回路152の更に別の動作例のタイミング図を示す。
【0118】
図11では、記憶デバイス装着部におけるメモリカードの挿入状態から抜去状態に変化し、安定期間が経過する前に抜去状態から挿入状態に変化するときのタイミング例を示す。
【0119】
図11では、メモリカードが抜去されて挿入状態から抜去状態に変化後、安定期間が経過する前にメモリカードの挿入状態となる。このとき、挿入状態に変化してから安定期間T30が経過したときに、信号sync_insがセットされ、信号Pulse_CardStateStabledのパルスにより、抜去検出用フリップフロップ322が初期化される。その結果、信号async_rmvがLレベルとなる(t40)。
【0120】
このように、挿入により挿抜状態が変化した場合でも、抜去検出用フリップフロップ322を初期化できるようにしているため、誤って挿抜状態が認識されることがない。
【0121】
以上のような構成を有する記憶デバイス検出回路152の記憶デバイス検出結果が割り込み信号により通知された制御マスタ126は、例えば次のような処理を行うことができる。
【0122】
図12に、図1又は図3の制御マスタ126の処理例のフロー図を示す。
【0123】
図1に示すメモリ120に図12の処理を実行するためのプログラムが格納されており、CPU110がメモリ120からプログラムを読み出して該プログラムに対応した処理を実行する。
【0124】
まず、制御マスタ126は、カードコントローラ130からの第1〜第Nの記憶デバイス装着部840〜840のメモリカードの挿抜状態が変化したことを示すAsyncCardChg割り込みを待つ(ステップS10:N)。より具体的には、制御マスタ126のCPU110が、カードコントローラ130からの挿抜状態変化検出信号irq_AsyncCardChgに基づく割り込み通知を待つ。
【0125】
ステップS10において、AsyncCardChg割り込みを受け付けると(ステップS10:Y)、制御マスタ126は、カードコントローラ130がカードバスに転送クロックCLKを供給しているか否かを判別し(ステップS11)、転送クロックCLKを供給していないと判別したとき(ステップS11:N)、カードコントローラ130に該転送クロックCLKの供給を開始する制御を行わせる(ステップS12)。
【0126】
ステップS11において転送クロックCLKが供給されていると判別したとき(ステップS11:Y)、又はステップS12の後に、制御マスタ126は、カードコントローラ130からの第1〜第Nの記憶デバイス装着部840〜840のメモリカードの挿抜状態が安定したことを示すCardStateStable割り込みを待つ(ステップS13:N)。より具体的には、制御マスタ126のCPU110が、カードコントローラ130からの挿抜状態安定化検出信号irq_CardStateStabledに基づく割り込み通知を待つ。
【0127】
ステップS13において、CardStateStable割り込みを受け付けると(ステップS13:Y)、制御マスタ126は、第1〜第Nの記憶デバイス装着部840〜840のいずれかにメモリカードが挿入されているか否かを検出する(ステップS14)。
【0128】
メモリカードが挿入されているとき(ステップS14:Y)、制御マスタ126は、カードコントローラ130を介して、該カードコントローラ130が、この挿入されたメモリカードにアクセスできるように所与の初期化処理を行って(ステップS15)、ステップS10に戻る(リターン)。
【0129】
メモリカードが抜去されているとき(ステップS14:N)、制御マスタ126は、カードコントローラ130を介して、該カードコントローラ130が、この抜去されたメモリカードをアクセス対象から除外するように、所与の除去処理(抜去処理)を行って(ステップS16)、ステップS10に戻る(リターン)。
【0130】
以上のように、第1の実施形態によれば、メモリカードの個数が増加しても記憶デバイス検出回路152を除いてカードコントローラ130の設計変更をする必要がなくなり、非常に少ない工数でメモリカードの個数の変化に対応できる。更に、カードコントローラ130側でも、メモリカードの個数が増加してもメモリカードの挿抜状態を検出するために用意しておくリソースが少なくて済む。
【0131】
なお、第1の実施形態では、挿抜状態の変化を検出した後に挿入による変化なのか抜去による変化を、挿入状態指示信号CardInsertedにより判別できるようにしたが、これに限定されるものではない。
【0132】
図13に、第1の実施形態の変形例における記憶デバイス検出回路152の構成例のブロック図を示す。
【0133】
図13において、図6と同一部分には同一符号を付し、適宜説明を省略する。
【0134】
本変形例における記憶デバイス検出回路152が、図6に示す記憶デバイス検出回路152と異なる点は、デバイス挿抜状態通知回路の構成である。
【0135】
本変形例におけるデバイス挿抜状態通知回路400は、第1〜第3の記憶デバイス装着部840〜840からの第1〜第3の挿抜状態指示信号xCD_Sig#1〜xCD_Sig#3の論理積演算結果を生成し、この結果をコントローラ制御レジスタ部136の制御レジスタに設定できる。この論理積演算結果は、第1〜第3の記憶デバイス装着部840〜840の少なくとも1つにメモリカードが挿入状態であるか、第1〜第3の記憶デバイス装着部840〜840のいずれにもメモリカードが抜去状態であるかを示す信号である。従って、この論理積演算結果を用いて、挿入による変化なのか抜去による変化を判別してもよい。
【0136】
即ち、デバイス挿抜状態通知回路400が、第1〜第Nのデバイスの挿抜状態に応じて変化する第1〜第Nの挿抜状態指示信号xCD_Sig#1〜xCD_Sig#3に基づいて、第1〜第Nのデバイスの挿抜状態を制御マスタ126に通知する手段を有するということができる。
【0137】
なお、本変形例では、挿入状態のときにLレベルとなる挿抜状態指示信号を用いたためデバイス挿抜状態通知回路400は論理積演算結果をコントローラ制御レジスタ部136に通知したが、挿入状態のときにHレベルとなる挿抜状態指示信号を用いた場合、デバイス挿抜状態通知回路400は論理和演算結果をコントローラ制御レジスタ部136に通知できることは言うまでもない。
【0138】
2.2 第2の実施形態
第1の実施形態では、第1〜第Nの挿抜検出回路が、挿抜状態変化検出信号、挿抜状態安定化検出信号及び挿入状態指示信号の3種類の信号をデバイス挿抜状態通知回路に通知していたが、これに限定されるものではない。第2の実施形態では、第1〜第Nの挿抜検出回路が、挿抜状態変化検出信号及び挿抜状態安定化検出信号の2種類の信号をデバイス挿抜状態通知回路に通知する。従って、第2の実施形態では、挿抜状態の変化が通知され、安定期間が経過すると、制御マスタ126が、各記憶デバイス装着部からの挿抜状態指示信号の状態が設定された制御レジスタの内容をチェックすることで、挿入による変化なのか、抜去による変化なのかを判別すればよい。
【0139】
図14に、第2の実施形態におけるカードコントローラの構成要部のブロック図の一例を示す。図14において、図3と同一部分には同一符号を付し、適宜説明を省略する。
【0140】
図14におけるカードコントローラが図3のカードコントローラと異なる点は、各挿抜検出回路の構成と、デバイス挿抜状態通知回路の構成である。
【0141】
より具体的には、第1〜第Nの挿抜検出回路500〜500はそれぞれ同様の構成を有し、第j(1≦j≦N、j、Nは正の整数)の挿抜検出回路500が、第jのメモリカード200(第jのデバイス)が挿抜される第jの記憶デバイス装着部(第jのデバイス装着部)840に対応して設けられる。第jの挿抜検出回路500は、第jの記憶デバイス装着部840からの記憶デバイス検出信号CD_Sig#jに基づいて、第jのメモリカード200の挿抜状態の変化の検出結果を示す第jの挿抜状態変化検出信号CardChg#j、及び第jのメモリカード200の挿抜状態が安定したか否か示す第jの挿抜状態安定化検出信号StateStable#jを出力する。
【0142】
デバイス挿抜状態通知回路550は、第1〜第Nの挿抜検出回路500〜500の検出結果に基づいて、第1〜第Nのメモリカード200〜200(第1〜第Nのデバイス)のうち少なくとも1つが挿入されたか否かを制御マスタ126に対して通知する。より具体的には、デバイス挿抜状態通知回路550は、第1〜第Nの挿抜状態変化検出信号CardChg#1〜CardChg#N、及び第1〜第Nの挿抜状態安定化検出信号StateStable#1〜StateStable#Nに基づいて、第1〜第Nのメモリカード200〜200のうち少なくとも1つが挿入されたか否かを制御マスタ126に対して通知する。デバイス挿抜状態通知回路550は、例えば制御マスタ126に対して割り込み信号を出力することで上記の通知を行ったり、制御レジスタのフラグを設定することで、ポーリング動作を行う制御マスタ126に対して上記の通知を行ったりすることができる。
【0143】
第2の実施形態におけるカードコントローラのハードウェア構成例は、図4と同様であるため、図示及び説明を省略する。
【0144】
図15に、第2の実施形態における記憶デバイス検出回路の構成例の回路図を示す。
【0145】
図15では、説明を簡略化するためにNが「3」であるものとし、図6と同一部分には同一符号を付し、適宜説明を省略する。
【0146】
第2の実施形態における記憶デバイス検出回路600では、デバイス挿抜状態通知回路550が、挿抜状態変化検出信号irq_AsyncCardChgと挿抜状態安定化検出信号CardStateStableとを用いて、コントローラ制御レジスタ部136に挿抜状態の変化とその安定化検出結果を通知できる。
【0147】
より具体的には、デバイス挿抜状態通知回路550は、第1〜第3の挿抜検出回路500〜500からの第1〜第3の挿抜状態変化検出信号irq_AsyncCardChg#1〜irq_AsyncCardChg#3の論理和演算結果を、コントローラ制御レジスタ部136の制御レジスタに設定する。これにより、制御I/F回路132又はコントローラ制御レジスタ部136は、制御マスタ126に対して、メモリカードの挿抜状態の変化を割り込み通知できる。
【0148】
またデバイス挿抜状態通知回路550は、第1〜第3の挿抜検出回路500〜500からの第1〜第3の挿抜状態安定化検出信号CardStateStable#1〜CardStateStable#3の論理積演算結果を、コントローラ制御レジスタ部136の制御レジスタに設定する。これにより、制御マスタ126は、第1〜第3の記憶デバイス装着部840〜840のメモリカードの挿抜状態が安定していること(第1〜第3の記憶デバイス装着部840〜840のいずれにも挿抜状態の変化がないこと)を認識できる。
【0149】
なお、図15では、第1〜第3の記憶デバイス装着部840〜840からの第1〜第3の挿抜状態指示信号xCD_Sig#1〜xCD_Sig#3がカード制御部360に通知(図14)されるのではなく、デバイス挿抜状態通知回路550が、第1〜第3の挿抜状態指示信号xCD_Sig#1〜xCD_Sig#3の論理積演算結果をコントローラ制御レジスタ部136に出力している。
【0150】
各挿抜検出回路の構成については、挿入状態指示信号CardInsertedの出力を省略する以外は、図7及び図8に示す第1の実施形態と同様であるため、図示及び詳細な説明を省略する。また、第2の実施形態における記憶デバイス検出回路の動作も、挿入状態指示信号CardInsertedを除いて図9〜図11に示す第1の実施形態と同様であるため、説明を省略する。
【0151】
以上のような構成を有する第2の実施形態における記憶デバイス検出回路の記憶デバイス検出結果が割り込み信号により通知された制御マスタ126は、例えば次のような処理を行うことができる。
【0152】
図16に、第2の実施形態における制御マスタ126の処理例のフロー図を示す。
【0153】
図1に示すメモリ120に図16の処理を実行するためのプログラムが格納されており、CPU110がメモリ120からプログラムを読み出して該プログラムに対応した処理を実行する。図16において、図12と同一部分には同一符号を付し、適宜説明を省略する。
【0154】
図16に示すフローが図12に示すフローと異なる点は、ステップS13とステップS14の間に、第1〜第Nの記憶デバイス装着部840〜840の少なくとも1つにメモリカードが挿入状態であるか否かを判別するために、コントローラ制御レジスタ部136の制御レジスタをチェックする処理が追加されている点である。この制御レジスタは、例えば図15のように第1〜第Nの挿抜状態指示信号xCD_Sig#1〜xCD_Sig#Nの論理積演算結果を反映したレジスタとすることができる。
【0155】
即ち、ステップS13において、CardStateStable割り込みを受け付けると(ステップS13:Y)、制御マスタ126は、コントローラ制御レジスタ部136の上記の制御レジスタの内容をチェックして(ステップS20)、第1〜第Nの記憶デバイス装着部840〜840のいずれかにメモリカードが挿入されているか否かを検出する(ステップS14)。
【0156】
このような第2の実施形態によれば、各挿抜検出回路が検出すべき信号の種類を減らしても、第1の実施形態と同様の効果を得ることができる。
【0157】
なお、第1の実施形態及びその変形例、第2の実施形態では、メモリカードの挿入状態指示信号を用いていたが、これに限定されるものではない。即ち、各挿抜検出回路が、挿入状態指示信号に代えて抜去状態指示信号を用いてもよい。この場合、第jの挿抜検出回路が、第jの挿入状態指示信号に代えて、所定の期間、前記第jのデバイスの抜去状態が継続していることを示す第jの抜去状態指示信号を出力し、デバイス挿抜状態通知回路が、第1〜第Nの挿抜状態変化検出信号、第1〜第Nの挿抜状態安定化検出信号及び前記第1〜第Nの抜去状態指示信号に基づいて、第1〜第Nのデバイスのうち少なくとも1つが挿入されたか否かを前記制御マスタに対して通知することができる。
【0158】
3. 電子機器
次に、本実施形態におけるカードコントローラが適用されるホストシステムを含む電子機器の構成例を示す。
【0159】
図17に、本実施形態における電子機器としてのデジタルスチルカメラの構成例のブロック図を示す。
【0160】
図17において、図1と同一部分には同一符号を付し、適宜説明を省略する。
【0161】
電子機器10は、電荷結合素子(Charge Coupled Device:以下、CCD)イメージセンサ800、AD変換器810、メモリ820、クロック生成回路830、ホストシステム100、ソケット(スロット、メモリ装着部、カード装着部、メモリカード装着部、記憶デバイス装着部)840〜840(第1〜第Nのデバイス装着部)を含む。
【0162】
CCDイメージセンサ800は、複数の受光素子を有し、各受光素子に光が入射することにより発生した電荷を読み出して、画像を電気信号に変換する。CCDイメージセンサ800によって電気信号に変換された画像データは、AD変換器810によりデジタル信号に変換された後、メモリ820にバッファリングされる。
【0163】
クロック生成回路830は、電子機器10の基本クロックやホストシステム100の基本クロックを生成する。
【0164】
図17のプログラムメモリ120は、図1のメモリ120として機能する。
【0165】
ソケット840〜840の各ソケットには、メモリカードが挿抜される。メモリカードがソケットに挿入された状態で、カードバス20を介してカードコントローラ130とメモリカードとの間でMMC規格に従ったアクセスが行われる。
【0166】
ホストシステム100の制御により、メモリ820に蓄えられた画像データをメモリカードに書き込んだり、メモリカードから画像データを読み出してメモリ820に蓄積させたりできる。
【0167】
図17のような電子機器10によれば、ホストシステム100の制御及び構成が簡素化され、低消費電力化及び低コスト化が実現される。
【0168】
なお、本発明は上述した実施の形態に限定されるものではなく、本発明の要旨の範囲内で種々の変形実施が可能である。本実施形態におけるメモリカードは、フラッシュメモリカードに限定されるものではない。本実施形態におけるメモリカードに代えて、I/Oデバイス、HDD装置、DVD装置、又は光ディスク装置であってもよい。
【0169】
更に、本発明を適用できるコマンドは上述の実施形態において説明したものに限定されるものではなく、例えばMMC規格と同様の思想に基づく規格やMMC規格を発展させた規格のビジー状態の通知を伴うレスポンスを有するコマンド、例えばCE−ATA規格と同様の思想に基づく規格やCE−ATA規格を発展させた規格のビジー状態の通知を伴うレスポンスを有するコマンドにも当然本発明を適用できる。
【0170】
また、本発明のうち従属請求項に係る発明においては、従属先の請求項の構成要件の一部を省略する構成とすることもできる。また、本発明の1の独立請求項に係る発明の要部を、他の独立請求項に従属させることもできる。
【図面の簡単な説明】
【0171】
【図1】本実施形態における情報処理装置が適用された電子機器の構成例のブロック図。
【図2】第jのメモリカードの構成例のブロック図。
【図3】第1の実施形態におけるカードコントローラの構成要部のブロック図。
【図4】図3のカードコントローラのハードウェア構成例を示す図。
【図5】図5(A)はコマンド制御部により送信されるコマンドの説明図。図5(B)はコマンド制御部により受信されるレスポンスの説明図。
【図6】図4の記憶デバイス検出回路の構成例の回路図。
【図7】図6の第1〜第3の挿抜検出回路に共通の挿抜検出回路の構成例の回路図。
【図8】図7の挿抜状態安定検出回路の構成例の回路図。
【図9】図6の記憶デバイス検出回路の動作例のタイミング図。
【図10】図6の記憶デバイス検出回路の他の動作例のタイミング図。
【図11】図6の記憶デバイス検出回路の更に別の動作例のタイミング図。
【図12】図1又は図3の制御マスタの処理例のフロー図。
【図13】第1の実施形態の変形例における記憶デバイス検出回路の構成例のブロック図。
【図14】第2の実施形態におけるカードコントローラの構成要部のブロック図。
【図15】第2の実施形態における記憶デバイス検出回路の構成例の回路図。
【図16】第2の実施形態における制御マスタの処理例のフロー図。
【図17】本実施形態における電子機器のブロック図。
【符号の説明】
【0172】
10 電子機器、 100 ホストシステム、 110 CPU、
120、820 メモリ、 122 システムバス、 126 制御マスタ、
130 カードコントローラ、 132 制御I/F回路、
134 FIFOI/F回路、 136 コントローラ制御レジスタ部、
138 クロック制御部、 140 コマンド制御部、 142 コマンドシーケンサ、146 データ制御部、 148 データシーケンサ、 150 ドライバ部、
152、600 記憶デバイス検出回路、
200〜200 第1〜第Nのメモリカード、 300 挿抜検出回路、
300〜300、500〜500 第1〜第Nの挿抜検出回路、
310 挿入検出回路、 312 挿入検出用フリップフロップ、
320 抜去検出回路、 322 抜去検出用フリップフロップ、
330 挿抜状態安定検出回路、 332 第1のフィルタ、
334 第2のフィルタ、 336 挿入検出パルス発生回路、
338 抜去検出パルス発生回路、
350、400、550 デバイス挿抜状態通知回路、 360 カード制御部、
370 検出用タイマ、 800 CCDイメージセンサ、 810 AD変換器、
830 クロック生成回路、 840〜840 第1〜第Nの記憶デバイス装着部

【特許請求の範囲】
【請求項1】
活線挿抜が可能なデバイスの挿抜状態を検出し該デバイスへのアクセスを制御するためのホストコントローラであって、
第j(1≦j≦N、j、Nは正の整数)の挿抜検出回路が、第jのデバイスが挿抜されるデバイス装着部に対応して設けられ第jのデバイスの挿抜状態を検出する第1〜第Nの挿抜検出回路と、
前記第1〜第Nの挿抜検出回路の検出結果に基づいて、第1〜第Nのデバイスのうち少なくとも1つが挿入されたか否かを制御マスタに対して通知するデバイス挿抜状態通知回路と、
を含み、
前記第jの挿抜検出回路が、
前記第jのデバイスの挿抜状態の変化の検出結果を示す第jの挿抜状態変化検出信号、前記第jのデバイスの挿抜状態が安定したか否か示す第jの挿抜状態安定化検出信号、及び所定の期間、前記第jのデバイスの挿入状態が継続していることを示す第jの挿入状態指示信号を出力し、
前記デバイス挿抜状態通知回路が、
前記第1〜第Nの挿抜状態変化検出信号、第1〜第Nの挿抜状態安定化検出信号及び前記第1〜第Nの挿入状態指示信号に基づいて、前記第1〜第Nのデバイスのうち少なくとも1つが挿入されたか否かを前記制御マスタに対して通知することを特徴とするホストコントローラ。
【請求項2】
請求項1において、
前記第jの挿抜検出回路が、
前記第jの挿入状態指示信号に代えて、所定の期間、前記第jのデバイスの抜去状態が継続していることを示す第jの抜去状態指示信号を出力し、
前記デバイス挿抜状態通知回路が、
前記第1〜第Nの挿抜状態変化検出信号、第1〜第Nの挿抜状態安定化検出信号及び前記第1〜第Nの抜去状態指示信号に基づいて、前記第1〜第Nのデバイスのうち少なくとも1つが挿入されたか否かを前記制御マスタに対して通知することを特徴とするホストコントローラ。
【請求項3】
活線挿抜が可能なデバイスの挿抜状態を検出し該デバイスへのアクセスを制御するためのホストコントローラであって、
第j(1≦j≦N、j、Nは正の整数)の挿抜検出回路が、第jのデバイスが挿抜されるスロットに対応して設けられ第jのデバイスの挿抜状態を検出する第1〜第Nの挿抜検出回路と、
前記第1〜第Nの挿抜検出回路の検出結果に基づいて、前記第1〜第Nのデバイスのうち少なくとも1つが挿入されたか否かを制御マスタに対して通知するデバイス挿抜状態通知回路と、
を含み、
前記第jの挿抜検出回路が、
第jのデバイスの挿抜状態の変化の検出結果を示す第jの挿抜状態変化検出信号を出力すると共に、前記第jのデバイスの挿抜状態が安定したか否かを検出して第jの挿抜状態安定化検出信号を出力し、
前記デバイス挿抜状態通知回路が、
前記第1〜第Nの挿抜状態変化検出信号と第1〜第Nの挿抜状態安定化検出信号とに基づいて、前記第1〜第Nのデバイスのうち少なくとも1つが挿入されたか否かを前記制御マスタに対して通知することを特徴とするホストコントローラ。
【請求項4】
請求項3において、
前記デバイス挿抜状態通知回路が、
前記第1〜第Nのデバイスの挿抜状態に応じて変化する第1〜第Nの挿抜状態指示信号に基づいて、前記第1〜第Nのデバイスの挿抜状態を前記制御マスタに通知する手段を有することを特徴とするホストコントローラ。
【請求項5】
請求項1乃至4のいずれかにおいて、
前記第jの挿抜検出回路が、
前記第jのデバイスの挿入を検出する挿入検出回路と、
前記第jのデバイスの抜去を検出する抜去検出回路と、
を含み、
前記挿入検出回路の検出結果及び前記抜去検出回路の検出結果に基づいて、前記第jの挿抜状態変化検出信号を出力することを特徴とするホストコントローラ。
【請求項6】
請求項5において、
前記挿入検出回路が、
前記第jのデバイスが挿入されたときにセットされる挿入検出用フリップフロップを有し、
前記挿入検出用フリップフロップのラッチ信号に基づいて、前記挿入検出用フリップフロップのセット信号がパルス化される共に、前記第jの挿抜状態変化検出信号が生成されることを特徴とするホストコントローラ。
【請求項7】
請求項5又は6において、
前記抜去検出回路が、
前記第jのデバイスが抜去されたときにセットされる抜去検出用フリップフロップを有し、
前記抜去検出用フリップフロップのラッチ信号に基づいて、前記抜去検出用フリップフロップのセット信号がパルス化される共に、前記第jの挿抜状態変化検出信号が生成されることを特徴とするホストコントローラ。
【請求項8】
請求項5乃至7のいずれかにおいて、
前記挿入検出用フリップフロップが、
前記第jの挿抜状態安定化検出信号に基づいて初期化されることを特徴とするホストコントローラ。
【請求項9】
請求項5乃至7のいずれかにおいて、
前記抜去検出用フリップフロップが、
前記第jの挿抜状態安定化検出信号に基づいて初期化されることを特徴とするホストコントローラ。
【請求項10】
請求項1乃至9のいずれか記載のホストコントローラと、
前記ホストコントローラからの通知を受けて、第1〜第Nのデバイス装着部のいずれかに挿入されたデバイスにアクセスするための初期化処理を行う制御マスタと、
を含むことを特徴とする情報処理装置。
【請求項11】
各デバイス装着部にデバイスが挿抜される第1〜第Nのデバイス装着部と、
請求項10記載の情報処理装置と、
を含むことを特徴とする電子機器。
【請求項12】
請求項1乃至9のいずれか記載のホストコントローラを含むことを特徴とする電子機器。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate


【公開番号】特開2010−15431(P2010−15431A)
【公開日】平成22年1月21日(2010.1.21)
【国際特許分類】
【出願番号】特願2008−175651(P2008−175651)
【出願日】平成20年7月4日(2008.7.4)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.INS
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】