(57)【要約】【課題】割込み信号の送信を行うデバイスへの対応をも可能とするホストコントローラ等を提供する。【解決手段】ＳＤＭＭＣホストコントローラ１０は、コマンドインデックス等をメインＣＰＵ２から受け取るレジスタ制御部２２、コマンド・レスポンス送受信部２３ａを含む。コマンド・レスポンス送受信部２３ａは、アイドルステートからコマンド送信ステートに遷移し、コマンドをカードに発行して、レスポンス受信ステートに遷移し、レスポンスをカードから受信し、ＷａｉｔＣＣＳフラグがカードが第１の種類のカードであることを表していれば、レスポンス受信ステートからアイドルステートに遷移し、カードが第２の種類のカードであることを表していれば、レスポンス受信ステートからＣＣＳ・ＣＣＳＤ送受信ステートに遷移し、カードからＣＣＳを受信した場合に、その旨をメインＣＰＵ２に通知して、アイドルステートに遷移する。【選択図】図６
2008293078.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置と、コマンド及びレスポンスの送受信を制御信号線を介して行う第１の種類のデバイス又はコマンド及びレスポンスの送受信に加えてコマンド及びレスポンスの送受信の間に送信される信号である割込み信号の送信も前記制御信号線を介して行う第２の種類のデバイスを装着可能なデバイス装着部に装着されたデバイスと、の間の媒介を行うホストコントローラであって、
前記情報処理装置から所望のコマンドを前記デバイス装着部に装着されたデバイスに発行する旨のコマンド発行指示情報及び前記デバイス装着部に装着されたデバイスの種類を表すデバイス種類情報を受け取る第１の手段と、
前記コマンド発行指示情報に基づいて前記所望のコマンドを前記デバイス装着部に装着されたデバイスに発行し、前記所望のコマンドに対するレスポンスを前記デバイス装着部に装着されたデバイスから受け取る第２の手段と、
を含み、
前記第２の手段が、
前記コマンド発行指示情報に基づいて前記所望のコマンドを前記デバイス装着部に装着されたデバイスに発行する場合に、アイドルステートからコマンドの送信処理を行うためのコマンド送信ステートに遷移し、
前記コマンド送信ステートにおいて、前記所望のコマンドを前記制御信号線を介して前記デバイス装着部に装着されたデバイスに発行して、レスポンスの受信処理を行うためのレスポンス受信ステートに遷移し、
前記レスポンス受信ステートにおいて、前記所望のコマンドに対するレスポンスを前記制御信号線を介して前記デバイス装着部に装着されたデバイスから受信し、
前記レスポンス受信ステートにおいて、前記所望のコマンドに対するレスポンスの受信を終了したときに、前記デバイス種類情報が前記デバイス装着部に装着されたデバイスが前記第１の種類のデバイスであることを表していれば、前記レスポンス受信ステートから前記アイドルステートに遷移し、
前記レスポンス受信ステートにおいて、前記所望のコマンドに対するレスポンスの受信を終了したときに、前記デバイス種類情報が前記デバイス装着部に装着されたデバイスが前記第２の種類のデバイスであることを表していれば、前記レスポンス受信ステートから前記割込み信号に関連する処理を行うための割込み信号関連処理ステートに遷移し、
前記割込み信号関連処理ステートにおいて、前記デバイス装着部に装着されたデバイスから前記制御信号線を介して前記割込み信号を受信した場合に、前記割込み信号を受信した旨を前記情報処理装置に通知して、前記アイドルステートに遷移すること
を特徴とするホストコントローラ。
【請求項２】
請求項１において、
前記第１の手段が、
前記割込み信号を送信することを禁止するための割込み禁止信号を前記デバイス装着部に装着されたデバイスに送信するか否かを指示する割込み禁止信号送信指示情報を前記情報処理装置から受け取り、
前記第２の手段が、
前記割込み信号関連処理ステートにおいて、前記割込み禁止信号送信指示情報が、前記割込み禁止信号を前記デバイス装着部に装着されたデバイスに送信することを表している場合に、前記割込み禁止信号を前記制御信号線を介して前記デバイス装着部に装着されたデバイスに送信して、前記アイドルステートに遷移すること
を特徴とするホストコントローラ。
【請求項３】
請求項１又は２において、
前記割込み信号関連処理ステートが、
前記割込み信号の待機処理を行うための割込み信号受信待機ステート、前記割込み信号の受信処理を行うための割込み信号受信処理ステート、及び、前記割込み信号の受信処理を終了するための割込み信号受信処理終了ステートを含み、
前記第２の手段が、
前記レスポンス受信ステートにおいて、前記所望のコマンドに対するレスポンスの受信を終了したときに、前記デバイス種類情報が前記デバイス装着部に装着されたデバイスが前記第２の種類のデバイスであることを表していれば、前記レスポンス受信ステートから前記割込み信号待機ステートに遷移し、
前記割込み信号待機ステートにおいて、前記デバイス装着部に装着されたデバイスから前記割込み信号を受信した場合に、前記割込み信号待機ステートから前記割込み信号受信処理ステートに遷移して、前記割込み信号の受信処理を行い、前記割込み信号受信処理ステートから前記割込み信号受信処理終了ステートに遷移し、
前記割込み信号受信処理終了ステートにおいて、前記割込み信号の受信処理を終了した後に、前記割込み信号受信処理終了ステートから前記アイドルステートに遷移すること
を特徴とするホストコントローラ。
【請求項４】
請求項２又は３において、
前記割込み信号関連処理ステートが、
前記割込み禁止信号の送信処理を行うための割込み禁止信号送信処理ステート、及び、前記割込み禁止信号の送信処理を終了するための割込み禁止信号送信処理終了ステートを更に含み、
前記第２の手段が、
前記割込み信号待機ステートにおいて、前記第１の手段が前記割込み禁止信号を前記デバイス装着部に装着されたデバイスに送信することを指示する前記割込み禁止信号送信指示情報を前記情報処理装置から受け取っていれば、前記割込み信号待機ステートから前記割込み禁止信号送信処理ステートに遷移し、
前記割込み禁止信号送信処理ステートにおいて、前記割込み禁止信号を前記制御信号線を介して前記デバイス装着部に装着されたデバイスに送信する処理を行い、前記割込み信号受信処理ステートから前記割込み信号受信処理終了ステートに遷移し、
前記割込み禁止信号送信処理終了ステートにおいて、前記割込み禁止信号の送信処理を終了した後に、前記割込み禁止信号送信処理終了ステートから前記アイドルステートに遷移すること
を特徴とするホストコントローラ。
【請求項５】
情報処理装置と、
コマンド及びレスポンスの送受信を制御信号線を介して行う第１の種類のデバイス又はコマンド及びレスポンスの送受信に加えて割込み信号の送信も前記制御信号線を介して行う第２の種類のデバイスを装着可能なデバイス装着部と、
前記情報処理装置と前記デバイス装着部に装着されたデバイスとの間の媒介を行うホストコントローラと、
を含む電子機器であって、
前記ホストコントローラが、
前記情報処理装置から所望のコマンドを前記デバイス装着部に装着されたデバイスに発行する旨のコマンド発行指示情報及び前記デバイス装着部に装着されたデバイスの種類を表すデバイス種類情報を受け取る第１の手段と、
前記コマンド発行指示情報に基づいて前記所望のコマンドを前記デバイス装着部に装着されたデバイスに発行し、前記所望のコマンドに対するレスポンスを前記デバイス装着部に装着されたデバイスから受け取る第２の手段と、
を含み、
前記第２の手段が、
前記コマンド発行指示情報に基づいて前記所望のコマンドを前記デバイス装着部に装着されたデバイスに発行する場合に、アイドルステートからコマンドの送信処理を行うためのコマンド送信ステートに遷移し、
前記コマンド送信ステートにおいて、前記所望のコマンドを前記制御信号線を介して前記デバイス装着部に装着されたデバイスに発行して、レスポンスの受信処理を行うためのレスポンス受信ステートに遷移し、
前記レスポンス受信ステートにおいて、前記所望のコマンドに対するレスポンスを前記制御信号線を介して前記デバイス装着部に装着されたデバイスから受信し、
前記レスポンス受信ステートにおいて、前記所望のコマンドに対するレスポンスの受信を終了したときに、前記デバイス種類情報が前記デバイス装着部に装着されたデバイスが前記第１の種類のデバイスであることを表していれば、前記レスポンス受信ステートから前記アイドルステートに遷移し、
前記レスポンス受信ステートにおいて、前記所望のコマンドに対するレスポンスの受信を終了したときに、前記デバイス種類情報が前記デバイス装着部に装着されたデバイスが前記第２の種類のデバイスであることを表していれば、前記レスポンス受信ステートから前記割込み信号に関連する処理を行うための割込み信号関連処理ステートに遷移し、
前記割込み信号関連処理ステートにおいて、前記デバイス装着部に装着されたデバイスから前記制御信号線を介して前記割込み信号を受信した場合に、前記割込み信号を受信した旨を前記情報処理装置に通知して、前記アイドルステートに遷移すること
を特徴とする電子機器。
【請求項６】
請求項５において、
前記ホストコントローラの前記第１の手段が、
前記割込み信号を送信することを禁止するための割込み禁止信号を前記デバイス装着部に装着されたデバイスに送信するか否かを指示する割込み禁止信号送信指示情報を前記情報処理装置から受け取り、
前記ホストコントローラの前記第２の手段が、
前記割込み信号関連処理ステートにおいて、前記割込み禁止信号送信指示情報が、前記割込み禁止信号を前記デバイス装着部に装着されたデバイスに送信することを表している場合に、前記割込み禁止信号を前記制御信号線を介して前記デバイス装着部に装着されたデバイスに送信して、前記アイドルステートに遷移すること
を特徴とする電子機器。
【請求項７】
請求項５又は６において、
前記割込み信号関連処理ステートが、
前記割込み信号の待機処理を行うための割込み信号受信待機ステート、前記割込み信号の受信処理を行うための割込み信号受信処理ステート、及び、前記割込み信号の受信処理を終了するための割込み信号受信処理終了ステートを含み、
前記ホストコントローラの前記第２の手段が、
前記レスポンス受信ステートにおいて、前記所望のコマンドに対するレスポンスの受信を終了したときに、前記デバイス種類情報が前記デバイス装着部に装着されたデバイスが前記第２の種類のデバイスであることを表していれば、前記レスポンス受信ステートから前記割込み信号待機ステートに遷移し、
前記割込み信号待機ステートにおいて、前記デバイス装着部に装着されたデバイスから前記割込み信号を受信した場合に、前記割込み信号待機ステートから前記割込み信号受信処理ステートに遷移して、前記割込み信号の受信処理を行い、前記割込み信号受信処理ステートから前記割込み信号受信処理終了ステートに遷移し、
前記割込み信号受信処理終了ステートにおいて、前記割込み信号の受信処理を終了した後に、前記割込み信号受信処理終了ステートから前記アイドルステートに遷移すること
を特徴とする電子機器。
【請求項８】
請求項６又は７において、
前記割込み信号関連処理ステートが、
前記割込み禁止信号の送信処理を行うための割込み禁止信号送信処理ステート、及び、前記割込み禁止信号の送信処理を終了するための割込み禁止信号送信処理終了ステートを更に含み、
前記ホストコントローラの前記第２の手段が、
前記割込み信号待機ステートにおいて、前記第１の手段が前記割込み禁止信号を前記デバイス装着部に装着されたデバイスに送信することを指示する前記割込み禁止信号送信指示情報を前記情報処理装置から受け取っていれば、前記割込み信号待機ステートから前記割込み禁止信号送信処理ステートに遷移し、
前記割込み禁止信号送信処理ステートにおいて、前記デバイス装着部に装着されたデバイスへの前記割込み禁止信号の送信処理を行い、前記割込み信号受信処理ステートから前記割込み信号受信処理終了ステートに遷移し、
前記割込み禁止信号送信処理終了ステートにおいて、前記割込み禁止信号の送信処理を終了した後に、前記割込み禁止信号送信処理終了ステートから前記アイドルステートに遷移すること
を特徴とする電子機器。
【請求項９】
情報処理装置と、
コマンド及びレスポンスの送受信を制御信号線を介して行う第１の種類のデバイス又はコマンド及びレスポンスの送受信に加えて割込み信号の送信も前記制御信号線を介して行う第２の種類のデバイスを装着可能なデバイス装着部と、
前記情報処理装置と前記デバイス装着部に装着されたデバイスとの間の媒介を行うホストコントローラと、
を含む電子機器において前記ホストコントローラが実行する方法であって、
前記情報処理装置から所望のコマンドを前記デバイス装着部に装着されたデバイスに発行する旨のコマンド発行指示情報及び前記デバイス装着部に装着されたデバイスの種類を表すデバイス種類情報を受け取るステップと、
前記コマンド発行指示情報に基づいて前記所望のコマンドを前記デバイス装着部に装着されたデバイスに発行する場合に、アイドルステートからコマンドの送信処理を行うためのコマンド送信ステートに遷移するステップと、
前記コマンド送信ステートにおいて、前記所望のコマンドを前記制御信号線を介して前記デバイス装着部に装着されたデバイスに発行して、レスポンスの受信処理を行うためのレスポンス受信ステートに遷移するステップと、
前記レスポンス受信ステートにおいて、前記所望のコマンドに対するレスポンスを前記制御信号線を介して前記デバイス装着部に装着されたデバイスから受信するステップと、
前記レスポンス受信ステートにおいて、前記所望のコマンドに対するレスポンスの受信を終了したときに、前記デバイス種類情報が前記デバイス装着部に装着されたデバイスが前記第１の種類のデバイスであることを表していれば、前記レスポンス受信ステートから前記アイドルステートに遷移するステップと、
前記レスポンス受信ステートにおいて、前記所望のコマンドに対するレスポンスの受信を終了したときに、前記デバイス種類情報が前記デバイス装着部に装着されたデバイスが前記第２の種類のデバイスであることを表していれば、前記レスポンス受信ステートから前記割込み信号に関連する処理を行うための割込み信号関連処理ステートに遷移するステップと、
前記割込み信号関連処理ステートにおいて、前記デバイス装着部に装着されたデバイスから前記制御信号線を介して前記割込み信号を受信した場合に、前記割込み信号を受信した旨を前記情報処理装置に通知して、前記アイドルステートに遷移するステップと、
を含むことを特徴とするホスト制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置と複数の種類のデバイスとの間の媒介を行うホストコントローラ、そのようなホストコントローラを含む電子機器、及び、そのようなホストコントローラが実行するホスト制御方法に関する。
【背景技術】
【０００２】
パーソナルコンピュータや多機能端末機などの外部記憶メディアの１つとして、標準化団体であるＭＭＣＡ（MultiMedia Card Association）が標準化したマルチメディアカード（登録商標）やＳＤＡ（SD Card Association）が標準化したＳＤ（Secure Digital）カード（登録商標）などが広く知られており、デジタルビデオカメラの静止画像記録、携帯電話装置のデータ記録、携帯音楽プレーヤの音楽記録などに用いられている。さらに、ＭＭＣ（登録商標）の上位互換デバイスとして、ＣＥ−ＡＴＡ（商標）が制定されている。ＣＥ−ＡＴＡ（商標）の仕様は下記の非特許文献１に掲載されている。
【０００３】
【非特許文献１】"ＣＥ−ＡＴＡ  Ｄｉｇｉｔａｌ  Ｐｒｏｔｏｃｏｌ"、［online］、２００５年９月２９日、［平成１９年４月２３日検索］、インターネット＜URL：http://www.ce-ata.org/docs/ceata_1_1_gold.pdf＞
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ＣＥ−ＡＴＡ（商標）の仕様では、デバイスからホストコントローラへの割込み信号の送信が可能とされているとともに、ホストコントローラからデバイスへの割込み禁止信号の送信が可能とされている。このような割込み信号及び割込み禁止信号の送受信は、ＭＭＣ（商標）やＳＤカード（商標）では無かったものであり、ＭＭＣ（商標）やＳＤカード（商標）への対応を維持しながら、ＣＥ−ＡＴＡ（商標）への対応をも可能とする実装が求められている。
【０００５】
本発明は、以上のような事情に鑑みてなされたものであり、割込み信号及び割込み禁止信号の送受信を行わないデバイスへの対応を維持しながら、割込み信号及び割込み禁止信号の送受信を行うデバイスへの対応をも可能とする実装を実現するホストコントローラを提供することにある。
【課題を解決するための手段】
【０００６】
上記課題を解決するために本発明は、情報処理装置と、コマンド及びレスポンスの送受信を制御信号線を介して行う第１の種類のデバイス又はコマンド及びレスポンスの送受信に加えてコマンド及びレスポンスの送受信の間に送信される信号である割込み信号の送信も制御信号線を介して行う第２の種類のデバイスを装着可能なデバイス装着部に装着されたデバイスと、の間の媒介を行うホストコントローラであって、情報処理装置から所望のコマンドをデバイス装着部に装着されたデバイスに発行する旨のコマンド発行指示情報及びデバイス装着部に装着されたデバイスの種類を表すデバイス種類情報を受け取る第１の手段と、コマンド発行指示情報に基づいて所望のコマンドをデバイス装着部に装着されたデバイスに発行し、所望のコマンドに対するレスポンスをデバイス装着部に装着されたデバイスから受け取る第２の手段と、を含み、第２の手段が、コマンド発行指示情報に基づいて所望のコマンドをデバイス装着部に装着されたデバイスに発行する場合に、アイドルステートからコマンドの送信処理を行うためのコマンド送信ステートに遷移し、コマンド送信ステートにおいて、所望のコマンドを制御信号線を介してデバイス装着部に装着されたデバイスに発行して、レスポンスの受信処理を行うためのレスポンス受信ステートに遷移し、レスポンス受信ステートにおいて、所望のコマンドに対するレスポンスを制御信号線を介してデバイス装着部に装着されたデバイスから受信し、レスポンス受信ステートにおいて、所望のコマンドに対するレスポンスの受信を終了したときに、デバイス種類情報がデバイス装着部に装着されたデバイスが第１の種類のデバイスであることを表していれば、レスポンス受信ステートからアイドルステートに遷移し、レスポンス受信ステートにおいて、所望のコマンドに対するレスポンスの受信を終了したときに、デバイス種類情報がデバイス装着部に装着されたデバイスが第２の種類のデバイスであることを表していれば、レスポンス受信ステートから割込み信号に関連する処理を行うための割込み信号関連処理ステートに遷移し、割込み信号関連処理ステートにおいて、デバイス装着部に装着されたデバイスから制御信号線を介して割込み信号を受信した場合に、割込み信号を受信した旨を情報処理装置に通知して、アイドルステートに遷移することを特徴とするホストコントローラに関係する。
【０００７】
本発明によれば、コマンド及びレスポンスの送受信を制御信号線を介して行う第１の種類のデバイスへの対応を維持しながら、割込み信号の送信も制御信号線を介して行う第２の種類のデバイスへの対応をも可能とする実装を実現することができるようになる。
【０００８】
また本発明に係るホストコントローラでは、第１の手段が、割込み信号を送信することを禁止するための割込み禁止信号をデバイス装着部に装着されたデバイスに送信するか否かを指示する割込み禁止信号送信指示情報を情報処理装置から受け取り、第２の手段が、割込み信号関連処理ステートにおいて、割込み禁止信号送信指示情報が、割込み禁止信号をデバイス装着部に装着されたデバイスに送信することを表している場合に、割込み禁止信号を制御信号線を介してデバイス装着部に装着されたデバイスに送信して、アイドルステートに遷移するようにしても良い。
【０００９】
本発明によれば、割込み禁止信号の受信も制御信号線を介して行うデバイスへの対応をも可能とする実装を実現することができるようになる。
【００１０】
また本発明に係るホストコントローラでは、割込み信号関連処理ステートが、割込み信号の待機処理を行うための割込み信号受信待機ステート、割込み信号の受信処理を行うための割込み信号受信処理ステート、及び、割込み信号の受信処理を終了するための割込み信号受信処理終了ステートを含み、第２の手段が、レスポンス受信ステートにおいて、所望のコマンドに対するレスポンスの受信を終了したときに、デバイス種類情報がデバイス装着部に装着されたデバイスが第２の種類のデバイスであることを表していれば、レスポンス受信ステートから割込み信号待機ステートに遷移し、割込み信号待機ステートにおいて、デバイス装着部に装着されたデバイスから割込み信号を受信した場合に、割込み信号待機ステートから割込み信号受信処理ステートに遷移して、割込み信号の受信処理を行い、割込み信号受信処理ステートから割込み信号受信処理終了ステートに遷移し、割込み信号受信処理終了ステートにおいて、割込み信号の受信処理を終了した後に、割込み信号受信処理終了ステートからアイドルステートに遷移するようにしても良い。
【００１１】
本発明によれば、割込み信号の送信も制御信号線を介して行うデバイスへの対応をも可能とする実装を容易に実現することができるようになる。
【００１２】
また本発明に係るホストコントローラでは、割込み信号関連処理ステートが、割込み禁止信号の送信処理を行うための割込み禁止信号送信処理ステート、及び、割込み禁止信号の送信処理を終了するための割込み禁止信号送信処理終了ステートを更に含み、第２の手段が、割込み信号待機ステートにおいて、第１の手段が割込み禁止信号をデバイス装着部に装着されたデバイスに送信することを指示する割込み禁止信号送信指示情報を情報処理装置から受け取っていれば、割込み信号待機ステートから割込み禁止信号送信処理ステートに遷移し、割込み禁止信号送信処理ステートにおいて、割込み禁止信号を制御信号線を介してデバイス装着部に装着されたデバイスに送信する処理を行い、割込み信号受信処理ステートから割込み信号受信処理終了ステートに遷移し、割込み禁止信号送信処理終了ステートにおいて、割込み禁止信号の送信処理を終了した後に、割込み禁止信号送信処理終了ステートからアイドルステートに遷移するようにしても良い。
【００１３】
本発明によれば、割込み禁止信号の受信も制御信号線を介して行うデバイスへの対応をも可能とする実装を容易に実現することができるようになる。
【００１４】
また本発明は、情報処理装置と、コマンド及びレスポンスの送受信を制御信号線を介して行う第１の種類のデバイス又はコマンド及びレスポンスの送受信に加えて割込み信号の送信も制御信号線を介して行う第２の種類のデバイスを装着可能なデバイス装着部と、情報処理装置とデバイス装着部に装着されたデバイスとの間の媒介を行うホストコントローラと、を含む電子機器であって、ホストコントローラが、情報処理装置から所望のコマンドをデバイス装着部に装着されたデバイスに発行する旨のコマンド発行指示情報及びデバイス装着部に装着されたデバイスの種類を表すデバイス種類情報を受け取る第１の手段と、コマンド発行指示情報に基づいて所望のコマンドをデバイス装着部に装着されたデバイスに発行し、所望のコマンドに対するレスポンスをデバイス装着部に装着されたデバイスから受け取る第２の手段と、を含み、第２の手段が、コマンド発行指示情報に基づいて所望のコマンドをデバイス装着部に装着されたデバイスに発行する場合に、アイドルステートからコマンドの送信処理を行うためのコマンド送信ステートに遷移し、コマンド送信ステートにおいて、所望のコマンドを制御信号線を介してデバイス装着部に装着されたデバイスに発行して、レスポンスの受信処理を行うためのレスポンス受信ステートに遷移し、レスポンス受信ステートにおいて、所望のコマンドに対するレスポンスを制御信号線を介してデバイス装着部に装着されたデバイスから受信し、レスポンス受信ステートにおいて、所望のコマンドに対するレスポンスの受信を終了したときに、デバイス種類情報がデバイス装着部に装着されたデバイスが第１の種類のデバイスであることを表していれば、レスポンス受信ステートからアイドルステートに遷移し、レスポンス受信ステートにおいて、所望のコマンドに対するレスポンスの受信を終了したときに、デバイス種類情報がデバイス装着部に装着されたデバイスが第２の種類のデバイスであることを表していれば、レスポンス受信ステートから割込み信号に関連する処理を行うための割込み信号関連処理ステートに遷移し、割込み信号関連処理ステートにおいて、デバイス装着部に装着されたデバイスから制御信号線を介して割込み信号を受信した場合に、割込み信号を受信した旨を情報処理装置に通知して、アイドルステートに遷移することを特徴とする電子機器に関係する。
【００１５】
また本発明は、情報処理装置と、コマンド及びレスポンスの送受信を制御信号線を介して行う第１の種類のデバイス又はコマンド及びレスポンスの送受信に加えて割込み信号の送信も制御信号線を介して行う第２の種類のデバイスを装着可能なデバイス装着部と、情報処理装置とデバイス装着部に装着されたデバイスとの間の媒介を行うホストコントローラと、を含む電子機器においてホストコントローラが実行する方法であって、情報処理装置から所望のコマンドをデバイス装着部に装着されたデバイスに発行する旨のコマンド発行指示情報及びデバイス装着部に装着されたデバイスの種類を表すデバイス種類情報を受け取るステップと、コマンド発行指示情報に基づいて所望のコマンドをデバイス装着部に装着されたデバイスに発行する場合に、アイドルステートからコマンドの送信処理を行うためのコマンド送信ステートに遷移するステップと、コマンド送信ステートにおいて、所望のコマンドを制御信号線を介してデバイス装着部に装着されたデバイスに発行して、レスポンスの受信処理を行うためのレスポンス受信ステートに遷移するステップと、レスポンス受信ステートにおいて、所望のコマンドに対するレスポンスを制御信号線を介してデバイス装着部に装着されたデバイスから受信するステップと、レスポンス受信ステートにおいて、所望のコマンドに対するレスポンスの受信を終了したときに、デバイス種類情報がデバイス装着部に装着されたデバイスが第１の種類のデバイスであることを表していれば、レスポンス受信ステートからアイドルステートに遷移するステップと、レスポンス受信ステートにおいて、所望のコマンドに対するレスポンスの受信を終了したときに、デバイス種類情報がデバイス装着部に装着されたデバイスが第２の種類のデバイスであることを表していれば、レスポンス受信ステートから割込み信号に関連する処理を行うための割込み信号関連処理ステートに遷移するステップと、割込み信号関連処理ステートにおいて、デバイス装着部に装着されたデバイスから制御信号線を介して割込み信号を受信した場合に、割込み信号を受信した旨を情報処理装置に通知して、アイドルステートに遷移するステップと、を含むことを特徴とするホスト制御方法に関係する。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の実施の形態について図面を用いて詳細に説明する。なお、以下に説明する実施の形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また以下で説明される構成のすべてが本発明の必須構成要件であるとは限らない。
【００１７】
なお、以下においては、ＳＤカード（登録商標）を第１のカード、ＭＭＣ（登録商標）を第２のカード、ＣＥ−ＡＴＡ（商標）デバイスを第３のカードと呼ぶこととする。
【００１８】
１．  プロトコル
１．１  第１及び第２のカード
１．１．１  コマンド
まず、第１及び第２のカード（広義には、第１の種類のデバイス）の仕様におけるコマンドについて説明する。
【００１９】
図１（ａ）は、第１のカードの仕様におけるコマンドのフォーマットを示す図である。図１（ａ）に示すように、コマンドは、スタートビット（１ビット）、転送方向ビット（１ビット）、コマンドインデックス（６ビット）、アーギュメント（３２ビット）、ＣＲＣ（７ビット）、及び、エンドビット（１ビット）を含み、計４８ビットである。この４８ビットのコマンドが、ＣＭＤ信号線を介して、ホストコントローラから第１のカードにシリアル転送される。
【００２０】
転送方向ビットは、コマンドのようにホストコントローラから第１のカードへ転送される場合には「１」であり、後述するレスポンスのように第１のカードからホストコントローラへ転送される場合には「０」である。
【００２１】
コマンドインデックスは、６ビットであり、０（０ｘ００）〜６３（０ｘ３Ｆ）までの値をとり得る。このコマンドインデックスにより特定されるコマンドが、第１のカードにおいて実行される。
【００２２】
アーギュメントは、３２ビットであり、コマンドインデックスにより特定されるコマンドの実行に必要な各種の情報を含む。
【００２３】
ＣＲＣ（Cyclic Redundancy Code）は、ホストコントローラと第１のカードとの間の転送エラーをチェックするために、スタートビット、転送方向ビット、コマンドインデックス、及び、アーギュメントの計４０ビットに基づいて算出され、アーギュメントの後ろに付加される。
【００２４】
なお、第２のカードの仕様におけるコマンドのフォーマットも、図１（ａ）に示すフォーマットと同様である。但し、コマンドインデックスにより特定されるコマンドの処理内容が第１のカードと異なるものもある。
【００２５】
１．１．２  レスポンス
次に、第１及び第２のカードの仕様におけるレスポンスについて説明する。
【００２６】
図１（ｂ）は、第１のカードの仕様におけるレスポンスの内の「Ｒ１」というタイプのレスポンスのフォーマットを示す図である。図１（ｂ）に示すように、レスポンスは、スタートビット（１ビット）、転送方向ビット（１ビット）、コマンドインデックス（６ビット）、カードステータス（３２ビット）、ＣＲＣ（７ビット）、及び、エンドビット（１ビット）を含み、計４８ビットである。この４８ビットのレスポンスが、ＣＭＤ信号線を介して、第１のカードからホストコントローラにシリアル転送される。
【００２７】
転送方向ビットは、レスポンスのように第１のカードからホストコントローラへ転送される場合には「０」である。
【００２８】
コマンドインデックスは、６ビットであり、ホストコントローラから第１のカードに転送されたコマンド内のコマンドインデックスを復唱したものである。
【００２９】
カードステータスは、３２ビットであり、コマンドインデックスにより特定されるコマンドを実行した第１のカード内のステータスに関する情報を含む。
【００３０】
ＣＲＣは、第１のカードとホストコントローラとの間の転送エラーをチェックするために、スタートビット、転送方向ビット、コマンドインデックス、及び、カードステータスの計４０ビットに基づいて算出され、カードステータスの後ろに付加される。
【００３１】
第１のカードの仕様において、コマンドのフォーマットは上記した１つ（図１（ａ）参照）が規定されているが、レスポンスのタイプは、上記した「Ｒ１」というタイプのほか、「Ｒ１ｂ」、「Ｒ２」、「Ｒ３」、「Ｒ６」、及び、「Ｒ７」というタイプが規定されている。そして、これら６種類のタイプの内のどのタイプのレスポンスが返されるかは、コマンド毎に規定されている。多数のコマンドに対しては、「Ｒ１」というタイプのレスポンスが返されることとして規定されており、少数のコマンドに対して、「Ｒ１ｂ」、「Ｒ２」、「Ｒ３」、「Ｒ６」、「Ｒ７」というタイプのレスポンスが返されることとして規定されている。なお、レスポンスが返されないこととして規定されているコマンドもある。
【００３２】
「Ｒ１ｂ」というタイプのレスポンスは、そのフォーマットは上記した「Ｒ１」というタイプのレスポンスのフォーマット（図１（ｂ）参照）と同様であるが、オプショナルのビジー信号がデータ線Ｄ０上に出力される点で、「Ｒ１」というタイプのレスポンスと異なっている。
【００３３】
「Ｒ２」というタイプのレスポンスは、第１のカード内部のＣＩＤレジスタ（１２８ビット）又はＣＳＤレジスタ（１２８ビット）を読み出すためのコマンドに対して返されるレスポンスであり、そのフォーマットは、計１３６ビット長である。
【００３４】
「Ｒ３」というタイプのレスポンスは、第１のカード内部のＯＣＲレジスタ（３２ビット）を読み出すためのコマンドに対して返されるレスポンスであり、そのフォーマットは、計４８ビット長である。
【００３５】
「Ｒ６」というタイプのレスポンスは、新たに発行されたＲＣＡ（Relative Card Address）を返すためのレスポンスであり、そのフォーマットは、計４８ビット長である。
【００３６】
「Ｒ７」というタイプのレスポンスは、第１のカードがサポートする電圧の情報を返すためのレスポンスであり、そのフォーマットは、計４８ビット長である。
【００３７】
なお、第２のカードの仕様におけるレスポンスのフォーマットも、第１のカードの仕様におけるフォーマットと同様である。
【００３８】
１．１．３  信号の送受信
次に、第１及び第２のカードとホストコントローラとの間の信号の送受信について説明する。
【００３９】
図２は、ホストコントローラがカードにデータの書き込みを行う場合に、ホストコントローラとカードとの間で送受信される信号のタイミングの一例を示すタイミングチャートである。
【００４０】
ホストコントローラが、タイミングＴＭ１において、カードへのデータ書き込みを行うためのコマンド（例えば、第１のカードにおいてはコマンド「ＣＭＤ２５」、第２のカードにおいてもコマンド「ＣＭＤ２５」）をＣＭＤ線上に出力（発行）すると、カードが、タイミングＴＭ２において、当該コマンドに対するレスポンス（ここでは、タイプ「Ｒ１」のレスポンス）をＣＭＤ線上に出力する。
【００４１】
ホストコントローラは、このレスポンスを受けて、タイミングＴＭ３においてハイレベルの信号をＣＭＤ線上に出力する（ノイズ対策等のためと考えられる。）とともに、タイミングＴＭ４から所定のブロックサイズのデータを所定回数ＤＡＴ線上に出力する。データの転送が終了すると、カードが、タイミングＴＭ６において、ビジー信号をＤＡＴ線（ＤＡＴ０線）上に出力する。
【００４２】
その後、ホストコントローラが、タイミングＴＭ７において、データ書き込みを停止するためのコマンド（例えば、第１のカードにおいてはコマンド「ＣＭＤ１２」、第２のカードにおいてもコマンド「ＣＭＤ１２」）をＣＭＤ線上に出力すると、カードが、タイミングＴＭ８において、当該コマンドに対するレスポンスをＣＭＤ線上に出力する。
【００４３】
１．２  第３のカード
１．２．１  コマンド及びレスポンス
第３のカード（広義には、第２の種類のデバイス）の仕様は、第２のカードの仕様の上位互換として規定されており、第３のカードの仕様におけるコマンド及びレスポンスのフォーマットは、第２のカードの仕様におけるコマンド及びレスポンスのフォーマットと略同様である。
【００４４】
１．２．２  信号の送受信
次に、第３のカードとホストコントローラとの間の信号の送受信について説明する。
第１及び第２のカードの仕様においては、カード側からホストコントローラへ割込み信号の出力を行うことは出来ないと規定されているが、第３のカードの仕様においては、所定の場合に、第３のカードからホストコントローラへ割込み信号をＣＭＤ線上に出力することが出来ると規定されている。
【００４５】
図３は、ホストコントローラからデバイスにデータの書き込みを行う場合に、ホストコントローラと第３のカードとの間で送受信される信号のタイミングの一例を示すタイミングチャートである。
【００４６】
ホストコントローラが、タイミングＴＭ１１において、第３のカードへのデータ書き込みを行うためのコマンド（例えば、コマンド「ＣＭＤ６１」）をＣＭＤ線上に出力すると、第３のカードが、タイミングＴＭ１２において、当該コマンドに対するレスポンス（ここでは、タイプ「Ｒ１」のレスポンス）をＣＭＤ線上に出力する。
【００４７】
ホストコントローラは、このレスポンスを受けて、タイミングＴＭ１３においてＣＭＤ線をハイインピーダンス状態にする。なお、ＣＭＤ線をハイインピーダンス状態にするのは、後述する割込み信号及び割込み禁止信号をＣＭＤ線上に出力可能とするためであると考えられる。更に、ホストコントローラは、タイミングＴＭ１４から所定のブロックサイズのデータを所定回数ＤＡＴ線上に出力する。データの転送が終了すると、第３のカードが、タイミングＴＭ１６において、ビジー信号をＤＡＴ線（ＤＡＴ０線）上に出力する。
【００４８】
第３のカードは、データ転送中の任意のタイミング（ここでは、タイミングＴＭ１７）において、ローレベルの割込み信号をＣＭＤ線上に１クロック相当の時間出力することが出来る。この割込み信号は、第３のカードの仕様において、「command completion signal」と呼ばれているが、本願では、以下「ＣＣＳ」と呼ぶこととする。
【００４９】
ホストコントローラは、ＣＣＳを受信した場合には、第３のカード内のＡＴＡステータスレジスタを読み出すためのコマンド（コマンド「ＣＭＤ３９」）を出力することが望ましいとされている。そこで、ホストコントローラは、タイミングＴＭ１８において、コマンドＣＭＤ３９をＣＭＤ線上に出力し、第３のカードが、タイミングＴＭ１９において、当該コマンドに対するレスポンスをＣＭＤ線上に出力する。
【００５０】
なお、第３のカードの仕様においては、ホストコントローラが、第３のカードがＣＣＳを出力することを禁止するための割込み禁止信号を送信出来ることも、規定されている。
【００５１】
図４は、ホストコントローラが、第３のカードにデータの書き込みを行う場合に、割込み禁止信号を第３のカードに送信する例を示すタイミングチャートである。
【００５２】
ホストコントローラが、タイミングＴＭ２１において、第３のカードへのデータ書き込みを行うためのコマンド（例えば、コマンド「ＣＭＤ６１」）をＣＭＤ線上に出力すると、第３のカードが、タイミングＴＭ２２において、当該コマンドに対するレスポンス（ここでは、タイプ「Ｒ１」のレスポンス）をＣＭＤ線上に出力する。
【００５３】
ホストコントローラは、このレスポンスを受けて、タイミングＴＭ２３においてＣＭＤ線をハイインピーダンス状態にするとともに、タイミングＴＭ２４から所定のブロックサイズのデータを所定回数ＤＡＴ線上に出力する。データの転送が終了すると、第３のカードが、タイミングＴＭ２６において、ビジー信号をＤＡＴ線（ＤＡＴ０線）上に出力する。
【００５４】
ホストコントローラは、データ転送中の任意のタイミング（ここでは、タイミングＴＭ２７）において、ローレベルの割込み禁止信号をＣＭＤ線上に４クロック相当以上の時間出力することが出来る。この割込み禁止信号は、第３のカードの仕様において、「command completion signal disable」と呼ばれているが、本願では、以下「ＣＣＳＤ」と呼ぶこととする。第３のカードの仕様において、ホストコントローラがＣＣＳＤを送信した場合には、第３のカードは当該コマンドにおいてはＣＣＳを出力することが出来ないものとして規定されている。
【００５５】
その後、ホストコントローラが、タイミングＴＭ２８において、データ書き込みを停止するためのコマンド（例えば、コマンド「ＣＭＤ１２」）をＣＭＤ線上に出力すると、第３のカードが、タイミングＴＭ２９において、当該コマンドに対するレスポンスをＣＭＤ線上に出力する。
【００５６】
第１及び第２のカードの仕様においては、上記のようなＣＣＳやＣＣＳＤは規定されていない。そのため、ホストコントローラにおいて、第１及び第２のカードに加えて第３のカードにも対応可能とするために、上記のようなＣＣＳやＣＣＳＤの送受信を可能とする実装が必要である。
【００５７】
２．  構成
図５に、以上のような問題を解決できる本実施形態の電子機器１の構成例を示す。図５に示すように、この電子機器１は、各種コマンドの発行指示やデータの転送指示やプログラムの実行を行うメインＣＰＵ（広義には、情報処理装置）２と、プログラムやデータを記憶するＲＯＭ３と、データを記憶するＲＡＭ４と、複数の種類のカード（広義には、デバイス）を挿入可能なカードスロット（広義には、デバイス装着部）６と、メインＣＰＵ２からの指示に応じてカードスロット６に装着されたカードへのコマンド発行やデータ転送等を行うカードコントローラ５とを含む。メインＣＰＵ２、ＲＯＭ３、ＲＡＭ４、及び、カードコントローラ５は、バスＢ１によって接続されている。
【００５８】
ＲＯＭ３は、例えば、リアルタイムＯＳ（オペレーティングシステム）プログラムや、各種のアプリケーションプログラムや、カードコントローラ５を操作するためのドライバプログラム等を記憶しており、メインＣＰＵ２は、これらのプログラムを適宜実行する。
ＲＡＭ４は、メインＣＰＵ２がワークエリアとして使用する作業領域や、カードスロット６に挿入されたカードとの間のデータのＤＭＡ転送のために用いられるＤＭＡ転送領域を有する。
【００５９】
カードスロット６は、形状が近い第１〜第３のカードＣ１〜Ｃ３を装着可能である。なお、本願においては、このような種々のカードを総称する場合に、「ＳＤＭＭＣカード」と言う。
【００６０】
本実施形態においては、第１〜第３のカードＣ１〜Ｃ３を装着可能としているが、更に他の種類のカード（例えば、ＳＤＩＯデバイス等）を装着可能とすることも可能である。
【００６１】
カードコントローラ５は、メインＣＰＵ２からの指示に応じて、メインＣＰＵ２とカードスロット６に装着された第１〜第３のカードＣ１〜Ｃ３との間の媒介を行う。カードコントローラ５とカードスロット６との間は、ＣＬＫ線（クロック供給用信号線）、ＣＭＤ線（コマンド用信号線）、及び、ＤＡＴ線（データ用信号線）によって接続されている。
【００６２】
ＣＬＫ線は、カードコントローラ５から第１〜第３のカードＣ１〜Ｃ３へクロック信号を送信するための信号線である。カードコントローラ５から第１〜第３のカードＣ１〜Ｃ３へのコマンドの転送、及びカードコントローラ５と第１〜第３のカードＣ１〜Ｃ３との間のデータ転送等は、このクロック信号に同期して実行される。
【００６３】
ＣＭＤ線（広義には、制御信号線）は、カードコントローラ５から第１〜第３のカードＣ１〜Ｃ３へのコマンドの転送、及び第１〜第３のカードＣ１〜Ｃ３からカードコントローラ５へのレスポンスの転送に使用される１ビット幅の信号線である。
【００６４】
ＤＡＴ線は、カードコントローラ５と第１〜第３のカードＣ１〜Ｃ３のＤＡＴ端子との間のデータ転送に使用される双方向信号線である。なお、第１〜第３のカードＣ１〜Ｃ３のＤＡＴ端子の数（ビット幅）は、１、４、又は、８個である。
【００６５】
なお、電子機器１が、入力装置、表示装置（ＬＣＤ、有機ＥＬディスプレイ等）、ＤＭＡコントローラ、通信回路等を更に含んでいても良い。
【００６６】
図６は、カードコントローラ５の内部構成を示すブロック図である。図６に示すように、カードコントローラ５は、ＳＤＭＭＣホストコントローラ（広義には、ホストコントローラ）１０と、ＳＤＭＭＣホストコントローラ１０とメインＣＰＵ２（図５参照）との間の信号の送受信を行うＣＰＵインタフェース１１と、ＳＤＭＭＣホストコントローラ１０とＲＡＭ４（図５参照）との間の信号の送受信を行うＤＭＡインタフェース１２と、ＳＤＭＭＣホストコントローラ１０とカードスロット６（図５参照）に装着された第１〜第３のカードＣ１〜Ｃ３との間の信号の送受信を行うカードインタフェース１３とを含む。
【００６７】
ＳＤＭＭＣホストコントローラ１０は、クロック出力部２１と、レジスタ制御部２２（広義には、第１の手段）と、ＳＤＭＭＣ制御部２３（広義には、第２の手段）と、ＤＭＡ制御部２４とを含んでいる。なお、ＳＤＭＭＣホストコントローラ１０を半導体チップ上に集積して、半導体集積回路としても良い。
【００６８】
クロック出力部２１は、クロック信号ＳＤＣＬＫをカードインタフェース１３を介してカードスロット６に装着された第１〜第３のカードＣ１〜Ｃ３に供給する。第１〜第３のカードＣ１〜Ｃ３に供給するクロック信号ＳＤＣＬＫは、例えば、発振回路（図示せず）によって発生され或いは外部から供給されるシステムクロック信号をそのまま或いは分周して取得することができる。なお、クロック出力部２１のクロック信号ＳＤＣＬＫの第１〜第３のカードＣ１〜Ｃ３への出力の供給開始及び供給停止を、メインＣＰＵ２やＳＤＭＭＣ制御部２３等から制御可能としても良い。
【００６９】
レジスタ制御部２２は、メインＣＰＵ２から書き込み及び／又は読み出し可能な複数のレジスタを有しており、これらのレジスタの制御を行う。メインＣＰＵ２は、これらのレジスタにＣＰＵインタフェース１１を介して情報を書き込むことにより、第１〜第３のカードＣ１〜Ｃ３へのコマンド発行をＳＤＭＭＣコントローラ１０に行わせることができる。また、メインＣＰＵ２は、これらのレジスタからＣＰＵインタフェース１１を介して情報を読み出すことにより、発行したコマンドに対する第１〜第３のカードＣ１〜Ｃ３からのレスポンスを取得することができる。なお、レジスタ制御部２２内のレジスタは、ＳＤＭＭＣホストコントローラ１０内の他の回路ブロックから書き込み及び／又は読み出し可能としても良い。
【００７０】
図７は、レジスタ制御部２２内のレジスタマップの一例を示す図である。図７に示す複数のレジスタの内のレジスタ２２ａ〜２２ｋは、主にメインＣＰＵ２によって情報が書き込まれ、ＳＤＭＭＣホストコントローラ１０内の回路によって情報が読み出されるレジスタである。また、レジスタ２２ｌ〜２２ｏは、主にＳＤＭＭＣホストコントローラ１０内の回路によって情報が書き込まれ、メインＣＰＵ２によって情報が読み出されるレジスタである。
【００７１】
レジスタ２２ａは、発行するコマンドのコマンドインデックス（広義には、コマンド発行指示情報）を書き込むためのレジスタであり、レジスタ２２ｂは、発行するコマンドのアーギュメント（広義には、コマンド発行指示情報）を書き込むためのレジスタである。
【００７２】
レジスタ２２ｃは、発行するコマンドのタイプ（Ｎｏｒｍａｌ、Ｓｕｓｐｅｎｄ、Ｒｅｓｕｍｅ、Ａｂｏｒｔ等）（広義には、コマンド発行指示情報）を書き込むためのレジスタであり、レジスタ２２ｄは、発行するコマンドに対するレスポンスのタイプ（レスポンス無し、１３６ビットレスポンス（前述した「Ｒ２」タイプに相当）、４８ビットレスポンス（前述した「Ｒ１」、「Ｒ３」、「Ｒ６」、又は、「Ｒ７」タイプに相当）、ＲｅｓｐＢｕｓｙ（前述した「Ｒ１ｂ」タイプに相当）等）（広義には、コマンド発行指示情報）を書き込むためのレジスタである。
【００７３】
レジスタ２２ｅ〜２２ｈは、発行するコマンドがデータ転送を伴うコマンドである場合に用いられるレジスタである。レジスタ２２ｅは、データ転送タイプ（Ｓｉｎｇｌｅ、Ｉｎｆｉｎｉｔｅ、Ｍｕｌｔｉｐｌｅ、Ｓｔｒｅａｍ等）（広義には、コマンド発行指示情報）を書き込むためのレジスタであり、レジスタ２２ｆは、データ転送のためにＤＡＴ線を使用することを表すフラグ（以下、「ＤＡＴ線使用フラグ」という）（広義には、コマンド発行指示情報）を書き込むためのレジスタであり、レジスタ２２ｇは、転送ブロックサイズ（広義には、コマンド発行指示情報）を書き込むためのレジスタであり、レジスタ２２ｈは、転送ブロック数（広義には、コマンド発行指示情報）を書き込むためのレジスタである。
【００７４】
レジスタ２２ｉは、インデックスエラー、エンドビットエラー、ＣＲＣエラー、ＣＲＣエラー等（以下、「ＣＲＣエラー等」という。）のチェックを行うか否かを指定するデータを書き込むためのレジスタである。
【００７５】
レジスタ２２ｊは、カードスロット６（図５参照）に装着されているカードが第３のカードＣ３であるか否かを表すＷａｉｔＣＣＳフラグ（広義には、デバイス種類情報）を書き込むためのレジスタである。カードスロット６に装着されているカードが第１又は第２のカードＣ１、Ｃ２である場合には、ＷａｉｔＣＣＳフラグは「０」とされ、カードスロット６に装着されているカードが第３のカードＣ３である場合には、ＷａｉｔＣＣＳフラグは「１」とされる。ＷａｉｔＣＣＳフラグの初期値は「０」であり、後に説明する初期化シーケンス等の後に「１」にセットされ得る。
【００７６】
レジスタ２２ｋは、カードスロット６（図５参照）に装着されているカードが第３のカードＣ３である場合に、ＣＣＳＤを第３のカードＣ３に送信するか否かを指示するためのＧｏＣＣＳＤフラグ（広義には、割込み禁止信号送信指示情報）を書き込むためのレジスタである。ＣＣＳＤを第３のカードＣ３に送信することを指示しない場合には、ＧｏＣＣＳＤフラグは「０」とされ、ＣＣＳＤを第３のカードＣ３に送信することを指示する場合には、ＧｏＣＣＳＤフラグは「１」とされる。
【００７７】
レジスタ２２ｌは、コマンドが完了したことを表すフラグ（以下、「コマンド完了フラグ」という）を書き込むためのレジスタである。
【００７８】
レジスタ２２ｍは、レスポンスのカードステータスを書き込むためのレジスタである。なお、先に説明したように、レスポンスのカードステータス長は、レスポンスのタイプ即ちコマンドによって異なる。例えば、レスポンスのタイプが「Ｒ１」（４８ビット）の場合、レスポンスのカードステータスは３２ビットであり、レスポンスのタイプが「Ｒ２」（１３６ビット）の場合、レスポンスのカードステータスは１２０ビットである。そこで、例えば、レジスタ２２ｍを長め（例えば、１２８ビット程度）に確保しておき、その中の所定位置にレスポンスのカードステータスを書き込むようにしても良い。
【００７９】
レジスタ２２ｎは、ＣＲＣエラー等のチェックを行うことを指定するデータがレジスタ２２ｉに書き込まれている場合に、指定されたエラーのチェックの結果を表すデータを書き込むためのレジスタである。なお、ＣＲＣエラー等のチェックの結果を表すデータは、ＣＲＣエラー等の種類に応じた位置のビットがセットされるようにしても良いし、ＣＲＣエラー等の種類がコード化されるようにしても良い。メインＣＰＵ２は、ＣＲＣエラー等のチェックを行うことを指定した場合に、このレジスタ２２ｎを読み出すことで、ＣＲＣエラー等の発生の有無を取得することができる。
【００８０】
レジスタ２２ｏは、ＣＭＤ線を使用中であるか否かを表すフラグ（以下、「ＣＭＤ線使用中フラグ」という）を書き込むためのレジスタである。ＣＭＤ線使用中フラグは、ＳＤＭＭＣホストコントローラ１０がコマンドの発行を開始するとセットされ、ＳＤＭＭＣホストコントローラ１０がレスポンスの受信を完了するとクリアされる。メインＣＰＵ２は、このレジスタ２２ｏを読み出すことで、コマンドの実行中か否か、すなわち、次のコマンドの発行を指示することが可能か否か（第１〜第２のカードＣ１〜Ｃ２の場合）を判断することができる。
【００８１】
なお、図７に示すレジスタマップは一例であり、種々の変形実施も可能である。例えば、全レジスタのビット幅を３２ビット長とし、３２ビットに満たないビット長を有する複数のデータを結合して１つのレジスタに格納するようにしても良い。また、例えば、クロック信号ＳＤＣＬＫの出力又は停止をクロック出力部２１に行わせるためのフラグを格納するためのレジスタを設けて、メインＣＰＵ２がクロック信号ＳＤＣＬＫの出力又は停止をクロック出力部２１に行わせるようにしても良い。また、例えば、レスポンスエラー、ＣＲＣエラー等が発生した場合に、割り込み信号をメインＣＰＵ２に出力するか否かを指示するためのデータを格納するためのレジスタを設けて、レスポンスエラー、ＣＲＣエラー等が発生した場合に割り込み信号がメインＣＰＵ２に出力されるようにしても良い。
【００８２】
再び図６を参照すると、ＳＤＭＭＣ制御部２３は、コマンド・レスポンス送受信部２３ａと、データ送受信部２３ｂとを含む。
コマンド・レスポンス送受信部２３ａは、メインＣＰＵ２によってレジスタ２２ａ〜２２ｋに書き込まれた情報に基づいてコマンドを第１〜第３のカードＣ１〜Ｃ３に発行し、当該コマンドに対するレスポンスを第１〜第３のカードＣ１〜Ｃ３から受け取って、レスポンスに基づく情報をレジスタ２２ｌ〜２２ｏに書き込む。
【００８３】
なお、本実施形態においては、コマンド・レスポンス送受信部２３ａは、コマンドを発行する信号線ＣＭＤ＿ｏｕｔとレスポンスを受信する信号線ＣＭＤ＿ｉｎとを別個に有している。そして、カードインタフェース１３は、コマンド発行時には、コマンド・レスポンス送受信部２３ａによって信号線ＣＭＤ＿ｏｕｔ上に供給されるコマンドを第１〜第３のカードＣ１〜Ｃ３との間のＣＭＤ線に出力し、レスポンス受信時には、第１〜第３のカードＣ１〜Ｃ３との間のＣＭＤ線上に供給されるレスポンスを信号線ＣＭＤ＿ｉｎに出力する。
【００８４】
データ送受信部２３ｂは、レジスタ２２ａに書き込まれたインデックスで表されるコマンドがデータ転送を伴うコマンドである場合に動作を行い、レジスタ２２ａに書き込まれたインデックスで表されるコマンドがデータ転送を伴わないコマンドである場合には動作を行わない。
【００８５】
レジスタ２２ａに書き込まれたインデックスで特定されるコマンドが第１〜第３のカードＣ１〜Ｃ３へのデータ書き込みを伴うコマンドである場合には、コマンド・レスポンス送受信部２３ａが、当該コマンドを第１〜第３のカードＣ１〜Ｃ３に発行し、当該コマンドに対するレスポンスの受信完了後に、第１〜第３のカードＣ１〜Ｃ３へのデータ書き込みの開始をデータ送受信部２３ｂに指示する。また、レジスタ２２ａに書き込まれたインデックスで特定されるコマンドが第１〜第３のカードＣ１〜Ｃ３からのデータ読み出しを伴うコマンドである場合には、コマンド・レスポンス送受信部２３ａが、当該コマンドを第１〜第３のカードＣ１〜Ｃ３に発行し、当該コマンドに対するレスポンスを受信するとともに、第１〜第３のカードＣ１〜Ｃ３からのデータ読み出しの開始をデータ送受信部２３ｂに指示する。
【００８６】
ＤＭＡ制御部２４は、レジスタ２２ａに書き込まれたコマンドインデックスで特定されるコマンドがデータ転送を伴うコマンドである場合に動作を行い、レジスタ２２ａに書き込まれたコマンドインデックスで特定されるコマンドがデータ転送を伴わないコマンドである場合には動作を行わない。
【００８７】
メインＣＰＵ２は、第１〜第３のカードＣ１〜Ｃ３へのデータ書き込みを伴うコマンドの実行をＳＤＭＭＣホストコントローラ１０に指示する場合には、まず、第１〜第３のカードＣ１〜Ｃ３に書き込むためのデータをＲＡＭ４（図５参照）のＤＭＡ転送領域内に書き込み、その後、レジスタ２２ａ〜２２ｈに当該コマンドのインデックス等を書き込む。これを受けて、ＳＤＭＭＣホストコントローラ１０のＳＤＭＭＣ制御部２３内のコマンド・レスポンス送受信部２３ａが、当該コマンドを第１〜第３のカードＣ１〜Ｃ３に発行し、当該コマンドに対するレスポンスの受信完了後に、第１〜第３のカードＣ１〜Ｃ３へのデータ書き込みの開始をデータ送受信部２３ｂに指示する。データ送受信部２３ｂは、コマンド・レスポンス送受信部２３ａからの指示を受けると、ＤＭＡ制御部２４にＲＡＭ４のＤＭＡ転送領域内のデータのＤＭＡ転送を指示する。ＤＭＡ制御部２４は、ＦＩＦＯバッファ２４ａを有しており、データ送受信部２３ｂからの指示を受けると、ＲＡＭ４のＤＭＡ転送領域内のデータをＦＩＦＯバッファ２４ａに順次ＤＭＡ転送する。そして、データ送受信部２３ｂが、ＦＩＦＯバッファ２４ａ内のデータを順次読み出し、カードインタフェース１３を介して第１〜第３のカードＣ１〜Ｃ３に順次書き込む。
【００８８】
一方、メインＣＰＵ２は、第１〜第３のカードＣ１〜Ｃ３からのデータ読み出しを伴うコマンドの実行をＳＤＭＭＣホストコントローラ１０に指示する場合には、レジスタ２２ａ〜２２ｈに当該コマンドのインデックス等を書き込む。これを受けて、ＳＤＭＭＣホストコントローラ１０のＳＤＭＭＣ制御部２３内のコマンド・レスポンス送受信部２３ａが、当該コマンドを第１〜第３のカードＣ１〜Ｃ３に発行し、当該コマンドに対するレスポンスを受信するとともに、第１〜第３のカードＣ１〜Ｃ３からのデータ読み出しの開始をデータ送受信部２３ｂに指示する。データ送受信部２３ｂは、コマンド・レスポンス送受信部２３ａからの指示を受けると、カードインタフェース１３を介して第１〜第３のカードＣ１〜Ｃ３からデータを順次読み出してＦＩＦＯバッファ２４ａに順次書き込むとともに、ＤＭＡ制御部２４にＦＩＦＯバッファ２４ａ内のデータのＤＭＡ転送を指示する。ＤＭＡ制御部２４は、データ送受信部２３ｂからの指示を受けると、ＦＩＦＯバッファ２４ａ内のデータをＲＡＭ４のＤＭＡ転送領域に順次ＤＭＡ転送する。
【００８９】
なお、本実施形態においては、データ送受信部２３ｂは、第１〜第３のカードＣ１〜Ｃ３に書き込むデータを出力する８ビット幅の信号線ＤＡＴ＿ｏｕｔ［７：０］と第１〜第３のカードＣ１〜Ｃ３からデータを読み出す信号線ＤＡＴ＿ｉｎ［７：０］とを別個に有している。そして、カードインタフェース１３は、第１〜第３のカードＣ１〜Ｃ３へのデータ書き込み時には、データ送受信部２３ｂによって信号線ＤＡＴ＿ｏｕｔ［７：０］上に供給されるデータを第１〜第３のカードＣ１〜Ｃ３との間のＤＡＴ線（１、４、又は、８ビット幅）に出力し、第１〜第３のカードＣ１〜Ｃ３からのデータ読み出し時には、第１〜第３のカードＣ１〜Ｃ３との間のＤＡＴ線上に供給されるデータを信号線ＤＡＴ＿ｉｎ［７：０］に出力する。なお、第１〜第３のカードＣ１〜Ｃ３のＤＡＴ端子のビット幅が８ビット幅ではない場合には、カードインタフェース１３が、データのビット幅を適宜変換する。
【００９０】
３．  動作
次に、本実施形態の動作について説明する。
図８は、初期時において、カードスロット６に装着されているカードの種類を識別する場合における本実施形態の動作を示すフローチャートである。
【００９１】
また、図９は、ＳＤＭＭＣホストコントローラ１０のＳＤＭＭＣ制御部２３内のコマンド・レスポンス送受信部２３ａの状態遷移図である。図９に示すように、コマンド・レスポンス送受信部２３ａのステートは、アイドルステートＳＴ０、コマンド送信ステート、レスポンス受信ステート、及び、ＣＣＳ・ＣＣＳＤ送受信ステート（広義には、割込み信号関連処理ステート）を含む。コマンド送信ステートは、コマンドスタートビット送信ステートＳＴ１、コマンド内容送信ステートＳＴ２、及び、コマンドエンドビット送信ステートＳＴ３を含む。レスポンス受信ステートは、レスポンス受信待機ステートＳＴ４、レスポンススタートビット受信ステートＳＴ５、レスポンス内容受信ステートＳＴ６、及び、レスポンスエンドビット送信ステートＳＴ７を含む。ＣＣＳ・ＣＣＳＤ送受信ステートは、ＣＣＳ受信待機ステートＳＴ８（広義には、割込み信号受信待機ステート）、ＣＣＳ受信ステートＳＴ９（広義には、割込み信号受信処理ステート）、ＣＣＳ受信終了ステートＳＴ１０（広義には、割込み信号受信処理終了ステート）、ＣＣＳＤ送信ステートＳＴ１１（広義には、割込み禁止信号送信処理ステート）、及び、ＣＣＳＤ送信終了ステートＳＴ１２（広義には、割込み禁止信号送信処理終了ステート）を含む。
【００９２】
まず、図８を参照すると、メインＣＰＵ２が、ＲＯＭ３内のドライバプログラムを実行し、初期化シーケンスのための複数のコマンドのコマンドインデックス、アーギュメント、コマンドタイプ、及び、レスポンスタイプをレジスタ２２ａ〜２２ｄに順次書き込むことにより、初期化シーケンスのための複数のコマンドの発行をＳＤＭＭＣホストコントローラ１０に順次指示する（ステップＳ１１）。
【００９３】
初期化シーケンスの一例は、次の通りである。まず、コマンド「ＣＭＤ０」やコマンド「ＣＭＤ８」等をカードスロット６に装着されているカードに発行することにより、カードスロット６に装着されているカードをアイドルステートに遷移させる。次に、コマンド「ＣＭＤ５５」を発行し、続いて、コマンド「ＡＣＭＤ４１」をカードスロット６に装着されているカードに発行する。コマンド「ＡＣＭＤ４１」に対するレスポンスがカードスロット６に装着されているカードから返信された場合には、カードスロット６に装着されているカードが第１のカードＣ１であると識別することができる。コマンド「ＡＣＭＤ４１」に対するレスポンスがカードスロット６に装着されているカードから返信されなかった場合には、カードスロット６に装着されているカードが第２のカードＣ２、第３のカードＣ３の何れかであると識別することができる。
【００９４】
なお、もし仮にカードスロット６に装着されているカードが第３のカードＣ３であっても、第３のカードの仕様においては、初期化シーケンスのためのコマンド「ＣＭＤ０」等でのＣＣＳ及びＣＣＳＤの送受信は規定されていない。従って、この初期化シーケンスでは、第３のカードＣ３を第１〜第２のカードＣ１〜Ｃ２と同じに扱うことができ、また、レジスタ２２ｊ（ＷａｉｔＣＣＳフラグ（初期値「０」））及びレジスタ２２ｋ（ＧｏＣＣＳＤフラグ）を利用する必要もない。
【００９５】
ＳＤＭＭＣホストコントローラ１０は、メインＣＰＵ２からの指示に応じて、初期化シーケンスのための複数のコマンドをカードスロット６に装着されているカードに順次発行し（ステップＳ２１）、カードスロット６に装着されているカードが、初期化シーケンスのための複数のコマンドを順次実行し、当該複数のコマンドに対するレスポンスをＳＤＭＭＣホストコントローラ１０に順次返信する（ステップＳ３１）。
【００９６】
ここで図９を参照しながら、コマンド・レスポンス送受信部２３ａのコマンド発行及びレスポンス受信時における状態遷移について説明する。
【００９７】
コマンド・レスポンス送受信部２３ａは、初期時において、アイドルステートＳＴ０となっており、初期化シーケンスのための複数のコマンドの内の１つのコマンドを発行する場合に、コマンドスタートビット送信ステートＳＴ１に遷移する。
【００９８】
コマンド・レスポンス送受信部２３ａは、コマンドスタートビット送信ステートＳＴ１において、スタートビット「０」（図１（ａ）参照）をカードインタフェース１３を介してカードに送信する。
【００９９】
次に、コマンド・レスポンス送受信部２３ａは、コマンド内容送信ステートＳＴ２に遷移して、転送方向ビット（ここでは、「１」（図１（ａ）参照））、レジスタ２２ａ内に格納されているコマンドインデックス（６ビット）、レジスタ２２ｂ内に格納されているアーギュメント（３２ビット）をカードに順次送信する。それとともに、コマンド・レスポンス送受信部２３ａは、スタートビット「０」、転送方向ビット「１」、コマンドインデックス（６ビット）、及び、アーギュメント（３２ビット）の計４０ビットに基づいて、ＣＲＣ（７ビット）を算出し、このＣＲＣ（７ビット）をアーギュメント（３２ビット）の次にカードに送信する。
【０１００】
そして、コマンド・レスポンス送受信部２３ａは、コマンドエンドビット送信ステートＳＴ３に遷移して、エンドビット（ここでは、「１」（図１（ａ）参照））をカードに送信し、レスポンス受信待機ステートＳＴ４に遷移する。
【０１０１】
コマンド・レスポンス送受信部２３ａは、レスポンス受信待機ステートＳＴ４にて待機し、その後、レスポンススタートビット受信ステートＳＴ５に遷移して、レスポンスのスタートビット（ここでは、「０」（図１（ｂ）参照））を受信する。
【０１０２】
次に、コマンド・レスポンス送受信部２３ａは、レスポンス内容受信ステートＳＴ６に遷移して、転送方向ビット（ここでは、「０」）、コマンドインデックス（６ビット）、カードステータス（３２ビット、１２０ビット等）、ＣＲＣ（７ビット）をカードから順次受信し、カードステータスをレジスタ２２ｍに書き込む。
【０１０３】
そして、コマンド・レスポンス送受信部２３ａは、レスポンスエンドビット受信ステートＳＴ７に遷移して、エンドビット（ここでは、「１」（図１（ｂ）参照））を受信し、コマンド完了フラグとして「１」をレジスタ２２ｌにセットする。このとき、レジスタ制御部２２が、コマンドの完了を通知するための割込み信号をメインＣＰＵ２に出力するようにしても良い。また、このとき、コマンド・レスポンス送受信部２３ａは、ＣＲＣエラー等が発生していた場合に、ＣＲＣエラー等のエラー情報をレジスタ２２ｎに書き込む。
【０１０４】
なお、先に説明したように、レジスタ２２ｊ内のＷａｉｔＣＣＳフラグの初期値は「０」である。そのため、コマンド・レスポンス送受信部２３ａは、レスポンスエンドビット受信ステートＳＴ７からアイドルステートＳＴ０に遷移する。
【０１０５】
コマンド・レスポンス送受信部２３ａは、初期化シーケンスのための複数のコマンドの数だけステートＳＴ０〜ＳＴ７の遷移を繰り返すことにより、初期化シーケンスのための複数のコマンドをカードに順次発行することができる。
【０１０６】
再び図８を参照すると、メインＣＰＵ２が、カードスロット６に装着されているカード内の各種レジスタ（ＣＩＤレジスタ、ＣＳＤレジスタ等）を読み出すための複数のコマンド（コマンド「ＣＭＤ２」等）のコマンドインデックス、アーギュメント等をレジスタ２２ａ〜２２ｄに順次書き込むことにより、カード内の各種レジスタを読み出すための複数のコマンドの発行をＳＤＭＭＣホストコントローラ１０に順次指示し（ステップＳ１２）、ＳＤＭＭＣホストコントローラ１０が、カード内の各種レジスタを読み出すための複数のコマンドをカードに順次発行し（ステップＳ２２）、カードスロット６に装着されているカードが、各種レジスタの内容を含むレスポンスを順次返信する（ステップＳ３２）。
【０１０７】
このとき、コマンド「ＣＭＤ６０」をカードに発行してＡＴＡタスクファイルをリードした際に、レスポンス応答があり、かつＬＢＡｍｉｄ＝ＣＥｈ・ＬＢＡｈｉｇｈ＝ＡＡｈである場合には、カードスロット６に装着されているカードが第３のカードＣ３であると識別でき、そうではない場合には、カードスロット６に装着されているカードが第２のカードＣ２であると識別できる。
【０１０８】
なお、もし仮にカードスロット６に装着されているカードが第３のカードＣ３であっても、第３のカードＣ３の仕様においては、第３のカードＣ３内の各種レジスタを読み出すためのコマンド「ＣＭＤ２」等でのＣＣＳ及びＣＣＳＤの送受信は規定されていない。従って、ここでも、第３のカードＣ３を第１〜第２のカードＣ１〜Ｃ２と同じに扱うことができ、また、レジスタ２２ｊ（ＷａｉｔＣＣＳフラグ（初期値「０」））及びレジスタ２２ｋ（ＧｏＣＣＳＤフラグ）を利用する必要もない。
【０１０９】
以上のステップにより、メインＣＰＵ２は、カードスロット６に装着されているカードが第１〜第３のカードＣ１〜Ｃ３の何れであるのかを識別できる。
【０１１０】
次に、メインＣＰＵ２は、カードスロット６に装着されているカードが第３のカードＣ３であると識別した場合には（ステップＳ１３）、ＷａｉｔＣＣＳフラグとして「１」をレジスタ２２ｊにセットする（ステップＳ１４）。
【０１１１】
そして、メインＣＰＵ２は、カードスロット６に装着されているカードの種類を表す情報をＲＡＭ４（図５参照）のワーク領域内に書き込む（ステップＳ１５）。
【０１１２】
図１０は、カードスロット６に装着されているカードの種類を識別した後に、メインＣＰＵ２が所望のコマンドの発行を指示する場合における本実施形態の動作を示すフローチャートである。ここでは、第３のカードＣ３がカードスロット６に装着されており、メインＣＰＵ２がデータ書き込みを行うためのコマンド「ＣＭＤ６１」の発行を指示するものとする。
【０１１３】
まず、メインＣＰＵ２が、ＲＯＭ３内のドライバプログラムを実行し、第３のカードＣ３へ書き込むデータをＲＡＭ４のＤＭＡ転送領域内に準備した後、コマンドインデックス（ここでは、「６１」）、アーギュメント、コマンドタイプ、レスポンスタイプ、データ転送タイプ、ＤＡＴ線使用フラグ、転送ブロックサイズ、転送ブロック数、及び、レスポンスチェックをレジスタ２２ａ〜２２ｉに書き込むことにより、コマンド「ＣＭＤ６１」の発行をＳＤＭＭＣホストコントローラ１０に指示する（ステップＳ４１）。
【０１１４】
ＳＤＭＭＣ制御部２３内のコマンド・レスポンス送受信部２３ａは、レジスタ制御部２２からの信号及びデータに従って、コマンド「ＣＭＤ６１」を第３のカードＣ３に発行し（ステップＳ５１）、第３のカードＣ３が、コマンド「ＣＭＤ６１」を実行し、コマンド「ＣＭＤ６１」に対するレスポンスをＳＤＭＭＣホストコントローラ１０に返信する（ステップＳ６１）。
【０１１５】
このときのコマンド・レスポンス送受信部２３ａの状態遷移（図９参照）は、先に説明した初期化シーケンスのための複数のコマンド発行時（ステップＳ１１、Ｓ２１、及び、Ｓ３１（図８参照））及び第３のカードＣ３内の各種レジスタを読み出すためのコマンド発行時（ステップＳ１２、Ｓ２２、及び、Ｓ３３（図８参照））における状態遷移と同様である。なお、ここでは、第３のカードＣ３にデータを書き込むため、コマンド・レスポンス送受信部２３ａは、第３のカードＣ３からレスポンスを受信した後、データ送受信部２３ｂに第３のカードＣ３へのデータ転送を指示する。
【０１１６】
次に、コマンド・レスポンス送受信部２３ａは、レジスタ２２ｊ内のＷａｉｔＣＣＳフラグが「１」にセットされているため（第３のカードＣ３がカードスロット６に装着されているため）、ステップＳ５２からステップＳ５３に処理を移す。なお、このとき、コマンド・レスポンス送受信部２３ａは、レジスタ２２ｊ内のＷａｉｔＣＣＳフラグが「１」にセットされているため、ＣＭＤ線にハイレベルの信号を出力せず、ＣＭＤ線をハイインピーダンス状態にする。
【０１１７】
このとき、コマンド・レスポンス送受信部２３ａのステートは、レジスタ２２ｊ内のＷａｉｔＣＣＳフラグが「１」にセットされているため、レスポンスエンドビット受信ステートＳＴ７からＣＣＳ受信待機ステートＳＴ８に遷移する（図９参照）。
【０１１８】
コマンド・レスポンス送受信部２３ａは、ＧｏＣＣＳＤフラグ（レジスタ２２ｋ）が「１」にセットされるか、第３のカードＣ３からＣＣＳを受信する（ＣＭＤ線がローレベルになる）まで待機する（ステップＳ５３、Ｓ５５）。
【０１１９】
このとき、コマンド・レスポンス送受信部２３ａのステートは、ＣＣＳ受信待機ステートＳＴ８である（図９参照）。
【０１２０】
一方、メインＣＰＵ２は、コマンド「ＣＭＤ６１」に対するレスポンスの内容を判定する（ステップＳ４２）。
そして、メインＣＰＵ２は、ＣＣＳＤを送信するか否かを決定し（この決定にレスポンスの内容を利用しても良い）、ＣＣＳＤを送信することに決定した場合には（ステップＳ４３）、ＧｏＣＣＳＤフラグとして「１」をレジスタ２２ｋにセットした後（ステップＳ４４）、処理をステップＳ４１に戻して次のコマンドの発行処理に移ることができる。
【０１２１】
また、メインＣＰＵ２は、ＣＣＳＤを送信しないことに決定した場合には、ＳＤＭＭＣホストコントローラ１０からのＣＣＳの受信通知を待つことになる（ステップＳ４３、Ｓ４５）。
【０１２２】
コマンド・レスポンス送受信部２３ａは、ＧｏＣＣＳＤフラグが「１」にセットされると（ステップＳ５３）、ＣＣＳＤを第３のカードＣ３に送信するとともに（ステップＳ５４）、次のコマンドへの備えとしてＧｏＣＣＳＤフラグを「０」にクリアし、処理をステップＳ５１に戻してメインＣＰＵ２からの次のコマンド発行指示に備える。
【０１２３】
このとき、コマンド・レスポンス送受信部２３ａのステートは、ＣＣＳ受信待機ステートＳＴ８からＣＣＳＤ送信ステートＳＴ１１に遷移し、このＣＣＳＤ送信ステートＳＴ１１においてＣＣＳＤを第３のカードＣ３に送信し、ＣＣＳＤ送信終了ステートＳＴ１２を経て、アイドルステートＳＴ０に遷移する（図９参照）。
【０１２４】
他方、第３のカードＣ３は、ＣＣＳＤを受信した場合には（ステップＳ６２）、ＣＣＳを送信することは出来ないので、処理をステップＳ６１に移し、次のコマンドに備えることになる。
【０１２５】
また、第３のカードＣ３は、ＣＣＳＤを受信待機し（ステップＳ６２）、ステップＳ６３において、ＣＣＳを送信するか否かを決定する。そして、第３のカードＣ３は、ＣＣＳＤの受信待機の継続を決定した場合には処理をステップＳ６２に戻し、カード内部でコマンド完了割込みが発生してＣＣＳを送信することに決定した場合には、ステップＳ６４においてＣＣＳをＳＤＭＭＣホストコントローラ１０に送信した後、処理をステップＳ６１に戻して次のコマンドに備える。
【０１２６】
コマンド・レスポンス送受信部２３ａは、第３のカードＣ３からＣＣＳを受信すると（ステップＳ５５）、ＣＣＳの受信をメインＣＰＵ２に通知した後（ステップＳ５６）、処理をステップＳ５１に戻してメインＣＰＵ２からの次のコマンド発行指示に備える。なお、ＣＣＳの受信通知は、割込み信号で行うようにしても良いし、レジスタ制御部２２内にレジスタを設けて、このレジスタにフラグをセットすることで行うようにしても良い。
【０１２７】
このとき、コマンド・レスポンス送受信部２３ａのステートは、ＣＣＳ受信待機ステートＳＴ８からＣＣＳ受信ステートＳＴ９に遷移し、このＣＣＳ受信ステートＳＴ９においてＣＣＳの受信をメインＣＰＵ２に通知し、ＣＣＳ受信終了ステートＳＴ１０を経て、アイドルステートＳＴ０に遷移する（図９参照）。
【０１２８】
一方、メインＣＰＵ２は、ＣＣＳの受信通知を受け取ると（ステップＳ４５）、処理をステップＳ４１に戻して、次のコマンド（この場合、次のコマンドとして、コマンド「ＣＭＤ３９」を出力することが望ましいとされている。）の発行処理に移ることができる。
【０１２９】
４．  比較例
第１及び第２のカードＣ１〜Ｃ２に対応し、第３のカードＣ３には対応しない比較例について説明する。この比較例の場合には、第３のカードＣ３には対応せず、従って、ＣＣＳ及びＣＣＳＤの送受信を行わないため、比較例のとり得るステートは、図１１に示すように、アイドルステートＳＴ０、コマンド送信ステート、及び、レスポンス受信ステートを含めば足りる。また、第１及び第２のカードＣ１〜Ｃ２にコマンドを発行し、第１及び第２のカードＣ１〜Ｃ２からレスポンスを受信する場合の動作は、ステップＳ１１、Ｓ２１、Ｓ３１（図９参照）等に関して先に説明した通りである。
【０１３０】
一方、本実施形態においては、図９に示すように、比較例のとり得るアイドルステートＳＴ０、コマンド送信ステート、及び、レスポンス受信ステートに、ＣＣＳ・ＣＣＳＤ送受信ステートを加えている。そして、本実施形態においては、カードスロット６に装着されているカードが第１及び第２のカードＣ１〜Ｃ２である場合には、比較例と同様にレスポンスエンドビット受信ステートＳＴ７からアイドルステートＳＴ０に遷移し、カードスロット６に装着されているカードが第３のカードＣ３である場合には、レスポンスエンドビット受信ステートＳＴ７からＣＣＳ受信待機ステートＳＴ８に遷移し、その後アイドルステートＳＴ０に遷移する。このように、コマンド送信ステート及びレスポンス受信ステートの中身を変更することなく、レスポンスエンドビット受信ステートＳＴ７の後ろにＣＣＳ・ＣＣＳＤ送受信ステートを付加するだけで、第１〜第２のカードＣ１〜Ｃ２への対応を維持しながら、第３のカードＣ３への対応をも可能とする実装を容易に実現することができる。
【０１３１】
なお、本発明は上述した実施の形態に限定されるものではなく、本発明の要旨の範囲内で種々の変形実施が可能である。また図５〜図７の各図において、すべてのブロックを含める必要はなく、その一部のブロックを省略する構成にしてもよい。
【０１３２】
例えば、電子機器、ホストコントローラの構成は、図５〜図７等で説明した構成に限定されず、種々の変形実施が可能である。また本発明のホスト制御手法も本実施形態で説明したものに限定されるものではなく、種々の変形実施が可能である。
【０１３３】
また、明細書又は図面中の記載において広義な用語（電子機器、ホストコントローラ、デバイス、情報処理装置等）として引用された用語（ＳＤＭＭＣホストコントローラ、ＣＥ−ＡＴＡ（商標）デバイス、ＣＰＵ等）は、明細書又は図面中の他の記載においても広義な用語に置き換えることができる。
【０１３４】
また、本発明のうち従属請求項に係る発明においては、従属先の請求項の構成要件の一部を省略する構成とすることもできる。また、本発明の１の独立請求項に係る発明の要部を、他の独立請求項に従属させることもできる。
【０１３５】
また、本発明は、ＭＭＣ（登録商標）、ＳＤカード（登録商標）、ＣＥ−ＡＴＡ（商標）を発展した仕様やこれらのカードと同様の思想に基づく仕様、規格、及び／又は、バージョンに準拠したカードのホストコントローラにも適用できる。
【図面の簡単な説明】
【０１３６】
【図１】コマンド及びレスポンスのフォーマットの一例を示す図。
【図２】カードとホストコントローラとの間の信号のタイミングチャート。
【図３】カードとホストコントローラとの間の信号のタイミングチャート。
【図４】カードとホストコントローラとの間の信号のタイミングチャート。
【図５】本実施形態の電子機器の構成例の図。
【図６】図５のカードコントローラの内部構成のブロック図。
【図７】図６のレジスタ制御部内のレジスタマップを示す図。
【図８】本実施形態の動作例のフロー図。
【図９】図６のコマンド・レスポンス送受信部の状態遷移図。
【図１０】本実施形態の動作例のフロー図。
【図１１】比較例の状態遷移図。
【符号の説明】
【０１３７】
１  電子機器、２  メインＣＰＵ、３  ＲＯＭ、４  ＲＡＭ、５  カードコントローラ、６  カードスロット、１０  ＳＤＭＭＣホストコントローラ、１１  ＣＰＵインタフェース、１２  ＤＭＡインタフェース、１３  カードインタフェース、２１  クロック出力部、２２  レジスタ制御部、２２ａ〜２２ｏ  レジスタ、２３  ＳＤＭＭＣ制御部、２３ａ  コマンド・レスポンス送受信部、２３ｂ  データ送受信部、２４  ＤＭＡ制御部、２４ａ  ＦＩＦＯバッファ、Ｃ１〜Ｃ３  カード
【図１】
2008293078.tif 000003
【図２】
2008293078.tif 000004
【図３】
2008293078.tif 000005
【図４】
2008293078.tif 000006
【図５】
2008293078.tif 000007
【図６】
2008293078.tif 000008
【図７】
2008293078.tif 000009
【図８】
2008293078.tif 000010
【図９】
2008293078.tif 000011
【図１０】
2008293078.tif 000012
【図１１】
2008293078.tif 000013