(57)【特許請求の範囲】
【請求項１】
外部端末から供給される外部クロックに同期して前記外部端末との間でデータ転送を行う第１のインタフェースおよびその制御回路と、クロックを生成するクロック生成回路と、前記クロック生成回路で生成された内部クロックを用いて前記外部端末との間でデータ転送を行う第２のインタフェースおよびその制御回路とを有する処理装置であって、
該処理装置が前記外部端末との間でデータ転送を行うために使用するインタフェースに応じて、該処理装置内のＣＰＵおよびその他のモジュールが利用するシステムクロックを、前記外部クロックと前記内部クロックとの間で切り替え、その際に、前記ＣＰＵをスリープ状態にした後に切り替え、切り替えが完了した後に前記ＣＰＵのスリープ状態を解除して動作を再開させるクロック制御回路と、
ＩＳＯ７８１６−２準拠の外部端子とを有し、前記第１のインタフェースは、ＩＳＯ７８１６−３に準拠したデータ転送を行うインタフェースであり、前記第２のインタフェースは、ＩＳＯ７８１６−１２に準拠したＵＳＢ転送を行うインタフェースであり、
前記外部端末との間のデータ転送を行うために使用するインタフェースとして、前記ＩＳＯ７８１６−３に準拠したデータ転送を行うインタフェースと、前記ＩＳＯ７８１６−１２に準拠したＵＳＢ転送を行うインタフェースとを両方同時に使用可能であることを特徴とする処理装置。
【請求項２】
請求項１記載の処理装置において、
該処理装置が前記外部端末との間でデータ転送を行うために使用するインタフェースに応じて、該処理装置内に供給するリセットを選択するリセット制御回路を有することを特徴とする処理装置。
【請求項３】
請求項１または２に記載の処理装置において、
前記外部端末との間のデータ転送を行うために使用するインタフェースとして、前記ＩＳＯ７８１６−３に準拠したデータ転送を行うインタフェースと、前記ＩＳＯ７８１６−１２に準拠したＵＳＢ転送を行うインタフェースとを両方同時に使用する場合は、前記システムクロックとして前記内部クロックを使用し、前記外部端末との間のデータ転送を行うために使用するインタフェースとして、前記ＩＳＯ７８１６−３に準拠したデータ転送を行うインタフェースを使用している際に、前記ＩＳＯ７８１６−１２に準拠したＵＳＢ転送を行うインタフェースが活性化された場合は、前記システムクロックを前記外部クロックから前記内部クロックに切り替えることを特徴とする処理装置。
【請求項４】
請求項１または２に記載の処理装置において、
前記外部端末との間のデータ転送を行うために使用するインタフェースとして、前記ＩＳＯ７８１６−３に準拠したデータ転送を行うインタフェースと、前記ＩＳＯ７８１６−１２に準拠したＵＳＢ転送を行うインタフェースとを両方同時に使用する場合は、前記システムクロックとして前記外部クロックを使用し、前記外部端末との間のデータ転送を行うために使用するインタフェースとして、前記ＩＳＯ７８１６−１２に準拠したＵＳＢ転送を行うインタフェースを使用している際に、前記外部クロックの供給を検知した場合は、前記システムクロックを前記内部クロックから前記外部クロックに切り替えることを特徴とする処理装置。
【請求項５】
請求項３記載の処理装置において、
前記外部端末との間のデータ転送を行うために使用するインタフェースとして、前記ＩＳＯ７８１６−３に準拠したデータ転送を行うインタフェースと、前記ＩＳＯ７８１６−１２に準拠したＵＳＢ転送を行うインタフェースとを両方同時に使用し、前記システムクロックとして前記内部クロックを使用している場合において、前記ＩＳＯ７８１６−１２に準拠したＵＳＢ転送を行うインタフェースが非活性化された場合は、前記システムクロックを前記内部クロックから前記外部クロックに切り替えることを特徴とする処理装置。
【請求項６】
請求項４記載の処理装置において、
前記外部端末との間のデータ転送を行うために使用するインタフェースとして、前記ＩＳＯ７８１６−３に準拠したデータ転送を行うインタフェースと、前記ＩＳＯ７８１６−１２に準拠したＵＳＢ転送を行うインタフェースとを両方同時に使用し、前記システムクロックとして前記外部クロックを使用している場合において、前記ＩＳＯ７８１６−３に準拠したデータ転送を行うインタフェースが非活性化された場合は、前記システムクロックを前記外部クロックから前記内部クロックに切り替えることを特徴とする処理装置。
【請求項７】
外部端末から供給される外部クロックに同期して前記外部端末との間でデータ転送を行う第１のインタフェースおよびその制御回路と、クロックを生成する第１のクロック生成回路と、前記第１のクロック生成回路で生成された第１の内部クロックを用いて前記外部端末との間でデータ転送を行う第２のインタフェースおよびその制御回路と、クロックを生成する第２のクロック生成回路と、前記第２のクロック生成回路で生成された第２の内部クロックを用いて前記外部端末との間でデータ転送を行う第３のインタフェースおよびその制御回路とを有する処理装置であって、
該処理装置が前記外部端末との間でデータ転送を行うために使用するインタフェースに応じて、該処理装置内のＣＰＵおよびその他のモジュールが利用するシステムクロックを、前記外部クロックと前記第１の内部クロックと前記第２の内部クロックとの間で切り替え、その際に、前記ＣＰＵをスリープ状態にした後に切り替え、切り替えが完了した後に前記ＣＰＵのスリープ状態を解除して動作を再開させるクロック制御回路と、
ＩＳＯ７８１６−２準拠の外部端子とを有し、前記第１のインタフェースは、ＩＳＯ７８１６−３に準拠したデータ転送を行うインタフェースであり、前記第２のインタフェースは、ＩＳＯ７８１６−１２に準拠したＵＳＢ転送を行うインタフェースであり、前記第３のインタフェースは、前記外部端末内のＲＦ回路とデータ転送を行うインタフェースであり、
前記外部端末との間のデータ転送を行うために使用するインタフェースとして、前記ＩＳＯ７８１６−３に準拠したデータ転送を行うインタフェースと、前記ＩＳＯ７８１６−１２に準拠したＵＳＢ転送を行うインタフェースと、前記外部端末のＲＦ回路とデータ転送を行うインタフェースの内のいずれか２つ以上のインタフェースを同時に使用可能であることを特徴とする処理装置。
【請求項８】
請求項７記載の処理装置において、
該処理装置が前記外部端末との間でデータ転送を行うために使用するインタフェースに応じて、該処理装置内に供給するリセットを選択するリセット制御回路を有することを特徴とする処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ転送のための複数のインタフェースを有する処理装置およびそのクロック制御方法に関し、特にＩＳＯ７８１６に準拠したＩＣカード等の処理装置に適用して有効な技術に関するものである。
【背景技術】
【０００２】
外部端子付きＩＣカードの規格であるＩＳＯ７８１６において、ＩＳＯ７８１６−２に準拠した外部端子を有する処理装置では、ＩＳＯ７８１６−３に準拠したデータ転送に加え、ＩＳＯ７８１６−１２に準拠したＵＳＢ（Universal Serial Bus）転送も行うことができる。ここで、ＩＳＯ７８１６−１２では、外部端末が処理装置にクロックを供給するという仕様ではないため、ＩＳＯ７８１６−１２に準拠したＵＳＢ転送を行う場合、原則として処理装置内部で生成したクロックを用いて処理装置を動作させる必要がある。
【０００３】
また、ＩＳＯ７８１６−３に準拠したデータ転送では、外部端末と処理装置間のデータ転送に使用するクロックに関する仕様は定めているが、処理装置内部で使用するクロックに関する仕様は規定されていない。処理装置内部で生成したクロックを利用する場合、オシレータやＰＬＬなどのモジュールを動作させる必要があるため、外部端末から供給されるクロックのみを利用して動作する場合と比べて消費電力が増大するため、外部端末から供給されるクロックを利用して動作する場合がある。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ＩＳＯ７８１６−３に準拠したデータ転送とＩＳＯ７８１６−１２に準拠したＵＳＢ転送とは、使用する外部端子が重複しないため同時に行うことが可能である。ここで、例えばＩＳＯ７８１６−３に準拠したデータ転送中にＩＳＯ７８１６−１２に準拠したＵＳＢ転送を活性化する場合、処理装置が利用するクロックを外部クロックから内部クロックに切り替える必要が生じる。しかし、処置装置の動作中にクロックを切り替えると、ノイズなどの影響により処理装置内のＣＰＵなどが誤動作する恐れがある。
【０００５】
そこで本発明の目的は、外部クロックに同期してデータ転送を行うインタフェースと、外部クロックを利用せずに内部クロックを用いてデータ転送を行うインタフェースとを有する処理装置、特にＩＳＯ７８１６の規格に準拠する外部端子を有し、ＩＳＯ７８１６−３とＩＳＯ７８１６−１２とに準拠したインタフェースを有する処理装置において、外部端末との間でデータ転送を行うために使用するインタフェースに応じて、処理装置が利用するクロックを切り替えることができる処理装置およびそのクロック制御方法を提供することにある。
【０００６】
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００７】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
【０００８】
本発明は、外部端末から供給される外部クロックに同期して前記外部端末との間でデータ転送を行う第１のインタフェースおよびその制御回路と、クロックを生成するクロック生成回路と、前記クロック生成回路で生成された内部クロックを用いて前記外部端末との間でデータ転送を行う第２のインタフェースおよびその制御回路とを有する処理装置およびそのクロック制御方法であって、該処理装置が前記外部端末との間でデータ転送を行うために使用するインタフェースに応じて、該処理装置内のＣＰＵおよびその他のモジュールが利用するシステムクロックを、前記外部クロックと前記内部クロックとの間で切り替えるクロック制御回路を有し、前記システムクロックを前記外部クロックと前記内部クロックとの間で切り替える際に、前記ＣＰＵをスリープ状態にした後に切り替え、切り替えが完了した後に前記ＣＰＵのスリープ状態を解除して動作を再開させることを特徴とするものである。
【発明の効果】
【０００９】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
【００１０】
本発明によれば、一つの処理装置で複数のインタフェースによるデータ転送、特にＩＳＯ７８１６−３に準拠したデータ転送とＩＳＯ７８１６−１２に準拠したＵＳＢ転送を行う際に、使用するインタフェースに応じて処理装置が利用するクロックを動的に切り替えることが可能となり、ＩＳＯ７８１６−３に準拠したデータ転送とＩＳＯ７８１６−１２に準拠したＵＳＢ転送の両方を同時に行うことが可能となる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００１２】
＜実施の形態１＞
本発明の実施の形態１である処理装置について説明する。図１は、本実施の形態の処理装置の内部構成の例を示した図である。また、図２は、本実施の形態の処理装置の外部端子の配置例を示した図である。
【００１３】
図１において、処理装置１００は、ＩＳＯ７８１６互換の外部インタフェースとして、ＥＸ＿ＣＬＫ１１０、ＥＸ＿ＲＥＳＥＴ１１１、ＵＡＲＴ＿Ｉ／Ｏ１１２、Ｄ＋１１３、Ｄ−１１４、Ｖｃｃ１１５、ＧＮＤ１１６を有し、また、内部オシレータ１２０、クロック制御回路１３０、ＣＰＵ１４１、ＵＡＲＴ制御回路１４２、ＵＳＢ制御回路１４３を有する構成となっている。
【００１４】
処理装置１００としては、主にＩＣカードチップやセキュリティ機能付きメモリカード等が該当するが、複数のデータ転送のインタフェースを有する装置であればこれらに限られない。また、１つのチップではなく、各回路または各回路の集まり毎に別々のチップとして構成されていてもよい。
【００１５】
ＥＸ＿ＣＬＫ１１０は、外部端末から処理装置１００へＩＳＯ７８１６に準拠した処理を行うために必要なクロック信号を入力するための外部インタフェースであり、ＩＳＯ７８１６では図２におけるＣ３端子２０３が割り当てられている。以下では、ＥＸ＿ＣＬＫ１１０経由で供給されるクロックを外部クロックと記載する。ＥＸ＿ＲＥＳＥＴ１１１は、外部端末から処理装置１００へリセット信号を入力するための外部インタフェースであり、ＩＳＯ７８１６では図２におけるＣ２端子２０２が割り当てられている。以下では、ＥＸ＿ＲＥＳＥＴ１１１経由のリセットを外部リセットと記載する。
【００１６】
ＵＡＲＴ＿Ｉ／Ｏ１１２は、外部端末と処理装置１００との間でＡＰＤＵ（Application Protocol Data Unit）を送受信するための外部インタフェースであり、ＩＳＯ７８１６ではＣ７端子２０７が割り当てられている。Ｄ＋１１３およびＤ−１１４は、ＩＳＯ７８１６−１２に準拠したＵＳＢ転送において、外部端末と処理装置１００との間でコマンドやデータを転送するために用いられ、ＩＳＯ７８１６ではＤ＋１１３としてＣ４端子２０４、Ｄ−１１４としてＣ８端子２０８が割り当てられている。
【００１７】
Ｖｃｃ１１５は、処理装置１００への入力電圧を取得する外部インタフェースであり、ＩＳＯ７８１６ではＣ１端子２０１が割り当てられている。ＧＮＤ１１６は、処理装置１００へのグランド線であり、ＩＳＯ７８１６ではＣ５端子２０５が割り当てられている。なお、ＩＳＯ７８１６−３に準拠したデータ転送およびＩＳＯ７８１６−１２に準拠したＵＳＢ転送において、どの外部端子がどの外部インタフェースに割り当たっていても、その割り当てが明らかであれば、本実施の形態における処理装置１００およびクロック制御方法の本質には影響しない。
【００１８】
ＵＡＲＴ制御回路１４２は、ＩＳＯ７８１６−３の規定で定められたＡＰＤＵ転送を実現する回路である。以下では、外部クロックに同期してＩＳＯ７８１６−３に準拠したＡＰＤＵ転送を行うインタフェースをＩＳＯ７８１６インタフェースと記載する。ＵＳＢ制御回路１４３は、ＩＳＯ７８１６−１２の規定で定められたＵＳＢ仕様に準拠したデータ転送を実現する回路である。以下では、ＩＳＯ７８１６−１２の規定で定められたＵＳＢ仕様に準拠したデータ転送を行うインタフェースをＵＳＢインタフェースと記載する。また、以下では、ＵＡＲＴ制御回路１４２およびＵＳＢ制御回路１４３の総称としてインタフェース制御回路と記載する場合がある。
【００１９】
各インタフェース制御回路の機能を、ＣＰＵ１４１により行うように実装することも可能である。ただし、各インタフェース制御回路を独自に有し、これらを動作させるための電力がＣＰＵ１４１を動作させるための電力とは別に制御可能な場合には、データ転送の際にどちらかのインタフェースが選択された際、他方のインタフェース制御回路への電力供給を停止することで、処理装置１００の消費電力を低減させることができる。
【００２０】
ＵＳＢインタフェースによるデータ転送の場合でも外部クロックを利用することは可能であるが、その動作周波数が４ＭＨｚ程度と低速であるため、大容量のデータを扱うＵＳＢインタフェースによるデータ転送には適さない。さらに、ＵＳＢインタフェースによる処理中に継続して外部端末から外部クロックが供給されるという保証もない。
【００２１】
そこで、本実施の形態の処理装置１００では、クロック生成回路として内部オシレータ１２０を設け、ＵＳＢインタフェースによる処理の際には内部オシレータ１２０により生成したクロックを使用する構成とする。なお、内部オシレータ１２０は、処理装置１００の内部に限られず、処理装置１００の外部から接続する構成であってもよい。以下では、内部オシレータ１２０が生成したクロックを内部クロックと記載する。
【００２２】
図３は、処理装置１００のような、ＩＳＯ７８１６インタフェースとＵＳＢインタフェースを持つＩＣカードの初期動作の流れの一例を示した図である。まず、電圧投入前、ステップ３００にて、ＥＸ＿ＣＬＫ１１０をＬｏｗ状態、ＥＸ＿ＲＥＳＥＴ１１１をＬｏｗ状態、ＵＡＲＴ＿Ｉ／Ｏ１１２をＨｉｇｈ状態、Ｄ＋１１３をＨｉｇｈ状態、Ｄ−１１４をＨｉｇｈ状態に設定する。電圧投入後、規定された動作電圧に達した後、Ｄ＋１１３とＤ−１１４とが少なくとも１０ｍｓの間Ｌｏｗ状態であるかどうかを判定する（ステップ３０１）。ステップ３０１での判定条件を満たしている場合のみ、以下で述べるＵＳＢインタフェース活性化手順を行う。
【００２３】
ＵＳＢインタフェース活性化手順では、まず、処理装置１００は、ＵＳＢインタフェースがＵＳＢ仕様におけるＦｕｌｌ  ＳｐｅｅｄもしくはＨｉｇｈ  Ｓｐｅｅｄに対応している場合はＤ＋１１３をＨｉｇｈ状態にし、Ｌｏｗ  Ｓｐｅｅｄのみに対応している場合はＤ−１１４をＨｉｇｈ状態にする（ステップ３０２）。次に、Ｄ＋１１３もしくはＤ−１１４がＨｉｇｈ状態になったことにより、処理装置１００と接続している外部端末は、ＵＳＢインタフェースを持つ処理装置１００が接続されたことを検知し、Ｈｉｇｈ状態になっているＤ＋１１３もしくはＤ−１１４をＬｏｗ状態にする（ステップ３０３）。
【００２４】
ステップ３０１〜ステップ３０３の各処理が正常に行われた場合のみ、ＵＳＢインタフェースが活性化され、処理装置１００はＵＳＢインタフェースでデータ転送を行う装置として動作する。ステップ３０１〜ステップ３０３の各処理が正常に行われなかった場合は、外部装置からＥＸ＿ＣＬＫ１１０経由で動作周波数４ＭＨｚ程度の外部クロックが供給される／されているかどうかを判定する（ステップ３１１）。外部クロックが供給される／されている場合には、以下で述べるＩＳＯ７８１６インタフェース活性化手順を行う。
【００２５】
ＩＳＯ７８１６インタフェース活性化手順では、まず、外部クロックが供給されてから４００クロックの間に、外部端末がＥＸ＿ＲＥＳＥＴ１１１をＨｉｇｈ状態にする（ステップ３１２）。次に、ＥＸ＿ＲＥＳＥＴ１１１がＨｉｇｈ状態になってから４０，０００クロックの間に、処理装置１００は、ＵＡＲＴ＿Ｉ／Ｏ１１２経由でＡＴＲ（Answer To Reset）を外部端末に送信する（ステップ３１３）。
【００２６】
ステップ３１１〜ステップ３１３の各処理が正常に行われた場合のみ、ＩＳＯ７８１６インタフェースが活性化され、処理装置１００はＩＳＯ７８１６インタフェースでデータ転送を行う装置として動作する。ステップ３０１〜ステップ３０３の各処理およびステップ３１１〜ステップ３１３の各処理が正常に行われなかった場合は、処理装置１００は、Ｄ＋１１３とＤ−１１４とが少なくとも１０ｍｓの間Ｌｏｗ状態になるか（ステップ３０１）、またはＥＸ＿ＣＬＫ１１０経由で外部クロックが供給されるか（ステップ３１１）のどちらかの条件が成立するのを待つ。
【００２７】
以上に示すような各インタフェースの活性化の処理を行うため、処理装置１００は、図１に示すようにクロック制御回路１３０を有する構成となっている。クロック制御回路１３０は、処理装置１００が外部端末との間でデータ転送を行うために使用するインタフェースに応じて、ＣＰＵ１４１や各インタフェース制御回路などに供給するクロックやリセットの選択を行うモジュールである。以下では、ＣＰＵ１４１や各インタフェース制御回路などに供給するクロックをシステムクロックと記載する。
【００２８】
図４は、本実施の形態におけるクロック制御回路１３０に含まれるモジュールの構成例を示した図である。クロック制御回路１３０は、クロック切り替え回路４１０、リセット制御回路４２０、ＵＳＢ検出回路４３０を有する構成となっている。クロック切り替え回路４１０は、ＥＸ＿ＣＬＫ１１０経由で外部端末から供給される外部クロック４１１と、内部オシレータ１２０で生成した内部クロック４１２とから、ＣＰＵ１４１や各インタフェース制御回路などに供給するシステムクロック４１３を選択するモジュールである。
【００２９】
また、クロック切り替え回路４１０は、外部クロック検出信号４１４および内部クロックスタート信号４１５を、リセット制御回路４２０に供給する。ここで、外部クロック検出信号４１４は、ＥＸ＿ＣＬＫ１１０経由で外部クロック４１１が供給されたことを検知するとＨｉｇｈ状態にする信号である。また、内部クロックスタート信号４１５は、内部オシレータ１２０で生成した内部クロック４１２をＣＰＵ１４１や各インタフェース制御回路などに供給する際にＨｉｇｈ状態にする信号である。
【００３０】
さらに、クロック切り替え回路４１０は、ＣＰＵ１４１からスリープ信号４１６を入力し、またＣＰＵ１４１やその他のモジュールにクロック切り替え信号４１７を出力する構成となっているが、これら信号については後述する。
【００３１】
リセット制御回路４２０は、ＣＰＵ１４１や各インタフェース制御回路などに供給するリセットを制御するモジュールである。リセット制御回路４２０が供給するリセットとして、システムリセット４２２、ＵＡＲＴリセット４２３、ＵＳＢリセット４２４がある。システムリセット４２２は、処理装置１００内の全モジュールに対してリセットを供給する信号である。ＵＡＲＴリセット４２３は、ＩＳＯ７８１６インタフェース経由で転送するデータの処理のために必要なモジュールのみにリセットを供給する信号である。ＵＳＢリセット４２４は、ＵＳＢインタフェース経由で転送するデータの処理のために必要なモジュールのみにリセットを供給する信号である。
【００３２】
ＵＳＢ検出回路４３０は、Ｄ＋１１３およびＤ−１１４の信号線の状態を監視し、Ｄ＋１１３とＤ−１１４の両方の信号線が少なくとも１０ｍｓの間Ｌｏｗ状態であることを検知すると、ＵＳＢ検出信号４３１をＨｉｇｈ状態にするモジュールである。ＵＳＢ検出信号４３１は、ＣＰＵ１４１およびその他のモジュールにＵＳＢインタフェースによりデータが転送されることを通知するための信号である。
【００３３】
内部オシレータ１２０は、ＵＳＢ検出信号４３１がＨｉｇｈ状態になるとクロックの生成を開始する。ただし、クロックはその発振が安定するまでＣＰＵ１４１などに供給するのを待つ必要がある。通常、発振器の仕様などからクロックが安定するまでの時間を知ることが可能なので、その時間を基に作成した専用ハードウェアタイマなどを利用して発振が安定するのを待ち、安定後にＣＰＵ１４１などに供給する。当該タイマは、クロック切り替え回路４１０や内部オシレータ１２０内にあってもよい。
【００３４】
以下に、本実施の形態の処理装置１００におけるＵＳＢインタフェースの活性化方法およびＩＳＯ７８１６インタフェースの活性化方法について説明する。図５は、本実施の形態の処理装置１００におけるＵＳＢインタフェースの活性化手順およびＩＳＯ７８１６インタフェースの活性化手順の例を表したフロー図である。また、図６は、本実施の形態の処理装置１００におけるＵＳＢインタフェースの活性化手順のタイミングチャートの例である。また、図７は、本実施の形態の処理装置１００におけるＩＳＯ７８１６インタフェースの活性化手順のタイミングチャートの例である。
【００３５】
まず、図６、図７において、電圧投入前に、ＥＸ＿ＣＬＫ１１０をＬｏｗ状態、ＥＸ＿ＲＥＳＥＴ１１１をＬｏｗ状態、ＵＡＲＴ＿Ｉ／Ｏ１１２をＨｉｇｈ状態、Ｄ＋１１３をＨｉｇｈ状態、Ｄ−１１４をＨｉｇｈ状態にそれぞれ設定する（タイミング６１０、タイミング７１０）。図５における電圧投入後（ステップ５０１）、ＵＳＢ検出回路４３０が、Ｄ＋１１３とＤ−１１４とが少なくとも１０ｍｓの間Ｌｏｗ状態であることを検知した場合（ステップ５０２）、ＵＳＢインタフェース活性化手順を開始する。このとき、ＵＳＢ検出回路４３０はＵＳＢ検出信号４３１をＨｉｇｈ状態にする（タイミング６２０）。
【００３６】
ＵＳＢ検出回路４３０は、内部オシレータ１２０とは別のオシレータで生成したクロックを利用して動作する。ただし、消費電力を低減するため、その動作周波数は数ＭＨｚ程度とする。また、当該クロックは内部オシレータ１２０で生成したクロックであってもよい。ただし、その場合は電圧投入時に内部オシレータ１２０を起動する必要がある。
【００３７】
内部オシレータ１２０は、ＵＳＢ検出信号４３１がＨｉｇｈ状態になったことを検知すると、内部クロック４１２を生成する（ステップ５１１、タイミング６２０）。その後、内部オシレータ１２０内のタイマを利用して、内部クロック４１２の発振が安定するのを待ち、安定した後、クロック切り替え回路４１０を経由して、ＣＰＵ１４１および各インタフェース制御回路などに内部クロック４１２をシステムクロック４１３として供給する（ステップ５１２）。このとき、クロック切り替え回路４１０は、内部クロックスタート信号４１５をＨｉｇｈ状態にする（タイミング６３０）。なお、ＵＡＲＴ制御回路１４２には内部クロック４１２を供給しなくてもよい。
【００３８】
次に、リセット制御回路４２０は、ＵＳＢ検出信号４３１がＨｉｇｈ状態であり、かつ内部クロックスタート信号４１５がＨｉｇｈ状態あることを確認した後、システムリセット４２２をＨｉｇｈ状態にする（ステップ５１３、タイミング６４０）。なお、システムリセット４２２ではなく、ＵＳＢリセット４２４をＨｉｇｈ状態にしてもよい。
【００３９】
システムリセット４２２がＨｉｇｈ状態になった後、ＵＳＢ制御回路１４３は、処理装置１００がＦｕｌｌ  ＳｐｅｅｄもしくはＨｉｇｈ  Ｓｐｅｅｄに対応している場合はＤ＋１１３をＨｉｇｈ状態にし、Ｌｏｗ  Ｓｐｅｅｄのみに対応している場合はＤ−１１４をＨｉｇｈ状態にする（ステップ５１４、タイミング６５０）。なお、以降の説明においては、本実施の形態の処理装置１００はＨｉｇｈ  Ｓｐｅｅｄに対応しているものとする。
【００４０】
ＵＳＢ制御回路１４３の代わりに専用ハードウェアがＤ＋１１３もしくはＤ−１１４をＨｉｇｈ状態にする構成であってもよい。専用ハードウェアを用いる場合は、内部クロック４１２の供給がなくても動作可能であるため、処理装置１００全体の消費電力を低減するため、内部クロック４１２の生成・供給（ステップ５１１、Ｓ５１２）やリセット処理（ステップ５１３）は、できるだけ遅いタイミングであるステップ５１５の後に行うことが望ましい。
【００４１】
Ｄ＋１１３がＨｉｇｈ状態になったことにより、外部端末はＵＳＢインタフェースを持つ処理装置１００が接続されたことを検知し、Ｈｉｇｈ状態になったＤ＋１１３をＬｏｗ状態にする（ステップ５１５、タイミング６６０）。以上の処理が正常に行われた場合のみ、ＵＳＢインタフェースが活性化され、処理装置１００はＵＳＢインタフェースでデータ転送を行う装置として動作することができる。
【００４２】
ステップ５０２で、ＵＳＢ検出回路４３０がＤ＋１１３とＤ−１１４とが１０ｍｓの間Ｌｏｗ状態になったことを検知せず、さらにステップ５２１で、クロック切り替え回路４１０がＥＸ＿ＣＬＫ１１０経由で外部クロック４１１が供給されたことを検知した場合、ＩＳＯ７８１６インタフェース活性化手順を開始する。このとき、クロック切り替え回路４１０は、ＵＳＢ検出信号４３１がＬｏｗ状態であることを確認した後、外部クロック４１１をシステムクロック４１３として供給し、外部クロック検出信号４１４をＨｉｇｈ状態にする（タイミング７２０）。
【００４３】
次に、リセット制御回路４２０は、外部クロック検出信号４１４がＨｉｇｈ状態になってから４００クロック以内にＥＸ＿ＲＥＳＥＴ１１１経由の外部リセット４２１がＨｉｇｈ状態になったことを検知したら、システムリセット４２２をＨｉｇｈ状態にする（ステップ５２２、タイミング７３０）。なお、システムリセット４２２ではなく、ＵＡＲＴリセット４２３をＨｉｇｈ状態にしてもよい。また、ＩＳＯ７８１６インタフェース活性化手順への移行は、外部クロック４１１の検知からではなく、外部リセット４２１がＨｉｇｈ状態になったことを検知してからでもよい。
【００４４】
システムリセット４２２がＨｉｇｈ状態になった後、ＵＡＲＴ制御回路１４２は、４０，０００クロック以内にＡＴＲ（Answer To Reset）をＵＡＲＴ＿Ｉ／Ｏ１１２経由で外部端末に送信する（ステップ５２３、タイミング７４０）。以上の処理が正常に行われた場合のみ、ＩＳＯ７８１６インタフェースが活性化され、処理装置１００はＩＳＯ７８１６インタフェースでデータ転送を行う装置として動作することができる。なお、ＩＳＯ７８１６インタフェースが活性化したときは、ＵＳＢ制御回路１４３に外部クロック４１１を供給しなくてもよい。
【００４５】
以上の処理は、クロック制御回路１３０の他に、ＵＡＲＴ制御回路１４２やＵＳＢ制御回路１４３を利用することにより、全てハードウェアで行うことが可能であるが、以下では、ＣＰＵ１４１に内蔵されたＲＯＭ等に搭載したファームウェアを用いて、ＵＳＢインタフェースおよびＩＳＯ７８１６インタフェースの活性化を行う方法の例について説明する。
【００４６】
図１５は、本実施の形態の処理装置１００における、ＵＳＢインタフェースおよびＩＳＯ７８１６インタフェースの活性化の際に使用するレジスタの構成例の一部を示した図である。また、図１６は、本実施の形態の処理装置１００におけるファームウェアを用いたＵＳＢインタフェースの活性化手順およびＩＳＯ７８１６インタフェースの活性化手順の例を表したフロー図である。
【００４７】
図１５において、ＣＬＫ＿ＳＥＬＥＣＴ１５０１は、システムクロック４１３の供給源を示すビットである。例えば、“０”の場合は供給源が外部クロック４１１であることを示し、“１”の場合は供給源が内部クロック４１２であることを示す。ＲＥＳＥＴ＿ＳＥＬＥＣＴ１５０２は、外部リセット４２１の有効／無効を示すビットである。例えば、“０”の場合は外部リセット４２１が無効であることを示し、“１”の場合は有効であることを示す。ＭＯＤＥ＿ＳＥＬＥＣＴ１５０３は、使用可能なインタフェースを示すビットである。例えば、“０１”の場合はＩＳＯ７８１６インタフェースが使用可能であることを示し、“１０”の場合はＵＳＢインタフェースが使用可能であることを示す。さらに、“１１”の場合は両方のインタフェースが使用可能であることを示す。
【００４８】
ＤＰＰＵ１５１１は、例えば、“１”を設定するとＤ＋１１３もしくはＤ−１１４をプルアップするビットである。ＵＳＢ＿ＤＥＴＥＣＴ１５１２は、Ｄ＋１１３およびＤ−１１４が少なくとも１０ｍｓ間Ｌｏｗ状態であることをＵＳＢ検出回路４３０が検知すると“１”が設定されるビットである。ＵＳＢ＿ＭＯＤＥ１５１３は、ＵＳＢインタフェースの速度を示すビットである。例えば、“０”の場合はＬｏｗ  Ｓｐｅｅｄであることを示し、“１”の場合はＦｕｌｌ  Ｓｐｅｅｄであることを示す。
【００４９】
ＤＰ１５２１は、Ｄ＋１１３の状態を示すビットである。例えば、“０”の場合はＤ＋１１３がＬｏｗ状態であることを示し、“１”の場合はＨｉｇｈ状態であることを示す。ＤＭ１５２２は、Ｄ−１１４の状態を示すビットである。例えば、“０”の場合はＤ−１１４がＬｏｗ状態であることを示し、“１”の場合はＨｉｇｈ状態であることを示す。
【００５０】
図１６において、電圧投入前は、ＣＬＫ＿ＳＥＬＥＣＴ１５０１には“０”、ＲＥＳＥＴ＿ＳＥＬＥＣＴ１５０２には“１”、ＭＯＤＥ＿ＳＥＬＥＣＴ１５０３には“０１”が設定されており、また、ＤＰＰＵ１５１１には“０”、ＵＳＢ＿ＤＥＴＥＣＴ１５１２には“０”がそれぞれ設定されている（ステップ１６００）。なお、ＵＳＢ＿ＭＯＤＥ１５１３、ＤＰ１５２１、ＤＭ１５２２には、処理装置１００の仕様によって異なる値が設定され得るが、本実施の形態の処理装置１００では全て“１”が設定されているものとする。
【００５１】
電圧投入後、ＣＰＵ１４１に対してリセット割り込みが発生すると（ステップ１６０１）、ファームウェアは、リセット割り込み関数内でＭＯＤＥ＿ＳＥＬＥＣＴ１５０３の値を確認する（ステップ１６０２）。なお、ＭＯＤＥ＿ＳＥＬＥＣＴ１５０３の値はリセット制御回路４２０が設定するものとする。ＭＯＤＥ＿ＳＥＬＥＣＴ１５０３の値が“１０”の場合、ファームウェアはＤＰＰＵ１５１１に“１”を設定し、Ｄ＋１１３をＨｉｇｈ状態にする（ステップ１６１１）。その後、ファームウェアは、ＤＰ１５２１の値が“０”であるかどうかを監視し（ステップ１６１２）、“０”になった場合は、処理装置１００はＵＳＢインタフェースで動作する。
【００５２】
なお、Ｄ＋１１３がＬｏｗ状態になったときに、ＵＳＢ検出回路４３０もしくはＵＳＢ制御回路１４３がＣＰＵ１４１に対して割り込みを発生させるようにしてもよい。以上のような処理が正常に行われた場合のみ、ＵＳＢインタフェースが活性化され、処理装置１００はＵＳＢインタフェースでデータ転送を行う装置として動作することができる。
【００５３】
また、ステップ１６０２においてＭＯＤＥ＿ＳＥＬＥＣＴ１５０３の値が“０１”の場合、ファームウェアは、４０，０００クロック以内にリセット割り込み関数内でＡＴＲをＵＡＲＴ＿Ｉ／Ｏ１１２経由で外部端末に送信する（ステップ１６２１）。以上のような処理が正常に行われた場合のみ、ＩＳＯ７８１６インタフェースが活性化され、処理装置１００はＩＳＯ７８１６インタフェースでデータ転送を行う装置として動作することができる。
【００５４】
以上の処理により、一つの処理装置１００において、ＩＳＯ７８１６インタフェースおよびＵＳＢインタフェースを活性化することができ、複数のインタフェースでのデータ転送に対応することが可能となる。ここで、図２に示したように、ＩＳＯ７８１６インタフェースによるデータ転送に使用する外部端子と、ＵＳＢインタフェースによるデータ転送に使用する外部端子とは重複していない。そのため、物理的には両方のインタフェースを同時に使用することも可能である。
【００５５】
しかし、上述の初期動作時の処理の結果、処理装置１００は、ＩＳＯ７８１６インタフェースで動作しているときは外部クロック４１１で動作し、ＵＳＢインタフェースで動作しているときは内部クロック４１２で動作している。そのため、両方のインタフェースを同時に使用する場合は、システムクロック４１３を外部クロック４１１もしくは内部クロック４１２のどちらかに統一する必要がある。
【００５６】
前述のように、ＵＳＢインタフェースによるデータ転送の場合でも外部クロック４１１を利用することは可能であるが、その動作周波数が４ＭＨｚ程度と低速であるため、大容量のデータを扱うＵＳＢインタフェースによるデータ転送には適さない。そこで、本実施の形態の処理装置１００では、両方のインタフェースを使用する際は、システムクロック４１３として内部クロック４１２を使用して動作するものとする。ただし、外部クロック４１１が高速な場合などは、システムクロック４１３として外部クロック４１１を使用する構成とすることも可能である。
【００５７】
ここで、処理装置１００がＩＳＯ７８１６インタフェースで動作している最中にＵＳＢインタフェースを活性化する場合、システムクロック４１３を外部クロック４１１から内部クロック４１２に切り替える必要が生じる。しかし、処理装置１００の動作中に外部クロック４１１から内部クロック４１２に切り替えると、切り替えの際にノイズが生じ、ＣＰＵ１４１が誤動作する可能性があるという問題点がある。
【００５８】
そこで本実施の形態の処理装置１００では、図４に示すように、クロック制御回路１３０に、スリープ信号４１６およびクロック切り替え信号４１７を有する構成としている。スリープ信号４１６は、ＣＰＵ１４１がスリープ状態に移行する際にＨｉｇｈ状態にする信号であり、クロック切り替え信号４１７は、クロック切り替え回路４１０がシステムクロック４１３を外部クロック４１１から内部クロック４１２に切り替えた際にＨｉｇｈ状態にする信号である。
【００５９】
以下に、本実施の形態の処理装置１００における、ＵＳＢインタフェースにて動作中にＩＳＯ７８１６インタフェースの活性化を行う方法、およびＩＳＯ７８１６インタフェースにて動作中にＵＳＢインタフェースの活性化を行う方法について説明する。
【００６０】
図８は、本実施の形態の処理装置１００の、ＵＳＢインタフェースにて動作中におけるＩＳＯ７８１６インタフェースの活性化手順、およびＩＳＯ７８１６インタフェースにて動作中におけるＵＳＢインタフェースの活性化手順の例を表したフロー図である。また、図９は、本実施の形態の処理装置１００の、ＵＳＢインタフェースにて動作中におけるＩＳＯ７８１６インタフェースの活性化手順のタイミングチャートの例である。また、図１０は、本実施の形態の処理装置１００の、ＩＳＯ７８１６インタフェースにて動作中におけるＵＳＢインタフェースの活性化手順のタイミングチャートの例である。
【００６１】
まず、処理装置１００がＵＳＢインタフェースで動作しているとき、クロック切り替え回路４１０がＥＸ＿ＣＬＫ１１０経由で外部クロック４１１が供給されたことを検知すると（ステップ８０１）、ＩＳＯ７８１６インタフェース活性化手順を開始する。このとき、クロック切り替え回路４１０は、外部クロック検出信号４１４をＨｉｇｈ状態にする（タイミング９１０）。
【００６２】
このとき、クロック切り替え回路４１０は、ＵＡＲＴ制御回路１４２には内部クロック４１２を供給する。ただし、ＵＡＲＴ制御回路１４２内にはＵＡＲＴ＿Ｉ／Ｏ１１２経由で外部端末とデータ転送を行うモジュールがあり、これらモジュールは外部クロック４１１にて動作する必要があるため、クロック切り替え回路４１０は、これらモジュールに対してのみ外部クロック４１１を供給するものとする。
【００６３】
リセット制御回路４２０は、外部クロック検出信号４１４がＨｉｇｈ状態なってから４００クロック以内に、ＥＸ＿ＲＥＳＥＴ１１１経由の外部リセット４２１がＨｉｇｈ状態になったことを検知すると（ステップ８０２）、ＵＡＲＴリセット４２３をＨｉｇｈ状態にする（タイミング９２０）。ＵＡＲＴリセット４２３がＨｉｇｈ状態になった後、ＵＡＲＴ制御回路１４２は、４０，０００クロック以内にＡＴＲをＵＡＲＴ＿Ｉ／Ｏ１１２経由で外部端末に送信する（ステップ８０３、タイミング９３０）。なお、ＵＡＲＴリセット４２３ではなく、システムリセット４２２をＨｉｇｈ状態にしてもよい。
【００６４】
以上の処理が正常に行われた場合のみ、ＵＳＢインタフェースでの動作中にＩＳＯ７８１６インタフェースが活性化され、処理装置１００は、ＵＳＢインタフェースとＩＳＯ７８１６インタフェースの両方を同時に使用して動作することができる。
【００６５】
処理装置１００がＩＳＯ７８１６インタフェースで動作しているとき、ＵＳＢ検出回路４３０が、Ｄ＋１１３とＤ−１１４とが少なくとも１０ｍｓの間Ｌｏｗ状態であることを検知すると（ステップ８１１）、ＵＳＢ活性化手順を開始する。このとき、ＵＳＢ検出回路４３０は、ＵＳＢ検出信号４３１をＨｉｇｈ状態にする（タイミング１０１０）。
【００６６】
内部オシレータ１２０は、ＵＳＢ検出信号４３１がＨｉｇｈ状態になったことを検知すると、内部クロック４１２を生成する（ステップ８１２、タイミング１０１０）。クロック切り替え回路４１０は、内部クロック４１２が安定した後、内部クロックスタート信号４１５をＨｉｇｈ状態にし、また、外部クロック４１１および内部クロック４１２の両方が供給されたことを確認した後、クロック切り替え信号４１７をＨｉｇｈ状態にする（タイミング１０２０）。また、リセット制御回路４２０は、内部クロックスタート信号４１５がＨｉｇｈ状態になったことを検知すると、ＵＳＢリセット４２４をＨｉｇｈ状態にする（タイミング１０２０）。なお、ＵＳＢリセット４２４をＨｉｇｈ状態にするタイミングは、後述するタイミング１０４０の後であってもよい。
【００６７】
ＣＰＵ１４１は、クロック切り替え信号４１７がＨｉｇｈ状態になったことを検知すると、スリープ状態に移行するために必要な処理（レジスタの設定や現在の状態の保存等）およびＵＳＢインタフェースの処理に関するリセット処理を行う。必要な処理が完了した後、スリープ信号４１６をＨｉｇｈ状態にし、スリープ状態に移行する（ステップ８１３、タイミング１０３０）。
【００６８】
クロック切り替え回路４１０は、スリープ信号４１６がＨｉｇｈ状態になったことを検知すると、システムクロック４１３を外部クロック４１１から内部クロック４１２へと切り替える（ステップ８１４、タイミング１０４０）。システムクロック４１３を切り替えた後、ＣＰＵ１４１に割り込み信号を送信し、ＣＰＵ１４１の動作を再開させる（ステップ８１５）。その際に、クロック切り替え回路４１０は、クロック切り替え信号４１７およびスリープ信号４１６をＬｏｗ状態にする（タイミング１０４０）。
【００６９】
ＣＰＵ１４１の動作再開後、ＵＳＢ制御回路１４３はＤ＋１１３をＨｉｇｈ状態にする（ステップ８１６、タイミング１０５０）。なお、ＵＳＢ制御回路１４３の代わりに専用ハードウェアがＤ＋１１３をＨｉｇｈ状態にしてもよい。また、ＵＳＢリセット４２４をＨｉｇｈ状態にするタイミングがタイミング１０２０ではなくタイミング１０４０の後である場合は、ＵＳＢリセット４２４がＨｉｇｈ状態になった後に、ＵＳＢ制御回路１４３がＤ＋１１３をＨｉｇｈ状態にしてもよい。Ｄ＋１１３がＨｉｇｈ状態になったことにより、外部端末はＵＳＢインタフェースを持つ処理装置１００が接続されたことを検知し、Ｈｉｇｈ状態になったＤ＋１１３をＬｏｗ状態にする（ステップ８１７、タイミング１０６０）。
【００７０】
以上の処理が正常に行われた場合のみ、ＩＳＯ７８１６動作中にＵＳＢインタフェースが活性化され、処理装置１００は、ＵＳＢインタフェースとＩＳＯ７８１６インタフェースの両方を同時に使用して動作することができる。
【００７１】
なお、本実施の形態の処理装置１００では、両方のインタフェースを同時に使用する際に、システムクロック４１３として内部クロック４１２を使用する構成としているが、システムクロック４１３として外部クロック４１１を使用する場合は、上述のＣＰＵ１４１のスリープ状態への移行、クロック切り替え処理、ＣＰＵ１４１の動作再開の一連の処理（ステップ８１３〜ステップ８１５）は、ＵＳＢインタフェースでの動作中にＩＳＯ７８１６インタフェースを活性化する処理の中で行われることになる。
【００７２】
以上の処理は、クロック制御回路１３０の他に、ＵＡＲＴ制御回路１４２やＵＳＢ制御回路１４３を利用することにより、全てハードウェアで行うことが可能であるが、以下では、ＣＰＵ１４１に内蔵されたＲＯＭ等に搭載したファームウェアを用いて、ＵＳＢインタフェースにて動作中にＩＳＯ７８１６インタフェースの活性化を行う方法、およびＩＳＯ７８１６インタフェースにて動作中にＵＳＢインタフェースの活性化を行う方法の例について説明する。
【００７３】
図１７は、本実施の形態の処理装置１００の、ファームウェアを用いたＵＳＢインタフェースにて動作中におけるＩＳＯ７８１６インタフェースの活性化手順、およびＩＳＯ７８１６インタフェースにて動作中におけるＵＳＢインタフェースの活性化手順の例を表したフロー図である。
【００７４】
図１７において、処理装置１００がＵＳＢインタフェースで動作しているとき、ＣＬＫ＿ＳＥＬＥＣＴ１５０１には“１”、ＲＥＳＥＴ＿ＳＥＬＥＣＴ１５０２には“０”、ＭＯＤＥ＿ＳＥＬＥＣＴ１５０３には“１０”、ＵＳＢ＿ＤＥＴＥＣＴ１５１２には“１”がそれぞれ設定されている（ステップ１７００）。
【００７５】
クロック制御回路１３０もしくはＵＡＲＴ制御回路１４２が、ＩＳＯ７８１６インタフェース活性化手順の開始および外部リセット４２１がＨｉｇｈ状態になったことを検知すると、ＣＰＵ１４１に対してＵＡＲＴ割り込みを発生させる（ステップ１７０１）。このとき、クロック制御回路１３０は、ＭＯＤＥ＿ＳＥＬＥＣＴ１５０３を“１１”に設定する。ＵＡＲＴ割り込みを検知すると、ファームウェアは、４０，０００クロック以内に、ＵＡＲＴ割り込み関数内でＡＴＲをＵＡＲＴ＿Ｉ／Ｏ１１２経由で送信する（ステップ１７０２）。なお、ＡＴＲ送信後にＭＯＤＥ＿ＳＥＬＥＣＴ１５０３に“１１”に設定するようにしてもよい。
【００７６】
以上のような処理が正常に行われた場合のみ、ＵＳＢインタフェースでの動作中にＩＳＯ７８１６インタフェースが活性化され、処理装置１００は、ＵＳＢインタフェースおよびＩＳＯ７８１６インタフェースの両方を同時に使用して動作することができる。
【００７７】
処理装置１００がＩＳＯ７８１６インタフェースで動作しているとき、ＣＬＫ＿ＳＥＬＥＣＴ１５０１には“０”、ＲＥＳＥＴ＿ＳＥＬＥＣＴ１５０２には“１”、ＭＯＤＥ＿ＳＥＬＥＣＴ１５０３には“０１”、ＵＳＢ＿ＤＥＴＥＣＴ１５１２には“０”がそれぞれ設定されている（ステップ１７１０）。
【００７８】
ＵＳＢ検出回路４３０もしくはＵＳＢ制御回路１４３が、Ｄ＋１１３およびＤ−１１４が少なくとも１０ｍｓの間Ｌｏｗ状態であることを検知すると、ＣＰＵ１４１に対してＵＳＢ検出割り込みを発生させる（ステップ１７１１）。ＵＳＢ検出割り込みを検知すると、ファームウェアは、ＵＳＢ検出割り込み関数内で、ＣＬＫ＿ＳＥＬＥＣＴ１５０１に“１”を設定し（ステップ１７１２）、スリープ命令を実行してＣＰＵ１４１をスリープ状態に移行させる（ステップ１７１３）。なお、ＵＳＢ検出信号４３２がＨｉｇｈ状態になると、ＵＳＢ＿ＤＥＴＥＣＴ１５１２に“１”が設定されるため、ＵＳＢ検出割り込みを利用せず、ＵＳＢ＿ＤＥＴＥＣＴ１５１２が“１”になることをファームウェアで監視する方法でもよい。
【００７９】
スリープ命令が実行されるとスリープ信号４１６がＨｉｇｈ状態となるため、クロック切り替え回路４１０がシステムクロック４１３を内部クロック４１２へと切り替え、ＣＰＵ１４１に割り込み信号を送信し、ＣＰＵ１４１の動作を再開させる（ステップ１７１４）。ＣＰＵ１４１の動作が再開した後、ファームウェアは、ＤＰＰＵ１５１１に“１”を設定し、Ｄ＋１１３をＨｉｇｈ状態にする（ステップ１７１５）。その後、ファームウェアは、ＤＰ１５２１の値が“０”であるかどうかを監視し（ステップ１７１６）、“０”になった場合はＵＳＢインタフェースで動作する。なお、Ｄ＋１１３がＬｏｗ状態になったときにＣＰＵ１４１に対して再度割り込みを発生させるようにしてもよい。
【００８０】
以上のような処理が正常に行われた場合のみ、ＩＳＯ７８１６インタフェースにて動作中にＵＳＢインタフェースが活性化され、処理装置１００は、ＵＳＢインタフェースおよびＩＳＯ７８１６インタフェースの両方を同時に使用して動作することができる。
【００８１】
スリープ状態に移行している間はＣＰＵ１４１の動作は停止しているため、上記のようにシステムクロック４１３として供給するクロック系統の切り替えにおいてＣＰＵ１４１をスリープ状態にすることにより、ノイズの影響を受けずにクロック系統を切り替えることが可能となる。さらに、クロック系統の切り替え中に外部からクロックに対する攻撃を受けた場合でも、ＣＰＵ１４１の動作は停止しているため、ＣＰＵ１４１が誤動作する恐れはなく、処理装置１００の耐タンパ性を維持することが可能となる。
【００８２】
次に、本実施の形態の処理装置１００における、両方のインタフェースにて動作中にＩＳＯ７８１６インタフェースの非活性化を行う方法、および両方のインタフェースにて動作中にＵＳＢインタフェースの非活性化を行う方法について説明する。
【００８３】
図１１は、本実施の形態の処理装置１００の、両方のインタフェースにて動作中におけるＩＳＯ７８１６インタフェースの非活性化手順、および両方のインタフェースにて動作中におけるＵＳＢインタフェースの非活性化手順の例を表したフロー図である。また、図１２は、本実施の形態の処理装置１００の、両方のインタフェースにて動作中におけるＩＳＯ７８１６インタフェースの非活性化手順のタイミングチャートの例である。また、図１３は、本実施の形態の処理装置１００の、両方のインタフェースにて動作中におけるＵＳＢインタフェースの非活性化手順のタイミングチャートの例である。
【００８４】
まず、処理装置１００が両方のインタフェースにて動作している際に、リセット制御回路４２０が、ＥＸ＿ＲＥＳＥＴ１１１経由の外部リセット４２１がＬｏｗ状態になったことを検知した場合（ステップ１１０１）、ＩＳＯ７８１６インタフェース非活性化手順を開始する。その際、リセット制御回路４２０はＵＡＲＴリセット４２３をＬｏｗ状態にする（タイミング１２１０）。外部リセット４２１がＬｏｗ状態になったことを検知した後、クロック切り替え回路４１０は、ＥＸ＿ＣＬＫ１１０経由での外部クロック４１１の供給が停止したことを検知する（ステップ１１０２）。その際、外部クロック検出信号４１４をＬｏｗ状態にする（タイミング１２２０）。
【００８５】
以上の処理が正常に行われたとき、ＩＳＯ７８１６インタフェースは非活性化され、処理装置１００は、ＵＳＢインタフェースのみで動作することになる。その後、クロック制御回路１３０が外部クロック４１１の供給を検知することにより、再度ＩＳＯ７８１６インタフェースを活性化することができる。なお、外部端末が外部リセット４２１をＬｏｗ状態にせずに外部クロック４１１の供給を停止した場合も、ＩＳＯ７８１６の規格には反するが、ＩＳＯ７８１６インタフェースを非活性化し、処理装置１００がＵＳＢインタフェースのみで動作するようにしてもよい。
【００８６】
処理装置１００が両方のインタフェースにて動作している際に、ＵＳＢ検出回路４３０がＤ＋１１３およびＤ−１１４の信号線の状態がサスペンド状態になったことを検知した場合（ステップ１１１１）、ＵＳＢインタフェース非活性化手順を開始する。その際、ＵＳＢ検出回路４３０はＵＳＢ検出信号４３１をＬｏｗ状態にする（タイミング１３１０）。サスペンド状態とは、３ｍｓ以上の間、外部端末との間でデータ転送を行っていないときに、消費電力を削減するため、処理装置１００を省電力モードで動作させる場合の状態である。なお、ＵＳＢ検出回路４３０の代わりに、ＵＳＢ制御回路１４３や専用ハードウェアがサスペンド状態の検知を行ってもよい。
【００８７】
ＣＰＵ１４１は、ＵＳＢ検出信号４３１がＬｏｗ状態になったことを検知すると、スリープ状態に移行するために必要な処理（レジスタの設定や現在の状態の保存等）を行う。必要な処理が完了した後、スリープ信号４１６をＨｉｇｈ状態にし、スリープ状態に移行する（ステップ１１１２、タイミング１３２０）。クロック切り替え回路４１０は、スリープ信号４１６がＨｉｇｈ状態になったことを検知すると、システムクロック４１３を内部クロック４１２から外部クロック４１１へと切り替える（ステップ１１１３、タイミング１３３０）。このとき、内部クロック４１２は停止してもよい。なお、内部クロックスタート信号４１５をＬｏｗ状態にすることにより内部クロック４１２を停止させることも可能である（タイミング１３３０）。
【００８８】
システムクロック４１３の切り替え後、ＣＰＵ１４１に割り込み信号を送信し、外部クロック４１１にてＣＰＵ１４１の動作を再開させる（ステップ１１１４、タイミング１３４０）。なお、ステップ１１１１にてＵＳＢインタフェースがサスペンド状態になったことを検知した場合であっても、上記のようにシステムクロック４１３を内部クロック４１２から外部クロック４１１に切り替えず、内部クロック４１２のまま動作するようにしてもよい。
【００８９】
以上の処理が正常に行われたとき、ＵＳＢインタフェースは非活性化され、処理装置１００は、ＩＳＯ７８１６インタフェースのみで動作することになる。その後、ＵＳＢ検出回路４３０もしくはＣＰＵ１４１が、Ｄ＋１１３およびＤ−１１４の信号線の状態がレジューム状態になったことを検知することにより、再度ＵＳＢインタフェースを活性化することができる。
【００９０】
以上の処理は、クロック制御回路１３０の他に、ＵＡＲＴ制御回路１４２やＵＳＢ制御回路１４３を利用することにより、全てハードウェアで行うことが可能であるが、以下では、ＣＰＵ１４１に内蔵されたＲＯＭ等に搭載したファームウェアを用いて、両方のインタフェースにて動作中にＩＳＯ７８１６インタフェースの非活性化を行う方法、および両方のインタフェースにて動作中にＵＳＢインタフェースの非活性化を行う方法の例について説明する。
【００９１】
図１８は、本実施の形態の処理装置１００の、ファームウェアを用いた両方のインタフェースにて動作中におけるＩＳＯ７８１６インタフェースの非活性化手順、および両方のインタフェースにて動作中におけるＵＳＢインタフェースの非活性化手順の例を表したフロー図である。
【００９２】
図１８において、処理装置１００が両方のインタフェースにて動作しているとき、ＣＬＫ＿ＳＥＬＥＣＴ１５０１には“１”、ＲＥＳＥＴ＿ＳＥＬＥＣＴ１５０２には“０”、ＭＯＤＥ＿ＳＥＬＥＣＴ１５０３には“１１”、ＵＳＢ＿ＤＥＴＥＣＴ１５１２には“１”がそれぞれ設定されている（ステップ１８００）。
【００９３】
処理装置１００が両方のインタフェースにて動作している際に、ＩＳＯ７８１６インタフェースの非活性化手順が開始した場合（ステップ１８０１）、ファームウェアでは特別な処理を行う必要が無いため、クロック制御回路１３０におけるＩＳＯ７８１６インタフェースの非活性化手順が完了すると、処理装置１００はＵＳＢインタフェースのみで動作する。なお、クロック制御回路１３０もしくはＵＡＲＴ制御回路１４２が、ＣＰＵ１４１にＥＸ＿ＣＬＫ１００経由での外部クロック４１１の供給が停止したことを通知する割り込みを発生させてもよい。
【００９４】
処理装置１００が両方のインタフェースにて動作している際に、ＵＳＢ検出回路４３０もしくはＵＳＢ制御回路１４３がＤ＋１１３およびＤ−１１４の信号線の状態がサスペンド状態になったことを検知すると、ＣＰＵ１４１にＵＳＢサスペンド割り込みを発生する（ステップ１８１１）。このとき、ファームウェアは、ＵＳＢサスペンド割り込み関数内でＣＬＫ＿ＳＥＬＥＣＴ１５０１に“０”を設定し（ステップ１８１２）、スリープ命令を実行してＣＰＵ１４１をスリープ状態に移行させる（ステップ１８１３）。なお、Ｄ＋１１３およびＤ−１１４の信号線の状態がサスペンド状態になると“１”が設定されるようなレジスタを用いて、サスペンド状態を検知してもよい。
【００９５】
スリープ命令が実行されるとスリープ信号４１６がＨｉｇｈ状態となるため、クロック切り替え回路４１０がシステムクロック４１３を外部クロック４１１へと切り替え、ＣＰＵ１４１に割り込み信号を送信し、ＣＰＵ１４１の動作を再開させる（ステップ１８１４）。以上の処理が正常に行われたとき、ＵＳＢインタフェースは非活性化され、処理装置１００は、ＩＳＯ７８１６インタフェースのみで動作することになる。
【００９６】
以上に説明したように、本実施の形態の処理装置１００によれば、データ転送のためのインタフェースを複数有する場合であっても、インタフェースの状態に応じてシステムクロック４１３を外部クロック４１１と内部クロック４１２との間で切り替えることができ、かつ、クロック切り替えの際のノイズによるＣＰＵ１４１の誤動作がない手順にて切り替えることが可能となる。
【００９７】
これにより、ＩＳＯ７８１６−２に準拠した外部端子を持つ処理装置１００において、ＩＳＯ７８１６−３に準拠したデータ転送を行うインタフェースと、ＩＳＯ７８１６−１２に準拠したＵＳＢ転送を行うインタフェースとを両方同時に使用することができ、ＩＳＯ７８１６−３に準拠した少量のデータの転送を行う際は、消費電力が低い外部クロック４１１を利用して動作し、ＩＳＯ７８１６−１２に準拠した大容量のデータの転送を行う際は、消費電力が高い内部クロック４１２を利用して動作することが可能となる。
【００９８】
＜実施の形態２＞
本発明の実施の形態２である処理装置について説明する。図１４は、本実施の形態の処理装置１００の内部構成の例を示した図であり、図１に示す処理装置１００の構成にコマンド解析モジュール１４０１を追加した構成となっている。
【００９９】
処理装置１００が、実施の形態１における図５のステップ５２１〜Ｓ５２３の処理等によりＩＳＯ７８１６インタフェースを活性化した後、外部端末がＵＡＲＴ＿Ｉ／Ｏ１１２経由で特定のコマンドを処理装置１００に入力すると、コマンド解析モジュール１４０１がそのコマンドを解析し、ＣＰＵ１４１をスリープ状態に移行する。
【０１００】
その後、実施の形態１における図８のステップ８１４〜ステップ８１５と同様に、システムクロック４１３を外部クロック４１１から内部クロック４１２へと切り替えた後、ＣＰＵ１４１の動作を開始させる。さらに、内部クロック４１２から外部クロック４１１への切り替えも、上記と同様にＵＡＲＴ＿Ｉ／Ｏ１１２経由の特定のコマンドを用いることにより行うことができる。
【０１０１】
また、コマンド解析モジュール１４０１を使用せず、ＣＰＵ１４１に内蔵されたＲＯＭ等に搭載したファームウェアを用いてコマンドを解析し、実施の形態１の図１７におけるステップ１７１２〜ステップ１７１４と同様に、システムクロック４１３を外部クロック４１１から内部クロック４１２へと切り替えた後、ＣＰＵ１４１の動作を開始させるようにしてもよい。さらに、内部クロック４１２から外部クロック４１１への切り替えも同様に行うことができる。
【０１０２】
上記手順によりシステムクロック４１３を外部クロック４１１から内部クロック４１２へと切り替えた後、Ｄ＋１１３およびＤ−１１４が少なくとも１０ｍｓの間Ｌｏｗ状態であることを検知した場合は、ＵＳＢインタフェースの活性化手順を行った後、ＩＳＯ７８１６インタフェースと同時にＵＳＢインタフェースで動作させてもよい。なお、本実施の形態の処理装置１００においては、ＩＳＯ７８１６インタフェースを使用したコマンドの入力によりシステムクロック４１３を切り替えるため、ＵＳＢインタフェースによるデータ転送のために必要なモジュールおよび端子がない構成であっても構わない。
【０１０３】
以上に説明したように、本実施の形態の処理装置１００によれば、外部からのコマンドによりシステムクロック４１３を外部クロック４１１と内部クロック４１２との間で切り替えることができ、かつ、クロック切り替えの際のノイズによるＣＰＵ１４１の誤動作がない手順にて切り替えることが可能となる。
【０１０４】
＜実施の形態３＞
本発明の実施の形態３である処理装置について図１９〜図３０を用いて説明する。図１９は、本実施の形態の処理装置１００の内部構成の例を示した図であり、実施の形態１の図１に示す処理装置１００の構成にＳＷＰ＿Ｉ／Ｏ１９１７、ＳＷＰ用内部オシレータ１９２１、およびＳＷＰ制御回路１９４４を追加した構成となっている。
【０１０５】
ＳＷＰ＿Ｉ／Ｏ１９１７は、外部端末と処理装置１００との間でＳＷＰ（Single Wire Protocol）に準拠したデータ転送を行うための外部インタフェースであり、ＥＴＳＩ（European Telecommunications Standards Institute）の仕様では図２におけるＣ６端子２０６が割り当てられている。ＳＷＰ制御回路１９４４は、ＳＷＰに準拠したデータ転送を実現する回路である。以下では、ＳＷＰに準拠したデータ転送を行うインタフェースをＳＷＰインタフェースと記載する。ＳＷＰインタフェースによるデータ転送では、例えば、ＲＦ回路を有する外部端末と非接触通信によりデータ転送を行うという形態が一般的である。
【０１０６】
ＳＷＰインタフェースによるデータ転送の場合にも外部クロックを利用することは可能であるが、ＳＷＰインタフェースによる処理中に継続して外部端末から外部クロックが供給されるという保証がない。また、ＵＳＢインタフェースの処理に使用する内部オシレータ１２０によって生成される内部クロックを利用することも可能であるが、ＳＷＰインタフェースは大容量のデータを扱わず、さらに消費電力をできるだけ低減させる必要があるため、ＵＳＢインタフェースの処理に使用する内部クロックは適さない。
【０１０７】
そこで、本実施の形態の処理装置１００では、クロック生成回路としてＳＷＰ用内部オシレータ１９２１を設け、ＳＷＰインタフェースによる処理の際にはＳＷＰ用内部オシレータ１９２１により生成したクロックを使用する構成をとる。なお、ＳＷＰ用内部オシレータ１９２１は、処理装置１００の内部に限られず、処理装置１００の外部から接続する構成であってもよい。以下では、ＳＷＰ用内部オシレータ１９２１が生成したクロックをＳＷＰ用内部クロックと記載する。
【０１０８】
図２０は、ＳＷＰインタフェースを持つ処理装置１００の初期動作の流れの一例を表した図である。なお、ＳＷＰインタフェースは、ＩＳＯ７８１６インタフェース、ＵＳＢインタフェースとは独立して動作する。そのため、ＳＷＰインタフェースを持つ処理装置１００におけるＩＳＯ７８１６インタフェース、ＵＳＢインタフェースの初期動作の流れは実施の形態１の図３と同様である。
【０１０９】
電圧投入前、ＳＷＰ＿Ｉ／Ｏ１９１７はＬｏｗ状態に設定する（ステップ２０００）。電圧投入後、規定された動作電圧に達した後、ＳＷＰ＿Ｉ／Ｏ１９１７がＨｉｇｈ状態であるかどうかを判定する（ステップ２００１）。ステップ２００１での判定条件を満たしている場合のみ、以下で述べるＳＷＰインタフェース活性化手順を行う。
【０１１０】
ＳＷＰインタフェース活性化手順では、処理装置１００は、ＳＷＰ＿Ｉ／Ｏ１９１７がＨｉｇｈ状態になったことを検知すると、その応答として外部端末にＡＣＴ＿ＳＹＮＣフレームを送信する（ステップ２００２）。ＡＣＴ＿ＳＹＮＣフレームを受信した外部端末は、受信したＡＣＴ＿ＳＹＮＣフレームや外部端末の仕様に応じたＡＣＴ＿ＰＯＷＥＲ＿ＭＯＤＥフレームを処理装置１００に送信する（ステップ２００３）。外部端末が送信するＡＣＴ＿ＰＯＷＥＲ＿ＭＯＤＥフレームには、外部端末が準拠しているモード（フルパワーモードもしくはローパワーモード）を示すビットや、受信したＡＣＴ＿ＳＹＮＣフレームに異常があったことを示すビット等が含まれる。
【０１１１】
受信したＡＣＴ＿ＰＯＷＥＲ＿ＭＯＤＥフレームがＡＣＴ＿ＳＹＮＣフレームに異常があったことを示している場合（ステップ２００４）、ステップ２００２に戻って、処理装置１００はＡＣＴ＿ＳＹＮＣフレームの再送を行う。ステップ２００４にて、受信したＡＣＴ＿ＰＯＷＥＲ＿ＭＯＤＥフレームがＡＣＴ＿ＳＹＮＣフレームに異常があったことを示していない場合は、外部端末にＡＣＴ＿ＲＥＡＤＹフレームを送信する（ステップ２００５）。
【０１１２】
以上の処理が正常に行われた場合のみ、ＳＷＰインタフェースは活性化され、処理装置１００はＳＷＰインタフェースでデータ転送を行う装置として動作する。以上の処理が正常に行われなかった場合は、ＳＷＰインタフェースでは動作しない。このとき、ＩＳＯ７８１６インタフェースもしくはＵＳＢインタフェースの活性化が正常に行われた場合は、処理装置１００は当該インタフェースで動作する。
【０１１３】
図２１は、本実施の形態の処理装置１００におけるクロック制御回路１３０に含まれるモジュールの構成例を示した図である。ここでは、実施の形態１の図４に示すクロック制御回路１３０の構成に、ＳＷＰ検出回路２１４０、ＳＷＰ検出信号２１４１、ＳＷＰ用内部クロック２１１８、ＳＷＰ用内部クロックスタート信号２１１９およびＳＷＰリセット２１２５を追加した構成となっている。なお、ＳＷＰ検出回路２１４０はＳＷＰ制御回路１９４４に搭載された構成であってもよい。
【０１１４】
ＳＷＰ検出回路２１４０は、ＳＷＰ＿Ｉ／Ｏ１９１７の信号線の状態を監視し、ＳＷＰ＿Ｉ／Ｏ１９１７がＨｉｇｈ状態であることを検知すると、ＳＷＰ検出信号２１２４をＨｉｇｈ状態にするモジュールである。ＳＷＰ検出信号２１４１は、ＣＰＵ１４１およびその他のモジュールにＳＷＰインタフェースによりデータが転送されることを通知するための信号である。
【０１１５】
ＳＷＰ用内部オシレータ１９２１は、ＳＷＰ検出信号２１４１がＨｉｇｈ状態になるとＳＷＰ用内部クロック２１１８の生成を開始する。ただし、ＳＷＰ用内部クロック２１１８は、その発振が安定するまでＣＰＵ１４１などに供給するのを待つ必要がある。ＳＷＰ用内部クロックスタート信号２１１９は、ＳＷＰ用内部オシレータ１９２１で生成したＳＷＰ用内部クロック２１１８をＣＰＵ１４１や各インタフェース制御回路などに供給する際にＨｉｇｈ状態にする信号である。ＳＷＰリセット２１２５は、ＳＷＰインタフェース経由で転送するデータの処理のために必要なモジュールのみにリセットを供給する信号である。
【０１１６】
図２２は、本実施の形態の処理装置１００におけるＳＷＰインタフェースの活性化手順のタイミングチャートの例を表した図である。まず、電圧投入前、ＥＸ＿ＣＬＫ１１０をＬｏｗ状態、ＥＸ＿ＲＥＳＥＴ１１１をＬｏｗ状態、ＵＡＲＴ＿Ｉ／Ｏ１１２をＨｉｇｈ状態、ＳＷＰ＿Ｉ／Ｏ１９１７をＬｏｗ状態、Ｄ＋１１３をＨｉｇｈ状態、Ｄ−１１４をＨｉｇｈ状態に設定する（タイミング２２１０）。電圧投入後、ＳＷＰ検出回路２１４０がＳＷＰ＿Ｉ／Ｏ１９１７がＨｉｇｈ状態であることを検知した場合、ＳＷＰ検出回路２１４０はＳＷＰ検出信号２１４１をＨｉｇｈ状態にする（タイミング２２２０）。
【０１１７】
ＳＷＰ用内部オシレータ１９２１は、ＳＷＰ検出信号２１４１がＨｉｇｈ状態になったことを検知すると、ＳＷＰ用内部クロック２１１８を生成する。その後、ＳＷＰ用内部オシレータ１９２１内のタイマを利用して、ＳＷＰ用内部クロック２１１８の発振が安定するのを待ち、安定した後、クロック切り替え回路４１０を経由して、ＣＰＵ１４１および各インタフェース制御回路などにＳＷＰ用内部クロック２１１８をシステムクロック４１３として供給する（タイミング２２３０）。
【０１１８】
このとき、クロック切り替え回路４１０は、ＳＷＰ用内部クロックスタート信号２２１９をＨｉｇｈ状態にする。なお、ＵＡＲＴ制御回路１４２およびＵＳＢ制御回路１４３にはＳＷＰ用内部クロック２１１８は供給しなくてもよい。また、リセット制御回路４２０は、ＳＷＰ検出信号２１４１がＨｉｇｈ状態であり、かつＳＷＰ用内部クロックスタート信号２１１９がＨｉｇｈ状態であることを確認した後、システムリセット４２２をＨｉｇｈ状態にする（タイミング２２３０）。なお、システムリセット４２２ではなく、ＳＷＰリセット２１２５をＨｉｇｈ状態にしてもよい。
【０１１９】
システムリセット４２２がＨｉｇｈ状態になった後、ＳＷＰ制御回路１９４４は、外部端末にＡＣＴ＿ＳＹＮＣフレームを送信する（タイミング２２４０）。ＡＣＴ＿ＳＹＮＣフレームを受信した外部端末は、ＡＣＴ＿ＰＯＷＥＲ＿ＭＯＤＥフレームを処理装置１００に送信する（タイミング２２５０）。ＡＣＴ＿ＰＯＷＥＲ＿ＭＯＤＥフレームを受信した処理装置１００は、そのフレームを確認し、異常がない場合のみ外部端末にＡＣＴ＿ＲＥＡＤＹフレームを送信する（タイミング２２６０）。なお、以上の処理をＳＷＰ制御回路１９４４の代わりに専用ハードウェアが行う構成としてもよい。
【０１２０】
以上の処理は、クロック制御回路１３０の他に、ＳＷＰ制御回路１９４４を利用することにより、全てハードウェアで行うことが可能であるが、以下では、ＣＰＵ１４１に内蔵されたＲＯＭ等に搭載したファームウェアを用いて、ＳＷＰインタフェースの活性化を行う方法の例について説明する。
【０１２１】
ＳＷＰインタフェースの活性化の際に使用するレジスタの構成は、実施の形態１の図１５の構成と同様であるが、設定する値が異なる。本実施の形態では、図１５において、ＣＬＫ＿ＳＥＬＥＣＴ１５０１は、システムクロック４１３の供給源を示すビットであり、例えば、“００”の場合は供給源が外部クロック４１１であることを示し、“０１”の場合は供給源が内部クロック４１２であることを示し、“１０”の場合は供給源がＳＷＰ用内部クロック２１１８であることを示す。ＲＥＳＥＴ＿ＳＥＬＥＣＴ１５０２は、外部リセット４２１の有効／無効を示すビットであり、例えば、“０”の場合は外部リセット４２１が無効であることを示し、“１”の場合は有効であることを示す。
【０１２２】
ＭＯＤＥ＿ＳＥＬＥＣＴ１５０３は、使用可能なインタフェースを示すビットであり、例えば、“００１”の場合はＩＳＯ７８１６インタフェースが使用可能であることを示し、“０１０”の場合はＵＳＢインタフェースが使用可能であることを示し、“１００”の場合はＳＷＰインタフェースが使用可能であることを示す。さらに、“０１１”の場合はＩＳＯ７８１６インタフェースとＵＳＢインタフェースの両方が使用可能であることを示し、“１０１”の場合はＩＳＯ７８１６インタフェースとＳＷＰインタフェースの両方が使用可能であることを示し、“１１０”の場合はＵＳＢインタフェースとＳＷＰインタフェースの両方が使用可能であることを示し、“１１１”の場合は全てのインタフェースが使用可能であることを示す。
【０１２３】
ＤＰＰＵ１５１１は、例えば、“１”を設定するとＤ＋１１３もしくはＤ−１１４をプルアップするビットである。ＵＳＢ＿ＤＥＴＥＣＴ１５１２は、Ｄ＋１１３およびＤ−１１４が少なくとも１０ｍｓ間Ｌｏｗ状態であることをＵＳＢ検出回路４３０が検知すると“１”が設定されるビットである。ＵＳＢ＿ＭＯＤＥ１５１３は、ＵＳＢインタフェースの速度を示すビットである。例えば、“０”の場合はＬｏｗ  Ｓｐｅｅｄであることを示し、“１”の場合はＦｕｌｌ  Ｓｐｅｅｄであることを示す。
【０１２４】
ＤＰ１５２１は、Ｄ＋１１３の状態を示すビットであり、例えば、“０”の場合はＤ＋１１３がＬｏｗ状態であることを示し、“１”の場合はＨｉｇｈ状態であることを示す。ＤＭ１５２２は、Ｄ−１１４の状態を示すビットであり、例えば、“０”の場合はＤ−１１４がＬｏｗ状態であることを示し、“１”の場合はＨｉｇｈ状態であることを示す。
【０１２５】
図２３は、本実施の形態の処理装置１００におけるファームウェアを用いたＳＷＰインタフェースの活性化手順の例を表したフロー図である。電圧投入前、ＣＬＫ＿ＳＥＬＥＣＴ１５０１には“００”、ＲＥＳＥＴ＿ＳＥＬＥＣＴ１５０２には“１”、ＭＯＤＥ＿ＳＥＬＥＣＴ１５０３には“００１”、ＤＰＰＵ１５１１には“０”、ＵＳＢ＿ＤＥＴＥＣＴ１５１２には“０”がそれぞれ設定されている（ステップ２３００）。なお、ＵＳＢ＿ＭＯＤＥ１５１３、ＤＰ１５２１、ＤＭ１５２２には、処理装置１００の仕様によって異なる値が設定され得るが、本実施の形態の処理装置１００では全て“１”が設定されているものとする。
【０１２６】
電圧投入後、ＣＰＵ１４１に対してリセット割り込みが発生すると（ステップ２３０１）、ファームウェアは、リセット割り込み関数内でＭＯＤＥ＿ＳＥＬＥＣＴ１５０３の値を確認する（ステップ２３０２）。なお、ＭＯＤＥ＿ＳＥＬＥＣＴ１５０３の値はリセット制御回路４２０が設定するものとする。
【０１２７】
ＭＯＤＥ＿ＳＥＬＥＣＴ１５０３の値が“１００”の場合、ファームウェアはＡＣＴ＿ＳＹＮＣフレームを外部端末に送信する（ステップ２３０３）。ＡＣＴ＿ＳＹＮＣフレームを受信した外部端末は、処理装置１００にＡＣＴ＿ＰＯＷＥＲ＿ＭＯＤＥフレームを送信する（ステップ２３０４）。ＡＣＴ＿ＰＯＷＥＲ＿ＭＯＤＥフレームを受信した処理装置１００は、受信したフレームを確認し（ステップ２３０５）、送信したＡＣＴ＿ＳＹＮＣフレームに異常が無い場合のみ外部端末にＡＣＴ＿ＲＥＡＤＹフレームを送信する（ステップ２３０６）。
【０１２８】
以上の処理が正常に行われた場合のみ、ＳＷＰインタフェースが活性化され、処理装置１００はＳＷＰインタフェースでデータ転送を行う装置として動作することができる。なお、ＳＷＰ制御回路１９４４がＡＣＴ＿ＲＥＡＤＹフレームの送信までハードウェアで行い、全て正常に動作した場合のみ、ＣＰＵ１４１に対して割り込みを発生させる構成であってもよい。
【０１２９】
ステップ２３０２において、ＭＯＤＥ＿ＳＥＬＥＣＴ１５０３の値が“１００”以外の、“００１”や“０１０”、“０１１”である場合には、実施の形態１で説明した手順により、ＩＳＯ７８１６インタフェースやＵＳＢインタフェースの活性化手順を行う（ステップ２３１１）。
【０１３０】
以上の処理により、処理装置１００において、ＳＷＰインタフェースを活性化することができる。ここで、図２に示したように、ＳＷＰインタフェースによるデータ転送に使用する外部端子とＩＳＯ７８１６インタフェースおよびＵＳＢインタフェースによるデータ転送に使用する外部端子とは重複しない。そのため、物理的に３つのインタフェースを同時に使用することも可能である。
【０１３１】
しかし、上述した初期動作時の処理の結果、処理装置１００は、ＩＳＯ７８１６インタフェースで動作しているときは外部クロック４１１で動作し、ＵＳＢインタフェースで動作しているときは内部クロック４１２で動作し、ＳＷＰインタフェースで動作しているときはＳＷＰ用内部クロック２１１８で動作している。そのため、使用するインタフェースの組み合わせに応じて、システムクロック４１３で使用するクロックを統一する必要がある。
【０１３２】
一般的に、ＳＷＰインタフェースは非接触通信用途として使用する。そのため、ＳＷＰインタフェースで動作している最中にシステムクロックを外部クロック４１１や内部クロック４１２に切り替えることが時間的に難しい。そのため、ＳＷＰインタフェース動作中にＩＳＯ７８１６インタフェースもしくはＵＳＢインタフェースの活性化手順が開始された場合、クロック系統の変更は行わず、システムクロック４１３をＳＷＰ用内部クロック２１１８のままとする。
【０１３３】
また、ＵＳＢインタフェースとＳＷＰインタフェースを比較した場合、ＵＳＢインタフェースの方が大容量のデータを扱うため、通常、内部クロック４１２の方がＳＷＰ用内部クロック２１１８より高速である。そのため、ＵＳＢインタフェース動作中にＳＷＰインタフェースの活性化手順が開始された場合、クロック系統の変更は行わず、システムクロック４１３を内部クロック４１２のままとする。
【０１３４】
なお、ＳＷＰインタフェースによるデータ転送の場合でも外部クロック４１１を利用することは可能である。しかし、外部クロック４１１がＳＷＰインタフェースの動作中に供給され続けるという保証はない。そこで、ＩＳＯ７８１６インタフェース動作中にＳＷＰインタフェースの活性化が開始された場合、システムクロック４１３を外部クロック４１１からＳＷＰ用内部クロック２１１８に変更するものとする。
【０１３５】
しかし、処理装置１００の動作中に外部クロック４１１からＳＷＰ用内部クロック２１１８に切り替えると、切り替えの際にノイズが生じ、ＣＰＵ１４１が誤動作する可能性があるという問題点がある。そこで本実施の形態の処理装置１００では、実施の形態１の図４と同様に、クロック制御回路４３０に、スリープ信号４１６およびクロック切り替え信号４１７を有する構成としている。
【０１３６】
以下に、本実施の形態の処理装置１００が、ＵＳＢインタフェースにて動作中にＳＷＰインタフェースの活性化手順を行う方法、およびＩＳＯ７８１６インタフェースにて動作中にＳＷＰインタフェースの活性化手順を行う方法について説明する。図２４は、本実施の形態の処理装置１００の、ＵＳＢインタフェースまたはＩＳＯ７８１６インタフェースにて動作中におけるＳＷＰインタフェースの活性化手順の流れの例を表したフロー図である。また、図２５は、本実施の形態の処理装置１００の、ＵＳＢインタフェースにて動作中におけるＳＷＰインタフェースの活性化手順のタイミングチャートの例である。また、図２６は、本実施の形態の処理装置１００の、ＩＳＯ７８１６インタフェースにて動作中におけるＳＷＰインタフェースの活性化手順のタイミングチャートの例である。
【０１３７】
まず、処理装置１００がＵＳＢインタフェースで動作しているとき、ＳＷＰ検出回路２１４０が、ＳＷＰ＿Ｉ／Ｏ１９１７がＬｏｗ状態からＨｉｇｈ状態に変化したことを検知すると（ステップ２４０１）、ＳＷＰ活性化手順を開始する。このとき、ＳＷＰ検出回路２１４０は、ＳＷＰ検出信号２１４１をＨｉｇｈ状態にする（タイミング２５１０）。
【０１３８】
ＳＷＰ用内部オシレータ１９２１は、ＳＷＰ検出信号２１４１がＨｉｇｈ状態になったことを検知すると、ＳＷＰ用内部クロック２１１８を生成する（タイミング２５１０）。クロック切り替え回路４１０は、ＳＷＰ用内部クロック２１１８が安定した後、ＳＷＰ用内部クロックスタート信号２１１９をＨｉｇｈ状態にする（タイミング２５２０）。このとき、クロック切り替え回路４１０は、ＳＷＰ用制御回路１９４４には内部クロック４１２を供給する。
【０１３９】
リセット制御回路４２０は、ＳＷＰ用内部クロックスタート信号２１１９がＨｉｇｈ状態になったことを検知すると、ＳＷＰリセット信号２１２５をＨｉｇｈ状態にする（タイミング２５２０）。なお、ＳＷＰリセット信号２１２５をＨｉｇｈ状態にするタイミングは、ＳＷＰ検出信号２１４１がＨｉｇｈ状態になったタイミング（タイミング２５１０）でもよい。
【０１４０】
ＳＷＰ制御回路１９４４は、ＳＷＰリセット信号２１２５がＨｉｇｈ状態になったことを検知すると、外部端末にＡＣＴ＿ＳＹＮＣフレームを送信する（ステップ２４０２、タイミング２５３０）。なお、ＳＷＰ制御回路１９４４は、ＳＷＰ検出信号２１４１がＨｉｇｈ状態になったことを検知することにより、外部端末にＡＣＴ＿ＳＹＮＣフレームを送信してもよい。
【０１４１】
ＡＣＴ＿ＳＹＮＣフレームを受信した外部端末は、処理装置１００にＡＣＴ＿ＰＯＷＥＲ＿ＭＯＤＥフレームを送信する（ステップ２４０３、タイミング２５４０）。ＡＣＴ＿ＰＯＷＥＲ＿ＭＯＤＥフレームを受信した処理装置１００は、外部端末にＡＣＴ＿ＲＥＡＤＹフレームを送信する（ステップ２４０４、タイミング２５５０）。
【０１４２】
以上の処理が正常に行われた場合のみ、ＵＳＢインタフェースでの動作中にＳＷＰインタフェースが活性化され、処理装置１００は、ＵＳＢインタフェースとＳＷＰインタフェースの両方を同時に使用して動作することができる。
【０１４３】
処理装置１００がＩＳＯ７８１６インタフェースで動作しているとき、ＳＷＰ検出回路２１４０が、ＳＷＰ＿Ｉ／Ｏ１９１７がＬｏｗ状態からＨｉｇｈ状態に変化したことを検知すると（ステップ２４１１）、ＳＷＰ活性化手順を開始する。このとき、ＳＷＰ検出回路２１４０は、ＳＷＰ検出信号２１４１をＨｉｇｈ状態にする（タイミング２６１０）。
【０１４４】
ＳＷＰ用内部オシレータ１９２１は、ＳＷＰ検出信号２１４１がＨｉｇｈ状態になったことを検知すると、ＳＷＰ用内部クロック２１１８を生成する（ステップ２４１２、タイミング２６１０）。クロック切り替え回路４１０は、ＳＷＰ用内部クロック２１１８が安定した後、ＳＷＰ用内部クロックスタート信号２１１９をＨｉｇｈ状態にし、外部クロック４１１およびＳＷＰ用内部クロック２１１８の両方が供給されたことを確認した後、クロック切り替え信号４１７をＨｉｇｈ状態にする（タイミング２６２０）。また、リセット制御回路４２０は、ＳＷＰ用内部クロックスタート信号２１１９がＨｉｇｈ状態になったことを検知すると、ＳＷＰリセット信号２１２５をＨｉｇｈ状態にする（タイミング２６２０）。
【０１４５】
ＣＰＵ１４１は、クロック切り替え信号４１７がＨｉｇｈ状態になったことを検知すると、スリープ状態に移行するために必要な処理（レジスタの設定や現在の状態の保存等）およびＳＷＰインタフェースの処理に関するリセット処理を行う。必要な処理が完了した後、スリープ信号４１６をＨｉｇｈ状態にし、スリープ状態に移行する（ステップ２４１３、タイミング２６３０）。
【０１４６】
クロック切り替え回路４１０は、スリープ信号４１６がＨｉｇｈ状態になったことを検知すると、システムクロック４１３を外部クロック４１１からＳＷＰ用内部クロック２１１８へと切り替える（ステップ２４１４、タイミング２６４０）。システムクロック４１３を切り替えた後、ＣＰＵ１４１に割り込み信号を送信し、ＣＰＵ１４１の動作を再開させる（ステップ２４１５）。その際に、クロック切り替え回路４１０は、クロック切り替え信号４１７およびスリープ信号４１６をＬｏｗ状態にする（タイミング２６４０）。
【０１４７】
ＣＰＵ１４１の動作再開後、ＳＷＰ制御回路１９４４は、外部端末にＡＣＴ＿ＳＹＮＣフレームを送信する（ステップ２４１６、タイミング２６５０）。ＡＣＴ＿ＳＹＮＣフレームを受信した外部端末は、処理装置１００にＡＣＴ＿ＰＯＷＥＲ＿ＭＯＤＥフレームを送信する（ステップ２４１７）。ＡＣＴ＿ＰＯＷＥＲ＿ＭＯＤＥフレームを受信した処理装置１００は、外部端末にＡＣＴ＿ＲＥＡＤＹフレームを送信する（ステップ２４１８）。
【０１４８】
以上の処理が正常に行われた場合のみ、ＩＳＯ７８１６インタフェースでの動作中にＳＷＰインタフェースが活性化され、処理装置１００は、ＩＳＯ７８１６インタフェースとＳＷＰインタフェースの両方を同時に使用して動作することができる。なお、ＩＳＯ７８１６インタフェースでの動作中にＳＷＰインタフェース活性化手順を行う際に、ＵＳＢインタフェースでの動作中にＳＷＰインタフェース活性化手順を行う場合と同様に、外部クロックからＳＷＰ用内部クロック２１１８へのシステムクロック４１３の切り替えを行わず、システムクロック４１３を外部クロック４１１のまま動作するようにしてもよい。
【０１４９】
処理装置１００がＵＳＢインタフェースおよびＩＳＯ７８１６インタフェースの両方にて動作中にＳＷＰインタフェースの活性化手順を行う場合は、ステップ２４０１〜ステップ２４０４と同様の方法でＳＷＰインタフェースの活性化を行うものとする。また、処理装置１００がＵＳＢインタフェースおよびＩＳＯ７８１６インタフェースの両方にて動作中にＳＷＰインタフェースの活性化手順を行う場合に、ステップ２４１１〜ステップ２４１８と同様の方法でシステムクロック４１３をＳＷＰ用内部クロック２１１８に切り替えても良い。
【０１５０】
以上の処理は、クロック制御回路１３０の他に、ＵＡＲＴ制御回路１４２、ＵＳＢ制御回路１４３や、ＳＷＰ制御回路１９４４を利用することにより、全てハードウェアで行うことが可能であるが、以下では、ＣＰＵ１４１に内蔵されたＲＯＭ等に搭載したファームウェアを用いて、ＩＳＯ７８１６インタフェースでの動作中にＳＷＰインタフェースの活性化を行う方法の例について説明する。
【０１５１】
図２７は、本実施の形態の処理装置１００の、ファームウェアを用いたＩＳＯ７８１６インタフェースにて動作中におけるＳＷＰインタフェースの活性化手順の流れの例を表したフロー図である。処理装置１００がＩＳＯ７８１６インタフェースで動作しているとき、ＣＬＫ＿ＳＥＬＥＣＴ１５０１には“００”、ＲＥＳＥＴ＿ＳＥＬＥＣＴ１５０２には“１”、ＭＯＤＥ＿ＳＥＬＥＣＴ１５０３には“００１”、ＵＳＢ＿ＤＥＴＥＣＴ１５１２には“０”がそれぞれ設定されている（ステップ２７００）。
【０１５２】
処理装置１００がＩＳＯ７８１６インタフェースで動作しているとき、クロック制御回路１３０もしくはＳＷＰ制御回路１９４４が、ＳＷＰ＿Ｉ／Ｏ１９１７がＬｏｗ状態からＨｉｇｈ状態に変化したことを検知すると、ＣＰＵ１４１に対してＳＷＰ検出割り込みを発生させる（ステップ２７０１）。ファームウェアは、ＳＷＰ検出割り込み関数内で、ＣＬＫ＿ＳＥＬＥＣＴ１５０１に“１０”を設定し（ステップ２７０２）、スリープ命令を実行してＣＰＵ１４１をスリープ状態に移行させる（ステップ２７０３）。
【０１５３】
スリープ命令が実行されるとスリープ信号４１６がＨｉｇｈ状態となるため、クロック切り替え回路４１０がシステムクロック４１３をＳＷＰ用内部クロック２１１８へと切り替え、ＣＰＵ１４１に割り込み信号を送信し、ＣＰＵ１４１の動作を再開させる（ステップ２７０４）。ＣＰＵ１４１の動作が再開した後、ファームウェアは、外部端末にＡＣＴ＿ＳＹＮＣフレームを送信する（ステップ２７０５）。
【０１５４】
ＡＣＴ＿ＳＹＮＣフレームを受信した外部端末は、処理装置１００にＡＣＴ＿ＰＯＷＥＲ＿ＭＯＤＥフレームを送信する（ステップ２７０６）。ＡＣＴ＿ＰＯＷＥＲ＿ＭＯＤＥフレームを受信した処理装置１００は、外部端末にＡＣＴ＿ＲＥＡＤＹフレームを送信する（ステップ２７０７）。
【０１５５】
以上の処理が正常に行われた場合のみ、ＩＳＯ７８１６インタフェースでの動作中にＳＷＰインタフェースが活性化され、処理装置１００は、ＩＳＯ７８１６インタフェースとＳＷＰインタフェースの両方を同時に使用して動作することができる。なお、処理装置１００がＵＳＢインタフェース、もしくはＩＳＯ７８１６インタフェースとＵＳＢインタフェースの両方で動作中に、ＳＷＰインタフェース活性化手順においてシステムクロック４１３を内部クロック４１２からＳＷＰ用クロック２１１８に切り替える場合も、ステップ２７０１〜ステップ２７０７と同様の手順で行うことが可能である。
【０１５６】
次に、本実施の形態の処理装置１００が、ＩＳＯ７８１６インタフェースおよびＳＷＰインタフェースの両方にて動作中に、ＳＷＰインタフェースを非活性化する方法について説明する。なお、ＩＳＯ７８１６インタフェースおよびＳＷＰインタフェースの両方にて動作中にＩＳＯ７８１６インタフェースを非活性化する際は、実施の形態１の図１１におけるステップ１１０１〜ステップ１１０２およびタイミング１２１０〜タイミング１２２０と同様の手順で行うことができる。
【０１５７】
図２８は、本実施の形態の処理装置１００の、ＩＳＯ７８１６インタフェースおよびＳＷＰインタフェースの両方にて動作中におけるＳＷＰインタフェースの非活性化手順の流れの例を表したフロー図である。また、図２９は、本実施の形態の処理装置１００の、ＩＳＯ７８１６インタフェースおよびＳＷＰインタフェースの両方にて動作中におけるＳＷＰインタフェースの非活性化手順のタイミングチャートの例である。
【０１５８】
処理装置１００がＩＳＯ７８１６インタフェースおよびＳＷＰインタフェースの両方にて動作している際に、ＳＷＰ検出回路２１４０が、ＳＷＰ＿Ｉ／Ｏ１９１７がＤｅ−Ａｃｔｉｖｅ状態になったことを検知した場合（ステップ２８０１）、ＳＷＰインタフェース非活性化手順を開始する。ＳＷＰ検出回路２１４０は、ＳＷＰ＿Ｉ／Ｏ１９１７がＤｅ−Ａｃｔｉｖｅ状態になったことを検知すると、ＳＷＰ検出信号２１４１をＬｏｗ状態にする（タイミング２９１０）。
【０１５９】
ＣＰＵ１４１は、ＳＷＰ検出信号２１４１がＬｏｗ状態になったことを検知すると、スリープ状態に移行するために必要な処理（レジスタの設定や現在の状態の保存等）を行う。必要な処理が完了した後、スリープ信号４１６をＨｉｇｈ状態にし、スリープ状態に移行する（ステップ２８０２、タイミング２９２０）。
【０１６０】
クロック切り替え回路４１０は、スリープ信号４１６がＨｉｇｈ状態になったことを検
知すると、システムクロック４１３をＳＷＰ用内部クロック２１１８から外部クロック４１１へと切り替える（ステップ２８０３、タイミング２９３０）。このとき、ＳＷＰ用内部クロック２１１８は停止してもよい。なお、ＳＷＰ用内部クロックスタート信号２１１９をＬｏｗ状態にすることによりＳＷＰ用内部クロック２１１８を停止させることも可能である（タイミング２９３０）。
【０１６１】
システムクロック４１３の切り替え後、ＣＰＵ１４１に割り込み信号を送信し、外部クロック４１１にてＣＰＵ１４１の動作を再開させる（ステップ２８０４、タイミング２９４０）。以上の処理が正常に行われたとき、ＳＷＰインタフェースは非活性化され、処理装置１００は、ＩＳＯ７８１６インタフェースのみで動作することになる。
【０１６２】
以上の処理は、クロック制御回路１３０の他に、ＵＡＲＴ制御回路１４４やＳＷＰ制御回路１９４４を利用することにより、全てハードウェアで行うことが可能であるが、以下では、ＣＰＵ１４１に内蔵されたＲＯＭに搭載したファームウェアを用いてＩＳＯ７８１６インタフェースおよびＳＷＰインタフェースの両方にて動作中にＳＷＰインタフェースの非活性化を行う方法の例について説明する。
【０１６３】
図３０は、本実施の形態の処理装置１００の、ファームウェアを用いたＩＳＯ７８１６インタフェースおよびＳＷＰインタフェースの両方にて動作中におけるＳＷＰインタフェースの非活性化手順の流れの例を表したフロー図である。処理装置１００がＩＳＯ７８１６インタフェースおよびＳＷＰインタフェースの両方にて動作しているとき、ＣＬＫ＿ＳＥＬＥＣＴ１５０１には“１０”、ＲＥＳＥＴ＿ＳＥＬＥＣＴ１５０２には“０”、ＭＯＤＥ＿ＳＥＬＥＣＴ１５０３には“１０１”、ＵＳＢ＿ＤＥＴＥＣＴ１５１２には“１”がそれぞれ設定されている（ステップ３０００）。
【０１６４】
ＳＷＰ検出回路２１４０もしくはＳＷＰ制御回路１９４４が、ＳＷＰ＿Ｉ／Ｏ１９１７がＤｅ−Ａｃｔｉｖｅ状態になったことを検知すると、ＣＰＵ１４１にＳＷＰ非活性化割り込みを発生させる（ステップ３００１）。ファームウェアは、ＳＷＰ非活性化割り込み関数内で、ＣＬＫ＿ＳＥＬＥＣＴ１５０１に“００”を設定し（ステップ３００２）、スリープ命令を実行してＣＰＵ１４１をスリープ状態に移行させる（ステップ３００３）。
【０１６５】
スリープ命令が実行されるとスリープ信号４１６がＨｉｇｈ状態となるため、クロック切り替え回路４１０がシステムクロック４１３を外部クロック４１１へと切り替え、ＣＰＵ１４１に割り込み信号を送信し、ＣＰＵ１４１の動作を再開させる（ステップ３００４）。以上の処理が正常に行われたとき、ＳＷＰインタフェースは非活性化され、処理装置１００は、ＩＳＯ７８１６インタフェースのみで動作することになる。
【０１６６】
処理装置１００がＵＳＢインタフェースおよびＳＷＰインタフェースにて動作している際に、ＵＳＢインタフェースの非活性化によってシステムクロック４１３のクロック系統を変更する場合は、実施の形態１の図１１のステップ１１１１〜ステップ１１１４、もしくは図１８のステップ１８１１〜ステップ１８１４と同様な手順によって行うことができる。また、ＳＷＰインタフェースの非活性化によってシステムクロック４１３のクロック系統を変更する場合は、図２８のステップ２８０１〜ステップ２８０４、もしくは図３０のステップ３００１〜ステップ３００４と同様な手順によって行うことができる。
【０１６７】
以上に説明したように、本実施の形態の処理装置１００によれば、ＳＷＰに準拠したデータ転送を行うためのＳＷＰインタフェースを有する場合であっても、システムクロック４１３を外部クロック４１１、内部クロック４１２、およびＳＷＰ用内部クロック２１１８との間で切り替えることができ、かつ、クロック切り替えの際のノイズによるＣＰＵ１４１の誤動作がない手段にて切り替えることが可能となる。
【０１６８】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【産業上の利用可能性】
【０１６９】
本発明は、データ転送のための複数のインタフェースを有する処理装置およびそのクロック制御方法、特にＩＳＯ７８１６に準拠したＩＣカード等の処理装置に利用可能である。
【図面の簡単な説明】
【０１７０】
【図１】本発明の実施の形態１である処理装置の内部構成の例を示した図である。
【図２】本発明の実施の形態１の処理装置における外部端子の配置例を示した図である。
【図３】本発明の実施の形態１の処理装置における初期動作の流れの一例を示した図である。
【図４】本発明の実施の形態１の処理装置におけるクロック制御回路に含まれるモジュールの構成例を示した図である。
【図５】本発明の実施の形態１の処理装置におけるＵＳＢインタフェースの活性化手順およびＩＳＯ７８１６インタフェースの活性化手順の例を表したフロー図である。
【図６】本発明の実施の形態１の処理装置におけるＵＳＢインタフェースの活性化手順のタイミングチャートの例である。
【図７】本発明の実施の形態１の処理装置におけるＩＳＯ７８１６インタフェースの活性化手順のタイミングチャートの例である。
【図８】本発明の実施の形態１の処理装置のＵＳＢインタフェースにて動作中におけるＩＳＯ７８１６インタフェースの活性化手順、およびＩＳＯ７８１６インタフェースにて動作中におけるＵＳＢインタフェースの活性化手順の例を表したフロー図である。
【図９】本発明の実施の形態１の処理装置のＵＳＢインタフェースにて動作中におけるＩＳＯ７８１６インタフェースの活性化手順のタイミングチャートの例である。
【図１０】本発明の実施の形態１の処理装置のＩＳＯ７８１６インタフェースにて動作中におけるＵＳＢインタフェースの活性化手順のタイミングチャートの例である。
【図１１】本発明の実施の形態１の処理装置の、両方のインタフェースにて動作中におけるＩＳＯ７８１６インタフェースの非活性化手順、および両方のインタフェースにて動作中におけるＵＳＢインタフェースの非活性化手順の例を表したフロー図である。
【図１２】本発明の実施の形態１の処理装置の、両方のインタフェースにて動作中におけるＩＳＯ７８１６インタフェースの非活性化手順のタイミングチャートの例である。
【図１３】本発明の実施の形態１の処理装置の、両方のインタフェースにて動作中におけるＵＳＢインタフェースの非活性化手順のタイミングチャートの例である。
【図１４】本発明の実施の形態２の処理装置の内部構成の例を示した図である。
【図１５】本発明の実施の形態１の処理装置におけるＵＳＢインタフェースおよびＩＳＯ７８１６インタフェースの活性化の際に使用するレジスタの構成例の一部を示した図である。
【図１６】本発明の実施の形態１の処理装置におけるファームウェアを用いたＵＳＢインタフェースの活性化手順およびＩＳＯ７８１６インタフェースの活性化手順の例を表したフロー図である。
【図１７】本発明の実施の形態１の処理装置の、ファームウェアを用いたＵＳＢインタフェースにて動作中におけるＩＳＯ７８１６インタフェースの活性化手順、およびＩＳＯ７８１６インタフェースにて動作中におけるＵＳＢインタフェースの活性化手順の例を表したフロー図である。
【図１８】本発明の実施の形態１の処理装置の、ファームウェアを用いた両方のインタフェースにて動作中におけるＩＳＯ７８１６インタフェースの非活性化手順、および両方のインタフェースにて動作中におけるＵＳＢインタフェースの非活性化手順の例を表したフロー図である。
【図１９】本発明の実施の形態３の処理装置の内部構成の例を示した図である。
【図２０】本発明の実施の形態３の処理装置における初期動作の流れの一例を表した図である。
【図２１】本発明の実施の形態３の処理装置におけるクロック制御回路に含まれるモジュールの構成例を示した図である。
【図２２】本発明の実施の形態３の処理装置におけるＳＷＰインタフェースの活性化手順のタイミングチャートの例を表した図である。
【図２３】本発明の実施の形態３の処理装置におけるファームウェアを用いたＳＷＰインタフェースの活性化手順の例を表したフロー図である。
【図２４】本発明の実施の形態３の処理装置の、ＵＳＢインタフェースまたはＩＳＯ７８１６インタフェースにて動作中におけるＳＷＰインタフェースの活性化手順の流れの例を表したフロー図である。
【図２５】本発明の実施の形態３の処理装置の、ＵＳＢインタフェースにて動作中におけるＳＷＰインタフェースの活性化手順のタイミングチャートの例である。
【図２６】本発明の実施の形態３の処理装置の、ＩＳＯ７８１６インタフェースにて動作中におけるＳＷＰインタフェースの活性化手順のタイミングチャートの例である。
【図２７】本発明の実施の形態３の処理装置の、ファームウェアを用いたＩＳＯ７８１６インタフェースにて動作中におけるＳＷＰインタフェースの活性化手順の流れの例を表したフロー図である。
【図２８】本発明の実施の形態３の処理装置の、ＩＳＯ７８１６インタフェースおよびＳＷＰインタフェースの両方にて動作中におけるＳＷＰインタフェースの非活性化手順の流れの例を表したフロー図である。
【図２９】本発明の実施の形態３の処理装置の、ＩＳＯ７８１６インタフェースおよびＳＷＰインタフェースの両方にて動作中におけるＳＷＰインタフェースの非活性化手順のタイミングチャートの例である。
【図３０】本発明の実施の形態３の処理装置の、ファームウェアを用いたＩＳＯ７８１６インタフェースおよびＳＷＰインタフェースの両方にて動作中におけるＳＷＰインタフェースの非活性化手順の流れの例を表したフロー図である。
【符号の説明】
【０１７１】
１００…処理装置、１１０…ＥＸ＿ＣＬＫ、１１１…ＥＸ＿ＲＥＳＥＴ、１１２…ＵＡＲＴ＿Ｉ／Ｏ、１１３…Ｄ＋、１１４…Ｄ−、１１５…Ｖｃｃ、１１６…ＧＮＤ、１２０…内部オシレータ、１３０…クロック制御回路、１４１…ＣＰＵ、１４２…ＵＡＲＴ制御回路、１４３…ＵＳＢ制御回路、
２０１…Ｃ１端子、２０２…Ｃ２端子、２０３…Ｃ３端子、２０４…Ｃ４端子、２０５…Ｃ５端子、２０６…Ｃ６端子、２０７…Ｃ７端子、２０８…Ｃ８端子、
４１０…クロック切り替え回路、４１１…外部クロック、４１２…内部クロック、４１３…システムクロック、４１４…外部クロック検出信号、４１５…内部クロックスタート信号、４１６…スリープ信号、４１７…クロック切り替え信号、４２０…リセット制御回路、４２１…外部リセット、４２２…システムリセット、４２３…ＵＡＲＴリセット、４２４…ＵＳＢリセット、４３０…ＵＳＢ検出回路、４３１…ＵＳＢ検出信号、
１４０１…コマンド解析モジュール、
１５０１…ＣＬＫ＿ＳＥＬＥＣＴ、１５０２…ＲＥＳＥＴ＿ＳＥＬＥＣＴ、１５０３…ＭＯＤＥ＿ＳＥＬＥＣＴ、１５１１…ＤＰＰＵ、１５１２…ＵＳＢ＿ＤＥＴＥＣＴ、１５１３…ＵＳＢ＿ＭＯＤＥ、１５２１…ＤＰ、１５２２…ＤＭ、
１９１７…ＳＷＰ＿Ｉ／Ｏ、１９２１…ＳＷＰ用内部オシレータ、１９４４…ＳＷＰ制御回路、
２１１８…ＳＷＰ用内部クロック、２１１９…ＳＷＰ用内部クロックスタート信号、２１２５…ＳＷＰリセット、２１４０…ＳＷＰ検出回路、２１４１…ＳＷＰ検出信号。
【図１】
0005166927.tif 000002
【図２】
0005166927.tif 000003
【図３】
0005166927.tif 000004
【図４】
0005166927.tif 000005
【図５】
0005166927.tif 000006
【図６】
0005166927.tif 000007
【図７】
0005166927.tif 000008
【図８】
0005166927.tif 000009
【図９】
0005166927.tif 000010
【図１０】
0005166927.tif 000011
【図１１】
0005166927.tif 000012
【図１２】
0005166927.tif 000013
【図１３】
0005166927.tif 000014
【図１４】
0005166927.tif 000015
【図１５】
0005166927.tif 000016
【図１６】
0005166927.tif 000017
【図１７】
0005166927.tif 000018
【図１８】
0005166927.tif 000019
【図１９】
0005166927.tif 000020
【図２０】
0005166927.tif 000021
【図２１】
0005166927.tif 000022
【図２２】
0005166927.tif 000023
【図２３】
0005166927.tif 000024
【図２４】
0005166927.tif 000025
【図２５】
0005166927.tif 000026
【図２６】
0005166927.tif 000027
【図２７】
0005166927.tif 000028
【図２８】
0005166927.tif 000029
【図２９】
0005166927.tif 000030
【図３０】
0005166927.tif 000031