(57)【要約】【課題】予備の処理実行部に切り替えた場合に次のヘッダ領域が入力するまで待機しなければならない事態の発生を抑制する【解決手段】ＣＰＵ１１は、計算用サブコアモジュール（以下、計算モジュール）２４が故障したと判断した場合に、計算モジュール２４の故障時点から入力モジュール２２がエッジ時刻を検出したエッジ検出回数を検出する。ＣＰＵ１１は、エッジ検出回数に応じて予め設定されたデータ転送条件に基づいて、計算モジュール２５が時間を算出するために必要な算出用データを、入力モジュール２２および計算モジュール２４の少なくとも一方から抽出して計算モジュール２５へ転送する。その後に、ＣＰＵ１１は、計算モジュール２５に時間の算出を開始させる。【選択図】図１
2018049451.tif 000002
【特許請求の範囲】
【請求項１】
第１レベルと第２レベルとの間で信号レベルが繰り返し変化して、先頭部分であるヘッダ領域と、前記ヘッダ領域よりも後の部分である少なくとも１つのパルス幅変調領域とを有し、前記ヘッダ領域が前記第１レベルおよび前記第２レベルの何れか一方の状態を継続した第１継続時間と、前記パルス幅変調領域が前記第１レベルおよび前記第２レベルの何れか一方の状態を継続した第２継続時間とにより検出結果を示すパルス幅変調信号が入力され、入力された前記パルス幅変調信号が、前記第１レベルと前記第２レベルとの間で前記信号レベルが変化した時刻であるエッジ時刻を検出し、直近の１つまたは複数の前記エッジ時刻を示すエッジ時刻情報を記憶するように構成されたエッジ時刻検出部（２２）と、
前記エッジ時刻検出部に記憶されている前記エッジ時刻情報に基づいて、前記第１継続時間および前記第２継続時間を算出するように構成された第１時間算出部（２４）と、
前記エッジ時刻検出部に記憶されている前記エッジ時刻情報に基づいて、前記第１継続時間および前記第２継続時間を算出するように構成された第２時間算出部（２５）と、
予め設定された故障判断条件に基づいて、前記第１時間算出部が故障したか否かを判断するように構成された故障判断部（Ｓ１３０）と、
前記第１時間算出部が故障したと前記故障判断部が判断した場合に、前記第１時間算出部が故障した時点から前記エッジ時刻検出部が前記エッジ時刻を検出したエッジ検出回数を検出するように構成された回数検出部（Ｓ３１０，Ｓ３３０，Ｓ３７０，Ｓ５１０）と、
前記回数検出部が検出した前記エッジ検出回数に応じて予め設定されたデータ転送条件に基づいて、前記第２時間算出部が前記第１継続時間および前記第２継続時間を算出するために必要な算出用情報を、前記エッジ時刻検出部および前記第１時間算出部の少なくとも一方から抽出して前記第２時間算出部へ転送するように構成された転送部（Ｓ３２０，Ｓ３４０，Ｓ３５０，Ｓ３８０，Ｓ３９０，Ｓ４００，Ｓ５２０，Ｓ５３０，Ｓ５６０，Ｓ５８０，Ｓ６００）と、
前記転送部が前記算出用情報を前記第２時間算出部へ転送した後に、前記第２時間算出部に前記第１継続時間および前記第２継続時間の算出を開始させるように構成された算出開始部（Ｓ１９０）と
を備える時間算出装置（５）。
【請求項２】
請求項１に記載の時間算出装置であって、
前記転送部（Ｓ３２０，Ｓ３４０，Ｓ３５０，Ｓ３８０，Ｓ３９０，Ｓ４００）は、前記回数検出部により検出された前記エッジ検出回数が前記第１時間算出部に記憶されているに前記エッジ時刻情報の数を超えていない場合に、前記第１時間算出部に記憶されている１つまたは複数の前記エッジ時刻情報の中から、前記回数検出部が検出した少なくとも前記エッジ検出回数分の前記エッジ時刻情報を、時刻が遅いものから優先的に抽出し、抽出した前記エッジ時刻情報を、前記算出用情報の少なくとも一部として前記第２時間算出部へ転送する時間算出装置。
【請求項３】
請求項１または請求項２に記載の時間算出装置であって、
前記転送部（Ｓ５２０，Ｓ５３０，Ｓ５６０，Ｓ５８０，Ｓ６００）は、少なくとも、前記回数検出部により検出された前記エッジ検出回数が、前記第１時間算出部に記憶されている前記エッジ時刻情報の数以上である場合に、前記第１時間算出部に記憶されている１つまたは複数の前記エッジ時刻情報の中から、少なくとも直近の前記エッジ時刻を示す前記エッジ時刻情報を、前記算出用情報の少なくとも一部として前記第２時間算出部へ転送する時間算出装置。
【請求項４】
請求項１〜請求項３の何れか１項に記載の時間算出装置であって、
前記第１時間算出部および前記第２時間算出部は、前記パルス幅変調信号における前記信号レベルの変化に基づいて、少なくとも、前記ヘッダ領域が前記エッジ時刻検出部に入力しており前記第１継続時間を算出している第１算出状態であるか否かと、前記パルス幅変調領域が前記エッジ時刻検出部に入力しており前記第２継続時間を算出している第２算出状態であるか否かを識別することができる状態情報を設定し、
前記第１時間算出部が故障したと前記故障判断部が判断した場合に、前記回数検出部が検出した前記エッジ検出回数と、前記第１時間算出部の前記状態情報とに基づいて、前記第２時間算出部の前記状態情報を設定するように構成された状態設定部（Ｓ３６０，Ｓ４１０，Ｓ４２０，Ｓ５４０）を備える時間算出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、パルス幅変調信号のエッジに基づいて時間を算出する時間算出装置に関する。
【背景技術】
【０００２】
特許文献１には、複数の機能を実行可能な複数のプロセッサコアのうち一部を、機能を実行しない待機状態とされる予備コアに指定し、プロセッサコアに異常が生じた際に、異常が生じたプロセッサコアの機能を予備コアに代替させることが記載されている。
【０００３】
また、ハイレベルとローレベルとの間で信号レベルが繰り返し変化して、先頭部分であるヘッダ領域と、ヘッダ領域よりも後の部分である少なくとも１つのパルス幅変調領域とを有するパルス幅変調信号が知られている。このようなパルス幅変調信号は、ヘッダ領域がハイレベルまたはローレベルの状態を継続した第１継続時間と、パルス幅変調領域がハイレベルまたはローレベルの状態を継続した第２継続時間とにより検出結果を示すように利用される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−２２６４０９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記のパルス幅変調信号の第１継続時間と第２継続時間を算出する処理実行部を複数備えた時間算出装置では、少なくとも１つの処理実行部が第１継続時間と第２継続時間の算出処理を実行し、この算出処理を実行しない処理実行部を予備として待機させることが可能である。これにより、上記の算出処理を実行している処理実行部が故障した場合に、予備の処理実行部に切り替えて上記の算出処理を継続させることができる。
【０００６】
しかし、予備の処理実行部に切り替えた場合には、予備の処理実行部は、ヘッダ領域の第１継続時間を算出するために、次のヘッダ領域が入力するまで上記の算出処理を実行せずに待機する必要があった。
【０００７】
本開示は、予備の処理実行部に切り替えた場合に次のヘッダ領域が入力するまで待機しなければならない事態の発生を抑制することを目的とする。
【課題を解決するための手段】
【０００８】
本開示の一態様は、エッジ時刻検出部（２２）と、第１時間算出部（２４）と、第２時間算出部（２５）と、故障判断部（Ｓ１３０）と、回数検出部（Ｓ３１０，Ｓ３３０，Ｓ３７０，Ｓ５１０）と、転送部（Ｓ３２０，Ｓ３４０，Ｓ３５０，Ｓ３８０，Ｓ３９０，Ｓ４００，Ｓ５２０，Ｓ５３０，Ｓ５６０，Ｓ５８０，Ｓ６００）と、算出開始部（Ｓ１９０）とを備える時間算出装置（５）である。
【０００９】
エッジ時刻検出部は、入力されたパルス幅変調信号が、第１レベルと第２レベルとの間で信号レベルが変化した時刻であるエッジ時刻を検出し、直近の１つまたは複数のエッジ時刻を示すエッジ時刻情報を記憶するように構成される。パルス幅変調信号は、第１レベルと第２レベルとの間で信号レベルが繰り返し変化して、先頭部分であるヘッダ領域と、ヘッダ領域よりも後の部分である少なくとも１つのパルス幅変調領域とを有する。またパルス幅変調信号は、ヘッダ領域が第１レベルおよび第２レベルの何れか一方の状態を継続した第１継続時間と、パルス幅変調領域が第１レベルおよび第２レベルの何れか一方の状態を継続した第２継続時間とにより検出結果を示す。
【００１０】
第１時間算出部は、エッジ時刻検出部に記憶されているエッジ時刻情報に基づいて、第１継続時間および第２継続時間を算出するように構成される。第２時間算出部は、エッジ時刻検出部に記憶されているエッジ時刻情報に基づいて、第１継続時間および第２継続時間を算出するように構成される。
【００１１】
故障判断部は、予め設定された故障判断条件に基づいて、第１時間算出部が故障したか否かを判断するように構成される。
回数検出部は、第１時間算出部が故障したと故障判断部が判断した場合に、第１時間算出部が故障した時点からエッジ時刻検出部がエッジ時刻を検出したエッジ検出回数を検出するように構成される。
【００１２】
転送部は、回数検出部が検出したエッジ検出回数に応じて予め設定されたデータ転送条件に基づいて、第２時間算出部が第１継続時間および第２継続時間を算出するために必要な算出用情報を、エッジ時刻検出部および第１時間算出部の少なくとも一方から抽出して第２時間算出部へ転送するように構成される。
【００１３】
算出開始部は、転送部が算出用情報を第２時間算出部へ転送した後に、第２時間算出部に第１継続時間および第２継続時間の算出を開始させるように構成される。
このように構成された本開示の時間算出装置は、第１時間算出部が故障した場合に、この故障時点からのエッジ検出回数に応じたデータ転送条件に基づいて、上記の算出用情報を、エッジ時刻検出部および第１時間算出部の少なくとも一方から抽出して第２時間算出部へ転送する。
【００１４】
これにより、第２時間算出部は、第１時間算出部が故障した時点からエッジ時刻検出部が１回もエッジ時刻を検出していない場合には、第１時間算出部が故障する直前までに記憶していた情報を用いて、第１時間算出部が故障する直前における第１時間算出部の状態を再現することができる。このため、第２時間算出部は、第１継続時間および第２継続時間の算出を即座に継続することができ、次のヘッダ領域が入力するまで待機する必要がなくなる。
【００１５】
また第２時間算出部は、第１時間算出部が故障した時点からエッジ時刻検出部がエッジ時刻を検出している場合であっても、エッジ時刻検出部が記憶しているエッジ時刻の数の範囲内で、第１時間算出部が現時点で故障していないと仮定した場合の第１時間算出部の状態を再現することができる。第１時間算出部は、エッジ時刻検出部に記憶されているエッジ時刻情報に基づいて第１継続時間および第２継続時間を算出するからである。このため、第２時間算出部は、第１継続時間および第２継続時間の算出を即座に継続することができ、次のヘッダ領域が入力するまで待機する必要がなくなる。
【００１６】
以上より、本開示の時間算出装置は、第１時間算出部から第２時間算出部に切り替えた場合に次のヘッダ領域が入力するまで待機しなければならない事態の発生を抑制することができる。
【００１７】
なお、この欄及び特許請求の範囲に記載した括弧内の符号は、一つの態様として後述する実施形態に記載の具体的手段との対応関係を示すものであって、本開示の技術的範囲を限定するものではない。
【図面の簡単な説明】
【００１８】
【図１】インバータ１の構成を示すブロック図である。
【図２】通信フレームの構成を示す図である。
【図３】計算用サブコアモジュール２４，２５の状態遷移を示す図である。
【図４】計算用サブコアモジュール２４，２５が実行する処理を示すフローチャートである。
【図５】異常検出処理を示すフローチャートである。
【図６】第１実施形態の状態判断処理を示すフローチャートである。
【図７】第１実施形態の入力モジュール２２と計算用サブコアモジュール２４，２５の動作を説明する第１のタイミングチャートである。
【図８】第１実施形態の入力モジュール２２と計算用サブコアモジュール２４，２５の動作を説明する第２のタイミングチャートである。
【図９】第１実施形態の入力モジュール２２と計算用サブコアモジュール２４，２５の動作を説明する第３のタイミングチャートである。
【図１０】第１実施形態の入力モジュール２２と計算用サブコアモジュール２４，２５の動作を説明する第４のタイミングチャートである。
【図１１】第２実施形態の状態判断処理を示すフローチャートである。
【図１２】第２実施形態の入力モジュール２２と計算用サブコアモジュール２４，２５の動作を説明するタイミングチャートである。
【発明を実施するための形態】
【００１９】
（第１実施形態）
以下に本開示の第１実施形態を図面とともに説明する。
図１に示すように、本実施形態のインバータ１は、図示しないバッテリの直流出力電圧をＵ相、Ｖ相およびＷ相の三相交流電圧Ｖｕ，Ｖｖ，Ｖｗに変換し、この三相交流電圧Ｖｕ，Ｖｖ，Ｖｗによってモータ２を駆動する。
【００２０】
インバータ１は、モータ駆動回路３と、温度センサ４と、マイクロコンピュータ５（以下、マイコン５）とを備える。
モータ駆動回路３は、絶縁ゲート型バイポーラトランジスタ（以下、ＩＧＢＴ）からなる６個のスイッチング素子を備えた周知の三相ブリッジ回路であり、Ｕ相、Ｖ相およびＷ相の三相交流電圧をモータ２へ出力する。ＩＧＢＴは、Insulated Gate Bipolar Transistorの略である。
【００２１】
温度センサ４は、モータ駆動回路３における二箇所の温度を検出し、検出結果を示す通信フレームをマイコン５へ出力する。以下、温度センサ４が温度を検出する上記の二箇所のうちの一方を第１検出箇所といい、他方を第２検出箇所という。
【００２２】
通信フレームは、図２に示すように、ハイヘッダ領域ＨＤ＿Ｈと、ローヘッダ領域ＨＤ＿Ｌと、パルス幅変調領域ＰＷＭとを備える。
温度センサ４は、通信フレームとして、最初にハイヘッダ領域ＨＤ＿Ｈを出力し、次にローヘッダ領域ＨＤ＿Ｌを出力し、最後にパルス幅変調領域ＰＷＭを出力する。
【００２３】
ハイヘッダ領域ＨＤ＿Ｈは、信号レベルが常時ハイレベルとなっている。ローヘッダ領域ＨＤ＿Ｌは、信号レベルが常時ローレベルとなっている。
パルス幅変調領域ＰＷＭは、第１検出箇所の温度をパルス幅によって示す複数の温度検出領域Ｐ１と、第２検出箇所の温度をパルス幅によって示す複数の温度検出領域Ｐ２とを備える。温度センサ４は、パルス幅変調領域ＰＷＭとして、複数の温度検出領域Ｐ１と複数の温度検出領域Ｐ２とを交互に出力する。本実施形態では、パルス幅変調領域ＰＷＭは、２８個の温度検出領域Ｐ１と、２８個の温度検出領域Ｐ２とを備える。
【００２４】
温度センサ４は、温度検出領域Ｐ１，Ｐ２として、最初にハイレベルの信号を出力し、次にローレベルの信号を出力し、最後にハイレベルを信号出力する。温度センサ４は、第１検出箇所で検出した温度が高い程、温度検出領域Ｐ１においてローレベルの信号を出力している時間Ｔ１を長くする。同様に、温度センサ４は、第２検出箇所で検出した温度が高い程、温度検出領域Ｐ２においてローレベルの信号を出力している時間Ｔ２を長くする。
【００２５】
マイコン５は、ローヘッダ領域ＨＤ＿Ｌを出力している時間Ｔｈと上記の時間Ｔ１との比を算出し、この比に基づいて、第１検出箇所の温度を算出する。同様に、マイコン５は、上記の時間Ｔｈと上記の時間Ｔ２との比を算出し、この比に基づいて、第２検出箇所の温度を算出する。
【００２６】
マイコン５は、図１に示すように、Ｕ相、Ｖ相およびＷ相のそれぞれに対応したパルス幅変調信号Ｓｕ，Ｓｖ，Ｓｗをモータ駆動回路３へ出力する。これにより、マイコン５は、パルス幅変調信号Ｓｕ，Ｓｖ，Ｓｗのデューティ比に応じて三相ブリッジ回路の各スイッチング素子をスイッチング動作させてモータ駆動回路３を制御する。
【００２７】
マイコン５は、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３および汎用タイマモジュール１４を備える。マイコン５の各種機能は、ＣＰＵ１１が非遷移的実体的記録媒体に格納されたプログラムを実行することにより実現される。この例では、ＲＯＭ１２が、プログラムを格納した非遷移的実体的記録媒体に該当する。また、このプログラムの実行により、プログラムに対応する方法が実行される。なお、ＣＰＵ１１が実行する機能の一部または全部を、一つあるいは複数のＩＣ等によりハードウェア的に構成してもよい。また、インバータ１を構成するマイクロコンピュータの数は１つでも複数でもよい。
【００２８】
汎用タイマモジュール１４は、時刻生成モジュール２１、入力モジュール２２、データ転送モジュール２３および計算用サブコアモジュール２４，２５を備える。
時刻生成モジュール２１は、内部クロックに従って予め設定されたクロック周期が経過する毎にインクリメントする基準タイマＢａｓｅＴｉｍｅｒを備え、基準タイマＢａｓｅＴｉｍｅｒの値を出力する。
【００２９】
入力モジュール２２は、温度センサ４から通信フレームが入力され、時刻生成モジュール２１から基準タイマＢａｓｅＴｉｍｅｒの値が入力される。入力モジュール２２は、入力される通信フレームの立ち上りエッジおよび立ち下りエッジが発生した時刻を検出する。
【００３０】
入力モジュール２２は、前回エッジ時刻を示す前回エッジ時刻情報を記憶する内部汎用レジスタＲｅｇ０と、今回エッジ時刻を示す今回エッジ時刻情報を記憶する内部汎用レジスタＲｅｇ１と、ＮＥＷレジスタＮｅｗＳｉｇｎａｌと、オーバーフローレジスタＲｅｇＯｖｅｒとを備える。
【００３１】
今回エッジ時刻は、入力モジュール２２が立ち上りエッジまたは立ち下りエッジを検出した最新の時刻を示す。前回エッジ時刻は、入力モジュール２２が立ち上りエッジまたは立ち下りエッジを検出した時刻のうち、今回エッジ時刻に対して直近の時刻を示す。
【００３２】
ＮＥＷレジスタＮｅｗＳｉｇｎａｌは、入力モジュール２２が立ち上りエッジまたは立ち下りエッジを検出した場合に「１」に設定される。また、ＮＥＷレジスタＮｅｗＳｉｇｎａｌは、計算用サブコアモジュール２４，２５がＮＥＷレジスタＮｅｗＳｉｇｎａｌを確認した場合に「０」に設定される。
【００３３】
オーバーフローレジスタＲｅｇＯｖｅｒは、内部汎用レジスタＲｅｇ０，Ｒｅｇ１が上書きされる前に、内部汎用レジスタＲｅｇ０，Ｒｅｇ１が計算用サブコアモジュール２４，２５により読み出されなかった場合に「１」に設定される。また、オーバーフローレジスタＲｅｇＯｖｅｒは、内部汎用レジスタＲｅｇ０，Ｒｅｇ１が上書きされる前に内部汎用レジスタＲｅｇ０，Ｒｅｇ１により読み出された場合に「０」に設定される。
【００３４】
データ転送モジュール２３は、入力モジュール２２と計算用サブコアモジュール２４との間でデータを伝送する第１伝送経路と、入力モジュール２２と計算用サブコアモジュール２５との間でデータを伝送する第２伝送経路を備える。そしてデータ転送モジュール２３は、第１伝送経路でデータを伝送する第１伝送状態と、第２伝送経路でデータを伝送する第２伝送状態との何れかの状態に切り替わる。
【００３５】
計算用サブコアモジュール２４，２５は、データ転送モジュール２３を介して入力モジュール２２から入力されたデータを用いて、上記の時間Ｔｈ、時間Ｔ１および時間Ｔ２を算出する。
【００３６】
計算用サブコアモジュール２４，２５は、メモリ４１と、レジスタＲ１，Ｒ２，Ｒ３，Ｒ４とを備える。
メモリ４１は、状態番号ｓｔａｔｅ、内部状態ｐｒｏｃ＿ｓｔａｔｅ、現在エッジ時刻ｔｉｍｅ＿ｓｔａｍｐ、前回エッジ時刻ｅｄｇｅ＿ｓｔａｒｔおよび最終計算時間ｌａｓｔ＿ｃａｌｃを記憶する。
【００３７】
また、メモリ４１には、状態遷移カウンタｃｙｃｌｅ＿ｃｎｔおよび処理回数カウンタｐｎ＿ｃｎｔ等が設けられている。状態遷移カウンタｃｙｃｌｅ＿ｃｎｔは、計算用サブコアモジュール２４，２５が上記の時間Ｔ１および時間Ｔ２を算出した回数を示す。処理回数カウンタｐｎ＿ｃｎｔは、計算用サブコアモジュール２４，２５が後述のエッジ検出処理を行った回数を示す。
【００３８】
レジスタＲ１には、計算用サブコアモジュール２４，２５が故障中であるか否かを示す情報が格納される。レジスタＲ２には、上記の時間Ｔｈを示す情報が格納される。レジスタＲ３には、上記の時間Ｔ１を示す情報が格納される。レジスタＲ４には、上記の時間Ｔ２を示す情報が格納される。
【００３９】
計算用サブコアモジュール２４，２５は、マイコン５に電源が投入されてマイコン５のＣＰＵ１１が動作を開始した直後には、図３に示すように、初期化が行われていない非初期化状態Ｃ０になっている。そして、非初期化状態Ｃ０になっている計算用サブコアモジュール２４，２５は、ＣＰＵ１１からの起動命令に従って起動すると、まず、自身の初期化を行う。初期化が完了すると、計算用サブコアモジュール２４，２５は、図２および図３に示すように、通信フレームのハイヘッダ領域ＨＤ＿Ｈを検出するまで待機するハイヘッダ待機状態Ｃ１へ移行する。なお、初期化が完了すると、レジスタＲ１には、故障中であることを示す情報が格納されるとともに、レジスタＲ２，Ｒ３，Ｒ４には、０を示す情報が格納される。
【００４０】
次に、ハイヘッダ待機状態Ｃ１になっている計算用サブコアモジュール２４，２５は、ハイヘッダ領域ＨＤ＿Ｈを検出すると、通信フレームのローヘッダ領域ＨＤ＿Ｌを検出するまで待機するローヘッダ待機状態Ｃ２へ移行する。
【００４１】
そして、ローヘッダ待機状態Ｃ２になっている計算用サブコアモジュール２４，２５は、通信フレームの立ち下りエッジを検出すると、通信フレームのローヘッダ領域ＨＤ＿Ｌの継続時間を検出するローヘッダ検出状態Ｃ３へ移行する。一方、ローヘッダ待機状態Ｃ２になっている計算用サブコアモジュール２４，２５は、通信フレームの立ち上りエッジを検出すると、ハイヘッダ待機状態Ｃ１へ移行する。
【００４２】
ローヘッダ検出状態Ｃ３になっている計算用サブコアモジュール２４，２５は、通信フレームの立ち下りエッジを検出した時点を起点としてローレベルが継続している時間を計測する。そして、計算用サブコアモジュール２４，２５は、通信フレームの立ち上りエッジを検出すると、ローヘッダ領域ＨＤ＿Ｌの継続時間の計測結果を示す情報をレジスタＲ２に格納し、状態遷移カウンタｃｙｃｌｅ＿ｃｎｔをリセット（すなわち、０に設定）して、第１ＰＷＭ待機状態Ｃ４へ移行する。但し、ローヘッダ検出状態Ｃ３になっている計算用サブコアモジュール２４，２５は、通信フレームの立ち上りエッジを検出した時点でのローヘッダ領域ＨＤ＿Ｌの継続時間が予め設定された最少継続時間未満である場合に、故障中であることを示す情報をレジスタＲ１に格納して、ハイヘッダ待機状態Ｃ１へ移行する。また、ローヘッダ検出状態Ｃ３になっている計算用サブコアモジュール２４，２５は、ローヘッダ領域ＨＤ＿Ｌの継続時間が予め設定された最大継続時間を超えている場合に、故障中であることを示す情報をレジスタＲ１に格納して、ハイヘッダ待機状態Ｃ１へ移行する。
【００４３】
第１ＰＷＭ待機状態Ｃ４になっている計算用サブコアモジュール２４，２５は、通信フレームの立ち下りエッジを検出するまで待機し、この立ち下りエッジを検出すると、第１ＰＷＭ検出状態Ｃ５へ移行する。
【００４４】
第１ＰＷＭ検出状態Ｃ５になっている計算用サブコアモジュール２４，２５は、通信フレームの立ち下りエッジを検出した時点を起点としてローレベルが継続している時間を計測する。そして、計算用サブコアモジュール２４，２５は、通信フレームの立ち上りエッジを検出すると、温度検出領域Ｐ１の継続時間の計測結果を示す情報をレジスタＲ３に格納して、第２ＰＷＭ待機状態Ｃ６へ移行する。
【００４５】
第２ＰＷＭ待機状態Ｃ６になっている計算用サブコアモジュール２４，２５は、通信フレームの立ち下りエッジを検出するまで待機し、この立ち下りエッジを検出すると、第２ＰＷＭ検出状態Ｃ７へ移行する。
【００４６】
第２ＰＷＭ検出状態Ｃ７になっている計算用サブコアモジュール２４，２５は、通信フレームの立ち下りエッジを検出した時点を起点としてローレベルが継続している時間を計測する。そして、計算用サブコアモジュール２４，２５は、通信フレームの立ち上りエッジを検出すると、故障中でないことを示す情報をレジスタＲ１に格納し、温度検出領域Ｐ２の継続時間の計測結果を示す情報をレジスタＲ４に格納し、状態遷移カウンタｃｙｃｌｅ＿ｃｎｔをインクリメント（すなわち、１加算）する。さらに、計算用サブコアモジュール２４，２５は、状態遷移カウンタｃｙｃｌｅ＿ｃｎｔの値が２８未満である場合に、第１ＰＷＭ待機状態Ｃ４へ移行する。一方、計算用サブコアモジュール２４，２５は、状態遷移カウンタｃｙｃｌｅ＿ｃｎｔの値が２８以上である場合に、ハイヘッダ待機状態Ｃ１へ移行する。
【００４７】
次に、計算用サブコアモジュール２４，２５が実行する処理の手順を説明する。
計算用サブコアモジュール２４，２５は、ＣＰＵ１１からの起動命令に従って起動すると、図４に示すように、まずＳ１０にて、自身の初期化を行う。そして、Ｓ１０の初期化が完了すると、Ｓ２０にて、エッジ検出処理を実行する。
【００４８】
エッジ検出処理では、まず、通信フレームの立ち上りエッジまたは立ち下りエッジを検出したか否かを判断する。そしてエッジ検出処理では、通信フレームの立ち上りエッジまたは立ち下りエッジを検出した場合に、上述のように、現時点における計算用サブコアモジュール２４，２５の状態Ｃ１〜Ｃ７に応じて、レジスタＲ１〜Ｒ４に情報を格納したり、状態を移行させたりする。
【００４９】
そして、Ｓ２０のエッジ検出処理が終了すると、Ｓ３０にて、処理回数カウンタｐｎ＿ｃｎｔをインクリメントする。すなわち、処理回数カウンタｐｎ＿ｃｎｔは、通信フレームの立ち上りエッジまたは立ち下りエッジを検出したか否かに関わらず、エッジ検出処理が１回実行される毎に、インクリメントされる。
【００５０】
そして、Ｓ３０の処理が終了すると、Ｓ２０に移行する。すなわち、計算用サブコアモジュール２４，２５は、その動作中において、Ｓ２０とＳ３０の処理を繰り返し実行する。
【００５１】
次に、マイコン５のＣＰＵ１１が実行する異常検出処理の手順を説明する。異常検出処理は、マイコン５の動作中において繰り返し実行される処理である。
この異常検出処理が実行されると、ＣＰＵ１１は、図５に示すように、まずＳ１１０にて、計算用サブコアモジュール２４へ起動命令を出力する。これにより、計算用サブコアモジュール２４が起動する。
【００５２】
次にＳ１２０にて、計算用サブコアモジュール２４の処理回数カウンタｐｎ＿ｃｎｔを読み出し、読み出した値を、ＲＡＭ１３に設けられた今回カウンタ値Ｃｏｕｎｔｅｒ１に格納する。
【００５３】
そしてＳ１３０にて、ＲＡＭ１３に設けられた前回カウンタ値ＯｌｄＣｏｕｎｔｅｒ１に格納されている値が今回カウンタ値Ｃｏｕｎｔｅｒ１に格納されている値に等しいか否かを判断する。ここで、前回カウンタ値ＯｌｄＣｏｕｎｔｅｒ１に格納されている値が今回カウンタ値Ｃｏｕｎｔｅｒ１に格納されている値と異なる場合には、Ｓ１４０にて、前回カウンタ値ＯｌｄＣｏｕｎｔｅｒ１に、今回カウンタ値Ｃｏｕｎｔｅｒ１に格納されている値を格納し、Ｓ１２０に移行する。
【００５４】
一方、前回カウンタ値ＯｌｄＣｏｕｎｔｅｒ１に格納されている値が今回カウンタ値Ｃｏｕｎｔｅｒ１に格納されている値に等しい場合には、Ｓ１５０にて、データ転送モジュール２３へ経路切替命令を出力する。これにより、データ転送モジュール２３は、入力モジュール２２から入力されたデータを転送する経路を、計算用サブコアモジュール２４から計算用サブコアモジュール２５へ切り替える。すなわち、データ転送モジュール２３は、入力モジュール２２から入力されたデータを計算用サブコアモジュール２４へ転送していた状態から、入力モジュール２２から入力されたデータを計算用サブコアモジュール２５へ転送する状態へ移行する。
【００５５】
またＳ１６０にて、計算用サブコアモジュール２４のメモリ４１とレジスタＲ１〜Ｒ４に格納されているデータをＲＡＭ１３に退避させる。さらにＳ１７０にて、入力モジュール２２からＮＥＷレジスタＮｅｗＳｉｇｎａｌとオーバーフローレジスタＲｅｇＯｖｅｒを読み出す。そしてＳ１８０にて、状態判断処理を実行する。
【００５６】
ここで、Ｓ１８０の状態判断処理の手順を説明する。
状態判断処理が実行されると、ＣＰＵ１１は、図６に示すように、まずＳ３１０にて、入力モジュール２２が通信フレームの立ち上りエッジまたは立ち下りエッジを検出したか否かを判断する。具体的には、ＮＥＷレジスタＮｅｗＳｉｇｎａｌが「１」に設定されている場合に、立ち上りエッジまたは立ち下りエッジを検出したと判断する。一方、ＮＥＷレジスタＮｅｗＳｉｇｎａｌが「０」に設定されている場合に、立ち上りエッジと立ち下りエッジを検出していないと判断する。以下、立ち上りエッジと立ち下りエッジをまとめて単にエッジという。
【００５７】
ここで、エッジを検出していないと判断した場合には、Ｓ３２０にて、計算用サブコアモジュール２５のメモリ４１とレジスタＲ１〜Ｒ４を書き換え、状態判断処理を終了する。具体的には、計算用サブコアモジュール２５のメモリ４１とレジスタＲ１〜Ｒ４に、ＲＡＭ１３に退避させている計算用サブコアモジュール２４のメモリ４１とレジスタＲ１〜Ｒ４のデータを上書きする。これにより、計算用サブコアモジュール２５のメモリ４１に記憶されている状態番号ｓｔａｔｅ、内部状態ｐｒｏｃ＿ｓｔａｔｅ、現在エッジ時刻ｔｉｍｅ＿ｓｔａｍｐ、前回エッジ時刻ｅｄｇｅ＿ｓｔａｒｔおよび最終計算時間ｌａｓｔ＿ｃａｌｃは、計算用サブコアモジュール２４に記憶されていた内容に変更される。同様に、計算用サブコアモジュール２５のレジスタＲ１〜Ｒ４はそれぞれ、計算用サブコアモジュール２４のレジスタＲ１〜Ｒ４に記憶されていた内容に変更される。
【００５８】
一方、エッジを検出したと判断した場合には、Ｓ３３０にて、計算用サブコアモジュール２４が故障してからエッジを１回検出したか否かを判断する。具体的には、ＮＥＷレジスタＮｅｗＳｉｇｎａｌが「１」に設定され、且つ、オーバーフローレジスタＲｅｇＯｖｅｒが「０」に設定されている場合に、エッジを１回検出したと判断する。
【００５９】
ここで、エッジを１回検出したと判断した場合には、Ｓ３４０にて、Ｓ３２０と同様にして、計算用サブコアモジュール２５のメモリ４１とレジスタＲ１〜Ｒ４を書き換える。そしてＳ３５０にて、計算用サブコアモジュール２５のメモリ４１の現在エッジ時刻ｔｉｍｅ＿ｓｔａｍｐを書き換える。具体的には、まず、入力モジュール２２から内部汎用レジスタＲｅｇ１を読み出す。そして、計算用サブコアモジュール２５のメモリ４１の現在エッジ時刻ｔｉｍｅ＿ｓｔａｍｐに、読み出した内部汎用レジスタＲｅｇ１のデータを上書きする。
【００６０】
さらにＳ３６０にて、計算用サブコアモジュール２５のメモリ４１の状態番号ｓｔａｔｅを１加算し、状態判断処理を終了する。なお、１加算した後の状態番号ｓｔａｔｅが７を超える場合には、状態遷移カウンタｃｙｃｌｅ＿ｃｎｔの値に応じて、状態番号ｓｔａｔｅは、「１」または「４」に設定される。
【００６１】
一方、エッジを１回検出していないと判断した場合には、Ｓ３７０にて、計算用サブコアモジュール２４が故障してからエッジを２回検出したか否かを判断する。具体的には、ＮＥＷレジスタＮｅｗＳｉｇｎａｌが「１」に設定され、且つ、オーバーフローレジスタＲｅｇＯｖｅｒが「１」に設定され、且つ、タイムアウトが発生していない場合に、エッジを２回検出したと判断する。なお、計算用サブコアモジュール２４のメモリ４１の現在エッジ時刻ｔｉｍｅ＿ｓｔａｍｐが示す最終エッジ時刻から予め設定されたタイムアウト判断時間が経過していない場合に、タイムアウトが発生していないと判断する。一方、最終エッジ時刻からタイムアウト判断時間が経過した場合に、タイムアウトが発生したと判断する。タイムアウト判断時間は、通信フレームにおいて温度検出領域Ｐ１または温度検出領域Ｐ２になっている時間が設定される。
【００６２】
ここで、エッジを２回検出したと判断した場合には、Ｓ３８０にて、Ｓ３２０と同様にして、計算用サブコアモジュール２５のメモリ４１とレジスタＲ１〜Ｒ４を書き換える。そしてＳ３９０にて、Ｓ３５０と同様にして、計算用サブコアモジュール２５のメモリ４１の現在エッジ時刻ｔｉｍｅ＿ｓｔａｍｐを書き換える。またＳ４００にて、計算用サブコアモジュール２５のメモリ４１の前回エッジ時刻ｅｄｇｅ＿ｓｔａｒｔを書き換える。具体的には、まず、入力モジュール２２から内部汎用レジスタＲｅｇ０を読み出す。そして、計算用サブコアモジュール２５のメモリ４１の前回エッジ時刻ｅｄｇｅ＿ｓｔａｒｔに、読み出した内部汎用レジスタＲｅｇ０のデータを上書きする。
【００６３】
さらにＳ４１０にて、計算用サブコアモジュール２５のメモリ４１の状態番号ｓｔａｔｅを２加算し、状態判断処理を終了する。なお、２加算した後の状態番号ｓｔａｔｅが７を超える場合には、状態遷移カウンタｃｙｃｌｅ＿ｃｎｔの値に応じて、状態番号ｓｔａｔｅが設定される。
【００６４】
一方、エッジを２回検出していないと判断した場合には、Ｓ４２０にて、計算用サブコアモジュール２５のメモリ４１の状態番号ｓｔａｔｅを「１」に設定し、状態判断処理を終了する。
【００６５】
そして状態判断処理が終了すると、図５に示すように、Ｓ１９０にて、計算用サブコアモジュール２５へ起動命令を出力する。これにより、計算用サブコアモジュール２５が起動する。
【００６６】
次にＳ２００にて、計算用サブコアモジュール２５の処理回数カウンタｐｎ＿ｃｎｔを読み出し、読み出した値を、ＲＡＭ１３に設けられた今回カウンタ値Ｃｏｕｎｔｅｒ２に格納する。
【００６７】
そしてＳ２１０にて、ＲＡＭ１３に設けられた前回カウンタ値ＯｌｄＣｏｕｎｔｅｒ２に格納されている値が今回カウンタ値Ｃｏｕｎｔｅｒ２に格納されている値に等しいか否かを判断する。ここで、前回カウンタ値ＯｌｄＣｏｕｎｔｅｒ２に格納されている値が今回カウンタ値Ｃｏｕｎｔｅｒ２に格納されている値と異なる場合には、Ｓ２２０にて、前回カウンタ値ＯｌｄＣｏｕｎｔｅｒ２に、今回カウンタ値Ｃｏｕｎｔｅｒ２に格納されている値を格納し、Ｓ２００に移行する。
【００６８】
一方、前回カウンタ値ＯｌｄＣｏｕｎｔｅｒ２に格納されている値が今回カウンタ値Ｃｏｕｎｔｅｒ２に格納されている値に等しい場合には、Ｓ２３０にて、停止処理を実行する。具体的には、計算用サブコアモジュール２４，２５へ停止命令を出力する。これにより、計算用サブコアモジュール２４，２５が停止する。そして、Ｓ２３０の処理が終了すると、異常検出処理を終了する。
【００６９】
次に、計算用サブコアモジュール２４が故障してから通信フレームのエッジが１回発生するまでの間にマイコン５のＣＰＵ１１が計算用サブコアモジュール２４の異常を検出した場合における入力モジュール２２と計算用サブコアモジュール２４，２５の動作を説明する。
【００７０】
図７に示すように、時刻ｔ１で通信フレームの立ち上りエッジが発生すると、入力モジュール２２は、矢印Ｌ１に示すように、内部汎用レジスタＲｅｇ１に格納されている値を内部汎用レジスタＲｅｇ０に格納する。また入力モジュール２２は、時刻ｔ１で、矢印Ｌ２に示すように、時刻生成モジュール２１の基準タイマＢａｓｅＴｉｍｅｒの値を内部汎用レジスタＲｅｇ１に格納する。また入力モジュール２２は、時刻ｔ１で、ＮＥＷレジスタＮｅｗＳｉｇｎａｌを「１」に設定する。
【００７１】
そして時刻ｔ２で、計算用サブコアモジュール２４は、入力モジュール２２からＮＥＷレジスタＮｅｗＳｉｇｎａｌを読み出す。これにより、入力モジュール２２のＮＥＷレジスタＮｅｗＳｉｇｎａｌが「０」に設定される。また計算用サブコアモジュール２４は、矢印Ｌ３に示すように、入力モジュール２２から内部汎用レジスタＲｅｇ１を読み出し、読み出した値を現在エッジ時刻ｔｉｍｅ＿ｓｔａｍｐに格納する。
【００７２】
また、時刻ｔ３で通信フレームの立ち下りエッジが発生すると、入力モジュール２２は、矢印Ｌ４に示すように、内部汎用レジスタＲｅｇ１に格納されている値を内部汎用レジスタＲｅｇ０に格納する。また入力モジュール２２は、時刻ｔ３で、矢印Ｌ５に示すように、時刻生成モジュール２１の基準タイマＢａｓｅＴｉｍｅｒの値を内部汎用レジスタＲｅｇ１に格納する。また入力モジュール２２は、時刻ｔ３で、ＮＥＷレジスタＮｅｗＳｉｇｎａｌを「１」に設定する。
【００７３】
そして時刻ｔ４で、計算用サブコアモジュール２４は、入力モジュール２２からＮＥＷレジスタＮｅｗＳｉｇｎａｌを読み出す。これにより、入力モジュール２２のＮＥＷレジスタＮｅｗＳｉｇｎａｌが「０」に設定される。また計算用サブコアモジュール２４は、矢印Ｌ６に示すように、入力モジュール２２から内部汎用レジスタＲｅｇ１を読み出し、読み出した値を現在エッジ時刻ｔｉｍｅ＿ｓｔａｍｐに格納する。
【００７４】
その後、時刻ｔ５で、計算用サブコアモジュール２４が故障したとする。そして、通信フレームにおける次の立ち上りエッジが発生する前の時刻ｔ６で、マイコン５のＣＰＵ１１が計算用サブコアモジュール２４の異常を検出したとする。これにより、ＣＰＵ１１は、計算用サブコアモジュール２４の現在エッジ時刻ｔｉｍｅ＿ｓｔａｍｐのデータを、計算用サブコアモジュール２５の現在エッジ時刻ｔｉｍｅ＿ｓｔａｍｐに上書きし、上書き後に計算用サブコアモジュール２５を起動させる。
【００７５】
また、時刻ｔ７で通信フレームの立ち上りエッジが発生すると、入力モジュール２２は、矢印Ｌ７に示すように、内部汎用レジスタＲｅｇ１に格納されている値を内部汎用レジスタＲｅｇ０に格納する。また入力モジュール２２は、時刻ｔ７で、矢印Ｌ８に示すように、時刻生成モジュール２１の基準タイマＢａｓｅＴｉｍｅｒの値を内部汎用レジスタＲｅｇ１に格納する。また入力モジュール２２は、時刻ｔ７で、ＮＥＷレジスタＮｅｗＳｉｇｎａｌを「１」に設定する。
【００７６】
そして時刻ｔ８で、計算用サブコアモジュール２５は、入力モジュール２２からＮＥＷレジスタＮｅｗＳｉｇｎａｌを読み出す。これにより、入力モジュール２２のＮＥＷレジスタＮｅｗＳｉｇｎａｌが「０」に設定される。また計算用サブコアモジュール２５は、矢印Ｌ９に示すように、入力モジュール２２から内部汎用レジスタＲｅｇ１を読み出し、読み出した値を現在エッジ時刻ｔｉｍｅ＿ｓｔａｍｐに格納する。
【００７７】
次に、計算用サブコアモジュール２４が故障してから通信フレームのエッジが２回発生するまでの間にマイコン５のＣＰＵ１１が計算用サブコアモジュール２４の異常を検出した場合における入力モジュール２２と計算用サブコアモジュール２４，２５の動作を説明する。
【００７８】
図８に示すように、時刻ｔ５で計算用サブコアモジュール２４が故障するまでは図７と同じであるため、時刻ｔ５までの説明を省略する。
時刻ｔ５で計算用サブコアモジュール２４が故障した後の時刻ｔ１１で、通信フレームにおける次の立ち上りエッジが発生すると、入力モジュール２２は、矢印Ｌ１１に示すように、内部汎用レジスタＲｅｇ１に格納されている値を内部汎用レジスタＲｅｇ０に格納する。また入力モジュール２２は、時刻ｔ１１で、矢印Ｌ１２に示すように、時刻生成モジュール２１の基準タイマＢａｓｅＴｉｍｅｒの値を内部汎用レジスタＲｅｇ１に格納する。また入力モジュール２２は、時刻ｔ１１で、ＮＥＷレジスタＮｅｗＳｉｇｎａｌを「１」に設定する。
【００７９】
この時点で既に計算用サブコアモジュール２４が故障しているため、計算用サブコアモジュール２４は、入力モジュール２２からＮＥＷレジスタＮｅｗＳｉｇｎａｌを読み出すことができない。これにより、入力モジュール２２のＮＥＷレジスタＮｅｗＳｉｇｎａｌは、「１」に設定されている状態を継続する。また、計算用サブコアモジュール２４は、入力モジュール２２から内部汎用レジスタＲｅｇ１を読み出すことができない。これにより、計算用サブコアモジュール２４の現在エッジ時刻ｔｉｍｅ＿ｓｔａｍｐは、その値が更新されない状態を継続する。
【００８０】
そして、通信フレームにおける次の立ち下りエッジが発生する前の時刻ｔ１２で、マイコン５のＣＰＵ１１が計算用サブコアモジュール２４の異常を検出したとする。これにより、ＣＰＵ１１は、矢印Ｌ１３に示すように、入力モジュール２２から内部汎用レジスタＲｅｇ１を読み出し、読み出した値を計算用サブコアモジュール２５の現在エッジ時刻ｔｉｍｅ＿ｓｔａｍｐに格納する。これにより、入力モジュール２２のＮＥＷレジスタＮｅｗＳｉｇｎａｌは「０」に設定される。そしてＣＰＵ１１は、計算用サブコアモジュール２５を起動させる。
【００８１】
また、時刻ｔ１３で通信フレームの立ち下りエッジが発生すると、入力モジュール２２は、矢印Ｌ１４に示すように、内部汎用レジスタＲｅｇ１に格納されている値を内部汎用レジスタＲｅｇ０に格納する。また入力モジュール２２は、時刻ｔ１３で、矢印Ｌ１５に示すように、時刻生成モジュール２１の基準タイマＢａｓｅＴｉｍｅｒの値を内部汎用レジスタＲｅｇ１に格納する。また入力モジュール２２は、時刻ｔ１３で、ＮＥＷレジスタＮｅｗＳｉｇｎａｌを「１」に設定する。
【００８２】
そして時刻ｔ１４で、計算用サブコアモジュール２５は、入力モジュール２２からＮＥＷレジスタＮｅｗＳｉｇｎａｌを読み出す。これにより、入力モジュール２２のＮＥＷレジスタＮｅｗＳｉｇｎａｌが「０」に設定される。また計算用サブコアモジュール２５は、矢印Ｌ１６に示すように、入力モジュール２２から内部汎用レジスタＲｅｇ１を読み出し、読み出した値を現在エッジ時刻ｔｉｍｅ＿ｓｔａｍｐに格納する。
【００８３】
次に、計算用サブコアモジュール２４が故障してから通信フレームのエッジが３回発生するまでの間にマイコン５のＣＰＵ１１が計算用サブコアモジュール２４の異常を検出した場合における入力モジュール２２と計算用サブコアモジュール２４，２５の動作を説明する。
【００８４】
図９に示すように、時刻ｔ１１で立ち上りエッジが発生するまでは図８と同じであるため、時刻ｔ１１までの説明を省略する。
時刻ｔ１１で立ち上りエッジが発生した後の時刻ｔ２１で、通信フレームにおける次の立ち下りエッジが発生すると、入力モジュール２２は、矢印Ｌ２１に示すように、内部汎用レジスタＲｅｇ１に格納されている値を内部汎用レジスタＲｅｇ０に格納する。また入力モジュール２２は、時刻ｔ２１で、矢印Ｌ２２に示すように、時刻生成モジュール２１の基準タイマＢａｓｅＴｉｍｅｒの値を内部汎用レジスタＲｅｇ１に格納する。
【００８５】
この時点で既に計算用サブコアモジュール２４が故障しているため、計算用サブコアモジュール２４は、入力モジュール２２からＮＥＷレジスタＮｅｗＳｉｇｎａｌを読み出すことができない。これにより、入力モジュール２２のＮＥＷレジスタＮｅｗＳｉｇｎａｌは、「１」に設定されている状態を継続する。
【００８６】
また、計算用サブコアモジュール２４は、入力モジュール２２から内部汎用レジスタＲｅｇ１を読み出すことができない。これにより、計算用サブコアモジュール２４の現在エッジ時刻ｔｉｍｅ＿ｓｔａｍｐは、その値が更新されない状態を継続する。さらに、入力モジュール２２は、内部汎用レジスタＲｅｇ０，Ｒｅｇ１が読み出される前に、時刻ｔ２１で内部汎用レジスタＲｅｇ０，Ｒｅｇ１を更新するため、オーバーフローレジスタＲｅｇＯｖｅｒを「１」に設定する。
【００８７】
そして、通信フレームにおける次の立ち上りエッジが発生する前の時刻ｔ２２で、マイコン５のＣＰＵ１１が計算用サブコアモジュール２４の異常を検出したとする。これにより、ＣＰＵ１１は、矢印Ｌ２３に示すように、入力モジュール２２から内部汎用レジスタＲｅｇ１を読み出し、読み出した値を計算用サブコアモジュール２５の現在エッジ時刻ｔｉｍｅ＿ｓｔａｍｐに格納する。なお、図９に示していないが、ＣＰＵ１１は、入力モジュール２２から内部汎用レジスタＲｅｇ０を読み出し、読み出した値を計算用サブコアモジュール２５の前回エッジ時刻ｅｄｇｅ＿ｓｔａｒｔに格納する。これにより、入力モジュール２２のＮＥＷレジスタＮｅｗＳｉｇｎａｌとオーバーフローレジスタＲｅｇＯｖｅｒは「０」に設定される。そしてＣＰＵ１１は、計算用サブコアモジュール２５を起動させる。
【００８８】
また、時刻ｔ２３で通信フレームの立ち上りエッジが発生すると、入力モジュール２２は、矢印Ｌ２４に示すように、内部汎用レジスタＲｅｇ１に格納されている値を内部汎用レジスタＲｅｇ０に格納する。また入力モジュール２２は、時刻ｔ２３で、矢印Ｌ２５に示すように、時刻生成モジュール２１の基準タイマＢａｓｅＴｉｍｅｒの値を内部汎用レジスタＲｅｇ１に格納する。また入力モジュール２２は、時刻ｔ２３で、ＮＥＷレジスタＮｅｗＳｉｇｎａｌを「１」に設定する。
【００８９】
そして時刻ｔ２４で、計算用サブコアモジュール２５は、入力モジュール２２からＮＥＷレジスタＮｅｗＳｉｇｎａｌを読み出す。これにより、入力モジュール２２のＮＥＷレジスタＮｅｗＳｉｇｎａｌが「０」に設定される。また計算用サブコアモジュール２５は、矢印Ｌ２６に示すように、入力モジュール２２から内部汎用レジスタＲｅｇ１を読み出し、読み出した値を現在エッジ時刻ｔｉｍｅ＿ｓｔａｍｐに格納する。
【００９０】
次に、計算用サブコアモジュール２４が故障してから通信フレームのエッジが４回発生するまでの間にマイコン５のＣＰＵ１１が計算用サブコアモジュール２４の異常を検出した場合における入力モジュール２２と計算用サブコアモジュール２４，２５の動作を説明する。
【００９１】
図１０に示すように、時刻ｔ２１で立ち下りエッジが発生するまでは図９と同じであるため、時刻ｔ２１までの説明を省略する。
時刻ｔ２１で立ち下りエッジが発生した後の時刻ｔ３１で、通信フレームにおける次の立ち上りエッジが発生すると、入力モジュール２２は、矢印Ｌ３１に示すように、内部汎用レジスタＲｅｇ１に格納されている値を内部汎用レジスタＲｅｇ０に格納する。また入力モジュール２２は、時刻ｔ３１で、矢印Ｌ３２に示すように、時刻生成モジュール２１の基準タイマＢａｓｅＴｉｍｅｒの値を内部汎用レジスタＲｅｇ１に格納する。
【００９２】
この時点で既に計算用サブコアモジュール２４が故障しているため、計算用サブコアモジュール２４は、入力モジュール２２からＮＥＷレジスタＮｅｗＳｉｇｎａｌを読み出すことができない。これにより、入力モジュール２２のＮＥＷレジスタＮｅｗＳｉｇｎａｌは、「１」に設定されている状態を継続する。
【００９３】
また、計算用サブコアモジュール２４は、入力モジュール２２から内部汎用レジスタＲｅｇ１を読み出すことができない。これにより、計算用サブコアモジュール２４の現在エッジ時刻ｔｉｍｅ＿ｓｔａｍｐは、その値が更新されない状態を継続し、オーバーフローレジスタＲｅｇＯｖｅｒは、「１」に設定されている状態を継続する。
【００９４】
そして、通信フレームにおける次の立ち下りエッジが発生する前の時刻ｔ３２で、マイコン５のＣＰＵ１１が計算用サブコアモジュール２４の異常を検出したとする。これにより、ＣＰＵ１１は、入力モジュール２２から内部汎用レジスタＲｅｇ１を読み出すことなく、計算用サブコアモジュール２５を起動させる。
【００９５】
このように構成されたインバータ１の入力モジュール２２は、入力された通信フレームにおいてハイレベルとローレベルとの間で信号レベルが変化した時刻であるエッジ時刻を検出し、直近の２つのエッジ時刻を示す今回エッジ時刻情報および前回エッジ時刻情報を記憶するように構成される。通信フレームは、ハイレベルとローレベルとの間で信号レベルが繰り返し変化して、先頭部分であるローヘッダ領域ＨＤ＿Ｌと、ローヘッダ領域ＨＤ＿Ｌよりも後の部分である２８個の温度検出領域Ｐ１，Ｐ２とを有する。また通信フレームは、ローヘッダ領域ＨＤ＿Ｌがローレベルの状態を継続した時間Ｔｈと、温度検出領域Ｐ１，Ｐ２がローレベルの状態を継続した時間Ｔ１，Ｔ２とによりモータ駆動回路３の温度の検出結果を示す。
【００９６】
計算用サブコアモジュール２４は、入力モジュール２２に記憶されている今回エッジ時刻情報および前回エッジ時刻情報に基づいて、時間Ｔｈおよび時間Ｔ１，Ｔ２を算出するように構成される。計算用サブコアモジュール２５は、入力モジュール２２に記憶されている今回エッジ時刻情報および前回エッジ時刻情報に基づいて、時間Ｔｈおよび時間Ｔ１，Ｔ２を算出するように構成される。
【００９７】
マイコン５のＣＰＵ１１は、前回カウンタ値ＯｌｄＣｏｕｎｔｅｒ１に格納されている値が今回カウンタ値Ｃｏｕｎｔｅｒ１に格納されている値に等しいか否かに基づいて、計算用サブコアモジュール２４が故障したか否かを判断するように構成される。
【００９８】
ＣＰＵ１１は、計算用サブコアモジュール２４が故障したと判断した場合に、入力モジュール２２に記憶されているＮＥＷレジスタＮｅｗＳｉｇｎａｌとオーバーフローレジスタＲｅｇＯｖｅｒに基づいて、計算用サブコアモジュール２４が故障した時点から入力モジュール２２がエッジ時刻を検出した回数（以下、エッジ検出回数）を検出するように構成される。
【００９９】
ＣＰＵ１１は、検出したエッジ検出回数に応じて予め設定されたデータ転送条件に基づいて、計算用サブコアモジュール２５が時間Ｔｈおよび時間Ｔ１，Ｔ２を算出するために必要なデータ（以下、算出用データ）を、入力モジュール２２および計算用サブコアモジュール２４の少なくとも一方から抽出して計算用サブコアモジュール２５へ転送するように構成される。
【０１００】
具体的には、ＣＰＵ１１は、検出したエッジ検出回数が０である場合には、算出用データとして、計算用サブコアモジュール２４のメモリ４１およびレジスタＲ１〜Ｒ４に記憶されているデータを計算用サブコアモジュール２５へ転送する。
【０１０１】
またＣＰＵ１１は、検出したエッジ検出回数が１である場合には、算出用データとして、計算用サブコアモジュール２４のメモリ４１およびレジスタＲ１〜Ｒ４に記憶されているデータと、入力モジュール２２の内部汎用レジスタＲｅｇ１に記憶されているデータを計算用サブコアモジュール２５へ転送する。
【０１０２】
またＣＰＵ１１は、検出したエッジ検出回数が２である場合には、算出用データとして、計算用サブコアモジュール２４のメモリ４１およびレジスタＲ１〜Ｒ４に記憶されているデータと、入力モジュール２２の内部汎用レジスタＲｅｇ１，Ｒｅｇ０に記憶されているデータを計算用サブコアモジュール２５へ転送する。
【０１０３】
すなわち、ＣＰＵ１１は、検出されたエッジ検出回数が入力モジュール２２に記憶されているエッジ時刻情報の数（すなわち、２）を超えていない場合に、入力モジュール２２に記憶されている２つのエッジ時刻情報の中から、検出されたエッジ検出回数分のエッジ時刻情報を、時刻が遅いものから優先的に抽出し、抽出したエッジ時刻情報を、算出用データの少なくとも一部として計算用サブコアモジュール２５へ転送する。
【０１０４】
そしてＣＰＵ１１は、算出用データを計算用サブコアモジュール２５へ転送した後に、計算用サブコアモジュール２５に時間Ｔｈおよび時間Ｔ１，Ｔ２の算出を開始させるように構成される。
【０１０５】
このようにインバータ１のマイコン５は、計算用サブコアモジュール２４が故障した場合に、この故障時点からのエッジ検出回数に応じたデータ転送条件に基づいて、上記の算出用データを、入力モジュール２２および計算用サブコアモジュール２４の少なくとも一方から抽出して計算用サブコアモジュール２５へ転送する。
【０１０６】
これにより、計算用サブコアモジュール２５は、計算用サブコアモジュール２４が故障した時点から入力モジュール２２が１回もエッジ時刻を検出していない場合には、計算用サブコアモジュール２４が故障する直前までに記憶していたデータを用いて、計算用サブコアモジュール２４が故障する直前における計算用サブコアモジュール２４の状態を再現することができる。このため、計算用サブコアモジュール２５は、時間Ｔｈおよび時間Ｔ１，Ｔ２の算出を即座に継続することができ、次のローヘッダ領域ＨＤ＿Ｌが入力するまで待機する必要がなくなる。
【０１０７】
また計算用サブコアモジュール２５は、計算用サブコアモジュール２４が故障した時点から入力モジュール２２がエッジ時刻を検出している場合であっても、入力モジュール２２が記憶しているエッジ時刻の数の範囲内（すなわち、０〜２）で、計算用サブコアモジュール２４が現時点で故障していないと仮定した場合の計算用サブコアモジュール２４の状態を再現することができる。計算用サブコアモジュール２４は、入力モジュール２２に記憶されている今回エッジ時刻情報および前回エッジ時刻情報に基づいて時間Ｔｈおよび時間Ｔ１，Ｔ２を算出するからである。このため、計算用サブコアモジュール２５は、時間Ｔｈおよび時間Ｔ１，Ｔ２の算出を即座に継続することができ、次のローヘッダ領域ＨＤ＿Ｌが入力するまで待機する必要がなくなる。
【０１０８】
以上より、インバータ１のマイコン５は、計算用サブコアモジュール２４から計算用サブコアモジュール２５に切り替えた場合に次のローヘッダ領域ＨＤ＿Ｌが入力するまで待機しなければならない事態の発生を抑制することができる。
【０１０９】
これにより、マイコン５は、計算用サブコアモジュール２４が故障してから次のローヘッダ領域ＨＤ＿Ｌが入力するまでの間においてモータ駆動回路３の温度を検出することができないという事態の発生を抑制することができる。このため、モータ駆動回路３の温度を検出することができない状態においてモータ駆動回路３が高温になったにも関わらずインバータ１がモータ制御を継続していまい、モータ駆動回路３が破損してしまったりモータ駆動回路３が誤動作してしまったりするという事態の発生を抑制することができる。
【０１１０】
また、計算用サブコアモジュール２４，２５は、通信フレームにおける信号レベルの変化に基づいて、ローヘッダ検出状態Ｃ３であるか否かと、第１ＰＷＭ検出状態Ｃ５であるか否かと、第２ＰＷＭ検出状態Ｃ７であるか否かを識別することができる状態番号ｓｔａｔｅを設定する。
【０１１１】
そしてＣＰＵ１１は、計算用サブコアモジュール２４が故障したと判断した場合に、検出したエッジ検出回数と、計算用サブコアモジュール２４の状態番号ｓｔａｔｅとに基づいて、計算用サブコアモジュール２５の状態番号ｓｔａｔｅを設定するように構成される。これにより、計算用サブコアモジュール２５は、計算用サブコアモジュール２４が故障した場合であっても、計算用サブコアモジュール２４が現時点で故障していないと仮定した場合における計算用サブコアモジュール２４の状態番号ｓｔａｔｅを計算用サブコアモジュール２５内において再現することができる。
【０１１２】
以上説明した実施形態において、マイコン５は時間算出装置に相当し、入力モジュール２２はエッジ時刻検出部に相当し、計算用サブコアモジュール２４は第１時間算出部に相当し、計算用サブコアモジュール２５は第２時間算出部に相当する。
【０１１３】
また、Ｓ１３０は故障判断部としての処理に相当し、Ｓ３１０，Ｓ３３０，Ｓ３７０は回数検出部としての処理に相当し、Ｓ３２０，Ｓ３４０，Ｓ３５０，Ｓ３８０，Ｓ３９０，Ｓ４００は転送部としての処理に相当し、Ｓ１９０は算出開始部としての処理に相当する。
【０１１４】
また、ハイレベルは第１レベルに相当し、ローレベルは第２レベルに相当し、ローヘッダ領域ＨＤ＿Ｌはヘッダ領域に相当し、温度検出領域Ｐ１，Ｐ２はパルス幅変調領域に相当し、時間Ｔｈは第１継続時間に相当し、時間Ｔ１，Ｔ２は第２継続時間に相当し、通信フレームはパルス幅変調信号に相当する。
【０１１５】
また、今回エッジ時刻情報および前回エッジ時刻情報はエッジ時刻情報に相当し、Ｓ１３０の判断条件は故障判断条件に相当し、算出用データは算出用情報に相当する。
また、Ｓ３６０，Ｓ４１０，Ｓ４２０は状態設定部としての処理に相当し、ローヘッダ検出状態Ｃ３は第１算出状態に相当し、第１ＰＷＭ検出状態Ｃ５および第２ＰＷＭ検出状態Ｃ７は第２算出状態に相当し、状態番号ｓｔａｔｅは状態情報に相当する。
【０１１６】
（第２実施形態）
以下に本開示の第２実施形態を図面とともに説明する。なお第２実施形態では、第１実施形態と異なる部分を説明する。共通する構成については同一の符号を付す。
【０１１７】
第２実施形態のインバータ１は、入力モジュール２２と計算用サブコアモジュール２４，２５と状態判断処理が変更された点が第１実施形態と異なる。
第２実施形態の入力モジュール２２は、内部汎用レジスタＲｅｇ０，Ｒｅｇ１に記憶させるデータが第１実施形態と異なる。具体的には、内部汎用レジスタＲｅｇ０は、今回エッジ時刻情報を記憶する。また内部汎用レジスタＲｅｇ１は、エッジが発生した回数（以下、エッジ回数）を記憶する。
【０１１８】
第２実施形態の計算用サブコアモジュール２４，２５は、メモリ４１に記憶されるデータが追加される点が第１実施形態と異なる。具体的には、メモリ４１は、更に、前回エッジ回数ＧＰＲ１＿ＯＬＤ、ヘッダ時間ｔｉｍｅ＿ｈ、Ａｃｈ時間ｔｉｍｅ＿ａおよびＢｃｈ時間ｔｉｍｅ＿ｂを記憶する。
【０１１９】
計算用サブコアモジュール２４，２５は、入力モジュール２２から内部汎用レジスタＲｅｇ１を読み出すと、読み出した値を前回エッジ回数ＧＰＲ１＿ＯＬＤに格納する。
次に、第２実施形態の状態判断処理の手順を説明する。
【０１２０】
第２実施形態の状態判断処理が実行されると、ＣＰＵ１１は、図１１に示すように、まずＳ５１０にて、Ｓ３１０と同様にして、入力モジュール２２が通信フレームの立ち上りエッジまたは立ち下りエッジを検出したか否かを判断する。ここで、エッジを検出していないと判断した場合には、Ｓ５２０にて、Ｓ３２０と同様にして、計算用サブコアモジュール２５のメモリ４１とレジスタＲ１〜Ｒ４を書き換え、状態判断処理を終了する。
【０１２１】
一方、エッジを検出したと判断した場合には、Ｓ５３０にて、Ｓ５２０と同様にして、計算用サブコアモジュール２５のメモリ４１とレジスタＲ１〜Ｒ４を書き換える。
そしてＳ５４０にて、計算用サブコアモジュール２５の状態番号ｓｔａｔｅを更新する。具体的には、まず、入力モジュール２２から内部汎用レジスタＲｅｇ１を読み出す。そして、読み出した内部汎用レジスタＲｅｇ１の値から、計算用サブコアモジュール２５の前回エッジ時間ＧＰＲ１＿ＯＬＤに格納されている値を減算した減算値を、計算用サブコアモジュール２５の状態番号ｓｔａｔｅに格納されている値に加算する。さらに、この加算値を計算用サブコアモジュール２５の状態番号ｓｔａｔｅに上書きする。なお、加算後の状態番号ｓｔａｔｅが７を超える場合には、状態遷移カウンタｃｙｃｌｅ＿ｃｎｔの値に応じて、状態番号ｓｔａｔｅは、第２ＰＷＭ検出状態Ｃ７からハイヘッダ待機状態Ｃ１へ移行する経路、または、第２ＰＷＭ検出状態Ｃ７から第１ＰＷＭ待機状態Ｃ４へ移行する経路となるように設定される。
【０１２２】
次にＳ５５０にて、計算用サブコアモジュール２５の状態番号ｓｔａｔｅが「３」であるか否かを判断する。ここで、状態番号ｓｔａｔｅが「３」である場合には、Ｓ５６０にて、入力モジュール２２から内部汎用レジスタＲｅｇ０を読み出し、読み出した内部汎用レジスタＲｅｇ０のデータを計算用サブコアモジュール２５のメモリ４１のヘッダ時間ｔｉｍｅ＿ｈに上書きする。これにより、次の立ち上りエッジを検出した時点で、時間Ｔｈを算出することができる。そしてＳ５６０の処理が終了すると、状態判断処理を終了する。
【０１２３】
一方、状態番号ｓｔａｔｅが「３」でない場合には、Ｓ５７０にて、計算用サブコアモジュール２５の状態番号ｓｔａｔｅが「５」であるか否かを判断する。ここで、状態番号ｓｔａｔｅが「５」である場合には、Ｓ５８０にて、入力モジュール２２から内部汎用レジスタＲｅｇ０を読み出し、読み出した内部汎用レジスタＲｅｇ０のデータを計算用サブコアモジュール２５のメモリ４１のＡｃｈ時間ｔｉｍｅ＿ａに上書きする。これにより、次の立ち上りエッジを検出した時点で、時間Ｔ１を算出することができる。そしてＳ５８０の処理が終了すると、状態判断処理を終了する。
【０１２４】
一方、状態番号ｓｔａｔｅが「５」でない場合には、Ｓ５９０にて、計算用サブコアモジュール２５の状態番号ｓｔａｔｅが「７」であるか否かを判断する。ここで、状態番号ｓｔａｔｅが「７」である場合には、Ｓ６００にて、入力モジュール２２から内部汎用レジスタＲｅｇ０を読み出し、読み出した内部汎用レジスタＲｅｇ０のデータを計算用サブコアモジュール２５のメモリ４１のＢｃｈ時間ｔｉｍｅ＿ｂに上書きする。これにより、次の立ち上りエッジを検出した時点で、時間Ｔ２を算出することができる。そしてＳ６００の処理が終了すると、状態判断処理を終了する。一方、状態番号ｓｔａｔｅが「７」でない場合には、状態判断処理を終了する。
【０１２５】
次に、計算用サブコアモジュール２４が故障してから通信フレームのエッジが１回発生するまでの間にマイコン５のＣＰＵ１１が計算用サブコアモジュール２４の異常を検出した場合における入力モジュール２２と計算用サブコアモジュール２４，２５の動作を説明する。
【０１２６】
図１２に示すように、時刻ｔ４１で通信フレームの立ち上りエッジが発生すると、入力モジュール２２は、矢印Ｌ４１に示すように、時刻生成モジュール２１の基準タイマＢａｓｅＴｉｍｅｒの値を内部汎用レジスタＲｅｇ０に格納する。また入力モジュール２２は、時刻ｔ４１で、内部汎用レジスタＲｅｇ１をインクリメントするとともに、ＮＥＷレジスタＮｅｗＳｉｇｎａｌを「１」に設定する。
【０１２７】
そして時刻ｔ４２で、計算用サブコアモジュール２４は、入力モジュール２２からＮＥＷレジスタＮｅｗＳｉｇｎａｌを読み出す。これにより、入力モジュール２２のＮＥＷレジスタＮｅｗＳｉｇｎａｌが「０」に設定される。また計算用サブコアモジュール２４は、矢印Ｌ４２に示すように、入力モジュール２２から内部汎用レジスタＲｅｇ０を読み出し、読み出した値を現在エッジ時刻ｔｉｍｅ＿ｓｔａｍｐに格納する。
【０１２８】
また、時刻ｔ４３で通信フレームの立ち下りエッジが発生すると、入力モジュール２２は、矢印Ｌ４３に示すように、時刻生成モジュール２１の基準タイマＢａｓｅＴｉｍｅｒの値を内部汎用レジスタＲｅｇ０に格納する。また入力モジュール２２は、時刻ｔ４３で、内部汎用レジスタＲｅｇ１をインクリメントするとともに、ＮＥＷレジスタＮｅｗＳｉｇｎａｌを「１」に設定する。
【０１２９】
そして時刻ｔ４４で、計算用サブコアモジュール２４は、入力モジュール２２からＮＥＷレジスタＮｅｗＳｉｇｎａｌを読み出す。これにより、入力モジュール２２のＮＥＷレジスタＮｅｗＳｉｇｎａｌが「０」に設定される。また計算用サブコアモジュール２４は、矢印Ｌ４４に示すように、入力モジュール２２から内部汎用レジスタＲｅｇ０を読み出し、読み出した値を現在エッジ時刻ｔｉｍｅ＿ｓｔａｍｐに格納する。
【０１３０】
その後、時刻ｔ４５で、計算用サブコアモジュール２４が故障したとする。そして、通信フレームにおける次の立ち上りエッジが発生する前の時刻ｔ４６で、マイコン５のＣＰＵ１１が計算用サブコアモジュール２４の異常を検出したとする。これにより、ＣＰＵ１１は、計算用サブコアモジュール２４の現在エッジ時刻ｔｉｍｅ＿ｓｔａｍｐのデータを、計算用サブコアモジュール２５の現在エッジ時刻ｔｉｍｅ＿ｓｔａｍｐに上書きし、上書き後に計算用サブコアモジュール２５を起動させる。
【０１３１】
また、時刻ｔ４７で通信フレームの立ち上りエッジが発生すると、入力モジュール２２は、矢印Ｌ４５に示すように、時刻生成モジュール２１の基準タイマＢａｓｅＴｉｍｅｒの値を内部汎用レジスタＲｅｇ０に格納する。また入力モジュール２２は、時刻ｔ４７で、ＮＥＷレジスタＮｅｗＳｉｇｎａｌを「１」に設定する。
【０１３２】
そして時刻ｔ４８で、計算用サブコアモジュール２５は、入力モジュール２２からＮＥＷレジスタＮｅｗＳｉｇｎａｌを読み出す。これにより、入力モジュール２２のＮＥＷレジスタＮｅｗＳｉｇｎａｌが「０」に設定される。また計算用サブコアモジュール２５は、矢印Ｌ４６に示すように、入力モジュール２２から内部汎用レジスタＲｅｇ０を読み出し、読み出した値を現在エッジ時刻ｔｉｍｅ＿ｓｔａｍｐに格納する。
【０１３３】
なお、計算用サブコアモジュール２４が故障してから通信フレームのエッジが２，３，４回発生するまでの間にマイコン５のＣＰＵ１１が計算用サブコアモジュール２４の異常を検出した場合における計算用サブコアモジュール２４，２５の動作の説明は省略する。
【０１３４】
このように構成されたインバータ１のマイコン５のＣＰＵ１１は、検出されたエッジ検出回数が、入力モジュール２２に記憶されているエッジ時刻情報の数（すなわち、１）以上である場合に、直近のエッジ時刻を示す今回エッジ時刻情報を、算出用データの一部として計算用サブコアモジュール２５へ転送する。
【０１３５】
これにより、計算用サブコアモジュール２５は、直近のエッジ時刻を示す今回エッジ時刻情報を記憶した状態となるため、計算用サブコアモジュール２５が起動した直後に、時間Ｔｈ，Ｔ１，Ｔ２の算出を即座に継続することができ、次のローヘッダ領域ＨＤ＿Ｌが入力するまで待機する必要がなくなる。但し、計算用サブコアモジュール２５は、検出されたエッジ検出回数が、入力モジュール２２に記憶されているエッジ時刻情報の数を超えている場合には、計算用サブコアモジュール２４が故障してから計算用サブコアモジュール２５が起動するまでにおける時間Ｔｈ，Ｔ１，Ｔ２を算出することはできない。
【０１３６】
以上説明した実施形態において、Ｓ５１０は回数検出部としての処理に相当し、Ｓ５２０，Ｓ５３０，Ｓ５６０，Ｓ５８０，Ｓ６００は転送部としての処理に相当し、Ｓ５４０は状態設定部としての処理に相当する。
【０１３７】
以上、本開示の一実施形態について説明したが、本開示は上記実施形態に限定されるものではなく、種々変形して実施することができる。
［変形例１］
例えば上記実施形態では、通信フレームが時間Ｔｈ，Ｔ１，Ｔ２によりモータ駆動回路３の温度の検出結果を示すものを示したが、温度を検出するものに限定されるものではなく、ヘッダ領域およびパルス幅変調領域の継続時間により検出結果を示すものであればよい。
【０１３８】
［変形例２］
上記実施形態では、入力モジュール２２が直近の１つまたは２つのエッジ時刻を示すエッジ時刻情報を記憶するように構成されたものを示したが、直近の３つ以上のエッジ時刻を示すエッジ時刻情報を記憶するようにしてもよい。
【０１３９】
［変形例３］
上記実施形態では、ローヘッダ領域ＨＤ＿Ｌと温度検出領域Ｐ１，Ｐ２においてローレベルの状態を継続した時間を算出するものを示したが、ハイレベルの状態を継続した時間を算出するようにしてもよい。
【０１４０】
また、上記実施形態における１つの構成要素が有する機能を複数の構成要素に分担させたり、複数の構成要素が有する機能を１つの構成要素に発揮させたりしてもよい。また、上記実施形態の構成の一部を省略してもよい。また、上記実施形態の構成の少なくとも一部を、他の上記実施形態の構成に対して付加、置換等してもよい。なお、特許請求の範囲に記載の文言から特定される技術思想に含まれるあらゆる態様が本開示の実施形態である。
【０１４１】
上述したマイコン５の他、当該マイコン５を構成要素とするシステム、当該マイコン５としてコンピュータを機能させるためのプログラム、このプログラムを記録した媒体、時間算出方法など、種々の形態で本開示を実現することもできる。
【符号の説明】
【０１４２】
１…インバータ、５…マイコン、１１…ＣＰＵ、２２…入力モジュール、２４，２５…計算用サブコアモジュール
【図１】
2018049451.tif 000003
【図２】
2018049451.tif 000004
【図３】
2018049451.tif 000005
【図４】
2018049451.tif 000006
【図５】
2018049451.tif 000007
【図６】
2018049451.tif 000008
【図７】
2018049451.tif 000009
【図８】
2018049451.tif 000010
【図９】
2018049451.tif 000011
【図１０】
2018049451.tif 000012
【図１１】
2018049451.tif 000013
【図１２】
2018049451.tif 000014