(57)【要約】【課題】複雑なソフトウェアを導入することなく、同報通信の際に各受信ノードがデータを正常に受信できたかどうかを短時間で確認できるようにする。【解決手段】１つの送信ノードからＩ２Ｃバスを介して複数の受信ノードにデータを同報で送信する際に、送信フレーム内のコマンド＜Ｃ＞の後に各受信ノードの受信確認アドレス＜ＰＡｘ＞＜ＦＡｘ＞を追加し、受信ノードがコマンド＜Ｃ＞を正常に受信し、かつ、自分宛のアドレスを確認したときにＡＣＫ信号を返すようにすることにより、各受信ノードからの受信応答信号がＩ２ＣバスでワイヤードＯＲされることなく個別に送信ノードで確認できるようにして、各受信ノードが個別に返信フレームを生成して送信しなくても、全ての受信ノードでデータを正常に受信できたかどうかを送信ノードにおいて確実に確認することができるようにする。【選択図】        図２
2005004607.tif 000002
【特許請求の範囲】
【請求項１】
複数のノードがシリアルバスに接続され、当該複数のノード間でデータ伝送を行うように成されたバスシステムであって、
送信すべきデータの他に、同報通信の対象とする複数のノードのアドレスを含んだ送信フレームを送信ノードが生成して送信するフレーム送信手段と、
上記送信フレーム中に含まれる上記送信すべきデータを正常に受信し、かつ、自分宛のアドレスを確認した受信ノードが受信応答信号を返す受信応答手段とを備えたことを特徴とするバスシステム。
【請求項２】
上記フレーム送信手段によって生成される上記送信フレームは、上記送信フレームのデータ長情報を更に含み、
上記受信ノードが実際に受信した送信フレームのデータ長と、上記送信フレーム中に含まれる上記データ長情報とを比較して、その比較結果に応じて、上記複数のノードのうち少なくとも一のノードにおける受信異常の発生の有無を検出する異常発生検出手段を備えたことを特徴とする請求項１に記載のバスシステム。
【請求項３】
上記フレーム送信手段は、上記同報通信の対象とする複数のノードの全てから上記受信応答信号が返されてきたときには誤り検出コードを追加し、少なくとも１つのノードから上記受信応答信号が返されてこなかったときには上記誤り検出コードを追加せずに上記送信フレームを生成し、
上記受信ノードが実際に受信した送信フレームにおける上記誤り検出コードの有無に応じて、上記複数のノードのうち少なくとも一のノードにおける受信異常の発生の有無を検出する第２の異常発生検出手段を備えたことを特徴とする請求項１または２に記載のバスシステム。
【請求項４】
複数のノードがシリアルバスに接続され、当該複数のノード間でデータ伝送を行うように成されたバスシステムであって、
１つの送信ノードから複数の受信ノードにデータを同報で送信する際に、送信すべきデータを含んだ送信フレーム内に、上記複数の受信ノードのアドレスを追加し、上記受信ノードが上記送信フレーム中に含まれる上記送信すべきデータを正常に受信し、かつ、自分宛のアドレスを確認したときに受信応答信号を返すようにしたことを特徴とするバスシステム。
【請求項５】
複数のノードがシリアルバスに接続され、当該複数のノード間でデータ伝送を行うように成されたバスシステムにおいて、１つの送信ノードから複数の受信ノードにデータを同報で送信する際に、
上記送信ノードが、送信すべきデータの他に、上記複数の受信ノードのアドレスを含んだ送信フレームを生成して送信し、
上記受信ノードが、上記送信すべきデータを正常に受信し、かつ、自分宛のアドレスを確認した際に受信応答信号を返し、
上記送信ノードが、上記複数の受信ノードから上記受信応答信号が返されたか否かを判定するようにしたことを特徴とするデータの同報通信方法。
【請求項６】
上記送信ノードは、全ての受信ノードから上記受信応答信号が返されたと判定した際に、送信フレームの終了であることを表すストップコンディションを出力して上記送信フレームの送信を終了することを特徴とする請求項５に記載のデータの同報通信方法。
【請求項７】
上記送信ノードは、ある受信ノードから上記受信応答信号が返されてこなかったと判定した際に、送信フレームの終了であることを表すストップコンディションを出力して上記送信フレームの送信を直ちに終了することを特徴とする請求項５に記載のデータの同報通信方法。
【請求項８】
上記受信ノードは、上記受信応答信号を返したときにのみ、上記ストップコンディションの検出後に、受信したデータを利用して処理を実行することを特徴とする請求項６または７に記載のデータの同報通信方法。
【請求項９】
上記送信ノードは、上記送信すべきデータおよび上記複数の受信ノードのアドレスに加え、上記送信フレームのデータ長情報を更に含んだ送信フレームを生成して送信し、
上記受信ノードは、実際に受信した送信フレームのデータ長と、上記送信フレーム中に含まれる上記データ長情報とを比較し、実際のデータ長と上記データ長情報とが一致しないときには、上記受信したデータを利用しての処理は実行しないようにすることを特徴とする請求項８に記載のデータの同報通信方法。
【請求項１０】
上記送信ノードは、上記複数のノードの全てから上記受信応答信号が返されてきたときには誤り検出コードを出力した後に上記ストップコンディションを出力し、少なくとも１つのノードから上記受信応答信号が返されてこなかったときには上記誤り検出コードを出力せずに上記ストップコンディションを出力するようにし、
上記受信ノードは、実際に受信した送信フレーム中に上記誤り検出コードが含まれているか否かを判定し、上記誤り検出コードが含まれていないときには、上記受信したデータを利用しての処理は実行しないようにすることを特徴とする請求項８に記載のデータの同報通信方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はバスシステムおよびデータの同報通信方法に関し、特に、複数のノードがシリアルバスに接続され、１つのノードから複数のノードに対してデータを同報通信できるように成されたシステムに用いて好適なものである。
【０００２】
【従来の技術】
一般に、データ伝送の手法は、パラレルバスを用いたパラレル伝送と、シリアルバスを用いたシリアル伝送とに大別される。シリアルバスの代表的なものとして、オランダのフィリップス社が開発したＩＣ間用双方向シリアルバスの規格、Ｉ２Ｃバス（Ｉｎｔｅｒ−ＩＣ  Ｂｕｓ）がある。
【０００３】
Ｉ２Ｃバスによれば、１つのノードから複数のノードに対してデータを同報で送信することができる。このことから、複数の電子機器が互いにデータを通信しながら動作するように成されたシステムにおいて、機器間を接続するバスとしてＩ２Ｃバスがよく利用されている。この種のバスシステムの例としては、複数のＡＶ再生装置をＩ２Ｃバスで接続した車載オーディオシステムなどがある。
【０００４】
Ｉ２Ｃバスは、通常（データの非通信時）は伝送ラインがＨｉにプルアップされていて、データの通信時に伝送ラインがＬｏｗにプルダウンされてアクティブ状態となる。複数のノードのうちどれか１つでもデータを送信すると、伝送ラインはＬｏｗに引き込まれる（以下、この動作状態を「アクティブＯＲ」と呼ぶ）。受信ノードから送信ノードにデータ受信確認のＡＣＫ信号を返す際にも、当該ＡＣＫ信号は受信ノードからＬｏｗアクティブで出力される。
【０００５】
ところで、１つのノードから複数のノードに対してデータを同報で送信した場合、対象となる全ての受信ノードがＡＣＫ信号を出力する。このとき、Ｉ２ＣバスはアクティブＯＲで動作するため、複数のノードのうちどれか１つでもＡＣＫ信号を返すと、伝送ラインはアクティブ状態となる。したがって、送信ノードからは、受信異常のためにＮＡＣＫになっている（ＡＣＫ信号を返していない）受信ノードがあってもそれを認識することができず、全ての対象ノードでデータが正常に受信されているように見えてしまう。
【０００６】
このような不都合を回避するために、受信確認をＡＣＫ信号の返信で行うのではなく、正常に受信できたことを示すメッセージを受信ノードが別の通信フレームで返信するようにしたシステムが提供されている。このシステムにおいて、送信ノードは、複数の受信ノードから別々の返信フレームとして送られてくるメッセージを全て確認することで、全ての受信ノードでデータが正常に受信されているか否かを判断する。
【０００７】
また、ＡＣＫ信号を１バイトで構成して各ビットに複数のノードを割り当て、受信ノードがＡＣＫ信号を返すときは、自分に割り当てられた受信応答ビットのみをＬｏｗとしてＡＣＫ信号を送信するようにした技術も提案されている（例えば、特許文献１参照）。このようにすれば、各受信ノードから出力されるＡＣＫ信号が伝送ラインでワイヤードＯＲされて送信ノードに届いても、各ビットがＬｏｗになっているかどうかを見ることによって、同報通信の際に全ての受信ノードがデータを正常に受信できたか否かを送信ノードで判断することができる。
【０００８】
【特許文献１】
特開平４−３３２０６５号公報
【０００９】
【発明が解決しようとする課題】
しかしながら、受信ノードが受信確認のメッセージを送信ノードに返信するようにした上記従来の技術では、当該メッセージを含んだ通信フレームを受信ノード毎に発生して送信しなければならず、通信のフレーム数が増大してしまう。すなわち、この方式では、ＡＣＫ信号を利用する場合のように１つの通信フレームで受信確認が完了せず、複数の通信フレームをやり取りする必要がある。
【００１０】
この場合において、送信ノードには、あるノードで受信異常が発生して当該ノードから通信フレームが返ってこないときのために、各ノードから通信フレームが返ってくるのを待つ時間にタイムアウトを設定する必要がある。このタイムアウト時間は、送信ノードがデータ送信をしてから、全ての受信ノードが正常に通信フレームを返してくるのに要する時間を想定して、それより長い時間（例えば、１００ｍ秒程度）に設定される。
【００１１】
以上のことから、全ての受信ノードがデータを正常に受信した場合でも、送信ノードと複数の受信ノードとの間で複数の通信フレームをやり取りしなければならない分、送信ノードが複数のノードに同報でデータを送信してから受信確認が完了するまでの一連の通信には長い時間がかかってしまう。また、ある受信ノードで異常が発生した場合には、送信ノードでは長いタイムアウト時間の経過を待たないと受信異常の発生を確認することができず、やはり通信に長い時間がかかってしまうという問題があった。
【００１２】
また、この方式では、受信ノードには、受信確認のメッセージを含んだ通信フレームを発生して送信するための仕組みを導入する必要がある。また、送信ノードにおいては、各ノードから受信した返信フレームのデータをマッチングして正常に受信が行われたか否かを判断するための仕組みを導入する必要がある。そのため、このような仕組みを実現するために特別なソフトウェアを各ノードに導入しなければならないという問題もあった。
【００１３】
一方、ＡＣＫ信号を１バイトで構成して各ビットに複数のノードを割り当てるようにした上記特許文献１に記載の従来技術では、受信ノードにおいて、１バイトのＡＣＫ信号のうち自分に割り当てられた受信応答ビットだけをＬｏｗにするための仕組みを導入しなければならない。また、送信ノードにおいては、ＡＣＫ信号の各ビットを調べて各受信ノードで正常に受信が行われたか否かを判断するための仕組みを導入する必要がある。そのため、この仕組みを実現するために特別なソフトウェアを各ノードに導入しなければならないという問題があった。
【００１４】
本発明は、このような問題を解決するために成されたものであり、複雑な処理を行うためのソフトウェアを導入することなく、同報通信の際に各受信ノードがデータを正常に受信できたかどうかを短時間で確認できるようにすることを目的とする。
【００１５】
【課題を解決するための手段】
上記した課題を解決するために、本発明では、１つの送信ノードからシリアルバスを介して複数の受信ノードにデータを同報で送信する際に、送信すべきデータを含んだ送信フレーム内に複数の受信ノードのアドレスを追加し、受信ノードがデータを正常に受信し、かつ、自分宛のアドレスを確認したときに受信応答信号を返すようにしている。
【００１６】
このように構成した本発明によれば、自分宛のアドレスを確認した受信ノードから送信ノードに対して受信応答信号が順次に返されてくるので、各受信ノードからの受信応答信号がワイヤードＯＲされることがなく、全ての受信ノードでデータを正常に受信できたかどうかを送信ノードにおいて個別に確実に確認することが可能となる。このとき、各受信ノードが受信応答信号を返す形で受信確認を行っているので、各受信ノードが個別に返信フレームを生成して送信しなくても済み、１つの送信フレーム内で受信確認が完了する。さらに、受信ノードはデータを正常に受信できた場合に受信応答信号を返すのみで、送信ノードは各受信ノードから受信応答信号が返されてきたか否かを確認するのみであり、シリアルバスの一般的な使い方と何ら変わるところがないので、各ノードに複雑なソフトウェアを導入する必要もない。
【００１７】
【発明の実施の形態】
以下、本発明の一実施形態を図面に基づいて説明する。図１は、本実施形態によるバスシステムの全体構成例を示す図である。図１に示すように、本実施形態のバスシステムは、複数のノード１−１〜１−ｎがＩ２Ｃバス２に接続され、当該複数のノード１−１〜１−ｎ間でデータ伝送を行うように成されている。このとき、１つのノードから複数のノードに対してデータを同報で送信することが可能である。
【００１８】
Ｉ２Ｃバス２は、通常（データの非通信時）はＨｉにプルアップされていて、データの通信時にＬｏｗアクティブ状態となる。すなわち、複数のノード１−１〜１−ｎのうち、送信側となるノードは、Ｌｏｗアクティブ信号で送信フレームを送信する。また、受信側となるノードから送信ノードにデータ受信確認のＡＣＫ信号（本発明の受信応答信号）を返す際にも、Ｌｏｗアクティブ状態でＡＣＫ信号を返す。
【００１９】
上述のバスシステムの適用例としては、車載オーディオシステムがある。この場合の複数のノード１−１〜１−ｎは、例えばＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）プレーヤ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）プレーヤ、ＭＤ（Ｍｉｎｉ  Ｄｉｓｃ）プレーヤ、カセットデッキ、ラジオチューナ、テレビジョン受像機、これらの各種ＡＶソースの再生制御を行うヘッドユニットなどで構成することが可能である。
【００２０】
このような車載オーディオシステムにおいて、各ノード１−１〜１−ｎに対応するＡＶ機器は、送信ノードにも受信ノードにもなり得る（ただし、ヘッドユニットが送信ノード、その他のＡＶ機器が受信ノードになるケースが多い）。したがって、各ノード１−１〜１−ｎが本発明のフレーム送信手段、受信応答手段および異常発生検出手段を備える。これら各手段の内容については、以下の説明で明らかにする。
【００２１】
なお、ここで挙げた車載オーディオシステムは単なる一例に過ぎず、これ以外のバスシステムであっても良い。例えば、ドア（ドアロック、電動ミラー、電動ウィンドウなど）や電動シート、エアコン、ライト、メータなどの制御ユニットを相互接続したボディ系車載システム、エンジンや自動変速機、ブレーキ、パワーステアリングなどの制御ユニットを相互接続したパワー系車載システムなどが考えられる。
【００２２】
この他、エアバッグや各種センサなどの制御ユニットを相互接続した安全系車載システム、各種ＡＶ装置やナビゲーション装置、ゲーム機などの制御ユニットを相互接続した情報系車載システムなどに適用することも可能である。また、適用するバスシステムは車載システムに限らず、家屋あるいは職場などに設置されるシステムであっても良い。
【００２３】
図２は、送信ノードが出力する送信フレームの構成例および受信ノードがＡＣＫ信号を出力する動作例を示す図である。図２において、＜ＳＴＴ＞は送信フレームの始まりを示すスタートコンディション、＜ＳＴＰ＞は送信フレームの終わりを示すストップコンディション、＜同報＞は同報通信である旨の宣言コードである。＜Ｃ＞は受信ノードに対する処理命令を示すコマンドであり、本発明の「送信すべきデータ」に相当する。
【００２４】
また、＜ＰＡｘ＞（ｘ＝１，２，・・・，ｍ）は同報通信の対象とするｍ個の受信ノードの物理アドレス、＜ＦＡｘ＞（ｘ＝１，２，・・・，ｍ）は同報通信の対象とするｍ個の受信ノードの機能アドレスであり、これらは本発明の「同報通信の対象とする複数のノードのアドレス」に相当する。以下、これらを受信確認アドレスと呼ぶ。なお、ここでは受信確認アドレスとして物理アドレス＜ＰＡｘ＞と機能アドレス＜ＦＡｘ＞との双方を用いているが、何れか一方だけでも良い。
【００２５】
このように、本実施形態では、同報通信で複数の受信ノードに対して送信すべきコマンド＜Ｃ＞の他に、当該複数の受信ノードの受信確認アドレス＜ＰＡｘ＞＜ＦＡｘ＞を追加して送信フレームを構成している。すなわち、スタートコンディション＜ＳＴＴ＞からコマンド＜Ｃ＞を出力するまでの間は、従来の同報通信と全く同じように動作する。コマンド＜Ｃ＞の出力以降は、同報通信の対象となるノードの受信確認アドレス＜ＰＡｘ＞＜ＦＡｘ＞を順次出力する。
【００２６】
受信ノードでは、送信フレーム中に含まれるコマンド＜Ｃ＞を正常に受信し、かつ、自分宛のアドレスを確認したときにだけＡＣＫ信号を返す。受信確認アドレス＜ＰＡｘ＞＜ＦＡｘ＞を受信していても、その前までの段階で受信異常が起きていたノードは、ＡＣＫ信号を返さない（ＮＡＣＫを返す）。このとき、図２に示すように各受信ノードは、送信ノードから順次に送られてくる受信確認アドレス＜ＰＡｘ＞＜ＦＡｘ＞に応答してＡＣＫまたはＮＡＣＫを順次に返すので、各受信ノードからのＡＣＫがワイヤードＯＲされることなく個別に送信ノードで確認できる。
【００２７】
送信ノードでは、全ての受信確認アドレス＜ＰＡｘ＞＜ＦＡｘ＞を送信して受信確認が終了し、全ての受信ノードからＡＣＫ信号が返されたときに、ストップコンディション＜ＳＴＰ＞を出力して送信フレームの送信を終了する。また、受信確認アドレス＜ＰＡｘ＞＜ＦＡｘ＞を送信している途中で、ある受信ノードからＡＣＫ信号が返されてこなかったときは（ＮＡＣＫを検出したとき）は、その時点でストップコンディション＜ＳＴＰ＞を出力して送信フレームの送信を直ちに終了する。
【００２８】
受信ノードでは、同報のコマンド＜Ｃ＞を正常に受信し、かつ、アドレス確認時に自分宛のアドレスが確認できてＡＣＫ信号を返したときだけ、ストップコンディション＜ＳＴＰ＞の検出後に、受信したコマンド＜Ｃ＞を実行する。
【００２９】
図３は、以上に述べた動作を示すフローチャートである。図３において、送信ノードは、スタートコンディション＜ＳＴＴ＞からコマンド＜Ｃ＞を順次出力する（ステップＳ１）。これに対して同報通信の対象となる複数の受信ノードは、これらのデータを正常に受信できた場合にはＡＣＫを返し、受信異常により正常に受信できなかった場合はＮＡＣＫを返す（ステップＳ２）。
【００３０】
この段階では、複数の受信ノードのうちどれか１つでもＡＣＫを返すと、Ｉ２Ｃバス２のアクティブＯＲ動作により伝送ラインはアクティブ状態となり、送信ノードからは全ての受信ノードにおいてデータが正常に受信されているように見える。よって、この場合に送信ノードは処理を先に進め、各受信ノードの受信確認アドレス＜ＰＡｘ＞＜ＦＡｘ＞を順次出力する（ステップＳ３）。
【００３１】
最初は、１番目の受信確認アドレス＜ＰＡ１＞＜ＦＡ１＞を出力する。これに対して１番目の受信ノードは、コマンド＜Ｃ＞を正常に受信できていて、かつ、自分宛のアドレスを確認できたときにだけＡＣＫを返す。受信確認アドレス＜ＰＡ１＞＜ＦＡ１＞を受信しても、その前の段階でコマンド＜Ｃ＞を正常に受信できていない場合は、ＮＡＣＫを返す（ステップＳ４）。
【００３２】
送信ノードは、１番目の受信ノードからＡＣＫが返されたか否かを判定する（ステップＳ５）。ここで、ＡＣＫが返されたと判断した場合は、全ての受信確認アドレス＜ＰＡｘ＞＜ＦＡｘ＞を送信し終わったか否か、すなわち、全ての受信ノードについて受信確認が終了したか否かを判定し（ステップＳ６）、まだ残りがある場合にはステップＳ３に戻る。今は、ステップＳ３に戻って次の受信確認アドレス＜ＰＡ２＞＜ＦＡ２＞を出力する。
【００３３】
これに対して２番目の受信ノードは、１番目の受信ノードと同様に動作する（ステップＳ４）。すなわち、コマンド＜Ｃ＞を正常に受信できていて、かつ、自分宛のアドレスを確認できたときにだけＡＣＫを返す。受信確認アドレス＜ＰＡ２＞＜ＦＡ２＞を受信しても、その前の段階でコマンド＜Ｃ＞を正常に受信できていない場合は、ＮＡＣＫを返す。
【００３４】
送信ノードは、以上のようなステップＳ３〜Ｓ６における受信確認の動作を繰り返し行った結果、全ての受信確認アドレス＜ＰＡｘ＞＜ＦＡｘ＞を送信して受信確認が終了したと判断した場合（ステップＳ６）、ストップコンディション＜ＳＴＰ＞を出力して送信フレームの送信を終了する（ステップＳ７）。
【００３５】
また、受信確認アドレス＜ＰＡｘ＞＜ＦＡｘ＞を送信している途中で、ある受信ノードからＡＣＫが返されてこなかったと判断したときは（ステップＳ５）は、その時点でストップコンディション＜ＳＴＰ＞を出力して送信フレームの送信を直ちに終了する（ステップＳ７）。なお、この場合は、送信の終了後にステップＳ１に戻り、送信フレームの再送処理を行うようにしても良い。
【００３６】
その後、受信ノードでは、データの受信が正常に完了したか否かを判定する（ステップＳ８）。ここでは、同報のコマンド＜Ｃ＞を正常に受信できてステップＳ２でＡＣＫ信号を返し、かつ、アドレス確認時に自分宛のアドレスが確認できてステップＳ４でもＡＣＫ信号を返したかどうかを判定する。そして、データの受信が正常に完了したと判断したときだけ、ストップコンディション＜ＳＴＰ＞の検出後に、受信したコマンド＜Ｃ＞を実行する（ステップＳ９）。
【００３７】
以上詳しく説明したように、本実施形態によれば、１つの送信ノードからシリアルバスを介して複数の受信ノードにデータを同報で送信する際に、送信フレーム内に複数の受信ノードの受信確認アドレス＜ＰＡｘ＞＜ＦＡｘ＞を追加し、データを正常に受信できたか否かのＡＣＫ確認を受信ノード毎に順次行うようにしたので、以下のような効果を得ることができる。
【００３８】
すなわち、各受信ノードが個別に受信確認のメッセージを含む返信フレームを生成して送信しなくても、全ての受信ノードでデータを正常に受信できたかどうかを送信ノードで確実に確認することができる。これにより、全ての受信ノードでデータを正常に受信できたか否かの受信確認が１つの送信フレーム内で完了するので、データを送信してからその受信確認が完了するまでの一連の通信を短時間で行うことができる。
【００３９】
また、受信ノードではデータを正常に受信できた場合にＡＣＫ信号を返すのみで、送信ノードでは各受信ノードからＡＣＫ信号が返されてきたか否かを確認するのみであり、Ｉ２Ｃバス２の一般的な使い方と何ら変わるところがないので、各ノードに複雑な処理を行うなためのソフトウェアを導入する必要がないというメリットも有する。
【００４０】
図４は、送信フレームの他の構成例を示す図である。図４に示す送信フレームでは、図２に示した送信フレームの構成要素に加えて、送信フレームのデータ長情報＜Ｌｅｎｇｔｈ＞を更に含んでいる。このデータ長情報＜Ｌｅｎｇｔｈ＞は、例えば、同報宣言コード＜同報＞の後などに追加され、それ以降のコマンド＜Ｃ＞および全受信ノードに対する受信確認アドレス＜ＰＡｘ＞＜ＦＡｘ＞の総データ長を示す。
【００４１】
このように送信フレームを構成した場合、受信ノードは、実際に受信した送信フレームのデータ長と、送信フレーム中に含まれるデータ長情報＜Ｌｅｎｇｔｈ＞とを比較して、その比較結果に応じて、他の受信ノードにおける受信異常の発生の有無（送信ノードが当該他の受信ノードについて受信異常を検出してフレーム送信を途中で止めたか否か）を検出する。
【００４２】
例えば、１番目の受信ノードで受信異常が発生して、送信ノードから送られてくる受信確認アドレス＜ＰＡ１＞＜ＦＡ１＞に対してＮＡＣＫを返したとする。この場合は、図３のステップＳ５からステップＳ７に進み、送信ノードは１番目の受信確認アドレス＜ＰＡ１＞＜ＦＡ１＞の後に直ちにストップコンディション＜ＳＴＰ＞を出力して送信フレームの送信を終了する。よって、この場合に各受信ノードが実際に受信する送信フレームは、図５のようになる。
【００４３】
図５のように、送信ノードが受信確認アドレス＜ＰＡｘ＞＜ＦＡｘ＞の送信を途中で止めた場合、コマンド＜Ｃ＞と受信確認アドレス＜ＰＡ１＞＜ＦＡ１＞との総データ長は、データ長情報＜Ｌｅｎｇｔｈ＞で示される総データ長よりも短くなり、両データ長は一致しなくなる。
【００４４】
そこで、各受信ノードでは、実際に受信した図５のような送信フレームのデータ長と、送信フレーム中に含まれているデータ長情報＜Ｌｅｎｇｔｈ＞とを比較することによって、同報通信の対象となっている他の受信ノードで受信異常が発生していないかどうかを判定する。
【００４５】
同報通信をした場合、一部の受信ノードでデータの受信が正常に行われていても、他の受信ノードでデータの受信が正常に行われていない場合には、データを正常に受信できたノードでもコマンドを実行しない方が良い場合がある。このような事情がある場合には、実際に受信した送信フレームのデータ長とデータ長情報＜Ｌｅｎｇｔｈ＞とが一致するか否かを判定し、一致しないときには全ての受信ノードでコマンド＜Ｃ＞を実行しないようにすることが可能である。
【００４６】
なお、自分以外の他の受信ノードで受信異常が発生しているか否かの確認方法は、データ長情報＜Ｌｅｎｇｔｈ＞を用いる例に限らない。例えば、図６に示すように、送信ノードは、同報通信の対象とする複数のノードの全てからＡＣＫが返されてきたときには誤り検出コード＜ＳＵＭ＞をストップコンディション＜ＳＴＰ＞の前に追加し、少なくとも１つのノードからＮＡＣＫが返されてきたときには誤り検出コード＜ＳＵＭ＞を追加せずにストップコンディション＜ＳＴＰ＞を出力するようにする。
【００４７】
この場合の誤り検出コード＜ＳＵＭ＞は、その内容を特に限定するものではなく、様々なパターンを適用することが可能である。例えば、コマンド＜Ｃ＞から全受信ノードに対する受信確認アドレス＜ＰＡｘ＞＜ＦＡｘ＞の総データを先頭からバイト単位で加算した総和の下１バイトを誤り検出コード＜ＳＵＭ＞とすることが可能である。また、コマンド＜Ｃ＞から全受信ノードに対する受信確認アドレス＜ＰＡｘ＞＜ＦＡｘ＞までのデータを先頭からバイト単位で排他的論理和演算した結果を誤り検出コード＜ＳＵＭ＞としても良い。
【００４８】
このようにした場合、受信ノードでは、実際に受信した送信フレーム中に誤り検出コード＜ＳＵＭ＞が含まれているか否かに応じて、他の受信ノードにおける受信異常の発生の有無（送信ノードが当該他の受信ノードについて受信異常を検出してフレーム送信を途中で止めたか否か）を確認することができる。そして、他の受信ノードにおける受信異常を検出したときには、コマンド＜Ｃ＞を正常に受信できていても実行しないようにすることが可能である。
【００４９】
なお、データ長情報＜Ｌｅｎｇｔｈ＞を用いた受信確認と、誤り検出コード＜ＳＵＭ＞を用いた受信確認とを併用しても良い。
【００５０】
上記実施形態では、同報通信で送信すべきデータとしてコマンド＜Ｃ＞を例に挙げているが、これに限定されない。例えば、何らかの処理を行う際の処理対象となるデータ等を送信するような場合も、上記実施形態を同様に適用することが可能である。
【００５１】
また、上記実施形態では、シリアルバスの例としてＩ２Ｃバス２を挙げたが、これに限定されない。Ｉ２Ｃバス２と同様にＬｏｗでアクティブＯＲとなるシリアルバスであれば、Ｉ２Ｃバス２以外のバスであっても良い。また、ＨｉでアクティブＯＲとなるシリアルバスであっても良い。
【００５２】
その他、上記実施形態は、何れも本発明を実施するにあたっての具体化の一例を示したものに過ぎず、これによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその精神、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【００５３】
【発明の効果】
本発明は上述したように、１つの送信ノードからシリアルバスを介して複数の受信ノードにデータを同報で送信する際に、送信すべきデータを含んだ送信フレーム内に複数の受信ノードのアドレスを追加し、受信ノードがデータを正常に受信し、かつ、自分宛のアドレスを確認したときに受信応答信号を返すようにしたので、各ノードに複雑な処理を行うためのソフトウェアを導入することなく、同報通信の際に各受信ノードがデータを正常に受信できたかどうかを短時間で確認することができるようになる。
【図面の簡単な説明】
【図１】本実施形態によるバスシステムの全体構成例を示す図である。
【図２】送信ノードが出力する送信フレームの構成例および受信ノードがＡＣＫ信号を出力する動作例を示す図である。
【図３】本実施形態によるデータの同報通信動作を示すフローチャートである。
【図４】送信フレームの他の構成例を示す図である。
【図５】ある受信ノードでＮＡＣＫが返された場合に各受信ノードが実際に受信する送信フレームの構成を示す図である。
【図６】送信フレームの他の構成例を示す図である。
【符号の説明】
１−１〜１−ｎ  複数のノード
２  Ｉ２Ｃバス
【図１】
2005004607.tif 000003
【図２】
2005004607.tif 000004
【図３】
2005004607.tif 000005
【図４】
2005004607.tif 000006
【図５】
2005004607.tif 000007
【図６】
2005004607.tif 000008