以下、図を用いて本発明の実施の形態を説明する。
(従来の実施の形態)
図1は、従来のSIMアプリケーション機能と非接触アプリケーション機能の携帯端末への実装方法を表す概念図である。
この携帯端末の実装では、携帯端末基板100、SIMパッケージ200、サーバ300を含んで構成される。
携帯端末基板100は携帯電話機の内部に存在する回路基板である。
携帯端末基板100には、ベースバンドLSI110、セキュアチップ120、非接触RFインターフェース130を含んで構成される。
ベースバンドLSI110は無線通信に関する制御を行うためのLSIである。また携帯端末上で動作するアプリケーションを処理させても良い。
無線通信方式としてはW−CDMA、CDMA2000、LTE、GSMなどが考えられるが、本発明では特に方式の限定はしない。本発明では、今後規定される仕様を問題なく適用可能である。
なお、実際の携帯端末ではベースバンド系とアプリケーション系の2つのCPUで動くものも存在する。この場合、セキュアチップ120及びサーバ300とのインターフェースをどちらが担当するかは設計事項である。
ベースバンドLSI110は、CPU111及びその周辺回路を含む。このCPU111上で組み込みOS112が動作する。組み込みOS112上に実装されたアプリケーション動作マネージャ113が動作することでSIMパッケージ200及びセキュアチップ120と通信が行われる。
セキュアチップ120は、非接触RFインターフェース130を介して外部と通信を行う際の暗号化についての処理を行うLSIである。
セキュアチップ120も、CPU121及びその周辺回路を含む。このCPU121上でセキュアOS122が動作する。そしてセキュアOS122上に実装された非接触アプリケーション123が動作する。
ベースバンドLSI110とセキュアチップ120は、携帯端末基板100上でIICやSCIと言ったインターフェースで接続される。
非接触RFインターフェース130は、付属するアンテナコイルを介して近距離通信を行うためのチップである。非接触RFインターフェースチップ130で行う通信方式としては、ISO14443(Type A、Type B)やISO18092(Passive Communication Mode)などが適用可能である。しかし、本発明では特定の仕様に依存する構成を取っていないため、非接触通信方式については特に制限しない。
セキュアチップ120と非接触RFインターフェース130は、携帯端末基板100上で接続される。また、一部ではセキュアチップ120と非接触RFインターフェース130を1パッケージ化したものも存在する。いずれにしても、この間の通信方式に何を用いるかは設計事項である。
SIMパッケージ200は、携帯電話機などに挿入して使用されるユーザIDなどの個人情報が記録されたUICCである。このようにユーザIDなどをSIMパッケージ上に保存することで、UICCを入れ替えれば即時に通話・通信が可能となるメリットがある。
SIMパッケージはSWPの仕様に従い8つの端子を用いて携帯端末基板100と接続される。図上ではこの8つの端子(第1端子乃至第8端子)をC1、C2、C3、C4、C5、C6、C7、C8として表す。
SWP及びISO7816−2では、各端子は以下のように定義される。
SWP
C1:Vcc(電源電圧)
C2:RST(リセット)
C3:CLK(クロック)
C4:D+
C5:GND(グランド)
C6:SWIO
C7:I/O
C8:D−
ISO7816−2
C1:Vcc(電源電圧)
C2:RST(リセット)
C3:CLK(クロック)
C4:RFU
C5:GND(グランド)
C6:Vpp
C7:I/O
C8:RFU
C1、C2、C3は携帯端末基板100から供給される。また電位を合わせるためにC5も携帯端末基板100に接続される。C7はシリアル通信をするためにベースバンドLSI110との間で接続されている。
SIMパッケージ200内には、SIMLSI210が含まれる。
SIMLSI210中にはCPU211及びその周辺回路が含まれる。このCPU211上でSIMOS212が動作する。そしてSIMOS212上でSIMアプリケーション213が動くこととなる。
サーバ300は、ベースバンドLSI110と任意のインターフェース仕様で接続されている。また、サーバ300は、携帯端末基板100に常時接続される必要は無い。例えば、携帯端末の機種変更時には、セキュアチップ120に搭載された非接触アプリケーション123のデータを、任意のインターフェースを介してサーバ300に吸い上げる。そして、新しい携帯端末とサーバ300をつなげ変えた後に、保存したデータを新たな携帯端末に対して送信することとなる。つまり必要なときに携帯端末基板と接続される構成であれば良い。
このようにベースバンド系の情報がSIMパッケージ200に、セキュアチップ120側の情報が携帯端末基板100に存在することから、商取引上の携帯端末の機種変更に要する時間は、セキュアチップ120のデータの送受信に要する時間に支配されることとなる。
(予備的な実施の形態)
上記の問題に対し、セキュアチップ120をSIMパッケージ200に配置する事例を考察した。
図2は、本発明の予備的なSIMアプリケーション機能と非接触アプリケーション機能の携帯端末への実装方法を表す概念図である。
この図では、セキュアチップ120が携帯端末基板100から削除され、代わりに、セキュアチップ220がSIMパッケージ200上に設けられている点に特徴がある。これに合わせて、セキュアチップ220と通信するためにCLFチップ140が携帯端末基板100上に配され、その中にSWPインターフェース141、非接触RFインターフェース142が含まれる構成を取る。
セキュアチップ220は、セキュアチップ120同様に、外部と通信を行う際の暗号化についての処理を行うLSIである。ただし、この実施の形態では、アンテナコイルなどを含むCLFチップ140は携帯端末基板100に存在するため、CLFチップ140と通信を行うためのSWPインターフェース141を有する点が特徴となる。
CLFチップ140は、セキュアチップ220の対になる携帯端末基板100側のモジュールである。セキュアチップ220と通信を行うため、セキュアチップ220中にはSWPインターフェース141が含まれる。
SWPインターフェース141はSWP上での通信を行うためのモジュールである。SWPはマスタ及びスレイブが明確なプロトコルであり、相対するいずれかがマスタ、他方がスレイブになる必要がある。非特許文献1の第4節図4.1(SWP data Transmission)に表されているモデルに従えば、SWPインターフェース141はマスタになる。従って、SWPインターフェース141がマスタであることを意識して用いる場合には、SWPマスタ141と記載する。
SIMLSI210と、携帯端末基板100の接続には、ISO7816で規定されたインターフェース及びSWPインターフェースを用いる。従って、SWPインターフェース141はC6端子を経由してセキュアチップ220との通信を行うこととなる。
非接触RFインターフェース142は、非接触RFインターフェース130の代わりにCLFチップ140中に配置されている。図1ではベースバンドLSI110が非接触RFインターフェース130をコントロールすればよかった。しかし、この実施の形態では、CLFチップ140中の非接触RFインターフェース142がベースバンドLSI110及びセキュアチップ220の双方から指示を受ける可能性があるため、このような構成となる。
図示しない汎用インターフェース143(後述する図4には記載)は、携帯端末基板100との接続を行うための汎用のインターフェース回路である。用いるインターフェースとしてはIIC、SCIなどが考えられるが、本発明では特に制限は無い。なお、これは内部回路かつ汎用的なものであるため、第1の実施の形態までは図面に記載しない。
この図2の接続では、ベースバンドLSI110とSIMLSI210との接続は、端子C7上で、セキュアチップ220とCLFチップ140との通信は端子C6を介して行われる。この2つのインターフェースが独立する構成を取っている場合には、SIMパッケージ200側のSIMLSI210とセキュアチップ220が同時動作を行わない限り問題は生じない。しかし、非接触RFインターエースが複数存在し、同時動作を要する場合には対応方法の検討が必要となる。
図3は、本発明の予備的なSIMアプリケーション機能と非接触アプリケーション機能の携帯端末への実装方法を表す別の概念図である。
この図では、SIMLSI210に代えて、SIMLSI230が用いられている点に特徴がある。
SIMLSI230上にはCPU231が含まれるのは、SIMLSI210と同じである。しかし、SIMOS232及び非接触OS234という二つのOSがCPU231の上で動作する点でSIMLSI210と相違する。
SIMOS232はSIMAPP233を動作させるためのOSである。これはSIMLSI210のSIMOS212とほぼ同じものである(非接触OS234との調停関係のモジュールの有無に差は出る場合が多い)。
一方、非接触OS234は非接触APP235を動作させるためのOSである。
非接触APP235はCLFチップ140に対して指示命令を掛ける事で非接触通信を行うことが可能である点で、非接触APP223同様の性質を有する。従って、CLFチップ140と通信するために、C6端子をセキュアチップ220と共用している点で図2と相違する。
このような形式ではSWPインターフェースの実装に対して問題が生じる。既に述べた通り、SWPインターフェースは「1対1」のマスタ・スレイブ構成を取る。従って、複数のスレイブを1のマスタに接続する図3の構成はSWPインターフェースに準拠しなくなり、著しく汎用性を損なう結果となる。
従って、SWPインターフェースに対応した形でUICC上の複数のLSI(チップ)と接続する方法が必要となる。
(第1の実施の形態)
上記の考察を経た後に、本発明の第1の実施の形態について説明する。なお、以下で用いる図面では、サーバ300は省略する。
図4は、本発明の第1の実施の形態に関わる携帯端末へのSIMアプリケーション機能と非接触アプリケーション機能の実装方法を表す概念図である。
本実施の形態では、携帯端末基板100、SIMパッケージ200を含んで構成される。
携帯端末基板100上に、ベースバンドLSI110及びCLFチップ140が存在すること、ベースバンドLSI110はSIMパッケージ200のC7端子に接続されること、CLFチップ140はC6端子に接続されること、は(予備的な実施の形態)同様である。
相違点は、SIMパッケージ200にある。本実施の形態のSIMパッケージ200中には第1のLSI240と第2のLSI250が含まれる。加えて、第1のLSI240と第2のLSI250との間にもSWPインターフェースが設けられている。
第1のLSI240はSWPインターフェースのみを有し、(予備的な実施の形態)のセキュアチップ220に対応する。
第1のLSI240はCLFチップ140との間にSWPインターフェースを持つ。非特許文献1に準拠して、CLFチップ140のSWPインターフェース141がSWPマスタであったとするとして、図4では第1のLSI240にSWPスレイブ241が存在する。
また、本実施の形態では、第1のLSI240と第2のLSI250との間も、SWPインターフェースで接続される。本実施の形態では、この第1のLSI240と第2のLSI250との間のSWPインターフェースにおいては、第1のLSI240にはSWPマスタ242が設けられる。
第2のLSI250は、ベースバンドLSI110との間にシリアル通信インターフェースを、第1のLSI240との間にSWPインターフェースをそれぞれ持つ。
ベースバンドLSI110との間のシリアル通信インターフェースの送受信モジュールとして、第2のLSI250にはUART252が含まれる。本実施の形態の実施に際し、1端子によるシリアル通信が可能であれば、シリアル通信の方式は特に制限は無い。
上述の通り、第1のLSI240と第2のLSI250との間はSWPインターフェースで接続され、また第1のLSI240側にSWPマスタ242が配置される。従って第2のLSI250側にはSWPスレイブ251が配置される。
以上の構成を踏まえて本実施の形態の動作を説明する。
シリアル通信を用いたベースバンドLSI110と第2のLSI250との通信は採用するシリアル通信インターフェースの仕様に従う。また、CLFチップ140と第1のLSI240間の通信も非特許文献1記載の通りである。
本発明の特徴はCLFチップ140と第2のLSI250との間の通信にある。この通信は以下の手順に従い実行される。
1)SWPマスタ141とSWPスレイブ241との間でSWPインターフェース上での通信を実行。
2)第1のLSI(第1のチップ)240内で第2のLSI(第2のチップ)250への転送処理の実行。
3)SWPマスタ(第1SWPマスタ)242とSWPスレイブ(第2SWPスレイブ)251との間でSWPインターフェース上での通信を実行。
従って第1のLSI240は、非接触APP223の機能のほかに、SWPマスタ(第2SWPマスタ)141とSWPスレイブ(第1SWPスレイブ)241との間と、SWPマスタ242とSWPスレイブ251との間とのSWP通信制御行うことが必要となる。
このSWP通信制御に際しては、具体的には2つのやり方が考えられる。
a)第1のLSI240のSWPスレイブ(第1SWPスレイブ)241がSWPマスタ(第2SWPマスタ)141からの送信データを1フレーム受信し、受信内容を解釈する。第2のLSI250で処理する内容と判断した場合には、第1のLSI240のSWPマスタ(第1SWPマスタ)242が第2のLSI250のSWPスレイブ(第2SWPスレイブ)251に転送する。
b)第1のLSI240のSWPスレイブ241がSWPマスタ141からの送信データを数バイト受信し、このデータが第2のLSI250で処理する内容と判断した場合には、第1のLSI240のSWPマスタ242が第2のLSI250のSWPスレイブ251に転送する。
しかし、これらの方式では、受信したデータを、一旦メモリに保持した後に送り出すというメモリバッファ方式では、メモリが必須となること、コマンド解析により処理が遅延すること、という問題がある。
本実施の形態では、
c)CLFチップ140上のSWPマスタ141からの送信データを第1のLSI240のSWPスレイブ241が受信するのと同時に、第1のLSI240のSWPマスタ242が第2のLSI250のSWPスレイブ251にデータを送信する。
を採用する。
以下、このc)の方式をデータスルー方式と称呼する。
図5は、第1のLSI240の内部構成を表すブロック図である。
この第1のLSI240は、既述の通り、SWPスレイブ241、SWPマスタ242を含むほか、Nビットシフタ243、SWPマスタサンプリングモジュール244、SWPスレイブサンプリングモジュール245、MUX(マルチプレクサ)246、制御部247、内部バス248、メモリ249を含んで構成される。
なお、本図中のP1、P2は後の図で表す波形の測定点である。回路的には配線がそのまま接続されている。
既述の通り、SWPスレイブ241はCLFチップ140のSWPマスタ141との通信を行うSWPスレイブモジュールである。また、第1のLSI240内部の通信を行うデジタル通信用のインターフェースを併せ持つ。このデジタル通信用のインターフェースは、SWPマスタ242への出力信号及びMUX246からの入力信号からなる。
SWPインターフェースはマスタからスレイブへの電圧信号(S1信号)とスレイブからマスタへの電流信号(S2信号)により全二重通信を行うアナログ信号である。従って、SWPスレイブ241はS1信号の電圧変換(非特許文献1で定義された電圧から内部処理用の電圧への変換)、S2信号として用いるための電圧電流変換を行う必要がある。
このSWPスレイブ241はS1信号の電圧変換(内部用S1信号の生成)、S2信号として用いるための電圧電流変換を行う機能を有する。これを実現するためにSWP通信のためのC6端子が入出力として接続される。また、SWPスレイブ241は電圧変換後の信号をSWPマスタ242、Nビットシフタ243、SWPスレイブサンプリングモジュール245に出力する。入力信号としてはMUX246からの電圧信号を受信する。
SWPマスタ242は第2のLSI250のSWPスレイブ251との間でSWP通信を行う際の、SWPマスタモジュールである。SWPマスタ242には、SWPスレイブ241からの電圧変換後の信号(内部用S1信号)が入力される。また、SWPスレイブ251からのS2信号(電流信号)を電圧形式に変更してNビットシフタ243を介してMUX246に出力する。
Nビットシフタ243は、SWPマスタ242から出力されるデジタル信号に対してNビットシフト処理を行う回路である。内部には増分カウンタ及び減算カウンタの二つのカウンタを要する。なお「Nビットシフト処理」については後述する。
Nビットシフタ243には、SWPマスタ242からの電圧信号が入力される。そしてNビットシフト処理後の電圧信号がMUX246に対して出力される。このMUX246への出力タイミングの生成に、SWPスレイブ241からの出力(内部用S1信号)が用いられる。
SWPマスタサンプリングモジュール244は、SWPマスタ242が受信して電流電圧変換したデータをサンプリングして論理値を抽出し利用可能なように記録する処理モジュールである。図6は、SWPマスタサンプリングモジュール244の構成を表すブロック図である。
SWPマスタサンプリングモジュール244を大別すると1)サンプリング部244−1、2)記録部244−2に分かれる。
サンプリング部244−1は、SWPマスタ242から出力される電圧信号から、第2のLSI250のSWPスレイブ251の出力した論理値を導出するためのサンプリングモジュールである。あわせて、SWPマスタ242からSWPスレイブ241までのデータ系統が使用されているかもここで判断する。
あわせて制御部247の求め(内部バス248経由で求められる)に応じて、サンプリング部244−1はSWPマスタ242からSWPスレイブ241までのデータ系統の使用状況、SWPスレイブ251の出力した論理値を出力することもできる。
一方SWPスレイブサンプリングモジュール245は、SWPスレイブ241が受信して降圧した電圧信号(内部用S1信号)をサンプリングしてSWPマスタ141が出力する論理値を導出することを第1の目的とする。SWPスレイブサンプリングモジュール245の第2の目的はSWPスレイブ241を介してSWPマスタ141に送信する電圧信号を生成することである。図7はSWPスレイブサンプリングモジュール245の構成を表すブロック図である。
以上の目的を果たすために、SWPスレイブサンプリングモジュール245は1)サンプリング部245−1、2)記録部245−2、3)電圧信号出力部245−3に大別される。
サンプリング部245−1は内部用S1信号をクロック信号(C3端子から入力されるCLK信号由来の、必要に応じて分周、逓倍された信号)を用いてサンプリングすることで、SWPマスタ141の出力した論理値を導出する。
加えて、内部バス248を介した制御部247の求めに応じて、サンプリング部245−1は導出した論理値を制御部247に出力する。
記録部245−2は、サンプリング部245−1が導出した論理値を蓄積するためのメモリである。SWPにおける1フレームの最大データ容量は256バイトである。従って、記録部245−2にこの容量だけ確保すれば最小限の動作は可能になる。また、記録部245−2の容量が256バイトより大きくても問題は無い。また、後述する電圧信号出力部245−3が記録部245−2を使用するような設計の場合にはデータ容量を大きくする必要がある。
電圧信号出力部245−3は、内部用S1信号に同期して制御部247から書き込まれる値を電圧情報として出力するモジュールである。制御部247が内部バス248経由で送信する論理値「0」「1」に対応する電圧信号を出力する。
制御部247などから電圧信号出力部245−3に入力される論理値のデータ量が多い場合には、記録部245―2に一旦記録し、逐次処理していく方法も考えられる。本図ではこの方法に従って、バスを記録部245―2と電圧信号出力部245−3に設けている。しかし、電圧信号出力部245−3自身がメモリを十分に持っていれば、このバスは不要となる。
電圧信号出力部245−3が出力する波形パターンはS2信号の電流値を電圧に置き換えたもの、すなわち、SWPマスタサンプリングモジュール244がNビットシフタ243に出力するパターンと略同じものとなる。
電圧信号出力部245−3には内部用S1信号も入力される。この内部用S1信号の立下りのタイミングに同期して電圧信号をMUX246に出力することで、Nビットシフタ243同様に内部用S1信号に同期した処理を行うことが可能となる。
MUX246は、SWPスレイブサンプリングモジュール245からの電圧信号、又はNビットシフタ243から出力される電圧信号のいずれをSWPスレイブに出力するかを決定するマルチプレクサである。この選択は制御部247が出力するスイッチ信号によって行われる。
制御部247は、第1のLSI240の内部処理を行うための中央処理装置である。
内部バス248は、SWPマスタサンプリングモジュール244、一方SWPスレイブサンプリングモジュール245、制御部247、メモリ249を接続するための内部バスである。
メモリ249は、制御部247などの一次作業領域を提供するためのメモリである。
一方、第2のLSI250の構成は従来のものと相違ないが、第2のLSI250についても簡単に説明する。
図8は、第2のLSI250の内部構成を表すブロック図である。
第2のLSI250はSWPスレイブ251、UART252、SWPスレイブサンプリングモジュール253、制御部254、メモリ255、内部バス256を含んで構成される。
SWPスレイブ251は、第1のLSI240のSWPマスタ242との間でSWPによる通信を行うSWPスレイブモジュールである。入力としてはSWPマスタ242が出力する電圧信号(S1信号)であり、SWPスレイブサンプリングモジュール253が出力する電流信号(S2信号)の元となる信号である。
一方出力としては、SWPインターフェース仕様に基づく電流信号(S2信号)がSWPマスタ242に対して出力される。またSWPマスタ242が出力する電圧信号を降圧した後にSWPスレイブサンプリングモジュール253に対して出力する。
UART252は、ISO7816インターフェースなどにより外部(ベースバンドLSI110など)と接続するための通信モジュールである。
SWPスレイブサンプリングモジュール253は、SWPスレイブ251からくる降圧されたS1信号をサンプリングし、第1のLSI240から送信された論理値を導出し、制御部254からの求めに応じて出力することを第1の目的とする。
またSWPスレイブサンプリングモジュール253の第2の目的は、制御部254から第1のLSI240に対して出力が求められた論理値を、SWPスレイブ251が電流情報に変換可能なようにデータ形式を変換することである。
制御部254は、第2のLSI250の内部処理を行うための中央処理装置である。
メモリ255は、制御部254が実行するアプリケーションプログラムや一時保存データを格納するためのDRAMなどの記録部である。
内部バス256は、SWPスレイブサンプリングモジュール253、制御部254、メモリ255を接続するための共用バスである。
上記の回路構成で、Nビットシフタ243が必要になる理由、及びNビットシフト処理について説明する。
図9は、SWP仕様におけるSWPのデータ送信波形を表す模式図である。
既に述べた通り、マスタからスレイブへの信号(S1信号)の伝送路符号化方法として、信号線が2回立ち上がる期間中に電圧の「H」期間の割合を用いて信号の値を表す符号化方法を採用している。図9でも明らかな通り、C6端子に流れるSWIO信号が最初に立ち上がってから、次に立ち上がるまでの期間を「基準期間」にし、該信号の「H」状態のデューティ比が基準期間の25%であれば論理値「0」がマスタからスレイブへ、デューティ比が基準期間の75%であれば論理値「1」がマスタからスレイブへ送信されることとなる。
一方、スレイブからマスタへの信号(S2信号)は、スレイブ側C6端子の電位を変動させ、電流を発生させることで実現する。
すなわち、SWIO信号が「L」状態のときに、スレイブ側がC6端子の電位を調整する。これによりSWIO信号が立ち上がったときに、C6端子に電流が流れるかが決定される。
マスタは、このSWIO信号が「H」のときに流れる電流を検出する。スレイブがC6端子を高電位にすれば、SWIO信号が「H」のときにC6端子に電流は流れない。これによりスレイブがマスタに対して論理値「0」を送出していることをマスタが把握することができる(図9S2(電流)右側)。一方スレイブがC6端子を高電位にすれば、SWIO信号が「H」のときにC6端子に電流が流れる(図9S2信号(電流)左側)。電流が流れれば、スレイブがマスタに対して論理値「1」を送出していることをマスタが把握することができる。
挿抜・交換可能なUICCでの使用が想定されているため、製品間のばらつきにより電流を完全に制御しきることはできない。このため、マスタはある一定の閾値を基準に電流が流れているか流れていないかを判断することとなる。このイメージを補うのであれば、非特許文献1のFigure7.2を参照されたい。
上記図9は、あくまでも仕様上の要請である。次は本発明の実施の形態の実装上の問題を考える。
図10は、本発明の実施の形態の実装時におけるNビットシフタ243が無いときのSWPのデータ送信波形の問題点を表す模式図である。図11は、この問題点を本発明でNビットシフタ243がどのように解決するかを表す模式図である。
本発明の実施の形態ではSWPマスタ141とSWPスレイブ241の間の通信、及びSWPマスタ242とSWPスレイブ251との間の通信、の2系統の通信を考慮する必要がある。そこで、図10では、上段にSWPマスタ141とSWPスレイブ241の間の通信のS1信号及びS2信号を、下段にSWPマスタ242とSWPスレイブ251との間の通信のS1信号及びS2信号をそれぞれ掲載する。
既述の通り、SWPマスタ141とSWPスレイブ241の間のSWIO信号の立ち上がり(=S1信号のスタート)がデータを1ビット送信する際の起点となる。図ではこのタイミングをAとしている。
SWPマスタ141側でSWIO信号を立ち上げると、第1のLSI240のSWPスレイブ241が受信処理を行う。
SWPマスタ141からC6端子上でSWIO信号として送信されたアナログ信号がSWPスレイブ241に送信される。非特許文献1の規定では、この信号は最大電圧1.8の値をとる。これは、UICCが挿抜・交換可能なため、論理値「0」、論理値「1」に該当する電圧を所定の範囲で設定されているためである。
SWPスレイブ241は、この変動する電圧値を、SWPスレイブ241内部で用いる電圧レベルに変換する。すなわち、C6端子上の波形を内部処理可能な電圧に降圧したものがSWPマスタ242及びSWPスレイブ専用RAMに入力できるよう、SWPスレイブ241は電圧変換をかけている。ただし波形の外形は、SWPマスタ141からSWPスレイブ241への出力と略同一である。また、降圧に伴う遅延も生じる。
このSWPスレイブ241の出力(内部用S1信号)はSWPマスタ242及びSWPスレイブサンプリングモジュール245に出力される。
SWPマスタ242は受信した波形をSWPインターフェースに規定された電圧レベルに従って第2のLSI250のSWPスレイブ251に出力される。すなわち内部処理電圧から、非特許文献1記載の電圧仕様(1.8V)に昇圧する。そして、昇圧後の電圧の信号をSWPマスタ242は第2のLSI250のSWPスレイブ251に対して出力する(処理(1))。
図10の「遅延#1」は、この上記の一連の動作による遅延を表す(タイミングB)。
この、SWPマスタ242とSWPスレイブ251との間で電圧が高くなった時、SWPスレイブ251側の電位が低ければ、SWPマスタ242からSWPスレイブ251に対して電流が流れる。これが図10の処理(2)の動作にあたる。
このタイミングBでSWPマスタ242が電流を検出すると、SWPマスタ242はSWPスレイブ251が論理値「1」を送信しているものと理解する。また、このタイミングで電流が検知できないと、SWPマスタ242はSWPスレイブ251が論理値「0」を送信しているものと理解する(非特許文献1 8.2節参照)。
図10ではこのタイミングBでSWPマスタ242は電流を検知している。従って、SWPスレイブ251が論理値「1」を送信しているものとSWPマスタ242は理解している。
SWPマスタ242は受信した電流波形を電圧波形に変換して、SWPスレイブ241方面に対して出力する(タイミングC)。この電流から電圧に変換する処理も遅延の原因となる。図10ではこの処理を処理(3)として表す。また、この遅延を遅延#2として表わす。
この電流電圧変換がなされた信号が調整されること無くSWPスレイブ241に入力されると、SWPスレイブ241は即座に電圧電流変換をかけて電位の調整を行うことも考えられる(タイミングD)。この電圧電流変換にも処理遅延が生じる。この電位の調整を処理(4)として表す。また、この遅延を遅延#3とする。
上記のようにタイミングDで即座にSWPスレイブ241が電位を変化させると、タイミングAでSWPマスタ141が「H」レベルにしたSWIO信号が、まだ「H」レベルを維持している可能性が高い。遅延#1、遅延#2、遅延#3を全て足しても、所詮は処理遅延であり、S1信号の「H」レベル期間の仕様上の最小スペック(=もっとも条件が良い)を満たせない場合がほとんどだと思われるためである。
非特許文献1では、SWIO信号(S1信号)が、「H」の時にはS2信号は安定させていなければならない(非特許文献1 8.2節)。しかし、上記の説明でも分かるように何らの調整も無ければ、この仕様上の要求を満たすことは困難である。
図11は、Nビットシフタ243を挿入することで、この問題の解決方法を提示するものである。
処理(3)までは図10と同様であるので省略する。
図10と異なり、図11ではNビットシフタ243が挿入されている。従って、SWPマスタ242の電流電圧変換後の信号はNビットシフタ243に入力される。ここから「Nビットシフト処理」が開始される。
Nビットシフタ243は、SWPマスタ242の出力信号の「L」レベルから「H」レベルへの変化を受けると、Nビットシフタ243は自身の有する増分カウンタのカウントアップを開始する。増分カウンタのカウントアップのタイミングは入力されるクロック信号の立ち上がりである。
この増分カウンタはNビットシフタ243がMUX246に対してどれだけの期間出力電圧を「H」状態にするかを決定するために用いられる。
次にNビットシフタ243は、内部用S1信号の立下りを待つ。このSWPスレイブ241が出力する内部用S1信号の立下りを受けると、増分カウンタのカウントアップを停止する。また、増分カウンタのカウント値を減算カウンタの初期値に設定する。この際、初期値の設定に際して、加算又は減算することでNビットシフタ243の出力が「H」レベルの期間を増減することも可能である。
初期値設定後、減算カウンタにクロック信号を入力し、減算カウンタのカウントダウンを開始する。この減算カウンタのカウントダウンのタイミングも、入力されるクロック信号の立ち上がりである。
図11では、この減算カウンタの動作開始と同時にNビットシフタ243は出力電圧を「H」に立ち上げている(タイミングE、処理(5))。そして、この減算カウンタが「0」になることでSWPスレイブ241への電圧信号を「L」レベルに戻す(タイミングF)。
このNビットシフタ243の出力の立ち上がり(処理(5))により、SWPスレイブ241はSWPマスタ141とSWPスレイブ241の間のSWPスレイブ241側の電位を「H」レベルから「L」レベルに変化させる。しかし、この処理はSWPマスタ141とSWPスレイブ241の間のS1信号が「L」レベルのときに行われることとなり、従って、SWPマスタ141とSWPスレイブ241の間の電位差は0もしくはそれに近い微少なものとなっている。従って、電流は流れない。
そして次にSWPマスタ141とSWPスレイブ241の間のS1信号が「H」に立ち上がるときに電流が流れ、第2のLSI250のSWPスレイブ251が出力した論理値が1ビット遅延してCLFチップ140に伝達されることとなる(タイミングG、処理(7))。
このように、第2のLSI250のSWPスレイブ251が出力するS2信号の論理値を、Nビットシフタ243を用いて、SWP仕様に確実に適合させることでデータスルー方式を実現ならしめる。
なお、CLFチップ140と第1のLSI240との通信は、SWPの通常の実装に従うために省略する。
つぎに、第1のLSI240及び第2のLSI250との競合を考え、これらとLSIチップ140でどのように動作するかを説明する。図12は本発明の第1の実施の形態に関わるデータスルー方式のタイミングチャートである。なお本図では上記図10、図11で説明したような素子遅延は考えていない。
CLFチップ140が出力したC6端子上でSWIO信号(S1信号)は、第1のLSI240のSWPスレイブ241が受信する。SWPスレイブ241によるこの信号の降圧処理後、第1のLSI240は第2のLSI250及び第1のLSI240内のSWPスレイブサンプリングモジュール245に、同じS1信号の論理値を転送する。これが図12の上部2項目、「CLF→LSI2」「LSI2→LSI1」の波形が同じになる理由である。
この同一の論理値からなるデータを受けて、第1のLSI240または第2のLSI250のいずれか一方がCLFチップ140に応答を返す。しかし、仕様上は最大で4フレームまでCLFチップ140は出力可能である。従って、第1のLSI240と第2のLSI250が競合した際の出力の優先度を決めておく必要がある。
第1のLSI240の制御部247が送信するデータを有しない場合、スイッチ信号によって、MUX246の出力をNビットシフタ243側に切り替えておく。この状態がMUX246のデフォルトの状態となる。
デフォルトの状態で、第2のLSI250からデータが送信されてきた場合には、1ビット毎に図11で説明した処理を行うことで、第1のLSI240を経由してCLFチップ140にデータが送信される。図上ではデータ4、データ5がこれに当たる。この際、第1のLSI240の制御部247は特に制御処理を行うことは無い。
一方第1のLSI240からの出力がある場合には、まず制御部247はSWPマスタサンプリングモジュール244に対して、SWPマスタ242がSWPスレイブ241に対してデータを送信しているかを確認する。
SWPマスタ242がSWPスレイブ241に対してデータ送信中の場合には、そのデータ送信の終了を制御部247は待つこととなる。これは図12には記載していない。
一方、SWPマスタ242がSWPスレイブ241に対してデータ送信を行っていない場合には、制御部247はスイッチ信号を出力することで、MUX246の入力をSWPスレイブサンプリングモジュール245からの入力を受け付けるように制御する。
そして、制御部247はSWPスレイブサンプリングモジュール245の電圧信号出力部245−3に対してデータをセットし、データ送信完了まで実行する。図12上ではデータ6がこれに当たる。
一方、第1のLSI240がCLFチップ140に対してデータを送信しているときに第2のLSI250がデータをCLFチップ140に送信した場合が図12上のデータ7である。
この場合、Nビットシフタ243が電圧信号を出力しても受信するものがいない。そこで、SWPマスタサンプリングモジュール244のサンプリング部244−1が、SWPマスタ242が出力する電圧情報を一旦論理値に変換し、自身の記録部244−2に記録しておく。
制御部247などによるデータ6に対する処理が終了した際には、制御部247はSWPマスタサンプリングモジュール244に対して、自身の処理中にSWPマスタ242からの送信があったかを確認する。
SWPマスタ242からの送信があった場合に制御部247は、SWPマスタサンプリングモジュール244内の記録部244−2に記録された論理値を読み込む。そして読み込んだ論理値をSWPスレイブサンプリングモジュール245経由で送信する。
すなわちこの場合には、Nビットシフタ243を通ることなく、第2のLSI250がデータをCLFチップ140に送信されることとなる。これを表すのが図12上のデータ7である。
そして、SWPマスタサンプリングモジュール244に確認の後、データ送信が終了した時点で制御部247はMUX246の入力をNビットシフタ243側に戻す。
このように、SWPマスタサンプリングモジュール244は競合時のデータは自身の有する記録部244−2に保存する。従って、最悪の状況(第1のLSI240から1フレームの出力中に、第2のLSI250から3フレーム出力が始まったとき)でも、競合時のデータを全て蓄積可能なように記録部244−2の容量を確保しておく必要がある。
この全体動作を実現するための第1のLSI240のフローについて説明する。
図13は、第2のLSI250がCLFチップ140に対して出力する際の第1のLSI240の処理を表すフローチャートである。
このフローチャートは、第1のLSI240又は第2のLSI250からACTフレームを出力し、SWPインターフェースの初期化が完了した時点でこのフローチャートは開始される。第1のLSI240又は第2のLSI250のいずれからACTフレームが出力されるかは、設計事項である。
ACTフレームの送信によりCLFチップ140とSWPスレイブ241間がアクティベイティッドの状態で、CLFチップ140からS1信号としてデータが送信されてくる。このデータをSWPスレイブ241が受信する(ステップS1001)。
SWPスレイブ241はこのS1信号を降圧して、内部用S1信号を生成し出力する(ステップS1002)。これにより、SWPマスタ242及びSWPスレイブサンプリングモジュール245に内部用S1信号が伝達される。
SWPスレイブサンプリングモジュール245はサンプリング後、S1信号の論理値を抽出する。制御部247はこの論理値から、自身が処理するデータか否かを確認する(ステップS1003)。自身が処理する必要が無ければ(ステップS1003:No)、特に処理することなく、SWP仕様のアクティベイティッド状態での待機に戻る。この際、制御部247が論理値をSWPスレイブサンプリングモジュール245に破棄させるかは設計事項である。
自身が処理するデータであれば(ステップS1003:Yes)、Nビットシフタ243を経由して第2のLSI250からCLFチップ140にデータが送信されているかを確認する(ステップS1004)。具体的には、SWPマスタサンプリングモジュール244に対して、SWPのインターフェースの状態、受信データの有無を問い合わせに行くことで実行される。
確認の結果、Nビットシフタ243が使用中であれば(ステップS1004:No)、その使用中状態が解消するまで制御部247は自身の送信を待つことになる。一方、Nビットシフタ243が使用されていなければ(ステップS1004:Yes)、制御部247はスイッチ信号の出力によってMUX246の入力をSWPスレイブサンプリングモジュール245からのものに切り替える(ステップS1005)。
MUX246の切り替え後、制御部247はSWPスレイブサンプリングモジュール245を経由してCLFチップ140に対してSWPのS2信号による送信を開始する(ステップS1006)。既述の通り、この処理はSWPスレイブサンプリングモジュール245が電圧信号をMUX246経由でSWPスレイブ241に出力することで行われる。
一般的には、制御部247からSWPスレイブサンプリングモジュール245の電圧信号出力部245−3に対して送信データを書き込むことで送信が開始される。ここで、データ自体の書き込みはステップS1005の前になされていることも考えられる。この場合、制御部247ではなくSWPスレイブサンプリングモジュール245が送信開始の主体となる。これらの慣用されている微差は本実施の形態の射程に含まれる。
ステップS1006で開始された自身のデータの送信が終了したら(ステップS1007:Yes)、制御部247はSWPマスタサンプリングモジュール244に、SWPマスタ242から送信された電圧信号由来のデータの論理値が格納されているかを確認する(ステップS1008)。格納されている場合(ステップS1008:Yes)、制御部247は格納された論理値をSWPスレイブサンプリングモジュール245に送信し、CLFチップ140に対して出力する(ステップS1009)。
この際、制御部247が論理値のSWPマスタサンプリングモジュール244からSWPスレイブサンプリングモジュール245への転送処理を全て行っても良い。また、制御部247が図示しないDMAコントローラに指示を行うことで、制御部247の処理を早期に開放させても良い。更にはSWPマスタサンプリングモジュール244、SWPスレイブサンプリングモジュール245に転送の主体を任せても良い。
このSWPマスタサンプリングモジュール244に格納された論理値が全て出力されれば(ステップS1010:Yes)、あるいはSWPマスタサンプリングモジュールに論理値が格納されていなければ(ステップS1008:No)、制御部247はスイッチ信号を操作し、MUX246の入力をデフォルト値、すなわちNビットシフタ243側に戻す(ステップS1011)。
その後、送受信処理を行う必要が無い場合には(ステップS1012:Yes)、ディアクティベイトッド状態にすることで処理を終了する。送受信処理が必要な場合には(ステップS1012:No)、アクティベイティッド状態、すなわち開始直後の状態に戻ることとなる。
以上のように第1のLSI240が動作することで、1のUICC内にアプリケーションソフトウェアを搭載するLSIを2つ設け、SWPインターフェースによって縦続接続し、1つのUICC内で複数の独立した機能の同時動作実現することが可能となる。
なお、上記はあくまでも一例であり、各種変形例が考えられる。例えば、SWPマスタ242では電流信号を電圧信号に変換している。しかし、SWPスレイブに対して論理値「0」「1」が伝わり、かつNビットシフタ243でタイミング調整を行えれば信号の形式に拘るものではない。
(第2の実施の形態)
次に、第2の実施の形態について図を用いて説明する。
第1の実施の形態では、CLFチップ140からのS1信号を降圧し、WPスレイブサンプリングモジュール245及びSWPマスタ242に送信することで、縦続接続を可能としていた。
しかし、第1の実施の形態の構成では、第1のLSI240をマスタとしてスレイブに当たる第2のLSI250に対してSWP送信を行うパスがない。
本実施の形態は、この第1のLSI240と第2のLSI250の間でSWP可能な形で縦続接続を行うことを可能にする形態を提案する。
図14は、第2の実施の形態に関わる第1のLSI240bの内部構成を表すブロック図である。
第1のLSI240bの基本的な構成は第1の実施の形態に関わる第1のLSI240と相違は無い。しかし、MUX246bがSWPマスタ241とSWPスレイブ242の間の内部用S1信号に挿入される点が相違する。また、このMUX246bを制御する第2のスイッチ信号が制御部247bからMUX246bに出力される。
さらに第1の実施の形態に関わるSWPマスタサンプリングモジュール244は、第2のLSI250への送信を考える必要は無かった。しかし本実施の形態では、その対応のため、SWPスレイブサンプリングモジュール245の電圧信号出力部245−3に相当するモジュールが付加されたSWPマスタサンプリングモジュール244bに置き換えられている。このSWPマスタサンプリングモジュール244bの出力としてMUX246bへの出力が追加されている。
MUX246bはSWPマスタ242に対して出力する信号を、内部用S1信号にするか、SWPマスタサンプリングモジュール244が出力する信号にするかを選択するためのセレクタである。このMUX246bの選択信号としては、制御部247bから出力される第2のスイッチ信号である。
デフォルト値として、MUX246bは内部用S1信号をSWPマスタ242に対して出力する。そして、第2のスイッチ信号によって、一時的にSWPマスタサンプリングモジュール244から入力される信号をMUX246bの出力値とする構成を取る。
SWPマスタサンプリングモジュール244bは、SWPマスタサンプリングモジュール244に加えて1本出力が増えている。これは、SWPマスタ242に対して内部用S1信号に近い波形、すなわち電圧レベルが第1のLSI240の内部処理に適するように降圧されたS1信号、を出力するためである。この出力のために、SWPマスタサンプリングモジュール244bにはSWPスレイブサンプリングモジュール245の電圧信号出力部245−3に相当するモジュールが付加されている。
図15は、本発明の第2の実施の形態に関わるSWPマスタサンプリングモジュール244bの構成を表すブロック図である。
図7における電圧信号出力部245−3に相当する信号出力部245b−3をSWPマスタサンプリングモジュール244bは有する。この信号出力部245b−3は制御部247bから入力される値を、電圧信号に変換するという点では電圧信号出力部245−3同様である。
しかし、SWPマスタ242はSWPのマスタである。従って、電圧信号出力部245−3と異なり、他の信号との同期は考慮する必要は無いため、入力信号が減っている(内部用S1信号の入力が無い)。
図16は、本発明の第2の実施の形態に関わるデータスルー方式のタイミングチャートである。CLFチップ140からの出力と第1のLSI240bからの出力が競合する可能性がある点が図12との相違点である。逆にSWPスレイブ251からCLFチップ140への出力(スレイブ>マスタ方向)については第1の実施の形態と大きく相違することは無い(図16下半分)。また、SWPインターフェースは全二重通信であるため、上り方向、下り方向が干渉することも無い。従ってマスタ>スレイブ方向に注力して説明する。
MUX246bは内部用S1信号を入力信号のデフォルトとするため、CLFチップ140のSWPマスタ141からS1信号が出力されると、降圧・昇圧処理を経た後にSWPマスタ242からSWPスレイブ251にS1信号が出力される(図16データ1、データ2、データ3)。
一方、制御部247から第2のLSI250に対してデータを送信する際には、第2のスイッチ信号を切り替えて、MUX246bの入力をSWPマスタサンプリングモジュール244bに切り替える。そして制御部247bはSWPマスタサンプリングモジュール244bの信号出力部245b−3に論理値データを書き込むことで、SWPマスタ242を介してS1信号を出力する(図16データ8、データ9)。
制御部247由来のデータが送信中にCLFチップ140から送信があった場合には(図16データ10、データ11)、SWPスレイブサンプリングモジュール245のサンプリング部245−1内で論理値に変換された後、記録部245−2に一時保管される。
自発的なデータの送信を終えた制御部247bは第2のスイッチ信号を切り替える前にSWPスレイブサンプリングモジュール245に受信データ(図16データ10、データ11相当)の有無を問い合わせる。そして、受信データが存在する場合には、自身のデータの送信後続けてこれらを送信する。
その後、SWPスレイブサンプリングモジュール245内の受信データを全て送信した後に、第2のスイッチ信号を切り替え、デフォルト状態に戻すこととなる。
このように、本実施の形態では、この第1のLSI240と第2のLSI250の間でSWP可能な形で縦続接続を行うことを可能にする。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記の実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更が可能であることは言うまでもない。