(57)【要約】【課題】マイコンが異常となるまでの過渡的な状態を検出可能な電子制御装置を提供すること。【解決手段】パルス信号を継続的に出力する第１の情報処理手段１２と、前記パルス信号を受信する第２の情報処理手段１３とを有する電子制御装置１００であって、外部から取得した外部情報を演算してＰＷＭ信号を作成するＰＷＭ信号作成手段３４と、前記ＰＷＭ信号作成手段がＰＷＭ信号の作成を開始した時に前記パルス信号をＬｏｗに設定し作成を終了した時にＨｉｇｈに設定するか、又は、ＰＷＭ信号の作成を開始した時にＬｏｗに設定し作成を終了した時にＨｉｇｈに設定することで前記パルス信号を作成するパルス信号作成手段３２と、前記パルス信号を監視して、前記ＰＷＭ信号作成手段がＰＷＭ信号の作成を開始した時から終了する時までの作成時間を測定する作成時間測定手段４１，４３と、を有することを特徴とする。【選択図】図１
2014154043.tif 000002
【特許請求の範囲】
【請求項１】
パルス信号を継続的に出力する第１の情報処理手段と、前記パルス信号を受信する第２の情報処理手段とを有する電子制御装置であって、
外部から取得した外部情報を演算してＰＷＭ信号を作成するＰＷＭ信号作成手段と、
前記ＰＷＭ信号作成手段がＰＷＭ信号の作成を開始した時に前記パルス信号をＬｏｗに設定し作成を終了した時にＨｉｇｈに設定するか、又は、ＰＷＭ信号の作成を開始した時にＬｏｗに設定し作成を終了した時にＨｉｇｈに設定することで前記パルス信号を作成するパルス信号作成手段と、
前記パルス信号を監視して、前記ＰＷＭ信号作成手段がＰＷＭ信号の作成を開始した時から終了する時までの作成時間を測定する作成時間測定手段と、
を有することを特徴とする電子制御装置。
【請求項２】
前記ＰＷＭ信号作成手段はキャリア波の周期毎にＰＷＭ信号を作成するものであり、
前記作成時間測定手段は、前記パルス信号の立ち下がり又は立ち上がりを監視して、ＰＷＭ信号作成手段がＰＷＭ信号の作成を開始した時から、次回、ＰＷＭ信号の作成を開始した時までの時間をキャリア波の周期として測定する、
ことを特徴とする請求項１記載の電子制御装置。
【請求項３】
前記パルス信号作成手段は、前記ＰＷＭ信号作成手段がＰＷＭ信号の作成を開始した時から作成を終了する時までの間に、前記パルス信号に所定長のデータを挿入し、
ＰＷＭ信号を監視してＰＷＭ信号の立ち上がりを検出するＰＷＭ信号監視手段と、
前記ＰＷＭ信号の立ち上がりが検出された時を前記データの先頭に特定して前記データを受信するデータ受信手段と、
を有することを特徴とする請求項１又は２記載の電子制御装置。
【請求項４】
前記作成時間が所定値以上の場合、キャリア波の周期を長くするフェールセーフ手段を有する、ことを特徴とする請求項１〜３いずれか１項記載の電子制御装置。
【請求項５】
ＰＷＭ信号を監視して、ＰＷＭ信号の立ち上がり又は立ち下がりの少なくとも一方を検出するＰＷＭ信号監視手段と、
前記作成時間測定手段が測定したキャリア波の周期内に、前記ＰＷＭ信号監視手段がＰＷＭ信号の立ち上がり又は立ち下がりのどちらも検出しない場合、ＰＷＭ信号の出力を停止するフェールセーフ手段と、
を有することを特徴とする請求項２記載の電子制御装置。
【請求項６】
前記ＰＷＭ信号作成手段がＰＷＭ信号を作成していない場合、前記パルス信号作成手段は、定期的に状態が切り替わる前記パルス信号を作成し、
前記フェールセーフ手段は、所定時間内に前記パルス信号の状態が切り替わらない場合、前記ＰＷＭ信号作成手段にフェールセーフ処理を施す、
ことを特徴とする請求項４又は５記載の電子制御装置。
【請求項７】
前記作成時間が所定値以上の場合、キャリア波の周期を長くするフェールセーフ手段を有し、
前記フェールセーフ手段は、前記データ受信手段が受信したデータに応じて、前記所定値を変更する、
ことを特徴とする請求項３記載の電子制御装置。
【請求項８】
パルス信号を受信して当該情報処理装置がＰＷＭ信号の作成を開始した時から終了する時までの作成時間を測定する第２の情報処理装置に、前記パルス信号を継続的に出力する情報処理装置であって、
外部から取得した外部情報を演算してＰＷＭ信号を作成するＰＷＭ信号作成手段と、
前記ＰＷＭ信号作成手段がＰＷＭ信号の作成を開始した時に前記パルス信号をＬｏｗに設定し作成を終了した時にＨｉｇｈに設定するか、又は、ＰＷＭ信号の作成を開始した時にＬｏｗに設定し作成を終了した時にＨｉｇｈに設定することで前記パルス信号を作成するパルス信号作成手段と、
を有することを特徴とする情報処理装置。
【請求項９】
外部から取得した外部情報を演算してＰＷＭ信号を作成するＰＷＭ信号作成手段と、
前記ＰＷＭ信号作成手段がＰＷＭ信号の作成を開始した時にパルス信号をＬｏｗに設定し作成を終了した時にＨｉｇｈに設定するか、又は、ＰＷＭ信号の作成を開始した時にＬｏｗに設定し作成を終了した時にＨｉｇｈに設定することで前記パルス信号を作成するパルス信号作成手段と、を有する第２の情報処理装置から、
前記パルス信号を受信するパルス信号受信手段と、
前記パルス信号を監視して、前記ＰＷＭ信号作成手段がＰＷＭ信号の作成を開始した時から終了する時までの作成時間を測定する作成時間測定手段と、
を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、処理負荷を監視する電子制御装置に関する。
【背景技術】
【０００２】
車両には各種の車載装置を制御するＥＣＵ（Electronic Control Computer）が搭載されている。このＥＣＵには、車載装置を制御するマイコンが搭載されるが、マイコンに異常が生じた場合に早期に復帰させるためマイコンを監視する監視方法が考案されている（例えば、特許文献１参照。）。特許文献１には、ウォッチドッグタイマがカウントする値を、制御ＣＰＵが定期的にクリアし、カウント値が所定値を超えた場合に制御ＣＰＵの異常を検出するＣＰＵ演算時間監視方法が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開2002-315346号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に開示されたマイコンの監視方法では、監視対象のマイコンに異常が生じるまでは異常を検出することができないという問題がある。換言すると、ウォッチドッグタイマのクリアが遅れるほどの異常が生じる前の過渡的な状態を検出できない。
【０００５】
本発明は、マイコンが異常となるまでの過渡的な状態を検出可能な電子制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、パルス信号を継続的に出力する第１の情報処理手段と、前記パルス信号を受信する第２の情報処理手段とを有する電子制御装置であって、外部から取得した外部情報を演算してＰＷＭ信号を作成するＰＷＭ信号作成手段と、前記ＰＷＭ信号作成手段がＰＷＭ信号の作成を開始した時に前記パルス信号をＬｏｗに設定し作成を終了した時にＨｉｇｈに設定するか、又は、ＰＷＭ信号の作成を開始した時にＬｏｗに設定し作成を終了した時にＨｉｇｈに設定することで前記パルス信号を作成するパルス信号作成手段と、前記パルス信号を監視して、前記ＰＷＭ信号作成手段がＰＷＭ信号の作成を開始した時から終了する時までの作成時間を測定する作成時間測定手段と、を有することを特徴とする。
【発明の効果】
【０００７】
マイコンが異常となるまでの過渡的な状態を検出可能な電子制御装置を提供することができる。
【図面の簡単な説明】
【０００８】
【図１】本実施形態のモータ制御装置におけるマイコンの監視方法の概略的な特徴を説明する図の一例である。
【図２】モータの制御系のブロック図の一例、デューティの算出方法を模式的に説明する図の一例である。
【図３】モータ制御マイコンと監視マイコンの概略構成図の一例である。
【図４】キャリア波、ＰＷＭ信号、及び、パルス出力について説明する図の一例である。
【図５】モータ制御マイコンの動作手順を示すフローチャート図の一例である。
【図６】監視マイコンの動作手順を示すフローチャート図の一例である。
【図７】モータ制御マイコンと監視マイコンの機能ブロック図の一例である（実施例２）。
【図８】キャリア波、ＰＷＭ信号、及び、パルス出力について説明する図の一例である。
【図９】モータ制御マイコンの動作手順を示すフローチャート図の一例である（実施例２）。
【図１０】監視マイコンの動作手順を示すフローチャート図の一例である（実施例２）。
【発明を実施するための形態】
【０００９】
以下、本発明を実施するための形態について図面を参照しながら説明する。
【実施例１】
【００１０】
図１は本実施形態のモータ制御装置におけるマイコンの監視方法の概略的な特徴を説明する図の一例である。モータ制御マイコン１２は三相モータの制御信号を監視マイコン１３に出力すると共に、監視マイコン１３がモータ制御マイコン１２を監視するためのパルスを継続的に出力している。監視マイコン１３はパルスが出力されていること（ＯＮ／ＯＦＦの変化が所定時間内に繰り返されていること）を検出して、モータ制御マイコン１２が正常であることを検出している。以下、パルスで監視することを「ウォッチドッグ」という。
【００１１】
モータ制御マイコン１２の処理負荷が増大したためパルスを出力できない場合、監視マイコン１３はモータ制御マイコン１２の異常を検出してリセットするなどのフェールセーフ処理を行っている。パルスをこのようなウォッチドッグのために使用することは従来から利用されているが、主に異常の有無しか監視できないものであった。
【００１２】
そこで、本実施形態のモータ制御マイコン１２は、モータを回転駆動していない場合（後述するモード１）はウォッチドッグのためのパルスを出力し、モータを回転駆動している場合（後述するモード２）はパルスにより以下の３つの情報を伝達する。
(i)  処理負荷情報（Ｈ時間）
(ii)  ＣＰＵ負荷の余裕度
(iii)  キャリア波の周波数
図１（ｂ）に示すように、モータ制御マイコン１２はキャリア波の周期をパルスの１周期としている。また、モータ制御マイコン１２はキャリア波の周期毎にＰＷＭ信号のインバータ制御を行うので（例えば、デューティを演算する）、ＰＷＭ信号の周期とパルスの周期は同期する。そこで、モータ制御マイコン１２はインバータ制御の開始のタイミングでパルスを立ち上げ、インバータ制御が終了するとパルスを立ち下げる。このため、インバータ制御の処理負荷が高くなるとパルスがＨを維持する時間（以下、Ｈ時間という）が長くなる。監視マイコン１３はＨ時間により(i)処理負荷情報を取得する。
【００１３】
また、パルスはキャリア波の周期毎に立ち上がるので、パルスの立ち上がりから次の立ち上がりまでがパルスの１周期である。監視マイコン１３はパルスの立ち上がりを監視して(iii) キャリア波の周波数を取得する。(iii)キャリア波の周期からＨ時間を除いた残りが(ii)ＣＰＵ負荷の余裕度である。
【００１４】
このように、従来から使用されている信号線を使用して、監視マイコン１３はモータ制御マイコン１２に異常が生じなくてもモータ制御マイコン１２の過渡的な処理負荷などを監視できる。処理負荷が大きくなった場合は、リセットする前に負荷を下げるなどのフェールセーフが可能になる。
【００１５】
〔インバータ制御〕  
図２（ａ）はモータ１５の制御系のブロック図の一例であり、図２（ｂ）はデューティの算出方法を模式的に説明する図の一例である。モータ制御マイコン１２はＨＶ−ＥＣＵ１１と接続されており、監視マイコン１３を経由してインバータ１４及びモータ１５と接続されている。インバータ１４はＰＷＭ制御型であり、６個のパワーＭＯＳＦＥＴやＩＢＧＴなどのスイッチ素子をブリッジ接続した構成を有する。インバータ１４は印加された電圧を三相交流電圧に変換してモータ１５のＵ，Ｖ，Ｗの各相用のステータコイルに供給する。インバータ１４からモータ１５に供給されるＶ相とＷ相の電流値（実電流）Iv、Iwはモータ制御マイコン１２にフィードバックされている。Ｕ相の電流値は演算により求められる。
【００１６】
モータ１５は例えば三相の交流モータであり、車両の駆動力を単独で又はエンジンと共に発揮する。なお、モータは交流モータに限られずＤＣモータなどＰＷＭ制御されるものであればよい。モータ１５にはホール素子など回転数を検出可能なセンサが配置されており、例えばホール素子が検出した回転角θがモータ制御マイコン１２に出力される。モータ制御マイコン１２は回転角θから、モータ１５の回転数を演算する。
【００１７】
ＨＶ−ＥＣＵ１１ は、アクセルペダルストロークセンサなどで検出した運転者のアクセルペダルの操作量、及び、車速センサが検出した車速に基づいてモータ１５の電流指令値を決定しモータ制御マイコン１２に出力する。ＨＶ−ＥＣＵ１１等から出力される情報が特許請求の範囲の外部情報に相当する。または、モータ制御マイコン１２が電流指令値を決定してもよい。電流指令値は、モータ１５に流れる電流の座標系における基本波の振幅と位相（周波数）を指示するものである。基本波は正弦波なので任意のキャリア波の周期における波形は既知になる。
キャリア波の周波数は明示的な指示がなければ一定であり、決まった周期で決まった電圧が繰り返し生成されている。よって、キャリア波の周期毎に、基本波を数値表現して基本波の振幅、位相を決定し、数値表現された基本波とキャリア波を比較する。図示するようにキャリア波の周期の始点から、キャリア波と基本波の交わるまでがＰＷＭ信号のデューティとなる。
【００１８】
モータ制御マイコン１２はデューティに対応する電流値と実電流を比較して差を算出し、差を消去する各相のＰＷＭ制御電圧（ＰＷＭ信号）を発生させ、ＰＷＭ制御電圧によりインバータ１４のスイッチ素子をＯＮ／ＯＦＦ制御する。インバータ１４は出力電圧をモータ１５のステータコイルに印加する。これにより、モータ１５は基本波の周波数に対応する回転数で回転する。以下、デューティの算出を含め、モータ制御マイコン１２の制御をインバータ制御という。
【００１９】
このようなインバータ制御では、モータ回転数の増加や車両状況の変化に伴い割り込みが頻発したり、運転者のアクセルペダルの操作が急変したりすることなどにより、処理負荷が増大する。処理負荷が極度に増大すると温度上昇などによりＣＰＵ動作速度が低下したり、ＰＷＭ信号の出力が間に合わない現象が生じうる。本実施例では処理負荷が増大したためにこのような基本的な性能が損なわれる前に、監視マイコン１３がモータ制御マイコン１２の過渡的な状態を監視することを可能とする。
【００２０】
〔構成例〕
図３（ａ）はモータ制御マイコン１２と監視マイコン１３の概略構成図の一例を示す。モータ制御マイコン１２と監視マイコン１３は１つの筐体に収容された１つのＥＣＵ（電子制御装置）として動作する。しかし、モータ制御マイコン１２と監視マイコン１３が１つのチップであってもパルスによりモータ制御機能を監視機能が監視できる点で変わりはない。また、モータ制御マイコン１２と監視マイコン１３が別々のＥＣＵ（筐体）に格納されていても一方が他方を監視できる。
【００２１】
モータ制御マイコン１２は、バスに接続された、ＣＰＵ２１、ＲＡＭ２２、ＲＯＭ２３、及び、入出力インタフェース２４を有する。監視マイコン１３はＣＰＵ２６、ＲＡＭ２７、ＲＯＭ２８、及び、入出力インタフェース２５を有するが、インバータ１４にＰＷＭ信号を送信するためにさらに入出力インタフェース２９を有している。この他、モータ制御マイコン１２と監視マイコン１３はマイコンに一般的な構成を備えているが図示は省略されている。
【００２２】
入出力インタフェース２４と２５は、互いに、１本のパルス線５１、６本のＰＷＭ信号線５２及び１本以上のフェールセーフ信号線５３で接続されている。パルス線５１は、ウォッチドッグ機能を提供すると共に、監視マイコン１３がモータ制御マイコン１２を監視するためのパルスが送信される線である。６本のＰＷＭ信号線５２はＵ相の２つのスイッチ素子、Ｖ相の２つのスイッチ素子、及び、Ｗ相の２つのスイッチ素子をＯＮ／ＯＦＦするＰＷＭ信号が送信される線である。フェールセーフ信号線５３は、監視マイコン１３がモータ制御マイコン１２の処理負荷を下げる制御を行ったり、モータ制御マイコン１２をリセットするための制御を行う線である。フェールセーフ信号線５３は、例えば、制御の種類毎に設けられ、Ｈ又はＬを通知する線でよい。例えば、処理負荷を下げる制御では１回のパルス（H→L）で所定量だけ処理負荷を下げることを通知する。リセットする制御ではL→H（ハイアクティブ）又はH→L(ローアクティブ)でモータ制御マイコン１２をリセットする。または、フェールセーフ信号線５３をシリアル線とし、１本で全ての制御の種類に対応させてもよい。
【００２３】
監視マイコン１３内の入出力インタフェース２５，２９は６本のＰＷＭ信号線で接続されている。ＣＰＵ２６は６本のＰＷＭ信号線５２の状態を監視している。常態ではＣＰＵ２６はＰＷＭ信号を加工することはなく、監視マイコン１３はＰＷＭ信号をそのまま通過させる。そして、ＰＷＭ信号が確認できない状態になると、ＣＰＵ２６は該ＰＷＭ信号のスイッチ５４をＯＦＦにして、ＰＷＭ信号のインバータ１４への出力を停止する。ＰＷＭ信号が確認できない場合、モータ制御マイコン１２に何らかの異常が生じ始めている可能性があるので、そのような異常な状態でモータ制御を行うことを防止できる。
【００２４】
図３（ｂ）はモータ制御マイコン１２と監視マイコン１３の機能ブロック図の一例を示す。モータ制御マイコン１２は、キャリア波を発生するキャリア波発生部３１、パルスを作成するパルス作成部３２、ＰＷＭ信号を作成するインバータ制御部３４、及び、キャリア波の周波数を制御するキャリア周波数制御部３３を有している。また、監視マイコン１３は、パルスを監視するパルス監視部４１、ＰＷＭ信号を監視するＰＷＭ信号監視部４２、モータ制御マイコン１２の処理負荷を判定する処理負荷判定部４３、及び、モータ制御マイコン１２をフェールセーフ制御するフェールセーフ部４４を有する。これらについては後述する。
【００２５】
なお、モータ制御マイコン１２と監視マイコン１３は、モータ１５が停止している（ＰＷＭ信号が出力されない）モード１とモータ１５が動作中のモード２という２つの動作モードを有している。
モード１：ウォッチドッグモード
モード２：本実施例の異常監視モード
モータ制御マイコン１２と監視マイコン１３は、ＰＷＭ信号が出力されているか否かに基づきモード１かモード２かを判定する。以下、主にモード２における機能について説明する。
【００２６】
〔監視内容について〕
図４は、キャリア波、ＰＷＭ信号、及び、パルス信号について説明する図の一例である。キャリア波はモータ制御マイコン１２内でキャリア波発生部３１が発生させるため監視マイコン１３には出力されない。ＰＷＭ信号とパルスは、モータ制御マイコン１２が作成し監視マイコン１３に出力されるものである。ＰＷＭ信号は６本のＰＷＭ信号線５２でそれぞれ送信されるが、監視マイコン１３が着目するのは、パルス信号と同期した１つのＰＷＭ信号である。
【００２７】
・モータ制御マイコン
キャリア波発生部３１は基準となる周波数で繰り返しキャリア波を発生させる。キャリア波の周波数はノイズ対策などのため下限と上限の範囲で調整可能になっている。図では鋸歯形状であるが三角波でもよい。
【００２８】
インバータ制御部３４はキャリア波の周期に同期してこの周期毎にインバータ制御を行う。例えば、キャリア波の立ち上がりエッジ又は立ち下がりエッジの割り込みなどでＣＰＵ２１はインバータ制御部３４を起床する。上記のようにインバータ制御部３４はデューティを算出しＰＷＭ信号を出力する。なお、インバータ制御部３４は次の周期のデューティを演算するので、i番目の周期で演算したデューティはi+1番目の周期のＰＷＭ信号に反映される。また、処理負荷とＰＷＭ信号のデューティには相関はないとしてよい（インバータ制御に長時間かかっても、デューティが大きくなるわけではない）。
【００２９】
また、本実施例のインバータ制御部３４は、インバータ制御を開始した時に（例えば起床直後に）パルス作成部３２に制御開始を通知する。この通知を取得することで、パルス作成部３２はパルス信号線をＨに設定する。また、インバータ制御部３４は１つのキャリア波の周期のインバータ制御が終了した時にパルス作成部３２に制御終了を通知する。この通知を取得することで、パルス作成部３２はパルス信号線をＬに設定する。したがって、パルスはキャリア波の周期の開始時にＨになり、インバータ制御が終了する時にＬとなる。よって、Ｈ時間がインバータ制御に必要な時間を意味することになり、監視マイコン１３はパルスからモータ制御マイコン１２の処理負荷を推定することが可能になる。なお、ＬとＨの設定は逆でもよく、この場合は監視マイコン１３がパルスのＬ状態の時間から処理負荷を判定すればよい。
キャリア周波数制御部３３はフェールセーフ部４４からの要求に応じて、キャリア波の周波数を下げる。これにより、モータ制御マイコン１２の処理負荷を低減できる。
【００３０】
・監視マイコン
監視マイコン１３のパルス監視部４１はパルスを監視し、例えばＬ→Ｈの立ち上がりを検出したことを処理負荷判定部４３に通知し、Ｈ→Ｌの立ち下がりを検出したことを処理負荷判定部４３に通知する。これにより、処理負荷判定部４３は以下の３つの情報を取得する。
(i)  処理負荷情報
(ii)  ＣＰＵ負荷の余裕度
(iii)  キャリア波の周波数
(i)は立ち上がり検出から立ち下がり検出までの時間であり、インバータ制御の時間（すなわち処理負荷）を表している。(iii)は立ち上がり検出から次の立ち上がり検出までの時間であり、キャリア波の周波数（及び周期）を表している。(ii)は立ち下がり検出から立ち上がり検出までの時間であり、インバータ制御が終わってから次のインバータ制御が始まるまでのＣＰＵ負荷の余裕度を表している。このように、処理負荷判定部４３はモータ制御マイコン１２の処理負荷、ＣＰＵ負荷の余裕度及びキャリア波の周波数を監視できる。なお、(iii)キャリア波の周波数をＰＷＭ信号の立ち上がりから取得することもできる。
【００３１】
また、ＰＷＭ信号監視部４２はＰＷＭ信号を監視し、例えばＬ→Ｈの立ち上がりを検出したことを処理負荷判定部４３に通知する。これにより、処理負荷判定部４３は(iii)と同様にキャリア波の周波数（周期）を検出できる。パルスから検出されるキャリア波の周波数とＰＷＭ信号から検出されるキャリア波の周波数は誤差を除けば同じである。
【００３２】
したがって、処理負荷判定部４３はさらに以下の情報を取得できる。
(iv)  ＰＷＭ信号の異常監視
１つのキャリア波の周期に１回のＰＷＭ信号（１つ分の矩形波）が形成されているはずである。そこで、処理負荷判定部４３は１つのキャリア波の周期内にＰＷＭ信号が検出されたか否かを判定する。例えば、キャリア波の周期よりも十分に長い時間を対象とすれば、ＰＷＭ信号の立ち上がり及び立ち下がりが検出されたか否かを監視する。キャリア波の周期と同程度がやや短い時間を対象とすれば、ＰＷＭ信号の立ち上がり又は立ち下がりの少なくともどちらかが検出されたか否かを監視する。
【００３３】
処理負荷判定部４３は、(i)(ii)から処理負荷が高くなったと判定するとフェールセーフ部４４にフェールセーフを要求する。この場合、フェールセーフ部４４はキャリア周波数制御部３３にキャリア波の周波数を下げるよう要求する。キャリア波の周波数が下がることでインバータ制御の頻度が低下するのでモータ制御マイコン１２の処理負荷を低減できる。
【００３４】
また、処理負荷判定部４３は、(iv)からＰＷＭ信号の異常であると判定するとフェールセーフ部４４にフェールセーフを要求する。この場合、フェールセーフ部４４は監視マイコン１３側で上記のスイッチ５４をＯＦＦにして、インバータ１４への出力を停止する。
【００３５】
このように、本実施例のモータ制御装置１００は、モータ制御マイコン１２が異常によりリセットが必要な状態になる前に処理負荷を下げることが可能である。
【００３６】
〔動作手順〕
図５は、モータ制御マイコン１２の動作手順を示すフローチャート図の一例である。図５の手順はキャリア波の周期毎に繰り返し実行される。
【００３７】
まず、モータ制御マイコン１２はＰＷＭ信号を出力しているか否かを判定してモータ制御マイコン１２の動作モードを決定する（Ｓ１０）。ＰＷＭ信号の出力の有無はモータ制御マイコン１２がＰＷＭ信号を作成しているか否により明らかであるが、ＰＷＭ信号を監視して判断してもよい。
【００３８】
ＰＷＭ信号を出力しておらずモード１の場合（Ｓ１０のＮｏ）、パルス作成部３２は定期的にパルスの設定をＨ又はＬに切り替える（Ｓ８０）。すなわち、パルスのデューティは例えば１０〜９０％等の範囲で固定になる。
【００３９】
ＰＷＭ信号を出力しておりモード２の場合（Ｓ１０のＹｅｓ）、インバータ制御部３４はキャリア波の周期が開始されたか否かをキャリア波に基づき判定する（Ｓ２０）。
【００４０】
キャリア波の周期が開始された場合（Ｓ２０のＹｅｓ）、インバータ制御部３４はパルス作成部３２に制御開始を通知するので、パルス作成部３２はパルスをＨに設定する（Ｓ３０）。
【００４１】
その後、インバータ制御部３４はインバータ制御を行う（Ｓ４０）。
【００４２】
インバータ制御が完了すると、インバータ制御部３４はパルス作成部３２に制御終了を通知するので、パルス作成部３２はパルスをＬに設定する（Ｓ５０）。
【００４３】
キャリア周波数制御部３３は任意のタイミングで監視マイコン１３からフェールセーフ要求があるか否かを判定する（Ｓ６０）。
【００４４】
そして、フェールセーフ要求がある場合（Ｓ６０のＹｅｓ）、キャリア周波数制御部３３はキャリア波の周波数を下げることでＣＰＵ２１の処理負荷を低減する（Ｓ７０）。
【００４５】
図６は監視マイコン１３の動作手順を示すフローチャート図の一例である。
まず、監視マイコン１３はＰＷＭ信号の出力があるか否かを判定して監視マイコン１３の動作モードを決定する（Ｓ１１０）。
【００４６】
ＰＷＭ信号の出力がなくモード１の場合（Ｓ１１０のＮｏ）、処理負荷判定部４３はパルス監視部４１が監視するパルスの間隔からモータ制御マイコン１２の異常を監視する（Ｓ２００）。
【００４７】
ＰＷＭ信号の出力がありモード２の場合（Ｓ１１０のＹｅｓ）、処理負荷判定部４３はパルス監視部４１からパルスの立ち上がり検出を取得したか否かを判定する（Ｓ１２０）。
【００４８】
パルスの立ち上がり検出を取得した場合（Ｓ１２０のＹｅｓ）、処理負荷判定部４３はタイマ１のカウントを開始し、タイマ２のカウントを停止した後、再度、開始させる（Ｓ１３０）。タイマ１はＨ時間を計測するタイマであり、タイマ２はキャリア波の周期を計測するタイマである。
【００４９】
次に、処理負荷判定部４３はパルス監視部４１からパルスの立ち下がり検出を取得したか否かを判定する（Ｓ１４０）。
【００５０】
パルスの立ち下がり検出を取得した場合（Ｓ１４０のＹｅｓ）、処理負荷判定部４３はタイマ１のカウントを停止する（Ｓ１５０）。これにより、(i)処理負荷情報が得られる。また、ステップＳ１３０のタイマ２により(iii)キャリア波の周波数が分かっているので、(ii)ＣＰＵ負荷の余裕度が求められる。
【００５１】
処理負荷判定部４３はＨ時間を所定値と比較するなどして必要であればフェールセーフ制御１を行う（Ｓ１６０）。フェールセーフ制御１はモータ制御マイコン１２の処理負荷を下げるフェールセーフである。
【００５２】
次いで、処理負荷判定部４３はタイマ２のカウント値が閾値を超えたか否かを判定する（Ｓ１７０）。この閾値はＳ１３０で求められるキャリア波の周期よりもやや短い値である。キャリア波の周期から動的に定めてもよい。
【００５３】
したがって、タイマ２のカウント値が閾値を超えた場合（Ｓ１７０のＹｅｓ）、ＰＷＭ信号が検出されているはずなので、処理負荷判定部４３はＰＷＭ信号監視部４２からＰＷＭ信号の立ち上がり検出又は立ち下がり検出を取得したことを確認する（Ｓ１８０）。例えば、ＰＷＭ信号の立ち上がり検出又は立ち下がりでＯＮになるフラグを参照する（参照後はＯＦＦに設定する）。
【００５４】
処理負荷判定部４３はＰＷＭ信号が検出されていない場合、フェールセーフ制御２を行う（Ｓ１９０）。フェールセーフ制御２はＰＷＭ信号のインバータ１４への出力を停止するフェールセーフである。
【００５５】
以上説明したように本実施例のモータ制御装置１００は、従来から使用されているパルスを使用して、モータ制御マイコン１２に異常が生じなくても処理負荷などを監視でき、それ以上処理負荷が増大しないような適切なフェールセーフを行うことができる。
【実施例２】
【００５６】
本実施例では、さらにパルスにより任意のデータを送信可能なモータ制御装置１００について説明する。本実施例において、実施例１で同一の符号を付した構成要素は同様の機能を果たすので、主に本実施例の主要な構成要素についてのみ説明する場合がある。
【００５７】
図７は本実施例のモータ制御マイコン１２と監視マイコン１３の機能ブロック図の一例を示す。モータ制御マイコン１２は新たにデータ準備部３５を有し、監視マイコン１３はデータ受信部４５を有する。データ準備部３５は任意のデータを送信用に加工してパルス作成部３２に出力する。データ受信部４５はパルス監視部４１が監視するパルスから通信規約に従ってデータを受信する。
【００５８】
図８は、キャリア波、ＰＷＭ信号、及び、パルス出力について説明する図の一例である。本実施例ではパルスの先頭からスタートブロックＳ、データブロックＤ及び処理負荷ブロックＬの３つのブロックがある点で実施例１と異なっている。
【００５９】
・モータ制御マイコン
キャリア波発生部３１については実施例１と同様でよいが、パルス作成部３２はキャリア波の周期に基づきパルスを作成する。すなわち、パルス作成部３２はインバータ制御部３４がインバータ制御を開始する前に、Ｈ出力を開始する。Ｈ出力の開始のタイミングはキャリア波の周期の始点のＺ時間前である。具体的には、キャリア波の周期の開始時からタイマなどで「キャリア波の周期−Ｚ時間」が経過することをカウントしてＨ出力を開始すればよい。なお、Ｚ時間先にするのは、監視マイコン１３が、データブロックの始点をＰＷＭ信号の立ち上がりで検出するためである。この意味で、本実施例のＰＷＭ信号はデータの送受信のためのクロック信号を代用している。
【００６０】
パルス作成部３２はＨ出力をＸ時間、維持する。Ｘ時間は監視マイコン１３がスタートブロックを確認でき、Z時間よりも短い時間であればよい。制御を簡単にするにはX時間＝Z時間とすることができる。
【００６１】
データ準備部３５は予め所定量のデータをパルス作成部３２に出力しておくか、又は、モータ制御マイコン１２の動作クロックに同期して１ビットずつデータをパルス作成部３２に出力する。データについては後述するがどのようなデータを送信してもよい。本実施例ではキャリア波の１周期で８ビット（１バイト）のデータを送信する（データブロックのサイズが１バイト）ものとする。
【００６２】
データの送信には以下の２つの態様がある。
Ａ．１バイトの各ビットに意味を持たせ各ビットが"１"又は"０"のどちらであるかでモータ制御マイコン１２の状態を通知する態様
Ｂ．１バイトより多いデータを複数個のキャリア波の周期に分けて送信する態様
Ａの場合、１バイトで最大で８種類の情報を送信できる。Ｂの態様の場合、データの先頭を監視マイコン１３に知らせるため、データを送信する前に例えば"00000000"のデータブロック（同期フレーム）をデータ準備部３５が準備する。以降は、送信対象のデータが例え"00000000"であっても"00000000"としないために、ビット８を"１"に固定する。例えば、"00000001"を送信する場合、"10000001"を送信し、"00000010"を送信する場合、"10000010"を送信し、"00000011"を送信する場合、"10000011"を送信する。よって、監視マイコン１３は下位７ビットを例えばASCIIコードとして解釈しデータを受信する。
【００６３】
また、ひとまとまりのデータの終了を通知するため、データ準備部３５は、再度、"00000000"を準備する。したがって、最初の"00000000"から"00000000"までがひとまとまりのデータである。送信するデータがない場合、例えば"00000000"以外のデータとしてランダムなデータや"11111111"を送信する。
【００６４】
データ準備部３５が準備するデータは例えばエラー情報であり、以下のような内容が挙げられる。
er1．マイコン電源系の電圧の低下が検出されたこと（ＣＰＵに異常が生じるおそれがある）
er2．インバータ１４の電圧異常、マイコンのＡ／Ｄ変換機能や電流センサ異常が検出されたこと（ＰＷＭ信号作成に必要な部品の異常）
er3．エラー情報に限られず、モータ制御マイコン１２の制御状態のログ
モータ制御マイコン１２はこのように多様な情報を監視マイコン１３に送信することができる。
【００６５】
パルス作成部３２は、データブロックの挿入に続いて、インバータ制御部３４が制御終了を通知するまでの間、パルスをＨに設定する。すなわち、仮にデータブロックが"11111111"だとすると、スタートブロック、データブロック及び処理負荷ブロックは１つの矩形波となる。データブロックを送信し終える前にインバータ制御部３４が制御終了を通知した場合は、処理負荷ブロックは存在しない。したがって、本実施例においても、スタートブロックの立ち上がりがZ時間早まるだけで、パルス（スタートブロック）の立ち上がりからパルスの立ち下がりまでの時間で(i)インバータ制御の処理負荷を通知できる。(ii)ＣＰＵ負荷の余裕度、(iii)キャリア波の周波数についても同様である。
【００６６】
・監視マイコン１３
監視マイコン１３のパルス監視部４１はパルスを監視し、例えばＬ→Ｈの立ち上がりを検出したことを処理負荷判定部４３に通知する。また、データブロックにLビットが含まれうるので、「Z時間＋１バイト」長さのビット列を無視した後、Ｈ→Ｌの立ち下がりを検出したことを処理負荷判定部４３に通知する。これにより、処理負荷判定部４３は以下の４つの情報を取得する。
(i)  処理負荷情報
(ii)  ＣＰＵ負荷の余裕度
(iii)  キャリア波の周波数
(iv)  ＰＷＭ信号の異常監視
なお、キャリア波の周期はパルスの立ち上がりから次の立ち上がりまでの時間でよいが、周期の位置がZ時間前方にずれているので、キャリア波の周期だけでなく、位置まで含めて同期するにはキャリア波の周波数をZ時間補正する。このような補正をしなくても、 (iv) ＰＷＭ信号の異常監視は可能である。
【００６７】
また、データ受信部４５はさらに以下の情報を取得できる。
(v)  データ内容
データ受信部４５は、ＰＷＭ信号監視部４２が通知するＰＷＭ信号の立ち上がり検出によりデータブロックの先頭を検出する。データ受信部４５は、データブロックの先頭から７ビットをパルスから抽出する（８ビットをパルスから抽出し、８ビット目を削除してもよい）。
【００６８】
フェールセーフ部４４は例えばex1のエラー情報（マイコン電源の異常）を受信した場合、Ｈ時間と比較される所定値を短くする。マイコン電源に異常がある場合ＣＰＵにも影響するおそれが高いので、早期にモータ制御マイコン１２の処理負荷を下げることが可能になる。また、例えばex2のエラー情報（ＰＷＭ信号作成に必要な部品の異常）を受信した場合、フェールセーフ部４４はＰＷＭ信号の出力を停止する。ＰＷＭ信号作成に必要な部品に異常がある場合、ＰＷＭ信号の信頼性が低いと推定して制御を中止できる。
【００６９】
〔動作手順〕
図９は、モータ制御マイコン１２の動作手順を示すフローチャート図の一例である。図９の手順はキャリア波の周期毎に繰り返し実行される。Ｓ２１０，Ｓ３００について実施例１と同様である。
【００７０】
モード２の場合、パルス作成部３２は、キャリア波の周期のZ時間手前になったか否かをキャリア波の周期とタイマなどにより判定する（Ｓ２２０）。
【００７１】
キャリア波の周期開始のZ時間手前になった場合（Ｓ２２０のＹｅｓ）、パルス作成部３２はパルスをＨに設定してX時間保持する（Ｓ２３０）。X時間とZ時間が等しくない場合、パルス作成部３２はキャリア波の周期が開始されるまでパルスをH又はLに設定する。また、キャリア波の周期が開始されるとインバータ制御部３４はインバータ制御を行う。
【００７２】
パルス作成部３２は、データ準備部３５が準備した１バイトのデータをパルスに設定する（Ｓ２４０）。
【００７３】
次に、パルス作成部３２はパルスにＨを設定する（Ｓ２５０）。１バイトのデータをパルスに設定する前に次のＳ２６０の制御終了が通知される場合は、Ｓ２５０のＨは設定されない。
【００７４】
パルス作成部３２は、インバータ制御部３４がパルス作成部３２に制御終了を通知するまでパルスをＨに維持する（Ｓ２６０）。
【００７５】
インバータ制御が完了すると、インバータ制御部３４はパルス作成部３２に制御終了を通知するので、パルス作成部３２はパルスをＬに設定する（Ｓ２７０）。
【００７６】
キャリア周波数制御部３３は任意のタイミングで監視マイコン１３からフェールセーフ要求があるか否かを判定する（Ｓ２８０）。
【００７７】
そして、フェールセーフ要求がある場合（Ｓ２８０のＹｅｓ）、キャリア周波数制御部３３はキャリア波の周波数を下げることでＣＰＵの処理負荷を低減する（Ｓ２９０）。
【００７８】
図１０は監視マイコン１３の動作手順を示すフローチャート図の一例である。ステップＳ４１０、Ｓ５３０については実施例１と同様である。
【００７９】
ＰＷＭ信号の出力がありモード２の場合、処理負荷判定部４３はパルス監視部４１からパルスの立ち上がり検出を取得したか否かを判定する（Ｓ４２０）。
【００８０】
パルスの立ち上がり検出を取得した場合（Ｓ４２０のＹｅｓ）、処理負荷判定部４３はタイマ１のカウントを開始し、タイマ２のカウントを停止した後、再度、開始させる（Ｓ４３０）。タイマ１はＨ時間を計測するタイマであり、タイマ２はキャリア波の周期を計測するタイマである。
【００８１】
次に、処理負荷判定部４３はＰＷＭ信号監視部４２からＰＷＭ信号の立ち上がり検出を取得したか否かを判定する（Ｓ４４０）。これにより、データブロックの先頭を特定できる。
【００８２】
ＰＷＭ信号の立ち上がり検出を取得した場合（Ｓ４４０のＹｅｓ）、データ受信部４５はパルスからデータブロックを抽出する（Ｓ４５０）。
【００８３】
データ受信部４５はひとまとまりのエラー情報などを受信してエラー内容を判別し、必要であればフェールセーフ部４４にフェールセーフ制御３を要求する（Ｓ４６０）。フェールセーフ制御３は異常判断の早期化やＰＷＭ信号の停止などである。
【００８４】
次に、処理負荷判定部４３はパルス監視部４１からパルスの立ち下がり検出を取得したか否かを判定する（Ｓ４７０）。上記のようにデータブロックが終了するまでの立ち下がりは無視される。
【００８５】
パルスの立ち下がり検出を取得した場合（Ｓ４７０のＹｅｓ）、処理負荷判定部４３はタイマ１のカウントを停止する（Ｓ４８０）。これにより、(i)処理負荷情報が得られる。また、ステップＳ４３０のタイマ２により(iii)キャリア波の周波数が分かっているので、(ii)ＣＰＵ負荷の余裕度が求められる。
【００８６】
処理負荷判定部４３はＨ時間を所定値と比較するなどして必要であればフェールセーフ制御１を行う（Ｓ４９０）。フェールセーフ制御１はモータ制御マイコン１２の処理負荷を下げるフェールセーフである。
【００８７】
次いで、処理負荷判定部４３はタイマ２のカウント値が閾値を超えたか否かを判定する（Ｓ５００）。この閾値はＳ４３０で求められるキャリア波の周期よりもやや短い値である。動的に定めてもよい。本実施例ではステップＳ４４０でＰＷＭ信号の立ち上がりが検出されるが、Ｓ４４０で検出されなかった場合はＳ５００でタイマ２が閾値を超える。
【００８８】
したがって、タイマ２のカウント値が閾値を超えた場合（Ｓ５００のＹｅｓ）、ＰＷＭ信号が検出されているはずなので、処理負荷判定部４３はＰＷＭ信号監視部４２からＰＷＭ信号の立ち上がり検出又は立ち下がり検出を取得したことを確認する（Ｓ５１０）。
【００８９】
処理負荷判定部４３はＰＷＭ信号が検出されていない場合、フェールセーフ制御２を行う（Ｓ５３０）。フェールセーフ制御２はＰＷＭ信号のインバータ１４への出力を停止するフェールセーフである。
【００９０】
以上説明したように本実施例のモータ制御装置１００は、実施例１の効果に加え、監視用のパルスによりモータ制御マイコン１２が監視マイコン１３に任意のデータを送信することができる。
【符号の説明】
【００９１】
１２    モータ制御マイコン
１３    監視マイコン
１４    インバータ
２１    ＣＰＵ
５１    パルス線
５２    ＰＷＭ信号線
５３    フェールセーフ信号線
５４    スイッチ
１００  モータ制御装置
【図１】
2014154043.tif 000003
【図２】
2014154043.tif 000004
【図３】
2014154043.tif 000005
【図４】
2014154043.tif 000006
【図５】
2014154043.tif 000007
【図６】
2014154043.tif 000008
【図７】
2014154043.tif 000009
【図８】
2014154043.tif 000010
【図９】
2014154043.tif 000011
【図１０】
2014154043.tif 000012