(57)【要約】      （修正有）【課題】リセット後または電源オン後の通信開始までの待ち時間を必要最小限にする。【解決手段】マスタデバイス（ＭＤ）であるメインＣＰＵ１１が、スレーブデバイス（ＳＤ）であるセキュアＭＰＵ１２にリセット命令を送信し（ＳＴ１１）、または、電源がオンされると、セキュアＭＰＵ１２は起動を開始し、クロック信号線ＳＣＬの反転（通知１）または再反転（通知２）によって、メインＣＰＵ１１に起動状態の通知を行い、この通知に基づいてメインＣＰＵ１１が通信可能となる。この通知は、データ信号線ＳＤＡの信号レベル変化、あるいは２つの信号線の信号レベルの組み合わせでもよい。【選択図】図５
2014067230.tif 000002
【特許請求の範囲】
【請求項１】
クロック信号線およびデータ信号線の２種類の信号線によって接続されたマスタデバイスと少なくとも１つのスレーブデバイスとを有し、前記マスタデバイスと前記スレーブデバイスとの間で前記２種類の信号線を用いて所定の通信方式でデータを伝送する情報処理装置であって、
前記マスタデバイスが前記スレーブデバイスにリセットをかけ、または、前記マスタデバイスおよび前記スレーブデバイスの電源がオンされると、前記スレーブデバイスは、起動を開始し、前記クロック信号線と前記データ信号線の少なくとも一方から、前記マスタデバイスに起動状態の通知を行う、
ことを特徴とする情報処理装置。
【請求項２】
前記所定の通信方式は、
前記クロック信号線に出力するクロック信号に同期させて所定の単位データを前記マスタデバイスが前記データ信号線に出力し、当該単位データを受信した前記スレーブデバイスが応答信号を前記データ信号線に出力し、当該応答信号を前記マスタデバイスが受信すると、次に伝送すべき所定の単位データを前記マスタデバイスが前記クロック信号に同期させて前記データ信号線に出力する、前記マスタデバイスが主導して行うシリアル通信方式である、
請求項１に記載の情報処理装置。
【請求項３】
前記スレーブデバイスは、前記マスタデバイスの制御により実行される前記情報処理装置の機能に対し、当該機能を変更し、または他の機能を追加する制御を行うデバイスである、
請求項１または２に記載の情報処理装置。
【請求項４】
前記情報処理装置は、ＩＣカードリーダライタであり、
前記マスタデバイスは、ＩＣカードに対し情報の書き込みと読み出しを制御するメイン処理装置であり、
前記スレーブデバイスは、前記情報の暗号化を実行し、または暗号化された情報を処理するサブ処理装置である、
請求項１に記載の情報処理装置。
【請求項５】
前記スレーブデバイスは、前記リセット信号を入力し、または、前記電源がオンされたことを検知すると、前記クロック信号線の接続端子と前記データ信号線の接続端子の少なくとも一方が接続されたポートを、前記起動状態の通知を出力する出力ポートに設定する、
請求項１から４の何れか一項に記載の情報処理装置。
【請求項６】
前記スレーブデバイスは、初期化処理を開始すると、前記出力ポートが設定された接続端子に接続された、前記クロック信号線と前記データ信号線の少なくとも一方の信号レベルを反転させることで、前記初期化処理を開始したことの通知を行い、
前記マスタデバイスは、前記信号レベルの反転を監視することで、前記スレーブデバイスが初期化処理を開始したことを検知する、
請求項５に記載の情報処理装置。
【請求項７】
前記スレーブデバイスは、前記初期化処理を完了すると、前記信号レベルを再反転させることで、前記初期化処理が完了したことの通知を行い、
前記マスタデバイスは、前記信号レベルが反転後に再反転することを監視し、前記スレーブデバイスが前記初期化処理を完了したことを検知する、
請求項６に記載の情報処理装置。
【請求項８】
前記スレーブデバイスは、初期化処理を開始すると、前記出力ポートが設定された接続端子に接続された、前記クロック信号線と前記データ信号線の少なくとも一方の信号レベルを反転させ、初期化処理が完了すると、前記信号レベルを再反転させることで、前記初期化処理が完了したことの通知を行い、
前記マスタデバイスは、前記信号レベルが反転後に再反転することを監視し、前記スレーブデバイスが初期化処理を完了したことを検知する、
請求項５に記載の情報処理装置。
【請求項９】
前記スレーブデバイスは、前記初期化処理の完了を通知した後に、前記クロック信号線が接続された接続端子と、前記データ線が接続された接続端子を、それぞれ入力ポートに設定し、
前記マスタデバイスは、前記スレーブデバイスが前記初期化処理を完了したことを検知した後に、データ通信の開始条件を前記スレーブデバイスに送信する、
請求項７または８に記載の情報処理装置。
【請求項１０】
前記マスタデバイスが送信する前記データ通信の開始条件は、前記クロック信号線がハイレベルのときに前記データ信号線をローレベルにすることである、
請求項９に記載の情報処理装置。
【請求項１１】
クロック信号線およびデータ信号線の２種類の信号線によって接続されたマスタデバイスとスレーブデバイスとが前記２種類の信号線を用いて所定の通信方式でデータを伝送するデータ通信方法であって、
前記マスタデバイスが前記スレーブデバイスにリセットをかけ、または、前記マスタデバイスおよび前記スレーブデバイスの電源がオンされると、前記スレーブデバイスが起動を開始するステップと、
前記スレーブデバイスが起動時の初期化処理を開始し、前記クロック信号線と前記データ信号線の少なくとも一方から、前記マスタデバイスに起動状態の通知を行うステップと、
前記起動状態の通知により、前記スレーブデバイスで前記初期化処理が完了したことを前記マスタデバイスが検知すると、前記マスタデバイスは、前記データ信号線が接続されたポートを出力ポートに設定してデータ通信の開始が可能な状態とするステップと、
を含むデータ通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マスタデバイスとスレーブデバイスが、クロック信号線とデータ信号線の２種類の信号線により接続されてデータ通信を所定の通信方式で行う情報処理装置およびデータ通信方法に関する。
【背景技術】
【０００２】
マスタデバイスとスレーブデバイスが、クロック信号線とデータ信号線の２種類の信号線を介して行うデータ通信としては、例えば、フィリップス社によりバス仕様が提案されて実用化されているＩ２Ｃ（Inter-Integrated Circuitの略でI-squared-Cと呼称）通信が知られる。
Ｉ２Ｃ通信によりアクセスが可能となるＩＣ、例えばＥＥＰＲＯＭなどが広く製造・販売されている。このようにＩ２Ｃ通信規格に準拠したＩＣをＩ２Ｃデバイスと呼ぶ。
【０００３】
Ｉ２Ｃデバイスとしての、１つのマスタデバイスと複数のスレーブデバイスが、クロック信号線とデータ信号線接続された構成を有する装置が知られる（例えば、特許文献１の図５参照）。クロック信号線とデータ信号線は、抵抗を介して電源電圧に電位がプルアップされる。データ信号やクロック信号を含む全ての信号は、このハイレベルの信号線レベルを適宜、ローレベルに低下させることで生成される。
【０００４】
Ｉ２Ｃ通信では、コマンド、データ等の情報は、バイト（８ビット）単位でマスタデバイスからスレーブデバイスに送信される。また、アドレスは、例えば７ビットまたは１０ビットで送信される。
マスタデバイスからスレーブデバイスに１バイトの情報を送信し、これを受けたスレーブデバイスが、バイトごとに添付されるアクノリッジ信号を返すと、これを受信したマスタデバイスが次のバイトを送信し、この一連の動作が通信終了まで繰り返される。
Ｉ２Ｃ通信では、通信の開始／終了、アドレス指定、データ送受信の向き（マスタ側からみたデータの書き込み又は読み出しの制御）、アクノリッジ信号の生成、クロックの生成と送出の全てはマスタデバイスで制御される。
【０００５】
但し、スレーブデバイスがデータバイトを受信できなくなった場合、あるいは内部処理によりデータ受信を遅らせたいときは、スレーブデバイスが、アクノリッジ信号を返さない、あるいはクロック信号線を強制的にローにするという権限がスレーブデバイスに与えられている。
このようにして、Ｉ２Ｃ通信では、スレーブデバイスがデータ受信中に誤動作することなく情報の受信が可能な仕組みが規格化されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特表２００６−０９０４７３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、マスタデバイスがスレーブデバイスをリセットした後、あるいは電源投入後に、スレーブデバイスを初期状態に戻す必要が生じた場合、その初期化処理に起因した誤動作防止の仕組みは、Ｉ２Ｃに規定されていない。
このため、マスタデバイスはスレーブデバイスに何らかの手段でリセットをかけた後、Ｉ２Ｃデバイスが通信可能な状態になっているか否かを確認するすベがない。
【０００８】
したがって、マスタデバイスは、リセット後、ある一定時間経過したらスレーブデバイスにアクセスするという方法をとるしかない。
ここで、マスタデバイスがリセット信号を送った後に、上記一定時間を待たずにスレーブデバイスにアクセスしたとする。この場合、適切なアクセスができないため、スレーブデバイスが誤作動する可能性がある。上記一定時間については、回路の溝成により、最小限必要な時間が異なる。そのため、スレーブデバイスの再起動のための待ち時間は、実際の装置ができあがってから実測値を元に設定しなければならないという不都合がある。また、誤動作を防止するには、必要最小限の時間にマージンを加えて上記一定時間を設定するため、無駄な待ち時間が発生することを回避できない。
【０００９】
本発明は、リセット後または電源オン後の通信開始までの待ち時間を必要最小限にした情報処理装置とデータ通信方法を提供するものである。
【課題を解決するための手段】
【００１０】
本発明の第１の観点に関わる情報処理装置は、クロック信号線およびデータ信号線の２種類の信号線によって接続されたマスタデバイスと少なくとも１つのスレーブデバイスとを有し、前記マスタデバイスと前記スレーブデバイスとの間で前記２種類の信号線を用いて所定の通信方式でデータを伝送する情報処理装置であって、前記マスタデバイスが前記スレーブデバイスにリセットをかけ、または、前記マスタデバイスおよび前記スレーブデバイスの電源がオンされると、前記スレーブデバイスは、起動を開始し、前記クロック信号線と前記データ信号線の少なくとも一方から、前記マスタデバイスに起動状態の通知を行う。
【００１１】
本発明の第２の観点に関わるデータ通信方法は、クロック信号線およびデータ信号線の２種類の信号線によって接続されたマスタデバイスとスレーブデバイスとが前記２種類の信号線を用いて所定の通信方式でデータを伝送するデータ通信方法であって、前記マスタデバイスが前記スレーブデバイスにリセットをかけ、または、前記マスタデバイスおよび前記スレーブデバイスの電源がオンされると、前記スレーブデバイスが起動を開始するステップと、前記スレーブデバイスが起動時の初期化処理を開始し、前記クロック信号線と前記データ信号線の少なくとも一方から、前記マスタデバイスに起動状態の通知を行うステップと、前記起動状態の通知により、前記スレーブデバイスで前記初期化処理が完了したことを前記マスタデバイスが検知すると、前記マスタデバイスは、前記データ信号線が接続されたポートを出力ポートに設定してデータ通信の開始が可能な状態とするステップと、を含む。
【００１２】
上記構成によれば、マスタデバイスは、起動状態の通知を受けて、これを基にデータ通信の開始を決定できるため、リセット開始あるいは電源オンからデータ通信の開始時期までの待ち時間が必要最小限になる。
【発明の効果】
【００１３】
本発明によれば、リセット後または電源オン後の通信開始までの待ち時間を必要最小限にした情報処理装置とデータ通信方法を提供することができる。
【図面の簡単な説明】
【００１４】
【図１】ＩＣカードリーダライタを中心としたシステム構成図である。
【図２】基板に実装されてＩＣカードリーダライタ内に組み込まれたセキュアＭＰＵとメインＣＰＵの接続図である。
【図３】Ｉ２Ｃ通信を行うメインＣＰＵとセキュアＭＰＵの入出力ポート構成を示す図である。
【図４】Ｉ２Ｃ通信時における、データ信号、アクノリッジ信号およびクロック信号の波形図である。
【図５】リセット時の処理ステップを時間軸上で並べて示す図である。
【図６】図５の処理のうち、メインＣＰＵが実行する処理のフローチャートである。
【図７】図５の処理のうち、セキュアＭＰＵが実行する処理のフローチャートである。
【発明を実施するための形態】
【００１５】
本発明の実施形態を、「情報処理装置」がＩＣカードリーダライタの場合を例として、図面を参照して説明する。
【００１６】
＜１．第１の実施の形態＞
［全体構成］
図１に、実施の形態に関わる「情報処理装置」としてのＩＣカードリーダライタを中心とした全体構成（システム構成）を示す。
【００１７】
図１に図解したシステムは、ＩＣカードリーダライタ１、上位装置２、およびＩＣカード３００を有して構成される。
上位装置２は、ＩＣカードリーダライタ１が内蔵される装置であり、使用用途に応じた機能を実行するときにＩＣカードの情報を利用する装置である。上位装置２として、キャッシュディスペンサ、券売機、自動販売機等を例示できる。
【００１８】
ＩＣカードリーダライタ１は、２種類の信号線を有する簡単な構造の双方向性バスに、各機能ブロックが接続された構成を有する。双方向性バスとして、例えばＩ２Ｃバスが採用されている。
Ｉ２Ｃバスは、クロック信号線ＳＣＬおよびデータ信号線ＳＤＡの２種類の信号線を備え、それぞれの信号線がプルアップ抵抗Ｒｐを介して電源電圧ＶＤＤの供給線に接続されている。電源電圧ＶＤＤは、ＩＣカードリーダライタ１に内蔵された電源回路１６から供給される。
【００１９】
ＩＣカードリーダライタ１は、「マスタデバイス（ＭＤ）」としてのメインＣＰＵ１１と、少なくとも１つのスレーブデバイス（ＳＤ）１２−１〜１２−ｎを有する。また、ＩＣカードリーダライタ１は、上位装置インターフェイス（上位装置Ｉ／Ｆ１３）、カードインターフェイス（カードＩ／Ｆ１４）、クロック信号を発生する手段（例えばＰＬＬ（Phase-locked loop）回路１５）、および電源回路１６を有する。ここでメインＣＰＵ１１は、「メイン処理装置」の一例である。
【００２０】
上位装置Ｉ／Ｆ１３は、上位装置２からＩＣカードリーダライタ１へ送られた信号を所定レベルの信号に変換し、それをメインＣＰＵ１１に転送する機能を有する。また、上位装置Ｉ／Ｆ１３は、メインＣＰＵ１１からの信号を逆変換して、逆変換後の信号を上位装置２へ転送する。上位装置２とＩＣカードリーダライタ１の間の通信規約を定める規格は、ＵＳＢやＲＳ２３２Ｃ等が一般的である。
【００２１】
カードＩ／Ｆ１４は、メインＣＰＵ１１からの信号を、ＩＣカード３００に応じた電圧レベルの信号に変換し、ＩＣカード３００に送信する。また、ＩＣカード３００から受信した信号を、所定レベルの信号に逆変換し、それをメインＣＰＵ１１に伝える機能を有する。
【００２２】
ＩＣカードリーダライタ１とＩＣカード３００間の通信は、所定の通信規約に基づいて実行される。
ＩＣカードリーダライタ１のカードＩ／Ｆ１４は、ＩＣカード３００のカード差し込み口（スロット等）を有する。
【００２３】
ＩＣカード３００は、所定の規約で端子の寸法と位置が規定され、一方のカード面に接触端子群が露出して形成されている。
ＩＣカード３００の端子３０１の配置に対応して、カードＩ／Ｆ１４のスロット内に接続端子１４１が設けられる。このためＩＣカード３００をスロットに挿入すると、ＩＣカード３００の端子３０１が接続端子１４１に１対１で接続される。
【００２４】
図１に示すように、クロック信号線ＳＣＬおよびデータ信号線ＳＤＡに対し、「マスタデバイス（ＭＤ）」としてのメインＣＰＵ１１と、少なくとも１つのスレーブデバイス（ＳＤ）１２−１〜１２−ｎが接続されている。ここで図示の便宜上、図１には、スレーブデバイス（ＳＤ）１２−１，１２−２，…，１２−ｎが図示されている。但し、ｎ＝１の場合、スレーブデバイス１２−１のみの構成となり、ｎ＝２の場合、スレーブデバイス（ＳＤ）１２−１と１２−２を有する構成となる。
【００２５】
図１に示す構成例では、メインＣＰＵ１１に、上位装置Ｉ／Ｆ１３、カードＩ／Ｆ１４、ＰＬＬ回路１５及び電源回路１６が接続されている。
但し、上位装置Ｉ／Ｆ１３、カードＩ／Ｆ１４、ＰＬＬ回路１５及び電源回路１６の全てを、スレーブデバイス（ＳＤ）として、データ信号線ＳＤＡとクロック信号線ＳＣＬに接続させる構成も採用できる。あるいは、例えば電源回路１６といった特定の回路はメインＣＰＵ１１に直接接続し、他の回路をスレーブデバイス（ＳＤ）とすることも可能である。
【００２６】
なお、上位装置Ｉ／Ｆ１３とカードＩ／Ｆ１４は、メインＣＰＵ１１のオンチップ・インターフェイスとして実現してもよく、この場合、上位装置Ｉ／Ｆ１３とカードＩ／Ｆ１４はブロック構成上、省略される。
【００２７】
メインＣＰＵ１１は、ＲＯＭ、ＲＡＭ等を含む記憶部１１１を備える。ＲＯＭ内に、ＩＣカードリーダライタ１の動作プログラムや初期値、パラメータなどを格納する。ＲＡＭが、メインＣＰＵ１１のワーキングエリアとして機能する。また、スレーブデバイス（ＳＤ）を識別する、７ビットまたは１０ビットのアドレスが、ＲＡＭ内に書き換え可能に格納される。
【００２８】
メインＣＰＵ１１は、これに接続された上位装置Ｉ／Ｆ１３、カードＩ／Ｆ１４、ＰＬＬ回路１５、電源回路１６、ならびに図示を省略した操作部等を統括して制御する。また、メインＣＰＵ１１は、Ｉ２Ｃ通信のマスタデバイス（ＭＤ）として機能する。
【００２９】
本実施形態においては、スレーブデバイス（ＳＤ）１２−１〜ｎは、その少なくとも１つが、ＭＰＵ（Micro-Processing Unit）等の起動時の処理に時間を要するデバイスである。ＭＰＵもＲＯＭやＲＡＭ等を含む記憶部を有し、これに自身のアドレスが格納されている。
【００３０】
ここで、ＭＰＵは「サブ処理装置」の一例である。ＭＰＵは、メインＣＰＵ１１の制御により実行されるＩＣカードリーダライタの機能に対し、当該機能を変更し、または他の機能を追加する制御を行うデバイスである。
このため、図１に図解するＩＣカードリーダライタ１は、Ｉ２Ｃ通信の規格に準拠したＭＰＵを必要に応じて追加することにより、ＩＣカードリーダライタ１の機能を追加し、あるいは変更することができる。このため、ＩＣカードリーダライタ１は、簡素な構成で汎用性が高く、また基本的な部分であるメインＣＰＵ、バスおよびＩ／Ｆを維持したまま、将来の機能追加に柔軟に対応できる構成を有している。
【００３１】
［データ通信の概略］
ここで、マスタデバイス（ＭＤ）とスレーブデバイス（ＳＤ）とのデータ通信を、簡単に述べる。
通常、マスタデバイス（ＭＤ）からアドレスが指定されたスレーブデバイス（ＳＤ）が、マスタデバイス（ＭＤ）との通信を許可される。具体的には、マスタデバイス（ＭＤ）から、アドレスと、送受信の向きを示すＲ／Ｗフラグとを含むコントロール・バイト（ＣＢ）が最初に送られ、このアドレスで指定されたスレーブデバイス（ＳＤ）のみがマスタデバイス（ＭＤ）との通信を許可される。
その後、マスタデバイス（ＭＤ）から、コマンドやデータ等の情報を送る場合、この情報は、「単位データ」としてのバイト（８ビット）ごとに、アクノリッジ信号が最後に添付されて送られる。スレーブデバイス（ＳＤ）は、各バイトを受け取るごとにアクノリッジ信号を返し、マスタデバイス（ＭＤ）がアクノリッジ信号を受けると次のバイトを送出する。そして、この一連の動作を繰り返す。この仕組みで送信可能なバイト数に制限はないが、途中でマスタデバイス（ＭＤ）が終了条件を設定するとデータ通信が終了する。
【００３２】
［起動時の処理］
次に、リセット時または電源オン時の処理について、簡単に述べる。
スレーブデバイス（ＳＤ）であるＭＰＵは、リセット時または電源がオンされると、そのハードウェアをリセットし、動作プログラム（ソフトウェア）を初期化する初期化処理を、まず実行する。初期化処理の時間は数ｍｓｅｃ〜数十ｍｓｅｃと、ＭＰＵの動作プログラムの規模やハードウェア構成に応じて異なっている。
【００３３】
初期化処理の終了を知るための手がかりをマスタデバイス（ＭＤ）に知らせるために、スレーブデバイス（ＳＤ）が、起動を開始した後に、クロック信号線ＳＣＬまたはデータ信号線ＳＤＡの少なくとも一方から、マスタデバイス（ＭＤ）に起動状態の通知を行う。
この通知は、初期化処理が最終段階に入ったこと、例えばソフトウェアの初期化処理が開始されたことの通知でもよいし、ソフトウェアの初期化処理が終了し、全ての初期化処理が完了したことの通知でもよい。
【００３４】
通知の具体的な態様としては、クロック信号線ＳＣＬまたはデータ信号線ＳＤＡの信号レベルを、“Ｈ(HIGH)”レベル（ＶＤＤレベル、以下“Ｈ”と表記）の待機状態（プルアップ状態）から“Ｌ(LOW)”レベル（例えばＧＮＤレベル、以下“Ｌ”と表記）に下げる反転動作と、この反転後にさらに反転させる再反転動作との何れでもよい。
なお、クロック信号線ＳＣＬの信号レベルの反転または再反転で通知を行うときに、データ信号線ＳＤＡは“Ｈ”（ＶＤＤレベル）の待機状態（プルアップ状態）である。同様に、データ信号線ＳＤＡの反転または再反転で通知を行うときに、クロック信号線ＳＣＬは“Ｈ”（ＶＤＤレベル）の待機状態（プルアップ状態）である。
【００３５】
ところで、Ｉ２Ｃ通信では通常のデータ通信の開始条件として、「クロック信号線ＳＣＬの信号レベルが“Ｈ”のときにデータ信号線ＳＤＡの信号レベルを“Ｈ”→“Ｌ”とする」と規定されている。また、通常のデータ通信の終了条件として、「クロック信号線ＳＣＬの信号レベルが“Ｈ”のときにデータ信号線ＳＤＡの信号レベルを“Ｌ”→“Ｈ”とする」と規定されている。
【００３６】
データ信号線ＳＤＡの反転または再反転で通知を行う動作は、この開始条件や終了条件と一見すると区別がつかない。
しかし、開始条件や終了条件は、基本的にマスタデバイス（ＭＤ）が生成するものであり、通知は、スレーブデバイス（ＳＤ）が生成するものである点で異なる。したがって、マスタデバイス（ＭＤ）は、自身が開始条件や終了条件を生成していないにもかかわらず、データ信号線ＳＤＡの反転または再反転を検出したならば、これをスレーブデバイス（ＳＤ）からの「起動状態の通知」であると認識することができる。
また、時期的な観点からも区別ができる。つまり、開始条件や終了条件は、マスタデバイス（ＭＤ）がデータ開始可能と判断した後のデータ信号線の電位変化であるが、その前の起動中の期間に開始条件や終了条件と同じ信号線変化を検知したならば、これをスレーブデバイス（ＳＤ）からの「起動状態の通知」であると認識することができる。
【００３７】
一方、クロック信号線ＳＣＬとデータ信号線ＳＤＡの双方を用いて「起動状態の通知」を行なってもよい。
例えば、Ｉ２Ｃ通信では、クロック信号線ＳＣＬが“Ｈ”の期間中に、データ信号線ＳＤＡの電位を変化させることは許可されていない。このことを利用して、クロック信号線ＳＣＬの信号レベルが“Ｌ”の期間中に、データ信号線ＳＤＡの信号レベルを“Ｈ→Ｌ”に反転させ、さらに“Ｌ→Ｈ”に再反転させることで「起動状態の通知」を行うことができる。
あるいは、これとは逆に、データ信号線ＳＤＡの信号レベルが“Ｌ”の期間中に、クロック信号線ＳＣＬの信号レベルを“Ｈ→Ｌ”に反転させ、さらに“Ｌ→Ｈ”に再反転させることで「起動状態の通知」を行うことができる。
【００３８】
以上のように、「スレーブデバイス（ＳＤ）が、クロック信号線ＳＣＬとデータ信号線ＳＤＡの少なくとも一方を介して、自身の起動状態の通知をマスタデバイス（ＭＤ）に対して行う」ことが大きな特徴の一つである。
【００３９】
マスタデバイス（ＭＤ）は、以上の何れかの態様をもつ「信号線レベルの反転または再反転」をスレーブデバイス（ＳＤ）から受信し、「起動状態の通知」であると認識する。
これにより、マスタデバイス（ＭＤ）は、通常のデータ通信を開始可能な時期を知ることができる。具体的に、「起動状態の通知」が「全ての初期化処理の完了」を意味するのであれば、即データ通信の開始が可能である。一方、「起動状態の通知」が「初期化処理の途中の段階（例えば、初期化処理の最終段階の開始）」を知らせるものであれば、あとどれ位待てば全ての初期化処理が完了するかをおおよそ予測することができる。
【００４０】
このように、マスタデバイス（ＭＤ）は、全ての初期化処理が完了する時期を通知に基づいて知ることができることから、無駄な待ち時間を極力減らしてスムーズにデータ通信を開始できる。
なお、初期化処理の具体的な内容、通知のタイミングおよび入出力ポートの切り換え等は、より具体的な形態である、以下の第２の実施の形態で述べる。
【００４１】
＜２．第２の実施の形態＞
上記第１の実施の形態では全体構成の概略を述べたが、第２の実施の形態では、スレーブデバイス（ＳＤ）が１つのセキュアＭＰＵであり、ＩＣカードリーダライタのオプション基板にセキュアＭＰＵを実装して追加した場合を具体例として、より詳細に説明する。
【００４２】
Ｉ２Ｃデバイスは、その製造メーカにより通信のコア（通信実行分）が設計され組み込まれてＩＣとして市販されている。Ｉ２Ｃデバイスの購入者は、該Ｉ２Ｃデバイスを基板に実装する。
ＩＣカードリーダライタ１の製造に際し、Ｉ２Ｃデバイスが実装された基板を、ＩＣカードリーダライタ１内に配置する。つぎに、Ｉ２Ｃデバイスを、通信相手となるＩＣ、例えばメインＣＰＵとＩ２Ｃ通信ができるように接続する。そして、該メインＣＰＵの組み込みソフトウェアによりＩ２Ｃ通信プロトコル（通信手順）を組み込み、この手順に従ってＩ２Ｃデバイスとアクセスできるようにする。
【００４３】
このような追加溝成をＩＣカードリーダライタ１に組み込むことで、メインＣＰＵが、それ自身では本来持っていない機能を、Ｉ２Ｃ通信が可能なＩ２Ｃデバイスによって補うことができる。このため、装置全体としては、より高機能な装置として振る舞うことができる。
【００４４】
［Ｉ２Ｃ通信を行うブロック構成］
図２は、基板に実装されてＩＣカードリーダライタ内に組み込まれたセキュアＭＰＵとメインＣＰＵの接続図である。
「マスタデバイス（ＭＤ）」としてのメインＣＰＵ１１は、カードリーダ制御基板に実装されている。スレーブデバイス（ＳＤ）としてのセキュアＭＰＵ１２は、セキュリティ機能制御基板に実装された状態で、当該ＩＣカードリーダライタ１内に配置されている。メインＣＰＵ１１とセキュアＭＰＵ１２のクロック端子Ｔｃ同士が、１本のクロック信号線ＳＣＬにより相互に接続されている。メインＣＰＵ１１とセキュアＭＰＵ１２のデータ端子Ｔｄ同士が、１本のデータ信号線ＳＤＡにより相互に接続されている。
カードリーダ制御基板とセキュリティ機能制御基板とに、電源回路１６（図１参照）から電源電圧ＶＤＤが供給される。メインＣＰＵ１１とセキュアＭＰＵ１２は、電源電圧ＶＤＤにより動作する。
【００４５】
セキュアＭＰＵ１２は、内部メモリへの外部からの不正な読み出し、書き込みを防止するセキュリティ機能を持っており、機密保護に万全な対応が可能に構成されている。例えばＩＣカード３００（図１）から読み出した識別情報や個人情報、及び／又は、それらの情報と照合する照合データを、セキュアＭＰＵ１２に格納して情報漏洩に対する安全性を高めることが可能である。
また、セキュアＭＰＵ１２が暗号演算デバイスならば、暗号機能を搭載し、外から演算結果等を判別できないようにすることで、情報漏洩に対する安全性を高めた装置を実現できる。
【００４６】
［入出力ポートの構成と動作］
図３に、Ｉ２Ｃ通信を行うメインＣＰＵとセキュアＭＰＵの入出力ポート構成を示す。
メインＣＰＵ１１とセキュアＭＰＵ１２のそれぞれは、１つのＮＭＯＳトランジスタと１つのバッファ回路からなる入出力ポートを、クロック端子Ｔｃとデータ端子Ｔｄのそれぞれに有している。
【００４７】
メインＣＰＵ１１のクロック端子Ｔｃに、クロック信号線ＳＣＬが接続されている。クロック端子Ｔｃと接地電位の供給線との間に、クロック入出力ポートＰ１１ｃのＮＭＯＳトランジスタＮｃが接続されている。クロック・バッファ回路ＢＦｃは、その入力をクロック端子Ｔｃに接続している。
【００４８】
メインＣＰＵ１１のデータ端子Ｔｄに、データ信号線ＳＤＡが接続されている。データ端子Ｔｄと接地電位の供給線との間に、データ入出力ポートＰ１１ｄのＮＭＯＳトランジスタＮｄが接続されている。データ・バッファ回路ＢＦｄは、その入力をデータ端子Ｔｄに接続している。
【００４９】
セキュアＭＰＵ１２にも、上記したクロック入出力ポートＰ１１ｃと同様な構成のクロック入出力ポートＰ１２ｃがクロック端子Ｔｃに接続して設けられている。また、上記したデータ入出力ポートＰ１１ｄと同様な構成のデータ入出力ポートＰ１２ｄがデータ端子Ｔｄに接続して設けられている。
【００５０】
ここで、メインＣＰＵ１１が「マスタデバイス（ＭＤ）」であり、セキュアＭＰＵ１２が「スレーブデバイス（ＳＤ）」であることが基本である。この場合、メインＣＰＵ１１がＰＬＬ回路１５（図１）で生成したクロック信号ＣＬＫ１に同期したデータ通信を主導する。
但し、Ｉ２Ｃ通信ではマルチ・マスタが可能であり、このメインとスレーブの関係は一時的に入れ替わることがある。つまり、セキュアＭＰＵ１２は、セキュリティ機能制御基板に設けられた不図示のＰＬＬ回路からのクロック信号ＣＬＫ２に同期したデータ通信を主導することができる。この場合、一時的に、セキュアＭＰＵ１２がマスタデバイス（ＭＤ）として機能する。
【００５１】
図３に示すように、クロック入出力ポートＰ１１ｃのＮＭＯＳトランジスタＮｃのゲートに対し、ＰＬＬ回路１５（図１）で生成しメインＣＰＵ１１を経由したクロック信号ＣＬＫ１（ＯＵＴ）が印加可能となっている。データ入出力ポートＰ１１ｄのＮＭＯＳトランジスタＮｄのゲートに対し、メインＣＰＵ１１からのデータ信号ＤＡＴＡ１（ＯＵＴ）が印加可能となっている。
また、上記マルチ・マスタに対応が可能なように、クロック入出力ポートＰ１２ｃのＮＭＯＳトランジスタＮｃのゲートに対し、不図示のＰＬＬ回路で生成しセキュアＭＰＵ１２を経由したクロック信号ＣＬＫ２（ＯＵＴ）が印加可能となっている。データ入出力ポートＰ１２ｄのＮＭＯＳトランジスタＮｄのゲートに対し、セキュアＭＰＵ１２からのデータ信号ＤＡＴＡ２（ＯＵＴ）が印加可能となっている。
【００５２】
メインＣＰＵ１１からクロック信号を送出する場合、そのクロック・バッファ回路ＢＦｃの入出力間がハイインピーダンスのオフ状態となり、この状態でＮＭＯＳトランジスタＮｃがオープンドレイン駆動される。これにより、クロック信号ＣＬＫ１（ＯＵＴ）がクロック信号線ＳＣＬに出力されて伝送される。このようにバッファ回路をオフしてＮＭＯＳトランジスタをオープンドレイン駆動する設定を、「出力ポートに設定」と称する。
データ端子Ｔｄ側の入出力ポートも出力ポートに設定され、クロック信号ＣＬＫ１（ＯＵＴ）に内部同期されたデータ信号ＤＡＴＡ１（ＯＵＴ）がデータ信号線ＳＤＡに出力されて伝送される。
【００５３】
一方、このときセキュアＭＰＵ１２側では、２つの入出力ポートが予め、入力ポートに設定されている。ここで「入力ポートに設定」とは、ＮＭＯＳトランジスタは、そのゲートが“Ｌ”に固定でオフ状態（ハイインピーダンス状態）とされ、バッファ回路が入力を受け付けて出力が可能なオン状態となっていることを言う。このため、伝送されてきたクロック信号ＣＬＫ１（ＯＵＴ）がセキュアＭＰＵ１２にクロック信号ＣＬＫ１（ＩＮ）として取り込まれ、また、伝送されてきたデータ信号ＤＡＴＡ１（ＯＵＴ）がセキュアＭＰＵ１２にデータ信号ＤＡＴＡ１（ＩＮ）として取り込まれる。
なお、セキュアＭＰＵ１２からデータ通信する場合は、ポートの設定とクロックおよびデータ信号の伝送の向きが上記と逆となる。
【００５４】
［データ通信の基本］
Ｉ２Ｃ通信におけるデータ通信の基本動作を、図４を用いて述べる。
図４（Ａ）に、メインＣＰＵ１１（図３）が送出するデータ信号ＤＡＴＡ１の波形を示す。図４（Ｂ）に、セキュアＭＰＵ１２（図３）がアクノリッジ信号を返す動作の波形を示す。このアクノリッジ信号の応答は、セキュアＭＰＵ１２側からのデータ信号線レベルの変化であるため、図３のデータ信号ＤＡＴＡ２の一種である。図４（Ｃ）に、メインＣＰＵ１１から出力されるクロック信号ＣＬＫ１の波形を示す。
【００５５】
初期または非通信時の定常状態において、メインＣＰＵ１１は出力ポート設定となっており、セキュアＭＰＵ１２は入力ポート設定となっている。
図４に示すように、Ｉ２Ｃデータ通信の開始条件は、クロック信号線ＳＣＬの信号レベル（ここではＣＬＫ１）が“Ｈ”のときにデータ信号線ＳＤＡの信号レベル（ここではＤＡＴＡ１）を“Ｈ”→“Ｌ”にすることである。なお、セキュアＭＰＵ１２が何かの理由で出力ポート設定となっている場合、セキュアＭＰＵ１２は、この開始条件を検知して即座に入力ポートに設定する。
【００５６】
開始条件が送出された後、最初の１バイトデータ（ＢＴ１）が、メインＣＰＵ１１から送出される。８ビットからなるバイトデータにおいて、Ｉ２Ｃ通信では、ビット反転はクロック信号が“Ｌ”のときと規定され、クロック信号に同期してデータ送信がなされる。アクノリッジ信号に関し、バイトデータ直後の９番目のクロックパルスをＡＣＫパルスとして用いる。セキュアＭＰＵ１２は、入力したクロック信号ＣＬＫ１（ＩＮ）のクロックパルスを、循環カウンタ等でカウントして９番目のパルスをＡＣＫパルスとして認識する。そして、８ビット目のデータ受信直後に、入力ポートから出力ポートへの切り換えを一時的に行なってから、データ信号線ＳＤＡの信号レベルを“Ｈ”から“Ｌ”に一時的に引き下げて、これをアクノリッジ信号の応答としてメインＣＰＵ１１側に返す。
【００５７】
メインＣＰＵ１１は、バイトデータ送出後に予め入力ポートへの切り換えを行なっており、アクノリッジ信号の応答があれば、バイトデータがセキュアＭＰＵ１２で正しく受信されたと認識して、次の２番目のバイトデータ（ＢＴ２）を同様にして送出する。セキュアＭＰＵ１２は、最初のバイトデータを受信した時と同様にして、アクノリッジ信号（ＡＣＫパルス）に応答する。
【００５８】
以後、同様に３番目のバイトデータ（ＢＴ３）、・・・と繰り返される。そして、最後のバイトデータ（ＢＴｘ）の送信が終わると、メインＣＰＵ１１が終了条件を設定することで、当該データ通信が完了する。ここでＩ２Ｃデータ通信の終了条件は、クロック信号線ＳＣＬの信号レベル（ここではＣＬＫ１）が“Ｈ”のときにデータ信号線ＳＤＡの信号レベル（ここではＤＡＴＡ１）を“Ｌ”→“Ｈ”にすることである。
セキュアＭＰＵ１２は、終了条件を検知したら、受信データを用いた内部処理を開始可能となる。
【００５９】
メインＣＰＵ１１がセキュアＭＰＵ１２に所定の処理を実行させたい場合は、以下のように動作する。
先ず、メインＣＰＵ１１からコントロール・バイト（ＣＢ）を送る。コントロール・バイトには、スレーブアドレスとデータの書き込みか読み出しかを区別するＲ／Ｗフラグが含まれる。セキュアＭＰＵ１２に処理を実行させるためには、目的の処理に必要なデータをセキュアＭＰＵ１２に送るという操作になるので、Ｒ／ＷフラグはＷｒｉｔｅを指定する。
メインＣＰＵ１１がセキュアＭＰＵ１２のスレーブアドレスをコントロール・バイトとして送ることによって、セキュアＭＰＵ１２はメインＣＰＵ１１との通信を許可される。メインＣＰＵ１１は、コントロール・バイトに続くバイトデータとして、命令コードと、当該命令コードの詳細を表すパラメータコードと、処理に必要な他のデータ（処理内容によっては不要）とを、順次送信する。
Ｒ／ＷフラグをセキュアＭＰＵ１２が検出し、データの書き込み（セキュアＭＰＵ１２からみたデータ受信）と認識すると、セキュアＭＰＵ１２は、受信した命令コード、パラメータを元に実施すべき処理を決定し、処理を実施する。なお、上記処理に必要な他のデータが送られてくる場合は、セキュアＭＰＵ１２は、このデータを取り込んで処理を実施する。
【００６０】
［リセット時の動作］
以上の前提のもと、本実施形態の特徴であるリセット時の動作を含むデータ通信方法を、以下に図面を用いて述べる。なお、電源オン時の動作については、リセット時の動作との相違点を後述する。
【００６１】
図５は、リセット時の処理ステップを時間軸上で並べて示す図である。図６は、図５の処理のうち、メインＣＰＵが実行する処理のフローチャートである。図７は、図５の処理のうち、セキュアＭＰＵが実行する処理のフローチャートである。図５と、図６及び図７とにおいて、共通のステップは同一符号で示す。
なお、図５〜図７は、セキュアＭＰＵ１２からメインＣＰＵ１１に伝送される「起動状態の通知」を、クロック信号線ＳＣＬを用いて行う場合の処理を例示している。
【００６２】
図５（Ａ）、図５（Ｂ）に示すように、先ず、メインＣＰＵ１１がリセット命令をセキュアＭＰＵ１２に向けて送信する（ＳＴ１１）。
このリセット命令の送信は、図４を用いて既に説明したバイトごとの送信方法に従って行われる。したがって、セキュアＭＰＵ１２は、リセット命令を受信するとアクノリッジ信号（ＡＣＫパルス）を返し、メインＣＰＵ１１が、ＡＣＫパルスによってリセット命令が正しく送信されたことを知る。
【００６３】
メインＣＰＵ１１は、リセット命令の送信後に、図６に示すように、クロック端子Ｔｃ側の入出力ポートが「入力ポートに設定」されるように切り換える（ＳＴ１２）。これにより、通知１の待ち状態となる。ここで、通知１の待ち状態とは、クロック信号線ＳＣＬが定常状態の“Ｈ(HIGH)”から“Ｌ（LOW）”に遷移すること（通知１）を監視する状態である。図６では、ステップＳＴ１３により、通知１の待ち状態を示す。
【００６４】
一方、セキュアＭＰＵ１２は、図７に示すように、リセット命令を受信した後（ＳＴ２１）、ソフトウェアリセット処理を実施するため、ソフトウェアを再起動する（ＳＴ２２）。ここでソフトウェアの再起動とは、ソフトウェアの実行処理のフローが先頭の初期状態に強制的に戻されることを意味する。これにより各種パラメータ等も初期化され、処理途中で用いていたレジスタ等の一時保管データ等も初期化（例えば消去）される。
【００６５】
続いて、セキュアＭＰＵ１２は、基本的なハードウェアの初期化処理を実行する（ＳＴ２３）。例えば、セキュアＭＰＵ１２が有するオンチップ・インターフェイス（Ｉ／Ｆ）を初期化し、また、メモリ等がセキュアＭＰＵ１２に接続されている場合は、動作を停止させてアクセスが可能な待ち状態に初期化する。
【００６６】
ハードウェアの初期化が完了すると、セキュアＭＰＵ１２は、クロック端子Ｔｃ側の入出力ポートが「出力ポートに設定」されるように切り換え（ＳＴ２４）、通知１を行う（ＳＴ２５）。これにより、クロック信号線ＳＣＬの信号レベルが“Ｈ”から“Ｌ”に反転し、この信号レベルの反転（通知１）がクロック信号線ＳＣＬを伝搬して、メインＣＰＵ１１に到達する。
【００６７】
図６において通知１の待ち状態にあったメインＣＰＵ１１は、クロック信号線ＳＣＬの信号レベルの反転を検出して通知１があったことを認識すると、ステップＳＴ１３が「ＹＥＳ」となる。
そのため、フローが次のステップＳＴ１４に遷移し、ここで通知２としてクロック信号線ＳＣＬの信号レベルが再反転（“Ｌ”→“Ｈ”）することの待ち状態となる。
【００６８】
一方、説明を図７に戻すと、セキュアＭＰＵ１２は、通知１を出力した後（ＳＴ２５）、ソフトウェアの初期化処理を実行する。この処理は、ソフトウェアの先頭からＩ２Ｃプロトコルを、Ｉ２Ｃ通信が可能な段階まで実行することを意味する。
ソフトウェアの初期化処理が終了すると、セキュアＭＰＵ１２は、出力ポートが設定されているクロック端子Ｔｃから、通知２（クロック信号線ＳＣＬの信号レベルの“Ｌ”から“Ｈ”への再反転）を出力する（ＳＴ２７）。
【００６９】
図６において通知２の待ち状態にあったメインＣＰＵ１１は、クロック信号線ＳＣＬの信号レベルの再反転を検出して通知２があったことを認識すると、ステップＳＴ１４が「ＹＥＳ」となる。
そのため、フローが次のステップＳＴ１５に遷移する。ステップＳＴ１５では、メインＣＰＵ１１が、クロック端子Ｔｃおよびデータ端子Ｔｄ側の各入出力ポートを出力ポートに切り換えて、Ｉ２Ｃ通信の再開の準備を完了させる。リセット時の起動処理自身は、ここで終了する。
【００７０】
その後、メインＣＰＵ１１は、クロック信号を発振させて、Ｉ２Ｃ通信をメインＣＰＵ１１が決めた任意のタイミングで再開する。
【００７１】
なお、セキュアＭＰＵ１２においては、図７に示すように、通知２を出力した後（ＳＴ２７）、クロック端子Ｔｃ側の入出力ポートを入力ポートに切り換えて、リセット時の起動処理を完結させ、メインＣＰＵ１１が主導するＩ２Ｃ通信の受信待ちの状態となる。
【００７２】
Ｉ２Ｃ通信は、図４を用いて既に説明した通り、バイトごとに正しい送信が行われたかをＡＣＫパルスの返信で確認しながら行うシリアル通信である。
【００７３】
［電源オン時の動作］
電源オン時の動作では、図５及び図６に示すリセット命令送信のステップＳＴ１１と、図７に示すリセット命令受信のステップＳＴ２１が存在しない。
ＩＣカードリーダライタ１の電源がオンされると、メインＣＰＵ１１とセキュアＭＰＵ１２が同時に起動処理を開始する。
【００７４】
図５において、セキュアＭＰＵ１２が行う具体的な起動時の処理ステップである、ソフトウェアリセット（再起動）のステップＳＴ２２、ハードウェア初期化処理のステップＳＴ２３、およびソフトウェアの初期化処理のステップＳＴ２６は、メインＣＰＵ１１においても起動と同時に開始される。
この点以外は、図５〜図７に示し既に説明したリセット時の動作と同じである。
【００７５】
なお、メインＣＰＵ１１が起動を開始した後に、セキュアＭＰＵ１２の起動が開始する構成でもよい。例えば、メインＣＰＵ１１が、クロック信号線ＳＣＬのＬＯＷ待ちを監視できる状態になってから、セキュアＭＰＵ１２が起動されるような構成にするとよい。より詳細な例としては、メインＣＰＵ１１がセキュアＭＰＵ１２の起動を制御できるような回路構成としておき、メインＣＰＵ１１が、クロック信号線ＳＣＬのＬＯＷ待ちを監視できる状態になったところで（ＳＴ１３）、メインＣＰＵ１１が回路を操作してセキュアＭＰＵ１２を起動させるようにすることも可能である。
【００７６】
このように、第２の実施の形態では、通知２（クロック信号線ＳＣＬの信号レベルの再反転）に基づいてメインＣＰＵ１１が通信開始可能とするため、リセットまたは電源オンから通信開始までの無駄な待ち時間をほぼゼロにしてスムーズな通信開始を実現できる。なお、この効果は、第１の実施の形態でも同じである。
【００７７】
次に、上記第１及び第２の実施の形態における変形例を述べる。
【００７８】
［変形例１］
図５〜図７を用いた上記説明では、通知２（クロック信号線ＳＣＬの信号レベルの再反転）に基づいてメインＣＰＵ１１が通信開始可能とする。
これに対し、通知１（クロック信号線ＳＣＬの信号レベルの反転）に基づいてメインＣＰＵ１１が通信開始可能とする変更も可能である。
【００７９】
具体的には、図６に破線で示すフローのように、ステップＳＴ１３で通知１をメインＣＰＵ１１が受信すると、ある時間Ｔを待って（ＳＴ１４´）から通信開始可能（ＳＴ５１）としてよい。
図５に示すハードウェア初期化等は、その構成が異なれば時間もばらつくが、ソフトウェア初期化処理（ＳＴ２６）は、Ｉ２Ｃプロトコルの通信開始までの実行期間であり、ＭＰＵの処理速度が異なる等の影響は多少あるものの、ハードウェア初期化ほど時間的にばらつかない。そのため、通知１の受信から通信開始可能となる時間Ｔはほぼ正確に予測可能である。このようなリセット処理途中の通知に基づく方法でも、リセット命令から待ち時間を計測する今までの方法よりも、大幅に待ち時間を減らすという利益が得られる。
【００８０】
［変形例２］
第１の実施の形態で述べたと同様、第２の実施の形態でも、データ信号線ＳＤＡの信号レベル変化、または、クロック信号線ＳＣＬとデータ信号線ＳＤＡの信号レベルの組み合わせを、「起動状態の通知」として用いることが可能である。
【００８１】
［変形例３］
第２の実施の形態では、Ｉ２Ｃ通信で送るリセット命令により、セキュアＭＰＵ１２をソフトウェアリセットさせている。
これに対し、専用のリセットラインを設けて、そのリセットラインをスレーブデバイス（ＳＤ）が監視して、リセット要求を受けたと判断したら、ソフトウェアリセットをさせてもよい。
あるいは、専用のリセットラインを設けて、スレーブデバイス（ＳＤ）がリセット要求を受けたと判断したら、強制的にハードウェアをリセットさせてもよい。
【００８２】
［変形例４］
Ｉ２Ｃ通信が望ましいが、本願開示技術は、その他のシリアル通信においても広く適用できる。Ｉ２Ｃ通信の入出力ポート構成は、図３に示すものに限定されない。トランジスタやバッファ回路は、ＮＭＯＳ構成に限らず、ＣＭＯＳ構成、バイポーラ構成、バイＣＭＯＳ構成の何れでもよい。
また、情報処理装置としてはＩＣカードリーダライタに限らない。
【００８３】
以上の第１及び第２の実施の形態、ならびに変形例１〜４によれば、以下の効果がある。
【００８４】
第１の実施の形態、および図５〜図７に示した第２の実施の形態に関わるデータ通信方法によれば、リセット後または電源オン後の通信開始までの待ち時間を必要最小限することが可能となる。
この効果は、第１の実施の形態のようにスレーブデバイス（ＳＤ）が数多くあり、しかも、そのうちの複数が起動処理に時間を要するＭＰＵ等である場合に、より顕著である。
つまり、スレーブデバイス（ＳＤ）が数多くあり、ＭＰＵが複数の場合、負荷が大きなスレーブデバイスの処理遅延の影響が複雑に他のスレーブデバイスに影響するなどして、最も時間がかかる起動処理時間の見積りが難しい。したがって、通信開始までの待ち時間も非常に大きなマージンを必要とする。このような場合でも、本開示技術の適用によって、最も時間がかかる起動処理時間に応じて通信開始ができるため、マージンをほぼゼロまたは大幅に圧縮することが可能となる。
【００８５】
Ｉ２Ｃ通信との組み合わせにおいて、以下の効果がある。
Ｉ２Ｃ通信制御に利用するクロック信号線ＳＣＬとデータ信号線ＳＤＡ以外の別のラインを設けることなく、マスタデバイス（ＭＤ）がスレーブデバイス（ＳＤ）の起動状態を把握することができる。したがって、きわめてシンプルな回路溝成でありながら、スレーブデバイス（ＳＤ）との通信に関して信頼性の高いマスタ・スレーブ型の情報処理装置を実現できる。
【００８６】
また、第２の実施の形態では、マスタデバイス（ＭＤ）としてのカードリーダのメインＣＰＵ１１に、セキュリティ機能を実装したセキュアＭＰＵ１２がスレーブデバイス（ＳＤ）としてＩ２Ｃ通信で接続されている。
通常、スレーブデバイス（ＳＤ）はＥＥＰＲＯＭのような出来合いのものが接続されるため、通信ラインの制御やリセット制御に関して変更の余地はない。
しかし、第２の実施形態のように、スレーブデバイス（ＳＤ）をＭＰＵとすれば、セキュアＭＰＵのプログラミングを、セキュアＭＰＵのファームウェア設計者が併せて実施できるため、通信ラインの制御やリセット制御に関して柔軟な対応が可能となっている。
このため、Ｉ２Ｃ通信に、通信開始までの待ち時間を必要最小限とする上記データ通信方法を適用することは容易であり、設計変更に要する費用の増加も限定的であるという利益が得られる。
【符号の説明】
【００８７】
１…ＩＣカードリーダライタ、２…上位装置、１１…メインＣＰＵ（マスタデバイス）、１２…セキュアＭＰＵ、１２−１〜ｎ…スレーブデバイス、１６…電源回路、Ｔｃ…クロック端子、Ｔｄ…データ端子、ＳＣＬ…クロック信号線、ＳＤＡ…データ信号線。
【図１】
2014067230.tif 000003
【図２】
2014067230.tif 000004
【図３】
2014067230.tif 000005
【図４】
2014067230.tif 000006
【図５】
2014067230.tif 000007
【図６】
2014067230.tif 000008
【図７】
2014067230.tif 000009