(57)【要約】【課題】Ｉ2Ｃバスに接続された第1マイコンが第2マイコンにデータを送信した後、バスを開放することなく、第2マイコンが応答データを第1マイコンに送信するＩ2Ｃバスのデータ通信方法を提供する。【解決手段】本発明のＩ2Ｃバスのデータ通信方法は、マイコン10が、スタート信号をＩ2Ｃバス50に出力し、マイコン10からマイコン20にデータを送信することを示す送信方向識別子と共にマイコン20のアドレスをバス50に出力することによりマイコン20をデータの出力先として特定し、さらにスタート信号をバス50に再度出力し、マイコン20からマイコン10にデータを送信することを示す送信方向識別子と共にマイコン20のアドレスをバス50に出力することにより、マイコン20をデータの出力元として特定し、マイコン20は、応答データをマイコン10に送信する。【選択図】図３
2009244991.tif 000002
【特許請求の範囲】
【請求項１】
複数のマイコンを通信可能に接続するＩ２Ｃバスのデータ通信方法であって、
自己がマスタとして通信を開始することを他のマイコンに通知するスタート条件信号を第１マイコンからＩ２Ｃバスに出力するステップと、
前記第１マイコンから第２マイコンにデータを送信することを示す第１データ送信方向識別子及び前記第２マイコンのアドレスをＩ２Ｃバスに出力し、前記第２マイコンを送信データの出力先として前記第１マイコンが特定するステップと、
前記第１マイコンが、第１の所定の時間後に、前記スタート条件信号を前記第１マイコンからＩ２Ｃバスに再度出力するステップと、
前記第２マイコンから前記第１マイコンにデータを送信することを示す第２データ送信方向識別子及び前記第２マイコンの前記アドレスをＩ２Ｃバスに出力し、前記第２マイコンを受信データの出力元として前記第１マイコンが特定するステップと、
前記第１マイコンから送信されデータに応答する前記受信データを前記第２マイコンから前記第１マイコンに送信するステップと、
を有することを特徴とするデータ通信方法。
【請求項２】
前記第１マイコンは、前記送信データを、前記第２マイコンが前記送信データをチェックするための誤り検出コードと共に、前記第２マイコンに送信するステップをさらに有し、
前記第２マイコンから前記第１マイコンに送信するステップにおいて、前記誤り検出コードを用いて、前記第１マイコンから送信された前記送信データの前記第２マイコンによるチェック結果を、前記受信データとして前記第１マイコンに送信する請求項１に記載のデータ通信方法。
【請求項３】
前記第１マイコンは、最初のスタート条件信号をＩ２Ｃバスに出力した時点から第２の所定の時間が経過しても前記第２マイコンから前記受信データを受信しない場合には、マスタとしての通信を終了することを他のマイコンに通知するストップ条件信号をＩ２Ｃバスに出力するステップをさらに有し、
さらに前記送信データを前記第２マイコンに再度送信するステップを有する請求項１又は２に記載のデータ通信方法。
【請求項４】
複数のマイコンがＩ２Ｃバスを介して通信可能に接続されているシステムであって、
第１マイコンは、
自己がマスタとして通信を開始することを他のマイコンに通知するスタート条件信号、マスタとしての通信を終了することを他のマイコンに通知するストップ条件信号、前記第１マイコンから第２マイコンにデータを送信することを示す第１データ送信方向識別子、前記第２マイコンから前記第１マイコンにデータを送信することを示す第２データ送信方向識別子、前記第２マイコンのアドレス、及び送信データをＩ２Ｃバスに出力する第１マイコン通信手段と、
前記スタート条件信号をＩ２Ｃバスに出力し、前記第１データ送信方向識別子及び前記第２マイコンの前記アドレスをＩ２Ｃバスに出力することにより、前記第２マイコンを送信データの出力先として特定し、所定の時間後に前記スタート条件信号をＩ２Ｃバスに再度出力し、且つ、前記第２データ送信方向識別子及び前記第２マイコンの前記アドレスをＩ２Ｃバスに出力することにより前記第２マイコンを受信データの出力元として特定するように前記第１マイコン通信手段を制御する、第１マイコン演算手段と、
を有し、
前記第２マイコンは、
前記第１マイコンから受信した前記送信データに応答する前記受信データを前記第１マイコンに送信する第２マイコン通信手段と、
前記第２マイコン通信手段を制御する第２マイコン演算手段と、
を有する、
ことを特徴とするシステム。
【請求項５】
Ｉ２Ｃバスに通信可能に接続されているマイコンを有する電子制御ユニットであって、
自己がマスタとして通信を開始することを他のマイコンに通知するスタート条件信号、マスタとしての通信を終了することを他のマイコンに通知するストップ条件信号、前記マイコンから送信先にデータを送信することを示す第１データ送信方向識別子、前記送信先から前記マイコンにデータを送信することを示す第２データ送信方向識別子、前記送信先のアドレス、及び送信データをＩ２Ｃバスに出力するマイコン通信手段と、
前記スタート条件信号をＩ２Ｃバスに出力し、前記第１データ送信方向識別子及び前記送信先の前記アドレスをＩ２Ｃバスに出力することにより、前記送信先を送信データの出力先として特定し、所定の時間後に前記スタート条件信号をＩ２Ｃバスに再度出力し、且つ、前記第２データ送信方向識別子及び前記送信先の前記アドレスをＩ２Ｃバスに出力することにより前記送信先を受信データの出力元として特定するように前記マイコン通信手段を制御するマイコン演算手段と、
を含む前記マイコンを有することを特徴とする電子制御ユニット。
【請求項６】
Ｉ２Ｃバスに通信可能に接続されているマイコンを有する回路基板であって、
自己がマスタとして通信を開始することを他のマイコンに通知するスタート条件信号、マスタとしての通信を終了することを他のマイコンに通知するストップ条件信号、前記マイコンから送信先にデータを送信することを示す第１データ送信方向識別子、前記送信先から前記マイコンにデータを送信することを示す第２データ送信方向識別子、前記送信先のアドレス、及び送信データをＩ２Ｃバスに出力するマイコン通信手段と、
前記スタート条件信号をＩ２Ｃバスに出力し、前記第１データ送信方向識別子及び前記送信先の前記アドレスをＩ２Ｃバスに出力することにより、前記送信先を送信データの出力先として特定し、所定の時間後に前記スタート条件信号をＩ２Ｃバスに再度出力し、且つ、前記第２データ送信方向識別子及び前記送信先の前記アドレスをＩ２Ｃバスに出力することにより前記送信先を受信データの出力元として特定するように前記マイコン通信手段を制御するマイコン演算手段と、
を含む前記マイコンを有することを特徴とする回路基板。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ通信方法、データ通信システム、電子制御ユニット、及び回路基板に関する。
【背景技術】
【０００２】
従来、データ転送の方法には、複数のデータラインを用いるパラレル転送と、一つのデータラインを用いるシリアル転送とが用いられている。パラレル転送はデータの転送速度が速いものの、複数のデータラインを有するため、マイクロプロセッサ又はＩＣ等の電子デバイスのピンの数が増加する。一方、シリアル転送では、データの転送速度が相対的には低くなるものの、電子デバイスのピンの数が少なくて済む。また、車両に搭載される電子制御ユニット、車載ＬＡＮに使用される通信装置等で使用されるマイコン等の電子デバイスは、転送速度の面からはシリアル転送で十分である場合が多い。
【０００３】
シリアル転送の通信方法式として、例えば、Ｉ２Ｃバスがある。Ｉ２Ｃバスは、フィリップス社で開発されたシリアルバスであり、１本のシリアルデータライン及び１本のシリアルクロックラインの２本のバスラインから構成されており、このバスラインに接続されている複数の電子デバイスは、固有のアドレスを有している。各電子デバイスは、アドレスを用いて送信先の電子デバイスを指定することにより、各デバイス間でデータ通信を行うことができる。
【０００４】
例えば、非特許文献１には、Ｉ２Ｃバスの通信を利用して、ビデオチップ等の制御を行うこと、また、オンボード内のインテリジェントモジュールを相互接続する例が開示されている。
【０００５】
また、他のシリアル転送の例として、特許文献１には、シリアルデータバスを利用して複数のデバイス間でデータフレームを転送する方法が開示されている。通信の信頼性を高めるためには、送信されたデータが、誤りなく受信されたことを確認することが好ましい。そして、この方法では、データを正しく受信したか否かを確認する誤り検出コードと共に、データを送信することが提案されている。
【０００６】
一方、上記Ｉ２Ｃバスを利用したハードウェア構成は、ロジックレベルにおける通信データの誤り検出機能を備えていない。そのため、通信データの誤りを検出するためには、上位レベルでの誤り検出処理が必要となる。
【０００７】
次に、Ｉ２Ｃバス仕様を利用した従来のシステムの例を用いて、通信データの誤りを検出する処理を以下に説明する。
【０００８】
図１に示す従来の例では、システム１１００は、マイコン１１０、マイコン１２０、マイコン１３０、及びマイコン１４０が、Ｉ２Ｃバス１５０を介して通信可能に接続されて構成されている。
【０００９】
次ぎに、図１のシステム１１００において、マイコン１１０が、マスタとなって、マイコン１２０にデータを送信する処理を、図２を参照して以下に説明する。
【００１０】
まず、ステップＳ１１０において、マイコン１１０は、スタート条件信号をＩ２Ｃバス１５０に出力して、バス使用権を獲得する。マイコン１１０が、スタート条件信号をＩ２Ｃバス１５０に出力することにより、自己のみがマスタとして通信を開始することを他のマイコンに通知する。これにより、他のマイコンは通信を開始することができなくなり、マイコン１１０のみが、マスタとしてＩ２Ｃバス１５０上において通信を行うことができる。その後、マイコン１１０は、マイコン１１０からデータを送信する送信先としてマイコン１２０を選択する。
【００１１】
次に、ステップＳ１１１において、マイコン１１０は、データをマイコン１２０に送信する。
【００１２】
次に、ステップＳ１１２において、マイコン１２０は、マイコン１１０から送信されたデータを受信する。
【００１３】
一方、ステップＳ１１３において、マイコン１２０にデータを送信したマイコン１１０は、ストップ条件信号をＩ２Ｃバス１５０に出力して、バス使用権を開放する。マイコン１１０は、ストップ条件信号をＩ２Ｃバス１５０に出力することにより、マスタとしての通信を終了することを宣言する。これにより、マスタとしてのマイコン１１０がＩ２Ｃバス１５０上における通信を終了することを他のマイコンに知らせることとなり、他のマイコンはマスタとして通信を開始することが可能となる。
【００１４】
次に、ステップＳ１１４において、マイコン１２０は、マイコン１１０から送信されたデータが正しく受信されたか否かを調べる。
【００１５】
次に、ステップＳ１１５において、マイコン１２０は、スタート条件信号をＩ２Ｃバス１５０に出力して、バス使用権を獲得する。その後、マイコン１２０は、マイコン１２０からデータを送信する送信先としてマイコン１１０を選択する。
【００１６】
次に、ステップＳ１１６において、マイコン１２０は、受信したデータのチェック結果をマイコン１１０に送信する。
【００１７】
次に、ステップＳ１１７において、マイコン１１０は、マイコン１２０から送信されたチェック結果を受信する。その後、マイコン１１０は、受信したチェック結果を調べ、データが正しく受信されていなければ、再度、同じデータをマイコン１２０に送信する。
【００１８】
一方、ステップＳ１１８において、チェック結果を送信し終わったマイコン１２０は、ストップ条件信号をＩ２Ｃバスに出力して、バス使用権を開放する。
【００１９】
【非特許文献１】テクノ・チップス株式会社、”I2Cインターフェースってなに？”、[online]、テクノ・チップス株式会社のウエブページ、[平成１９年１１月２８日検索]、インターネット<URL:http://www.technochips.co.jp/TechTips/I2CDOC/i2c.html＞
【特許文献１】特開平５ー１７３９５８号公報
【発明の開示】
【発明が解決しようとする課題】
【００２０】
上述した図１及び図２の従来の例では、Ｓ１１１とＳ１１７との間で、一度、バスを開放するので、その間に他のマイコンがマスタとなって通信を開始する場合がある。この場合には、マイコン１１０は、Ｓ１１１のデータ送信と、Ｓ１１７のチェック結果の受信との間に割り込みが生じるので、次のような問題が生じる。
【００２１】
まず、図２のＳ１１７において、マイコン１１０が受信したマイコン１２０からのチェック結果が、Ｓ１１１において、マイコン１１０が送信したデータに応答するものであるかどうかが不明となる。両者を対応づけるためには、マイコン１１０がマイコン１２０から受信したチェック結果が、自分がマイコン１２０に対して送信したデータの応答であることを示すように、新たな手続きを行う必要がある。
【００２２】
また、図２のＳ１１１とＳ１１７との間で、他の通信が割り込むことに対応して、データの送信側であるマイコン１１０及び受信側であるマイコン１２０それぞれにおいて、続行していた処理を中断し、またその処理を再開する等の手続きを行うことを実装する必要もある。
【００２３】
そこで、本発明は、上述した問題点を解決するために、データ通信方法、システム、電子制御ユニット、及び回路基板を提供することを目的とする。
【００２４】
また、本発明は、第１マイコンが、Ｉ２Ｃバスにより通信可能に接続された第２マイコンにデータを送信した後バスを開放することなく、第２マイコンが受信したデータに応答する応答データを受信することを可能とするデータ通信方法及びシステムを提供することを目的とする。
【００２５】
更に、本発明は、マイコンが、Ｉ２Ｃバスにより通信可能に接続された送信先にデータを送信した後バスを開放することなく、送信先が受信したデータに応答する応答データを受信することを可能とする電子制御ユニット、及び回路基板を提供することを目的とする。
【課題を解決するための手段】
【００２６】
上述した目的を達成するために、本発明に係るデータ通信方法は、複数のマイコンを通信可能に接続するＩ２Ｃバスのデータ通信方法であって、自己がマスタとして通信を開始することを他のマイコンに通知するスタート条件信号を第１マイコンからＩ２Ｃバスに出力するステップと、上記第１マイコンから第２マイコンにデータを送信することを示す第１データ送信方向識別子及び上記第２マイコンのアドレスをＩ２Ｃバスに出力し、上記第２マイコンを送信データの出力先として上記第１マイコンが特定するステップと、上記第１マイコンが、第１の所定の時間後に、上記スタート条件信号を上記第１マイコンからＩ２Ｃバスに再度出力するステップと、上記第２マイコンから上記第１マイコンにデータを送信することを示す第２データ送信方向識別子及び上記第２マイコンの上記アドレスをＩ２Ｃバスに出力し、上記第２マイコンを受信データの出力元として上記第１マイコンが特定するステップと、上記第１マイコンから送信されデータに応答する上記受信データを上記第２マイコンから上記第１マイコンに送信するステップと、を有することを特徴とする。
【００２７】
また、上述した目的を達成するために、本発明に係るシステムは、複数のマイコンがＩ２Ｃバスを介して通信可能に接続されているシステムであって、第１マイコンは、自己がマスタとして通信を開始することを他のマイコンに通知するスタート条件信号、マスタとしての通信を終了することを他のマイコンに通知するストップ条件信号、上記第１マイコンから第２マイコンにデータを送信することを示す第１データ送信方向識別子、上記第２マイコンから上記第１マイコンにデータを送信することを示す第２データ送信方向識別子、上記第２マイコンのアドレス、及び送信データをＩ２Ｃバスに出力する第１マイコン通信手段と、上記スタート条件信号をＩ２Ｃバスに出力し、上記第１データ送信方向識別子及び上記第２マイコンの上記アドレスをＩ２Ｃバスに出力することにより、上記第２マイコンを送信データの出力先として特定し、所定の時間後に上記スタート条件信号をＩ２Ｃバスに再度出力し、且つ、上記第２データ送信方向識別子及び上記第２マイコンの上記アドレスをＩ２Ｃバスに出力することにより上記第２マイコンを受信データの出力元として特定するように上記第１マイコン通信手段を制御する、第１マイコン演算手段と、を有し、上記第２マイコンは、上記第１マイコンから受信した上記送信データに応答する上記受信データを上記第１マイコンに送信する第２マイコン通信手段と、上記第２マイコン通信手段を制御する第２マイコン演算手段と、を有する、ことを特徴とする。
【００２８】
また、上述した目的を達成するために、本発明に係る電子制御ユニットは、Ｉ２Ｃバスに通信可能に接続されているマイコンを有する電子制御ユニットであって、自己がマスタとして通信を開始することを他のマイコンに通知するスタート条件信号、マスタとしての通信を終了することを他のマイコンに通知するストップ条件信号、上記マイコンから送信先にデータを送信することを示す第１データ送信方向識別子、上記送信先から上記マイコンにデータを送信することを示す第２データ送信方向識別子、上記送信先のアドレス、及び送信データをＩ２Ｃバスに出力するマイコン通信手段と、上記スタート条件信号をＩ２Ｃバスに出力し、上記第１データ送信方向識別子及び上記送信先の上記アドレスをＩ２Ｃバスに出力することにより、上記送信先を送信データの出力先として特定し、所定の時間後に上記スタート条件信号をＩ２Ｃバスに再度出力し、且つ、上記第２データ送信方向識別子及び上記送信先の上記アドレスをＩ２Ｃバスに出力することにより上記送信先を受信データの出力元として特定するように上記マイコン通信手段を制御するマイコン演算手段と、を含む上記マイコンを有することを特徴とする。
【００２９】
更に、上述した目的を達成するために、本発明に係る回路基板は、Ｉ２Ｃバスに通信可能に接続されているマイコンを有する回路基板であって、自己がマスタとして通信を開始することを他のマイコンに通知するスタート条件信号、マスタとしての通信を終了することを他のマイコンに通知するストップ条件信号、上記マイコンから送信先にデータを送信することを示す第１データ送信方向識別子、上記送信先から上記マイコンにデータを送信することを示す第２データ送信方向識別子、上記送信先のアドレス、及び送信データをＩ２Ｃバスに出力するマイコン通信手段と、上記スタート条件信号をＩ２Ｃバスに出力し、上記第１データ送信方向識別子及び上記送信先の上記アドレスをＩ２Ｃバスに出力することにより、上記送信先を送信データの出力先として特定し、所定の時間後に上記スタート条件信号をＩ２Ｃバスに再度出力し、且つ、上記第２データ送信方向識別子及び上記送信先の上記アドレスをＩ２Ｃバスに出力することにより上記送信先を受信データの出力元として特定するように上記マイコン通信手段を制御するマイコン演算手段と、を含む上記マイコンを有することを特徴とする。
【発明の効果】
【００３０】
上述した本発明に係る方法及びシステムによれば、第１マイコンが、第２マイコンにデータを送信した後バスを開放することなく、第２マイコンが受信したデータに応答する応答データを受信することができる。また、上述した本発明に係る電子制御ユニット及び回路基板によれば、マイコンが、送信先にデータを送信した後バスを開放することなく、送信先が受信したデータに応答する応答データを受信することができる。
【００３１】
特に、本発明の方法又はシステムは、上記第１マイコンが、上記送信データを、上記第２マイコンが上記送信データをチェックするための誤り検出コードと共に、上記第２マイコンに送信するステップをさらに有し、上記第２マイコンから上記第１マイコンに送信するステップにおいて、上記誤り検出コードを用いて、上記第１マイコンから送信された上記送信データの上記第２マイコンによるチェック結果を、上記受信データとして上記第１マイコンに送信する構成を有することにより、通信データの誤りを正しく検出することができる。
【００３２】
また、本発明の電子制御ユニット及び回路基板は、上記マイコンが、上記送信データを、上記送信先が上記送信データをチェックするための誤り検出コードと共に、上記送信先に送信するステップをさらに有し、上記送信先から上記マイコンに送信するステップにおいて、上記誤り検出コードを用いて、上記マイコンから送信された上記送信データの上記送信先によるチェック結果を、上記受信データとして上記マイコンに送信する構成を有することにより、通信データの誤りを正しく検出することができる。
【発明を実施するための最良の形態】
【００３３】
以下、本発明に係るシステムの好ましい一実施形態を、図面を参照して説明する。
図３は、本発明に係るシステムの一実施形態を示す機能ブロック図である。
【００３４】
本実施形態のシステム１００では、図３に示すように、第１マイコン１０と第２マイコン２０とがＩ２Ｃバス５０を介して通信可能に接続されている。第１マイコンは、自己のみがマスタとして通信を開始することを他のマイコンに通知するスタート条件信号、マスタとしての通信を終了することを他のマイコンに通知するストップ条件信号、第１マイコン１０から第２マイコン２０にデータを送信することを示す第１データ送信方向識別子、第２マイコン２０から第１マイコン１０にデータを送信することを示す第２データ送信方向識別子、第２マイコン２０のアドレス、及び送信データをＩ２Ｃバス５０に出力する第１マイコン通信手段１３と、スタート条件信号をＩ２Ｃバス５０に出力し、第１データ送信方向識別子及び第２マイコン２０の上記アドレスをＩ２Ｃバス５０に出力することにより、第２マイコン２０を送信データの出力先として特定した後に、ストップ条件信号をＩ２Ｃバス５０に出力せずに第１の所定の時間後にスタート条件信号をＩ２Ｃバス５０に再度出力し、且つ、第２データ送信方向識別子及び第２マイコン２０の上記アドレスをＩ２Ｃバス５０に出力することにより第２マイコン２０を受信データの出力元として特定するように第１マイコン通信手段１３を制御する、第１マイコン演算手段１１と、この第１マイコン演算手段１１により実行される各種のプログラムが記憶される第１マイコン記憶手段１２と、を有している。
【００３５】
また、本実施形態の第２マイコン２０は、第１マイコン１０から受信した上記送信データに応答する上記受信データを第１マイコン１０に送信する第２マイコン通信手段２３と、この第２マイコン通信手段２３を制御する第２マイコン演算手段２１と、この第２マイコン演算手段２１により実行される各種のプログラムが記憶される第２マイコン記憶手段２２と、を有している。
【００３６】
第１マイコン１０は、Ｉ２Ｃバス仕様に基づいて通信を開始して、データを第２マイコン２０に送信する。また、第２マイコン２０は、Ｉ２Ｃバス仕様に基づいて、第１マイコン１０が送信したデータを受信する。Ｉ２Ｃバス仕様は、フィリップス社で開発されたシリアルバスであり、第１マイコン１０及び第２マイコン２０は、シリアルデータライン及びシリアルクロックラインからなる２本の信号線により、通信可能に接続される。Ｉ２Ｃバス仕様の詳細は、例えば、フィリップス社により設立されたＮＸＰ社のウェブページから入手可能であるＩ２Ｃバス仕様書バージョン２．１（２０００年１月）に記載されている。Ｉ２Ｃバス仕様を用いることによって、低い製造コストでシンプルなシリアル転送を行うネットワークシステムを構築できる。
【００３７】
第１マイコン１０又は第２マイコン２０は、例えば、Ｉ２Ｃバス仕様の通信機能を備えた、ワンチップマイコン等の電子装置である。
【００３８】
また、システム１００は、第２マイコン２０を有する他の電子制御ユニットと、Ｉ２Ｃバスを介して通信可能に接続されている第１マイコン１０を有する電子制御ユニットとを有している車載ＬＡＮを構成していても良い。このような車載ＬＡＮとしては、例えば、Ｉ２Ｃバス仕様の通信機能を備えた、ナビゲーション装置、オーディオ装置等の情報機器間を接続する情報系のＬＡＮ、エンジン及び自動変速機等の電子制御ユニット間を接続するＬＡＮ，又は電動ミラー及びドアロック等の電子制御ユニット間を接続するＬＡＮが挙げられる。
【００３９】
また、システム１００は、第２マイコン２０を有する他の回路基板と、Ｉ２Ｃバスを介して通信可能に接続されている第１マイコン１０を有する回路基板により構成されていても良い。
【００４０】
本実施形態において、第２マイコン２０が、第１マイコン１０に送信する上記受信データとしての応答データは、第１マイコン１０から受信した上記送信データに応答するものであれば、特に制限はされない。例えば、この応答データとしては、第２マイコン２０が、第１マイコン１０から受信したデータを用いて情報処理を行った処理結果のデータであっても良い。具体的には、上記応答データとしては、第２マイコン２０が上記送信データを正しく受信したことを確認するために、第１マイコン１０から受信したデータを調べたチェック結果であっても良い。
【００４１】
上述した本実施形態は、第１マイコン１０がＩ２Ｃバスを開放することなく、第１マイコン１０が第２マイコン２０に送信した上記送信データに対する上記応答データを、第２マイコン２０が第１マイコン１０に送信する。
【００４２】
以下、上述した本実施形態のシステム１００の一実施例（以下、本実施例ともいう）を、図４〜８を参照しながら説明する。尚、本実施例において、上記実施形態と同一の構成要素には、同一の符号を付してある。図４は、図３のシステム１００の一実施例を示すシステム構成図である。図５は、図４のシステムのブロック図である。図６は、図４におけるシステム構成要素のハードウェア構成を示す図である。図７は、図３のマイコン１０における通信手段の階層構造を示す図である。図８は、送信データの構造を示す図である。
【００４３】
システム１００は、電子装置６０の要部を構成するシステムである。システム１００は、マイコン１０を搭載した回路基板１４と、マイコン２０を搭載した回路基板２４と、マイコン３０及びマイコン４０を搭載した回路基板３４とが、Ｉ２Ｃバス５０（以下、単にバス５０ともいう）を介して通信可能に接続されている。本実施例では、各マイコンはワンチップマイコンである。
【００４４】
システム１００が適用される例としては、表示部を備えたナビゲーション装置を挙げることができる。表示部を備えたナビゲーション装置の要部は、表示部用のマイコン１０と、ナビゲーション用のマイコン２０と、通信用のマイコン３０と、電源用のマイコン４０とを用いて構成することができる。各マイコン間は、ネットワークとしてのバス５０により通信可能に接続される。図４に示す例では、バス５０には４つのマイコンが通信可能に接続されているが、バス５０には、更に多くのマイコンが通信可能に接続されていても良い。
【００４５】
バス５０では、半２重でマルチノード指定のシリアル通信を行う。システム１００において、ノードとしての各マイコン１０，２０，３０，４０は、何れもマスタとして通信を開始することが可能であり、従って、システム１００はマルチマスタのネットワークシステムを構成している。
【００４６】
図５に示すように、システム１００において、各マイコン１０，２０，３０，４０は、データ信号を伝送する１本のシリアルデータラインＳＤＡと、クロック信号を伝送する１本のシリアルクロックラインＳＣＬとに接続されている。ＳＤＡ及びＳＣＬそれぞれは、図５に示すように、並列抵抗Ｒｐを介して、正の電源電圧Ｖｄｄに接続されており、バス５０が各マイコンから開放されている場合には、どちらのラインも”Ｈ”の状態になっている。各マイコンは、データ又はクロックをラインに出力する際には、”Ｌ”の状態を出力する。
【００４７】
図６に、マイコン１０のハードウェア構成を示す。マイコン１０は、上記演算手段としてのＣＰＵ１１と、上記記憶手段としてのメモリ１２と、マイコン間でＩ２Ｃバス通信を行う上記通信手段としての入出力インターフェース１３とを備えている。メモリ１２は、例えばＲＯＭ等の不揮発性メモリと、ＲＡＭ等の揮発性メモリとから構成される。ＣＰＵ１１は、メモリ１２の不揮発性メモリにあらかじめ記憶されているプログラムに従い、マイコン１０の各要素の制御及び各種処理を行う。他のマイコンも同様の構成を有する。
【００４８】
各マイコンは、データを送受信する場合には、ＣＰＵが入出力インターフェースを制御して、他のマイコンとの間でデータの送受信を行う。
【００４９】
図７に、マイコン１０の入出力インターフェース１３が備える通信機能の階層構造を示す。入出力インターフェース１３は、データを電気信号に変換し、マイコンの物理アドレスを用いてマイコン間においてＩ２Ｃバス仕様の実際の伝送を行うＩ２Ｃロジック部Ｌ１と、このＩ２Ｃロジック部Ｌ１のハードウェアを管理して、Ｉ２Ｃバスの使用権の獲得又は開放を制御するＬｏｗｅｒ  Ｌｅｖｅｌ  Ｄｒｉｖｅｒ部Ｌ２と、データ転送のエラー管理、通信モードの管理や通信方式、同期の取り方などを規定する通信ミドル部Ｌ３と、ユーザが実行する多くのサービス間プロトコルを制御し、データを効率的なデータ転送に適した形式に変換するアプリケーション部Ｌ４とから階層的に構成される。他のマイコンの入出力インターフェースも、同様の構成を有している。
【００５０】
本実施例では、例えば、マイコン１０がマスタとなって、スレーブとしての他のマイコンにデータを送信した後ストップ条件信号をバス５０に出力せずに、第１の所定の時間が経過した後にスタート条件信号をＩ２Ｃバス５０に再度出力する。マイコン１０は、タイマー手段を有しており、このタイマー手段により、上記第１の所定の時間を計測する。このタイマー手段は、具体的には、メモリ１２に記憶されている所定のプログラムをＣＰＵ１１が実行することにより実現される。同様に、他のマイコンも、タイマー手段を有している。
【００５１】
この第１の所定の時間の長さは、少なくとも、後述するマイコン２０が受信したデータの誤り検出を実行するのに要する時間よりも長く、且つ、マイコン１０がバス５０を占有してシステム１００における他の通信の開始を妨害するような時間よりも短いことが好ましい。また、第１の所定の時間は、特に設定せず、即座にスタート条件信号をＩ２Ｃバス５０に再度出力しても良い。その場合は、スレーブ側において誤り検出の実行時にＣＬＫラインをＬｏｗに引くことでマスタ側の通信を待たせるという方法がある。
【００５２】
また、本実施例では、マイコン１０がマスタとなって、データを送信する場合には、マイコン１０の入出力インターフェース１３は、スレーブが送信データをチェックするための、例えば正しく受信したことを確認するための、誤り検出コードと共に、上記送信データをスレーブに送信する。スレーブとなった他のマイコンは、マスタからの送信データを受信し、スレーブの入出力インターフェースは、上記誤り検出コードを用いてマスタから送信された上記送信データのスレーブのＣＰＵによるチェック結果データを、上記応答データとしてマスタに送信する。マイコン１０以外の他のマイコンが、マスタとなってデータを送信する場合も同様の処理が行われる。この誤り検出処理は、図７の通信ミドル部Ｌ３、もしくは、Ｌｏｗｅｒ  Ｌｅｖｅｌ  Ｄｒｉｖｅｒ部Ｌ２により行われる。
【００５３】
図８に、マスタがスレーブに送信する送信データＤ１の構造を示す。送信データＤ１は、データフレーム部Ｄ２と、誤り検出コード部Ｄ３とから構成される。誤り検出コード部Ｄ３は、データフレーム部Ｄ２の最後に付加されてスレーブに送信される。Ｉ２Ｃバス仕様では、ＳＤＡに出力される各バイトの長さは８ビットであり、１つのデータフレームはこの８ビットで構成される。そして、データフレーム部Ｄ２は、１つ又は複数のデータフレームから構成される。また、誤り検出コード部Ｄ３は、例えば、１バイト又は複数のバイトから構成することができる。
【００５４】
本実施例で用いる誤り検出方式としては、各種公知の誤り検出方式を用いることができる。誤り検出方式として、例えば、パリティチェック方式、ＣＲＣ方式、チェックサム方式又はＸＭＯＤＥＭ方式等を用いることができる。
【００５５】
誤り検出コード部Ｄ３では、上記誤り検出方式に基づいて定められる誤り検出コードが送信される。
【００５６】
また、マスタにより送信元に指定されたスレーブが、マスタに送信するデータに、上記誤り検出コード部Ｄ３を付加しても良い。
【００５７】
スレーブは、上記誤り検出コードを用いて、マスタから受信したチェック結果データを調べる。もし、受信したデータに誤りがあれば、スレーブは、正しくデータを受信できなかったことを示すチェック結果データを、マスタに送信する。一方、受信したデータに誤りがなければ、スレーブは、正しくデータを受信できたことを示すチェック結果データを、マスタに送信する。
【００５８】
次に、上述した本実施例のシステム１００の動作の一例を、図９〜１２を参照して、以下に説明する。この動作例では、マイコン１０がマスタとなって、スレーブであるマイコン２０にデータを送信することとする。システム１００の各動作は、マイコン１０及びマイコン２０それぞれのＣＰＵが、メモリに記憶されている所定のプログラムを実行することによりなされる。図９は、図４のシステムの動作を説明するシーケンス図である。図１０（ａ）〜（ｄ）は、図９の各ステップにおけるシリアル転送のタイミング図である。また、図１１の（ｅ）〜（ｇ）は、図１０の後のステップにおけるシリアル転送のタイミング図である。図１２Ａは、図９のＳ１９の処理を説明するフローチャートである。
【００５９】
まず、ステップＳ１０において、マイコン１０は、繰り返し数Ｒに、ゼロ又は正の整数ｎを設定する。マイコン１０は、最初のスタート条件信号をＩ２Ｃバスに出力した時点から、第２の所定の時間が経過しても、マイコン２０から上記応答データを受信しない場合には、ストップ条件信号をＩ２Ｃバスに出力し、マイコン１０は、送信データをマイコン２０に再度送信する。繰り返し数Ｒは、マイコン１０がマイコン２０にデータを送信し直す数を規定する。繰り返し数Ｒは、データの送信ごとに変更しても良いし、一定の値であっても良い。
【００６０】
次に、ステップＳ１１において、マイコン１０は、スタート条件信号をバス５０に出力してバス使用権を獲得する。マイコン１０は、Ｉ２Ｃバス仕様に基づいて、図１０（ａ）に示すように、ＳＣＬを”Ｈ”にした状態で、ＳＤＡを”Ｈ”の状態から”Ｌ”の状態に変化させることにより、バス５０にスタート条件信号を出力する。Ｉ２Ｃバス仕様では、一度、スタート条件信号が出力されると、他のマスタは、次にストップ条件信号がバスに出力されるまでは、新たな通信を開始することができない。
【００６１】
次に、ステップＳ１２において、マイコン１０からマイコン２０にデータを送信することを示すデータ送信方向識別子と共に、マイコン２０のアドレスをＩ２Ｃバス５０に出力して、マイコン２０を送信データの出力先として特定する。
【００６２】
Ｉ２Ｃバス仕様では、通常、各マイコンのアドレスは７ビットで定義されており、１バイトを構成する最後の１ビットは、データ送信方向識別子として定義される。データ送信方向識別子を示すビットが、”０”の場合には、データ送信方向が、マスタからスレーブへの送信方向となる。一方、データ送信方向識別子を示すビットが、”１”の場合には、データ送信方向が、スレーブからマスタへの送信方向となる。
【００６３】
マイコン１０は、図１０（ｂ）に示すように、クロックパルスＣ１に同期して、マイコン２０のアドレスを示す最上位ビットＭＳＢをバス５０に出力し、順次アドレスの下位ビットを出力していき、最後にクロックパルスＣ７に同期して、マイコン２０のアドレスの７ビット目をバス５０に出力する。
【００６４】
マイコン１０は、マイコン２０のアドレスに続けて、データ送信方向識別子”０”を、８ビット目の最下位ビットＬＳＢとしてバス５０に出力する。即ち、マイコン２０に対して、マイコン１０からマイコン２０にデータを送信することを示す。
【００６５】
スレーブとして指定されたマイコン２０は、送信されたデータを受信したことをマイコン１０に返答する確認応答信号としてのＡＣＫ信号を、クロックパルスＣ９に同期させてバス５０に出力する。尚、Ｉ２Ｃバス仕様では、クロックパルスはマスタであるマイコン１０が出力する。Ｉ２Ｃバス仕様では、スレーブとしてのアドレス指定又はデータを受信したマイコンは、通常、送信データに対する応答としてのＡＣＫ信号又はＮＡＣＫ信号をバス５０に出力する。
【００６６】
次に、ステップＳ１３において、マイコン１０は、スレーブであるマイコン２０が送信データを正しく受信したことを確認する誤り検出コードと共に、送信データをマイコン２０に送信する。マイコン２０は、図１０（ｃ）に示すように、データフレーム部及び誤り検出コード部を受信する。その際、各バイトにおける最後のクロックパルスに同期させて、ＡＣＫ信号をバス５０に出力する。ここで、マイコン２０が出力するＡＣＫ信号は、物理的に信号を受信したことのみを示すものであり、データフレーム部を構成する各ビット情報が、誤りなく正しく受信されたことを意味するものではない。
【００６７】
次に、ステップＳ１４において、マイコン２０は、マイコン１０から送信されたデータを受信する。マイコン２０は、受信したデータを、自分のメモリに記憶する。
【００６８】
次に、ステップＳ１５において、マイコン２０は、メモリに記憶したデータの誤り検出コード部Ｄ３におけるデータの誤り検出コードを用いて、受信したデータフレーム部Ｄ２を調べる。マイコン２０は、上述した誤り検出方式に基づいて、データフレーム部Ｄ２を構成する各ビット情報が、正しく受信されたか否かを調べて、チェック結果データを作成する。
【００６９】
次に、ステップＳ１６において、マイコン１０は、マイコン２０へのデータの送信後、ストップ条件信号をＩ２Ｃバス５０に出力せずに上記第１の所定の時間が経過した後に、スタート条件信号をＩ２Ｃバスに再度出力する。
【００７０】
Ｉ２Ｃバス仕様では、マスタがストップ条件信号をバスに出力しない限りは、新たな通信が開始されることはないが、マイコン１０は、マイコン２０を送信元として指定するために、再度、スタート条件信号をＩ２Ｃバスに出力する必要がある。
【００７１】
マイコン１０は、上記第１の所定の時間が経過した後に、図１０（ｄ）に示すように、ＳＣＬを”Ｈ”にした状態で、ＳＤＡを”Ｈ”の状態から”Ｌ”の状態に変化させることにより、バス５０にスタート条件信号を出力する。
【００７２】
次に、ステップＳ１７において、マイコン２０からマイコン１０にデータを送信することを示すデータ送信方向識別子と共に、マイコン２０のアドレスをＩ２Ｃバスに出力して、マイコン２０を受信データの出力元として特定する。
【００７３】
図１１(ｅ）に、マイコン１０がバス５０に出力するＳＤＡを示す。マイコン１０は、マイコン２０のアドレスに続けて、クロックパルスＣ８と同期して、データ送信方向識別子”１”を、８ビット目の最下位ビットＬＳＢとしてバス５０に出力する。即ち、図１０（ｂ）とは異なり、マイコン２０に対して、マイコン２０からマイコン１０にデータを送信することを示している。
【００７４】
次に、ステップＳ１８において、マイコン２０は、データを調べたチェック結果データを応答データとして、マイコン１０に送信する。マイコン２０は、図１１（ｆ）に示すように、チェック結果データを、マイコン１０に送信する。マイコン１０は、チェック結果データを受信した場合、各バイトにおける最後のクロックパルスと共に、ＡＣＫ信号をバス５０に出力する。
【００７５】
次に、ステップＳ１９において、マイコン１０は、マイコン２０からチェック結果データの受信処理を行う。以下、図１２Ａを参照して、Ｓ１９の処理を詳細に説明する。
【００７６】
まず、ステップＳ３０において、マイコン１０は、マイコン２０からチェック結果データを受信したか否かを判断する。もし、チェック結果データを受信していれば、Ｓ２０に進む。一方、チェック結果データを受信していなければ、ステップＳ３１に進む。ここで、マイコン１０が、マイコン２０からチェック結果データを受信していない場合とは、例えばマイコン２０に異常が生じてチェック結果データを送信できなくなった場合、又はバス５０に異常が生じた場合等が挙げられる。
【００７７】
ステップＳ３１において、マイコン１０のＣＰＵ１１は、最初のスタート条件信号をＩ２Ｃバスに出力した時点から、上記第２の所定の時間が経過したかを判断する。もし、この第２の所定の時間が経過していなければ、Ｓ３０の前に戻る。一方、上記第２の所定の時間が経過していれば、次に、ステップＳ２０に進む。
【００７８】
上記第２の所定の時間の計測は、上記マイコン１０のタイマー手段を用いて実行できる。この第２の所定の時間の長さは、例えば、マイコン１０がバス５０を占有して、システム１００における他の通信の開始を妨害しない程度の時間に設定することが好ましい。
【００７９】
ステップＳ２０において、マイコン１０は、ストップ条件信号をバス５０に出力して、バス使用権を開放する。マイコン１０は、図１１（ｇ）に示すように、ＳＣＬを”Ｈ”にした状態で、ＳＤＡを”Ｌ”の状態から”Ｈ”の状態に変化させることにより、バス５０にストップ条件信号を出力する。
【００８０】
以下、図１２Ｂを参照して、Ｓ２０の処理を詳細に説明する。
【００８１】
まず、マイコン１０は、ステップＳ４０において、バス使用権を開放した後、ステップＳ４１に進む。
【００８２】
次に、ステップＳ４１において、マイコン１０は、マイコン２０からチェック結果データを受信したか否かを判断する。もし、チェック結果データを受信していれば、Ｓ４２に進んで処理を終了する。一方、チェック結果データを受信していなければ、ステップＳ４３に進む。
【００８３】
次に、ステップＳ４３において、マイコン１０は、繰り返し数Ｒがゼロか否かを判断する。もし、繰り返し数Ｒがゼロでなければ、次にステップＳ４５に進む。
【００８４】
ステップＳ４５において、マイコン１０は、繰り返し数Ｒから１を減じた値を、新たに繰り返し数Ｒとした後、Ｓ１１に戻る。Ｓ１１に戻ったマイコン１０は、Ｓ１１〜Ｓ２０の処理を繰り返す。
【００８５】
一方、Ｓ４３において、繰り返し数Ｒがゼロであれば、次にステップＳ４４に進んで処理を終了する。この繰り返し数Ｒの初期値ｎの値としては、例えば、エラー時の再送回数を指定すれば良い。
【００８６】
マイコン１０は、マイコン２０から受信したチェック結果データを調べて、マイコン２０が、送信したデータを正しく受信していない場合には、改めて、マイコン２０に同じ送信データの再送信を行っても良い。同様に、マイコン１０は、マイコン２０からチェック結果データを受信できない場合にも、改めて、マイコン２０にデータの再送信を行っても良い。
【００８７】
上述した本実施例のＩ２Ｃバス仕様を備えたシステム１００によれば、マイコン１０がマイコン２０にデータを送信した後、バスを開放することなく、マイコン２０がデータを正しく受信したか否かを確認するためのチェック結果データをマイコン１０に送信できる。従って、通信の信頼性を高めることができる。
【００８８】
また、本実施例によれば、マイコン１０からマイコン２０へのデータの送信と、マイコン２０からマイコン１０への応答データとしてのチェック結果データの送信との間に、他の通信が割り込むことがないので、マイコン１０がマイコン２０にデータを送信する際、マイコン２０が対応関係を示すためのパラメータを付加してチェック結果をマイコン１０に送信させるように、送信データに新たな手続き行うことは不要である。また、他の通信が割り込むことに対応して、マイコン１０及びマイコン２０において、続行していた処理を中断し、またその処理を再開する等の手続きを行うことを実装する必要もない。即ち、システム１００の構成を簡易なものにすることができる。
【００８９】
また、マスタとなるマイコン１０が、バスを占有する時間をある一定の時間（上述した第２の所定の時間）に制限することにより、ある１つの通信が他の通信の開始を妨害するという状態が回避できる。
【００９０】
上述した本実施形態の他の実施例を、図１３を参照して、以下に説明する。図１３に示す実施例では、システム１００は、第１ノード１０と、第２ノード２０と、第３ノード３０と、第４ノード４０とが、Ｉ２Ｃバス５０を介して通信可能に接続して構成されている。第１ノード１０は、Ｉ２Ｃバス仕様の通信機能を有した装置であり、具体的には、ナビゲーション装置である。第２ノード２０は、Ｉ２Ｃバス仕様の通信機能を有した装置であり、具体的には、オーディオ装置である。第３ノード３０は、Ｉ２Ｃバス仕様の通信機能を有した装置であり、具体的には、デジタルテレビチューニング装置である。第４ノード４０は、Ｉ２Ｃバス仕様の通信機能を有した装置であり、具体的には、アンプ装置である。
【００９１】
図１３に示すシステム１００では、第１ノード１０が、図３に示す実施形態におけるマイコン１０に対応している。また、第２ノード２０、第３ノード３０及び第４ノード４０が、図３に示す実施形態におけるマイコン２０に対応している。
【００９２】
本発明の方法、システム、電子制御ユニット及び回路基板は、上述した実施形態又は実施例に制限されることなく、本発明の趣旨を逸脱しない限り適宜変更が可能である。
【００９３】
例えば、本発明の方法、システム、電子制御ユニット及び回路基板は、Ｉ２Ｃバス仕様の通信に適用できるので、別の機能が付加されたＩ２Ｃバスの通信仕様にも適用可能である。
【００９４】
また、上記応答データは、第１マイコン１０から受信した送信データに応答するものであれば、誤り検出のチェック結果でなくても良い。例えば、応答データは、第１マイコン１０から受信したデータを用いて他の情報処理を行った処理結果のデータであっても良い。
【００９５】
また、上述した一実施例では、第１マイコン１０及び第２マイコン２０が、メモリに記憶されているプログラムを実行することにより、誤り検出コードを備えたデータの送信と、この誤り検出コードを用いたチェック結果の送信とが、行われていたが、これらの処理は論理回路を含むハードウェアにより構成していても良い。
【図面の簡単な説明】
【００９６】
【図１】従来の例におけるＩ２Ｃバス仕様を利用したシステム構成図である。
【図２】図１のシステムにおいて、マスタからデータをスレーブに送信するシーケンス図である。
【図３】本発明に係るシステムの一実施形態を示す機能ブロック図である。
【図４】図３のシステムの一実施例を示すシステム構成図である。
【図５】図４のシステムのブロック図である。
【図６】図４におけるシステム構成要素のハードウェア構成を示す図である。
【図７】図３のマイコン１０における通信手段の階層構造を示す図である。
【図８】送信データの構造を示す図である。
【図９】図４のシステムの動作を説明するシーケンス図である。
【図１０】（ａ）〜（ｄ）は、図９の各ステップにおけるシリアル転送のタイミング図である。
【図１１】（ｅ）〜（ｇ）は、図９の各ステップにおけるシリアル転送のタイミング図である。
【図１２Ａ】図９のＳ１９の動作を説明するフローチャートである。
【図１２Ｂ】図９のＳ２０の動作を説明するフローチャートである。
【図１３】図３のシステムの他の実施例を示すシステム構成図である。
【符号の説明】
【００９７】
１００    システム
１０    第１マイコン
１１    ＣＰＵ（第１マイコン演算手段）
１２    メモリ（第１マイコン記憶手段）
１３    入出力インターフェース（第１マイコン通信手段）
２０    第２マイコン
２１    ＣＰＵ（第２マイコン演算手段）
２２    メモリ（第２マイコン記憶手段）
２３    入出力インターフェース（第２マイコン通信手段）
３０    マイコン
４０    マイコン
５０    Ｉ２Ｃバス
Ｌ１    Ｉ２Ｃロジック部
Ｌ２    Ｌｏｗｅｒ  Ｌｅｖｅｌ  Ｄｒｉｖｅｒ部
Ｌ３    通信ミドル部
Ｌ４    アプリケーション部
【図１】
2009244991.tif 000003
【図２】
2009244991.tif 000004
【図３】
2009244991.tif 000005
【図４】
2009244991.tif 000006
【図５】
2009244991.tif 000007
【図６】
2009244991.tif 000008
【図７】
2009244991.tif 000009
【図８】
2009244991.tif 000010
【図９】
2009244991.tif 000011
【図１０】
2009244991.tif 000012
【図１１】
2009244991.tif 000013
【図１２Ａ】
2009244991.tif 000014
【図１２Ｂ】
2009244991.tif 000015
【図１３】
2009244991.tif 000016