(57)【要約】【課題】高速ＲＡＭ内のプログラム格納領域にデータが誤ってライトされないようにして当該プログラムを保護し、高速ＲＡＭ内のプログラム実行で制御動作速度の向上化を図る一方で、そうした場合の動作信頼性の維持ないし向上を図ること。【解決手段】本方式は、高速ＲＡＭ７上でプログラムを格納したプログラム格納領域のアドレスをＦＰＧＡ８に記憶させる。ＦＰＧＡ８は、ＣＰＵ４からのライト信号ＷＲによりライトが行われる高速ＲＡＭ７内のアドレスと、上記記憶した上記プログラム格納領域のアドレスとを比較し、上記両アドレスが、不一致のときはライト信号ＷＲに対応するライト信号ＷＲ０により高速ＲＡＭ７にライトを行う一方、一致するときはライト信号ＷＲ０を高速ＲＡＭ７に出力させないようにしてプログラム格納領域内のプログラムをプロテクトする。【選択図】図１
2010039735.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵによりアクセスされてデータのライト・リードに用いる高速ＲＡＭに、低速ＲＯＭから読み出したプログラムをダウンロードし、ＣＰＵは高速ＲＡＭ内のプログラムを実行する方式において、
高速ＲＡＭ内のプログラム格納領域のアドレス（保護アドレス）をプログラマブル論理デバイスに記録し、上記プログラマブル論理デバイスにより、ＣＰＵからのライト信号ＷＲによりライトが行われる高速ＲＡＭ内の実アドレスと、上記記憶した上記プログラム格納領域の保護アドレスとを比較し、両アドレスが、不一致のときは上記高速ＲＡＭにライト信号ＷＲ０を出力することで当該高速ＲＡＭにライトを行う一方、一致するときはライト信号ＷＲ０を高速ＲＡＭに出力させないことでプログラム格納領域内のプログラムをプロテクトする、ことを特徴とするプログラムプロテクト方式。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＰＵによりアクセスされてデータのライト・リードに用いる高速ＲＡＭに、低速のプログラムＲＯＭから読み出したプログラムをダウンロードし、ＣＰＵは高速ＲＡＭ内のプログラムを実行する方式において、上記高速ＲＡＭ内のプログラムをプロテクトする方式に関するものである。
【背景技術】
【０００２】
プログラマブルコントローラは、シーケンスプログラムを実行してそれに接続された制御機器をシーケンス制御するようになっている。このようなプログラマブルコントローラにおいて、ＣＰＵモジュールにはモジュールバスを介して複数のＩ／Ｏモジュール等の各種モジュールが接続されている。ＣＰＵモジュールは内蔵するＣＰＵによりシーケンスプログラムを実行することで、例えばＩ／Ｏモジュールに対してデータ送信要求を行い、Ｉ／Ｏモジュールはこれに応答してセンサなどの入力デバイスデータをＣＰＵ（プロフェッサ）に送信し、ＣＰＵはアクチュエータなどの出力デバイスを制御する。
【０００３】
図４を参照してプログラマブルコントローラにおいて、ＣＰＵモジュール２は、ＣＰＵ４、システムＲＯＭ５、プログラムＲＯＭ６、高速ＲＡＭ７等の各種メモリを内蔵する。システムＲＯＭ５は、プログラマブルコントローラの基本仕様を定めるシステムプログラムが格納されている。プログラムＲＯＭ６は、ユーザが所望する制御仕様に対応したシーケンスプログラムを記憶するメモリである。高速ＲＡＭ７は、ＣＰＵ４がプログラムを実行するに際し、演算途中結果等のデータのライト・リードや、Ｉ／Ｏモジュール等から取り込まれる入力データや、Ｉ／Ｏモジュール３等へ送り出すための出力データの格納領域として使用される。上記プログラムＲＯＭ６は、フラッシュＲＯＭ等のＲＯＭであり、低速であるために、プログラマブルコントローラの制御速度を早くするうえで、ＣＰＵ４は、例えば数十ｎｓｅｃ．程度の低速のプログラムＲＯＭ６からプログラムをリードし、そのリードしたプログラムを例えば数ｎｓｅｃ．程度の高速ＲＡＭ７にプログラムを、一旦、ライト（書き込み）し、こうして、ＣＰＵ４はその高速ＲＡＭ７にダウンロードしたプログラムにアクセスすることでプログラムを実行することが行われている。
【０００４】
しかしながら、高速ＲＡＭ７はプログラムＲＯＭ６とは相違して、データの書き込みが可能であり、また、ＣＰＵ４からは、高速ＲＡＭ７には上記プログラムをリードするだけでなく、データをライトする場合、バグが発生して、そのデータをプログラム格納領域に誤ってライトして（書き込んで）しまう場合があり、そのような場合、例えばＣＰＵ４が暴走する要因となる場合がある。そのため、高速ＲＡＭ７内にプログラムをプログラムＲＯＭ６からダウンロードしてプログラムを実行する場合では、制御動作が早くなるという利点がある一方では、トラブル等が多発し、制御動作の不安定化の要因ともなるという課題があった。なお、メモリ内のデータを保護する技術が開示されている特許文献を下記する。
【特許文献１】特開平６−７５８６１号公報
【特許文献２】特開２００５−２５３４０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明により解決すべき課題は、ＣＰＵにより、プログラムが格納された高速ＲＡＭ内のアドレス領域にデータが誤ってライト（書き込み）されないようにして、プログラムを保護できるようにし、高速ＲＡＭにダウンロードしたプログラムを実行することで制御動作速度の向上化とその動作信頼性の向上化とを両立可能とすることである。
【課題を解決するための手段】
【０００６】
本発明によるプログラムプロテクト方式は、ＣＰＵによりアクセスされてデータのライト・リードに用いる高速ＲＡＭに、低速ＲＯＭから読み出したプログラムをダウンロードし、ＣＰＵは高速ＲＡＭ内のプログラムを実行する方式において、高速ＲＡＭ内のプログラム格納領域のアドレス（保護アドレス）をプログラマブル論理デバイスに記録し、上記プログラマブル論理デバイスにより、ＣＰＵからのライト信号ＷＲによりライトが行われる高速ＲＡＭ内の実アドレスと、上記記憶した上記プログラム格納領域の保護アドレスとを比較し、両アドレスが、不一致のときは上記高速ＲＡＭにライト信号ＷＲ０を出力することで当該高速ＲＡＭにライトを行う一方、一致するときはライト信号ＷＲ０を高速ＲＡＭに出力させないことでプログラム格納領域内のプログラムをプロテクトすることを特徴とするものである。
【０００７】
本発明においては、ＣＰＵが高速ＲＡＭにデータのライトを行うためにライト信号を出力しても、プログラマブル論理デバイスにより、そのライト信号に対応する高速ＲＡＭ内のアドレス領域にプログラムが格納されている場合では、そのプログラム格納アドレス領域に対してのデータのライトは行われず、プログラムはプロテクトされる。一方、本発明においては、ＣＰＵは高速ＲＡＭに格納したプログラムを実行するので高速で制御動作を実行することができ、結局、本発明では、ＣＰＵの暴走等がなく高い信頼性で高速ＲＡＭ上のプログラムの実行で高速動作を行うことができるようになる。なお、プログラマブル論理デバイスにはＦＰＧＡが好ましい。
【発明の効果】
【０００８】
本発明によれば、ＣＰＵは、高速ＲＡＭ内にダウンロードしたプログラムを実行するようにすることで制御の高速動作が可能である一方、高速ＲＡＭ内のプログラムにデータがバグなどで間違ってライトされずに済み、ＣＰＵのプログラム実行動作の信頼性が向上する。
【発明を実施するための最良の形態】
【０００９】
以下、添付した図面を参照して、本発明の実施の形態に係るプログラムプロテクト方式を詳細に説明する。
【００１０】
図１は本実施の形態のプログラムプロテクト方式を実施するプログラマブルコントローラの概略構成を示し、図１において、１はモジュールバス、２はＣＰＵモジュール、３はＩ／Ｏモジュールを示す。なお、プログラマブルコントローラには上記以外にもそれを構成するモジュールその他があるが本発明では特に説明を要しないから図示を略している。
【００１１】
ＣＰＵモジュール２は、ＣＰＵ４、システムＲＯＭ５、プログラムＲＯＭ６、高速ＲＡＭ７、ＦＰＧＡ８、およびコンフィグレーションデータメモリ９を備えている。ＣＰＵモジュール２は上記以外にも回路ブロックを有するが、本実施の形態ではその図示を略している。
【００１２】
ＦＰＧＡ８は、プログラマブル論理デバイスの一例として、ユーザが任意に論理を設計できるフィールド・プログラマブル・ゲート・アレイの略称で例えば米国ＸＩＬＩＮＸ社のＸＣシリーズ等がある。ＦＰＧＡ８は、例えばコンフィグレーションデータメモリ９に記憶された回路構成のデータを読み込んで所望の回路構成にコンフィグレーションされる。こうしたＦＰＧＡ８は、実施の形態では例えば図２で示すように、入力ブロック８ａ、論理ブロック８ｂ、出力ブロック８ｃを備えている。入力ブロック８ａは、ＣＰＵ４からのライト信号ＷＲ（ＷＲ上のオーバーバーは示していない）や、高速ＲＡＭ７内の保護アドレス指定データ、その他を入力する。論理ブロック８ｂは、後述する保護アドレス記録、アドレス比較、ライト信号の生成、ライト信号の入出力等のプロテクト制御を行う。出力ブロック８ｃは、ライト信号ＷＲ０（ＷＲ０上のオーバーバーは示していない）の出力等を行う。
【００１３】
図３を参照して、ＣＰＵモジュール２では、ＣＰＵ４により、プログラムＲＯＭ６からプログラムが高速ＲＡＭ７にダウンロードされる（ステップｎ１）。次いで、高速ＲＡＭ７内でプログラムプロテクトする領域をＦＰＧＡ８に指定する（ステップｎ２）。指定したプログラムプロテクト領域のアドレスを保護アドレスとしてＦＰＧＡ８内の論理ブロック８ｂに記録する（ステップｎ３）。次いで、ＦＰＧＡ８にＣＰＵ４からのライト信号ＷＲと、そのライト信号ＷＲに対応した高速ＲＡＭ７内の実アドレスとがＦＰＧＡ８に入力される。このとき記録したＦＰＧＡ８の保護アドレスと、実アドレスとを比較する（ステップｎ４）。この比較の結果、保護アドレスと実アドレスとがマッチ（一致）すれば（ステップｎ５）、ＦＰＧＡ８は、ライト信号ＷＲ０を生成せず（ステップｎ６）、これにより、高速ＲＡＭ７には保護アドレスに対応するプログラム格納領域へのデータのライトは行われず、プログラム格納領域に格納されているプログラムは保護される。一方、上記比較の結果、保護アドレスと実アドレスとがマッチしなければ（ステップｎ５）、ＦＰＧＡ８は、ライト信号ＷＲ０を生成し、これにより、高速ＲＡＭ７にはデータが高速でライトされる（ステップｎ７）。
【００１４】
以上により、本実施の形態では、ＣＰＵ４が高速ＲＡＭ７にデータのライトを行うためにライト信号を出力しても、ＦＰＧＡ８により、そのライト信号に対応する高速ＲＡＭ７内のアドレス領域にプログラムが格納されている場合では、そのライト動作が行われず、プログラムはプロテクトされる。
【図面の簡単な説明】
【００１５】
【図１】図１は本発明の実施形態に係るプログラマブルコントローラの構成を示す図である。
【図２】図２は図１のＦＰＧＡの概略ブロックを示す図である。
【図３】図３は実施の形態の動作説明に供するフローチャートを示す図である。
【図４】図４は従来のプログラマブルコントローラの構成を示す図である。
【符号の説明】
【００１６】
１  モジュールバス
２  ＣＰＵモジュール
３  Ｉ／Ｏモジュール
４  ＣＰＵ
５  システムＲＯＭ
６  プログラムＲＯＭ
７  高速ＲＡＭ
８  ＦＰＧＡ
【図１】
2010039735.tif 000003
【図２】
2010039735.tif 000004
【図３】
2010039735.tif 000005
【図４】
2010039735.tif 000006