(57)【要約】  ＥＣＵのバージョンアップ時において、マスタとなるＥＣＵ１は、他のＥＣＵ１ａ，１ｂに対してＡＣＫスロット長の変更を通知する。ＥＣＵ１ａ，１ｂは、ＥＣＵ１から受信したＡＣＫスロット長に変更する。このとき、変更されたＡＣＫスロット長は、各ＥＣＵ１ａ，１ｂに設けられたレジスタ５ａにそれぞれ格納される。続いて、マスタのＥＣＵ１は、各ＥＣＵ１ａ，１ｂに対して、変更されたＡＣＫスロット長に見合った通信速度によってバージョンアップデータを送信し、バージョンアップの完了後、ＥＣＵ１がＡＣＫスロット長を元のＡＣＫスロット長とする通知を行う。これを受けて、ＥＣＵ１ａ，１ｂは、通知された元のＡＣＫスロット長を再設定する。
2010137365.tif 000002
【特許請求の範囲】
【請求項１】
通信バスを介して転送されるＣＡＮプロトコルのメッセージに基づいて、アクチュエータを制御するコントローラを備えた半導体集積回路装置であって、
前記コントローラは、
前記ＣＡＮプロトコルに従って通信を制御する通信制御部を備え、
前記通信制御部は、
前記メッセージを正常に受信したことを確認する応答信号のスロット長を１ビットから複数ビットに任意に可変し、可変したビット数の応答信号に応じた通信速度によって通信を行うことを特徴とする半導体集積回路装置。
【請求項２】
請求項１記載の半導体集積回路装置において、
前記通信制御部は、
変更後のＡＣＫスロット長を格納する第１の格納部を備え、ＡＣＫスロット長を変更するＡＣＫ変更プロトコルが通知された際に、前記ＡＣＫ変更プロトコルに設定されたＡＣＫスロット長を前記第１の格納部に格納してＡＣＫスロット長を変更することを特徴とする半導体集積回路装置。
【請求項３】
請求項１記載の半導体集積回路装置において、
前記通信制御部は、
変更後のＡＣＫスロット長を格納する第１の格納部と、
通信可能な最大周波数を格納する第２の格納部とを備え、
通信マスタ以外の前記半導体集積回路装置に設けられた通信制御部は、
通信マスタとなる前記半導体集積回路装置が最大通信速度を問い合わせる通信速度問い合わせプロトコルを通知した際に、前記第２の格納部に格納されている通信可能な最大周波数を返信し、前記通信マスタとなる半導体集積回路装置が算出したＡＣＫスロット長を前記第１の格納部に格納し、
前記通信マスタとなる半導体集積回路装置に設けられた通信制御部は、
前記通信マスタ以外の半導体集積回路装置から返信された周波数からＡＣＫスロット長を算出し、算出した前記ＡＣＫスロット長のうち、最も短いスロット長（最も短いビット数）を前記通信マスタ以外の半導体集積回路装置に通知し、可変したスロット長の応答信号に応じた通信速度によって通信を行うことを特徴とする半導体集積回路装置。
【請求項４】
請求項１〜３のいずれか１項に記載の半導体集積回路装置において、
可変される前記スロット長は、１〜複数ビットであることを特徴とする半導体集積回路装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信ネットワークにおける通信技術に関し、特に、ＣＡＮ(Controller Area Network)バスを介して通信する通信ネットワークシステムにおける通信速度の向上に有効な技術に関する。
【背景技術】
【０００２】
ＬＡＮなどに用いられる通信プロトコル、特に、自動車用の通信ネットワークの通信プロトコルとして、たとえば、ＣＡＮプロトコルが広く用いられている。【０００３】
このＣＡＮプロトコルでは、たとえば、ＥＣＵ（Electric Control Unit）などに設けられた受信ユニットが正常にメッセージを受信した際に、該受信ユニットから送信ユニットへＡＣＫと呼ばれる１ビットの応答信号を送信している。【０００４】
そして、送信ユニットは、ＡＣＫを受信することで、少なくとも１つ以上のユニット（ＥＣＵ）が正常にメッセージを受信できたことを確認している。【０００５】
この種のＬＡＮ通信プロトコルにおける通信技術としては、たとえば、ＡＣＫＸ信号幅を変更するためのＡＣＫＸ幅可変回路と、このＡＣＫＸ幅可変回路に対して変更に係るＡＣＫＸ信号幅を設定するＡＣＫＸ幅設定キーとを設け、ホストコンピュータ、プリンタの性能に応じてホストコンピュータからプリンタへのデータ転送速度を可及的に向上させ、プリンタの高速印字を実現するものが知られている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平１１−９１２１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところが、上記のような通信ネットワークプロトコルによる通信技術では、次のような問題点があることが本発明者により見い出された。【０００８】
ＣＡＮプロトコルにおいて、送信ユニットは、受信ユニットがフレームのＡＣＫスロット位置（１ビット）で送信したＡＣＫビット(１ビット)を、送信ユニット自身のフレームのＡＣＫ（１ビット）スロット位置で受信しなければならない。そのため１ビット以上の伝播遅延は規格上許されない。【０００９】
通信速度を高速化すればするほど、１ビットの時間はさらに短くなり（たとえば、１Ｍｂｐｓの場合には１μｓであり、２Ｍｂｐｓの場合には５００ｎｓなど）、ユニット間を接続するハーネスの長さに起因するバス遅延やトランシーバの処理などに要する遅延などを考慮した場合、ＣＡＮ通信では、１Ｍｂｐｓ以上の高速化が難しい。【００１０】
たとえば、図５に示すように、送信ユニットとなるＥＣＵ１００、および受信ユニットとなるＥＣＵ１０１，１０２がＣＡＮバス１０３に接続されている構成において、ＥＣＵ１００からのＡＣＫビットに１ビット以上の伝送遅延が発生した場合、ＥＣＵ１００がＥＣＵ１０１からのＡＣＫを自身のＡＣＫスロット(１ビット)内で受信することができずに、フレームが破壊されてしまい、通信が成立しないことになってしまう。【００１１】
近年、自動車は、車内ユニットが増加する傾向にあり、また、１つのユニットが持つ情報量も大きくなっており、ユニット間における高速な通信プロトコルが求められている。【００１２】
しかしながら、ＣＡＮ通信プロトコルの最大通信スピードは上述したように、現状では１Ｍｂｐｓ以上の高速化が困難であり、その通信スピードでは情報を処理しきれなくなってしまう恐れがある。【００１３】
本発明の目的は、通信ネットワークにおける通信プロトコルと互換性を維持しつつ通信の高速化を実現することのできる技術を提供することにある。【００１４】
本発明の前記ならびにそのほかの目的と新規な特徴については、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１５】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。【００１６】
本発明は、通信バスを介して転送されるＣＡＮプロトコルのメッセージに基づいて、所定の動作を行うアクチュエータを制御するコントローラを備えた半導体集積回路装置であって、該コントローラは、ＣＡＮプロトコルに従って通信を制御する通信制御部を備え、該通信制御部は、メッセージを正常に受信したことを確認する応答信号のスロット長を１ビットから複数ビットに任意に可変し、可変したビット数の応答信号に応じた通信速度によって通信を行うものである。応答信号であるＡＣＫビットは、通常のＣＡＮプロトコルと同じく１ビットであり、ＡＣＫスロットの開始のタイミングで送信される。【００１７】
また、本願のその他の発明の概要を簡単に示す。【００１８】
本発明は、前記通信制御部が、変更後のＡＣＫスロット長を格納する第１の格納部を備え、ＡＣＫスロット長を変更するＡＣＫ変更プロトコルが通知された際に、ＡＣＫ変更プロトコルに設定されたＡＣＫスロット長を該第１の格納部に格納してＡＣＫスロット長を変更するものである。【００１９】
また、本発明は、前記通信制御部が、変更後のＡＣＫスロット長を格納する第１の格納部と、通信可能な最大周波数を格納する第２の格納部とを備え、通信マスタ以外の半導体集積回路装置に設けられた通信制御部は、通信マスタとなる半導体集積回路装置が最大通信速度を問い合わせる通信速度問い合わせプロトコルを通知した際に、該第２の格納部に格納されている通信可能な最大周波数を返信し、通信マスタとなる半導体集積回路装置が算出したＡＣＫスロット長を第１の格納部に格納し、通信マスタとなる半導体集積回路装置に設けられた通信制御部は、通信マスタ以外の半導体集積回路装置から返信された周波数からＡＣＫスロット長を算出し、算出したＡＣＫスロット長のうち、最も短いスロット長を通信マスタ以外の半導体集積回路装置に通知し、可変したスロット長の応答信号に応じた通信速度によって通信を行うものである。
【発明の効果】
【００２０】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。【００２１】
（１）ＣＡＮプロトコルによって通信を行う半導体集積回路装置のＡＣＫスロット長を任意に可変することができるので、ハーネス長などに制限されることなく通信速度を高速化することができる。【００２２】
（２）また、上記（１）により、通信の信頼性を損ねることなく、大量の情報を処理することができ、通信システムの信頼性、および高性能化を実現することができる。
【図面の簡単な説明】
【００２３】
【図１】本発明の一実施の形態による車内ネットワークの接続形態の一例を示すブロック図である。
【図２】図１のＥＣＵの通信に用いられる可変ＡＣＫスロット長を説明するフレーム転送タイミングの一例を示すタイミングチャートである。
【図３】図２のＡＣＫ可変時におけるフレームの構成の一例を示した説明図である。
【図４】図１のＥＣＵによるＡＣＫスロット長を設定する一例を示すフローチャートである。
【図５】本発明者が検討したレスポンスの遅延によってＡＣＫが受信できない場合の一例を示す説明図である。
【発明を実施するための形態】
【００２４】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００２５】
図１は、本発明の一実施の形態による車内ネットワークの接続形態の一例を示すブロック図、図２は、図１のＥＣＵの通信に用いられる可変ＡＣＫスロット長を説明するフレーム転送タイミングの一例を示すタイミングチャート、図３は、図２のＡＣＫ可変時におけるフレームの構成の一例を示した説明図、図４は、図１のＥＣＵによるＡＣＫスロット長を設定する一例を示すフローチャートである。
【００２６】
本実施の形態において、自動車の車内ネットワークの接続形態は、図１に示すように、複数のＥＣＵ１，１ａ，１ｂが通信バスとなるＣＡＮバスＢｃを介して相互に接続された構成からなる。ただし、ＥＣＵがアクチュエータに接続されることは必須ではない。
【００２７】
これらＥＣＵ１，１ａ，１ｂは、たとえば、ナビゲーションシステムやオーディオなどの情報、エンジンやシャーシなどのパワートレイン系、あるいはエアコンやヘッドライト、ドアロックなどのボディ系などの各種制御を司る半導体集積回路装置である。また、ＥＣＵ１，１ａ，１ｂには、各ＥＣＵ１，１ａ，１ｂによって制御されるアクチュエータＡｃがそれぞれ接続されている。
【００２８】
ＥＣＵ１は、ＣＡＮトランシーバ／レシーバ２、およびコントローラとなるＭＣＵ(Micro Controller Unit)３から構成されている。ＥＣＵ１は、ＣＡＮトランシーバ／レシーバ２を介してＣＡＮバスＢｃと相互に接続されている。ＣＡＮバスＢｃには、ＣＡＮプロトコルの差動信号が転送される。
【００２９】
ＣＡＮトランシーバ／レシーバ２は、ＣＡＮバスＢｃを介して入力される差動信号をデジタル信号に変換してＭＣＵ３に出力するとともに、ＭＣＵ３から出力されるデジタル信号を差動信号に変換してＣＡＮバスＢｃに出力する。
【００３０】
ＭＣＵ３は、ＣＡＮインタフェース４、通信制御部５、タイマ６、ＲＡＭ(Random Access Memory)７、フラッシュメモリに例示される不揮発性半導体メモリなどからなるメモリ８、およびＣＰＵ(Central Processing Unit)９から構成されている。また、通信制御部５、タイマ６、ＲＡＭ７、メモリ８、ならびにＣＰＵ９は、内部バスＢｓを介して相互に接続されている。
【００３１】
ＣＡＮインタフェース４は、ＭＣＵ３とＣＡＮバスＢｃとのインタフェースである。通信制御部５は、ＣＡＮプロトコルに従って他のＥＣＵとの通信を制御する。また、通信制御部５は、第１の格納部，および第２の格納部として機能するレジスタ５ａを備えており、該レジスタ５ａに格納された情報に基づいて、ＡＣＫスロット長の応答信号であるＡＣＫのビット数を静的に可変する機能を有している。
【００３２】
タイマ６は、タイマクロックなどのカウントアップを行って所望の時間設定をし、ある時間に到達するとタイマカウンタ信号を出力する。ＲＡＭ７は、データの一時的な保存に用いられ、たとえば、ＣＡＮネットワークから受信したデータや、ＣＡＮネットワークへ送信するデータの一時的な退避などに使用される。
【００３３】
メモリ８は、フラッシュメモリに例示される不揮発性半導体メモリからなり、主にＭＣＵ３の動作プログラムが格納されている。動作プログラムは、たとえば、ＣＡＮ通信プログラムやアクチュエータ制御プログラムなどである。ＣＰＵ９は、ＭＣＵ３におけるすべての制御を司る。
【００３４】
ここでは、ＥＣＵ１の構成について記載したが、他のＥＣＵ１ａ，１ｂについても、ＥＣＵ１と同様の構成となっている。
【００３５】
次に、本実施の形態１によるＥＣＵ１，１ａ，１ｂの動作について説明する。
【００３６】
始めに、一例として車に搭載されたＥＣＵ１，１ａ，１ｂの制御プログラムの書き換え技術について説明する。
【００３７】
車載用のＥＣＵにおける不揮発性メモリに格納されているプログラムやデータ（以下、プログラム等）のバージョンアップを行う場合には、変更するＥＣＵのみを変更するのではなく、すべてのＥＣＵのプログラム等を最新データに変更するというのが通例である。通常は、約１Ｍｂｐｓ以下で通信しているために全ＥＣＵのバージョンアップに長い時間が必要となってしまう。
【００３８】
そこで、全ＥＣＵのプログラム等のバージョンアップ時のみ、ＡＣＫビット長を複数、たとえば、２ビット程度に可変するように設定し、通信速度を高速化するように変更を行う。
【００３９】
まず、マスタとなるＥＣＵ１が、すべてのＥＣＵ１ａ，１ｂに対して、ＡＣＫスロット長（たとえば、通常の２倍のスロット長）の変更を通知する。ＥＣＵ１ａ，１ｂは、マスタのＥＣＵ１から受信したＡＣＫスロット長に変更する。このとき、変更されたＡＣＫスロット長は、各ＥＣＵ１ａ，１ｂに設けられたレジスタ５ａにそれぞれ格納される。
【００４０】
ＣＡＮプロトコルに基づく通信では、マスタとなるＥＣＵは、車載の複数のＥＣＵのうち任意のＥＣＵがマスタとなることが可能であるが、本実施例では新たなプログラムの外部からの入力を受けることが可能な、たとえば、ナビゲーションシステムや車外ネットワークと接続される無線ネットワーク送受信器等のＥＣＵが該当する。
【００４１】
続いて、マスタのＥＣＵ１は、各ＥＣＵ１ａ，１ｂに対して、可変されたＡＣＫスロット長に見合った通信速度で、バージョンアップ用の最新のプログラム等を送信する。その後、全ＥＣＵ１，１ａ，１ｂのバージョンアップが完了すると、マスタのＥＣＵ１がＡＣＫスロット長を元のＡＣＫスロット長とするように通知する。これを受けて、ＥＣＵ１ａ，１ｂのレジスタ５ａは、通知されたＡＣＫスロット長を格納する。
【００４２】
このように、ＥＣＵのプログラム等のアップデート時などにおいて、ＡＣＫスロット長を可変し、通信速度を向上させることができるので、アップデート時間を大幅に短縮することができる。
【００４３】
図２は、可変ＡＣＫスロット長を説明するフレーム転送タイミングの一例を示すタイミングチャートである。
【００４４】
図２の上方に示すタイミングチャートは、通常のＣＡＮ通信に用いられる転送レート（通信周波数）の周波数ｎにおけるフレーム転送タイミングを示し、図２の下方に示すタイミングチャートは、周波数ｎの２倍の転送レートである周波数２ｎにおけるフレーム転送タイミングを示している。
【００４５】
図示するように、転送レートが周波数ｎにおけるＡＣＫスロット長ｔ１と転送レートが周波数２ｎにおけるＡＣＫスロット長ｔ２との長さは等しいが、スロット長をビット数に変換した値は、２倍のビット数となる。
【００４６】
このように、転送レートを２倍にすると、１ビット幅は１／２となるため、ＡＣＫスロット長のビット数による設定は２倍とする必要がある。よって、通信速度を２倍とする場合には、たとえば、周波数ｎのＡＣＫスロット長ｔ１と同じ時間（ＡＣＫスロット長ｔ２）となる２サイクルをＡＣＫスロットを設定するビット数として算出する。
【００４７】
図３は、ＡＣＫスロット長可変時におけるフレーム１０の構成の一例を示した説明図である。
【００４８】
フレーム１０は、図示するように、ＳＯＦ（Start Of Frame）１１、アビトレーションフィールド１２、コントロールフィールド１３、データフィールド１４、ＣＲＣフィールド１５、ＡＣＫフィールド１６、およびＥＯＦ(End Of Frame)１７から構成されている。
【００４９】
ＳＯＦ１１は、フレームの開始を示し、アビトレーションフィールド１２は、たとえば、ＩＤ値、およびＲＴＲ(Remote Transmission Request)からなる。コントロールフィールド１３は、コントロールフィールドは、予約ビットとデータのバイト数を表すフィールドであり、データフィールド１４は、複数ビット（たとえば、６４ビット）のデータから構成されている。
【００５０】
ＣＲＣフィールド１５は、伝送の誤りをチェックするフィールドであり、ＣＲＣ、およびＣＲＣの終わりを示すＣＲＣデリミタから構成されている。ＡＣＫフィールド１６は、正常に受信が完了したことを確認するフィールドあり、ＡＣＫ、ならびにＡＣＫの終了を示すＡＣＫデリミタから構成されている。ＥＯＦ１７は、フレームの終わりを示す。
【００５１】
ここで、ＡＣＫフィールド１６におけるＡＣＫスロット長は、１ビットから複数のビット（本例では、４ビット程度）まで任意に可変設定することができる。
【００５２】
ＣＲＣフィールド１５の後半において、’Ｈ’が連続して送信される最大ビット数は、ビットスタッフ機能を考慮すると４ビット（網掛けで示す部分）となる。ビットスタッフ機能とは、ＳＯＦ１１からＣＲＣフィールド１５までの間に５ビットの同一レベルビットが連続した場合に、次のビットにレベルを反転したビットを付加する機能である。また、１１ビット連続で’Ｈ’が続くと、他のＥＣＵがバスアイドルを検出してしまい、フレームをバスに送信する可能性がある。
【００５３】
よって、ＡＣＫフィールド（ＡＣＫスロット）として許容される範囲は、１０ビット−（ＣＲＣフィールドの残り４ビット＋１ビットのＣＲＣデリミタ）から、５ビットとなる。そして、各々のＥＣＵの持っているローカルクロックの誤差を、たとえば、１ビット程度と考慮すると、５ビット−１ビット＝４ビットとなる。
【００５４】
よって、ここでは、ＡＣＫスロット長を最大で４ビット(１〜４ビットで可変)としている。また、ＡＣＫスロット長は１ビットをデフォルト値とし、１ビットの場合、通常のＣＡＮプロトコルと同様に使用することができる。
【００５５】
次に、複数の異なる通信速度に対応するＥＣＵが接続されている場合のＡＣＫスロット長の設定技術について、図４のフローチャートを用いて説明する。
【００５６】
ここでは、ＥＣＵ１が通信マスタとなっており、ＥＣＵ１ａが最大２ｎ周波数の通信速度（通信周波数）で通信が可能であり、ＥＣＵ１，１ｂが最大４ｎ周波数の通信速度（通信周波数）で通信が可能であるものとする。また、以下に示す処理は、たとえば、主に通信制御部５によって処理される。
【００５７】
まず、マスタであるＥＣＵ１は、ＥＣＵ１ａに該ＥＣＵ１ａの最大通信速度を問い合わせる（ステップＳ１０１）。ＥＣＵ１ａは、予め設定されている最大通信速度（２ｎ周波数）をＥＣＵ１に返答する（ステップＳ１０２）。
【００５８】
ＥＣＵ１は、受け取ったＥＣＵ１ａの通信速度からＡＣＫスロット長ｔ１を算出し、その結果をＥＣＵ１のレジスタ５ａにビット数で格納する（ステップＳ１０３）。続いて、ＥＣＵ１は、ＥＣＵ１ｂに対して該ＥＣＵ１ｂの最大通信速度を問い合わせる（ステップＳ１０４）。ＥＣＵ１ｂは、予め設定されている最大通信速度（４ｎ周波数）をＥＣＵ１に返答する（ステップＳ１０５）。
【００５９】
ＥＣＵ１は、ステップＳ１０３の処理と同様に、受け取ったＥＣＵ１ｂの通信速度からＡＣＫスロット長ｔ２を算出し、その結果をＥＣＵ１のレジスタ５ａにビット数で格納する（ステップＳ１０６）。
【００６０】
そして、ＥＣＵ１は、レジスタ５ａに格納されたＡＣＫスロット長ｔ１とＡＣＫスロット長ｔ２とを比較し、最もビット数の小さい値（ｔ１）を選択する（ステップＳ１０７）。
【００６１】
続いて、ＥＣＵ１は、ＥＣＵ１ａ、およびＥＣＵ１ｂに対して選択したＡＣＫスロット長（ビット数）を通知し（ステップＳ１０８，Ｓ１０９）、ＥＣＵ１，１ａ，１ｂは、通信速度とスロット長の変更処理を行い（ステップＳ１１０）、周波数２ｎによるＣＡＮ通信が開始される（ステップＳ１１１）。
【００６２】
なお、システム設計段階などにおいて、各ＥＣＵのＡＣＫスロット長が決定される場合は、ＡＣＫサイクル問い合わせのプロトコルは不要となる。
【００６３】
また、図４では、マスタのＥＣＵ１が他のＥＣＵ１ａ，１ｂに通信速度を問い合わせて最も短いＡＣＫスロット長を選択する処理を行っているが、通信速度を問い合わせるのではなく、ＡＣＫスロット長（対応可能な最大ビット数）をマスタのＥＣＵ１が他のＥＣＵ１ａ，１ｂに問い合わせ、最も小さいビット数を選択してもよい。
【００６４】
これにより、通信速度の異なるＥＣＵが混在するシステム構成であっても、最も効率のよい通信速度をフレキシブルに選択することができるので、通信速度を高速化することができる。
【００６５】
それにより、本実施の形態によれば、ＥＣＵ１，１ａ，１ｂにおけるＡＣＫスロット長を任意に可変することができるので、ハーネス長などに制限されることなく通信速度を高速化することができる。
【００６６】
また、ＡＣＫスロット長を、１ビットにも設定することでできるので、通常のＣＡＮ通信プロトコルとの互換性を保つことができる。
【産業上の利用可能性】
【００６７】
本発明は、自動車などの通信システムに用いられる半導体集積回路装置における通信速度の向上技術に適している。
【図１】
2010137365.tif 000003
【図２】
2010137365.tif 000004
【図３】
2010137365.tif 000005
【図４】
2010137365.tif 000006
【図５】
2010137365.tif 000007
【国際調査報告】
2010137365.tif 000008
2010137365.tif 000009