(57)【要約】【課題】非同期式通信に使用されるものにおいて、発振回路の動作を監視する機能を備えた通信用スレーブを提供する。【解決手段】通信用スレーブの通信回路２２は、サイクルカウンタ３３により、マスタが周期的に送信する同期信号の受信間隔を発振回路が出力するメインクロックに基づくカウント動作により計測する。発振異常監視タスクは、モニタ用サイクル数レジスタ５０に格納されているサイクルカウンタ３３の計測値を読み出して、当該計測値が正常範囲を超えると発振回路の異常を検知する。【選択図】図２
2014157554.tif 000002
【特許請求の範囲】
【請求項１】
通信バスを介して接続されるマスタとの間で非同期式通信を行う通信用スレーブ（２１）であって、
システム上の重要度が最高に設定されていると共に、実行間隔が一定となる最重要タスクを含む、複数のタスクを時分割並行的に実施可能であるＣＰＵ（２Ａ）と、
このＣＰＵが前記最重要タスクを実行している期間に、タスク実行信号を出力する信号出力部（７）と、
前記最重要タスクのプログラムが格納されているメモリ領域（３）の開始アドレス，終了アドレスの設定値と、前記ＣＰＵが実行中のアドレスとを比較することで、前記最重要タスクのプログラム領域であるか否かを判定するプログラム領域判定部（１３）と、
前記最重要タスクのデータが格納されているメモリ領域の開始アドレス，終了アドレス
の設定値と、前記ＣＰＵが実行中のアドレスとを比較することで、前記最重要タスクのデータ領域であるか否かを判定するデータ領域判定部（４５）と、
前記プログラム領域判定部による判定結果と前記タスク実行信号の出力状態とを参照して、双方が不一致である場合に暴走を検知し、また、前記データ領域判定部による判定結果と前記タスク実行信号の出力状態とを参照して、双方が不一致である場合に暴走を検知する暴走検知部（４２）と、
前記ＣＰＵにクロック信号を供給する発振回路（２４）と、
前記マスタが周期的に送信する同期信号の受信間隔を、前記クロック信号に基づくカウント動作により計測する計測カウンタ（３３）と、
前記同期信号を受信したタイミングで、前記計測用カウンタの計測値が格納されるモニタ用レジスタ（５０）とを備え、
前記複数のタスクの何れか１つ（発振異常監視タスクと称す）は、前記モニタ用レジスタに格納された計測値を読み出して、当該計測値が前記正常範囲を超えると、前記発振回路の異常を検知することを特徴とする通信用スレーブ。
【請求項２】
前記同期信号を受信してから前記マスタとの通信を開始するまでの待機時間を計時するための待機時間カウンタを備え、
前記計測カウンタに、前記待機時間カウンタを使用することを特徴とする請求項１記載の通信用スレーブ。
【請求項３】
前記同期信号を受信すると検出フラグがセットされるフラグセット部（３９，５１，５２）を備え、
前記発振異常監視タスクは、前記検出フラグがセットされると、前記モニタ用レジスタに格納された計測値を読み出すことを特徴とする請求項１又は２記載の通信用スレーブ。
【請求項４】
前記同期信号の受信伝達経路を遮断することで、前記発振異常監視タスクによる前記発振回路の異常検知処理を禁止する禁止手段（３６，３７）を備えたことを特徴とする請求項１から３の何れか一項に記載の通信用スレーブ。
【請求項５】
前記発振異常監視タスクは、前記計測値が前記正常範囲を超えると異常検知カウンタをインクリメントし、
前記計測値が前記正常範囲内であれば、前記異常検知カウンタをクリアして、
前記異常検知カウンタのカウンタ値が所定値に達すると、前記発振回路の異常を検知することを特徴とする請求項１から４の何れか一項に記載の通信用スレーブ。
【請求項６】
前記発振異常監視タスクは、前記計測値が前記正常範囲を超えると異常検知カウンタをインクリメントし、
前記計測値が前記正常範囲内であれば、前記異常検知カウンタをデクリメントして、
前記異常検知カウンタのカウンタ値が所定値に達すると、前記発振回路の異常を検知することを特徴とする請求項１から４の何れか一項に記載の通信用スレーブ。
【請求項７】
前記発振異常監視タスクは、前記マスタにより送信される周期設定コマンドを受信すると、前記コマンドに含まれている同期信号の出力周期データに基づいて前記正常範囲を設定することを特徴とする請求項１から６の何れか一項に記載の通信用スレーブ。
【請求項８】
前記発振異常監視タスクは、前記モニタ用レジスタに格納された計測値を最初に読み出した値に基づいて、前記正常範囲を設定することを特徴とする請求項１から６の何れか一項に記載の通信用スレーブ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信バスを介して接続されるマスタとの間で非同期式通信を行う通信用スレーブに関する。
【背景技術】
【０００２】
ＣＰＵ，或いはマイクロコンピュータの暴走対策として用いられるウォッチドッグタイマについては、プログラムによるクリア間隔に比較してタイムアップ時間が長めに設定されるのが一般的である。そのため、実際にＣＰＵが暴走した場合、その暴走が検知されるまでの時間が長くなり、マイクロコンピュータを使用したシステムに及ぶ影響が大きくなるおそれがある。近年は、システムの安全性の向上を図るため、異常を短時間で検知できる機能が要求されている。
例えば特許文献１には、複数のタスクを時分割並行的に実施可能なマイクロコンピュータシステムにおいて、周期的に実行される最重要タスクにウォッチドッグタイマに類似した機能を持たせることで、暴走を短時間に検知する技術が開示されている。
【０００３】
ところで、マスタ−スレーブ間で通信を行うシステムでは、通信のタイミングを管理するためクロック信号の周波数が安定していることが必要となる。例えば、特許文献２には、同期式通信に使用されるクロック供給装置について、入力クロックの周波数と出力クロックの周波数との差を検出して異常を監視する構成が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第４８９３４２７公報
【特許文献２】特開平６−１１２９２９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、例えばＤＳＩ（Distributed System Interface；登録商標）やＰＳＩ５（Peripheral Sensor Interface 5）等の非同期式通信では、各スレーブが個別に備える発振回路の動作が安定していることが必要になる。一般に、スレーブには安価なＣＲ発振回路等が搭載されることが多く、その発振動作を監視することが望ましいが、特許文献１には、ＣＰＵ等に供給されるクロック信号の発振周波数が適正な範囲にあるか否かを監視する機能はない。
【０００６】
本発明は上記事情に鑑みてなされたものであり、その目的は、非同期式通信に使用されるものにおいて、発振回路の動作を監視する機能を備えた通信用スレーブを提供することにある。
【課題を解決するための手段】
【０００７】
請求項１記載の通信用スレーブによれば、暴走検知部は、プログラム領域判定部による判定結果とタスク実行信号の出力状態とを参照して、双方が不一致である場合に暴走を検知し、また、データ領域判定部による判定結果とタスク実行信号の出力状態とを参照して、双方が不一致である場合に暴走を検知する。
そして、計測カウンタにより、マスタが周期的に送信する同期信号の受信間隔を、発振回路が出力するクロック信号に基づくカウント動作により計測し、複数のタスクの何れか１つである発振異常監視タスクは、モニタ用レジスタに格納されている計測カウンタの計測値を読み出して、当該計測値が正常範囲を超えると発振回路の異常を検知する。したがって、マスタとの間で非同期式通信を行う構成においても、同期信号の受信間隔を発振回路が出力するクロック信号に基づき計測することで、発振回路の異常を検知できる。
【０００８】
尚、「同期式通信」とは、ここではマスタより供給される同期用クロック信号をスレーブ側が受信し、スレーブが、前記クロック信号を用いて受信，返信処理等を行う通信形態を意味する。したがって、「非同期式通信」とは、マスタが上記のように同期用クロック信号を送信することなく、スレーブ側で同期処理を行うために使用される同期信号のみを送信するような通信形態を言う。
【０００９】
請求項２記載の通信用スレーブによれば、計測カウンタに、同期信号を受信してからマスタとの通信を開始するまでの待機時間を計時するための、待機時間カウンタを使用する。すなわち、上述のように、マスタが周期的に同期信号を送信しながらスレーブと非同期式通信を行う際には、例えばＤＳＩでは、スレーブは、同期信号を受信した時点から待機時間の経過待ちをした上でマスタに対する通信を開始する。したがって、待機時間を計時するためのカウンタを計測カウンタにも利用すれば、新規な回路部品要素の追加を抑制できる。
【図面の簡単な説明】
【００１０】
【図１】第１実施形態であり、通信用スレーブの構成を概略的に示す機能ブロック図
【図２】通信回路の構成を、要部のみ示す機能ブロック図
【図３】通信回路の動作を示すタイミングチャート
【図４】マスタと複数のスレーブとが通信を行う際の、各スレーブの送信タイミングを示す図
【図５】初期設定処理を示すフローチャート
【図６】発振異常監視処理を示すフローチャート
【図７】特許文献１の図１相当図
【図８】第２実施形態を示す図６相当図
【図９】第３実施形態を示す図５相当図
【図１０】第４実施形態であり、正常範囲設定処理を示すフローチャート
【発明を実施するための形態】
【００１１】
（第１実施形態）
以下、第１実施形態について説明する。本実施形態の通信用スレーブは、特許文献１に開示されているマイクロコンピュータ４１に通信機能等を追加したもので構成されている。図７は、特許文献１の図７相当図である。マイコン（マイクロコンピュータシステム）４１は、ＣＰＵ２Ａ，内蔵メモリ３，暴走検知部４２などから構成されており、これらは、アドレスバス５，データバス６を介して互いに接続されている。
【００１２】
ＣＰＵ２Ａは、制御部（信号出力部）７，デコード部８，演算部９，レジスタ部１０などを内蔵しており、制御部７は、Ｒ／Ｗ（リード／ライト）などの制御信号を出力してバス５及び６に対するアクセスを行い、ＣＰＵ外部とのデータ転送を制御する。内蔵メモリ３にはＣＰＵ２Ａの制御プログラムが記憶されており、ＣＰＵ２Ａが前記プログラムの命令や、内蔵メモリ３に記憶されているデータを読み込むとそれらはレジスタ部１０に格納され、デコード部８によりデコードされる。すると、演算部９がその読み込み結果に基づいて演算処理を実行し、演算結果のデータは、必要に応じてレジスタ部１０内のデータレジスタ１８や内蔵メモリ３に書き込まれる。
【００１３】
制御部７は、ＣＰＵ２Ａが実行しているアクセスサイクルが「命令フェッチ」であるか、それ以外の「データアクセス」等であるのかを示す命令フェッチ信号を出力する。また制御部７は、自身が現在実行中であるタスクが、２つのうち何れかを示すタスク情報信号（タスク実行信号）も出力する。各タスクのプログラムは、内蔵メモリ３に記憶されている。
【００１４】
２つのタスクの一方は、マイコン１におけるシステムの基層的な部分を管理するため、重要度がより高いタスク（最重要タスク，以下、タスクＳと称す）として設定されている。即ち、他方のタスク（以下、タスクＸと称す）の暴走を監視するためのルーチンや、フェイルセーフ用のバックアップシーケンスなどを実行する。そして、タスクＳは、固定ループ動作することでソフトウエアタイマとしても機能するため、分岐命令などのコーディングは予め禁止されており、基本的にループ周回周期毎に実行が必要な処理を行う。
また、他方のタスクＸは、数値演算処理などを行なうのに適したタスクであり、分岐命令の実行も許可されている。そして、タスクＸは、タスクＳのループ周回回数によって計時される時間を利用した処理も行なう。
【００１５】
暴走検知部４２は、タスクＳ領域（２）上限レジスタ１１Ａ，タスクＳ領域（２）下限レジスタ１２Ａ，プログラム領域判定部１３，３入力ＡＮＤゲート１５及び４６，タスクＳ領域（１）上限レジスタ４３，タスクＳ領域（１）下限レジスタ４４及びデータ領域判定部４５などを備えている。上限レジスタ１１Ａ，下限レジスタ１２Ａには、ＣＰＵ２Ａが起動した場合の初期処理で、内蔵メモリ３におけるタスクＳのプログラムアドレスの上限値（終了アドレス），下限値（開始アドレス）が夫々書き込まれる。また、上限レジスタ４３には、データ領域の上限値が設定され、下限レジスタ４４には、データ領域の下限値が設定される。
【００１６】
プログラム領域判定部１３は、アドレスバス５に出力されるアドレスと、上記レジスタ１２，１３に設定保持されるアドレスとを比較して、前者のアドレスがタスクＳのプログラム領域内（上限，下限の間）であるか否かを判定する。そして、タスクＳのプログラム領域内であれば、その状態を示す領域判定信号をアクティブ（ハイ）にする。領域判定信号は、ＮＯＴゲート１６を介してＡＮＤゲート１５の入力端子に与えられている。また、ＣＰＵ２Ａの制御部７が出力するタスク情報信号が、ＡＮＤゲート１５の入力端子に与えられている。
【００１７】
ＡＮＤゲート１５の残る１つの入力端子には、制御部７により出力される命令フェッチ信号が与えられている。命令フェッチ信号は、ＣＰＵ２Ａが命令リードサイクルを実行する場合にハイレベルを示す。ＡＮＤゲート１５，４６の出力端子は、具体的には図示しないが、ＣＰＵ２Ａに対し例外処理を実行させるための割り込み信号として出力される。
【００１８】
データ領域判定部４５は、プログラム領域判定部１３と同様に、アドレスバス３に出力されるアドレスと、上記レジスタ４３，４４に設定保持されるアドレスとを比較して、前者のアドレスがタスクＳのデータ領域内（上限，下限の間）であるか否かを判定する。そして、タスクＳのデータ領域内である場合は、その状態を示す領域判定信号をアクティブ（ハイ）にする。領域判定信号は、ＡＮＤゲート４６の入力端子に与えられている。
【００１９】
ＡＮＤゲート４６の他の入力端子の１つには、ＣＰＵ２の制御部７によって出力される制御信号Ｒ／Ｗ（リード／ライト）が与えられており、残る１つの入力端子には、タスク情報信号がＮＯＴゲート４７を介して与えられている。制御信号Ｒ／Ｗは、ＣＰＵ２がリードサイクルを実行する場合にロウレベルを、ライトサイクルを実行する場合にハイレベルを示すように出力される。
【００２０】
また、ＡＮＤゲート１５，４６の出力端子は、ＯＲゲート４８の各入力端子に夫々接続されており、ＯＲゲート４８の出力端子は、レジスタ１１Ａ，１２Ａ，４３，４４のクリア端子に接続されており、ＡＮＤゲート１５，４６の何れの出力レベルがハイになると、各レジスタはクリアされるようになっている。但し、レジスタ１１Ａ，４３についてはデータ値が変化しないため、クリア端子を削除しても良い。
【００２１】
図１に示すように、通信用スレーブ２１は、図５に示すマイコン４１を用いて構成されている。バス５及び６には通信回路２２が接続されている。通信回路２２は、通信端子２３に通信バスが接続され、マスタ（何れも図示せず）と通信を行う機能を有する。発振回路２４は、例えばＣＲ発振回路等で構成されており、ＣＰＵ２Ａを含む通信用スレーブ２１の各部にメインクロックを供給する。
【００２２】
図２に示すように、通信回路２２は、受信検出回路２５，送信待ち制御回路２６，送信回路２７，周期検出回路２８，バスＩ／Ｆ２９等を備えて構成されている。受信検出回路２５は、受信端子２３Ｒを介してマスタより送信された信号を受信し、その信号が同期信号である場合のみ出力端子のレベルをハイに変化させて同期検出信号をアクティブにするが、その他の場合はローに維持する。
【００２３】
送信待ち制御回路２６は、加算器３０，マルチプレクサ３１及び通信カウンタレジスタ３２で構成されるサイクルカウンタ３３（計測カウンタ，待機時間カウンタ）を備えている。加算器３０は、通信カウンタレジスタ３２の出力データに「１」を加算した値を、マルチプレクサ３１の入力端子の一方に出力する。マルチプレクサ３１の入力端子の他方にはデータ値「０」が与えられている。マルチプレクサ３１の切り換え制御は同期検出信号によって行われ、当該信号がローであれば加算器３０側を選択し、ハイであればデータ値「０」側を選択する。
【００２４】
通信カウンタレジスタ３２は、発振回路２４より供給されるメインクロックパルスが入力される毎にレジスタ値を更新する。したがって、同期検出信号がローレベルを示す期間は通信カウンタレジスタ３２の値はメインクロックパルスが入力される毎にインクリメントされ続け、同期検出信号がハイレベルを示すとゼロクリアされる。尚、メインクロックは、以降に説明する「レジスタ」の全てに供給されており、各レジスタは、メインクロックパルスの入力タイミングでレジスタ値を更新する。
【００２５】
比較器３４は、通信カウンタレジスタ３２のレジスタ値と、送信待ち時間レジスタ３５のレジスタ値とを比較する。送信待ち時間レジスタ３５には、バスＩ／Ｆ２９を介してＣＰＵ２Ａより送信待ち時間相当値が書き込み設定される。そして、比較器３４は、双方のレジスタ値が一致すると、送信回路２７に送信要求トリガを出力する。上記メインクロックパルスは、送信回路２７にも入力されている。
【００２６】
同期検出信号は、周期検出回路２８のＡＮＤゲート３６（禁止手段）の一方の入力端子に与えられている。また、ＡＮＤゲート３６の他方の入力端子には、モニタ許可レジスタ３７（禁止手段）のレジスタ値が与えられている。モニタ許可レジスタ３７は、送信待ち時間レジスタ３５と同様に、バスＩ／Ｆ２９を介してＣＰＵ２Ａより、許可／禁止に応じて１／０のデータ値が書き込み設定される。ＡＮＤゲート３６の出力信号は、マルチプレクサ３８，３９の切り換えを制御する。
【００２７】
マルチプレクサ３８の出力端子は、モニタ用サイクル数レジスタ５０の入力端子に接続されており、マルチプレクサ３８の入力端子の一方は、モニタ用サイクル数レジスタ５０の出力端子に接続されている。また、マルチプレクサ３８の入力端子の一方には、通信カウンタレジスタ３２のレジスタ値が与えられている。マルチプレクサ３８は、ＡＮＤゲート３６の出力信号がハイレベルであれば通信カウンタレジスタ３２側を選択し、ローレベルであればモニタ用サイクル数レジスタ５０側を選択する。
【００２８】
したがって、モニタ用サイクル数レジスタ５０のレジスタ値は、上記信号がハイレベルであれば通信カウンタレジスタ３２のレジスタ値で更新され、ローレベルであればその時点のレジスタ値を維持する。そして、モニタ用サイクル数レジスタ５０のレジスタ値は、バスＩ／Ｆ２９を介してデータバス６に出力可能となっている。
【００２９】
マルチプレクサ３９（フラグセット部）の出力端子は、もう１つのマルチプレクサ５１（フラグセット部）を介して検出フラグレジスタ５２（フラグセット部）の入力端子に接続されている。マルチプレクサ３９の入力端子の一方は、検出フラグレジスタ５２の出力端子に接続されており、入力端子の他方にはデータ値「１」が与えられている。また、マルチプレクサ５１の入力端子の他方にはデータ値「０」が与えられている。マルチプレクサ５１の切り換え制御は「ソフトクリア要求」によって行われる。
【００３０】
ここで「ソフトクリア要求」とは、ＣＰＵ２Ａのプログラム動作により検出フラグレジスタ５２をクリアすることを意味し、例えば図示しないクリア要のレジスタにＣＰＵ２Ａが書き込みを行うことで、所定期間だけデータ値「１」が出力されてマルチプレクサ５１を切り替える。
【００３１】
したがって、検出フラグレジスタ５２のレジスタ値は、ソフトクリア要求が発生しない限りその時点のレジスタ値を維持し、ソフトクリア要求が発生するとゼロクリアされる。そして、検出フラグレジスタ５２のレジスタ値は、ＡＮＤゲート３６の出力信号がハイレベルになるとマルチプレクサ３９及び５１を介してデータ値「１」が格納される。この検出フラグレジスタ５２のレジスタ値も、バスＩ／Ｆ２９を介してデータバス６に出力可能となっている。
【００３２】
次に、本実施形態の作用について図３及び図４を参照して説明する。尚、暴走検知部４２によるＣＰＵ２Ａの暴走検知処理については特許文献１と同様であるから、説明を省略する。図４に示すように、マスタは周期的に（例えば数１００μｓ程度）、通信バス上に同期信号を出力する。そして、各スレーブ（１〜３）は、同期信号をトリガとして各スレーブに設定される待機時間（待ち（１）〜（３））の経過待ちをした後に、マスタに対してデータを送信する。
【００３３】
マスタに搭載される発振回路は例えば水晶発振子を用いたもので、同期信号の出力周期は高精度のクロック信号に基づいて決定されている。一方、スレーブについては、一般に１つの通信ネットワークに数多く接続されるノードであるため、コストの制約から高価な水晶発振子を用いることはなく、安価なＣＲ発振回路等が用いられている。そこで、本実施形態の通信用スレーブ２１は、図３に示すように、同期信号の出力間隔を、発振回路２４が出力するメインクロックを用いてカウントする（（ａ）〜（ｃ）参照）。そして、そのカウント値をモニタすることで、発振回路２４の発振動作が正常か否かを監視する。
【００３４】
尚、通信バス上に、同期信号以外の通信用データも伝送される場合は、受信検出回路２５において両者を弁別すれば良い。また、例えばＤＳＩ等のプロトコルでは、マスタが送信するデータはバス上の電圧を変化させ、スレーブが送信するデータはバス上の電流を変化させて伝送するので、受信検出回路２５では電圧の変化を捉えるようにすれば同期信号を検出できる。
【００３５】
図５に示す初期設定処理では、先ず自身のスレーブＩＤを取得するが（Ｓ１）、その取得方法については特に限定しない。例えば、マスタより送信されるコマンドより取得しても良い。それから、送信待ち時間指示レジスタ３５に送信待ち時間を書き込んで設定する（Ｓ２）。送信待ち時間は、各スレーブ毎に異なる時間を設定するが（図４参照）、例えば上記スレーブＩＤの値に基づいて設定しても良い。そして、モニタ許可レジスタ３７にデータ「１」を書き込んで、同期信号の間隔検出（モニタ）を許可すると（Ｓ３）処理を終了する。
【００３６】
図６に示す発振異常監視処理は、複数のタスクの何れか１つ（発振異常監視タスク）により実行される。この処理は、例えば最重要タスクが行うようにしても良い。先ず、検出フラグレジスタ５２を参照して、検出フラグがセットされているか否かを判断する（Ｓ１１）。図３（ｅ）に示すように、検出フラグがセットされていれば（ＹＥＳ）、モニタ用サイクル数レジスタ５０のレジスタ値を読み出す（Ｓ１２）。そして、前記レジスタ値が正常範囲内か否かを判断する（Ｓ１３）。
【００３７】
ここで、「正常範囲」とは、例えばシステム仕様で定められている同期信号の出力周期に相当するメインクロックによるカウント値に、所定の許容値αを加減したものに設定する。モニタ用サイクル数レジスタ５０の値が正常範囲内であれば（ＹＥＳ）、異常検知カウンタをクリアする（Ｓ１４）。「異常検知カウンタ」は、発振異常監視処理内のソフトウェアカウンタである。それから、検出フラグをクリアすると（Ｓ１５）処理を終了する。
【００３８】
一方、ステップＳ１３においてモニタ用サイクル数レジスタ５０の値が正常範囲外であれば（ＮＯ）異常検知カウンタをインクリメントして（Ｓ１６）、当該カウンタの値が所定値（例えば「３」）に達したか否かを判断する（Ｓ１７）。所定値に達していなければ（ＮＯ）ステップＳ１５に移行し、所定値に達していれば（ＹＥＳ）異常検知処理を行う（Ｓ１８）。例えば、表示器等の報知手段により発振回路２４が異常であることを報知する。ステップＳ１３において「ＮＯ」と判断するのは、図３（ｂ）,（ｃ）に示すように、周波数が正常範囲を超えて上昇した場合と、正常範囲を下回るように低下した場合とになる。
【００３９】
以上のように本実施形態によれば、通信用スレーブ２１を構成するＣＰＵ２Ａの制御部７は、ＣＰＵ２ＡがタスクＳを実行している期間にタスク情報信号をアクティブにする。暴走検知部４２のプログラム領域判定部１３は、タスクＳのプログラムが格納されている内蔵メモリ３の上限アドレス，下限アドレスが設定されているレジスタ１１，１２のレジスタ値とＣＰＵ２Ａが実行中のプログラムアドレスとを比較して、後者がタスクＳの実行領域を示すか否かを判定する。また、データ領域判定部４５は、最重要タスクＳのデータが格納されているメモリ領域の開始アドレス，終了アドレスが設定されているレジスタ値とＣＰＵ２Ａが実行中のアドレスとを比較して、最重要タスクＳのデータ領域であるか否かを判定する。
【００４０】
そして、暴走検知部４２は、プログラム領域判定部１３による判定結果とタスク実行信号の出力状態とが不一致である場合に、又はデータ領域判定部４５による判定結果とタスク実行信号の出力状態とが不一致である場合に暴走を検知する。従って、最重要タスクＳのプログラム領域，データ領域に対して不正なアクセスが行われた場合に、ロジック回路により迅速に暴走を検知できる。
【００４１】
そして、通信回路２２では、サイクルカウンタ３３により、マスタが周期的に送信する同期信号の受信間隔を、発振回路２４が出力するメインクロックに基づくカウント動作により計測し、発振異常監視タスクは、モニタ用サイクル数レジスタ５０に格納されているサイクルカウンタ３３の計測値を読み出して、当該計測値が正常範囲を超えると発振回路２４の異常を検知する。したがって、マスタとの間で非同期式通信を行う通信用スレーブ２１においても、同期信号の受信間隔を発振回路２４が出力するメインクロックに基づき計測することで、発振回路２４の異常を検知できる。
【００４２】
また、サイクルカウンタ３３には、同期信号を受信してからマスタとの通信を開始するまでの待機時間を計時するための待機時間カウンタを利用するので、新規な回路部品要素の追加を抑制できる。また、同期信号を受信すると検出フラグがセットされる検出フラグレジスタ５２を備え、発振異常監視タスクは、検出フラグがセットされるとモニタ用サイクル数レジスタ５０格納された計測値を読み出すので、レジスタ５０への不要なアクセスを抑制できる。
【００４３】
更に、モニタ許可レジスタ３７に書き込みを行うことで同期信号の受信伝達経路を遮断して、発振異常監視タスクによる発振回路２４の異常検知処理を禁止可能としたので、必要に応じて発振回路２４の異常検知を行うことができる。加えて、発振異常監視タスクは、計測値が正常範囲を超えると異常検知カウンタをインクリメントし、計測値が正常範囲内であれば異常検知カウンタをクリアして、異常検知カウンタの値が所定値に達すると発振回路２４の異常を検知する。したがって、発振回路２４の異常を確実に検知することができる。
【００４４】
（第２実施形態）
以下、第１実施形態と同一部分には同一符号を付して説明を省略し、異なる部分について説明する。図８に示すように、第２実施形態は、図６に示すフローチャートのステップＳ１４をＳ１４’に置き換えたもので、モニタ用サイクル数レジスタ５０のレジスタ値が正常範囲内であれば、異常検知カウンタをデクリメントする（尚、カウンタ値が「０」であれば「０」を維持する）。異常検知カウンタは、正常範囲外であればステップＳ１６でインクリメントされるので、そのように増減を行った結果としてカウンタ値が所定値に達すれば、ステップＳ１８で異常検知処理が行われる。この様な第２実施形態による場合も、第１実施形態と同様の効果が得られる。
【００４５】
（第３実施形態）
図９に示すように、第３実施形態は、図５に示す初期設定処理にステップＳ４，Ｓ５を追加したものである。すなわち、初期設定処理の最初はコマンドモードとなり、マスタより周期設定コマンドが送信される（Ｓ４）。周期設定コマンドには、同期信号の出力周期を示すデータが含まれている。各スレーブは上記コマンドを受信して周期データを取得すると、それに許容範囲を加減することで判定用の「正常範囲」を設定する（Ｓ５）。
【００４６】
以上のように第３実施形態によれば、発振異常監視タスクは、マスタにより送信される周期設定コマンドを受信すると、そのコマンドに含まれている出力周期データに基づいて正常範囲を設定するので、同期信号の出力間隔がダイナミックに変更設定されるシステム仕様についても対応することができる。
【００４７】
（第４実施形態）
第４実施形態は、図１０に示す正常範囲設定処理を実行する。すなわち、最初に検出フラグがセットされて（Ｓ２１：ＹＥＳ）、モニタ用サイクル数レジスタ５０のレジスタ値を取得すると（Ｓ２２）、そのレジスタ値（初期サイクル数）に基づいて正常範囲を設定する（Ｓ２３）。すなわち、実際の同期信号の出力間隔を最初に計測した値に基づいて正常範囲を設定する。このような第４実施形態による場合も、第３実施形態と同様の効果が得られる。
【００４８】
本発明は上記した、又は図面に記載した実施例にのみ限定されるものではなく、以下のような変形又は拡張が可能である。
同期信号の出力周期については、個別の設計に応じて適宜設定すれば良い。
検出フラグがセットされるとＣＰＵ２Ａに割り込みを発生させて、その割り込みにより発振異常監視処理を行うようにしても良い。
計測カウンタと待機時間カウンタとを別個に設けても良い。
ＡＮＤゲート３６及びモニタ許可レジスタ３７は、必要に応じて設ければ良い。
マスタとスレーブとの通信は、１対１で行っても良い。
【符号の説明】
【００４９】
図面中、２ＡはＣＰＵ、３は内蔵メモリ、４は暴走検知部、７は制御部（信号出力部）、１１はタスクＳ領域上限レジスタ、１２はタスクＳ領域下限レジスタ、１３はプログラム領域判定部、２１は通信用スレーブ、２４は発振回路、３３はサイクルカウンタ（計測カウンタ，待機時間カウンタ）、４１はマイクロコンピュータ（マイクロコンピュータシステム）、４５はデータ領域判定部、５０はモニタ用サイクル数レジスタ、５２は検出フラグレジスタ（フラグセット部）を示す。
【図１】
2014157554.tif 000003
【図２】
2014157554.tif 000004
【図３】
2014157554.tif 000005
【図４】
2014157554.tif 000006
【図５】
2014157554.tif 000007
【図６】
2014157554.tif 000008
【図７】
2014157554.tif 000009
【図８】
2014157554.tif 000010
【図９】
2014157554.tif 000011
【図１０】
2014157554.tif 000012