(57)【要約】【課題】電子制御装置におけるＰＬＤのデータの書き換えに、その保護対策、安全対策を講じる。【解決手段】コントロール・センタ２００から論理プログラム・データをＰＬＤ１１０に転送して書き込む書き込みロジック１３０を備え、バッファ回路１００１は論理プログラム・データの通過／遮断を制御可能にし、イネーブル・レジスタ１１０１はＰＬＤに論理プログラム・データを転送するときのみ論理プログラム・データを通過させる。電子制御装置別に固定的に与えられたハードウェアＩＤデータと、外部から遠隔伝送されるキーコード・データとが一致したときのみ論理プログラム・データを転送すること、ハードウェアＩＤデータを暗号化処理して論理プログラム・データを転送すること、論理プログラム・データを外付けシリアルＥＥＰＲＯＭを介して転送することを含む。【選択図】図１
2008123147.tif 000002
【特許請求の範囲】
【請求項１】
マイクロ・プロセッサと、このマイクロ・プロセッサによる制御対象の制御のための論理プログラムが書き込まれるプログラマブル・デバイスと、外部から前記マイクロ・プロセッサに遠隔伝送される前記論理プログラム・データを前記プログラマブル・デバイスに転送して書き込む書き込みロジックとを備えた電子制御装置に於いて、
前記書き込みロジックは、
前記論理プログラム・データの転送イネーブル（信号通過）／ディスエーブル（信号遮断）を制御可能にしたバッファ回路と、
前記プログラマブル・デバイスに前記論理プログラム・データを転送するときのみ、前記バッファ回路をディスエーブル状態からイネーブル状態に切り替えるイネーブル・レジスタとを備えたことを特徴とする電子制御装置のリモート書き換え方式。
【請求項２】
マイクロ・プロセッサと、このマイクロ・プロセッサによる制御対象の制御のための論理プログラム・データが書き込まれるプログラマブル・デバイスと、外部から前記マイクロ・プロセッサに遠隔伝送される前記論理プログラム・データを前記プログラマブル・デバイスに転送して書き込む書き込みロジックとを備えた電子制御装置に於いて、
前記書き込みロジックは、
前記論理プログラム・データの転送イネーブル（信号通過）／ディスエーブル（信号遮断）を制御可能にしたバッファ回路と、
電子制御装置別に固定的に与えられたハードウェアＩＤデータを予め格納したハードウェアＩＤレジスタと、
外部から前記マイクロ・プロセッサに遠隔伝送されるキーコード・データが書き込まれるキーコード・レジスタと、
前記プログラマブル・デバイスに前記論理プログラム・データを転送するとき、前記ハードウェアＩＤデータと前記キーコード・データが一致したときのみ、前記バッファ回路をディスエーブル状態からイネーブル状態に切り替えるコンパレータとを備えたことを特徴とする電子制御装置のリモート書き換え方式。
【請求項３】
マイクロ・プロセッサと、このマイクロ・プロセッサによる制御対象の制御のための論理プログラム・データが書き込まれるプログラマブル・デバイスと、外部から前記マイクロ・プロセッサに遠隔伝送される前記論理プログラム・データを前記プログラマブル・デバイスに転送して書き込む書き込みロジックとを備えた電子制御装置に於いて、
前記プログラマブル・デバイスは、電子制御装置別に固定的に与えられたハードウェアＩＤデータを予め格納したハードウェアＩＤレジスタと、前記プログラマブル・デバイスに書き込まれている現状の論理プログラム・データのレビジョンを格納したレビジョン・レジスタとを備え、
前記書き込みロジックは、
前記論理プログラム・データの転送イネーブル（信号通過）／ディスエーブル（信号遮断）を制御可能にしたバッファ回路と、
前記ハードウェアＩＤレジスタの内容と前記レビジョン表示レジスタの内容が前記マイクロ・プロセッサによって書き込まれる暗号化回路と、
前記マイクロ・プロセッサによって外部に通知された前記ハードウェアＩＤレジスタの内容と前記レビジョン表示レジスタの内容に対して、該外部でソフトウェア的に暗号化した暗号化データをキーコード・データとして書き込まれるキーコード・レジスタと、
前記プログラマブル・デバイスに前記論理プログラム・データを転送するとき、前記ハードウェアＩＤデータと前記キーコード・データが一致したときのみ、前記バッファ回路をディスエーブル状態からイネーブル状態に切り替えるコンパレータとを備えたことを特徴とする電子制御装置のリモート書き換え方式。
【請求項４】
前記書き込みロジックから出力された前記論理プログラム・データが書き込まれる外付けシリアルＥＥＰＲＯＭを備え、
前記プログラマブル・デバイスは、制御装置全体の自己リセット時に前記シリアルＥＥＰＲＯＭから前記論理プログラム・データを読み出す手段を備えたことを特徴とする請求項１〜３のいずれか１項に記載の電子制御装置のリモート書き換え方式。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイクロ・プロセッサによる制御対象の制御のための論理プログラム・データを、プログラマブル・デバイスに書き込んでおく電子制御装置に係り、特にそれらの論理プログラムを装置から離れた場所から書き換えることによって、装置のハードウェアの動作モードを切り替えたり、変更したりするためのリモート書き換え方式に関わる。
【背景技術】
【０００２】
現在、電子制御装置のハードウェア設計に於いては、その論理動作をハードウェア論理記述言語（ＨＤＬ：Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）で記述し、その論理式（プログラム）をＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）や、ＣＰＬＤ（Ｃｏｍｐｌｅｘ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）といったプログラマブル・デバイス（プログラム可能な論理素子）に書き込むことによって、所望のハードウェア機能を実現することが常套手段となっている。
【０００３】
従来、プリミティブな論理素子の組み合わせ接続によって実現されていた論理動作は、これらのプログラマブル・デバイスを使用することにより、配線を物理的に変更することなく、論理素子に書き込むデータを変更することによって、論理を変更をすることが可能となっている。
【０００４】
現在、ＦＰＧＡやＣＰＬＤといったプログラマブル・デバイスには、Ｃｏｎｆｉｇｕｒａｔｉｏｎ用論理プログラム・データの取り込み方法の差から、次のような３種類のタイプがある。
【０００５】
（１）ＰＬＤ内部に、Ｃｏｎｆｉｇｕｒａｔｉｏｎデータ格納メモリとしてＯｎｅＴｉｍｅＲＯＭ（１度だけの書き込みが可能なＲＯＭ）を内蔵するタイプ。
【０００６】
図５に示すように、内蔵ＲＯＭへの論理プログラム・データの書き込みは、装置の製造時に、専用のＲＯＭライタを用いて行う。このタイプは、制御基板に一旦実装すると、データの書き換えが不可能となり、論理プログラム・データの変更を行う場合には、デバイスそのものを交換しなければならない。但し、論理プログラム・データを取り込む時間が不要であり、立上げ時間が短いことが特長である。
【０００７】
（２）ＰＬＤ内部に、Ｃｏｎｆｉｇｕｒａｔｉｏｎデータ格納メモリとして、ＳＲＡＭ（ＳｔａｔｉｃＲＡＭ：電源が与えられている間だけ、データを保持するＲａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）を内蔵するタイプ。
【０００８】
図６に示すように、シリアルＩ／Ｆを介して、外付けのシリアルＲＯＭ（シリアルＩ／Ｆを持ったＯｎｅＴｉｍｅＲＯＭまたは、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃ  Ｅｒａｓａｂｌｅ  ＰＲＯＭ）などから自動的にデータをダウンロードしたり、マイクロ・プロセッサのシリアルＩ／Ｆを介してソフトウェア的に書き込みを行うこともできる。このタイプは、装置の製造時にＰＬＤ本体にデータを書き込んでおく必要がなく、ＩＳＰ（Ｉｎ  Ｓｙｓｔｅｍ  Ｐｒｏｇｒａｍｍｉｎｇ）が可能であるが、立上げ時には、外部からの論理プログラム・データの注入（ダウンロード）に時間が掛かるため、それなりの遅延時間を考慮する必要がある。
【０００９】
（３）ＰＬＤ内部に、Ｃｏｎｆｉｇｕｒａｔｉｏｎデータ格納メモリとして、ＦｌａｓｈＲＯＭ（書き換え可能な不揮発メモリ）を内蔵するタイプ。
【００１０】
図７に示すように、現状では、内部ＦｌａｓｈＲＯＭの書き換えのためのインタフェースとしては、ＪＴＡＧポート（ＩＥＥＥ１１４９．１標準）に則った信号を用いるものが一般的である。このタイプは、ＩＳＰ（Ｉｎ  Ｓｙｓｔｅｍ  Ｐｒｏｇｒａｍｍｉｎｇ）が可能であり、且つ、通常使用時の立上げ時は、データを外部から取り込む必要がなく、ＯｎｅＴｉｍｅＲＯＭ内蔵タイプと同様に短時間で動作するというメリットを持つ。
【００１１】
ここで、これらのプログラマブル・デバイス（以下ＰＬＤと記載）を用いた電子制御装置を鑑みると、一般的には、製品製造、出荷時にこのＰＬＤに書き込まれるデータは固定されていて、何らかの変更要因（要求）が発生しなければこれらを書き換える必要はないため、上述のどのタイプのＰＬＤを使用する場合についても、この論理プログラム・データを装置の運用現場で書き換えるための機構や、構造を備えることは少ない。
【００１２】
これらの装置が、稀にこのＰＬＤの論理プログラム・データの書き換えを必要とするケースとしては、その論理プログラム・データに何らかの問題があってそれが顕在化した場合や、装置の機能を追加したり、性能を向上させるためのバージョンアップを行う場合などが考えられる。現状では、これらの必要が生じた場合には、装置を一旦停止（電源オフ）して、取り外し、代替え品（予備品）などと交換した上で、現場または製造した工場等に於いて製品を分解してその論理プログラム・データの書き換え作業を実施するのが一般的である。
【００１３】
一方、近年では、先述の通りＰＬＤそのものがＩＳＰ（Ｉｎ  Ｓｙｓｔｅｍ  Ｐｒｏｇｒａｍｍｉｎｇ）機能を持ち、ＰＬＤを制御基板に実装（製造）した後に、基板の電源を投入して論理プログラム・データをＰＬＤに書き込んだり、ダウンロードしたりして論理動作を行うことができるものも増えて来ている。先述の（２）、（３）のタイプのＰＬＤがこれに相当する。この機構を用いることによって、電子制御装置に内蔵されたＰＬＤの論理プログラム・データを遠隔操作で書き換える（変更する）ことも可能となっている。
【００１４】
この機構を用いて、ＬＡＮ回線や通信網を介した遠隔操作でＰＬＤの論理プログラム・データを書き換える手法について提案されている（例えば、特許文献１、特許文献２参照）。
【特許文献１】特開２００５−２５８９９６号公報
【特許文献２】特開平９−２１８７８１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１５】
しかし、前記の特許文献１，２等によるＰＬＤのデータ書き換えを実施する場合には、その安全性や信頼性には問題点を含んでいた。
【００１６】
図８に、特許文献１の機構を利用して実現したＰＬＤの遠隔書き込みのための機構の例を示す。この例は、先述の（２）、（３）のタイプのＰＬＤを用いた制御装置をＬＡＮ回線を経由して遠隔地にあるコントロール・センタから書き換えるための仕組みである。
【００１７】
図８に於いて、１００は、ＰＬＤ（ＦＰＧＡなど）を搭載した、電子制御装置である。２００は遠隔地にあって当該の電子装置のＰＬＤの論理プログラムの書き換えを指令するコントロール・センタ、３００は書き換えデータを伝送するための通信網であり、ＬＡＮ回線やＩＰ網などがこれに相当する。
【００１８】
更に、同図に於いて、１１０が論理プログラム・データの書き換えの対象となるＰＬＤの全体、１２０がそのＰＬＤに制御される制御対象、１３０がこのＰＬＤの論理プログラム・データの書き換えの際に使用される書き込みロジック（論理回路）の全体、１４０は１００の制御装置に於けるデータ授受に使用される内部ローカル・バス、１５０は制御装置全体の制御と処理を司るＣＰＵ、１６０はメモリ回路、１７０は制御装置が３００の通信網との間でデータを送受信するためのＬＡＮ制御回路である。
【００１９】
更に、同図に於いて、１１１は書き換え対象となるＰＬＤ内部のＪＴＡＧインタフェース、１１２はＰＬＤのコンフィグレーション用データ格納用のＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）またはＦｌａｓｈＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、１１３はＰＬＤのコア・ロジック部分（コンフィグレーション用論理プログラム・データに従って、実際に制御対象を制御するための論理回路マトリックス）である。一方、１３１は、１３０の書き込みロジック機構が、１４０のローカル・バスを介して１５０のＣＰＵとデータの授受をするための「ＣＰＵインタフェース回路」、１３２は論理プログラム・データ書き込みのための制御信号のタイミング生成とデータ変換などを行うための「トランスファ（転送）制御回路」、１３３は、実際にＰＬＤとの間で書き込むべき論理プログラム・データを授受するための「ＪＴＡＧインタフェース回路」、１３４は論理プログラム・データ書き込みの際にＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ：ＣＰＵを介在せずに１６０のメモリ内のデータを１１０のＰＬＤに転送する場合に使用する方式）を使用する場合の「ＤＭＡ制御回路」である。
【００２０】
この機構では、２００のコントロール・センタから１００の制御装置内のＰＬＤ（１１０）の論理プログラム・データを書き換える必要が生じた場合、以下のＳＴＥＰにより書き込みを行う。
【００２１】
（ＳＴＥＰ１）２００と１００との間で予め定めているデータ授受手順（以下プロトコルと呼ぶ）に従って、コントロール・センタ側に用意している書き換え用の新論理プログラム・データを１６０のメモリに転送する。
【００２２】
（ＳＴＥＰ２）論理プログラム・データがメモリに格納されると、１５０のＣＰＵまたは、１３４のＤＭＡコントローラが動作して、１６０のメモリ内にある書き換えデータを１３１→１３２→１３３→１１１の回路を介して１１２のコンフィグレーション用データ格納メモリに転送（書き込み処理）する。
【００２３】
このデータ転送（書き込み処理）が終了した後、１００の制御装置全体に自己リセット（リブート処理）を発生させると、１１０のＰＬＤは１１２に格納された新しい論理プログラム・データに従って、新しい制御機能を実現するようになる。
【００２４】
さて、ここまでの機能は、特許文献１の機構と内容で実現できる。しかし、この機構だけでは、ＰＬＤの書き換え処理に対する安全機構が含まれていないために、コントロール・センタからの誤った指令によって、書き換え対象の制御装置に誤ったデータが書き込まれてしまい、制御不能に陥ったり、制御装置に搭載されたＳ／ＷやＦ／Ｗのバグの影響でＣＰＵが暴走したりすると、ＰＬＤのデータが書き換えられてしまい、装置が二度と立ち上がらなくなってしまうという状態に陥ったりする危険性があった。
【００２５】
つまり、制御装置におけるＰＬＤのデータの書き換えは非常に慎重に行われなければならず、この書き換え機構については、十分な保護対策、安全対策が必要となる。
【００２６】
本発明の目的は、電子制御装置におけるＰＬＤのデータの書き換えに、その保護対策、安全対策を講じることができるリモート書き換え方式を提供することにある。
【課題を解決するための手段】
【００２７】
前記の課題を解決するための本発明は、以下の構成を特徴とする。
【００２８】
（１）マイクロ・プロセッサと、このマイクロ・プロセッサによる制御対象の制御のための論理プログラムが書き込まれるプログラマブル・デバイスと、外部から前記マイクロ・プロセッサに遠隔伝送される前記論理プログラム・データを前記プログラマブル・デバイスに転送して書き込む書き込みロジックとを備えた電子制御装置に於いて、
前記書き込みロジックは、
前記論理プログラム・データの転送イネーブル（信号通過）／ディスエーブル（信号遮断）を制御可能にしたバッファ回路と、
前記プログラマブル・デバイスに前記論理プログラム・データを転送するときのみ、前記バッファ回路をディスエーブル状態からイネーブル状態に切り替えるイネーブル・レジスタとを備えたことを特徴とする。
【００２９】
（２）マイクロ・プロセッサと、このマイクロ・プロセッサによる制御対象の制御のための論理プログラム・データが書き込まれるプログラマブル・デバイスと、外部から前記マイクロ・プロセッサに遠隔伝送される前記論理プログラム・データを前記プログラマブル・デバイスに転送して書き込む書き込みロジックとを備えた電子制御装置に於いて、
前記書き込みロジックは、
前記論理プログラム・データの転送イネーブル（信号通過）／ディスエーブル（信号遮断）を制御可能にしたバッファ回路と、
電子制御装置別に固定的に与えられたハードウェアＩＤデータを予め格納したハードウェアＩＤレジスタと、
外部から前記マイクロ・プロセッサに遠隔伝送されるキーコード・データが書き込まれるキーコード・レジスタと、
前記プログラマブル・デバイスに前記論理プログラム・データを転送するとき、前記ハードウェアＩＤデータと前記キーコード・データが一致したときのみ、前記バッファ回路をディスエーブル状態からイネーブル状態に切り替えるコンパレータとを備えたことを特徴とする。
【００３０】
（３）マイクロ・プロセッサと、このマイクロ・プロセッサによる制御対象の制御のための論理プログラム・データが書き込まれるプログラマブル・デバイスと、外部から前記マイクロ・プロセッサに遠隔伝送される前記論理プログラム・データを前記プログラマブル・デバイスに転送して書き込む書き込みロジックとを備えた電子制御装置に於いて、
前記プログラマブル・デバイスは、電子制御装置別に固定的に与えられたハードウェアＩＤデータを予め格納したハードウェアＩＤレジスタと、前記プログラマブル・デバイスに書き込まれている現状の論理プログラム・データのレビジョンを格納したレビジョン・レジスタとを備え、
前記書き込みロジックは、
前記論理プログラム・データの転送イネーブル（信号通過）／ディスエーブル（信号遮断）を制御可能にしたバッファ回路と、
前記ハードウェアＩＤレジスタの内容と前記レビジョン表示レジスタの内容が前記マイクロ・プロセッサによって書き込まれる暗号化回路と、
前記マイクロ・プロセッサによって外部に通知された前記ハードウェアＩＤレジスタの内容と前記レビジョン表示レジスタの内容に対して、該外部でソフトウェア的に暗号化した暗号化データをキーコード・データとして書き込まれるキーコード・レジスタと、
前記プログラマブル・デバイスに前記論理プログラム・データを転送するとき、前記ハードウェアＩＤデータと前記キーコード・データが一致したときのみ、前記バッファ回路をディスエーブル状態からイネーブル状態に切り替えるコンパレータとを備えたことを特徴とする。
【００３１】
（４）前記書き込みロジックから出力された前記論理プログラム・データが書き込まれる外付けシリアルＥＥＰＲＯＭを備え、
前記プログラマブル・デバイスは、制御装置全体の自己リセット時に前記シリアルＥＥＰＲＯＭから前記論理プログラム・データを読み出す手段を備えたことを特徴とする。
【発明の効果】
【００３２】
以上のとおり、本発明によれば、プログラマブル・デバイスの論理プログラム・データを外部から書き換えに、プログラム実行（ソフトウェア）の暴走や、ノイズの影響、更には故意による人的な破壊工作などによって、装置がその機能を失って、二度と復旧できなくなる危険性を徹底的に排除し、制御装置内のＰＬＤのリモート書き換えを安全性高く実現できる。
【発明を実施するための最良の形態】
【００３３】
（実施形態１）
本実施形態では、基本的なデータ書き込みの処理ルート上に単純なバッファ回路を設け、これをイネーブル／ディスエーブル操作するためのイネーブル・レジスタを設けることを提案する。
【００３４】
図１に、このための機構例を示す。同図に於いて、１００〜１７０の各部は、図８の各部と同じものである。図１に於いて、１０００が本実施形態において安全対策のために書き込みロジック内に追加される保護回路の全体である。１００１は１３２の転送制御回路と、１３３のＪＴＡＧインタフェースの間のデータ・パス内に設けるバッファ回路であり、１００１ａのバッファ制御信号によって、イネーブル（信号通過）／ディスエーブル（信号遮断）の制御が行えるものである。また、１１０１は、１００１ａのバッファ制御信号を操作するための「イネーブル・レジスタ」であり、１５０のＣＰＵによるアクセス操作によって、バッファ制御信号のレベルを変化させることができる。
【００３５】
この図１の機構において、まず、初期化状態（リセット後）では１１０１のイネーブル・レジスタはクリアされており、１００１ａのバッファ制御信号は、「ディスエーブル（信号遮断）」状態になっているものとする。この状態で以下のＳＴＥＰにより書き込みを行う。
【００３６】
（ＳＴＥＰ１）２００と１００との間で予め定めているデータ授受プロトコルに従って、コントロール・センタ側に用意している書き換え用の新論理プログラム・データを１６０のメモリに転送する。
【００３７】
（ＳＴＥＰ２）ＣＰＵは、データ書き込みプロセスに先立って、１１０１のイネーブル・レジスタを操作し、１００１ａのバッファ制御信号を「イネーブル（信号通過）」方向に反転させる。
【００３８】
（ＳＴＥＰ３）論理プログラム・データが１６０のメモリに格納されると、１５０のＣＰＵ、または１３４のＤＭＡコントローラが動作して、１６０のメモリ内にある書き換えデータを１３１→１３２→１００１→１３３→１１１の回路を介して１１２のコンフィグレーション用データ格納メモリに転送（書き込み処理）する。
【００３９】
このデータ転送（書き込み処理）が終了した後、１００の制御装置全体に自己リセット（リブート処理）を発生させると、１１０のＰＬＤは１１２に格納された新しい論理プログラム・データに従って、新しい制御機能を実現するようになる。また、このリセット処理によって、１１０１のイネーブル・レジスタはクリアされ、１００１ａのバッファ制御信号は、「ディスエーブル（信号遮断）」状態に戻る。
【００４０】
この例の場合には、通常の制御装置の運用時には、１１０１のイネーブル・レジスタはクリアされていて、１００１ａのバッファ制御信号は、「ディスエーブル（信号遮断）」にあるため、ノイズ等の信号の乱れによって、この書き込みのためのＪＴＡＧインタフェースが誤動作して、１１２のコンフィグレーション用データの内容が書き換わってしまう恐れはない。また、ＣＰＵが正しく１１０１のイネーブル・レジスタを操作し、１００１ａのバッファ制御信号を「イネーブル（信号通過）」方向に反転させなければ、この１３２のコンフィグレーション用データの内容を書き換えることができないため、Ｓ／Ｗ実行が暴走して、書き換えの処理部を実行してしまったとしても、このコンフィグレーション用データの内容が書き換わってしまう恐れはない。
【００４１】
このような仕組みを実現するために、図１に示す実施形態１の機構を用いれば、ＰＬＤのデータの書き換え処理に関して、誤書き込みに対する安全性を高めることが出来る。
【００４２】
（実施形態２）
本実施形態では、実施形態１の機構について更に安全性を高めるための機構を提案する。
【００４３】
実施形態１の場合、一旦、Ｓ／Ｗが暴走して、図１の１１０１のイネーブル・レジスタを操作して、「イネーブル（信号通過）」方向に反転してしまうと、１０００の保護回路が機能せず、図８の従来回路と全く同じ構成になってしまうため、本機構の特長である誤操作やノイズによる誤書き込みのロック機能が失われてしまうことになる。
【００４４】
そこで、図１における１１０１のイネーブル・レジスタの機構を進化させ、単純なＣＰＵによるアクセスでは操作ができない仕組みとしたものが実施形態２である。
【００４５】
図２に、実施形態２の機構例を示す。同図に於いて、１００〜１７０の各部は、図１に於ける各部と同じものである。また、図２に於いて、１０００が、本実施形態２として、安全対策のために書き込みロジック内に追加される保護回路の全体である。１００１は１３２の転送制御回路と、１３３のＪＴＡＧインタフェースの間のデータ・パス内に設けるバッファ回路であり、１００１ａのバッファ制御信号によって、イネーブル（信号通過）／ディスエーブル（信号遮断）の制御が行えるものであることも図１と同様である。
【００４６】
図２に於いて、１２０１〜１２０３の各部が実施形態２の特徴であるが、１２０１は、書き換え対象となる制御装置別に与えられる、ユニークなデータ（例えば製造シリアル番号のような唯一の従属データ）を固定的に格納したレジスタ（ハードウェアＩＤレジスタ）である。このレジスタは不揮発メモリなどで実現し、製造時に書き込みを行った後は、書き換えが不可能なものとする。次に、１２０２は１５０のＣＰＵから１３１のＣＰＵインタフェースを介してアクセス（書き換え）可能なキーコード・レジスタであり、ＰＬＤの論理プログラム・データ書き換え処理内では、２００のコントロール・センタ側から送られてくるキーコード・データをＣＰＵが受領して、ここに書き込む。１２０３は、比較回路（コンパレータ）であり、１２０１に予め格納されているユニークなハードウェアＩＤと、１２０２のキーコード・レジスタにセットされた値を比較して、一致したか否かの結果（１００１ａ信号）を出力する。ここでは、２つの値が一致した場合に１００１ａ信号をイネーブル（信号通過）側にし、それ以外の場合は、ディスエーブル（信号遮断）側にするものとする。
【００４７】
ここで、装置がリセットされると、１２０２の「キーコード・レジスタ」はクリアされて、必ず、ハードウェアＩＤコードとは異なる値になるものとすると、１００１ａのバッファ制御信号（１２０３のコンパレータの出力）は、通常時（ＰＬＤ書き換え処理時以外）には「ディスエーブル（信号遮断）」状態になっていることになる。この状態で、ＰＬＤの論理プログラム・データ書き換えは、以下のＳＴＥＰにより行う。
【００４８】
（ＳＴＥＰ１）２００と１００との間で予め定めているデータ授受プロトコルに従って、コントロール・センタ側に用意している書き換え用の新論理プログラム・データを１６０のメモリに転送する。
【００４９】
（ＳＴＥＰ２）コントロール・センタ側では、ＰＬＤの論理プログラム・データの書き換えを行う対象の制御装置のハードウェアＩＤデータ（例えば製造シリアル番号のような唯一の従属データ）を予め控えて置き、ＰＬＤの論理プログラム・データ書き換えの際には、この当該装置のハードウェアＩＤデータを「キーコード・データ」情報として、当該装置のＣＰＵ（１５０）に引き渡す。
【００５０】
（ＳＴＥＰ３）１５０のＣＰＵは、２００のコントロール・センタ側から引き渡された「キーコード・データ」情報を、１２０２のキーコード・レジスタに書き込む。
【００５１】
この処理により、１２０３のコンパレータの２つの入力（１２０１に予め格納されているユニークなハードウェアＩＤと、１２０２のキーコード・レジスタにセットされた値）が一致することになり、その出力信号１００１ａ信号は、「イネーブル（信号通過）」方向を示し、１００１のバッファがイネーブルになる。
【００５２】
（ＳＴＥＰ４）ＰＬＤ書き換え用の論理プログラム・データはメモリに格納されると、１５０のＣＰＵまたは、１３４のＤＭＡコントローラが動作して、１６０のメモリ内にある書き換えデータを１３１→１３２→１００１→１３３→１１１の回路を介して１１２のコンフィグレーション用データ格納メモリに転送（書き込み処理）する。
【００５３】
このデータ転送（書き込み処理）が終了した後、１００の制御装置全体に自己リセット（リブート処理）を発生させると、１１０のＰＬＤは１１２に格納された新しい論理プログラム・データに従って、新しい制御機能を実現するようになる。また、このリセット処理によって、１２０２のキーコード・レジスタは初期化（クリア）され、１２０１と１２０２の値は不一致となるので、１００１ａのバッファ制御信号（１２０３のコンパレータの出力）は、「ディスエーブル（信号遮断）」状態に戻る。
【００５４】
この例の場合には、通常の制御装置の運用時には、１２０２のキーコード・レジスタは初期化（クリア）され、１２０１と１２０２の値は不一致で、１００１ａのバッファ制御信号（１２０３のコンパレータの出力）は、「ディ一ブル（信号遮断）」にあるため、ノイズ等の信号の乱れによって、この書き込みのためのＪＴＡＧインタフェースが誤動作して、１１２のコンフィグレーション用データの内容が書き換わってしまう恐れはない。また、ＰＬＤの論理プログラム・データの書き換えを指示する２００のコントロール・センタが、制御装置のハードウェアＩＤ情報を正しく認知していて．これを正しく装置のＣＰＵに伝達し、ＣＰＵがこれを正しくキーコード・レジスタにセットしない限り、１００１ａのバッファ制御信号は「イネーブル（信号通過）」方向にならないので、１１２のコンフィグレーション用データの内容を書き換えることができない。このため、Ｓ／Ｗ実行が暴走して、書き換えの処理部を実行してしまったとしても、このコンフィグレーション用データの内容が書き換わってしまう恐れは殆ど考えられない。
【００５５】
このような仕組みを実現するために、図２に示す実施形態２の機構を用いれば、ＰＬＤのデータの書き換え処理に関して、誤書き込みに対する安全性を更に高めることが出来る。
【００５６】
（実施形態３）
本実施形態は、実施形態２の機構について更に安全性を高めるための機構を提案する。
【００５７】
実施形態２の場合、Ｓ／Ｗの暴走によるＰＬＤデータの誤書き込みや、本来のターゲットでない装置（ハードウェアＩＤが異なる装置）に対する誤った書き込み動作等を防ぐためにかなり高い安全性を持つことが可能になっているが、本実施形態３では更に高い信頼性を持たせ、ＰＬＤの書き換えを行うべき制御装置に予め書き込まれている論理プログラム・データのレビジョン等まで一致しなければ、新しいデータへの書き換えを行わないような仕組みを提案する。
【００５８】
そのために、既にＰＬＤに書き込まれた対象ハードウェアＩＤや、論理プログラム・データのレビジョン等を元にＰＬＤの論理プログラム・データの書き換えの対象となる装置内で、これらの情報を元に暗号化した「暗号化データ」を生成すると共に、既にＰＬＤに書き込まれた対象ハードウェアＩＤや、論理プログラム・データのレビジョン等の情報を、書き換え処理の通信プロトコルに先立って、１００装置から２００のコントロール・センタに通知し、コントロール・センタからはこれらをＳ／Ｗ的に暗号化した「暗号化データ」をキーコード・データとして、書き込みデータと共に当該装置に伝達して処理を行うようにするのが実施形態３である。
【００５９】
図３に、実施形態３の機構例を示す。同図に於いて、１００〜１７０の各部は、図２に於ける各部と同じものである。また、図３に於いて、１０００が、本実施形態３として、安全対策のために書き込みロジック内に追加される保護回路の全体である。１００１は１３２の転送制御回路と、１３３のＪＴＡＧインタフェースの間のデータ・パス内に設けるバッファ回路であり、１００１ａのバッファ制御信号によって、イネーブル（信号通過）／ディスエーブル（信号遮断）の制御が行えるものであることは図２と同様である。
【００６０】
図３では、１３０１から１３０４の機構が実施形態３の特徴となっている。１３０１は、１５０のＣＰＵによって与えられたデータを暗号化するためのエンクリプション論理回路であり、その暗号化データは１３０２の「暗号化データ・レジスタ」に格納される。  １３０３は、書き換え対象となる制御装置の固体に対して与えられる、ユニークなデータ（例えば製造シリアル番号のような唯一の従属データ）を格納している「ハードウェアＩＤ・レジスタ」不揮発レジスタ、１３０４はＰＬＤに書き込まれている現状の論理プログラム・データのレビジョンを示す「レビジョン・レジスタ」であって、これらは、ＰＬＤのコンフィグレーション用論理プログラム・データの一部として作成してＰＬＤ内に機能を埋め込んでおくものとする。１３０３と１３０４は１４０のローカル・バスを経由して１５０のＣＰＵが読み出せるように構成する。
【００６１】
一方、１２０２と１２０３の各部は実施形態２（図２）と同じものであるが、１２０２は、１５０のＣＰＵから１３１のＣＰＵインタフェースを介してアクセス（書き換え）可能なレジスタであり、ＰＬＤの論理プログラム・データ書き換え処理内では、２００のコントロール・センタ側から送られてくるキーコード・データをＣＰＵが受領して、ここに書き込む。１２０３は、比較回路（コンパレータ）であり、１２０１に予め格納されているユニークなハードウェアＩＤと、１２０２のキーコード・レジスタにセットされた値を比較して、一致したか否かの結果（１００１ａ信号）を出力する。ここでは、２つの値が一致した場合に１００１ａ信号をイネーブル（信号通過）側にし、それ以外の場合は、ディスエーブル（信号遮断）側にする．
ここで、装置がリセットされると、１２０２の「キーコード・レジスタ」はクリアされて、必ず、１３０２の「暗号化データ・レジスタ」の出力とは異なる値になるものとすると、１００１ａのバッファ制御信号（１２０３のコンパレータの出力）は、通常時（ＰＬＤ書き換え処理時以外）には「ディスエーブル（信号遮断）」状態になっていることになる。この状態で、ＰＬＤの論理プログラム・データ書き換えは、以下のＳＴＥＰにより行う。
【００６２】
（ＳＴＥＰ１）１５０のＣＰＵは、１１０のＰＬＤ内の、１３０３部の「ハードウェアＩＤレジスタ」と１３０４部の「レビジョン・レジスタ」の内容を読み出す。
【００６３】
（ＳＴＥＰ２）１５０のＣＰＵは、ＳＴＥＰ１で読み込んだ１３０３部の「ハードウェアＩＤレジスタ」と１３０４部の「レビジョン・レジスタ」の内容を、１３０１部の「暗号化回路」に流し込む。この処理によって、暗号化回路の出力は、１３０２の「暗号化データ・レジスタ」に格納される。
【００６４】
（ＳＴＥＰ３）１５０のＣＰＵは、ＳＴＥＰ１で読み込んだ１３０３部の「ハードウェアＩＤレジスタ」と１３０４部の「レビジョン・レジスタ」の内容を、１７０のＬＡＮ制御部と３００の通信綱を介して２００のコントロール・センタ側に通知する。
【００６５】
（ＳＴＥＰ４）２００のデータ・センタでは、１００の当該装置との間で予め定めているデータ授受プロトコルに従って、コントロール・センタ側に用意している書き換え用の新論理プログラム・データを１６０のメモリに転送する。
【００６６】
（ＳＴＥＰ５）更に、２００のコントロール・センタ側では、ＳＴＥＰ３で受け取った１３０３部の「ハードウェアＩＤレジスタ」と１３０４部の「レビジョン・レジスタ」の内容をソフトウェア的に暗号化し、「暗号化データ」を生成する。
【００６７】
（ＳＴＥＰ６）２００のコントロール・センタはＳＴＥＰ５で生成した「暗号化データ」を「キーコード・データ」として１５０のＣＰＵに伝達する。
【００６８】
（ＳＴＥＰ７）１５０のＣＰＵは、２００のコントロール・センタ側から引き渡された「キーコード・データ」情報を、１２０２のキーコード・レジスタに書き込む。
【００６９】
この処理により、１２０３のコンパレータの２つの入力（１３０２に格納されている「暗号化データ」と、１２０２のキーコード・レジスタにセットされた値）が一致することになり、その出力信号１００１ａ信号は、「イネーブル（信号通過）」方向を示し、１００１のバッファがイネーブルになる。
【００７０】
（ＳＴＥＰ８）ＰＬＤ書き換え用の論理プログラム・データはメモリに格納されると、１５０のＣＰＵまたは、１３４のＤＭＡコントローラが動作して、１６０のメモリ内にある書き換えデータを１３１→１３２→１００１→１３３→１１１の回路を介して１１２のコンフィグレーション用データ格納メモリに転送（書き込み処理）する。
【００７１】
このデータ転送（書き込み処理）が終了した後、１００の制御装置全体に自己リセット（リブート処理）を発生させると、１１０のＰＬＤは１１２に格納された新しい論理プログラム・データに従って、新しい制御機能を実現するようになる。また、このリセット処理によって、１２０２のキーコード・レジスタは初期化（クリア）され、１２０１と１２０２の値は不一致となるので、１００１ａのバッファ制御信号（１２０３のコンパレータの出力）は、「ディスエーブル（信号遮断）」状態に戻る。
【００７２】
この例の場合には、通常の制御装置の運用時には、１２０２のキーコード・レジスタは初期化（クリア）され、１２０１と１２０２の値は不一致で、１００１ａのバッファ制御信号（１２０３のコンパレータの出力）は、「ディスエーブル（信号遮断）」にあるため、ノイズ等の信号の乱れによって、この書き込みのためのＪＴＡＧインタフェースが誤動作して、１１２のコンフィグレーション用データの内容が書き換わってしまう恐れはない。
【００７３】
また、ＰＬＤの論理プログラム・データの書き換えを指示する２００のコントロール・センタが、書き込むべき制御装置の１３０３部の「ハードウェアＩＤレジスタ」と１３０４部の「レビジョン・レジスタ」の内容を正しく受信して認知し、予め定められた暗号化方式でこれを正しく暗号化して、更にこれを「キーコード・データ」として当該装置のＣＰＵに伝達し、  ＣＰＵがこれを正しくキーコード・レジスタにセットされる一方、書き込みを行われる当該制御装置側でも、１３０３部の「ハードウェアＩＤレジスタ」と１３０４部の「レビジョン・レジスタ」の内容を正しく暗号化して、１３０２の「暗号化データ・レジスタ」に格納していない限り、１００１ａのバッファ制御信号は「イネーブル（信号通過）」方向にならないので、１１２のコンフィグレーション用データの内容を書き換えることができない。
【００７４】
このような、仕組みにより本実施形態では、非常に高い安全性を保持した、ＰＬＤ論理プログラム・データ書き換えの機構を提供することができる。
【００７５】
（実施形態４）
本実施形態４は、基本的な安全性確保のための保護方式は、実施形態３と同様であるが、これをシリアルＲＯＭに論理プログラム・データを格納しておき、ここからＰＬＤ内のコンフィグレーション用ＲＡＭにデータをダウンロードして動作するタイプのＰＬＤに適用する場合の構成例である。
【００７６】
図４に、実施形態４の構成例を示す。同図では、図３（実施形態３）の１１１部と１３３部のＪＴＡＧインタフェースが、１１４と１３５のシリアル・インタフェースに置き換えられており、このシリアル・インタフェース信号バス上に、１８０のシリアルＥＥＰＲＯＭが追加されている。
【００７７】
この機構の場合も、手順（プロトコル）の（ＳＴＥＰ１）〜（ＳＴＥＰ７）までは、実施形態３と全く同じであり、（ＳＴＥＰ８）のプロセス以降が次のように異なる。
【００７８】
（ＳＴＥＰ８）ＰＬＤ書き換え用の論理プログラム・データは１６０のメモリに格納されているが、１５０のＣＰＵまたは、１３４のＤＭＡコントローラが動作して、１６０のメモリ内にある書き換えデータを１３１→１３２→１００１→１３５→１８０の回路を介して１８０のシリアルＥＥＰＲＯＭ内に転送（書き込み処理）が行われる。
【００７９】
（ＳＴＥＰ９）上記の（ＳＴＥＰ８）のデータ転送（書き込み処理）が終了した後、１００の制御装置全体に自己リセット（リブート処理）を発生すると、１１０のＰＬＤは１１４のシリアル・インタフェースを介して、１８０のシリアルＥＥＰＲＯＭからデータを読み出し、１１２のコンフィグレーション用ＲＡＭにデータを転送し、このＲＡＭに転送された新しい論理プログラム・データに従って、新しい制御機能を実現するようになる。また、このリセット処理によって、１２０２のキーコード・レジスタは初期化（クリア）され、１２０１と１２０２の値は不一致となるので、１００１ａのバッファ制御信号（１２０３のコンパレータの出力）は、「ディスエーブル（信号遮断）」状態に戻る。
【００８０】
この例の場合も、通常の制御装置の運用時には、１２０２のキーコード・レジスタは初期化（クリア）され、１２０１と１２０２の値は不一致で、１００１ａのバッファ制御信号（１２０３のコンパレータの出力）は、「ディスエ一ブル（信号遮断）」にあるため、ノイズ等の信号の乱れによって、この書き込みのためのシリアル・インタフェースが誤動作して、１８０のシリアルＥＥＰＲＯＭの内容が書き換わってしまう恐れはない。
【００８１】
また、ＰＬＤの論理プログラム・データの書き換えを指示する２００のコントロール・センタが、書き込むべき制御装置の１３０３部の「ハードウェアＩＤレジスタ」と１３０４部の「レビジョン・レジスタ」の内容を正しく受信し認知し、予め定められた暗号化方式でこれを正しく暗号化して、更にこれを「キーコード・データ」として当該装置のＣＰＵに伝達し、  ＣＰＵがこれを正しくキーコード・レジスタにセットされる一方、書き込みを行われる当該の制御装置側でも、１３０３部の「ハードウェアＩＤレジスタ」と１３０４部の「レビジョン・レジスタ」の内容を正しく暗号化して、１３０２の「暗号化データ・レジスタ」に格納していない限リ、１００１ａのバッファ制御信号は「イネーブル（信号通過）」方向にならないので、１８０のシリアルＥＥＰＲＯＭの内容を書き換えることができない。
【００８２】
このような、仕組みにより本実施形態では、非常に高い安全性を保持した、ＰＬＤ論理プログラム・データ書き換えの機構を提供することができる。
【００８３】
なお、本実施形態の仕組みは実施形態１または実施形態２の構成に適用して同等の作用効果を得ることができる。
【図面の簡単な説明】
【００８４】
【図１】本発明の実施形態１を示すＰＬＤデータ遠隔書き換え機構の構成例。
【図２】本発明の実施形態２を示すＰＬＤデータ遠隔書き換え機構の構成例。
【図３】本発明の実施形態３を示すＰＬＤデータ遠隔書き換え機構の構成例。
【図４】本発明の実施形態４を示すＰＬＤデータ遠隔書き換え機構の構成例。
【図５】従来のＯｎｅＴｉｍｅＲＯＭ内蔵型ＰＬＤの構成。
【図６】従来のＣｏｎｆｉｇｕｒａｔｉｏｎＲＡＭ内臓型ＰＬＤの構成。
【図７】従来のＦｌａｓｈＲＯＭ内蔵型ＰＬＤの構成。
【図８】従来のＰＬＤデータ遠隔書き換え機構の構成例。
【符号の説明】
【００８５】
１００  電子制御装置
２００  コントロール・センタ
１１０  ＰＬＤ
１３０  書き込みロジック
１１１  ＪＴＡＧインタフェース
１１２  データ格納用ＲＡＭまたはＦｌａｓｈＲＯＭ
１１３  コア・ロジック部分
１３１  ＣＰＵインタフェース回路
１３２  トランスファ（転送）制御回路
１３３  ＪＴＡＧインタフェース回路
１３４  ＤＭＡ制御回路
１０００  保護回路
１００１  バッファ回路
１１０１  イネーブル・レジスタ
１２０１  ハードウェアＩＤレジスタ
１２０２  キーコード・レジスタ
１２０３  コンパレータ
１３０１  エンクリプション論理回路
１３０２  暗号化データ・レジスタ
１３０３  ハードウェアＩＤ・レジスタ
１３０４  レビジョン・レジスタ
１８０  シリアルＥＥＰＲＯＭ
【図１】
2008123147.tif 000003
【図２】
2008123147.tif 000004
【図３】
2008123147.tif 000005
【図４】
2008123147.tif 000006
【図５】
2008123147.tif 000007
【図６】
2008123147.tif 000008
【図７】
2008123147.tif 000009
【図８】
2008123147.tif 000010