(57)【要約】【課題】独立で動作する２つのマイコンに同じプログラムデータを書き込むとき、書込み側で書き込むプログラムの健全性を図り、書き込まれたプログラムの信頼性を向上させる。【解決手段】２つのマイコン３ａ，３ｂの内蔵ＲＯＭ４ａ，４ｂに同じプログラムデータを書き込むとき、２つのＣＰＵ５ａ，５ｂはそれぞれ外部記憶装置８ａ，８ｂに格納されたプログラムデータとＣＲＣを読み出し、読み出したプログラムデータに誤りがないかどうかを検証し、読み出したプログラムデータに誤りがないことを確認すると、読み出したプログラムデータをマイコン３ａ，３ｂの内蔵ＲＯＭ４ａ，４ｂに転送して書き込むことにより、マイコン３ａ，３ｂに誤りのない同じプログラムデータを転送して内蔵ＲＯＭ４ａ，４ｂに書き込む。【選択図】    図１
2011060186.tif 000002
【特許請求の範囲】
【請求項１】
２つのマイコンに内蔵した記憶媒体に同じプログラムデータを書き込むプログラム書込み装置であって、
２つのＣＰＵ及び２つの外部記憶装置を実装する記憶装置装着部を有し、
前記２つの外部記憶装置は、それぞれプログラムデータファイル及びＣＲＣデータファイルを有し、前記プログラムデータファイルには外部装置で作成された同じプログラムデータが格納され、前記ＣＲＣデータファイルには前記外部装置にて前記プログラムデータから算出された誤り検出符号であるＣＲＣが格納されて前記記憶装置装着部に実装され、
前記２つのＣＰＵの一方のＣＰＵは、一方の外部記憶装置に格納されたプログラムデータとＣＲＣを読み出し、読み出したプログラムデータに誤りがないかどうかを検証し、他方のＣＰＵは、他方の外部記憶装置に格納されたプログラムデータとＣＲＣを読み出し、読み出したプログラムデータに誤りがないかどうかを検証し、読み出したプログラムデータに誤りがないことを確認すると、前記一方のＣＰＵは、読み出したプログラムデータを前記２つのマイコンの一方のマイコンに内蔵した記憶媒体に転送して書き込み、前記他方のＣＰＵは、読み出したプログラムデータを前記２つのマイコンの他方のマイコンに内蔵した記憶媒体に転送して書き込み、
前記２つのＣＰＵは前記２つのマイコンに内蔵した記憶媒体に書き込んだプログラムデータを読み出し、読み出したプログラムデータが前記外部記憶装置から読み出したプログラムデータと一致しているかどうかを検証することを特徴とするプログラム書込み装置。
【請求項２】
前記２つのＣＰＵは、前記外部記憶装置から読み出したプログラムデータによりＣＲＣを算出し、算出したＣＲＣと外部記憶装置から読み出したＣＲＣを比較し、両方のＣＲＣが一致している場合、読み出したプログラムデータを前記２つのマイコンに転送し、両方のＣＲＣが一致していない場合は、前記２つのマイコンに対するプログラムデータの転送を禁止することを特徴とする請求項１記載のプログラム書込み装置。
【請求項３】
前記２つのＣＰＵは、前記外部記憶装置から読み出したプログラムデータにより算出したＣＲＣと外部記憶装置から読み出したＣＲＣが一致している場合、前記２つのＣＰＵはそれぞれ他系のＣＰＵで算出したＣＲＣを読み出し、読み出したＣＲＣと自系で算出したＣＲＣを比較し、両方のＣＲＣが一致している場合、読み出したプログラムデータを前記２つのマイコンに転送し、両方のＣＲＣが一致していない場合は、前記２つのマイコンに対するプログラムデータの転送を禁止することを特徴とする請求項１記載のプログラム書込み装置。
【請求項４】
前記２つのＣＰＵは、前記２つのマイコンに内蔵した記憶媒体に転送して書込みが終了すると、前記２つのマイコンに内蔵した記憶媒体に書き込んだプログラムデータを読み出し、読み出したプログラムデータが前記外部記憶装置から読み出したプログラムデータと一致しているかどうかを検証し、両方のプログラムデータが一致していない場合は書込み異常と判定して前記２つのマイコンに内蔵した記憶媒体に書き込んだプログラムデータを削除することを特徴とする請求項２又は３記載のプログラム書込み装置。
【請求項５】
前記２つのＣＰＵは、前記２つのマイコンに内蔵した記憶媒体に書き込んだプログラムデータが前記外部記憶装置から読み出したプログラムデータと一致している場合、前記マイコンから読み出したプログラムデータからＣＲＣを算出し、算出したＣＲＣと前記外部記憶装置から読み出したＣＲＣを比較し、両方のＣＲＣが一致していない場合は書込み異常と判定して前記２つのマイコンに内蔵した記憶媒体に書き込んだプログラムデータを削除することを特徴とする請求項４記載のプログラム書込み装置。
【請求項６】
前記マイコンから読み出したプログラムデータから算出したＣＲＣが一致している場合、前記２つのＣＰＵはそれぞれ他系のＣＰＵで前記マイコンに内蔵した記憶媒体に書き込んだプログラムデータを読み出し、読み出したプログラムデータが自系の前記外部記憶装置から読み出したプログラムデータと一致しているかどうかを検証し、両方のプログラムデータが一致していない場合は書込み異常と判定して前記２つのマイコンに内蔵した記憶媒体に書き込んだプログラムデータを削除することを特徴とする請求項５記載のプログラム書込み装置。
【請求項７】
前記２つのＣＰＵはそれぞれ他系のＣＰＵで前記マイコンに内蔵した記憶媒体に書き込んだプログラムデータを読み出し、読み出したプログラムデータが自系の前記外部記憶装置から読み出したプログラムデータと一致しているかどうかを検証した結果、両方のプログラムデータが一致している場合、他系のＣＰＵで前記マイコンに内蔵した記憶媒体に書き込んだプログラムデータからＣＲＣを算出し、算出したＣＲＣと前記自系の外部記憶装置から読み出したＣＲＣを比較し、両方のＣＲＣが一致していない場合は書込み異常と判定して前記２つのマイコンに内蔵した記憶媒体に書き込んだプログラムデータを削除することを特徴とする請求項６記載のプログラム書込み装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、例えば電子連動装置等の信号保安装置で使用する同一プログラムで動作する２つのマイクロコンピュータに対してファームウェアプログラムを書き込むプログラム書込み装置に関するものである。
【背景技術】
【０００２】
コンピュータ等の電子処理装置を使用した鉄道の信号保安装置では、フェールセーフ構成のために、図４に示すように、同一プログラムでそれぞれ独立して動作する２つのマイクロコンピュータ（以下、マイコンという）２２ａ，２２ｂを使用して安全性を確保している。この２つのマイコン２２ａとマイコン２２ｂにプログラムデータを書き込むとき、従来は、図４に示すように、プログラムデータ作成パソコン１１で同一であると判断されたプログラムデータが書き込まれた外付けの２つのＵＶＥＰＲＯＭ２５ａ，２５ｂを外部の書込み装置２４に実装し、書込み装置２４に実装されたＵＶＥＰＲＯＭ２５ａに格納されたプログラムデータを信号保安装置２１の一方のマイコン２２ａに対応するＵＶＥＥＰＲＯＭ２３ａに書き込み、ＵＶＥＰＲＯＭ２５ｂに格納されたプログラムデータを信号保安装置２１の他方のマイコン２２ｂに対応するＵＶＥＥＰＲＯＭ２３ｂに書き込んでいた。
【０００３】
また、特許文献１に示すように、近年増えてきたフラッシュＲＯＭ（ＦＲＯＭ）内蔵のマイコンに対しては、図５に示すように、プログラムデータ作成パソコン１１でプログラムデータが書き込まれた外部記憶装置３４を書込み装置３３に実装し、書込み装置３３のＣＰＵ３５は外部記憶装置３４に書き込まれたプログラムデータをシリアルインタフェース３６によりシリアル伝送して手動切替手段３７を介して信号保安装置３０の２つのマイコン３１ａ，３１ｂに内蔵したＦＲＯＭ３２ａ，３２ｂに個別で転送して各ＦＲＯＭ３２ａ，３２ｂに書き込む。このプログラムデータが書き込まれた２つのマイコン３１ａ，３１ｂはバス比較方式で常に相手を監視し、２つのマイコン３１ａ，３１ｂのＦＲＯＭ３２ａ，３２ｂに異なるプログラムが書き込まれて動作した場合には、安全側に制御をとって処理を停止させている。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
一般にマイコン３１ａ，３１ｂに内蔵のＦＲＯＭ３２ａ，３２ｂにプログラムを書き込む場合、書込み装置３３に実装した外部記憶装置３４に書き込まれたプログラムデータをＣＰＵ３５によりシリアル伝送して対象とするマイコン３１ａ，３１ｂに書込み、書き込んだプログラムデータをマイコン３１ａ，３１ｂで検証して確実に書き込まれたことを確認している。しかしながら書込み装置３３で２つのマイコン３１ａ，３１ｂにプログラムデータを書き込んだとき、２つのマイコン３１ａ，３１ｂに同じプログラムデータが書き込まれたかどうかを書込み装置３３側で確認する機能を設けていないため、高い信頼性が求められる信号保安装置で使用できるマイコン３１ａ，３１ｂは書込み対象のプログラムを互いに比較監視できるものに限定され、独立で動作する２つのマイコンを使用することはできなかった。
【０００５】
この発明は、このような問題を解消し、独立で動作する２つのマイコンに同じプログラムデータを書き込むとき、書込み側で２つのマイコンに同じプログラムデータが書き込まれたかどうかを判定して書き込むプログラムの健全性を図り、書き込まれたプログラムの信頼性を向上させることができるプログラム書込み装置を提供することを目的とするものである。
【課題を解決するための手段】
【０００６】
この発明のプログラム書込み装置は、２つのマイコンに内蔵した記憶媒体に同じプログラムデータを書き込むプログラム書込み装置であって、２つのＣＰＵ及び２つの外部記憶装置を実装する記憶装置装着部を有し、前記２つの外部記憶装置は、それぞれプログラムデータファイル及びＣＲＣデータファイルを有し、前記プログラムデータファイルには外部装置で作成された同じプログラムデータが格納され、前記ＣＲＣデータファイルには前記外部装置にて前記プログラムデータから算出された誤り検出符号であるＣＲＣが格納されて前記記憶装置装着部に実装され、前記２つのＣＰＵの一方のＣＰＵは、一方の外部記憶装置に格納されたプログラムデータとＣＲＣを読み出し、読み出したプログラムデータに誤りがないかどうかを検証し、他方のＣＰＵは、他方の外部記憶装置に格納されたプログラムデータとＣＲＣを読み出し、読み出したプログラムデータに誤りがないかどうかを検証し、読み出したプログラムデータに誤りがないことを確認すると、前記一方のＣＰＵは、読み出したプログラムデータを前記２つのマイコンの一方のマイコンに内蔵した記憶媒体に転送して書き込み、前記他方のＣＰＵは、読み出したプログラムデータを前記２つのマイコンの他方のマイコンに内蔵した記憶媒体に転送して書き込み、前記２つのＣＰＵは前記２つのマイコンに内蔵した記憶媒体に書き込んだプログラムデータを読み出し、読み出したプログラムデータが前記外部記憶装置から読み出したプログラムデータと一致しているかどうかを検証することを特徴とする。
【０００７】
前記２つのＣＰＵは、前記外部記憶装置から読み出したプログラムデータによりＣＲＣを算出し、算出したＣＲＣと外部記憶装置から読み出したＣＲＣを比較し、両方のＣＲＣが一致している場合、読み出したプログラムデータを前記２つのマイコンに転送し、両方のＣＲＣが一致していない場合は、前記２つのマイコンに対するプログラムデータの転送を禁止することを特徴とする。
【０００８】
また、前記２つのＣＰＵは、前記外部記憶装置から読み出したプログラムデータにより算出したＣＲＣと外部記憶装置から読み出したＣＲＣが一致している場合、前記２つのＣＰＵはそれぞれ他系のＣＰＵで算出したＣＲＣを読み出し、読み出したＣＲＣと自系で算出したＣＲＣを比較し、両方のＣＲＣが一致している場合、読み出したプログラムデータを前記２つのマイコンに転送し、両方のＣＲＣが一致していない場合は、前記２つのマイコンに対するプログラムデータの転送を禁止することを特徴とする。
【０００９】
さらに、前記２つのＣＰＵは、前記２つのマイコンに内蔵した記憶媒体に転送して書込みが終了すると、前記２つのマイコンに内蔵した記憶媒体に書き込んだプログラムデータを読み出し、読み出したプログラムデータが前記外部記憶装置から読み出したプログラムデータと一致しているかどうかを検証し、両方のプログラムデータが一致していない場合は前記２つのマイコンに内蔵した記憶媒体に書き込んだプログラムデータを削除することを特徴とする。
【００１０】
また、前記２つのＣＰＵは、前記２つのマイコンに内蔵した記憶媒体に書き込んだプログラムデータが前記外部記憶装置から読み出したプログラムデータと一致している場合、前記マイコンから読み出したプログラムデータからＣＲＣを算出し、算出したＣＲＣと前記外部記憶装置から読み出したＣＲＣを比較し、両方のＣＲＣが一致していない場合は書込み異常と判定して前記２つのマイコンに内蔵した記憶媒体に書き込んだプログラムデータを削除することを特徴とする。
【００１１】
また、前記マイコンから読み出したプログラムデータから算出したＣＲＣが一致している場合、前記２つのＣＰＵはそれぞれ他系のＣＰＵで前記マイコンに内蔵した記憶媒体に書き込んだプログラムデータを読み出し、読み出したプログラムデータが自系の前記外部記憶装置から読み出したプログラムデータと一致しているかどうかを検証し、両方のプログラムデータが一致していない場合は書込み異常と判定して前記２つのマイコンに内蔵した記憶媒体に書き込んだプログラムデータを削除することを特徴とする。
【００１２】
さらに、前記２つのＣＰＵはそれぞれ他系のＣＰＵで前記マイコンに内蔵した記憶媒体に書き込んだプログラムデータを読み出し、読み出したプログラムデータが自系の前記外部記憶装置から読み出したプログラムデータと一致しているかどうかを検証した結果、両方のプログラムデータが一致している場合、他系のＣＰＵで前記マイコンに内蔵した記憶媒体に書き込んだプログラムデータからＣＲＣを算出し、算出したＣＲＣと前記自系の外部記憶装置から読み出したＣＲＣを比較し、両方のＣＲＣが一致していない場合は書込み異常と判定して前記２つのマイコンに内蔵した記憶媒体に書き込んだプログラムデータを削除することを特徴とする。
【発明の効果】
【００１３】
この発明は、２つのマイコンに内蔵した記憶媒体に同じプログラムデータを書き込むとき、２つのＣＰＵはそれぞれ外部記憶装置に格納されたプログラムデータとＣＲＣを読み出し、読み出したプログラムデータに誤りがないかどうかを検証し、読み出したプログラムデータに誤りがないことを確認すると、読み出したプログラムデータを２つのマイコンに内蔵した記憶媒体に転送して書き込むことにより、２つのマイコンに誤りのない同じプログラムデータを転送して内蔵した記憶媒体に書き込むことができる。
【００１４】
また、書き込んだプログラムデータを読み出し、読み出したプログラムデータが前記外部記憶装置から読み出したプログラムデータと一致しているかどうかを検証することにより、２つのマイコンに書き込んだプログラムデータに誤りがあるかどうかを確認することができる。
【００１５】
また、２つのＣＰＵは、外部記憶装置から読み出したプログラムデータによりＣＲＣを算出し、算出したＣＲＣと外部記憶装置から読み出したＣＲＣとを比較して両方のＣＲＣが一致しているかどうかを確認することにより、読み出したプログラムデータに誤りがないことを確認することができる。
【００１６】
さらに、２つのＣＰＵで読み出したプログラムデータにより算出したＣＲＣと外部記憶装置から読み出したＣＲＣとを比較して両方のＣＲＣが一致している場合、他系のＣＰＵで算出したＣＲＣを読み出し、読み出したＣＲＣと自系で算出したＣＲＣを比較して両方のＣＲＣが一致しているかどうかを確認することにより、外部記憶装置に同じプログラムデータが格納されていることを確認することができる。
【００１７】
また、２つのＣＰＵは、２つのマイコンに内蔵した記憶媒体に書き込んだプログラムデータを読み出し、読み出したプログラムデータが外部記憶装置から読み出したプログラムデータと一致しているかどうかを検証することにより、プログラムデータをマイコンに内蔵した記憶媒体に誤りなく転送したかどうかを確認することができる。
【００１８】
また、２つのＣＰＵは、２つのマイコンに内蔵した記憶媒体に書き込んだプログラムデータが外部記憶装置から読み出したプログラムデータと一致しているかどうかを検証した結果、両方のプログラムデータが一致している場合、マイコンから読み出したプログラムデータからＣＲＣを算出し、算出したＣＲＣと外部記憶装置から読み出したＣＲＣを比較することにより、マイコンに内蔵した記憶媒体に書き込んだプログラムデータに誤りがないかどうかを確認することができる。
【００１９】
さらに、マイコンから読み出したプログラムデータから算出したＣＲＣと外部記憶装置から読み出したＣＲＣを比較して両方のＣＲＣが一致している場合、２つのＣＰＵはそれぞれ他系のＣＰＵでマイコンに内蔵した記憶媒体に書き込んだプログラムデータを読み出し、読み出したプログラムデータが自系の外部記憶装置から読み出したプログラムデータと一致しているかどうかを検証することにより、２つのマイコンに内蔵した記憶媒体に同じプログラムデータを書き込んだかどうかを確認することができる。
【００２０】
また、２つのＣＰＵはそれぞれ他系のＣＰＵでマイコンに内蔵した記憶媒体に書き込んだプログラムデータを読み出し、読み出したプログラムデータが自系の外部記憶装置から読み出したプログラムデータと一致しているかどうかを検証した結果、両方のプログラムデータが一致している場合、他系のＣＰＵでマイコンに内蔵した記憶媒体に書き込んだプログラムデータからＣＲＣを算出し、算出したＣＲＣと自系の外部記憶装置から読み出したＣＲＣを比較することにより、同一のプログラムデータが２つのマイコンに内蔵する記憶媒体に正常に書き込まれたことを確認することができる。
【図面の簡単な説明】
【００２１】
【図１】この発明の書込み装置の構成を示すブロック図である。
【図２】書込み処理を示すフローチャートである。
【図３】書き込んだプログラムデータの検証処理を示すフローチャートである。
【図４】従来の書込み装置の構成を示すフローチャートである。
【図５】従来の他の書込み装置の構成を示すフローチャートである。
【発明を実施するための形態】
【００２２】
図１は、この発明の書込み装置の構成を示すブロック図である。書込み装置１は、例えば鉄道の信号保安装置２に設けられ、独立で動作する２つのマイコン３ａとマイコン３ｂに内蔵したＦＲＯＭ４ａ，４ｂに同じプログラムデータを書き込むものであり、２つのマイコン３ａとマイコン３ｂに対応した２つのＣＰＵ５ａとＣＰＵ５ｂと、ＣＰＵ５ａに接続されたＲＡＭ６ａとＣＰＵ５ｂに接続されたＲＡＭ６ｂと、ＣＰＵ５ａに接続されたシリアルインタフェース７ａとＣＰＵ５ｂに接続されたシリアルインタフェース７ｂ及び２つの外部記憶装置８ａ，８ｂを実装する記憶装置コネクタを有する。
【００２３】
この書込み装置１に実装する外部記憶装置８ａ，８ｂは、それぞれプログラムデータファイル９ａ，９ｂ及びＣＲＣデータファイル１０ａ，１０ｂを有する。プログラムデータファイル９ａ，９ｂにはプログラムデータ作成パソコン１１で作成された同じプログラムデータが格納され、ＣＲＣデータファイル１０ａ，１０ｂにはプログラムデータ作成パソコン１１にて算出された誤り検出符号であるＣＲＣが格納されている。
【００２４】
書込み装置１のＣＰＵ５ａは記憶装置コネクタに実装された外部記憶装置８ａに格納されたプログラムデータとＣＲＣを読み出し、読み出したプログラムデータに誤りがないかどうかを検証し、ＣＰＵ５ｂは記憶装置コネクタに実装された外部記憶装置８ｂに格納されたプログラムデータとＣＲＣを読み出し、読み出したプログラムデータに誤りがないかどうかを検証する。ＣＰＵ５ａは読み出したプログラムデータに誤りがないことを確認すると、シリアルインタフェース７ａを介して信号保安装置２のマイコン３ａの内蔵ＦＲＯＭ４ａにプログラムデータを書込み、ＣＰＵ５ｂは読み出したプログラムデータに誤りがないことを確認すると、シリアルインタフェース７ｂを介して信号保安装置２のマイコン３ｂの内蔵ＦＲＯＭ４ｂにプログラムデータを書込む。ＣＰＵ５ａとＣＰＵ５ｂはプログラムデータをマイコン３ａ，３ｂの内蔵ＦＲＯＭ４ａ，４ｂに書き込むと、内蔵ＦＲＯＭ４ａ，４ｂに書き込んだプログラムデータに誤りがないかどうかを検証する。
【００２５】
この書込み装置１で信号保安装置２の２つのマイコン３ａ，３ｂに設けた内蔵ＦＲＯＭ４ａ，４ｂにプログラムデータを書き込むときの処理を図２のフローチャートを参照して説明する。
【００２６】
書込み装置１のＣＰＵ５ａは外部記憶装置８ａのプログラムデータファイル９ａに格納されたプログラムデータを読み出してＲＡＭ６ａに展開して記憶し、ＣＰＵ５ｂは外部記憶装置８ｂのプログラムデータファイル９ｂに格納されたプログラムデータを読み出してＲＡＭ６ｂに展開して記憶する（ステップＳ１）。次に、ＣＰＵ５ａはＲＡＭ６ａに記憶したプログラムデータからＣＲＣを算出し、ＣＰＵ５ｂはＲＡＭ６ｂに記憶したプログラムデータからＣＲＣを算出する（ステップＳ２）。
【００２７】
その後、ＣＰＵ５ａは外部記憶装置８ａのＣＲＣデータファイル１０ａに格納されたＣＲＣを読み出し、算出したＣＲＣと読み出したＣＲＣを比較して両方のＣＲＣが一致しているかどうかを確認し、ＣＰＵ５ｂも外部記憶装置８ｂのＣＲＣデータファイル１０ｂに格納されたＣＲＣを読み出し、算出したＣＲＣと読み出したＣＲＣを比較して両方のＣＲＣが一致しているかどうかを確認する（ステップＳ３、Ｓ４）。この確認の結果、ＣＰＵ５ａとＣＰＵ５ｂで算出したＣＲＣと外部記憶装置８ａ，８ｂのＣＲＣデータファイル１０ａ，１０ｂに格納されたＣＲＣのいずれか一方又は両方が一致していない場合、例えばＣＰＵ５ｂで算出したＣＲＣと外部記憶装置８ｂのＣＲＣデータファイル１０ｂに格納されたＣＲＣが一致していないことを確認すると、そのことを示す信号をＣＰＵ５ａに送り、マイコン３ａ，３ｂに対するプログラムデータの書込みを禁止する（ステップＳ４，Ｓ１０）。
【００２８】
また、ＣＰＵ５ａとＣＰＵ５ｂで生成したＣＲＣと外部記憶装置８ａ，８ｂのＣＲＣデータファイル１０ａ，１０ｂに格納されたＣＲＣが一致している場合、ＣＰＵ５ａはＣＰＵ５ｂで算出したＣＲＣを読込み、読み込んだＣＲＣとＣＰＵ５ａで算出したＣＲＣを比較して両方のＣＲＣが一致しているかどうかを確認し、ＣＰＵ５ｂもＣＰＵ５ａで算出したＣＲＣを読込み、読み込んだＣＲＣとＣＰＵ５ｂで算出したＣＲＣを比較して両方のＣＲＣが一致しているかどうかを確認する（ステップＳ５，Ｓ６）。この確認の結果、ＣＰＵ５ａで算出したＣＲＣとＣＰＵ５ｂで算出したＣＲＣが一致していない場合、ＣＰＵ５ａとＣＰＵ５ｂはマイコン３ａ，３ｂに対するプログラムデータの書込みを禁止する（ステップＳ７，Ｓ１０）。
【００２９】
また、ＣＰＵ５ａで算出したＣＲＣとＣＰＵ５ｂで算出したＣＲＣが一致している場合、ＣＰＵ５ａはＲＡＭ６ａに記憶したプログラムデータをシリアルインタフェース７ａからマイコン３ａにシリアル転送して内蔵ＲＯＭ４ａに展開して書込み、ＣＰＵ５ｂはＲＡＭ６ｂに記憶したプログラムデータをシリアルインタフェース７ｂからマイコン３ｂにシリアル転送して内蔵ＲＯＭ４ｂに展開して書込む（ステップＳ７，Ｓ８）。この内蔵ＲＯＭ４ａ，４ｂに対するプログラムデータの書込みが完了すると、プログラムデータの書込み処理を終了する（ステップＳ９）。
【００３０】
一方、ＣＰＵ５ａとＣＰＵ５ｂはマイコン３ａ，３ｂに対するプログラムデータの書込みを禁止すると、外部記憶装置８ａ，８ｂからのプログラムデータの読み出しと、ＲＡＭ６ａ，６ｂに展開して記憶したプログラムデータに誤りがないかどうかの検証を再度行い（ステップＳ１１，Ｓ１〜Ｓ１０）、所定回数繰り返してもプログラムデータの書込みの禁止が続くと書込み処理を終了する（ステップＳ１１）。
【００３１】
このようにしてプログラムデータ作成パソコン１１で作成されて外部記憶装置８ａ，８ｂのプログラムデータファイル９ａ，９ｂに書き込まれたプログラムデータや、ＣＰＵ５ａ，５ｂで外部記憶装置８ａ，８ｂのプログラムデータファイル９ａ，９ｂから読み出してＲＡＭ６ａ，６ｂに展開して記憶したプログラムデータに誤りがないかどうかに検証することにより、マイコン４ａ，４ｂに誤りのない同じプログラムデータを転送して内蔵ＲＯＭ４ａ，４ｂに書き込むことができる。
【００３２】
次に、ＣＰＵ５ａでマイコン３ａの内蔵ＲＯＭ４ａに書き込んだプログラムデータとＣＰＵ５ｂでマイコン３ｂの内蔵ＲＯＭ４ｂに書き込んだプログラムデータに誤りがないかどうかを検証する処理を図３のフローチャートを参照して説明する。
【００３３】
ＣＰＵ５ａとＣＰＵ５ｂはマイコン３ａ，３ｂの内蔵ＲＯＭ４ａ，４ｂに対するプログラムデータの書込みが終了すると、ＣＰＵ５ａは内蔵ＲＯＭ４ａに書き込んだプログラムデータを読み出し、ＣＰＵ５ｂは内蔵ＲＯＭ４ｂに書き込んだプログラムデータを読み出す（ステップＳ２１）。ＣＰＵ５ａは読み出したプログラムデータがＲＡＭ６ａに記憶しているプログラムデータと一致しているかどうかを検証し、ＣＰＵ５ｂは読み出したプログラムデータがＲＡＭ６ｂに記憶しているプログラムデータと一致しているかどうかを検証する（ステップＳ２２）。この検証の結果、ＣＰＵ５ａとＣＰＵ５ｂで読み出したプログラムデータのいずれか一方又は両方がＲＡＭ６ａ，６ｂに記憶しているプログラムデータと一致していない場合は書込み異常と判定して、マイコン３ａ，３ｂの内蔵ＦＲＯＭ４ａ，４ｂに書き込んだプログラムデータを削除する（ステップＳ２３，Ｓ３４）。
【００３４】
また、ＣＰＵ５ａとＣＰＵ５ｂで読み出したプログラムデータがＲＡＭ６ａ，６ｂに記憶しているプログラムデータと一致している場合、ＣＰＵ５ａは読み出したプログラムデータからＣＲＣを算出し、ＣＰＵ５ｂは読み出したプログラムデータからＣＲＣを算出する（ステップＳ２４）。そしてＣＰＵ５ａは算出したＣＲＣと外部記憶装置８ａのＣＲＣデータファイル１０ａに記憶しているＣＲＣと比較し、両方のＣＲＣが一致しているかどうかを確認し、ＣＰＵ５ｂは算出したＣＲＣと外部記憶装置８ｂのＣＲＣデータファイル１０ｂに記憶しているＣＲＣと比較し、両方のＣＲＣが一致しているかどうかを確認する（ステップＳ２５）。この確認の結果、ＣＰＵ５ａとＣＰＵ５ｂで算出したＣＲＣのいずれか一方又は両方が外部記憶装置８ａ，８ｂに記憶したＣＲＣと一致していない場合は書込み異常と判定して、マイコン３ａ，３ｂの内蔵ＦＲＯＭ４ａ，４ｂに書き込んだプログラムデータを削除する（ステップＳ２６，Ｓ３４）。
【００３５】
また、ＣＰＵ５ａとＣＰＵ５ｂで算出したＣＲＣが外部記憶装置８ａ，８ｂに記憶したＣＲＣと一致している場合、ＣＰＵ５ａは他系のマイコン３ｂの内蔵ＲＯＭ４ｂに書き込まれたプログラムデータを読み出し、ＣＰＵ５ｂは他系のマイコン３ａの内蔵ＲＯＭ４ａに書き込まれたプログラムデータを読み出す（ステップＳ２７）。そしてＣＰＵ５ａは読み出したプログラムデータがＲＡＭ６ａに記憶しているプログラムデータと一致しているかどうかを検証し、ＣＰＵ５ｂは読み出したプログラムデータがＲＡＭ６ｂに記憶しているプログラムデータと一致しているかどうかを検証する（ステップＳ２８）。この検証の結果、ＣＰＵ５ａとＣＰＵ５ｂで読み出した他系のプログラムデータのいずれか一方又は両方が自系に記憶したプログラムデータと一致していない場合は書込み異常と判定して、マイコン３ａ，３ｂの内蔵ＦＲＯＭ４ａ，４ｂに書き込んだプログラムデータを削除する（ステップＳ２９，Ｓ３４）。
【００３６】
また、ＣＰＵ５ａとＣＰＵ５ｂで読み出した他系のプログラムデータが自系に記憶したプログラムデータと一致している場合、ＣＰＵ５ａは読み出した他系のプログラムデータからＣＲＣを算出し、ＣＰＵ５ｂは読み出した他系のプログラムデータからＣＲＣを算出する（ステップＳ３０）。そしてＣＰＵ５ａは算出したＣＲＣと外部記憶装置８ａのＣＲＣデータファイル１０ａに記憶しているＣＲＣと比較し、両方のＣＲＣが一致しているかどうかを確認し、ＣＰＵ５ｂは算出したＣＲＣと外部記憶装置８ｂのＣＲＣデータファイル１０ｂに記憶しているＣＲＣと比較し、両方のＣＲＣが一致しているかどうかを確認する（ステップＳ３１）。この確認の結果、ＣＰＵ５ａとＣＰＵ５ｂで算出したＣＲＣのいずれか一方又は両方が外部記憶装置８ａ，８ｂに記憶したＣＲＣと一致していない場合は書込み異常と判定して書込み処理に戻る（ステップＳ３２，Ｓ３４）。また、ＣＰＵ５ａとＣＰＵ５ｂで算出したＣＲＣが外部記憶装置８ａ，８ｂに記憶したＣＲＣと一致している場合はマイコン３ａ，３ｂの内蔵ＲＯＭ４ａ，４ｂに対するプログラムデータの書込みは正常と判定して、書き込んだプログラムデータの検証処理を終了する（ステップＳ３３）。
【００３７】
このようにしてＣＰＵ５ａとＣＰＵ５ｂでマイコン３ａ，３ｂの内蔵ＲＯＭ４ａ，４ｂにプログラムデータを書き込んだときに、同一のプログラムデータが内蔵ＲＯＭ４ａ，４ｂに正常に書き込まれたことを確認することができ、独立で動作する２つのマイコン３ａ，３ｂに同じプログラムデータを確実に書き込むことができる。また、従来の相互監視機能を有するマイコンに対しても手動切替手段を使用しないで効率良くプログラムデータを書き込むことができる。
【符号の説明】
【００３８】
１；書込み装置、２；信号保安装置、３；マイコン、４；内蔵ＦＲＯＭ、
５；ＣＰＵ、６；ＲＡＭ、７；シリアルインタフェース、８；外部記憶装置、
１０；プログラムデータファイル、１０；ＣＲＣデータファイル、
１１；プログラムデータ作成パソコン。
【先行技術文献】
【特許文献】
【００３９】
【特許文献１】特開２００１−３０１６１９号公報
【図１】
2011060186.tif 000003
【図２】
2011060186.tif 000004
【図３】
2011060186.tif 000005
【図４】
2011060186.tif 000006
【図５】
2011060186.tif 000007