(57)【特許請求の範囲】
【請求項１】
入力信号を処理する信号処理器（100）と、
該信号処理器に接続され、該信号処理器の信号処理動作を制御する第１の制御器（130）と、
該信号処理器に接続され、データを記憶するメモリ（110）と、
該信号処理器に設けられ、ICカードリーダーと接続され、該第１の制御器を通らない該信号処理器内の信号路を介して、該メモリと、ICカードの集積回路に設けられた第２の制御器との間でデータを受け渡しするインタフェース装置（140,160）と、
を有し、
該インタフェース装置は、該メモリと該第２の制御器の間で受け渡された該データの部分を取り除くフィルター動作を該データに対し行い、前記フィルター動作は、前記第２の制御器と前記メモリ（110）の間のデータ転送が完了した後は必要のない制御情報を取り除くことを含む、
信号処理装置。
【請求項２】
該インタフェース装置は、該メモリから該第２の制御器へ渡されるデータに、二つの状態のうちの一方の状態をとる制御情報を挿入し、
該第２の制御器は該制御情報の該一方の状態に応じてエラー信号を生成する、
請求項１記載の信号処理装置。
【請求項３】
該フィルター動作は、更に、該インタフェース装置によって、該第２の制御器から該メモリへ渡されるデータのパリティをチェックし、且つ、該メモリから該第２の制御器へ渡されるデータにパリティデータ成分を挿入することを含む、
請求項１記載の信号処理装置。
【発明の詳細な説明】
本発明の分野
本発明は信号処理応用で情報へのアクセスを限定するために集積回路（IC）カード又は「スマート」カードを含むアクセス制御システムに関する。
本発明の背景
信号処理システムはある信号内の情報へのアクセスを制限するアクセス制御システムを含む。例えばペイTVシステムは特定のチャンネル又はプログラムにアクセスを制限するアクセス制御サブシステムを含む。権利を与えられた（例えば料金を払った）利用者のみがプログラムを見ることを許容される。アクセスを制限する一つのやり方は例えば信号をスクランブル又はエンクリプトすることにより信号を変更することである。スクランブルは典型的には同期パルスを除去するような方法を用いる信号の形を変更することを含む。エンクリプトは特定の暗号アルゴリズムによる信号に含まれるデータ成分を変更することを含む。アクセスの権利を与えられた者のみが信号をデスクランブル又はデクリプトに必要な「鍵」を与えられる。
アクセス制御システムは集積回路（IC）又は「スマート」カードを含む。スマートカードはプラスチック内に埋め込まれた信号処理ICを有するクレジットカードの大きさのプラスチックカードである。スマートカードはカード内のICへの信号又はそれからの信号に結合するカード読み取り器内に挿入される。国際規格機構（ISO）規格7816はICカードインターフェイス用の仕様を確立する。ISO7816−２はカードへの電気的インターフェイスはカード表面の８つの接触位置を介することを規定する。給電及び接地を供給する端子に加えてインターフェイスはスマートカードとその外側の信号処理システムとの間でデータを通信するためのシリアル入出力（I/O）データ信号を含む。
信号処理システムは典型的にはシステム内の種々の信号処理機能を制御するマイクロプロセッサのようなシステム制御器を含む。スマートカード内のICは信号のスクランブルされたデータ成分をデスクランブルする鍵を発生するような種々のセキュリティ制御機能を達成するセキュリティ制御器を含む。システム制御器及びセキュリティ制御器の両方ともシステムメモリ内に記憶される。データはシステム制御器を介してセキュリティ制御器とシステムメモリとの間で通信される。システム制御器とセキュリティ制御器との間のデ−タ転送はメッセージデータ例えば鍵情報及び特定のデータ転送に含まれるメッセージデータのバイト数を特定するパラメータのような制御データを含む。
システムメモリとセキュリティ制御器との間のデータ転送はシステムメモリにアクセスするシステム制御器と、システム制御器とシステムに含まれるスマートカードインターフェイス回路（SCI）との間のデータ転送と、SCIとスマートカードのシリアルインターフェイス端子を介するセキュリティ制御器との間のデータ転送とを含む。システム制御器を介してシステムメモリ内のデータをアクセスすることはシステム制御器及び他のタスク用のシステムメモリの利用可能性を制限する比較的遅い処理である。加えてスマートカードメッセージに含まれる全てのデータはシステムメモリに、即ちカード制御データとメッセージデータの両方に記憶される。
本発明の要約
本発明は上記の問題を認識し、それを解決することにある。本発明の原理により構成された信号処理システムは信号処理チャンネル内の信号処理機能を制御する第一の制御器と、メモリとインターフェイス装置を含み第一の制御器を含まない信号路を介してシステムの外側の集積回路カード内に含まれるメモリと第二の制御器との間のデータ転送用のインターフェイス装置とからなる。インターフェイス装置は転送されたデータの制御部分を除去するために転送されたデータを処理する。
図の説明
本発明は添付された図を参照してよりよく理解される。
図１は本発明を含む信号処理システムの一部分をブロック図で示す。
図２は図１に示された特徴の実施例をブロック図で示す。
図3A,3Bは図１、２に示されるシステムの動作を理解するのに有用な信号波形を示す。
本発明の詳細な説明
図１は直接放送衛星ビデオ信号処理システム内に含まれる信号処理システムの一部分をブロック図の形で示す。その様なシステムの一例はインディアナ州インディアナポリスのトムソンコンシューマーエレクトロニクス,Inc.により開発されたDSSTM（直接衛星システム）システムである。図１はマイクロプロセッサ130、SRAM110からなるシステムメモリ、見かの輪郭を示した「トランスポート」集積回路（TIC100）の部分を含むシステムの特徴を示す。TIC100は例えばビデオ画像データのようなテレビジョン信号に含まれる情報を表す入力データ信号「データ−イン」を処理する。テレビジョン信号はチューナー（図１には示していない）により同調される。
信号データ−インは「パケット化された」データを含み、即ちデータはデータの複数バイトのパケットに配置される。各パケットはパケットの非−ヘッダ、又は「ペイロード」部分の内容を決定する「ヘッダ」部分を含む。例えばヘッダはパケットがチャンネル５上にプログラムされるビデオデータを含むことを示す。図１にはTIC100のヘッダデコーダ122がパケットペイロードがどのように処理されるかを決定するためにヘッダデータをデコードする。例えばペイロードデータは以下のようにRAM110に記憶される。ヘッダデコーダ122はヘッダをデコードし、データ記憶動作を要求する信号をダイレクトメモリアクセス制御（DMAC）ユニット120に送る。DMAC120は信号データ−インをRAM110のデータ入力に結合するようマルチプレクサ（MUX）118及びRAMデータ制御114を制御することにより応答する。DMAC120はまたMUX116を介してRAM110にアドレス入力を供給する。
TIC100の他の機能はシステムと図１のスマートカード180のようなスマートカード（又は集積回路（IC）カード）との間のインターフェイスを提供する。スマートカード180はアクセス制御関連のデータ処理能力を提供する。TIC100内のスマートカードインターフェイスは特定のスマートカードカード通信プロトコルによりシステムとスマートカード180との間の通信をフォーマットする。例えばTIC100はISO規格7816−３、セクション５から８に規定されるフルタイプＴ＝０非同期半二重キャラクター送信プロトコルを提供する。スマートカードから又はそれへの各送信は１以上のキャラクタからなる。１つのキャラクタは開始ビット、８データビット。パリティビットからなる。以下により詳細に説明するようにTIC100内のスマートカードインターフェイスは図１のスマートカードインターフェイス（SCI）ユニット140とスマートカードダイレクトメモリアクセスインターフェイス（DMAI）ユニット160からなる。TIC100はカードリーダー170を介してスマートカード180に接続される。カードリーダー170はTIC100内のSCIユニット140とスマートカード180の表面上に位置する端子との間のスマートカードインターフェイス信号に接続する。インターフェイス信号とスマートカード180上の端子の配置はISO規格7816−２で規定されている。スマートカード180上に設けられたICはインターフェイス信号を受けるために端子と結合される。
TIC100の動作はマイクロプロセッサ（μＰ）130からなるTIC100の外部のシステム制御器及びTIC100内のマイクロ制御（μＣ）ユニット132により制御される。μC132により発生された制御信号はTIC100からμP130に結合されるデータ信号の源を決定するためにMUX134及びデータ制御ユニット136を制御する。可能なデータ源はRAM110及びスマートカードインターフェイスの状態に関するSCI140からの状態の情報のような「アプリケーション」データを含む。スマートカードインターフェイス状態情報のようなアプリケーションデータはデータ制御ユニット154を介してμP130に転送される。システム制御器により実行される制御手順はMUX116を介してRAM110に対するアドレスを発生することを含む。
スマートカードインターフェイスを制御する制御データはMUX152を含むアプリケーションデータ路を介してμP130からSCI140へ転送される。MUX152は［アウト−ゴーイング」（TIC100の外）アプリケーションデータの源を選択するためにアプリケーション制御ユニット150により制御される。MUX152を用いて選択されるアウト−ゴーイングアプリケーションデータの他の可能な源はMUX118及びRAM110を介するデータ−イン信号を含む。
上記のタイプＴ＝０スマートカード通信プロトコルの下ではスマートカード180とシステムとの間の全てのデータ転送がシステム制御器により開始される。例えばμP130はスマートカード180が例えばデクリプションキー生成のような特定の動作をなすように指示するために命令（コマンド）をスマートカード180に送る。他の命令はスマートカード180が例えば現在の動作の状態のような状態情報をシステムに転送するためにμP130により発行される。状態情報が動作が完了し、μP130がスマートカード180からのデータを受信するために準備されることを示すときにμP130はスマートカード180が例えばデクリプションキーのような動作の結果をTIC100に送るよう指示する他の命令を発効する。
転送を開始する前に、μP130はSCI240内のメモリーマップされた命令レジスタ内に記憶された制御パラメータを初期化する。命令レジスタはアプリケーションアドレス及びデータバスを介してμP130によりアドレスされ、読み出し、又は書き込まれる。SCI140はまたSCI140の状態を表すデータを記憶するメモリ−マップされた状態レジスタを含む。状態レジスタはスマートカードインターフェイスの状態を決定する命令レジスタと同じ方法でシステム制御器によりアクセスされる。
μP130により開始された後にDMAI160及びSCI140を含む図１に示される特徴はスマートカード180とRAM110との間のデータ転送が転送中にμP130による介入なしに完了し得るようにする。スマートカード180へのデータの転送中にSCI140はDMAI160からのデータを受け、パリティビットを発生し、スマートカードへデータをクロックする。逆にSCI140はスマートカード180からデータを受け、パリティチェックをなし、DMAI160にデータを供給する。DMAI160はRAM110へ、及びそれからデータを直接転送する。DMAI160とSCI140との間のデータ転送はハンドシェイク信号により制御される。
図１に示されるように、DMAI160は２つのカウンターレジスタ162、164に結合され、２つのポインタレジスタ166、168に結合されるスマートカード制御ユニット161を含む。レジスタ162はRAM110に書き込まれたデータのバイト数のカウントを記憶する書き込みカウンタレジスタである。レジスタ162のカウントは各バイトがRAMに書き込まれるにつれてスマートカード制御器161により増加（又は減少）する。スマートカード制御器161はまた全てのバイトがいつ転送されたかを決定するためにカウント値を評価する。同様にしてレジスタ164はスマートカード制御器161の制御下でRAM110から読み出されたデータのバイト数のカウントを記憶する。スマートカードの動作中にレジスタ166と168はRAM110に対してそれぞれ書き込み及び読み出しアドレスを提供する。適切なアドレスポインタレジスタはスマートカード転送の始めに初期アドレス値をロードされ、例えば各バイトが転送されるにつれてスマートカード制御器161により増加又は減少されるように更新される。
図２はSCI140の実施例のブロック図を示す。図２ではSCI制御ユニット210は何時スマートカード180がカードリーダー170に挿入されたかを示す図１のスマートカードリーダー170からの信号SC−検出を受信する。ユニット210はμＰへ割込を発生することにより挿入されるスマートカード180に応答する。μP130がSCI制御ユニット210をイネーブルしない場合にはその時期それはそうなる。応答で、ユニット210はスマートカード180を動作するためにスマートカード作動化／不動作化ユニット220をイネーブルする。
ユニット220はカードリーダー170に含まれるスマートカード供給電圧VCCの電源をイネーブルするために信号SC−VCC−イネーブルを発生することによりイネーブルされるよう応答する。パワーがスマートカード180に印加されるかどうかを確認するのに充分な遅延の後に、ユニット220はTIC110のスマートカードシリアル入／出力（I/O）パッドを「レセプション」モードに置き、それによりSCI140はシリアルI/O信号SC−IOを介してスマートカード180からシリアルデータを受信する。加えてユニット220はユニット250の出力で制御信号SC−VPP−選択で「アイドル」状態を発生するためにVPP制御ユニット250を制御する。信号SC−VPP−選択により制御されるカードリーダー170内の電源はスマートカード180にEPROMプログラミング電圧である電圧VPPを供給する。信号SC−VPP−選択のアイドル状態は電圧VPPをEPROMプログラミングがディセーブルされる値に設定する。ユニット220はまたスマートカードクロック信号SC−CLKをスマートカード180に供給し、スマートカードをリセットするために信号SC−リセットを発生する。スマートカード180はISO規格7816−３セクション６に規定されるように信号SC−IO上の「リセットへの応答」データシーケンスを発生することにより信号SC−リセットに応答する。
スマートカードデータ受信機230はスマートカード180からTIC100へのシリアルデータ入力を受信し、バッファするためにI/Oパッド260に結合される。受信機230はシリアルデータストリームを受信し、TIC100内のパラレルデータ路を介してRAM110へ転送するのに適切なシリアルデータをデータワードに変換するシフトレジスタを含む。DMAI160及びSCI制御ユニット210内の全てのメモリマップされた制御レジスタはSCIがスマートカード180からデータを受信する前に初期化される。受信機230により発生されたデータワードはDMAI160,MUX118,及びデータ方向制御ユニット114を介してRAM110に書き込まれる。図１のDMAI160は受信機230と結合され、データが受信されるときにRAM110に対して書き込みアドレスを発生する。DMAI160はまた受信されたデータのワード数のカウントを維持する。全てのデータがスマートカード180から受信されたときに、即ち転送が完了したときにスマートカード制御ユニット210はμP130への割込を発生する。
TIC100内のRAM110からスマートカード180へ転送されたデータはスマートカードデータ送信機240、データ方向制御ユニット114、MUX152、アプリケーションデータバス、SCI制御器210を介して転送される。RAM110から読み出した各データワードはユニット240内のシフトレジスタにロードされる。シフトレジスタ内のデータは信号SC−IO内のシリアルデータストリームを発生するためにI/Oパッド260を介してTIC100の外にシフトされる。データ送信機240は図１でDMAI160に結合され、それはRAM110からデータを読み出すためのアドレスを発生し、スマートカード180に転送されるデータのワードの数のカウントを維持する。制御ユニット210は全てのデータがスマートカード180に転送された後にμP130に割込を発生する。
図２に示されるSCI140の実施例はISO規格7816−３に規定されるタイプＴ＝０のプロトコルに関して多バイト及び１（single）バイト転送の両方がサポートされる。上記のように多バイト及び１バイトのいずれのデータのそれぞれの転送もシステム制御器、即ちμP130により開始される。タイプＴ＝０プロトコルに関する図１、２に示されるシステムの動作の例を以下に説明する。
μP130が転送を発生すると決定するときに、SCI140内の制御レジスタはμP130により上記のように初期化される。SCI140はシリアルデータ信号SC−IOを介してそれからスマートカード180へ結合された制御及びメッセージデータからなるシリアルデータストリームを発生する。SCI140により発生された制御データはCLA,INS,P1,P2,P3で示されたデータの５つの連続したバイトからなるデータストリームの始めに挿入されたコマンド「ヘッダ」を含む。CLAの値（ヘッダの最初のバイト）は命令の「クラス」を定義する。INSバイトは命令を定義する。P1,P2,P3はパラメータであり、P1,P2はアドレスであり、P3はデータストリームのメッセージ部分に含まれるデータバイトの数、即ちヘッダに続くデータのバイト数を特定する。
５バイトのヘッダがSCI140により送信された後に、スマートカード180はISO規格7816−３のセクション8.2.2及びテーブル９で定義された「プロセデュア」バイトに応答する。例えば「アクノウレッジ」又はACKと示されたプロセデュアバイトの値はSCI140内の命令バイトINSの値と比較される。ACKがINS又はINS＋１と等しい場合には全ての残りのデータバイトは送信され、それにより多バイト送信能力を提供する。ACKがINS又はINS＋１の論理（ロジカル）補数と等しい場合には次のデータバイトのみが転送され、それにより１バイト送信能力を提供する。転送のどの型に対してもSCI140内のカウンタは転送されたバイト数をカウントし、そのカウントをヘッダのパラメータP3により定義されるようなメッセージ内のバイト数と比較する。全てのバイトが転送されたときにプロセデュアバイトSW1,SW2は「コマンドの終了」を示すスマートカード180により送信され、送信は終了する。プロセデュアバイトSW1,SW2の値は例えば「正常終了」又は「正確でないメッセージ長さ」のようなISO7816−３セクション8.2.2.3で規定されるようなメッセージの終了状態情報を提供する。
SCI140はまたISO7816−３セクション6.1.3で規定されるような転送されたデータのパリティ処理を提供する。スマートカード180からの多バイトデータ転送中にSCI140は受信されたデータの各バイトのパリティをチェックし、パリティエラーに応答して、ISO7816−３セクション8.2及び図８による信号SC−IO内のエラー信号を発生する。スマートカード180はエラーを有するバイトを再送信することによりエラー信号に応答する。図3Aはエラーなしの条件（図3Aの上の波形）及びエラーありの条件（図3Aの下の波形）の両方に対する信号SC−IOの典型的な信号を示す。データはスマートカード180に転送するときに、SCI140は各バイトに対して適切なパリティビットを発生し、パリティビットをシリアルデータストリーム内に挿入する。スマートカード180がSCI140からのデータ内のパリティエラーを検出した場合にはスマートカード180は図3Aの下部の波形に示されるように信号SC−IO上でエラー信号を発生する。SCI140はエラーを有するバイトを再送信することによりエラー信号に応答する。
１バイトデータ及び命令の転送は同様な方法で生ずる。１バイトアウトゴーイング転送（スマートカード180への）に対して、SCI140はDMAI160からデータバイトを受信し、パリティビットを発生し、カードにキャラクターを転送する。１バイトインカミング転送（スマートカード180からの）に対して、SCI140はカードからキャラクターを受信し、パリティエラーをチェックし、データバイトをDMAI160に供給する。カラクターの繰り返しは受信装置によるエラー信号の発生により示されるような送信エラーの場合になされる。全ての転送に対して、転送速度はISO7816−３セクション6.1.4.4及びテーブル６に規定されるようにプログラム可能である。
命令転送はシステム制御器がデータがカードへ、又はカードから転送されたかどうかを示すためにSCI命令レジスタ内の転送方向フラグを設定することから開始される。システム制御器はまたDMAI160からSCI140へ送られる次のバイトが命令ヘッダの最初のバイトであることを示す命令プロセス開始フラグをまた設定する。アウトゴーイング、即ちTIC100からスマートカード180への転送に対してSCI140はデータのP3バイトが転送されるまで各バイトがDMAI160から受信されるように命令ヘッダの各バイト及びデータの各バイトを送信する。インカミング、即ちスマートカード180からTIC100への転送に対してSCI140はデータのP3バイトが受信されるまでカードから適切なバイト数を受信し、各データバイトをDMAI160に送信する。
上記のACK,SW1,SW2プロセデュアバイトをデコードすることに加えてSCI140はまた「NULL」（動作なし）プロセデュアバイトをデコードし、ACKプロセデュアバイトの値からVPP電圧（スマートカード内のEPROMをプログラムするための電圧）がアクティブかアイドルかを決定する。ACKバイト値及び関連するVPPの状態はISO規格7816−３のテーブル９に示される。上記のように電圧VPPの状態は図２のVPP制御ユニット250により発生される信号SC−VPP−選択により制御される。信号SC−VPP−選択はACKバイトからデコードされた情報に応答して発生される。
スマートカード180から受信されたデータの一部分のみがRAM110に記憶される。SCI140はあるプロセデュアバイトのような制御情報を除去するようスマートカード180からのデータストリームを「フィルター」する。特にACK及びNULLプロセデュアバイトは転送が発生する間にデータ転送を制御する。これらのプロセデュアバイトは転送が完了した後は必要ない。SW1,SW2プロセデュアバイトは例えば転送がうまく完了したかどうかのような転送の終了での状態を決定するために転送が完了した後に解析される。斯くしてSW1,SW2プロセデュアバイトはμP130により更なる解析に対するメッセージデータに沿ってRAM110に記憶される。
不要な制御バイトを除去するためにSCI140によりなされるフィルター動作は図3Bに示される。図3Bの上部はデータバイトが散在するプロセデュアバイトを含むスマートカード180からの典型的なデータストリームである。図3Bの下部はRAM110内に記憶されるフィルタされたデータストリームを発生するためにSCI140とDMAI160により処理された後のスマートカード180からのデータストリームを示す。SW1,SW2以外のプロセデュアバイトはフィルター操作によりデータストリームから除去される。
データバイトと、SW1,SW2プロセデュアバイトがDMAI160及びSRAM110に転送されたときに割込がμP130に対して発生する。システム制御器はRAM110からデータを検索（レトリーブ）し、要求されるようにデータを処理することにより割込に応答する。データ転送の開始（SCI140命令レジスタの初期化）とデータ転送の終了（割込フラグの発生）との間にシステムとスマートカードとの間の全ての通信がシステム制御器による介入なしになされる。
システム制御器の利用可能性を改善することに加えて、SCI140及びDMAI160はまた上記の「フィルタリング｝特性を提供する。知られているダイレクトメモリアクセス特性と異なり、SCI140により提供されるフィルタリング動作はデータがRAM110に記憶される効率と記憶されたデータの統一性の両方を改善する。上記のようにフィルタリング動作はデータストリームから制御データのような不要なデータバイトを除去する。斯くしてRAM110に記憶されなければならないスマートカードデータの量は減少される。RAM110に記憶されなければならないスマートカードデータの統一性はエラー検出に対する上記のパリティ処理特性とエラー除去のためのデータバイト再送信により改善される。
【図２】
0003578220.tif 000002
【図１】
0003578220.tif 000003
【図３Ａ】
0003578220.tif 000004
【図３Ｂ】
0003578220.tif 000005