説明

マイコン開発ツール、半導体装置および通信方法

【課題】 システムを開発した正当なユーザにはプログラムデータなどを記憶する書き換え可能なメモリへのアクセスを可能としながら、不正なユーザには少ない付加回路規模でメモリアクセスを困難にして不正アクセスを防止する。
【解決手段】 本発明の開発ツールは、フラッシュMCU700の書き換え可能なフラッシュメモリ500へのアクセスで、メモリアドレスやデータに加えてアクセス対象アドレスの書込み済みのデータをフラッシュMCU700の通信回路300に送信し、受信した通信回路300がメモリアクセスを行う時、セキュリティ回路400において書込み済みデータとフラッシュメモリ500の読出しデータとを比較し、一致した時のみフラッシュメモリ500のメモリアクセスが行えるよう制御する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、マイコン開発ツールおよび半導体装置に係り、特にワンチップマイクロコンピュータに内蔵された不揮発性メモリに対する不正読出し防止機構を備えたマイコン開発ツール、半導体装置および通信方法に関する。
【背景技術】
【0002】
マイクロコントローラ(以下MCUと記す)を用いたシステム開発では、インサーキットエミュレータ(以下、ICEと記す)を含むマイクロコントローラ開発ツール(以下、マイコン開発ツールと記す)が用いられている。このマイコン開発ツールは、ケーブルで接続されるシステム開発装置とエミュレータで構成される。システム開発装置は、ホストPCとそのホストPC上で動作するプログラムとから構成されていて、プログラム作成やデバッグを行う。エミュレータは、開発中のシステムのMCUの代わりに装着されて、そのMCUの機能をエミュレーションする。そして、前記ICEを用いることで、開発中のシステムを動作させた時のデバッグに係るデータを得ることができて、システムの開発効率が向上する。
【0003】
ところで、エミュレータにMCUのエバリュエータチップなどを用いたICEは、高価であったり、ICEのコネクタやケーブルによって生じる負荷で、動作周波数の高いMCUでは高速動作への追随が困難となったりする問題がある。また、開発中のシステムの実機としての環境に影響を与えて、システムの動作が変化したりする問題がある。このため、MCUに外部とシリアルデータ入出力(JTAG規格などのインターフェース)回路とデバッグ用の回路などを付加した、オンボードデバッグシステムが使用されるようになってきている(例えば、特許文献1参照。)。
【0004】
オンボードデバッグシステムに対応したMCUは、デバッガの機能でMCUに内蔵される不揮発性メモリなどに書込まれたプログラムデータの読出しや書き換えができるため、システム開発後に発見されるバグなどへの対応が容易となる利点があるが、一方では、保護されるべきプログラムデータなどへの不正アクセスも容易となってしまう問題が発生する虞がある。
【0005】
その不正アクセス対策として、例えば開発終了時に特定の操作を行ってセキュリティコードを入力してセキュリティビットを設定すると、その設定を解除しない限り、外部からシリアル入出力回路を介して内部のメモリなどへのアクセスができないようにして、プログラムデータなどへの不正アクセスを困難とする技術がある(例えば、特許文献2参照。)。
【特許文献1】特開2003−15909号公報(第4頁、第1図)
【特許文献2】特開2002−183108号公報(第4−5頁、第1図)
【発明の開示】
【発明が解決しようとする課題】
【0006】
しかしながら、特許文献2のような、MCUに内蔵されたプログラムデータなどを記憶するメモリへの不正アクセスを防止する方法は、セキュリティコードの入力方法などが知られると、限られたビット数のセキュリティコードが有限時間内に解析されて、セキュリティ性能が低下する問題がある。また、セキュリティ性能向上のため、セキュリティコードのビット数を増やすと、セキュリティのために付加する回路規模が増加する問題となる。
【0007】
本発明は、上記問題を解決するためになされたもので、システムを開発した正当なユーザにはプログラムデータなどを記憶するメモリへのアクセスを可能としながら、少ない付加回路規模で不正なユーザにはメモリアクセスを困難にして不正アクセスを防止するマイコン開発ツール、半導体装置、および通信方法を提供することを目的とする。
【課題を解決するための手段】
【0008】
上記目的を達成するために、本発明の開発ツールは、ホストPCと、内蔵メモリとデバッグ情報の入出力手段を有するMCUとが通信回線により接続されてなるマイコン開発ツールであって、メモリアドレスと、メモリアクセスコマンドと、前記メモリアクセスコマンドに応じて付加される書込みデータからなるメモリアクセス情報、及び前記メモリアドレスに対応する書込み済みデータを前記MCUに送信するホストPCと、前記ホストPCより送信された前記書込み済みデータが、内蔵メモリの前記メモリアドレスからの読み出しデータと一致するか判定し、一致した場合には、前記メモリアクセス情報に従って内蔵メモリへの書込みまたは読み出しを行うMCUとを備えたことを特徴とする。
【0009】
また、本発明の半導体装置は、ホストPCと、内蔵メモリとデバッグ情報の入出力手段を有するMCUとが通信回線により接続されてなるマイコン開発ツールの半導体装置であって、前記内蔵メモリに供給するメモリアドレスと、メモリアクセスコマンドと、前記メモリアクセスコマンドに応じて付加される書込みデータと、前記内蔵メモリの前記メモリアドレスに対応する書込み済みデータからなるメモリアクセス情報を受信する通信手段と、前記通信手段と前記MCUの内蔵メモリとの間に設けられたセキュリティ回路とを備え、前記セキュリティ回路は、第1のメモリアクセスで前記内蔵メモリの前記メモリアドレスから読み出した読出しデータと前記書込み済みデータとを比較する比較手段と、前記比較手段から出力される比較結果を記憶する比較結果記憶手段と、前記比較結果記憶手段に記憶された比較結果が一致である時、前記第1のメモリアクセスに続く第2のメモリアクセスを前記メモリアクセスコマンドに従って行ない、前記比較結果記憶手段に記憶された比較結果が不一致である時、前記第2のメモリアクセスを行わないように制御する制御手段とを有することを特徴とする。
【0010】
また、本発明の通信方法は、ホストPCと、内蔵メモリとデバッグ情報の入出力手段を有するMCUとが通信回線により接続されてなるマイコン開発ツールの通信方法であって、前記ホストPCから前記MCUへ、少なくともメモリアドレスと、メモリアクセスコマンドと、前記メモリアクセスコマンドに応じて付加される書込みデータと、前記内蔵メモリの前記メモリアドレスに対応する書込み済みのデータを含むメモリアクセス情報を送信し、前記書込み済みデータが前記内蔵メモリの前記メモリアドレスからの読み出しデータと一致する場合、前記メモリアクセスコマンドが読み出しであれば、少なくとも前記メモリアクセスコマンドの読み出しデータを含む読出し情報を前記MCUから受信することを特徴とする。
【発明の効果】
【0011】
本発明によれば、小規模なセキュリティ回路とメモリアクセスに比較ステップを付加することで、正当なユーザにはマイコン開発ツールを用いて内蔵メモリに書込まれたプログラムのデバッグを可能としながら、不正ユーザには内蔵メモリへのアクセスを困難とすることができるので、内蔵メモリへの不正アクセスを防止することができる。
【発明を実施するための最良の形態】
【0012】
以下、本発明の実施例を説明する。
【実施例】
【0013】
本発明の実施例に係るマイコン開発ツール、半導体装置および通信方法を、図1乃至図10を参照して説明する。
【0014】
図1は、本発明の実施例に係る書き換え可能な内蔵メモリを有するMCUを用いたマイコン開発ツールのブロック図である。図2は、図1のセキュリティ回路の詳細なブロック図である。図3および図4は、ホストPCによるメモリアクセス手順を示すフローチャートである。図5および図6は、メモリへの書込みおよび読出し動作時のセキュリティ回路を中心とする動作を示すフローチャートである。図7乃至図10は、メモリへの書込みおよび読出し動作時のセキュリティ回路の主要な信号のタイミング図である。
【0015】
まず、図1に示すマイコン開発ツール100は、マイコン開発用ソフトを実行するホストPC200と、通信回路300とセキュリティ回路400とフラッシュメモリ500とMCU600を内蔵したフラッシュMCU700とが、通信回線800を介して接続されて構成される。
【0016】
ホストPC200は、デバッグ操作を行うマイコン開発用制御プログラム(デバッガ)をインストールしている。そして、フラッシュMCU700のプログラムデバッグを行う操作者から入力されたデバッグ操作命令をホストPC200が解釈すると、通信回路300が受信できる通信手順に変換し、通信回線800を介してフラッシュMCU700の通信回路300に送信する。また、フラッシュMCU700の通信回路300から送信されるデバッグ操作結果やデータをホストPC200が受信すると、ホストPC200は、そのデバッグ操作結果やデータを操作者が理解できる形式に変換して表示出力する。
【0017】
通信回路300は、ホストPC200から受信したメモリアクセス命令に従ってメモリアクセス動作を行う時は、セキュリティ回路400を介してフラッシュメモリ500への読出し書込みアクセスを行う。また、デバッグ操作命令がフラッシュMCU700のデバッグ仕様で定められたMCU600内部のレジスタなどへのアクセス動作の場合は、MCU600内のレジスタのデータの読出し書込みアクセスを行い、結果を通信手順に従ってホストPC200へ送信する。
【0018】
セキュリティ回路400は、通信回路300がフラッシュメモリ500へメモリアクセス動作を行った場合におけるセキュリティ機能を実現する。即ち、通信回路300からフラッシュメモリ500へのメモリアクセス動作で、一定のセキュリティ解除条件を満たした時には、セキュリティ回路400は通信回路300からのフラッシュメモリ500へのメモリアクセス動作が行えるように信号を制御する。しかしながら、不正アクセス等でセキュリティ解除条件が満たされない時には、セキュリティ回路400はメモリアクセス動作の信号を抑止する。
【0019】
フラッシュメモリ500は、汎用のフラッシュメモリと同様の構成であるが、セキュリティ回路400とMCU600からのメモリアクセスが競合しないように、図示しない選択回路やバス構造の回路が、メモリ周辺またはMCU600とセキュリティ回路400に付加されている。また、本説明ではセキュリティ機能に係わらないフラッシュメモリ500へのメモリアクセスにおいて、必要である特殊な制御信号や電圧発生回路などは省略してスタティックメモリへのアクセスのように記述している。
【0020】
MCU600は、マイクロコントローラであり、フラッシュメモリ500に書き込まれたプログラムを実行して、データ処理や図示しないIOポートなどを介してフラッシュMCU700の外部周辺回路との間で信号を入出力する。
【0021】
次に、フラッシュメモリ500に書き込まれたメモリ内容を把握しているユーザ(以下、正当なユーザと定義する)が、フラッシュメモリ500に書込みを行う時のマイコン開発ツール100の動作を説明する。
【0022】
正当なユーザであるか否かを検証するセキュリティ回路400は、図2に示すような構成となっている。
【0023】
通信回路300からのアドレス出力(以下、アドレスと称する)310は、フラッシュメモリ500のアドレス入力(ADR)に接続され、メモリデータ入出力(以下、データと称する)320は、双方向バッファ回路410を介してフラッシュメモリ500のデータ入出力(DATA)520に接続される。また、通信回路300からのデータ320とフラッシュメモリ500からのDATA520は、比較回路420の比較データ入力にそれぞれ入力され、比較される。
【0024】
通信回路300からの比較制御出力(以下、ベリファイ信号と称する)330は、通信回路300から比較回路420の一方に入力されるデータ320の値と、アドレス310で指定されるフラッシュメモリ500のアドレスから読み出され比較回路420の他方に入力されるDATA520の値とを比較させる信号であり、比較回路420の出力制御入力OEとANDゲート452の一方に入力される。
【0025】
通信回路300からのメモリ読出し制御出力(以下、リードと称する)340とメモリ書込み制御出力(以下、ライトと称する)350は、フラッシュメモリ500の読出し制御信号入力(R)540と書込み制御信号入力(W)550にそれぞれバッファゲート441、442を介して入力されて、フラッシュメモリ500の読出しおよび書込み動作を制御する。
【0026】
双方向バッファ410は、DIR入力信号とG入力信号によってバッファ回路の入出力方向と出力イネーブル(出力が有効である)が決定される。例えば、バッファゲート441、442がON状態で、リード340がアクティブ(以下の説明で特に断らない場合は、信号レベルが「0」の状態を指す)の時は、バッファゲート441の出力は「0」となる。一方、ライト350は、同時にアクティブにならないように制御されるので「1」でありバッファゲート442からの出力は「1」となり、データ入出力方向を示すDIR入力信号は「1」となる。そして、バッファゲート441、442の出力を入力とするANDゲート451の出力はバッファゲート441の出力が「0」であるため「0」となり、双方向バッファ410の出力が有効であることを示すG入力信号が「0」となる。このため、双方向バッファ410は、フラッシュメモリ500から読出したDATA520の値を、通信回路300のデータ320に出力するように動作する。
【0027】
また、バッファゲート441、442がON状態で、ライト350がアクティブの時は、バッファゲート442の出力は「0」であるから、データ入出力方向を示すDIR入力信号が「0」となる。更に、バッファゲート442の出力「0」が入力されるANDゲート451の出力は「0」で、出力が有効であることを示すG入力信号が「0」となる。このため、双方向バッファ410は、通信回路300からのデータ320をフラッシュメモリ500のDATA520へ出力するように動作する。
【0028】
更にまた、バッファゲート441、442がON状態で、リード340とライト350とが「1」の時は、バッファゲート441および442の出力が共に「1」となる。その出力を受けるANDゲート451の出力は「1」となるため、双方向バッファ410のG入力信号が「1」となる。したがって、双方向バッファ410は、両方向の出力がイネーブルでなく、ハイインピーダンス状態となってデータ320とDATA520のデータ線を論理的に切り離すように動作する。
【0029】
比較回路420は、通信回路300からのベリファイ信号330がアクティブな時、データ320とDATA520の値を比較し、その値が一致した時は、出力信号421をアクティブとする。その出力信号421は、Dタイプのフリップフロップ(FF)430のプリセット(PR)に入力される。
【0030】
Dタイプのフリップフロップ(FF)430がプリセットされると、そのQ出力は「1」となる。Q出力である一致信号431は、そのクロック入力(CK)に入力される信号のアクティブエッジ(信号レベルが「0」から「1」に変化する状態)が入力されるまで、「1」に維持する。この一致信号431が「1」の時、バッファ441とバッファ442はON状態となって、各バッファゲート441、442の入力信号(リード340、ライト350)をそのまま出力する。なお、一致信号431が「0」となりバッファゲート441とバッファゲート442がOFF状態の場合、各バッファゲート441、442はそれぞれの入力信号によらず「1」を出力する。
【0031】
(データの書き込み)
次に、ホストPC200が、上述のセキュリティ回路400を有するフラッシュMCU700のフラッシュメモリ500にデータを書き込む場合の通信ならびに処理手順を、図3を参照して説明する。
【0032】
まず、ホストPC200は、通信回路300にメモリ書込みコマンドを送信する(ステップS100)。
【0033】
次に、ホストPC200は、通信回路300にメモリアドレスと、その「メモリアドレス」に「書込み済みデータ」と、「新規書込みデータ」と、「コマンド実行命令」を送信する(ステップS110)。
【0034】
次に、ホストPC200は、全ての新規書込みデータの送信が終了したか調べ(ステップS120)、新規書込みデータの送信が終了していない時は、ステップ110に戻り、全ての書込みデータの送信が終了している時は書込み処理を終了する。
【0035】
(データの読み出し)
次に、ホストPC200が、上述のセキュリティ回路400を有するフラッシュMCU700のフラッシュメモリ500からデータを読み出す場合の通信ならびに処理手順を、図4を参照して説明する。
【0036】
まず、ホストPC200は、通信回路300に「メモリ読出しコマンド」を送信する(ステップS200)。
【0037】
次に、ホストPC200は、通信回路300に「メモリアドレス」と、そのメモリアドレスに「書込み済みデータ」と、「コマンド実行命令」を送信する(ステップS210)。
【0038】
次に、ホストPC200は、通信回路300から送信される読出しデータを受信する(ステップS220)。
【0039】
次に、ホストPC200は、セキュリティ回路400から「読出したデータ」と「書込み済みデータ」の比較結果(ステップS230)を見て、一致しない時はメモリ読出し処理を異常終了する。
【0040】
そして、「読出したデータ」と「書込み済みデータ」が一致した時は、ホストPC200は、全ての読出しデータの受信が終了したか調べ(ステップS240)、読出しデータの受信が終了していない時は、ステップ210に戻り、全ての読出しデータの受信が終了した時は読出し処理を正常終了する。
【0041】
上述したように、本発明のセキュリティ回路400を有するフラッシュMCU700へのメモリアクセスを行う時、ホストPC200は所定の通信手順で、「メモリアドレス」と書込み時は「書込みデータ」と「アクセスコマンド」に加えて、アクセス対象のアドレスに「書込み済みデータ」を含めて通信回路300に送信する。
【0042】
そして、送信された「書込み済みデータ」(データ320)がフラッシュメモリ500から読み出されたDATA520と比較回路420で比較され、一致した時は、セキュリティ回路400のDタイプのフリップフロップ(FF)430の一致信号431が「1」となってバッファゲート441、442をON状態とする。これにより、リード340またはライト350がフラッシュメモリ500に伝達される。したがって、各制御信号(リード又はライト)と同時に送信されるメモリアクセス動作がフラッシュメモリ500で実行される。
【0043】
しかしながら、比較回路420で一致しない時は、Dタイプのフリップフロップ(FF)430からの一致信号431が「0」のままであるため、バッファゲート441、442がOFF状態となり、リード340またはライト350がフラッシュメモリ500に伝達されない。したがって、各制御信号(リード又はライト)と同時に送信されるメモリアクセス動作が行われない。
【0044】
次に、セキュリティ回路400の動作を、図5乃至図10のフローチャートおよびタイミング図を用いて説明する。
【0045】
まず、正当なユーザによる書込み動作は、図5のステップS400〜ステップS470aへの動作フローおよび図7に示すタイミングで行われる。
【0046】
通信回路300は、ホストPC200が図3のステップS110で示される書込み動作を行うと、ホストPC200から「メモリアドレス」、「書込み済みデータ」、「書込みデータ」、「コマンド実行命令」を受信する(ステップS400)。
【0047】
(ベリファイ動作)
次に、通信回路300は、ホストPC200から受信した「メモリアドレス」をアドレス310に出力しフラッシュメモリ500のADRに入力する。次に、「書込み済みデータ」をデータ320に出力する(ステップS410)。
【0048】
次に、通信回路300は、ベリファイ信号330をアクティブとする(ステップS420)。
【0049】
ベリファイ信号330がアクティブとなると、フラッシュメモリ500のR入力540がアクティブになり、フラッシュメモリ500のADRに入力されているメモリアドレスのデータがフラッシュメモリ500から読み出されてDATA520に出力される(ステップS430)。
【0050】
また、比較回路420の出力イネーブルOEに入力されるベリファイ信号330がアクティブであるので、比較回路420はフラッシュメモリ500からのDATA520と「書込み済みデータ」のデータ320を比較して、比較結果421に出力する。
【0051】
この時、正当なユーザが送信した「書込み済みデータ」とフラッシュメモリ500から読出されたDATA520は一致するので、比較回路420の比較結果421はアクティブとなり、Dタイプのフリップフロップ(FF)430をプリセットする。これにより、フリップフロップ(FF)430の一致信号431が「1」となる(ステップS440)。
【0052】
次に、通信回路300は、定められた時間後「書込み済みデータ」出力を停止するとともに、ベリファイ信号330を非アクティブにする。これにより、フラッシュメモリ500の読出し動作は終了する。
【0053】
(書込み動作成功)
次に、通信回路300は、受信した書込みコマンドに従って「書込みデータ」をデータ320に出力するとともに、ライト350をアクティブにする(ステップS450a)。
【0054】
この時、フリップフロップ(FF)430の一致信号431が「1」のため、バッファゲート442をON状態とし、ライト350はフラッシュメモリ500のW550に入力される(ステップS460a)。
【0055】
上述のように、一致信号431が「1」で、ライト350がアクティブになると、双方向バッファ410はデータ320の「書込みデータ」を入力してフラッシュメモリ500のDATAへ出力する。そして、フラッシュメモリ500のW550がアクティブになると、DATA520に入力された「書込みデータ」がADRに入力されたアドレスに書込まれ、フラッシュメモリ500への書込み動作が行われる(ステップS470a)。
【0056】
次に、通信回路300は、定められた時間後にライト350を非アクティブにするとともに、データ320からの「書込みデータ」の出力を停止する。ライト350が非アクティブとなると、フラッシュメモリ500のW550が非アクティブとなり、双方向バッファ410の出力が行われなくなり、メモリの書込み動作が終了する。また、ライト350が非アクティブとなる時に、ANDゲート461の出力が「0」から「1」に変化して、フリップフロップ(FF)430のクロックCKに入力される。これにより、フリップフロップ(FF)430はD入力「0」が出力Qされて、一致信号431は「0」となる。
【0057】
「書込み済みデータ」を知ることができない不正ユーザによるメモリ書込み動作は、図5のステップS400〜ステップS470bへの動作フローおよび図8に示すタイミングで行われる。
【0058】
ベリファイ動作のステップS400〜ステップS430の動作、対応する信号変化のタイミングは上述したものと同様であるので、その説明を省略する。
【0059】
ステップS440において、比較回路420の出力イネーブルOEに入力されるベリファイ信号330がアクティブであるので、比較回路420はDATA520と「書込み済みデータ」のデータ320を比較して、比較結果421に出力する。この時、不正ユーザが送信した「書込み済みデータ」のデータ320とフラッシュメモリ500から読出されたDATA520が一致しないので、比較回路420の比較結果421は非アクティブ「1」であり、Dタイプのフリップフロップ(FF)430は変化しない。これにより、フリップフロップ(FF)430のQ出力の一致信号431は「0」のままであり、バッファゲート441,442をOFF状態とする(ステップS440)。
【0060】
次に、通信回路300は、定められた時間後「書込み済みデータ」出力を停止するとともに、ベリファイ信号330を非アクティブにする。これにより、フラッシュメモリ500の読出し動作は終了する。
【0061】
(書込み動作不成功)
次に、通信回路300は、受信した書込みコマンドに従って「書込みデータ」をデータ320に出力するとともに、ライト350をアクティブにする(ステップS450b)。
【0062】
上述の通り、フリップフロップ(FF)430の一致信号431が「0」のため、バッファゲート442はOFF状態であり、ライト350はフラッシュメモリ500のW550に入力されない(ステップS460b)。
【0063】
また、バッファゲート441、442がOFF状態であることから、その出力は非アクティブ「1」となり、ライト350がアクティブになっても、双方向バッファ410のG入力信号は「1」である。したがって、双方向バッファ410はハイインピーダンス状態となって、データ320およびDATA520の出力は行わない。そして、W550は非アクティブのままで変化しないため、フラッシュメモリ500への書込み動作は行われない(ステップS470b)。
【0064】
次に、通信回路300は、定められた時間後にライト350を非アクティブにするとともに、「書込みデータ」の出力を停止する。
【0065】
このように、不正ユーザによるメモリアクセスの場合は、通信回路300から出力された「書込みデータ」のフラッシュメモリ500への書込み動作は行われない。
【0066】
以上の書込み動作と同様に、図4のステップS210の読出し動作においても、図6と図9および図10に示すように、「書込み済みデータ」(データ320)と「読出しデータ」(DATA520)が一致すれば、フラッシュメモリ500からの読出し動作が行われるが、一致しない時は、フラッシュメモリ500からの読出し動作が行われることはない。
【0067】
フラッシュメモリ500からの読出し動作が行われない時、通信回路300のデータ入力の値は、双方向バッファ410がデータ320へ出力しない時の値(不定値)となる。また、図9および図10においては中間の値が入力されるように記述しているが、MCUの設計においてノイズ対策などの関係で信号線をフローティング状態としないように制御することがあり、この場合は回路構成によるが全ての読出しデータが「0」または「1」になる。
【0068】
なお、フラッシュメモリ500のデータ初期状態は、メモリ製造段階においてMCUユーザに開放されない方法や手段で書込み読出し試験が行われ、その時にall「0」またはall「1」が書き込まれることが知られていて、最初にプログラムをメモリに書込む場合は、フラッシュメモリ500のブロックを製造したメーカが提示するその「書込み済みデータ」の値を利用する。
【0069】
上述した本実施形態によれば、システムを開発した正当なユーザについてはプログラムデータなどを記憶するフラッシュメモリ500へのアクセスを可能とし、通信手順を何らかの方法で知りえても、「書込み済みデータ」を知られることはないので、不正なユーザによるフラッシュメモリ500への不正アクセスを少ない付加回路規模で防止することができる。
【0070】
なお、通信回路300からフラッシュメモリ500へのデータ幅は、MCU600からフラッシュメモリ500へのデータ幅と同一とする必要はなく、例えば2倍のデータ幅とすれば付加回路は増加するものの、必要な書込み済みデータの値の組み合わせが増大することから、繰り返しアクセスして値を得ることは非常に困難となる。
【0071】
また、Dタイプフリップフロップ(FF)430の代わりにカウンタで構成して、ベリファイ信号330による比較を連続して複数回行い、その比較結果が一致する時カウントアップし一定の回数に達した時、一致信号431を出力するように構成しても良い。そして、途中の比較で一致しない場合はカウンタの値をクリアするように制御し、一致信号431が出力された後は、メモリアクセス動作を行う度に、カウンタをカウントダウンしてカウンタが0となるまで一致信号431を出力するように制御してもよく、この場合は、更に少ない追加回路で、不正アクセスを防止することができる。
【0072】
更に、本発明は、上述した各実施例に限定されるものではなく、本発明の主旨を逸脱しない範囲で種々に変形して実施することができる。
【図面の簡単な説明】
【0073】
【図1】本発明のセキュリティ回路を内蔵したマイクロコンピュータおよびマイコン開発ツールの構成図。
【図2】セキュリティ回路のブロック図。
【図3】メモリ書込み手順を示すフローチャート。
【図4】メモリ読出し手順を示すフローチャート。
【図5】セキュリティ回路を中心としたメモリ書込み動作を示すフローチャート。
【図6】セキュリティ回路を中心としたメモリ読出し動作を示すフローチャート。
【図7】セキュリティ回路における書込み動作のタイミング図(比較データ一致時)。
【図8】セキュリティ回路における書込み動作のタイミング図(比較データ不一致時)。
【図9】セキュリティ回路における読出し動作のタイミング図(比較データ一致時)。
【図10】セキュリティ回路における読出し動作のタイミング図(比較データ不一致時)。
【符号の説明】
【0074】
100 マイコン開発ツール
200 ホストPC
300 通信回路
310 メモリの読出し書込みアドレス(アドレス)
320 メモリとの書込み読出しデータ(データ)
330 比較制御信号(ベリファイ)
340 メモリへの読出し制御信号(リード)
350 メモリへの書込み制御信号(ライト)
400 セキュリティ回路
410 双方向性バッファ
420 比較回路
430 フリップフロップ
431 一致信号
441、442 バッファゲート
500 フラッシュメモリ
520 メモリの読出し書込みデータ
540 メモリの読出し制御信号
550 メモリの書込み制御信号
600 MCU
700 フラッシュMCU

【特許請求の範囲】
【請求項1】
ホストPCと、内蔵メモリとデバッグ情報の入出力手段を有するMCUとが通信回線により接続されてなるマイコン開発ツールであって、
メモリアドレスと、メモリアクセスコマンドと、前記メモリアクセスコマンドに応じて付加される書込みデータからなるメモリアクセス情報、及び前記メモリアドレスに対応する書込み済みデータを前記MCUに送信するホストPCと、
前記ホストPCより送信された前記書込み済みデータが、内蔵メモリの前記メモリアドレスからの読み出しデータと一致するか判定し、一致した場合には、前記メモリアクセス情報に従って内蔵メモリへの書込みまたは読み出しを行うMCUと
を備えたことを特徴とするマイコン開発ツール。
【請求項2】
ホストPCと、内蔵メモリとデバッグ情報の入出力手段を有するMCUとが通信回線により接続されてなるマイコン開発ツールの半導体装置であって、
前記内蔵メモリに供給するメモリアドレスと、メモリアクセスコマンドと、前記メモリアクセスコマンドに応じて付加される書込みデータと、前記内蔵メモリの前記メモリアドレスに対応する書込み済みデータからなるメモリアクセス情報を受信する通信手段と、
前記通信手段と前記MCUの内蔵メモリとの間に設けられたセキュリティ回路と
を備え、
前記セキュリティ回路は、
第1のメモリアクセスで前記内蔵メモリの前記メモリアドレスから読み出した読出しデータと前記書込み済みデータとを比較する比較手段と、
前記比較手段から出力される比較結果を記憶する比較結果記憶手段と、
前記比較結果記憶手段に記憶された比較結果が一致である時、前記第1のメモリアクセスに続く第2のメモリアクセスを前記メモリアクセスコマンドに従って行ない、前記比較結果記憶手段に記憶された比較結果が不一致である時、前記第2のメモリアクセスを行わないように制御する制御手段と
を有することを特徴とする半導体装置。
【請求項3】
前記第2のメモリアクセスが前記内蔵メモリへの書込みである場合は前記通信手段を介して受信した前記書込みデータを前記内蔵メモリに書込み、前記第2のメモリアクセスが前記内蔵メモリからの読み出しである場合は前記内蔵メモリから読み出したデータを記憶する双方向の記憶手段を更に有することを特徴とする請求項2に記載の半導体装置。
【請求項4】
ホストPCと、内蔵メモリとデバッグ情報の入出力手段を有するMCUとが通信回線により接続されてなるマイコン開発ツールの通信方法であって、
前記ホストPCから前記MCUへ、少なくともメモリアドレスと、メモリアクセスコマンドと、前記メモリアクセスコマンドに応じて付加される書込みデータと、前記内蔵メモリの前記メモリアドレスに対応する書込み済みのデータを含むメモリアクセス情報を送信し、
前記書込み済みデータが前記内蔵メモリの前記メモリアドレスからの読み出しデータと一致する場合、前記メモリアクセスコマンドが読み出しであれば、少なくとも前記メモリアクセスコマンドの読み出しデータを含む読出し情報を前記MCUから受信する
ことを特徴とする通信方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2007−140879(P2007−140879A)
【公開日】平成19年6月7日(2007.6.7)
【国際特許分類】
【出願番号】特願2005−333316(P2005−333316)
【出願日】平成17年11月17日(2005.11.17)
【出願人】(000003078)株式会社東芝 (54,554)
【出願人】(598010562)東芝エルエスアイシステムサポート株式会社 (119)
【Fターム(参考)】