(57)【要約】  【課題】  データサイズ全体を増やすことなく、且つデータの取りうる範囲を狭めることなく、送信データの異常を受信装置側へ伝達できるようにする。  【解決手段】  エンジン制御ＥＣＵ１のＲＯＭ１３には、他のＥＣＵに送信する浮動小数点型データの異常に備えて、異常の種類毎に異なる非数が対応付けられた非数変換テーブル２１が格納されている。水温センサ２５で検出された水温データをインパネＥＣＵ５に送信する際、水温センサ２５が異常（つまり水温データが異常）ならば、水温データを送信する代わりに、非数変換テーブル２１で水温センサ２５の異常と対応付けられている非数を送信する。一方、インパネＥＣＵ５のＲＯＭ５３にも非数変換テーブル６１が格納されており、受信したデータが非数であった場合は、非数変換テーブル６１との照合結果に基づき、受信した非数に対応した処理を行う。【選択図】  図１
2006318401.tif 000002
【特許請求の範囲】
【請求項１】
データを送信する送信装置と、その送信装置から送信されたデータを受信してそのデータに基づく処理を行う受信装置とを備えたデータ通信システムにおけるデータ通信方法であって、
前記データ通信システムは、前記送信装置から前記受信装置へ浮動小数点型データの送信が可能に構成されており、
前記送信装置は、送信すべき浮動小数点型データが異常である場合は、そのデータに代えて非数を送信し、
前記受信装置は、前記送信装置から受信した浮動小数点型データが非数であった場合は、予め設定された異常対応処理を行う
ことを特徴とするデータ通信方法。
【請求項２】
データを送信する送信装置と、その送信装置から送信されたデータを受信してそのデータに基づく処理を行う受信装置とを備えたデータ通信システムであって、
当該データ通信システムは、前記送信装置から前記受信装置へ浮動小数点型データの送信が可能に構成されており、
前記送信装置は、
浮動小数点型データを送信するデータ送信手段と、
前記データ送信手段により送信される浮動小数点型データが異常であるか否かを判断するデータ異常判断手段と、
を備え、前記データ送信手段は、前記データ異常判断手段にて異常と判断された場合、その異常と判断された浮動小数点型データに代えて非数を送信し、
前記受信装置は、
前記送信装置から受信した浮動小数点型データが非数であるか否かを判断する非数判断手段と、
前記非数判断手段により非数と判断された場合に、予め設定された異常対応処理を実行する異常対応処理実行手段と、
を備えることを特徴とするデータ通信システム。
【請求項３】
請求項２記載のデータ通信システムであって、
前記送信装置が備える前記データ異常判断手段は、浮動小数点型データが異常であると判断した場合にその異常の種類まで識別し、
前記データ送信手段は、前記データ異常判断手段にて異常と判断された場合、その異常の種類に対応した非数を送信するよう構成されており、
前記受信装置が備える前記非数判断手段は、受信した浮動小数点型データが非数であると判断した場合にその非数の値まで識別し、
前記異常対応処理実行手段は、前記非数判断手段にて非数と判断された場合、その非数の値に対応した異常対応処理を実行するよう構成されている
ことを特徴とするデータ通信システム。
【請求項４】
請求項３記載のデータ通信システムであって、
前記送信装置は、
前記データ送信手段により送信される浮動小数点型データの異常の種類毎にそれぞれ異なる値の非数が対応付けられた非数テーブルを備え、
前記データ送信手段は、前記データ異常判断手段にて異常と判断された場合、前記非数テーブルにおいてその異常の種類と対応付けられている非数を送信し、
前記受信装置は、
前記送信装置から送信されてくる非数の値毎にそれぞれ異なる非数関連情報が対応付けられた非数関連情報テーブルを備え、
前記異常対応処理実行手段は、前記非数判断手段にて非数と判断された場合、前記非数関連情報テーブルにおいてその非数と対応付けられている前記非数関連情報に基づいて、前記異常対応処理を実行する
ことを特徴とするデータ通信システム。
【請求項５】
請求項４記載のデータ通信システムであって、
前記非数関連情報テーブルには、前記非数関連情報として、前記送信装置から送信されてくる非数の値毎に、その非数に対応した前記異常の種類が対応付けられている
ことを特徴とするデータ通信システム。
【請求項６】
請求項２〜５いずれかに記載のデータ通信システムであって、
前記送信装置は、
浮動小数点型データを演算する浮動小数点演算手段を備え、
前記データ送信手段は、前記浮動小数点演算手段による演算の結果得られた浮動小数点型データを送信可能であって、
前記データ異常判断手段は、前記浮動小数点演算手段にて得られた浮動小数点型データが異常であるか否かの判断を、その浮動小数点型データが前記浮動小数点演算手段で演算された際の演算過程又はその演算で用いられたデータについて異常があったか否かを判断することにより行う
ことを特徴とするデータ通信システム。
【請求項７】
請求項２〜６いずれかに記載のデータ通信システムであって、
当該データ通信システムは車両に搭載され、
前記送信装置および前記受信装置は、前記車両に搭載された車載機器を制御する電子制御装置である
ことを特徴とするデータ通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、送信装置から送信されたデータを受信装置が受信してそのデータに基づく処理を行うためのデータ通信方法及びその方法を利用してデータ通信を行うデータ通信システムに関する。
【背景技術】
【０００２】
従来、複数の装置間でデータ通信を行うにあたり、データを送信する側の装置(送信装置）から送信されるデータに異常がある場合、送信装置はそのデータと共に異常である旨の情報も送信することが知られている。これにより、送信されたデータを受信する側の装置（受信装置）では、データと共に異常である旨の情報が送信されてきた場合、そのデータは正常なものではないことが判断でき、その状況に応じた適切な処理を行うことができる。
【０００３】
上記のようにデータと共に異常情報まで送信するよう構成されたデータ通信システムの具体例として、自動車における車内データ通信システムが挙げられる。自動車では、各種車載機器を制御するための電子制御装置(ＥＣＵ）の搭載数が年々増加傾向にある。そのため、複数のＥＣＵを共通の通信線で接続してネットワーク化することで、ワイヤーハーネスの削減等を実現している。
【０００４】
このような車内データ通信システムでは、例えば、あるセンサからの信号が入力されるＥＣＵが、その信号をデジタルデータとして他のＥＣＵにも送信することで、複数のＥＣＵでそのセンサ信号（データ）を共有できるようにしている。また、あるＥＣＵにおける演算結果が他のＥＣＵでも必要とされる場合は、その演算結果を他のＥＣＵへ送信するようにしている。そして、このように複数のＥＣＵ間でデータの送受信が行われる際に、データを送信する側のＥＣＵは、送信しようとするデータに異常がある場合、そのデータと共に異常である旨の情報まで送信する。或いは、異常である旨の情報だけを送信する場合もある。
【０００５】
例えば、水温センサが接続されてそのセンサ値が入力されるＥＣＵが、水温データを必要とする他のＥＣＵへその水温データを送信する際に、水温センサに何らかの異常が生じていたり、得られたセンサ値が異常であるなど、そのデータを取得する段階から送信開始するまでの過程で何らかの異常があった場合は、送信側のＥＣＵは、水温データと共に異常である旨の情報まで送信するのである。これにより、受信側のＥＣＵでは、水温データと共に異常情報まで受信したときは、受信した水温データが正常なものではないと判断して、予め用意したフェイルセーフ値を用いたり、直前に取得した水温データをそのまま保持するなどの処理を行うことができる。
【０００６】
送信装置から異常である旨の情報を送信する方法としては、例えば、予め決められたビット数の送信データに加えて、数ビット分のデータ異常情報を付加して送信する方法が知られている。
【０００７】
また、別の方法として、予め決められたデータ範囲内の一部を異常情報として設定し、受信側ではこれを受信したときに送信側に異常が生じたものと判断する方法も知られている。具体的には、例えばアクチュエータの駆動量を演算すると共にそのアクチュエータの制御系に異常が発生したことを検知する電子制御装置において、制御系に異常が発生した場合、アクチュエータの駆動量限界を超える駆動量を示すデータを異常情報として送信する。受信側では、このように駆動量限界を超えるような駆動量のデータが受信された場合は、制御系に異常が発生したものと判断する（例えば、特許文献１参照。）。
【特許文献１】特開平５−２６３７１０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、上述したような、送信データとは別にデータ異常情報を付加する方法では、次のような問題が生じる。即ち、送信データとは別にデータ異常情報も送信することで受信側へ異常を伝達することはできるものの、全体としてデータサイズが増加してしまう。
【０００９】
例えば、上述した車内データ通信システムにおいて水温データが８ビットである場合に、その８ビットの水温データとは別にデータ異常情報として２ビットを付加するようにした場合、水温データそのものとしては８ビットあればよいものの全体として１０ビットのデータサイズが必要となる。つまり、水温データを送信するために、水温データそのものだけを考えれば８ビットで足りるものの、データ異常情報を付加することで全体として１０ビットのデータサイズを確保する必要があるのである。
【００１０】
しかも、送信データとは別にデータ異常情報が付加されるため、データ自体の送信タイミングよりもデータ異常情報の送信タイミングが遅くなると、受信側では、受信したデータに異常がある場合であってもそのことがわからぬままそのデータに基づく所定の処理を実行してしまうおそれがある。そのため、送信側および受信側では、データ自体およびデータ異常情報の双方の同時性を常に意識する必要がある。
【００１１】
また、特許文献１に記載されているような、異常が生じた場合に駆動量限界を超えるような駆動量を示すデータを送信する方法でも、結果として、本来必要とするデータサイズよりも大きくなる。
【００１２】
即ち、駆動量限界を超える駆動量を示すデータを送信できるということは、当該駆動量限界を超える通信データサイズを確保しているということである。そのため、データサイズは、本来送信すべきアクチュエータの駆動量のデータサイズより大きくなるのである。
【００１３】
より具体的に説明すると、例えば車両に備えられた水温センサの検出信号（水温データ）送信用に０〜２５５の８ビットが用いられる場合に、水温データが２５６以上となることはまずないものとして、水温センサの異常を示すデータとして２５６或いはそれ以上の値を割り当てると、結果として、水温センサのデータ送信用に９ビット分以上のデータサイズが必要となってしまうのである。つまり、有効な水温データ（０〜２５５）を送信できるようにするだけでいいなら８ビットで済むものの、異常が生じた場合にその旨を示すデータ（２５６或いはそれ以上）をも送信できるようにするために、水温データ用のデータサイズとして９ビット以上必要となってしまう。
【００１４】
データサイズが増えないようにするために、例えば８ビットのデータサイズにおいて、０〜２５５の全てを有効な水温データとして扱わずに０〜２５０を有効な水温データとし、２５１以上の任意の値（例えば２５５）を異常情報データとすることも可能ではある。しかし、そのように８ビットデータサイズの範囲内で異常情報まで送信できるようにしようとすると、その分、有効な水温データとしての取りうる値が狭まってしまう。上記例では、０〜２５５までの８ビット全体を有効な水温データとしてフル活用できなくなるのである。
【００１５】
本発明は上記課題に鑑みなされたものであり、送信装置からデータを送信するにあたり、データサイズ全体を増やすことなく、且つデータの取りうる範囲を狭めることなく、その送信データの異常を受信装置側へ伝達できるようにすることを目的とする。
【課題を解決するための手段】
【００１６】
本発明者は、データの表現方法（型）の一つである浮動小数点型データにおいて、数値として表現できない演算結果を非数として表現できるようになっていることに着目した。そして、通常は各種演算の過程で悪影響を及ぼすこの非数を、逆に有効利用できないかという観点から、本発明に至った。
【００１７】
即ち、上記課題を解決するためになされた請求項１記載の発明は、データを送信する送信装置と、その送信装置から送信されたデータを受信してそのデータに基づく処理を行う受信装置とを備えたデータ通信システムにおけるデータ通信方法であって、当該データ通信システムは、送信装置から受信装置へ浮動小数点型データの送信が可能に構成されている。
【００１８】
そして、送信装置は、送信すべき浮動小数点型データが異常である場合は、そのデータに代えて非数を送信し、受信装置は、送信装置から受信した浮動小数点型データが非数であった場合は、予め設定された異常対応処理を行う。
【００１９】
つまり、浮動小数点型データによるデータ通信を行うにあたり、送信装置は、送信しようとするデータ（浮動小数点型データ）に何らかの異常がある場合、そのデータは送信せず、非数を送信するのである。そして受信装置では、本来受信すべきデータではなく非数が受信された場合は、異常対応処理、即ち非数が受信された場合に実行すべき処理として予め設定されている処理を実行する。
【００２０】
送信する浮動小数点型データの異常としては、データの値そのものの異常に限らず、そのデータの生成源の異常（例えばセンサから得られる値に基づくデータであれば、そのセンサ自体の異常）や、送信用データが生成されるまでの過程での何らかの異常なども考えられる。そういった、送信しようとする浮動小数点型データに関わる何らかの異常が存在するときは、そのデータが正常でない可能性があるため、そのデータは送信せずに非数を送信する。このようにすれば、受信装置では異常なデータを用いて処理してしまうおそれがなく、また、非数受信により送信側の異常を知ることができる。
【００２１】
また、浮動小数点型データにおいて、非数を表すビットパターンは予め決められている。例えば、よく知られたＩＥＥＥ７５４規格に従う単精度（３２ビット）の浮動小数点型データ(詳細は後述）では、８ビット分の指数部が全て「１」であって、２３ビット分の仮数部が全て「０」ではない場合を、非数として取り扱うことが定められている。
【００２２】
そのため、送信装置において送信しようとする浮動小数点型データに異常がある場合に、そのデータに代えて非数を送信するようにしても、浮動小数点型データのデータサイズ全体が３２ビットからさらに増えるわけではなく、また、データの取りうる値が狭まるわけでもない。
【００２３】
つまり、浮動小数点型データにおいて、予め規定はされているものの通常の演算には用いることのない（用いると悪影響が出る）非数を、発想の転換により、送信装置側のデータ異常を伝達するために積極的に利用するようにしているのである。
【００２４】
従って、本発明のデータ通信方法によれば、浮動小数点型データによる通信を行う際に、送信装置は、送信しようとするデータが異常である場合は非数を送信するようにしたため、浮動小数点型データのデータサイズ全体を増やすことなく、且つデータの取りうる範囲を狭めることなく、その送信データの異常を受信装置側へ伝達することが可能となる。
【００２５】
次に、請求項２記載の発明は、データを送信する送信装置と、その送信装置から送信されたデータを受信してそのデータに基づく処理を行う受信装置とを備えたデータ通信システムであって、当該データ通信システムは、送信装置から受信装置へ浮動小数点型データの送信が可能に構成されている。
【００２６】
送信装置は、浮動小数点型データを送信するデータ送信手段と、データ送信手段により送信される浮動小数点型データが異常であるか否かを判断するデータ異常判断手段とを備え、データ送信手段は、データ異常判断手段にて異常と判断された場合、その異常と判断された浮動小数点型データに代えて非数を送信する。
【００２７】
そして、受信装置は、送信装置から受信した浮動小数点型データが非数であるか否かを判断する非数判断手段と、非数判断手段により非数と判断された場合に、予め設定された異常対応処理を実行する異常対応処理実行手段とを備えている。
【００２８】
上記構成のデータ通信システムでは、データ送信手段は、送信しようとする浮動小数点型データが異常である場合はそのデータに代えて非数を送信する。そして、受信装置側では、非数が受信された場合は異常対応処理実行手段が予め設定された異常対応処理を実行する。
【００２９】
従って、上記構成のデータ通信システムによれば、請求項１記載のデータ通信方法が実現され、請求項１と同様の作用、効果が得られる。
ところで、浮動小数点型データでは通常、非数として扱われるデータパターンが複数存在する。例えば上述したＩＥＥＥ７５４規格に従う単精度（３２ビット）の浮動小数点型データでは、指数部が全て「１」であって仮数部が全て「０」ではないという条件を満たす複数のデータがいずれも非数として取り扱われる。また、送信装置が送信する浮動小数点型データが異常である場合、その異常の種類(原因）は必ずしも常に同じとは限らない。
【００３０】
そこで、例えば請求項３に記載のように、送信装置が備えるデータ異常判断手段は、浮動小数点型データが異常であると判断した場合にその異常の種類まで識別し、データ送信手段は、データ異常判断手段にて異常と判断された場合、その異常の種類に対応した非数を送信するようにし、受信装置が備える非数判断手段は、受信した浮動小数点型データが非数であると判断した場合にその非数の値まで識別し、異常対応処理実行手段は、非数判断手段にて非数と判断された場合、その非数の値に対応した異常対応処理を実行するように構成してもよい。
【００３１】
このように構成されたデータ通信システムによれば、送信する浮動小数点型データの異常の種類に応じた非数が受信装置へ送信されるため、受信装置側では、異常の種類に応じた適切な異常対応処理を実行することができる。
【００３２】
そして、上記のように異常の種類毎に異なる非数が送信されるよう構成されたデータ通信システムにおいては、さらに、例えば請求項４に記載のように、送信装置は、データ送信手段により送信される浮動小数点型データの異常の種類毎にそれぞれ異なる値の非数が対応付けられた非数テーブルを備え、データ送信手段は、データ異常判断手段にて異常と判断された場合、非数テーブルにおいてその異常の種類と対応付けられている非数を送信するようにし、受信装置は、送信装置から送信されてくる非数の値毎にそれぞれ異なる非数関連情報が対応付けられた非数関連情報テーブルを備え、異常対応処理実行手段は、非数判断手段にて非数と判断された場合、非数関連情報テーブルにおいてその非数と対応付けられている非数関連情報に基づいて異常対応処理を実行するようにしてもよい。
【００３３】
このように構成されたデータ通信システムによれば、システムを構築するにあたり、データ異常時の送信装置側での対応（異常の種類に対応した非数の設定）および受信装置側での対応（非数に対応した異常対応処理の設定）を簡易的かつ効率的に管理することが可能となる。
【００３４】
非数関連情報テーブルにおいて非数と対応付けられる非数関連情報としては、例えば、本来送信されてくるはずであったデータに代わる何らかの代替データであってもいいし、また例えば、異常対応処理の具体的内容であってもよく、送信されてくる非数に関連した各種情報を適宜対応付けることができるが、例えば請求項５記載のように、送信装置側における異常の種類であってもよい。
【００３５】
つまり、非数関連情報として、送信装置から送信されてくる非数の値毎にその非数に対応した異常の種類を対応付けることにより、送信装置が備える非数テーブルと受信装置が備える非数関連情報テーブルを、いずれも、異常の種類と非数とが対応付けられたものとするのである。このようにすれば、両テーブルの内容の一部又は全てを共通化することが可能となり、データ通信システムをより効率的に構築することが可能となる。
【００３６】
請求項６記載の発明は、請求項２〜５いずれかに記載のデータ通信システムであって、送信装置は、浮動小数点型データを演算する浮動小数点演算手段を備えている。そして、データ送信手段は、浮動小数点演算手段による演算の結果得られた浮動小数点型データを送信可能であって、データ異常判断手段は、浮動小数点演算手段にて得られた浮動小数点型データが異常であるか否かの判断を、その浮動小数点型データが浮動小数点演算手段で演算された際の演算過程又はその演算で用いられたデータについて異常があったか否かを判断することにより行う。
【００３７】
このように構成されたデータ通信システムによれば、浮動小数点演算手段により演算された浮動小数点型データが異常であるか否かを、単に演算結果だけを見て判断するのではなく、異常の原因をより具体的に判断するようにしているため、より的確な異常判断が可能となる。特に、請求項３〜５記載のデータ通信システムのように異常の種類毎に異なる非数を送受信するよう構成されている場合に対して、本発明(請求項６）を適用すると、浮動小数点演算手段により得られた浮動小数点型データの異常の種類に応じて非数が設定・送信されることとなるため、受信装置側では、その異常の種類に応じたより適切な対応（異常対応処理）を実行できる。
【００３８】
請求項７記載の発明は、請求項２〜６いずれかに記載のデータ通信システムであって、当該データ通信システムは車両に搭載され、送信装置および受信装置は、車両に搭載された車載機器を制御する電子制御装置である。
【００３９】
既述の通り、車両においては各種車載機器を制御するための電子制御装置(ＥＣＵ）の搭載数が年々増加傾向にあり、ＥＣＵ相互間で送受信されるデータ量も増加傾向にある。そこで、車両に搭載されるデータ通信システムに対して上記請求項２〜６のいずれかに記載のような構成を適用すれば、データサイズ全体を増やすことなく且つデータの取りうる範囲を狭めることなく、送信側の電子制御装置の異常（送信しようとする浮動小数点型データの異常）を受信側の電子制御装置へ伝達できるため、より効果的である。
【発明を実施するための最良の形態】
【００４０】
以下に、本発明の好適な実施形態を図面に基づいて説明する。
図１は、本発明が適用された実施形態のデータ通信システム全体の概略構成を表す説明図である。本実施形態のデータ通信システム１０は、車両に搭載され、図示しない各種車載機器を制御するための各種電子制御装置（ＥＣＵ）が共通の通信線７を介して相互にデータ送受信可能に接続されて構成されている。
【００４１】
即ち、図１に示す如く、本実施形態のデータ通信システム１０は、図示しない車両のエンジンを制御するエンジン制御ＥＣＵ１と、ブレーキ時の車輪のロックを防止するための周知のＡＢＳ（Antilock Brake System ）システム（図示略）を制御するＡＢＳＥＣＵ３と、車両に搭載された図示しないインストルメントパネル全体を制御するインパネＥＣＵ５が、通信線７を介して相互にデータ通信可能に接続されている。通信線７には、図示しない他のＥＣＵも複数接続されており、各ＥＣＵ相互間でデータ通信が可能である。
【００４２】
エンジン制御ＥＣＵ１は、ＣＰＵ１１、ＲＯＭ１３、ＲＡＭ１４、入力処理回路１５、出力処理回路１６、及び、これら各部を接続するバス１９からなる周知のマイクロコンピュータを中心に構成されており、ＣＰＵ１１は、ＲＯＭ１３に予め格納されたプログラムに沿って実行する各種制御処理によって、各種センサ・スイッチ等から入力される各種検出信号を入力処理回路１５を介して取り込み、各種演算を行って、その演算結果に対応した各種駆動信号を出力処理回路１６を介して出力することにより、インジェクタ８，イグナイタ９等を駆動制御する。
【００４３】
また、エンジン制御ＥＣＵ１は、浮動小数点型データの演算を行う浮動小数点演算手段としての浮動小数点演算プロセッサ（ＦＰＵ）１２を備えている。そして、浮動小数点型データ以外の演算はＣＰＵ１１が実行するが、浮動小数点型データの演算自体はＦＰＵ１２が実行する。
【００４４】
入力処理回路１５には、冷却水の温度を検出する水温センサ２５、エンジン（Ｅ／Ｇ）の回転数を検出するエンジン回転数センサ２６、吸入空気の温度を検出する吸気温センサ２７、スロットルバルブの開度を検出するスロットルセンサ２８をはじめ、図示しない他の各種センサ・スイッチ等からの各種検出信号が入力される。そして、入力された各種検出信号は、この入力処理回路１５においてＡ／Ｄ変換あるいは波形整形などの各種信号処理が行われる。
【００４５】
エンジン制御ＥＣＵ１のバス１９には、上記各部に加えて、通信コントローラ１７が接続されている。この通信コントローラ１７は、当該エンジン制御ＥＣＵ１と通信線７を介して接続された他のＥＣＵとの間で行われるデータ通信（送受信）を制御するためのものであり、ＣＰＵ１１からの指令に従って、他のＥＣＵへ送信すべきデータを通信Ｉ／Ｆ（インタフェース）１８を介して通信線７上へ送出する。また、他のＥＣＵから通信線７及び通信Ｉ／Ｆ１８を介して入力されたデータを受信して、当該エンジン制御ＥＣＵ１の内部へ出力する。
【００４６】
エンジン制御ＥＣＵ１が他のＥＣＵへ送出するデータは種々あるが、その一例として、水温センサ２５により検出された水温データや、エンジン回転数センサ２６により検出されたエンジン回転数データが挙げられる。これら２種類のデータは、いずれもインパネＥＣＵ５に入力され、インパネＥＣＵ５において、こられのデータに基づく演算・表示等が行われることとなる。
【００４７】
また、上記例示した水温データおよびエンジン回転数データは、いずれも、浮動小数点型データとしてインパネＥＣＵ５へ送信される。つまり、本実施形態のエンジン制御ＥＣＵ１は、固定小数点型データの演算および通信だけでなく、浮動小数点型データの演算および通信も行えるよう構成されている。
【００４８】
データ送信の際は、ＲＡＭ１４の送信データ格納領域２２に一時的に格納されている送信データが送信バッファ２３にセットされる。このセットされた送信データが、最終的には通信コントローラ１７により送信されることとなる。
【００４９】
ＦＰＵ１２が取り扱う浮動小数点型データについて、図２を用いて説明する。図２は、浮動小数点型データの構成を示す説明図である。図２では、一例としてＩＥＥＥ７５４規格に従う単精度の浮動小数点型データを示している。
【００５０】
図２（ａ）に示すように、ＦＰＵ１２が取り扱う浮動小数点型データは１ビットの符号部、８ビットの指数部、２３ビットの仮数部で構成されている。
また、図２（ｂ）に示すビットパターンに示す表から解るように、指数部と仮数部との組合せにより、正規化数、非正規化数、ゼロ、無限大、および非数に識別される。このうち非数とは、数値ではないことを意味し、例えば、０／０や＋∞−∞のように、数値として表現できない演算結果を表す場合に用いられる。
【００５１】
非数を表すビットパターンは、図２（ｂ）に示すように、指数部の８ビットが全て「１」、すなわち指数部が１０進表記で「２５５」であり、仮数部が「０」以外となる。このビットパターンに当てはまるデータは全て非数として扱われる。
【００５２】
図１に戻り、ＡＢＳＥＣＵ３について説明する。ＡＢＳＥＣＵ３は、その主要なハード構成自体は、基本的にエンジン制御ＥＣＵ１と同じであり、ＣＰＵ３１、ＲＯＭ３３、ＲＡＭ３４、入力処理回路３５、通信コントローラ３７、及び、これら各部を接続するバス３９からなる周知のマイクロコンピュータを中心に構成されている。また、ＦＰＵ３２を備えており、浮動小数点型データの演算も可能に構成されている。
【００５３】
入力処理回路３５には、車両の実際の速度を検出する車速センサ４５からの検出信号や、運転者によるブレーキ操作の有無を検出するストップスイッチセンサ４６からの検出信号をはじめとする各種センサ・スイッチ等からの検出信号が入力される。
【００５４】
そして、車速センサ４５により検出された車速データおよびストップスイッチセンサ４６により検出されたストップスイッチ信号（オン・オフいずれかを示すデータ）は、他のＥＣＵでも利用されるため、通信コントローラ３７が所定のタイミングで通信Ｉ／Ｆ３８を介して通信線７上へ送出する。具体的には、ＲＡＭ３４内の送信データ格納領域４２に一時記憶された送信データが送信バッファ４３にセットされ、このセットされた送信データが最終的に通信コントローラ３７によって他のＥＣＵへ送信されることとなる。これらの送信データも浮動小数点型データである。
【００５５】
なお、ＡＢＳＥＣＵ３においても、ＣＰＵ３１やＦＰＵ３２による演算結果に対応した各種信号を図示しない出力回路を介して出力することにより、図示しない各種アクチュエータ等を駆動制御するようにされている。
【００５６】
インパネＥＣＵ５も、その主要なハード構成自体は、基本的にはエンジン制御ＥＣＵ１やＡＢＳＥＣＵ３と同じであり、ＣＰＵ５１、ＲＯＭ５３、ＲＡＭ５４、通信コントローラ５７、及び、これら各部を接続するバス５９からなる周知のマイクロコンピュータを中心に構成されている。また、ＦＰＵ５２を備えており、浮動小数点型データの演算も可能に構成されている。さらに、図示は省略したものの、エンジン制御ＥＣＵ１と同じように入力処理回路や出力処理回路も備えている。
【００５７】
そして、インパネＥＣＵ５では、車両の走行速度やエンジン回転数、冷却水温度などの各種情報を運転者に対して表示するために、これらのデータを他のＥＣＵから受信し取得するようにしている。具体的には、水温データおよびエンジン回転数データについてはエンジン制御ＥＣＵ１から取得し、車速データについてはＡＢＳＥＣＵ３から取得するようにしている。この他にも、他のＥＣＵから各種データを取得するようにしている。
【００５８】
取得した水温データ、エンジン回転数データ、車速データ（いずれも浮動小数点型データ）は、ＲＡＭ５４における受信バッファ６２に一旦格納された後、同じＲＡＭ５４内の所定の受信データ格納領域６３に格納される。
【００５９】
このように構成されたデータ通信システム１０では、エンジン制御ＥＣＵ１、ＡＢＳＥＣＵ３，およびインパネＥＣＵ５がそれぞれ、ＲＯＭ内に非数変換テーブルを有している。この非数変換テーブルは、他のＥＣＵへ送信しようとする送信データが異常である場合にその送信データに代えて非数を送信するための、異常の種類と非数とが対応付けられたテーブル（リスト）である。図３にその具体例を示す。
【００６０】
図３（ａ）は、エンジン制御ＥＣＵ１のＲＯＭ１３に格納された非数変換テーブル２１およびインパネＥＣＵ５のＲＯＭ５３に格納された非数変換テーブル６１を示すものである。図示の如く、この非数変換テーブル２１，６１は、送受信されるデータの異常、より詳しくはそのデータの生成源（センサやスイッチ等）の異常の種類毎に異なる値の非数が１体１で対応付けられたものである。なお、図３に示す非数はいずれも１６進数で表記している。図３（ｂ）は、ＡＢＳＥＣＵ３のＲＯＭ３３に格納された非数変換テーブル４１を示すものである。
【００６１】
このように構成されたデータ通信システム１０において、各ＥＣＵで実行されるデータ送信処理（浮動小数点型データの送信処理）について、図４を用いて説明する。図４は、エンジン制御ＥＣＵ１のＣＰＵ１１が実行するデータ送信処理を表すフローチャートである。ＣＰＵ１１は、他のＥＣＵへデータ送信を行うタイミング毎にこの処理を実行する。  
【００６２】
この処理が開始されると、まずステップ（以下「Ｓ」と略す）１１０にて、センサ状態の確認がなされる。これは、送信対象のデータに対応したセンサ・スイッチ等の状態を確認するものであり、例えば水温データをインパネＥＣＵ５へ送信する場合ならば、水温センサ２５の状態を確認することとなり、エンジン回転数データをインパネＥＣＵ５へ送信する場合ならば、エンジン回転数センサ２６の状態を確認することとなる。
【００６３】
そして、Ｓ１１０での確認の結果に基づいて異常があったか否かが判断され（Ｓ１２０）、異常がなければ、検出されたセンサ値（送信データ格納領域２２に格納中）がそのまま浮動小数点型データ形式の送信データとして送信バッファ２３へセットされる（Ｓ１３０）。そして、セットされた送信データに対する送信処理が行われる（Ｓ１６０）。
【００６４】
一方、Ｓ１２０にて異常があると判断された場合は、その異常内容が具体的に判断され（Ｓ１４０）、非数変換テーブル２１においてその異常内容と対応付けられた非数が送信バッファ２３へセットされ、送信される（Ｓ１６０）。つまり、実際に検出されたデータに代えて非数が送信されるのである。
【００６５】
例えば、水温データを送信する際に水温センサ２５に異常があるならば、検出された水温データ自体も異常である（或いはその可能性が高い）。そのため、非数変換テーブル２１を参照し、異常の種類（この例では水温センサの異常）に対応した非数を抽出する。水温センサ２５の異常の形態としては、さらに、物理的あるいは電気的な故障によるものと、故障ではないものの起動直後などであって初期化が未完了であり正確なデータが取得できない場合とがある。このように一つのセンサ・スイッチにおいて複数の異常の形態がある場合は、その異常の形態毎に非数が対応付けられている。
【００６６】
そのため、例えば水温センサ２５の物理的な故障により水温データが異常である場合は、非数「０ｘ７Ｆ８００００１」が送信バッファ２３にセットされることになる。また例えば、エンジン回転数データを送信する際にそのデータが異常である場合（即ちエンジン回転数センサ２６が異常である場合）は、非数変換テーブル２１を参照し、その異常なデータに代えて非数「０ｘ７Ｆ８００００３」が送信バッファ２３にセットされることとなる。
【００６７】
なお、図４のデータ送信処理は、エンジン制御ＥＣＵ１だけでなく、他のＥＣＵがデータ送信を行う際にも同様に実行される。例えば、ＡＢＳＥＣＵ３において車速データやストップスイッチ信号が送信される際にも、図４のデータ送信処理が実行される。ただしＡＢＳＥＣＵ３のＲＯＭ３３に格納されている非数変換テーブル４１は図３（ｂ）に示すものである。従って、例えば車速データを他のＥＣＵに送信する際に、車速データが異常、即ち車速センサ４５が異常ならば、その車速データに代えて、図３（ｂ）の非数変換テーブル４１で「車速センサの異常」と対応付けられた非数「０ｘ７Ｆ８０００１Ａ」を送信することとなる。
【００６８】
次に、上述した図４のデータ送信処理によってエンジン制御ＥＣＵ１から送信されたデータ或いは他のＥＣＵから送信されたデータを受信する処理について、図５に基づいて説明する。図５は、インパネＥＣＵ５のＣＰＵ５１が実行するデータ受信処理を表すフローチャートである。ＣＰＵ５１は、他のＥＣＵから浮動小数点データが受信される毎にこの処理を実行する。
【００６９】
この処理が開始されると、まずデータ受信（即ちＲＡＭ５４の受信バッファ６２への受信データ格納）が行われ（Ｓ２１０）、その受信したデータの確認（エラーチェック等）が行われる（Ｓ２２０）。そしてＳ２３０にて、その受信したデータが非数であるか否かの判断、さらに非数ならばその値の識別がなされ、非数でなければ、本来受信すべきデータが受信されたものとしてそのデータをＲＡＭ５４の受信データ格納領域６３へ格納する（Ｓ２４０）。
【００７０】
一方、受信したデータが非数であれば（Ｓ２３０；ＹＥＳ）、ＲＯＭ５３の非数変換テーブル６１（図３（ａ））との照合を行う（Ｓ２５０）。そして、受信した非数が非数変換テーブル６１にあるならば（Ｓ２６０；ＹＥＳ）、その非数と対応付けられた異常の種類を識別し、その異常の種類に応じて予め決められたフェイルセーフ値を受信データ格納領域６３へ格納する（Ｓ２７０）。受信した非数が非数変換テーブル６１にない場合は（Ｓ２６０；ＮＯ）、データエラーやノイズ等の何らかの要因で受信データが非数になってしまった可能性もあるため、前回値、即ち前回受信した当該データをそのまま保持する（Ｓ２８０）。
【００７１】
例えば、エンジン制御ＥＣＵ１から水温データを受信するタイミングにおいて、実際に受信したデータが非数であった場合は、非数変換テーブル６１と照合することとなる。このとき、例えば非数「０ｘ７Ｆ８００００２」が受信されているならば、非数変換テーブル６１と照合することによって水温センサが異常であること、より具体的には故障ではないものの初期化未了であることがわかる。そのため、ＲＡＭ５４の受信データ格納領域６３には、水温センサ初期化未了時に対応して予め決められたフェイルセーフ値が格納されることになる。
【００７２】
なお、図５のデータ送信処理は、インパネ制御ＥＣＵ５だけでなく、他のＥＣＵがデータ受信を行う際にも同様に実行される。例えば、エンジン制御ＥＣＵ１において他のＥＣＵからのデータが受信された際にも、図５のデータ受信処理が実行される。即ち、エンジン制御ＥＣＵ１においてデータが受信されたとき、そのデータが非数ならば、その非数が非数変換テーブル２１にあるか否かの照合を行う。このとき、例えば非数「０ｘ７Ｆ８００００１」が受信されているならば、照合の結果、車速データの異常であることが識別できる。そのため、車速データの異常に対応して予め決められたフェイルセーフ値がＲＡＭ１４の受信データ格納領域（図示略）に格納されることとなる。
【００７３】
このように、本実施形態のデータ通信システム１０では、送信側のＥＣＵ（本発明の送信装置に相当）が他のＥＣＵへデータ（浮動小数点型データ）を送信する際に、そのデータが異常か否か、より具体的には、そのデータの生成源（センサ・スイッチ等）が異常か否かが判断される。そして、異常である場合は、本来送信すべきデータに代えて、その異常の種類に対応して設定された非数を送信する。そして、受信側のＥＣＵ（本発明の受信装置に相当）では、受信したデータが本来受信するはずのデータではなく非数であった場合、その非数が非数変換テーブル上にあるかどうかの照合を行い、なければ前回受信したデータをそのまま保持し、あれば、その異常の種類に応じたフェイルセーフ値を用いる。
【００７４】
従って、本実施形態のデータ通信システムによれば、データ送信時の送信側の異常を、非数を送信することにより受信側へ伝達するようにしているため、異常情報伝達のために浮動小数点型データのデータサイズ全体を増やすことなく、且つデータの取りうる範囲を狭めることもなく、その送信データの異常を受信装置側へ伝達することが可能となる。
【００７５】
つまり、３２ビットで構成される浮動小数点型データの送信において、異常情報を伝達する手段として非数を用いるようにしたため、異常情報の伝達用に新たにビット数を増やす必要はなく、且つ、異常情報を伝達できるようにしたことで本来送信可能なデータの取りうる範囲を狭める必要もないわけである。
【００７６】
しかも、非数の種類は非常に多いため、多くの異常の種類を異なる非数によって個々に伝達することができる。もちろんそのようにしても、送信データのサイズや取りうる範囲自体に何ら影響を及ぼすことはない。
【００７７】
また、異常の種類と非数の値とを非数変換テーブルにて１対１に対応付けているため、当該データ通信システム１０を構築するにあたり、データ異常時の送信側での対応（異常の種類に対応した非数の設定）および受信側での対応（非数に対応した処理の設定）を簡易的かつ効率的に管理することが可能となる。しかも、データ送信時およびデータ受信時の双方で同じ一つの非数変換テーブルを用いるようにしているため、データ通信システム１０をより効率的に構築することが可能となる。
【００７８】
ここで、本実施形態の構成要素と本発明の構成要素の対応関係を明らかにする。本実施形態において、エンジン制御ＥＣＵ１が備える非数変換テーブル２１（図３（ａ）参照）のうち、当該エンジン制御ＥＣＵ１が他のＥＣＵへ送信する浮動小数点型データに関する部分（「水温センサの異常」や「エンジン回転数センサの異常」と非数との対応付け関係）は本発明の非数テーブルに相当し、当該エンジン制御ＥＣＵ１が他のＥＣＵから受信する浮動小数点型データに関する部分（「車速センサの異常」と非数との対応付け関係）は本発明の非数関連情報テーブルに相当し、このうち異常の種別としての「車速センサの異常」は本発明の非数関連情報に相当する。
【００７９】
ＡＢＳＥＣＵ３が備える非数変換テーブル４１（図３（ｂ）参照）は本発明の非数テーブルに相当する。また、インパネＥＣＵ５が備える非数変換テーブル６１（図３（ａ）参照）は、本発明の非数関連情報テーブルに相当する。
【００８０】
また、図４のデータ送信処理において、Ｓ１１０，Ｓ１２０，Ｓ１４０の処理は本発明のデータ異常判断手段が実行する処理に相当し、Ｓ１３０，Ｓ１５０，Ｓ１６０の処理は本発明のデータ送信手段が実行する処理に相当する。また、図５のデータ受信処理において、Ｓ２３０の処理は本発明の非数判断手段が実行する処理に相当し、Ｓ２５０〜Ｓ２８０の処理は本発明の異常対応処理実行手段が実行する処理に相当し、Ｓ２７０およびＳ２８０の各処理はいずれも本発明の異常対応処理に相当する。
【００８１】
［変形例］
本発明の実施の形態は、上記実施形態に何ら限定されるものではなく、本発明の技術的範囲に属する限り種々の形態を採り得ることはいうまでもない。
【００８２】
例えば、上記実施形態では、各種センサ・スイッチ等による検出結果を浮動小数点型データ形式にて他のＥＣＵへ送信する場合について説明したが、異なるＥＣＵ間で送受信されるデータには、複数のデータに基づく演算の結果得られるデータもあり得る。つまり、複数のセンサからの検出データを演算することで一つのデータを得たり、或いは、複数のセンサからの検出データの演算に加えて他のスイッチ等の状態を加味して総合的に一つのデータを生成する場合もある。
【００８３】
このように、各種演算を行うことによって得られたデータを他のＥＣＵへ送信する場合にも、本発明を適用することができる。ただしその場合、受信側において送信側の異常をより具体的に把握できるように、そのデータを得るための演算に用いられた個々のデータ（センサによる検出値あるいはスイッチの状態など）の異常状態に応じて複数の非数を対応付けるようにするとよい。
【００８４】
具体的には、図６に示す非数変換テーブルを用意することで、演算結果が異常であった場合に、その異常が生じた個別具体的な原因毎に非数を設定することができる。図６の非数変換テーブルでは、３つのセンサＡ，Ｂ，Ｃによるデータ、および２つのスイッチＡ，Ｂの状態に基づく演算により一つのデータを得て他のＥＣＵに送信する場合に、その演算結果が異常となった場合に対応した非数として、５種類の非数が対応付けられている。
【００８５】
この非数変換テーブルを用いることで、例えば、演算結果が異常となった原因がセンサＡ，Ｂの異常に起因するものであれば、非数「０ｘＦＦ９０００１１」を送信することができる。また例えば、演算結果の異常がセンサＡ，Ｂ，Ｃの異常に起因するものであれば、非数「０ｘＦＦ９０００１３」を送信することができる。更に例えば、演算結果の異常がセンサＢとスイッチＡ，Ｂの異常に起因するものであれば、非数「０ｘＦＦ９０００１５」を送信することができる。
【００８６】
これにより、受信側では、受信した非数に基づいて、送信側でどのような異常が生じたのかを具体的に知ることができるため、その異常の種類に応じてより適切な対応（フェイルセーフ値の設定、前回値の保持、或いは他の適切な処理）をとることができるようになる。
【００８７】
また、上記実施形態では、データ送信側のＥＣＵにおいて、センサ・スイッチ等のデータ生成源に異常があったか否かを判断することで送信データの異常の有無を判断するようにしたが、送信データの異常の判断は、そのデータの生成源の異常に限らず、センサ・スイッチ等から取得した検出信号を浮動小数点型データ形式でＲＡＭの送信データ格納領域に格納する過程で異常があったか否か、或いは、センサからの検出値が通常ありえない値を示していた場合にそれを異常と判断するといった方法など、送信しようとする浮動小数点型データが異常か否かを判断できる限り、その具体的な判断方法・判断基準は特に限定されない。
【００８８】
更に、上記実施形態では、エンジン制御ＥＣＵ１とインパネＥＣＵ５とが同じ非数変換テーブルを持つようにしたが、必ずしも同じものにする必要はなく、各ＥＣＵがそれぞれ、自身が送受信するデータのみが対応付け・リストアップされた非数変換テーブルを持つようにしてもよい。そのようにしても、異なる２つのＥＣＵ相互間で送受信される浮動小数点型データについては両ＥＣＵで共に同じ対応付けがなされるため、少なくともそのデータについては共通化でき、システム全体における非数変換テーブルの管理を効率化できる。
【００８９】
更にまた、上記実施形態では、複数のＥＣＵが相互にデータ通信可能に接続されたデータ通信システムに本発明が適用された例を説明したが、上記構成はあくまでも一例であり、自身が持つ浮動小数点型データを他の装置（受信側）へ送信するよう構成されたあらゆるデータ通信システムに本発明を適用可能である。
【００９０】
例えば、一つのＥＣＵ内に複数のマイクロコンピュータ（ＣＰＵ）があってその複数のマイクロコンピュータ相互間でデータ送受信がなされる場合であっても本発明を適用できる。また、車両に搭載されたデータ通信システム以外であってもよい。
【図面の簡単な説明】
【００９１】
【図１】本実施形態のデータ通信システム全体の概略構成を表す説明図である。
【図２】浮動小数点型データの構成を示す説明図である。
【図３】本実施形態の非数変換テーブルを表す説明図である。
【図４】本実施形態のデータ送信処理を表すフローチャートである。
【図５】本実施形態のデータ受信処理を表すフローチャートである。
【図６】非数変換テーブルの変形例を表す説明図である。
【符号の説明】
【００９２】
１…エンジン制御ＥＣＵ、２…ＡＢＳＥＣＵ、３…インパネＥＣＵ、７…通信線、１０…データ通信システム、１１，３１，５１…ＣＰＵ、１２，３２，５２…ＦＰＵ、１３，３３，５３…ＲＯＭ、１４，３４，５４…ＲＡＭ、１７，２７，３７…通信コントローラ、１９…バス、２１，４１，６１…非数変換テーブル、２２，４２…送信データ格納領域、２３，４３…送信バッファ、２５…水温センサ、２６…エンジン回転数センサ、２７…吸気温センサ、２８…スロットルセンサ、４５…車速センサ、４６…ストップスイッチセンサ、６２…受信バッファ、６３…受信データ格納領域
【図１】
2006318401.tif 000003
【図２】
2006318401.tif 000004
【図３】
2006318401.tif 000005
【図４】
2006318401.tif 000006
【図５】
2006318401.tif 000007
【図６】
2006318401.tif 000008