(57)【特許請求の範囲】
【請求項１】
マルチマスタ方式のネットワークに接続されるデータ処理モジュールにおいて、
シングルポートのメモリによって構成され、送受信メッセージを複数バッファ可能なメッセージバッファと、
伝送路に伝送すべき送信メッセージと、前記伝送路から伝送された受信メッセージがそれぞれ格納されるシフトレジスタ群を含み、所定のプロトコルに従ってメッセージを送受信する送受信回路と、
前記シフトレジスタ群に格納された受信メッセージを前記メッセージバッファに格納するとともに、前記シフトレジスタ群に送信メッセージをロードするメッセージハンドリング部とを備え、
前記メッセージハンドリング部が、前記シフトレジスタに格納された受信メッセージの識別子（ＩＤ）の前記メッセージバッファへの格納後、前記シフトレジスタに格納された受信メッセージのデータ部の格納処理より、前記シフトレジスタへの送信メッセージの識別子（ＩＤ）のロード処理を優先して実行すること、
を特徴とするデータ処理モジュール。
【請求項２】
前記シフトレジスタ群と、前記メッセージハンドリング部との間のメッセージの転送が中間バッファを介さずに行われること、
を特徴とする請求項１に記載のデータ処理モジュール。
【請求項３】
送受信メッセージを複数バッファ可能なメッセージバッファと、
伝送路に伝送すべき送信メッセージと、前記伝送路から伝送された受信メッセージとが格納される共通シフトレジスタを含む送受信回路と、
前記共通シフトレジスタに格納された受信メッセージを前記メッセージバッファに格納するとともに、前記共通シフトレジスタに送信メッセージをロードするメッセージハンドリング部とを備え、
前記メッセージハンドリング部が、前記シフトレジスタに格納された受信メッセージの識別子（ＩＤ）に基づいて少なくとも前記メッセージバッファの格納バッファを決定した後、前記共通シフトレジスタに格納された受信メッセージのデータ部を前記決定した格納バッファに格納する処理より、前記共通シフトレジスタへの送信メッセージの識別子（ＩＤ）のロード処理を優先して実行すること、
を特徴とするデータ処理モジュール。
【請求項４】
前記共通シフトレジスタは、送信又は受信メッセージの識別子（ＩＤ）を記憶するＩＤシフトレジスタと、送信又は受信メッセージのデータ部を記憶するデータシフトレジスタとを備えること、
を特徴とする請求項３に記載のデータ処理モジュール。
【請求項５】
前記メッセージハンドリング部が、前記ＩＤシフトレジスタに格納された受信メッセージの識別子に基づいて少なくとも前記メッセージバッファの格納バッファを決定した後、前記ＩＤシフトレジスタに送信メッセージの識別子のロード処理を行い、その後前記データシフトレジスタに記憶されていた前記受信メッセージのデータ部を前記決定した格納バッファに格納すること、
を特徴とする請求項４に記載のデータ処理モジュール。
【請求項６】
前記メッセージハンドリング部が、前記格納バッファへの受信メッセージの格納が終了した後、前記データシフトレジスタに前記送信メッセージのデータ部を格納することを特徴とする請求項５に記載のデータ処理モジュール。
【請求項７】
前記ＩＤシフトレジスタ及びデータシフトレジスタが、受信時には前記受信メッセージのＩＤとデータ部とをそれぞれ受信・記憶すること、
を特徴とする請求項４又は５に記載のデータ処理モジュール。
【請求項８】
伝送路に伝送すべき送信メッセージと、前記伝送路から伝送された受信メッセージがそれぞれ格納されるシフトレジスタ群を含み、所定のプロトコルに従ってメッセージを送受信する送受信回路と、シングルポートのメモリによって構成され、受信したメッセージ、又は、送信すべきメッセージを格納するメッセージバッファを有し、マルチマスタ方式のネットワークに接続されたデータ処理モジュールにおける受信メッセージの格納処理のタイミングで行うメッセージの送信準備方法であって、
前記データ処理モジュールのメッセージハンドリング部が、前記シフトレジスタに格納された受信メッセージの識別子（ＩＤ）を前記メッセージバッファに格納する工程と、
前記メッセージハンドリング部が、前記メッセージバッファに格納された送信候補メッセージの識別子（ＩＤ）を前記シフトレジスタにロードする工程と、
前記メッセージハンドリング部が、前記シフトレジスタに格納された前記受信メッセージのデータ部を前記メッセージバッファに格納する工程と、
前記メッセージハンドリング部が、前記メッセージバッファから前記送信候補メッセージのデータ部を前記シフトレジスタにロードする工程と、を含むこと、
を特徴とするメッセージの送信準備方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理モジュール及びそのメッセージの送信準備方法に関する。
【背景技術】
【０００２】
近年、通信プロトコルとして、マルチマスタの通信プロトコルが注目されている。マルチマスタのプロトコルでは、バスが解放されているとき、バスに接続されている複数の通信ノードのいずれもがデータをバス上に送信することができ、システムの柔軟性が高い等の特徴を持っている。このようなマルチマスタの通信プロトコルとして、自動車内のＥＣＵ（電子制御ユニット）間のシリアル通信プロトコルとして用いられている、特開昭６１−１９５４５３号公報に記載されたマルチマスタのＣＡＮ（Ｃｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ、以下、ＣＡＮという）プロトコル（ＩＳＯ１１８９８、ＩＳＯ１１５１９シリーズで規格化）が知られている。このようなマルチマスタの通信プロトコルは、通信ノードの増減が簡単にできる等システムの柔軟性が高いため、上記した自動車分野に止まらず、ＦＡ（Ｆａｃｔｏｒｙ  Ａｕｔｏｍａｔｉｏｎ）、船舶、医療機器といった分野の通信プロトコルとしても有望視されている。
【０００３】
図５は、通信ノードとしてのＣＡＮの概略構成を表した図である。サブネットワークを構成するＣＡＮバス（図示せず）に接続されるＣＡＮトランシーバ６０を有するＣＡＮモジュール１１、１ｎ、１６を接続することが可能となっており、各ＣＡＮモジュール１１、１ｎ、１６がＣＰＵ  Ｉ／Ｆ（インタフェース）４０を介して、メッセージを送受信することが可能となっている。また、図５のＣＡＮモジュール１９は、メッセージの受信のみを行うことが可能となっている。
【０００４】
【特許文献１】特開昭６１−１９５４５３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ＣＡＮプロトコルでは、特許文献１の３４頁右上欄「５）−３  データ交換ＤＰＲＡＭ−シフトレジスタ」以下に示されたとおり、受信メッセージをメッセージバッファに記憶するストアプロセス（第１７図参照）と、伝送すべき次のメッセージをシフトレジスタ（ＣＡＮプロトコル層）にロードするロードプロセス（第１６図参照）といったプロセスが並列的に行われると記載されているが、上記メッセージバッファをシングルポートＲＡＭ（ＳＰＲＡＭ）で構成した場合、図６に示すように、メッセージバッファと、シフトレジスタ間のデータのやり取りは、受信メッセージの識別子（ＩＤ）の格納（ステップＸ１）・データの格納（ステップＸ２）、送信すべきメッセージの識別子（ＩＤ）の格納（ステップＸ３）、送信データのロード（ステップＸ４）といった手順で行われることとなる。
【０００６】
図７は、上記した受信格納（ステップＸ１、Ｘ２）と送信準備（ステップＸ３、Ｘ４）を連続して行う際の詳細タイミングを説明するための図である。図示された通り、他の通信ノードからシリアル通信で送られてくるメッセージ（フレーム）の破壊を防ぐため、受信格納は、メッセージの受信が終わるまで開始できない。これは、メッセージの最後尾に添付されているＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ）等によりメッセージが壊れていないかどうかを確認する必要があるからである。
【０００７】
そして、受信メッセージＩＤの格納、受信メッセージデータの格納を待ってから送信メッセージの識別子（ＩＤ）のロードを行うという手順では、受信メッセージデータの格納に時間がかかってしまいＩｎｔｅｒ  Ｆｒａｍｅ  Ｓｐａｃｅ（ＩＦＳ）１〜３の間（いわゆるアービトレーションタイミング）に送信要求を立てることができないケースが生じる。ＣＡＮプロトコルでは、アービトレーションはバス上に出力されたＩＤの強弱によって判断され、通信ノードは、バス上のＩＤが、自分の出力したＩＤと同じであった場合に、アービトレーションで勝ったとしてＩＤに続いてデータを出力する仕組みとなっているため、送信要求の遅れは、他の通信ノードとのアービトレーションに参加することができず、次のアービトレーションタイミングを待たなくてはならなくなることを意味する。
【０００８】
図７の例では、既に他の通信ノードによってＳＯＦ（ＳｔａｒｔＯｆＦｒａｍｅ）が出力されているため、このタイミングで送信要求をもらった通信ノードは、ＳＯＦの出力タイミングに遅れてしまい次のアービトレーションタイミングを待たざるを得なくなる（なお、ノードから出力されるフレームは、ＳＯＦ、ＩＤ、ＤＬＣ（データ長を含む制御コード）、ＤＡＴＡ、ＥＯＦ（ＥｎｄＯｆＦｒａｍｅ）＋ＩＦＳで構成されているものとする。更には、図８に示したように、バス上のデータを受信・格納する動作を行うたびにアービトレーションタイミングに間に合わなくなり、送信ができないという事態も生じ得る。
【０００９】
また、図９に示したように、メッセージバッファ３とＣＡＮプロトコル層４との間に中間バッファ２１を設け、予め送信メッセージをロードしておく方法も提案されている。この構成によれば、図１０に示したとおり、メッセージバッファから中間バッファ２１へのロードを事前に行っておき、送信要求を速やかに立てることができるが、少なくとも中間バッファの分だけサイズ（回路面積）・コスト的デメリットが生じてしまう。
【課題を解決するための手段】
【００１０】
本発明の第１の視点によれば、上述したＣＡＮに代表されるマルチマスタ方式のネットワークに接続されたデータ処理モジュールにおいて、シングルポートのメモリによって構成され、送受信メッセージを複数バッファ可能なメッセージバッファと、伝送路に伝送すべき送信メッセージと、前記伝送路から伝送された受信メッセージがそれぞれ格納されるシフトレジスタ群（共有シフトレジスタ）を含み、所定のプロトコルに従ってメッセージを送受信する送受信回路と、前記シフトレジスタ（共有シフトレジスタ）に格納された受信メッセージのデータ部の格納処理より、前記シフトレジスタ（共有シフトレジスタ）への送信メッセージの識別子（ＩＤ）のロード処理を優先して前記シフトレジスタ群（共有シフトレジスタ）と前記メッセージバッファの間のメッセージの転送処理を実行するメッセージハンドリング部と、を備えること、を特徴とするデータ処理モジュールが提供される。
【００１１】
また、本発明の第２の視点によれば、上述したＣＡＮに代表されるマルチマスタ方式のネットワークに接続されたデータ処理モジュールにおいて、中間バッファを用いずに、前記データ処理モジュールのメッセージハンドリング部が、前記シフトレジスタに格納された受信メッセージの識別子（ＩＤ）を前記メッセージバッファに格納する受信格納工程の後に、前記受信メッセージのデータ部の格納ではなく、送信候補メッセージの識別子（ＩＤ）のロードを先に行うメッセージの送信準備方法が提供される。
【発明の効果】
【００１２】
本発明によれば、シングルポートのメモリを用い受信格納と送信準備を行う場合における送信要求のタイミングを前倒しすることが可能となる。
【発明を実施するための最良の形態】
【００１３】
続いて、本発明を実施するための最良の形態について図面を参照して詳細に説明する。図１は、本実施の形態に係るＣＡＮモジュール（データ処理モジュール）とＣＰＵ５１、ＲＡＭ５２、周辺回路５３を１チップで構成したＣＡＮデバイス１００の概略構成を表した図である。例えば、周辺回路５３は、Ｉ／Ｏ回路を含み、ＣＡＮデバイス１００の外部に設けられた各種センサ及び表示装置と接続され外部と内部との間のインターフェースを行い、ＣＰＵ５１は、各種センサからのデータをＩ／Ｏを介して取り出すと共にＲＡＭを利用して所望の処理を実行してメッセージバッファに書き込む処理及びメッセージバッファに書き込まれたメッセージを取り出し所望の処理を実行した後Ｉ／Ｏを介して外部に接続された表示装置にデータを送信する処理等を行う。
【００１４】
ＣＡＮモジュールは、メッセージハンドリング部２と、メッセージバッファ３と、ＣＡＮプロトコル層（ＣＡＮ送受信回路）４、マスクセット５を備えている。メッセージハンドリング部２は、前記ＣＡＮプロトコル層（ＣＡＮ送受信回路）４から前記メッセージバッファに受信メッセージを格納するとともに、前記メッセージバッファから前記ＣＡＮプロトコル層（ＣＡＮ送受信回路）４に送信メッセージをロードするよう構成される。
【００１５】
メッセージバッファ３は、シングルポートＲＡＭで構成され、メッセージ優先度を表す識別子（ＩＤ）、送信要求メッセージであるか否かやメッセージ本文長を指定するコントロールフィールド（制御情報）、メッセージ本文の順で所定数のメッセージを格納するバッファを複数備えて構成される。図３は、ｎ個のメッセージをバッファ可能なメッセージバッファの構成を表したものであり、上位アドレス（＃ｍ）を指定して対応するメッセージ番号のバッファを特定可能であり、また、上位アドレス（＃ｍ）と下位アドレス（ｘｘ、ｙｙ）とを組み合わせることで、任意のバッファの下位アドレスに対応する項目（識別子（ＩＤ）、データ部）を特定することが可能となっている。
【００１６】
ＣＡＮプロトコル層（ＣＡＮ送受信回路）４は、図３に示されたように、識別子（ＩＤ）、データ部（メッセージ本文）の格納／ロード先となるシフトレジスタ４１、４２を備えており、ＣＡＮプロトコルに従ってＣＡＮバス１上に存在するＣＡＮトランシーバとデータの送受信を行う。マスクセット５は、メッセージの所定部分（例えばＩＤの一部）をマスクする際に用いられる。
【００１７】
図３は、本実施の形態における受信格納と送信準備を連続して行う際の流れを表した図である。ＣＡＮモジュールのメッセージハンドリング部２は、まず、ＣＡＮプロトコル層（ＣＡＮ送受信回路）４のＩＤシフトレジスタ４１から受信メッセージの識別子（ＩＤ）を読み出し、メッセージバッファ３上の該識別子（ＩＤ）に応じたバッファ（格納バッファ）に格納する（ステップＳ１；Ｒｘ＿ＩＤ格納）。なお、前記受信メッセージの識別子（ＩＤ）は、適宜その一部がマスクされる。
【００１８】
続いて、メッセージハンドリング部２は、予め探索した送信メッセージの識別子（ＩＤ）を、メッセージバッファ３からＣＡＮプロトコル層（ＣＡＮ送受信回路）４のＩＤシフトレジスタ４１にロードする（ステップＳ２；Ｔｘ＿ＩＤロード）。
【００１９】
続いて、メッセージハンドリング部２は、ＣＡＮプロトコル層（ＣＡＮ送受信回路）４のデータシフトレジスタ４２から受信メッセージのデータ部（メッセージ本文）を読み出し、メッセージバッファ３の前記バッファ（格納バッファ）に格納する（ステップＳ３；Ｒｘ＿データ格納）。
【００２０】
続いて、メッセージハンドリング部２は、予め探索した送信メッセージのデータ部（メッセージ本文）を、メッセージバッファ３からＣＡＮプロトコル層（ＣＡＮ送受信回路）４のデータシフトレジスタ４２にロードする（ステップＳ４；Ｔｘ＿データロード）。
【００２１】
図４は、上記手順による送信要求が行われる詳細タイミングを説明するための図である。同図と従来手順による図７を比較しても明らかなとおり、受信メッセージのデータ部を格納する前に、送信メッセージの識別子（ＩＤ）をロードしているため、従来受信メッセージのデータ部の格納に掛かっていた時間分、次の送信要求を前倒しして発行することが可能となっている。
【００２２】
また、上記手順の各転送処理は、ＣＡＮプロトコル層（ＣＡＮ送受信回路）４と、メッセージバッファ３との間で、直接データを移動することによって実現可能である。従って、識別子（ＩＤ）の早出しや保護を図るための追加のバッファ等は不要となる。
【００２３】
また、ＣＡＮプロトコル層（ＣＡＮ送受信回路）４のデータシフトレジスタ４２の内容は、次の送信あるいは受信メッセージの識別子（ＩＤ）が確定するまでの間保持されているため、受信メッセージのデータ部の格納は、送信メッセージの識別子（ＩＤ）のロードが完了するまで遅らせても影響はなく、受信メッセージのデータ保護という観点でも追加のバッファ等は不要となる。
【００２４】
更に、メッセージバッファ３にある送信メッセージのロードも、次の送信あるいは受信メッセージの識別子（ＩＤ）が確定するまでに行えば良いため、時間的に余裕はあり、送信メッセージの早出しという観点でも追加のバッファ等は不要となる。
【００２５】
以上のとおり、前記シフトレジスタ群にストアされた受信メッセージのデータ部の格納処理より、前記シフトレジスタ群への送信メッセージの識別子（ＩＤ）のロード処理を優先して実行することにより、シングルポートＲＡＭで構成されメッセージバッファを用いる場合の送信要求タイミングを前倒しすることが可能となる。また、上記方式実施のためにバッファやレジスタを追加する必要はなく、サイズ（回路面積）やコスト面での影響は軽微である。
【００２６】
以上、本発明の実施の形態を説明したが、その原理からも明らかなとおり、本発明の技術的範囲は、上述した実施の形態に限定されるものではなく、受信格納と送信準備を同時に行う際に、受信メッセージの識別子（ＩＤ）の格納を行った後、受信メッセージのデータ部でなく、送信メッセージの識別子（ＩＤ）のロード処理を優先して実行するという本発明の要旨を逸脱しない範囲で、各種の変形・置換をなしうることが可能であることはいうまでもない。
【図面の簡単な説明】
【００２７】
【図１】本発明の一実施の形態に係るＣＡＮデバイスの概略構成を表した図である。
【図２】本発明の一実施の形態に係るメッセージバッファの詳細構成を表した図である。
【図３】本発明の一実施の形態における受信格納と送信準備の手順を表した図である。
【図４】本発明の一実施の形態において送信要求が行われる詳細タイミングを説明するための図である。
【図５】ＣＡＮ（Ｃｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）の概略構成を表した図である。
【図６】従来の受信格納と送信準備の手順を表した図である。
【図７】図６の手順による送信要求のタイミングを説明するための図である。
【図８】図６の手順による送信要求のタイミングを説明するため別のの図である。
【図９】受信格納と送信準備を中間バッファを用いて行う構成例を表した図である。
【図１０】図１０の構成による送信要求のタイミングを説明するための図である。
【符号の説明】
【００２８】
１  ＣＡＮバス
２  メッセージハンドリング部
３  メッセージバッファ
４  ＣＡＮプロトコル層（ＣＡＮ送受信回路）
５  マスクセット
１１、１ｎ、１６、１９  ＣＡＮモジュール（ＣＡＮ  コントローラ）
２０  アドレス生成部
２１  中間バッファ
４０  ＣＰＵ  Ｉ／Ｆ
４１  ＩＤシフトレジスタ
４２  データシフトレジスタ
５１  ＣＰＵ
５２  ＲＡＭ
５３  周辺回路
６０  ＣＡＮトランシーバ
１００  ＣＡＮデバイス
【図１】
0004708901.tif 000002
【図２】
0004708901.tif 000003
【図３】
0004708901.tif 000004
【図４】
0004708901.tif 000005
【図５】
0004708901.tif 000006
【図６】
0004708901.tif 000007
【図７】
0004708901.tif 000008
【図８】
0004708901.tif 000009
【図９】
0004708901.tif 000010
【図１０】
0004708901.tif 000011