(57)【特許請求の範囲】
【請求項１】
通信バッファのデータを書き換えて当該バッファのデータを所定周期での通信タイミングにて送信するシリアル通信制御装置において、
通信毎に種類の異なるデータを各通信タイミングに同期して通信バッファにセットするとともに、通信毎の種類が同じデータを前記通信タイミングよりも長い周期にて通信バッファにセットし、データの正当性が失われるおそれのある特定の条件が成立した場合には、通信毎に種類の異なるデータと通信毎の種類が同じデータを共に各通信タイミングに同期して通信バッファにセットするようにしたことを特徴とするシリアル通信制御装置。
【請求項２】
当該シリアル通信制御装置は、自動車用コントローラに採用されるものであり、前記自動車の備えるスタータがオンの状態とされて、同自動車に搭載されたバッテリから供給される駆動電圧の低下が予測される状態であるとき、前記特定の条件が成立したと判断する請求項１に記載のシリアル通信制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明はシリアル通信制御装置に関するものである。
【０００２】
【従来の技術】
従来、マイコン間での通信を実施する場合（例えば、ダイレクトメモリアクセス（ＤＭＡ）にてシリアル通信を行う場合）、通信起動毎に通信バッファの全てのデータを書き換えている。
【０００３】
通常、全てのデータを一度に送信することはできないため、図１３に示すように、データｂ１，ｂ２，ｂ３，…のように、今回通信時にはデータｂ１を、次回通信時にはデータｂ２を、次々回通信時にはデータｂ３というように、スケジューリングしたデータを送信毎に通信バッファに書き込んでいた。また、この通信バッファの書き込み時には、毎回共通のデータａを書き込んでいた。具体的には、自動車用コントローラ（ＥＣＵ；電子制御ユニット）においては、データａとして起動コマンドを挙げることができ、データｂ１，ｂ２，ｂ３としてノック判定値、ノック判定値の補正係数、システムチェック結果送信コマンドを挙げることができる。
【０００４】
そのため、毎回同じデータａも書き換えを行うこととなり、処理時間が長く負荷が大きくなる。
この対策として、スケジュール不要なデータ（毎回同じデータ）ａを一度書き込んだら、その後、書き換えないようにすることにより処理負荷は軽減される。しかしこのようにすると、ＲＡＭ値が化ける可能性があることとＲＡＭ値が壊れやすい条件（低電圧）の時に、データの正当性が失われるという問題が生じる。
【０００５】
【発明が解決しようとする課題】
この発明は、以上のような事情に鑑みなされたものであり、その目的は、データの正当性を確保しつつ通信のための処理負荷を軽減することができるシリアル通信制御装置を提供することにある。
【０００６】
【課題を解決するための手段】
請求項１に記載の発明は、通信毎に種類の異なるデータを各通信タイミングに同期して通信バッファにセットするとともに、通信毎の種類が同じデータを前記通信タイミングよりも長い周期にて通信バッファにセットし、データの正当性が失われるおそれのある特定の条件が成立した場合には、通信毎に種類の異なるデータと通信毎の種類が同じデータを共に各通信タイミングに同期して通信バッファにセットするようにしたことを特徴としている。
【０００７】
このような構成を採用することにより、所定周期での通信タイミングに対応するようにして通信バッファには通信毎に種類の異なるデータのみがセットされる。よって、処理負荷が軽減される。また、この通信タイミングよりも長い周期にて通信毎の種類が同じデータが通信バッファにセットされ、通信に供される。よって、データの正当性が失われることもない。つまり、従来方式において処理負荷を軽減すべく、スケジュール不要なデータを一度書き込んだら、その後、書き換えないようにすると、ＲＡＭ値が化ける可能性があることとＲＡＭ値が壊れやすい条件の時に、データの正当性が失われるおそれがあったが、本発明においては、長い周期にて通信毎の種類が同じデータが通信バッファにセットされるので、データの正当性が失われることがない。
【０００８】
このようにして、データの正当性を確保しつつ通信のための処理負荷を軽減することができることとなる。
しかも、上記構成によれば、データの正当性が失われるおそれのある特定の条件が成立したら、通信毎に種類の異なるデータと通信毎の種類が同じデータを共に各通信タイミングに同期して通信バッファにセットするようにしているため、ＲＡＭ値が壊れやすい条件（低電圧等）の時に、データの正当性を確実に確保することができる。
また、請求項３に記載の発明によるように、当該シリアル通信制御装置は、自動車用コントローラに採用されるものであり、この自動車の備えるスタータがオンの状態とされて、同自動車に搭載されたバッテリから供給される駆動電圧の低下が予測される状態であるとき、上記特定の条件が成立したと判断する。
【０００９】
【発明の実施の形態】
以下、この発明を具体化した実施の形態を図面に従って説明する。
本実施形態では自動車用コントローラ（自動車用ＥＣＵ）に適用しており、ＥＣＵはその内部に複数のマイクロコンピュータを備え、各マイクロコンピュータ間で通信を行うようになっている。
【００１０】
図１には、ＥＣＵ（Ｅlectric Ｃontrol  Ｕnit ）１０を中心にした全体構成を示す。つまり、マイコン間通信の構成図を示す。
ＥＣＵ１０には第１マイクロコンピュータ１００と第２マイクロコンピュータ２００が備えられている。第１マイクロコンピュータ１００は、エンジンの燃料噴射制御・点火時期制御等のエンジンの運転状態を直接、制御するためのマイクロコンピュータである。
【００１１】
第１マイクロコンピュータ１００は、ＤＭＡ制御部１１０とＣＰＵ１２０とＲＡＭ１３０とＲＯＭ１４０と入力バッファ１５０を備えている。ＤＭＡ制御部１１０は第２マイクロコンピュータ２００との間でＤＭＡ方式によるデータ通信を行うためのものである。ＣＰＵ１２０はその時のエンジン運転状態に応じた最適な燃料噴射量や点火時期等を演算する。ＲＡＭ１３０は、主にデータメモリとして用いられる。ＲＯＭ１４０は主にプログラムメモリとして用いられる。
【００１２】
ＤＭＡ制御部１１０はＣＰＵ１２０によって起動されることによりＲＡＭ１３０、ＲＯＭ１４０に格納されているデータを第２マイクロコンピュータ２００に転送したり、必要データを取り込む部分である。ＲＡＭ１３０の一部をＤＭＡ送信および受信用のＤＭＡバッファ（通信バッファ）１３１，１３２として用いており、ＤＭＡバッファ１３１，１３２を用いてデータの送受信が行われる。詳しくは、ＣＰＵ１２０により送信用バッファ１３１のデータが書き換えられＤＭＡ制御部１１０によりバッファ１３１のデータが所定周期での通信タイミングにて送信されるとともに、データ受信の際には、ＤＭＡ制御部１１０により所定周期での通信タイミングにて受信データがバッファ１３２に書き換えられＣＰＵ１２０によりデータが取り込まれる。
【００１３】
なお、ＤＭＡ制御部１１０によってＲＡＭ１３０、ＲＯＭ１４０がアクセスされている期間は、それらメモリに対するＣＰＵ１２０からの重複したアクセスが行われないようにＤＭＡ制御部１１０からＣＰＵ１２０に対してホールド要求Ｈreq が出力される。この間、ＣＰＵ１２０では、メモリアクセス等を控えて待機する。また、ＣＰＵ１２０は、ＲＡＭ１３０やＲＯＭ１４０はもとより、第２マイクロコンピュータ２００のＲＡＭ２３０についても、その何処にどのようなデータが格納されているかを把握している。
【００１４】
一方、第２マイクロコンピュータ２００は、エンジンに取り付けられた各種センサからそれらセンシングデータを取り込むと共に、ノック制御や負荷制御等の補助的な制御を主に実行する。本例では、負荷制御として可変バルブタイミング制御（ＶＶＴ制御）を行う場合で説明する。
【００１５】
第２マイクロコンピュータ２００は、ＤＭＡ制御部２１０とＣＰＵ２２０とＲＡＭ２３０とＲＯＭ２４０とＡ／Ｄ変換器２５０とマルチプレクサ２６０とノック信号処理部２７０と出力バッファ２８０を備えている。
【００１６】
ＤＭＡ制御部２１０は第１マイクロコンピュータ１００のＤＭＡ制御部１１０との間でデータ通信を行うためのものである。ＣＰＵ２２０は各種の演算を実行する。ＲＡＭ２３０は主にデータメモリとして用いられる。ＲＯＭ２４０はプログラムメモリとして用いられる。ノック信号処理部２７０はノックセンサと接続され、ノックセンサからの信号に対しピークホールド処理する。Ａ／Ｄ変換器２５０はマルチプレクサ２６０を介して水温センサ、吸気温センサ、エアフロメータ、ノック信号処理部２７０からの信号、及び、リニアソレノイド通電電流検出信号を選択的に入力する。そして、Ａ／Ｄ変換器２５０はアナログセンシングデ一タをディジタル量に変換する。マルチプレクサ２６０はディジタル量に変換すべきデータを選択する。つまり、マルチプレクサ２６０での各入力信号（チャネル）を切り換えて、所望の入力信号（アナログ値）がＡ／Ｄ変換器２５０にてディジタル値に変換される。
【００１７】
ＤＭＡ制御部２１０はＤＭＡ制御部１１０から受信されるコマンドに基づいて、ＲＡＭ２３０へのデータ書込みやＲＡＭ２３０からデータ読み出しのためのメモリアクセス、並びにＡ／Ｄ変換器２５０の起動によるＡ／Ｄ変換処理やその処理結果の返信等を行う部分である。ＲＡＭ２３０の一部を送信および受信用のＤＭＡバッファ（通信バッファ）２３１，２３２として用いており、バッファ２３１，２３２を用いてデータの送受信が行われる。
【００１８】
なお、この第２マイクロコンピュータ２００にあっても、ＤＭＡ制御部２１０によってＲＡＭ２３０がアクセスされている期間は、ＲＡＭ２３０に対するＣＰＵ２２０からの重複したアクセスが行われないよう、ＤＭＡ制御部２１０からＣＰＵ２２０に対してホールド要求Ｈreq が出力される。その間、ＣＰＵ２２０はメモリアクセス等を控えて待機する。
【００１９】
また、ＣＰＵ２２０によるＲＡＭ２３０のアクセスはＤＭＡ制御部２１０によるＲＡＭ２３０へのアクセスとは非同期となる。
なお、ＣＰＵ２２０はＲＡＭ２３０の何処にどのようなデータが格納されているか常に把握している。
【００２０】
第１マイクロコンピュータ１００のＤＭＡ制御部１１０は、１６ステージからなるシフトレジスタ１１１とシフトクロック発生回路１１２とを具えて構成されており、第２マイクロコンピュータ２００のＤＭＡ制御部２１０は、同じく１６ステージからなるシフトレジスタ２１１とシリアルＩ／Ｏコントローラ２１２を具えて構成されている。
【００２１】
各ＤＭＡ制御部のシフトレジスタ１１１及び２１１は、図１に示されるようにループ状に接続されており、ＤＭＡ制御部１１０側に設けられたシフトクロック発生回路１１２から出力されるシフトクロックＳＣＬＫに基づいて互いのデータが交換されるようになる。シフトクロックＳＣＬＫの１クロック毎に１ビット交換され、ＳＣＬＫが１６クロック出力されることでデータがすべて交換される。
【００２２】
また、ＥＣＵ１０には電源回路５００が設けられ、この電源回路５００は車載用バッテリ１からのバッテリ電圧（１２ボルト）を所定電圧（５ボルト）に変換して、マイクロコンピュータ１００，２００を含む各機器に供給する。また、車載用バッテリ１にはスタータスイッチ２を介してスタータモータ３が接続されている。ここで、マイクロコンピュータ１００のＣＰＵ１２０は入力バッファ５０１を通しバッテリ電圧（図１でのβ点の電位）をモニタするとともに、スタータスイッチ２のオン動作の検知信号（図１でのα点の電位）をモニタしている。これにより、ＣＰＵ１２０はスタータスイッチ２のオン操作に伴うスタータ・オンであるか、又、バッテリ電圧が８ボルト以下に低下しているかを検知することができるようになっている。
【００２３】
また、ＥＣＵ１０には駆動回路３００，４００が設けられ、ＣＰＵ２２０は駆動回路３００，４００を介してリニアソレノイド４，５を通電制御して所望のＶＶＴ制御を行わせる。さらに、この時のリニアソレノイド４，５の通電電流は前述したようにマルチプレクサ２６０とＡ／Ｄ変換器２５０を通してフィードバックされる。
【００２４】
さらに、第２マイクロコンピュータ２００においてノック判定が行われ、その判定結果を表すデータがＣＰＵ２２０から出力バッファ２８０を通して第１マイクロコンピュータ１００側に送られる。このデータ（ノック判定結果）は第１マイクロコンピュータ１００において入力バッファ１５０を介してＣＰＵ１２０に取り込まれ、点火時期制御に反映される。また、第２マイクロコンピュータ２００においてシステムチェックが行われており、そのチェック結果がＤＭＡ方式にて第１マイクロコンピュータ１００側に送られる。
【００２５】
次に、通信により第１マイクロコンピュータ１００から第２マイクロコンピュータ２００に送られるデータについて説明する。
図２には、第１マイクロコンピュータ１００における送信用のＤＭＡバッファ１３１の構成を示す。
【００２６】
ＤＭＡバッファ内のデータ格納領域は、通信毎の種類が同じデータ（毎回同じデータ）を格納する領域Ａと、通信毎に種類の異なるデータを格納する領域Ｂに分けられている。つまり、領域ＡはＡＤ用チャネル起動コマンドの格納領域Ａ１（詳しくは、第１チャネル起動コマンドの格納領域Ａ１１，第２チャネル起動コマンドの格納領域Ａ１２，…，第ｍチャネル起動コマンドの格納領域Ａ１ｍ）と、リニアソレノイド目標電流値の格納領域Ａ２（詳しくは、第１リニアソレノイドの目標電流値の格納領域Ａ２１，第２リニアソレノイドの目標電流値の格納領域Ａ２２）よりなる。領域Ｂ１〜Ｂｎには、エンジン回転数毎のノック判定値（ｎ個存在する）と、ノック判定値の補正係数と、システムチェック結果の通信コマンドのうちの何れかが格納される。
【００２７】
この領域Ｂに格納されるデータに関して、第２マイクロコンピュータ２００でノック判定を行うときにおいて、回転数毎のノック判定値に補正係数を乗算した値が閾値となり、この値より実際のノック信号が大きくなるとノックが発生したと判定される。また、ノック判定値の補正係数はＥＣＵ１０の外付け抵抗の値により決定されるものである。
【００２８】
また、領域Ｂに格納されるデータは通信毎に異なり、スケジューリングされる。本例では、スケジューリングにより、データ送信タイミング毎に、ノック判定値→補正係数→システムチェック結果の通信コマンド→ノック判定値→…というように、繰り返しバッファにセットされる。
【００２９】
次に、このように構成したシリアル通信制御装置（ＥＣＵ１０）の作用を説明する。
図３には、データの操作タイミングを説明するためのタイミングチャートを示す。図３において、スタータ信号、４ｍｓの割り込み処理、通信線Ｓin，Ｓout による通信、ベースルーチン処理のタイミング、リニアソレノイド制御演算処理のタイミングを示す。
【００３０】
第１マイクロコンピュータ１００のＣＰＵ１２０において、図３のタイミングｔ１，ｔ２，ｔ３，ｔ４にて４ｍｓ毎の割り込みが行われ、このタイミングにて送信バッファ１３１に送信データがセットされるとともにＤＭＡ制御部１１０が起動される。そして、ｔ１１，ｔ１２，ｔ１３，ｔ１４のタイミングにて通信線Ｓin，Ｓout による通信が実行される。この通信において、第１マイクロコンピュータ１００側から第２マイクロコンピュータ２００へデータ送信が行われるとともに、第２マイクロコンピュータ２００側から第１マイクロコンピュータ１００へデータが送られ、ｔ２１，ｔ２２，ｔ２３，ｔ２４のタイミングにてＣＰＵ１２０によるデータの取込みが行われる。
【００３１】
また、ＣＰＵ１２０によるベースルーチンが１６ｍｓ毎に（ｔ３１，ｔ３２のタイミングで）実行される。同じく、リニアソレノイドの制御のための演算処理が８ｍｓ毎に（ｔ４１，ｔ４２のタイミングで）実行される。また、図３においては、ｔ５０のタイミングまではスタータがオフであり、以後にスタータがオンされているものとする。
【００３２】
図４〜図１１は、第１マイクロコンピュータ１００におけるＣＰＵ１２０で実行される処理内容を示すフローチャートである。
図４には、送信タイミング時（４ｍｓ毎）のデータセット処理ルーチンを示す。この処理は図３のｔ１，ｔ２，ｔ３，ｔ４のタイミングにて起動される。
【００３３】
図４における送信タイミング時のデータセットの際（４ｍｓ割込み時）には、ＣＰＵ１２０は、ステップ１００でマイクロコンピュータの駆動電圧が低下していないか判定する。この判定は、スタータ・オンであるか又はバッテリ電圧が８ボルト以下となっていないかにより行う。低電圧時には、ＣＰＵ１２０は、ステップ２００，３００に移行してバッファ１３１の領域Ａ１，Ａ２にデータをセットし、さらに、ステップ４００でバッファ１３１の領域Ｂにデータをセットする。
【００３４】
ステップ２００の処理の詳細を図５に、ステップ３００の処理の詳細を図６に、ステップ４００の処理の詳細を図７に示す。
図５において、領域Ａ１へのデータのセット処理として、ＣＰＵ１２０は、ステップ２０１において、起動コマンドが格納されているＡ１テーブル（図１２参照）の要素番号ｉを０に初期化する。そして、ＣＰＵ１２０は、ステップ２０２，２０３，２０４を実行することにより要素番号ｉを「１」インクリメントしつつＡ１テーブルに入っているデータを全てバッファ１３１の領域Ａ１にセットする。つまり、Ａ１テーブルの要素数ｍの回数分ステップ２０３，２０４を繰り返す。
【００３５】
図６において、領域Ａ２へのデータのセット処理として、ＣＰＵ１２０は、ステップ３０１，３０２において、リニアソレノイド目標電流値ＯＣＶＩ１を領域Ａ２１にセットするとともにリニアソレノイド目標電流値ＯＣＶＩ２を領域Ａ２２にセットする。
【００３６】
この図５および図６の処理によって、通信毎の種類が同じデータがバッファ１３１にセットされる。
図７において、領域Ｂへのデータのセット処理として、セレクトカウンタＣＳＥＬの値がステップ４０１，４０２，４０３にて起動毎に０→１→２→０→…になるように設定される。そして、ＣＰＵ１２０は、ステップ４０４においてセレクトカウンタＣＳＥＬ＝０の時には、ステップ４０５に移行してバッファ１３１の領域Ｂ１〜Ｂｎに回転数毎のノック判定値をセットする。また、ＣＰＵ１２０は、ステップ４０６においてセレクトカウンタＣＳＥＬ＝１の時には、ステップ４０７に移行してバッファ１３１の領域Ｂ１〜Ｂｎにノック判定補正係数をセットする。さらに、ＣＰＵ１２０は、ステップ４０６においてセレクトカウンタＣＳＥＬ＝２の時には、ステップ４０８に移行してバッファ１３１の領域Ｂ１〜Ｂｎにシステムチェック通信コマンドをセットする。
【００３７】
この図７の処理によって、通信毎に種類の異なるデータ（ノック判定値、補正係数、通信コマンド）がバッファ１３１にセットされる。
一方、図４のステップ１００において低電圧でない時には、ＣＰＵ１２０は、ステップ２００，３００を迂回して領域Ａにデータをセットせずに、ステップ４００において領域Ｂにデータをセットする。
【００３８】
このようにしてデータをバッファ１３１にセットした後、ＣＰＵ１２０は、図４のステップ５００においてＤＭＡ制御部１１０を起動させる。その結果、図３のｔ１１，ｔ１２，ｔ１３，ｔ１４のタイミングにてＤＭＡ方式による通信が行われ、バッファ１３１のデータが第１マイクロコンピュータ１００から第２マイクロコンピュータ２００に送られる。
【００３９】
図８にはベースルーチンでの領域Ａへのデータのセット処理を示し、ベースルーチンは１６ｍｓ毎に行われる（図３参照）。
ベースルーチンにおいて、ＣＰＵ１２０は、ステップ６００でＡＤチャネル起動コマンドをバッファ１３１の領域Ａ１にセットする。ステップ６００の処理の詳細は図５と同じである。このようにして、通信毎の種類が同じデータ（起動コマンド）が１６ｍｓ毎にバッファ１３１にセットされる（図３参照）。
【００４０】
図９にはリニアソレノイド制御のための演算処理ルーチンを示し、当該ルーチンは８ｍｓ毎に行われる（図３参照）。
ＣＰＵ１２０は、ステップ７００でリニアソレノイド制御のための演算を実行する。そして、ＣＰＵ１２０は、ステップ８００でリニアソレノイドの目標電流値ＯＣＶＩ（詳しくは、２つの値ＯＣＶＩ１，ＯＣＶＩ２）をＲＡＭの所定領域に格納する。さらに、ＣＰＵ１２０は、ステップ９００において、格納した目標電流値ＯＣＶＩをバッファ１３１の領域Ａ２にセットする。ステップ９００の処理の詳細は図６と同じである。このようにして、通信毎の種類が同じデータ（目標電流値）が８ｍｓ毎にバッファ１３１にセットされる（図３参照）。
【００４１】
図１０には、図３のｔ２１，ｔ２２，ｔ２３，ｔ２４のタイミングにて行われるデータ受信割込み時（４ｍｓ毎）の処理を示す。
ＤＭＡ受信割込みとして、ＣＰＵ１２０は、ステップ１０００でＡ／Ｄ変換後のセンシングデータ（ＡＤ値）を取込む。詳しくは、図１１に示すように、ＣＰＵ１２０は、ＡＤ値取込みとして、ステップ１００１で吸入空気量を取込み、ステップ１００２での１６ｍｓタイミング時にはステップ１００３で水温および吸気温を取込む。このようにして、４ｍｓタイミング毎のＡＤ値の取込みが行われる。
【００４２】
そして、ＣＰＵ１２０は、図１０のステップ１１００において、センシングしたリニアソレノイド電流値を取込む。さらに、ＣＰＵ１２０は、ステップ１２００でセレクトカウンタＣＳＥＬ＝２の場合、ステップ１３００でシステムチェックデータを取込む。
【００４３】
なお、セレクトカウンタＣＳＥＬ＝１のときは補正係数を、又、ＣＳＥＬ＝０のときはノック判定値を、第１マイクロコンピュータ１００から第２マイクロコンピュータ２００に送信するだけであり、受信処理は行わない。
【００４４】
このようにして、図３の各タイミングｔ２１〜ｔ２４毎にそれぞれデータが取込まれる。
以上の処理の実行により、図３のｔ１，ｔ２，ｔ３，ｔ４，…のタイミングにおいて４ｍｓ割込みが実行され、図４の処理によって、送信毎に変わるデータ（通信毎に種類の異なるデータ）がＤＭＡバッファ１３１の領域Ｂに書き込まれるとともにＤＭＡ制御部２１０が起動される。
【００４５】
その後、ｔ２１のタイミングにおいてＤＭＡ受信割込みが発生して、図１０の処理によって、ＡＤ値、リニアソレノイド電流値、システムチェックデータが取込まれる。
【００４６】
また、領域Ａ１，Ａ２に格納される通信毎の種類が同じデータに関しては、４ｍｓ割込みのタイミングより遅いタイミング（８ｍｓ，１６ｍｓ）でバッファ１３１に書き込まれる。つまり、図３のｔ３１，ｔ３２のベースルーチン処理タイミングで図８の処理によって、ＡＤチャネル起動コマンドがバッファ１３１の領域Ａ１に書き込まれる。また、ｔ４１，ｔ４２のリニアソレノイド制御演算処理タイミングで、図９の処理によって、リニアソレノイド目標電流値がバッファ１３１の領域Ａ２に書き込まれる。
【００４７】
このように、バッファ１３１のデータを書き換える際において、通信毎に種類の異なるデータは一定周期（４ｍｓ）でデータを書き換えていき、通信毎の種類が同じデータはその周期より長い周期（８ｍｓ，１６ｍｓ）でデータを書き換え、書き換える回数を減らす。そうすることにより、処理負荷が軽減されるとともに、ＲＡＭ値が壊れた時にも新たにデータが書き換えられデータの正当性が保たれる。
【００４８】
一方、スタータがオンされＲＡＭ値が壊れやすい状況になった場合は、図３のｔ３のタイミングで示すごとく４ｍｓ割込みのタイミングで、図４の処理の実行により通信毎の種類が同じデータが通信毎に種類の異なるデータといっしょにバッファ１３１に書き込まれ、ＤＭＡ制御部１１０が起動される。
【００４９】
よって、通信毎の種類が同じデータは書き換えられてから間もなくＲＡＭ値が壊れた時、次に書き換えられるまでの時間が長く、それまでデータが壊れた状態になってしまうが、本例では、ＲＡＭ値が壊れやすい条件（低電圧）の時は長い周期と共に、送信周期でも書き換えが行われ、データが直ちに修復される。
【００５０】
また、図２に示すごとく、通信バッファ１３１ヘデータを割り付けるときは、通信毎の種類が同じデータの格納領域Ａ１，Ａ２を先頭に割り付け、その後に通信毎に種類の異なるデータの格納領域Ｂ１〜Ｂｎを割り付けているので、好ましいものである。
【００５１】
このように、本実施の形態は、下記の特徴を有する。
（イ）ＣＰＵ１２０は図４のステップ４００の処理にて４ｍｓ毎の各通信タイミングに同期して通信毎に種類の異なるデータを通信バッファ１３１にセットするとともに、図８のステップ６００の処理および図９のステップ９００の処理にて通信タイミングよりも長い周期（８ｍｓ毎、１６ｍｓ毎）にて通信毎の種類が同じデータを通信バッファ１３１にセットするようにした。これにより、所定周期での通信タイミング（図３のｔ１，ｔ２のタイミング）に対応するようにして通信バッファ１３１には毎回必要なデータ（通信毎に種類の異なるデータ）のみがセットされ、処理負荷が軽減される。また、この通信タイミングよりも長い周期にて通信毎の種類が同じデータが通信バッファ１３１にセットされ、通信に供される。よって、データの正当性が失われることもない。つまり、従来方式において処理負荷を軽減すべく、スケジュール不要なデータを一度書き込んだら、その後、書き換えないようにすると、ＲＡＭ値が化ける可能性があることとＲＡＭ値が壊れやすい条件の時に、データの正当性が失われるおそれがあったが、本実施形態においては、長い周期にて通信毎の種類が同じデータが通信バッファ１３１にセットされるので、データの正当性が失われることがない。
【００５２】
このようにして、マイコン間の通信において、データの正当性を確保しつつ通信のための処理負荷を軽減することができる。
（ロ）特に、図４のステップ１００〜３００の処理にて、特定の条件が成立したら（駆動電圧が低下したら、若しくは、駆動電圧の低下が予測される状態であるなら）、各通信タイミングに同期して通信毎に種類の異なるデータと通信毎の種類が同じデータを共に通信バッファ１３１にセットするようにしたので、ＲＡＭ値が壊れやすい条件（低電圧）の時に、データの正当性を確実に確保することができる。
【図面の簡単な説明】
【図１】ＥＣＵを中心にした全体構成図。
【図２】バッファの構成を示す図。
【図３】データの操作タイミングを説明するためのタイミングチャート。
【図４】データセット処理ルーチンを示すフローチャート。
【図５】領域Ａ１へのデータのセット処理を示すフローチャート。
【図６】領域Ａ２へのデータのセット処理を示すフローチャート。
【図７】領域Ｂへのデータのセット処理を示すフローチャート。
【図８】ベースルーチンでの領域Ａへのデータのセット処理を示すフローチャート。
【図９】リニアソレノイド制御演算処理ルーチンを示すフローチャート。
【図１０】データ受信割込み時（４ｍｓ毎）の処理を示すフローチャート。
【図１１】ＡＤ値の取込み処理を示すフローチャート。
【図１２】Ａ１テーブルを示す図。
【図１３】従来技術を説明するための各送信でのデータを説明するための図。
【符号の説明】
１０…ＥＣＵ、１００…第１マイクロコンピュータ、１１０…ＤＭＡ制御部、ＣＰＵ…１２０、１３１…通信バッファ、２００…第１マイクロコンピュータ、２１０…ＤＭＡ制御部。
【図１】
0004265026.tif 000002
【図２】
0004265026.tif 000003
【図３】
0004265026.tif 000004
【図４】
0004265026.tif 000005
【図５】
0004265026.tif 000006
【図６】
0004265026.tif 000007
【図７】
0004265026.tif 000008
【図８】
0004265026.tif 000009
【図９】
0004265026.tif 000010
【図１０】
0004265026.tif 000011
【図１１】
0004265026.tif 000012
【図１２】
0004265026.tif 000013
【図１３】
0004265026.tif 000014