(57)【特許請求の範囲】
【請求項１】
少なくとも２つのＣＰＵ間でクロック同期通信を行い、送信側及び受信側の各ＣＰＵで通信データを加算して求めたサムデータを用いて該通信データの異常を検出する車両用電子制御装置において、
送信側ＣＰＵでは、
（１）その都度の通信データより算出したサムデータに対して０以外の所定値を加算又は減算してチェック用データを算出する処理、
（２）チェック用データを通信データと共に受信側ＣＰＵに送信する処理、
を順次実施し、受信側ＣＰＵでは、
（３）受信した通信データよりサムデータ１を算出する処理、
（４）通信データと共に受信したチェック用データが前記（１）の所定値が加算されたチェック用データである場合には同所定値を減算してサムデータ２を算出し、前記（１）の所定値が減算されたチェック用データである場合には同所定値を加算してサムデータ２を算出する処理、
（５）サムデータ１，２の比較により通信データの異常を検出する処理、
を順次実施することを特徴とする車両用電子制御装置。
【請求項２】
前記２つのＣＰＵは、一方がエンジン制御並びに電子スロットル制御を実施する制御ＣＰＵ、他方が電子スロットル制御の制御状態を監視する監視ＣＰＵであり、制御監視のための各種の通信データと、該通信データより算出したチェック用データとを制御ＣＰＵ及び監視ＣＰＵ間で送受信する請求項１記載の車両用電子制御装置。
【請求項３】
送信側ＣＰＵでは、多数の通信データのうち特定の重要データのみ、前記チェック用データを算出して受信側ＣＰＵに送信する請求項１又は２記載の車両用電子制御装置。
【請求項４】
請求項１記載の車両用電子制御装置において、サムデータに対して加減算する前記所定値は、各ビットが０，１を交互に並べて構成される値である車両用電子制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、車両用電子制御装置においてＣＰＵ間通信のデータ異常を正しく検出するための改良技術である。
【０００２】
【従来の技術】
車載エンジンの制御を司る車両用電子制御装置（エンジンＥＣＵ）として、メイン及びサブの２つのＣＰＵを持つ構成が知られている。図４にその構成を示す。図４に示すエンジンＥＣＵ２０において、メインＣＰＵ２１は噴射制御及び点火制御を実施し、サブＣＰＵ２２はスロットル制御を実施する。また、メインＣＰＵ２１は、スロットル制御（サブＣＰＵ）に関する監視制御として、サブＣＰＵ２２から出力されるウオッチドッグパルス（ＷＤパルス）をモニタし、ＷＤパルスの周期性からサブＣＰＵ２２の異常を検出する。サブＣＰＵ２２の異常時には、メインＣＰＵ２１がサブＣＰＵ２２をリセットするようにしている。
【０００３】
メインＣＰＵ２１及びサブＣＰＵ２２では、ＵＡＲＴ（Universal Asynchronous Receiver Transmitter ）等の通信方式を用いて相互のデータを送受信し、データを共有して協調制御を行っている。なお、ＷＤ回路２３は、メインＣＰＵ２１から出力されるＷＤパルスを監視してメインＣＰＵ２１の異常を検出し、メインＣＰＵ２１の異常時には当該メインＣＰＵ２１をリセットするようにしている。
【０００４】
【発明が解決しようとする課題】
ところで近年では、ＣＰＵの高機能・大容量化により、従来２つのＣＰＵを使用して実現してきたエンジン制御（噴射・点火制御）とスロットル制御とを１つのＣＰＵで構成し、エンジンＥＣＵのコストダウンを図ることが考えられる。このような１ＣＰＵ構成のエンジンＥＣＵでは、スロットル制御の状態を監視するための監視ＣＰＵが別途必要になる。この場合、監視ＣＰＵは監視専用であるため低機能（安価）なものが採用される。また、監視ＣＰＵをより安価なものにするために、ＣＰＵ間通信もＵＡＲＴ方式に代えてＣＳＩ（Clocked Serial Interface）方式等の簡易なものが採用される。ＣＳＩ方式とは、セキュリティビットやヘッダ等を認識する通信モジュールを用いることなく、クロック同期でデータの送受信を行う通信方式である。
【０００５】
一方、ＣＰＵ間で送受信するデータの信頼性を向上させるためには、通信データを加算して求めたサムデータにより該通信データの異常が検出される。すなわち、送信側ＣＰＵでは、その都度の通信データと共にサムデータを受信側ＣＰＵに送信し、受信側ＣＰＵでは、受信したサムデータと通信データより算出したサムデータとが一致するかどうかを判定する。そして、一致した時のみ受信した通信データが正常である判断して当該データを使用する。
【０００６】
ところが、前述したＣＳＩ方式の通信を採用する場合、サムデータによる異常検出では、通信データの異常が正しく検出できないことが考えられる。仮に通信線がグランドショートした時、サムデータを含めて全通信データが０となり、元々通信データが全て０であった場合（サムデータも０）を想定すると通信データの異常が正しく検出できない。故に、データ通信の信頼性が低下してしまう。
【０００７】
本発明は、上記問題に着目してなされたものであって、その目的とするところは、簡易な構成を用いつつ、良好なデータ通信を実現することができる車両用電子制御装置を提供することである。
【０００８】
【課題を解決するための手段】
請求項１に記載の発明では、送信側ＣＰＵにおいて、通信データが全て０の時に０となることがないようサムデータからチェック用データが算出され、該チェック用データが通信データと共に受信側ＣＰＵに送信される。ここで前述の通り、仮に通信データと共にサムデータを受信側ＣＰＵに送信する場合、通信線がグランドショートするとそれらは共に０となり、元々通信データが全て０であった場合（サムデータも０）を想定すると通信データの異常が正しく検出できない。これに対し本発明では、通信データが全て０の時に０となることがないようチェック用データが算出されて通信データと共に送信されるため、通信線がグランドショートし、通信データとチェック用データとが共に０になる場合にも、受信側ＣＰＵにおいて通信データの異常が正しく検出できる。その結果、簡易な構成を用いつつ、良好なデータ通信を実現することができる。
【０００９】
【課題を解決するための手段】
請求項１に記載の発明では、送信側ＣＰＵにおいて、その都度の通信データより算出したサムデータに対して０以外の所定値を加算又は減算してチェック用データが算出され、該チェック用データが通信データと共に受信側ＣＰＵに送信される。また、受信側ＣＰＵにおいて、受信した通信データよりサムデータ１が算出され、通信データと共に受信したチェック用データが前記所定値が加算されたチェック用データである場合には同所定値を減算してサムデータ２を算出し、前記所定値が減算されたチェック用データである場合には同所定値を加算してサムデータ２が算出される。そして、サムデータ１，２の比較により通信データの異常が検出される。かかる場合、通信データが全て０の時（すなわち、サムデータが０の時）にもチェック用データは０とならない。そのため、通信線がグランドショートし、通信データとチェック用データとが共に０になる場合にも、受信側ＣＰＵにおいて通信データの異常が正しく検出できる。すなわち、通信線がグランドショートした時、サムデータ１，２が不一致となり、通信データ異常の旨が検出される。その結果、簡易な構成を用いつつ、良好なデータ通信を実現することができる。
【００１０】
請求項２に記載の発明では、前記２つのＣＰＵは、一方がエンジン制御並びに電子スロットル制御を実施する制御ＣＰＵ、他方が電子スロットル制御の制御状態を監視する監視ＣＰＵであり、制御監視のための各種の通信データと、該通信データより算出したチェック用データとが制御ＣＰＵ及び監視ＣＰＵ間で送受信される。この場合、制御ＣＰＵと監視ＣＰＵとを有する車両用電子制御装置において、監視ＣＰＵとして特定の通信モジュールを持たなくても、適正なデータ通信が実現できる。従って、監視ＣＰＵ並びにその通信方式として安価なものが適用でき、コスト低減を図ることができる。
【００１１】
また、請求項３に記載の発明では、送信側ＣＰＵでは、多数の通信データのうち特定の重要データのみ、前記チェック用データを算出して受信側ＣＰＵに送信する。この場合、送信側及び受信側の各ＣＰＵにおいて処理負荷を軽減することができる。
【００１２】
また、請求項４に記載したように、サムデータに対して加減算する前記所定値は、各ビットが０，１を交互に並べて構成される値であると良い。例えば２バイトデータの場合、０ｘ５ａａ５，０ｘａ５５ａ等を用いる。
【００１３】
【発明の実施の形態】
以下、この発明を具体化した一実施の形態を図面に従って説明する。
図１は、本実施の形態におけるエンジンＥＣＵの構成を示すブロック図である。図１において、エンジンＥＣＵ１０は、エンジンの噴射制御、点火制御、スロットル制御を実施するための制御ＣＰＵ１１と、スロットル制御に関する監視制御を実施するための監視ＣＰＵ１２と、制御ＣＰＵ１１の動作を監視するためのＷＤ回路１３とを備える。制御ＣＰＵ１１は、Ａ／Ｄ変換器１４を介してスロットル開度やアクセル開度を入力する他に、エンジン回転数、吸気管内圧力等々のエンジン運転情報を随時入力し、当該運転情報に基づき図示しない燃料噴射弁、イグナイタ、スロットルアクチュエータの駆動を制御する。なお、スロットル開度やアクセル開度のＡ／Ｄ値は監視ＣＰＵ１２にも入力される。
【００１４】
制御ＣＰＵ１１と監視ＣＰＵ１２との間の通信は、いわゆるＣＳＩ（Clocked Serial Interface）方式が採用されており、各ＣＰＵ１１，１２の信号端子Ｓｏｕｔ，Ｓｉｎを通じてクロック同期通信でデータの送受信が行われる。すなわち、制御ＣＰＵ１１から監視ＣＰＵ１２に対して所定周期（例えば、２ｍｓｅｃ又は４ｍｓｅｃ周期）の通信クロックが出力され、その通信クロックに同期してＣＰＵ１１，１２間で各種データが送受信される。この場合、監視ＣＰＵ１２としては、セキュリティビットやヘッダ等を認識する通通信モジュールを持っておらず、簡易で且つ安価な構成が実現されている。
【００１５】
制御ＣＰＵ１１から監視ＣＰＵ１２に対しては、スロットル開度、アクセル開度、フェイルセーフ実施フラグ等のデータが送信される。監視ＣＰＵ１２は、スロットル制御の監視処理として、Ａ／Ｄ変換器１４を通じて入力したスロットル開度やアクセル開度のデータと、制御ＣＰＵ１１より受信した同じくスロットル開度やアクセル開度のデータとを比較し、それらが一致するかどうかによりスロットル制御状態の異常を検出する。そして、その監視結果を制御ＣＰＵ１１に対して返信する。
【００１６】
制御ＣＰＵ１１は、監視ＣＰＵ１２での監視結果に従い、スロットル制御の異常発生時には所定のフェイルセーフ処理を実施する。フェイルセーフ処理として具体的には、車両の退避走行（リンプホーム）を実現すべく、一部の気筒の燃料噴射を休止させる減筒制御や点火時期の遅角制御等を実施する。
【００１７】
制御ＣＰＵ１１と監視ＣＰＵ１２との間でデータ送受信が行われる際、通信データの信頼性を向上させるべく、各ＣＰＵ１１，１２では通信データを加算してサムデータが算出され、そのサムデータによる通信データの異常検出が実施される。但し本実施の形態では、例えば制御ＣＰＵ１１から監視ＣＰＵ１２に送信されるデータ（スロットル開度、アクセル開度、フェイルセーフ実施フラグ等）のうち、スロットル開度及びアクセル開度のデータを「重要データ」、それ以外のフェイルセーフ実施フラグのデータ等を「非重要データ」として取り扱う。この場合、重要データを送受信する場合のみ、サムデータによる通信データの異常検出を実施するようにしている。
【００１８】
また、制御ＣＰＵ１１は、ＷＤ回路１３に対して所定周期で反転するＷＤパルスを出力する。ＷＤ回路１３は、制御ＣＰＵ１１からのＷＤパルスが所定時間以上反転しなかった場合に制御ＣＰＵ１１に対してリセット信号を出力する。
【００１９】
次に、制御ＣＰＵ１１と監視ＣＰＵ１２との間のＣＰＵ間通信の詳細を説明する。ここでは、制御ＣＰＵ１１を送信側、監視ＣＰＵ１２を受信側とし、制御ＣＰＵ１１から監視ＣＰＵ１２へ各種データが送信される場合を例に説明する。
【００２０】
図２は、ＣＰＵ間通信のデータ送信処理を示すフローチャートである。上記の如く制御ＣＰＵ１１を送信側とする場合、本処理は、１パケットの送信時間より短い時間毎（例えば、４ｍｓｅｃ毎）に制御ＣＰＵ１１により実施される。
【００２１】
図２において、先ずステップ１０１では、今回送信する１パケット分の通信データを確定する。具体的には、所定の処理（ＬＳＢ変換等）により制御用データを通信データに変換し、その通信データを送信用ＲＡＭへ格納する。このとき、例えばスロットル開度、アクセル開度、フェイルセーフ実施フラグが通信データとして確定される。
【００２２】
ステップ１０２では、１パケット分の通信データのうち、重要データのみを加算してサムデータを算出する。ここで、前述した通り重要データとは、例えばスロットル開度及びアクセル開度のデータであり、これに対してサムデータが算出される。
【００２３】
その後、ステップ１０３では、前記算出したサムデータから所定値Ｋを減算し、その減算結果をチェック用データとする。ここで、チェック用データは、通信データが全て０の時（すなわち、サムデータが０の時）に０とならないデータである。所定値Ｋは０以外の値であれば良く、より具体的には、各ビットが０，１を交互に並べて構成される値、例えば２バイトデータの場合、０ｘ５ａａ５，０ｘａ５５ａ等を用いる。但し、サムデータと所定値Ｋとの減算値からチェック用データを算出する構成に代えて、サムデータと所定値Ｋとの加算値からチェック用データを算出する構成であっても良い。
【００２４】
最後に、ステップ１０４では、確定した通信データとチェック用データとを監視ＣＰＵ１２に送信する。監視ＣＰＵ１２では、制御ＣＰＵ１１から受信した通信データが受信用ＲＡＭに順次格納される。
【００２５】
図３は、ＣＰＵ間通信のデータ受信処理を示すフローチャートである。上記の如く監視ＣＰＵ１２を受信側とする場合、本処理は、１パケットの送信時間より短い時間毎（例えば、４ｍｓｅｃ毎）に監視ＣＰＵ１２により実施される。
【００２６】
図３において、先ずステップ２０１では、１パケット分の通信データを全て受信したか否かを検出する。１パケット分の通信データを受信していなければ本処理を終了する。１パケット分のデータを受信している場合はステップ２０２以降の処理を実施する。
【００２７】
ステップ２０２では、受信した１パケット分の通信データについてサムデータを算出する（便宜上、これをサムデータ１とする）。但し、サムデータ算出の対象とするのは、前記図２のステップ１０２と同様、１パケット分の通信データのうち重要データのみである。また、ステップ２０３では、通信データに含まれるチェック用データからサムデータを算出する（便宜上、これをサムデータ２とする）。すなわち、受信したチェック用データに所定値Ｋ（例えば０ｘ５ａａ５）を加算してサムデータ２を算出する。この所定値Ｋは、前記図２のステップ１０３で使った値と同じ値である。
【００２８】
その後、ステップ２０４では、前記算出したサムデータ１とサムデータ２とが一致するか否かを検出する。サムデータ１とサムデータ２とが不一致の場合は通信データに異常があると判断して本処理を終了する。サムデータ１とサムデータ２とが一致した場合は、通信データを正常に受信したと判断してステップ２０５に進み、通信データを更新する。このとき、通信データが受信用ＲＡＭから制御用ＲＡＭへ転送される。
【００２９】
以上詳述した本実施の形態によれば、以下に示す効果が得られる。
通信データが全て０の時に０となることがないようチェック用データを算出し、それを用いて通信データの異常を検出するようにしたため、通信線がグランドショートし、通信データとチェック用データとが共に０になる場合にも、受信側ＣＰＵにおいて通信データの異常が正しく検出できる。その結果、簡易な構成を用いつつ、良好なデータ通信を実現することができる。
【００３０】
監視ＣＰＵ１２として特定の通信モジュールを持たなくても、適正なデータ通信が実現できる。従って、監視ＣＰＵ１２並びにその通信方式として安価なものが適用でき、コスト低減を図ることができる。
【００３１】
また、送信側ＣＰＵでは、多数の通信データのうち特定の重要データのみ、チェック用データを算出して受信側ＣＰＵに送信する。この場合、送信側及び受信側の各ＣＰＵにおいて処理負荷を軽減することができる。
【００３２】
上記実施の形態では、制御ＣＰＵ１１から監視ＣＰＵ１２へ通信データを送信する場合について説明したが、逆に監視ＣＰＵ１２から制御ＣＰＵ１１へ通信データを送信する場合にも本発明が適用できる。
【００３３】
また、上記実施の形態では、多数の通信データを重要データ／非重要データに分け、重要データのみサムデータ算出等を実施したが、重要データ／非重要データの区分を無くし、全ての通信データについてサムデータの算出等を実施する構成であっても良い。
【図面の簡単な説明】
【図１】発明の実施の形態におけるエンジンＥＣＵの構成を示すブロック図。
【図２】ＣＰＵ間通信のデータ送信処理を示すフローチャート。
【図３】ＣＰＵ間通信のデータ受信処理を示すフローチャート。
【図４】従来技術におけるエンジンＥＣＵの構成を示すブロック図。
【符号の説明】
１０…エンジンＥＣＵ、１１…制御ＣＰＵ、１２…監視ＣＰＵ。
【図１】
0003938858.tif 000002
【図２】
0003938858.tif 000003
【図３】
0003938858.tif 000004
【図４】
0003938858.tif 000005