(57)【要約】【課題】  複数装置間の調停を行いながら、同時にデバッガが制御装置に接続された際の記憶装置に格納されたデータを保護する制御装置およびデータ保護方法を提供する。【解決手段】  マイクロプロセッサ１１と、該マイクロプロセッサからの命令信号を受けてマイクロプロセッサが実行するプログラムを含むデータを保持した記憶部１５にアクセス制御信号を出力して記憶部をアクセスする調停部１２−１と、プログラムをデバッグするデバッガを接続する接続部１６と、接続部にデバッガが接続されたことを検出する接続検出部１２−２と、該接続検出部によってデバッガの接続が検出されるとアクセス制御信号の出力をマスクするアクセス制御部１２−３をもつ制御装置。【選択図】図１
2014048904.tif 000002
【特許請求の範囲】
【請求項１】
マイクロプロセッサと、
該マイクロプロセッサからの命令信号を受けて、前記マイクロプロセッサが実行するプログラムを含むデータを保持した記憶部にアクセス制御信号を出力して前記記憶部にアクセスする調停部と、
前記プログラムをデバッグするデバッガを接続する接続部と、
前記接続部に前記デバッガが接続されたことを検出する接続検出部と、
該接続検出部によって前記デバッガの接続が検出されると前記アクセス制御信号の出力をマスクするアクセス制御部と、を備えることを特徴とする制御装置。
【請求項２】
請求項１記載の制御装置であって、
前記記憶部はメモリであり、
前記アクセス制御信号は、前記メモリへのチップセレクト信号またはリード信号またはライト信号のいずれかの信号を含むことを特徴とする制御装置。
【請求項３】
請求項１記載の制御装置であって、
更に前記接続検出部によって前記デバッガの接続が検出され、前記マイクロプロセッサの前記命令信号がリードアクセスのとき、ダミーデータを前記マイクロプロセッサに与えるダミーデータ出力部を備え、
前記マイクロプロセッサは前記ダミーデータを受けて、該ダミーデータを前記デバッガに与えることを特徴とする制御装置。
【請求項４】
請求項１記載の制御装置であって、
前記アクセス制御部は所定のコードが前記マイクロプロセッサから与えられると、この与えられた所定のコードと予め保持されている解除コードとを比較し、この比較結果が等しいとき、前記記憶部に対する前記アクセス制御信号の出力のマスクを解除することを特徴とする制御装置。
【請求項５】
マイクロプロセッサから命令信号を受け、前記マイクロプロセッサが実行するプログラムを含むデータを保持した記憶部にアクセス制御信号を出力して前記記憶部をアクセスする調停部を具備する制御装置のデータ保護方法であって、
前記調停部は、デバッガが接続されたことを認識すると、前記アクセス制御信号の出力をマスクすることを特徴とする制御装置のデータ保護方法。
【請求項６】
請求項５記載の制御装置のデータ保護方法であって、
前記デバッガが接続され、かつ、前記マイクロプロセッサが前記記憶部にリードアクセスを実行した際、
前記調停部は前記マイクロプロセッサにダミーデータを与え、前記マイクロプロセッサは前記ダミーデータを受けて該ダミーデータを前記デバッガに与えることを特徴とする制御装置のデータ保護方法。
【請求項７】
マイクロプロセッサから命令信号を受け、前記マイクロプロセッサが実行するプログラムを含むデータを保持した記憶部にアクセス制御信号を出力して前記記憶部をアクセスし、デバッガが接続されたことを認識すると、前記アクセス制御信号の出力をマスクして前記記憶部に保持されたデータを保護する制御装置のデータ保護解除方法であって、
所定のコードが前記マイクロプロセッサから与えられると、この与えられた所定のコードと予め保持されている解除コードとを比較し、この比較結果が等しいとき、前記記憶部に対する前記アクセス制御信号の出力のマスクを解除することを特徴とするデータ保護解除方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、被制御機器を制御する制御装置に関し、特に、制御装置に保持されているデータを保護する制御装置、そのデータ保護方法およびデータ保護の解除方法に関する。
従来から、被制御要素を制御する制御装置（一例として半導体集積回路等の形態で実装される）に対して、ＪＴＡＧ（Joint  Test  Action  Group）を使用したインタフェースをデバック機能として搭載することが主流になっている。
【０００２】
ところで、ＰＣ（Personal  Computer）等、汎用のコンピュータシステムは勿論のこと、組込みシステムにおいても知的財産であるプログラムやデータ等、ソフトウェアの保護は重要である。しかしながら、上記したＪＴＡＧインタフェースを用いると、制御装置に内蔵されたフラッシュＲＯＭや内蔵ＲＡＭに保持されるプログラムやデータを自由に読みだすことができるためソフトウェアの保護機能が必要である。
【０００３】
図５は、一般的な組込みシステム（制御装置１００）の構成を示しており、マイクロプロセッサ１００ａに、外付けフラッシュＲＯＭ６０と外付けＲＡＭ１３０が、アドレスバス１５０とデータバス１６０経由で接続されて使用される。また、ＪＴＡＧ−ＩＣＥ（In  Circuit  Emulator）等のデバッガ２００は、ＪＴＡＧポート１１０を介してマイクロプロセッサ１００ａに接続される。
【０００４】
従来、第三者によるＪＴＡＧインタフェースを介したプログラムやデータの読み出しができないような仕組みが開発され、例えば、特許文献１には、内蔵フラッシュＲＯＭにセキュリティビットを設け、このセキュリティビットをオンすることでＪＴＡＧインタフェースの機能を禁止してフラッシュＲＯＭに保持されたプログラムの読出しができない仕組みが開示されている。また、特許文献２には、ＪＴＡＧインタフェースにＩＣＥ等のデバッグ機器が接続されているときは、内蔵ＲＡＭのアクセスを禁止することで内蔵ＲＡＭに保持されたプログラムの読み出しができない仕組みが開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００２−３２２６７号公報
【特許文献２】特開２００９−２５９０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、マイクロプロセッサに外付けメモリを接続して使用する場合、フラッシュＲＯＭを内蔵しないマイクロプロセッサを使用することも多い。そのようなマイクロプロセッサでも前述したＪＴＡＧインタフェースが搭載されたものは多いが、ＪＴＡＧインタフェースを介して外付けメモリに保持されたプログラムやデータの漏洩を防止する機能を持つものは存在しなかった。
【０００７】
本発明は上記した課題を解決するためになされたものであり、ＪＴＡＧ等のデバッグインタフェースが搭載されたマイクロプロセッサにバス経由でメモリが接続されるケースにおいても、メモリに保持されたプログラムやデータの読み出し保護が可能な、制御装置、そのデータ保護方法およびデータ保護解除方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
課題を解決するための請求項１記載の発明は、マイクロプロセッサと、該マイクロプロセッサからの命令信号を受けて、前記マイクロプロセッサが実行するプログラムを含むデータを保持した記憶部にアクセス制御信号を出力して前記記憶部をアクセスする調停部と、前記プログラムをデバッグするデバッガを接続する接続部と、前記接続部に前記デバッガが接続されたことを検出する接続検出部と、該接続検出部によって前記デバッガの接続が検出されると前記アクセス制御信号の出力をマスクするアクセス制御部と、を備えることを特徴とする制御装置である。
【０００９】
請求項２記載の発明は、請求項１記載の制御装置であって、前記記憶部はメモリであり、前記アクセス制御信号は、前記メモリへのチップセレクト信号またはリード信号またはライト信号のいずれかの信号を含むことを特徴とする制御装置である。
【００１０】
請求項３記載の発明は、請求項１記載の制御装置であって、更に前記接続検出部によって前記デバッガの接続が検出され、前記マイクロプロセッサの前記命令信号がリードアクセスのとき、ダミーデータを前記マイクロプロセッサに与えるダミーデータ出力部を備え、前記マイクロプロセッサは前記ダミーデータを受けて、該ダミーデータを前記デバッガに与えることを特徴とする制御装置である。
【００１１】
請求項４記載の発明は、請求項１記載の制御装置であって、前記アクセス制御部は所定のコードが前記マイクロプロセッサから与えられると、この与えられた所定のコードと予め保持されている解除コードとを比較し、この比較結果が等しいとき、前記記憶部に対する前記アクセス制御信号の出力のマスクを解除することを特徴とする制御装置である。
【００１２】
請求項５記載の発明は、マイクロプロセッサから命令信号を受け、前記マイクロプロセッサが実行するプログラムを含むデータを保持した記憶部にアクセス制御信号を出力して前記記憶部をアクセスする調停部を具備する制御装置のデータ保護方法であって、前記調停部は、デバッガが接続されたことを認識すると、前記アクセス制御信号の出力をマスクすることを特徴とする制御装置のデータ保護方法である。
【００１３】
請求項６記載の発明は、請求項５記載の制御装置のデータ保護方法であって、前記デバッガが接続され、かつ、前記マイクロプロセッサが前記記憶部にリードアクセスを実行した際、前記調停部は前記マイクロプロセッサにダミーデータを与え、前記マイクロプロセッサは前記ダミーデータを受けて該ダミーデータを前記デバッガに与えることを特徴とする制御装置のデータ保護方法である。
【００１４】
請求項７記載の発明は、マイクロプロセッサから命令信号を受け、前記マイクロプロセッサが実行するプログラムを含むデータを保持した記憶部にアクセス制御信号を出力して前記記憶部をアクセスし、デバッガが接続されたことを認識すると、前記アクセス制御信号の出力をマスクして前記記憶部に保持されたデータを保護する制御装置のデータ保護解除方法であって、所定のコードが前記マイクロプロセッサから与えられると、この与えられた所定のコードと予め保持されている解除コードとを比較し、この比較結果が等しいとき、前記記憶部に対する前記アクセス制御信号の出力のマスクを解除することを特徴とするデータ保護解除方法である。
【発明の効果】
【００１５】
制御装置にデバッガが接続された際に、当該制御装置が備える記憶装置に保持されたデータの情報漏洩・改竄を防止できる。
【図面の簡単な説明】
【００１６】
【図１】本発明の一実施形態に係る制御装置の構成の一例を示すブロック図。
【図２】同じく制御装置の読出し時の動作の一例を示すタイミングチャート。
【図３】同じく制御装置においてダミーデータを供給する場合の説明図。
【図４】同じく制御装置において正常なデータを読み出す場合の説明図。
【図５】一般的な制御装置の構成を示すブロック図。
【発明を実施するための形態】
【００１７】
以下、この発明の実施の形態について図面を参照して詳細に説明する。  
はじめに、図１を用いて、本発明の一実施形態に係る制御装置（プログラマブルコントローラ）の構成を説明する。図１は、そのブロック図である。
【００１８】
制御装置１は、図１に示すように、マイコン１１（マイクロプロセッサともいう）と、情報処理等を行う機能素子であるバスマスタ１３を有している。また制御装置１は、マイコン１１とバスマスタ１３の双方から命令信号を受けて、フラッシュメモリ１４又はＳＲＡＭ１５（以下説明では、フラッシュメモリ１４又はＳＲＡＭ１５を単にメモリと表現することもある。）へのアクセス権をマイコン１１又はバスマスタ１３のいずれか一方に与える調停部１２−１を含んだＦＰＧＡ（Field  Programmable  Gate  Array）１２を有している。更に、制御装置１は、ＪＴＡＧ（Joint  Test  Action  Group）−ＩＣＥ（In  Circuit  Emulator）等のデバッガ２１を接続するコネクタ１６を有している。
【００１９】
なお、後に詳述するがＦＰＧＡ１２は、前述調停部１２−１と、デバッガ２１がコネクタ１６に接続されたことを検知する接続検出部１２−２を有し、デバッガの接続が検知されるとメモリへのアクセス制御信号（チップセレクト信号又はリード信号又はライト信号）の出力をマスクするアクセス制御部１２−３とを有する。またＦＰＧＡ１２は、本発明の制御装置にデバッガが接続され、マイコン１１がメモリをリードアクセスしたとき、ダミーデータをマイコン１１に与えるダミーデータ出力部１２−４を有する。
【００２０】
続いて制御装置１の動作について、図２乃至図４を用いて以下に詳細に説明する。図２は、マイコン１１によるメモリ読み出し時の一例を示したタイミングチャートである。図３は、同じく、マイコン１１によるメモリ読み出し時にダミーデータの出力に係るブロック図であり、図４は、同じく、マイコン１１によるメモリ読み出し時に正規なデータをメモリから読み出すことに係るブロック図である。
【００２１】
図２において、検知信号Ａは、デバッガ２１がコネクタ１６に接続されたとき'Ｈ'になる検知信号であり、ＣＰＵＺＣＳは、マイコン１１がメモリをアクセスする際に出力する制御信号（命令信号）である。ＣＰＵＺＲＤは上記同様制御信号（命令信号）でありメモリをリードする際にマイコン１１が出力する信号である。また、ＺＣＳはＦＰＧＡ１２がメモリに出力するチップセレクト信号であり、ＺＲＤはＦＰＧＡ１２がメモリに出力するリード制御信号である。ＺＣＳやＺＲＤおよび図には示していないがＺＷＴをアクセス制御信号ともいう。
【００２２】
なお、図２においてバスマスタ１３のアクセス要求は発生していないものとし、調停部１２−１はマイコン１１によるメモリアクセスを選択するものとして記載している。
図２の’区間Ｌ’はデバッガ２１が接続されていない場合である。マイコン１１はメモリをリードアクセスするためにＣＰＵＺＣＳを’Ｌ’にしている。このとき、ＣＰＵＺＲＤも’Ｌ’にしている。ＣＰＵＺＣＳの’Ｌ’およびＣＰＵＺＲＤの’Ｌ’を受けたＦＰＧＡ１２（調停部１２−１）は、バスマスタ１３がメモリへのアクセス要求を出していないので、調停の結果マイコン１１によるメモリアクセス要求を選択している。そうすると、ＦＰＡＧ１２はメモリへのアクセス制御信号であるＺＣＳおよびＺＲＤを’Ｌ’にすると共に、アドレスをメモリに出力している。ＺＣＳおよびＺＲＤの’Ｌ’を受けたメモリは、該当するアドレスのデータをデータバスに出力しＦＰＡＧ１２に与えている。そして、ＦＰＧＡ１２はメモリから受けたデータをＣＰＵに与えると共にアクセスサイクルの終了を示す信号（不図示）をＣＰＵに与えている。このようにすることでマイコン１１は１工程のリードアクセスを終了する。
【００２３】
次に、区間‘Ｈ’について説明する。区間Ｈ’は、デバッガ２１が接続された場合である。この場合も、マイコン１１のＣＰＵＺＣＳおよびＣＰＵＺＲＤは’区間Ｌ’と同じように出力される。ＣＰＵＺＣＳの’Ｌ’およびＣＰＵＺＲＤの’Ｌ’を受けたＦＰＧＡ１２（調停部１２−１）は、調停の結果、マイコン１１によるメモリアクセス要求を選択している。しかし、アクセス制御部１２−３は検知信号Ａが’Ｈ’なのでメモリへのアクセス制御信号の出力（ＺＣＳ、ＺＲＤ）をマスクしており、ＺＣＳ、ＺＲＤ共に’Ｈ’のままである。メモリはＺＣＳが’Ｌ’で、かつＺＲＤが’Ｌ’のとき、与えられたアドレスに保持しているデータを出力するため、アクセス制御部１２−３はＺＣＳ、ＺＲＤの何れか一方を’Ｈ’とするように制御信号をマスクしても良い。また、アドレスバスには不定の値やオールゼロが出力されており、正規のアドレスが出力されていない。このようなとき、ダミーデータ出力部１２−４は、ダミーデータＣ（オールゼロやオールＦなど）をマイコン１１に出力している。ダミーデータＣを受けたマイコン１１は、ダミーデータＣをデバッガ２１に与えており、その結果、正規のデータがデバッガから読み取られることはない。
【００２４】
この結果、メモリに格納されているデータが、不正な第三者に読み出されることが回避されることとなり、プログラムデータ等の著作物の漏洩を回避し保護することが可能となる。なお、図２ではリード動作について説明したが、ライト動作についてはそのアクセスの際、ＣＰＵＺＲＤに代わりＣＰＵＺＷＴが’Ｌ’になり、ＺＲＤに代わりＺＷＴが’Ｌ’になる。また、データの転送方向がリード動作とは逆になるものであり、基本動作は、リード動作と何ら変わるものではない。但し、ダミーデータの出力はリード動作独特である。
【００２５】
一方、正当な使用者がデバッガ２１をコネクタ１６に接続し、メモリに保持されたプログラムデータ等をデバッグ処理する場合がある。ここで、正当な使用者か否かを判断する方法の一例について、図３、および図４を使用して説明する。
【００２６】
ＦＰＧＡ１２（アクセス制御部１２−３）は、使用者がデバッガ２１を介してパスワードを入力する（すなわち、マイコン１１がデバッガからパスワードを受け、ＦＰＧＡ１２の所定のレジスタにパスワードを書き込む）と、入力されたパスワードと、予め非公開レジスタ３１に保持された専用コード（解除コードとも言う）Ｅとを比較し、両者が一致する場合に正当な使用者であると判断する。図３は、非公開レジスタ３１に専用コードがある（保持されている）場合、図４は、専用コードが無い（保持されていない）場合を示す。
【００２７】
アクセス制御部１２−３は、デバッガ２１が接続され、その検知信号Ａとして‘Ｈ’が出力された場合、デバッガ２１を介して使用者が入力したパスワードが専用コードＥと等しく、かつこの専用コードが非公開レジスタ３１に保持されていれば、使用者を正当な使用者であると判断する。このとき、アクセス制御部１２−３は、マイコン１１からのメモリアクセス要求に応じて、制御信号ＺＣＳ、ＺＲＤ、およびアドレスデータをメモリに出力し、その結果、メモリから正規のリードデータＢを得る。そして、アクセス制御部１２−３は、このリードデータＢをマイコン１１に与える。マイコン１１は与えられたリードデータＢをデバッガ２１に出力する。これより、正当な使用者は、デバッガ２１を使用したプログラムのデバッグ処理を行うことができる。
【００２８】
尚、フラッシュメモリ１４には、マイコン１１が実行するプログラムや各種テーブルなどのデータが保持されている。本発明はフラッシュメモリ１４に保持されたプログラムや各種テーブルなどのデータをＳＲＡＭ１５（フラッシュメモリ１４よりもアクセス速度が速い）にコピーし保持させ、マイコン１１のプログラムの実行処理を高速化した制御装置にも適用可能なことは勿論である。
【００２９】
また、バスマスタ１３によるＳＲＡＭ１５とフラッシュメモリ１４へのアクセスはデバッガ２１が接続された状態でも実行できる。
本発明によれば、デバッガ２１が接続されると、アクセス制御部１２−３はデバッガ２１によるＳＲＡＭ１５やフラッシュメモリ１４へのアクセスのみを阻止し、バスマスタ１３によるＳＲＡＭ１５やフラッシュメモリ１４へのアクセスは実行を許可する。このように制御することで、例えば、バスマスタ１３が外部機器と通信する場合、実機でのデバッグを目的にデバッガ２１が接続された場合でも、その通信を遮断することがない。従って、本発明を通信ネットワーク（バスマスタ１３がネットワーク通信処理を実行する）で接続した分散型制御システムの各ノードに適用することにより、ノードにデバッガ２１が接続された場合であっても、ネットワークが通信不能になることを回避することができる。よって、本発明はシステムを構築した上での実機デバッグとＳＲＡＭ１５やフラッシュメモリ１４のデータの保護、すなわちセキュリティを両立することができる。
【符号の説明】
【００３０】
１・・・制御装置、１１・・・マイコン、１２・・・ＦＰＧＡ、１２−１・・・調停部、１２−２・・・接続検出部、１２−３・・・アクセス制御部、１２−４・・・ダミーデータ出力部、１３・・・バスマスタ、１４・・・フラッシュメモリ（不揮発性メモリ）、１５・・・ＳＲＡＭ（揮発性メモリ）、１６・・・ＪＴＡＧ等のコネクタ、２１・・・デバッガ、３１・・・非公開レジスタ。
【図１】
2014048904.tif 000003
【図２】
2014048904.tif 000004
【図３】
2014048904.tif 000005
【図４】
2014048904.tif 000006
【図５】
2014048904.tif 000007