JP5983507B2 - 通信システム、及び通信ノード並びに通信方法 - Google Patents

通信システム、及び通信ノード並びに通信方法 Download PDF

Info

Publication number
JP5983507B2
JP5983507B2 JP2013078786A JP2013078786A JP5983507B2 JP 5983507 B2 JP5983507 B2 JP 5983507B2 JP 2013078786 A JP2013078786 A JP 2013078786A JP 2013078786 A JP2013078786 A JP 2013078786A JP 5983507 B2 JP5983507 B2 JP 5983507B2
Authority
JP
Japan
Prior art keywords
data frame
message
communication node
data
bits
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2013078786A
Other languages
English (en)
Other versions
JP2014204287A (ja
Inventor
智宏 永田
智宏 永田
畑中 俊彦
俊彦 畑中
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toyota Motor Corp
Original Assignee
Toyota Motor Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toyota Motor Corp filed Critical Toyota Motor Corp
Priority to JP2013078786A priority Critical patent/JP5983507B2/ja
Publication of JP2014204287A publication Critical patent/JP2014204287A/ja
Application granted granted Critical
Publication of JP5983507B2 publication Critical patent/JP5983507B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Small-Scale Networks (AREA)
  • Communication Control (AREA)

Description

本発明は、通信システムに関する。
車両には、該車両内の様々な制御を行うために車載ネットワークが構成されることが多い。車載ネットワークは、LANに、多くの電子制御ユニット(ECU: Electronic Control Unit)、センサ、アクチュエータ等が接続されることにより実現される。以下、車載ネットワークに接続される、電子制御ユニット、センサ、アクチュエータなどを通信ノードと呼ぶ。該通信ノードは、車両内の様々な位置に設置される。通信ノード間は、通信線や電線により接続される。
例えば、データバスに、複数の通信ノードが接続されることにより、車載ネットワークが構成される。該車載ネットワークは、CAN(Controller Area Network)、LIN(Local Interconnect Network)であることもある。また、該車載ネットワークには、FlexRay(登録商標)に従って通信を行うものがある。
CANでは、データフレームと呼ばれる転送フォーマットに従って、メッセージの送信を行う。CANでは、該データフレームに従って、メッセージの数やデータサイズが設定される。例えば、データフレームには、IDが付加(付帯)されるフィールドが存在し、そのIDが付加されるフィールドは11ビットである。従って、11ビットで表されるIDにより、最大2048種類のメッセージを識別できる。
CANに関して、CANメッセージバッファを少なくとも一つ備えるCANメッセージバッファ部と、CANメッセージバッファアクセス管理部とを具備するマイクロコンピュータが知られている。CANメッセージバッファは、CAN標準IDを記憶する第一の記憶領域と、CAN拡張IDを記憶する第二の記憶領域と、CAN送受信データを記憶する第三の記憶領域とを有する。CANメッセージバッファアクセス管理部は、CAN拡張IDとは異なる目的外データを受け取り、その目的外データを、CANメッセージバッファにおける第二の記憶領域に書き込む(例えば、特許文献1参照)。
特開2009-282612号公報
CANのデータフレームの転送フォーマットによれば、IDが付加されるフィールドは11ビットであり、最大2048種類のメッセージを識別することができる。しかし、数メッセージしか通信しない車載ネットワークが存在することもある。数メッセージしか通信しない車載ネットワークでは、11ビットのうちのほとんどのビットが未使用であることが想定される。IDが付加されるフィールドに未使用の部分があることは、データフレームの使用効率の観点からは好ましくない。
本発明は、データフレームの使用効率を向上させることを目的とする。
開示の一実施例の通信システムは、
第1の通信ノードと、該第1の通信ノードと通信を行う第2の通信ノードとを有する通信システムであって、
前記第1の通信ノードは、
前記第2の通信ノードへ送信するデータフレームのメッセージIDを下位から上位へ所定のビット数シフトさせ、該所定のビット数シフトさせた前記メッセージIDを前記データフレームのIDフィールドに付帯するとともに、該IDフィールドの下位から前記所定のビット数の部分に前記メッセージID以外のデータを付帯するデータフレーム作成部と、
該データフレーム作成部により作成したデータフレームを送信する送信部と
を有し、
前記第2の通信ノードは、
前記第1の通信ノードからのデータフレームを受信する受信部と、
前記受信部により受信したデータフレームのIDフィールドから前記メッセージID以外のデータを取得するとともに、前記所定のビット数シフトさせた前記メッセージIDを上位から下位へ前記所定のビット数シフトさせることにより前記メッセージIDを取得するデータフレーム取得部と
を有する。
開示の一実施例の通信システムは、
第1の通信ノードと、該第1の通信ノードと通信を行う第2の通信ノードとを有する通信システムであって、
前記第1の通信ノードは、
前記第2の通信ノードへ送信するデータフレームのメッセージIDを下位から上位へ所定のビット数シフトさせ、該所定のビット数シフトさせた前記メッセージIDを前記データフレームのIDフィールドに付帯するとともに、該IDフィールドの下位から前記所定のビット数の部分と、前記データフレームのDLCフィールドの一部に前記メッセージID以外のデータを付帯するデータフレーム作成部と、
該データフレーム作成部により作成したデータフレームを送信する送信部と
を有し、
前記第2の通信ノードは、
前記第1の通信ノードからのデータフレームを受信する受信部と、
前記受信部により受信したデータフレームのIDフィールドとDLCフィールドから前記メッセージID以外のデータを取得するとともに、前記所定のビット数シフトさせた前記メッセージIDを上位から下位へ前記所定のビット数シフトさせることにより前記メッセージIDを取得するデータフレーム取得部と
を有する。
開示の一実施例の通信ノードは、
複数の通信ノードを有する通信システムにおける1の通信ノードであって、
他の通信ノードへ送信するデータフレームのメッセージIDを下位から上位へ所定のビット数シフトさせ、該所定のビット数シフトさせた前記メッセージIDを前記データフレームのIDフィールドに付帯するとともに、該IDフィールドの下位から前記所定のビット数の部分に前記メッセージID以外のデータを付帯するデータフレーム作成部と、
該データフレーム作成部により作成したデータフレームを送信する送信部と
を有する。
開示の一実施例の通信ノードは、
複数の通信ノードを有する通信システムにおける1の通信ノードであって、
他の通信ノードへ送信するデータフレームのメッセージIDを下位から上位へ所定のビット数シフトさせ、該所定のビット数シフトさせた前記メッセージIDを前記データフレームのIDフィールドに付帯するとともに、該IDフィールドの下位から前記所定のビット数の部分と、前記データフレームのDLCフィールドの一部に前記メッセージID以外のデータを付帯するデータフレーム作成部と、
該データフレーム作成部により作成したデータフレームを送信する送信部と
を有する。
開示の一実施例の通信方法は、
第1の通信ノードと、該第1の通信ノードと通信を行う第2の通信ノードとを有する通信システムにおける通信方法であって、
前記第1の通信ノードは、
前記第2の通信ノードへ送信するデータフレームのメッセージIDを下位から上位へ所定のビット数シフトさせ、
該所定のビット数シフトさせた前記メッセージIDを前記データフレームのIDフィールドに付帯するとともに、該IDフィールドの下位から前記所定のビット数の部分に前記メッセージID以外のデータを付帯し、
該データフレームを送信し、
前記第2の通信ノードは、
前記第1の通信ノードからのデータフレームを受信し、
該データフレームのIDフィールドから前記メッセージID以外のデータを取得するとともに、前記所定のビット数シフトさせた前記メッセージIDを上位から下位へ前記所定のビット数シフトさせることにより前記メッセージIDを取得する。
開示の一実施例の通信方法は、
第1の通信ノードと、該第1の通信ノードと通信を行う第2の通信ノードとを有する通信システムにおける通信方法であって、
前記第1の通信ノードは、
前記第2の通信ノードへ送信するデータフレームのメッセージIDを下位から上位へ所定のビット数シフトさせ、
該所定のビット数シフトさせた前記メッセージIDを前記データフレームのIDフィールドに付帯するとともに、該IDフィールドの下位から前記所定のビット数の部分と、前記データフレームのDLCフィールドの一部に前記メッセージID以外のデータを付帯し、
該データフレームを送信し、
前記第2の通信ノードは、
前記第1の通信ノードからのデータフレームを受信し、
該データフレームのIDフィールドとDLCフィールドから前記メッセージID以外のデータを取得するとともに、前記所定のビット数シフトさせた前記メッセージIDを上位から下位へ前記所定のビット数シフトさせることにより前記メッセージIDを取得する。
開示の実施例によれば、データフレームの使用効率を向上させることができる。
通信システムの一実施例を示す図である。 データフレームの一例を示す図である。 IDフィールドに付加する補完データの一実施例を示す図である。 第1の通信ノードの一実施例を示す図である。 第1の通信ノードの一実施例を示す機能ブロック図である。 第1の通信ノードの動作の一実施例を示すフローチャートである。 第1の通信ノードの動作の一実施例を示すフローチャートである。 DLCフィールドに付加する情報の一例を示す図である。 IDフィールドとDLCフィールドに付加する情報の一実施例を示す図である。 第1の通信ノードの一実施例を示す機能ブロック図である。 第1の通信ノードの動作の一実施例を示すフローチャートである。 第1の通信ノードの動作の一実施例を示すフローチャートである。
次に、本発明を実施するための形態を、以下の実施例に基づき図面を参照しつつ説明する。以下で説明する実施例は一例に過ぎず、本発明が適用される実施の形態は、以下の実施例に限られない。
なお、実施例を説明するための全図において、同一機能を有するものは同一符号を用い、繰り返しの説明は省略する。
<第1の実施例>
<通信システム>
図1は、通信システムの一実施例を示す。
通信システムは、1又は複数の通信ノードを有する。図1に示される例では、通信システムは、第1の通信ノード100と、第2の通信ノード200とを有する。図1には、一例として2個の通信ノードが示されているが、2個に限られない。通信システムが、3個以上の通信ノードで構成されてもよい。
第1の通信ノード100、第2の通信ノード200は、通信バス50を介して有線接続される。
第1の通信ノード100、第2の通信ノード200などの通信ノードは、電子制御ユニット等により実現されてもよい。また、第1の通信ノード100、第2の通信ノード200などの通信ノードは、センサ、アクチュエータ等であってもよい。例えば、いずれかの通信ノードにエアコンの制御機能が搭載され、他の通信ノードに温度センサ等が搭載されてもよい。
また、第1の通信ノード100、第2の通信ノード200などの通信ノードに複数のシステムが内蔵されてもよい。例えば、通信ノードが、他の通信ノードとの間で通信を行うようにしてもよい。また、通信ノードが、システムの制御を実行してもよい。
第1の通信ノード100、第2の通信ノード200は、例えば車両等の移動体に搭載される。通信システムの一実施例は、車両に搭載される。通信システムの一実施例は、CAN(Controller Area Network)、LIN(Local Interconnect Network)などのLANが適用される。通信システムの一実施例が、情報系LAN、パワートレイン系LAN、ボディ系LANなどに適用されてもよい。通信システムの一実施例は、FlexRay(登録商標)に従って通信を行うようにしてもよい。以下では、一例として、CANが適用される場合について説明する。
通信システムの一実施例では、各通信ノードは、データフレームを送受信する。各通信ノードは、データフレームを送受信することによりメッセージをやり取りする。メッセージの数やデータサイズは、データフレームの転送フォーマットに従う。
通信システムの一実施例では、通信バス50が空いているときは、各通信ノードがメッセージの送信を開始することができる。通信バス50に対して最初に送信を開始した通信ノードが送信を継続する。同時に複数の通信ノードが送信を開始した場合には、優先順位の高いIDのメッセージを送信している通信ノードが送信を継続する。第1の通信ノード100が、第2の通信ノード200宛にメッセージを送信する場合について説明する。
第1の通信ノード100は、メッセージを作成し、送信する。第2の通信ノード200は、第1の通信ノード100からのメッセージを受信することにより、所定の処理を実行する。
図2は、メッセージを送信するデータフレームの一実施例を示す。このデータフレームは、通信ノードに格納されたアプリケーションなどのソフトウェアに従ってマイコンが動作することにより作成されるのが好ましい。このデータフレームは、標準フォーマットの形式に従ったものであるのが好ましい。
データフレームは、スタートオブフレーム(SOF: Start Of Frame)フィールドを有する。スタートオブフレームは、メッセージの開始を示す。スタートオブフレームは、ドミナント(論理「0」)状態で示されるのが好ましい。
データフレームは、IDフィールドを有する。IDは、メッセージを識別し、メッセージの優先順位を示す。
データフレームは、リモートトランスミッションリクエスト(RTR: Remote Transmission Request) フィールドを有する。リモートトランスミッションリクエストは、リモートフレームとデータフレームとを区別するのに使用される。リモートトランスミッションリクエストは、3ビットで表されるのが好ましい。リモートトランスミッションリクエストがドミナント(論理「0」)状態で示される場合にはデータフレームを示す。リモートトランスミッションリクエストがリセッシブ(論理「1」)状態で示される場合にはリモートフレームを示す。
データフレームは、データ長コード(DLC: Data Length Code) フィールドを有する。データ長コードは、データフィールドのバイト数を示す。データ長コードは、4ビットで表されるのが好ましい。
データフレームは、Dataフィールドを有する。Dataは、0〜64ビットのデータである。Dataフィールドに、メッセージが付与(付帯)されるのが好ましい。
データフレームは、CRCシーケンスを有する。CRCシーケンスは、巡回冗長検査を示す。CRCには、15ビットの巡回冗長検査コードとリセッシブデリミタビットである。CRCシーケンスは、エラー検出に使用される。
データフレームは、ACK(アクノレッジ)スロットを有する。ACK(アクノレッジ)スロットは、メッセージを正しく受信した場合に、メッセージの最後に送信する。送信側のノードはバス上でACKビットの有無をチェックし、ACKが検出されなかった場合は再度送信を試みるのが好ましい。
データフレームは、エンドオブフレーム(EOF: End of Frame) フィールドを有する。エンドオブフレームは、データフレームやリモートフレームの終了位置を示す。エンドオブフレームは、7ビットで構成され、ビットレベルは全て"リセッシブ"である。
通信システムの一実施例では、IDフィールドにメッセージIDと補完データが付与される。補完データは、データの誤りを検出するためのデータであるのが好ましい。また、補完データは、データの誤りを検出し訂正するためのデータであってもよい。通信システムの一実施例では、補完データとして、データの誤りを検出するためのデータ(以下、「誤り検出値」という)である場合について説明する。補完データは、1ビット以上であり且つIDフィールドのビット数からIDに使用されるビット数を減算したビット数以下であるのが好ましい。IDフィールドのビット数は、例えば11ビットである。
図3は、IDフィールドに付加する補完データの一実施例を示す。具体的には、通信システムで送受信されるメッセージ数の最大値と補完データに使用できる最大ビット数を示す。図3に示される例では、IDに使用される最小ビット数と補完データに使用できる最大ビット数との合計が11ビットである。
通信ネットワークで送受信されるメッセージ数の最大値が2個であり、且つIDに1ビットが使用される場合、補完データには10ビット使用できる。通信ネットワークで送受信されるメッセージ数の最大値が4個であり、且つIDに2ビットが使用される場合、補完データには9ビット使用できる。
通信ネットワークで送受信されるメッセージ数の最大値が8個であり、且つIDに3ビットが使用される場合、補完データには8ビット使用できる。通信ネットワークで送受信されるメッセージ数の最大値が16個であり、且つIDに4ビットが使用される場合、補完データには7ビット使用できる。
通信ネットワークで送受信されるメッセージ数の最大値が32個であり、且つIDに5ビットが使用される場合、補完データには6ビット使用できる。通信ネットワークで送受信されるメッセージ数の最大値が64個であり、且つIDに6ビットが使用される場合、補完データには5ビット使用できる。
通信ネットワークで送受信されるメッセージ数の最大値が128個であり、且つIDに7ビットが使用される場合、補完データには4ビット使用できる。通信ネットワークで送受信されるメッセージ数の最大値が256個であり、且つIDに8ビットが使用される場合、補完データには3ビット使用できる。
通信ネットワークで送受信されるメッセージ数の最大値が512個であり、且つIDに9ビットが使用される場合、補完データには2ビット使用できる。通信ネットワークで送受信されるメッセージ数の最大値が1024個であり、且つIDに10ビットが使用される場合、補完データには1ビット使用できる。
通信システムの一実施例では、図3に従って、メッセージ数の最大値に応じて、IDに使用するビット数と、補完データに使用するビット数とが設定されるのが好ましい。ただし、図3に示されるのは一例であり、適宜設定可能である。例えば、メッセージ数の最大値が2個であっても、IDに2ビットを使用するようにしてもよい。この場合、補完データには最大9ビット使用できる。
<第1の通信ノード100>
図4は、第1の通信ノード100の一実施例を示す。図4には、主に、第1の通信ノード100のハードウェア構成が示される。第2の通信ノード200のハードウェア構成も、第1の通信ノード100のハードウェア構成と略同一である。
第1の通信ノード100は、マイクロコントローラユニット(MCU: Micro-Control Unit)102と、トランシーバ106とを有する。
マイクロコントローラユニット102には、1又は複数のマイコンが含まれる。マイコンの代わりにCPUが含まれてもよいし、マイコンとCPUとが混在していてもよい。さらに、マイクロコントローラユニット102には、通信装置104が含まれる。通信装置104はトランシーバ106との間で、シリアル通信を行う。具体的には、該通信装置104は、UART(Universal Asynchronous Receiver Transmitter)であってもよい。
トランシーバ106は、マイクロコントローラユニット102、通信バス50と接続される。トランシーバ106は、マイクロコントローラユニット102から入力されたデータを通信バス50に送信し、通信バス50からのデータをマイクロコントローラユニット102に入力する。
第1の通信ノード100が複数のマイクロコントローラユニットを有するようにしてもよい。また、第1の通信ノード100が複数のトランシーバを有するようにしてもよい。
<第1の通信ノード100の機能>
図5は、第1の通信ノード100の機能の一実施例を示す。第2の通信ノード200の機能も、第1の通信ノード100の機能と略同一である。
図5の機能ブロック図により表される機能は、主に、マイクロコントローラユニット102により実行される。つまり、マイクロコントローラユニット102は、メッセージID設定部1022と、データ作成部1024と、DLC作成部1026と、誤り検出値演算部1028と、データフレーム作成部1030として機能する。また、マイクロコントローラユニット102は、データフレーム取得部1032と、メッセージID取得部1034と、誤り検出値取得部1036と、誤り検出部1038として機能する。
マイクロコントローラユニット102の内部に記憶されたアプリケーション(ファームウェア)に従ってマイクロコントローラユニット102により、メッセージID設定部1022と、データ作成部1024と、DLC作成部1026と、誤り検出値演算部1028と、データフレーム作成部1030としての機能が実行されるのが好ましい。また、記憶部(図示無し)に記憶されたアプリケーションに従ってマイクロコントローラユニット102により、メッセージID設定部1022と、データ作成部1024と、DLC作成部1026と、誤り検出値演算部1028と、データフレーム作成部1030としての機能が実行されてもよい。
また、マイクロコントローラユニット102の内部に記憶されたアプリケーション(ファームウェア)に従ってマイクロコントローラユニット102により、データフレーム取得部1032と、メッセージID取得部1034と、誤り検出値取得部1036、誤り検出部1038としての機能が実行されるのが好ましい。また、記憶部(図示無し)に記憶されたアプリケーションに従ってマイクロコントローラユニット102により、データフレーム取得部1032と、メッセージID取得部1034と、誤り検出値取得部1036、誤り検出部1038としての機能が実行されてもよい。
マイクロコントローラユニット102は、メッセージID設定部1022として機能する。メッセージID設定部1022は、第1の通信ノード100から送信するメッセージのメッセージIDを設定する。メッセージID設定部1022は、データフレーム作成部1030へ、メッセージIDを入力する。
マイクロコントローラユニット102は、データ作成部1024として機能する。データ作成部1024は、第1の通信ノード100から送信するメッセージデータを作成する。データ作成部1024は、DLC作成部1026、誤り検出値演算部1028及びデータフレーム作成部1030へ、メッセージデータを入力する。
第1の通信ノード100は、DLC作成部1026として機能する。DLC作成部1026は、データ作成部1024からの第1の通信ノード100から送信するメッセージデータに基づいて、該メッセージデータの長さを表すデータ長コード(DLC: Data Length Code)を作成する。メッセージデータの長さは、バイト数で表されるのが好ましい。DLC作成部1026は、データフレーム作成部1030へ、DLCを入力する。
マイクロコントローラユニット102は、誤り検出値演算部1028として機能する。誤り検出値演算部1028は、データ作成部1024と接続される。誤り検出値演算部1028は、データ作成部1024からのメッセージデータに基づいて誤り検出値を演算する。誤り検出値演算部1028は、データフレーム作成部1030へ誤り検出値を入力する。
第1の通信ノード100は、データフレーム作成部1030として機能する。データフレーム作成部1030は、メッセージID設定部1022、誤り検出値演算部1028、データ作成部1024、及びDLC作成部1026と接続される。データフレーム作成部1030は、メッセージID設定部1022により入力されるメッセージID、誤り検出値演算部1028により入力される誤り検出値、データ作成部1024により入力されるメッセージデータ、DLC作成部1026により入力されるDLCに基づいて、データフレームを作成する。具体的には、データフレーム作成部1030は、データフレームの転送フォーマットのIDフィールドにメッセージIDと誤り検出値を付加し、データフィールドにメッセージデータを付加し、DLCフィールドにDLCを付加する。データフレーム作成部1030は、通信装置104へ、データフレームを入力する。
例えば、データフレーム作成部1030は、送信レジスタAと、送信レジスタBと、送信レジスタCを有する。
データフレーム作成部1030は、メッセージID設定部1022により入力されるメッセージIDを左へビットシフトする。つまり、データフレーム作成部1030は、メッセージIDを下位から上位へ所定のビット数シフトさせる。この所定のビット数は、誤り検出値演算部1028により入力される誤り検出値のビット数と同じであるのが好ましい。データフレーム作成部1030は、左へビットシフトしたメッセージIDと誤り検出値演算部1028により入力される誤り検出値との論理和を演算し、送信レジスタAに格納する。送信レジスタAに格納された、左へビットシフトしたメッセージIDと誤り検出値との論理和は、データフレームのIDフィールドに付加される。
データフレーム作成部1030は、データ作成部1024により入力されるメッセージデータを送信レジスタBに格納する。送信レジスタBに格納されたメッセージデータは、データフレームのデータフィールドに付加される。
データフレーム作成部1030は、DLC作成部1026により入力されるDLCを送信レジスタCに格納する。データフレーム作成部1030は、各送信レジスタに格納されるデータに基づいてデータフレームを作成する。送信レジスタCに格納されたDLCは、データフレームのDLCフィールドに付加される。
マイクロコントローラユニット102は、データフレーム取得部1032として機能する。データフレーム取得部1032は、通信装置104と接続される。データフレーム取得部1032は、通信装置104からのデータフレームを取得する。該データフレームは、第2の通信ノード200から第1の通信ノード100へ送信されたものである。
例えば、データフレーム取得部1032は、受信レジスタAと、受信レジスタBと、受信レジスタCを有する。
データフレームのIDフィールドは受信レジスタAで取得される。つまり、左へビットシフトしたメッセージIDと誤り検出値との論理和は、データフレーム取得部1032の受信レジスタAで取得される。
データフレームのデータフィールドは受信レジスタBで取得される。つまり、メッセージデータは、データフレーム取得部1032の受信レジスタBで取得される。
データフレームのDLCフィールドは受信レジスタCで取得される。つまり、DLCは、データフレーム取得部1032の受信レジスタCで受信される。
データフレーム取得部1032は、メッセージID取得部1034、誤り検出値取得部1036へ、受信レジスタAで取得した左へビットシフトしたメッセージIDと誤り検出値との論理和を入力する。データフレーム取得部1032は、誤り検出部1038へ、受信レジスタBで取得したメッセージデータを入力する。
マイクロコントローラユニット102は、メッセージID取得部1034として機能する。メッセージID取得部1034は、データフレーム取得部1032からの左へビットシフトしたメッセージIDと誤り検出値との論理和から、メッセージIDを取得する。メッセージID取得部1034は、左へビットシフトしたメッセージIDと誤り検出値との論理和から誤り検出値を削除し、右へビットシフトさせることによりメッセージIDを取得する。
マイクロコントローラユニット102は、誤り検出値取得部1036として機能する。誤り検出値取得部1036は、データフレーム取得部1032からの左へビットシフトしたメッセージIDと誤り検出値との論理和から誤り検出値を取得する。誤り検出値取得部1036は、誤り検出部1038へ、誤り検出値を入力する。
マイクロコントローラユニット102は、誤り検出部1038として機能する。誤り検出部1038は、データフレーム取得部1032からのメッセージデータと、誤り検出値取得部1036からの誤り検出値に基づいて、誤り検出を行う。誤り検出部1038によりメッセージデータが誤っていると判定された場合、そのメッセージデータを破棄するようにしてもよいし、送信側へ再送を要求するようにしてもよい。
<第1の通信ノード100の動作>
<第1の通信ノード100の送信処理>
図6、図7は、第1の通信ノード100の動作の一実施例を示す。
図6、図7に示される例では、メッセージIDに使用されるビット数が4ビット、誤り検出値に使用されるビット数が7ビットに設定される場合について説明する。メッセージIDに使用されるビット数、誤り検出値に使用されるビット数については、適宜設定可能である。
図6は、第1の通信ノード100の送信処理を示す。図6には、主に、誤り検出値演算部1028と、データフレーム作成部1030の処理が示される。第2の通信ノード200の送信処理についても第1の通信ノード100の送信処理と略同一である。
ステップS602では、第1の通信ノード100は、メッセージIDを左へビットシフトさせる。例えば、第1の通信ノード100は、メッセージIDを誤り検出値に使用されるビット数左へシフトさせる。つまり、データフレーム作成部1030は、メッセージID設定部1022からのメッセージIDを左へ7ビットシフトさせる。具体的には、メッセージID設定部1022からデータフレーム作成部1030にメッセージID「0000000xxxx」が入力される。データフレーム作成部1030は、メッセージID設定部1022からのメッセージID「0000000xxxx」を左へ7ビットシフトさせる。
ステップS604では、第1の通信ノード100は、誤り検出値を演算する。誤り検出値演算部1028は、データ作成部1024からのメッセージデータに基づいて、誤り検出値を演算する。ここでは、誤り検出値演算部1028は、誤り検出値を演算することにより、誤り検出値「zzzzzzz」を得る場合について説明する。誤り検出値の演算には様々なものを適用できる。例えば、チェックサムにより誤り検出値が演算されてもよい。
ステップS606では、第1の通信ノード100は、ステップS602でメッセージIDを左へ7ビットビットシフトさせた「xxxx0000000」とステップS604で演算された誤り検出値「zzzzzzz」の論理和を演算する。データフレーム作成部1030は、「xxxx0000000」と「zzzzzzz」の論理和を演算することにより「xxxxzzzzzzz」を得る。
ステップS608では、第1の通信ノード100は、ステップS606における論理和の演算結果を送信レジスタAに格納する。データフレーム作成部1030は、送信レジスタAへ、論理和の演算結果を格納する。送信レジスタAへ格納された論理和の演算結果は、データフレームのIDフィールドに付加される。
ステップS610では、第1の通信ノード100は、メッセージデータを送信レジスタBに格納し、DLCを送信レジスタCに格納する。データフレーム作成部1030は、メッセージデータを送信レジスタBに格納し、DLCを送信レジスタCに格納する。送信レジスタBへ格納されたメッセージデータは、データフレームのデータフィールドに付加される。送信レジスタCへ格納されたDLCは、データフレームのDLCフィールドに付加される。
ステップS612では、第1の通信ノード100は、データフレームを送信する。データフレーム作成部1030は、通信装置104へデータフレームを入力する。通信装置104は、データフレーム作成部1030からのデータフレームをトランシーバ106へ入力する。トランシーバ106は、通信バス50へ、データフレームを送信する。
<第1の通信ノード100の受信処理>
図7は、第1の通信ノード100の受信処理を示す。図7には、主に、データフレーム取得部1032と、メッセージID取得部1034と、誤り検出値取得部1036と、誤り検出部1038の処理が示される。第2の通信ノード200の受信処理についても第1の通信ノード100の受信処理と略同一である。
ステップS702では、第1の通信ノード100は、データフレームを受信する。第2の通信ノード100からのデータフレームは、トランシーバ106により受信され、通信装置104を介して、マイクロコントローラユニット102に入力される。データフレームは、データフレーム取得部1032により取得される。IDフィールドは受信レジスタAで取得され、データフィールドは受信レジスタBで取得され、DLCフィールドは受信レジスタCで取得される。
ステップS704では、第1の通信ノード100は、メッセージIDを取得する。データフレーム取得部1032は、受信レジスタAで取得されたIDフィールドから左へビットシフトしたメッセージIDと誤り検出値との論理和を取得する。データフレーム取得部1032は、メッセージID取得部1034へ、左へビットシフトしたメッセージIDと誤り検出値との論理和を入力する。メッセージID取得部1034は、左へビットシフトしたメッセージIDと誤り検出値との論理和から誤り検出値を除去し、右へビットシフトさせることによりメッセージIDを取得する。具体的には、メッセージID取得部1034は、左へビットシフトしたメッセージIDと誤り検出値との論理和「xxxxzzzzzzz」から誤り検出値「zzzzzzz」を除去し「xxxx0000000」を得る。メッセージID取得部1034は、該「xxxx0000000」を右に7ビットシフトさせることによりメッセージID「0000000xxxx」を取得する。
ステップS706では、第1の通信ノード100は、誤り検出値を取得する。データフレーム取得部1032は、受信レジスタAで取得されたIDフィールドから左へビットシフトしたメッセージIDと誤り検出値との論理和を取得する。データフレーム取得部1032は、誤り検出値取得部1036へ、左へビットシフトしたメッセージIDと誤り検出値との論理和を入力する。誤り検出値取得部1036は、左へビットシフトしたメッセージIDと誤り検出値との論理和から誤り検出値を取得する。具体的には、誤り検出値取得部1036は、左へビットシフトしたメッセージIDと誤り検出値との論理和「xxxxzzzzzzz」から下位7桁を取得することにより誤り検出値「zzzzzzz」を取得する。
ステップS708では、第1の通信ノード100は、誤り検出値に基づいて、メッセージデータの誤り検出を行う。データフレーム取得部1032は、受信レジスタBで取得されたデータフィールドからメッセージデータを取得する。データフレーム取得部1032は、誤り検出部1038へ、メッセージデータを入力する。誤り検出値取得部1036は、誤り検出部1038へ、誤り検出値を入力する。誤り検出部1038は、データフレーム取得部1032からのメッセージデータと、誤り検出値取得部1036からの誤り検出値に基づいて、メッセージデータの誤り検出を行う。
通信システムの一実施例によれば、IDフィールドに割り当てられるビットの一部のビットにメッセージIDが使用される場合、メッセージIDに使用しないビットを他の用途に使用できる。メッセージIDに使用しないビットを他の用途に使用することにより、データフレームの使用効率を向上できる。例えば、CANのデータフレームの通常フォーマットにおいて、IDフィールドを有効活用できる。つまり、IDフィールドの11ビットのうち下位4ビットで全メッセージを識別できる場合には、上位7ビットは未活用領域であるため、該未活用領域を他の用途に使用できる。
メッセージデータの誤り検出にメッセージIDに使用しないビットを使用するのが好ましい。メッセージIDに使用しないビットをメッセージデータの誤り検出に使用することにより、通信能力を向上させることができる。
<第2の実施例>
<通信システム>
通信システムの一実施例は、図1を参照して説明した通信システムと略同一である。
メッセージを送信するデータフレームは、図2と略同一である。
通信システムの一実施例は、図2を参照して説明したデータフレームと比較して、DLCフィールドに割り当てられる4ビットのうち、1ビットがDLCに使用される。DLCフィールドに割り当てられる4ビットのうち、残りの3ビットは、補完データが付与される。
図8は、データフィールドのバイト数とDLCとの対応を示す。通信システムの一実施例では、DLCが1ビットで表される。この場合、データフィールドは8バイトに固定されるのが好ましい。データフィールドが8バイトで固定される場合には、DLCが「1000」で表される。DLCが「1000」で表される場合、2の3乗の位の「1」以外は「0」であっても「1」であっても、データフィールドのバイト数は8となることが明らかであるためである。また、「0」、「1」のそれぞれに対して異なるバイト数と対応付けてもよい。
通信システムの一実施例では、IDフィールドのメッセージIDが付加される部分以外の部分とDLCフィールドのDLCが付加される部分以外の3ビットに補完データが付加される。通信システムの一実施例では、補完データとして誤り検出値を付帯する場合について説明する。
IDフィールドに加え、DLCフィールドに、誤り検出値を付帯することにより、メッセージIDのビット数と誤り検出値のビット数との和がIDフィールドのビット数よりも多い場合でも、その多い分をDLCフィールドに付帯できる。このため、第1の実施例よりも、メッセージIDの数を増大できる。
図9は、IDフィールドとDLCフィールドに付加する補完データの一実施例を示す。具体的には、通信システムで送受信されるメッセージ数の最大値と補完データに使用できる最大ビット数を示す。図9に示される例では、第1の実施例と比較して、IDに使用される最小ビット数と補完データに使用できる最大ビット数との合計が11ビットから14ビットに増大する。
通信ネットワークで送受信されるメッセージ数の最大値が2個であり、且つIDに1ビットが使用される場合、補完データには13ビット使用できる。通信ネットワークで送受信されるメッセージ数の最大値が4個であり、且つIDに2ビットが使用される場合、補完データには12ビット使用できる。
通信ネットワークで送受信されるメッセージ数の最大値が8個であり、且つIDに3ビットが使用される場合、補完データには11ビット使用できる。通信ネットワークで送受信されるメッセージ数の最大値が16個であり、且つIDに4ビットが使用される場合、補完データには10ビット使用できる。
通信ネットワークで送受信されるメッセージ数の最大値が32個であり、且つIDに5ビットが使用される場合、補完データには9ビット使用できる。通信ネットワークで送受信されるメッセージ数の最大値が64個であり、且つIDに6ビットが使用される場合、補完データには8ビット使用できる。
通信ネットワークで送受信されるメッセージ数の最大値が128個であり、且つIDに7ビットが使用される場合、補完データには7ビット使用できる。通信ネットワークで送受信されるメッセージ数の最大値が256個であり、且つIDに8ビットが使用される場合、補完データには6ビット使用できる。
通信ネットワークで送受信されるメッセージ数の最大値が512個であり、且つIDに9ビットが使用される場合、補完データには5ビット使用できる。通信ネットワークで送受信されるメッセージ数の最大値が1024個であり、且つIDに10ビットが使用される場合、補完データには4ビット使用できる。
通信システムの一実施例では、図9に従って、メッセージ数の最大値に応じて、IDに使用するビット数と、補完データに使用するビット数とが設定されるのが好ましい。ただし、図9に示されるのは一例であり、適宜設定可能である。例えば、メッセージ数の最大値が2個であっても、IDに2ビットを使用するようにしてもよい。この場合、補完データには最大12ビット使用できる。
<第1の通信ノード100>
第1の通信ノード100のハードウェア構成の一実施例は、図4と略同一であるため、その説明を省略する。
<第1の通信ノード100の機能>
図10は、第1の通信ノード100の機能の一実施例を示す。第2の通信ノード200の機能も、第1の通信ノード100の機能と略同一である。
図10の機能ブロック図により表される機能は、主に、マイクロコントローラユニット102により実行される。つまり、マイクロコントローラユニット102は、メッセージID設定部1022と、データ作成部1024と、DLC作成部1026と、誤り検出値演算部1028と、データフレーム作成部1030として機能する。また、マイクロコントローラユニット102は、データフレーム取得部1032と、メッセージID取得部1034と、誤り検出値取得部1036と、誤り検出部1038として機能する。
マイクロコントローラユニット102の内部に記憶されたアプリケーション(ファームウェア)に従ってマイクロコントローラユニット102により、メッセージID設定部1022と、データ作成部1024と、DLC作成部1026と、誤り検出値演算部1028と、データフレーム作成部1030としての機能が実行されるのが好ましい。また、記憶部(図示無し)に記憶されたアプリケーションに従ってマイクロコントローラユニット102により、メッセージID設定部1022と、データ作成部1024と、DLC作成部1026と、誤り検出値演算部1028と、データフレーム作成部1030としての機能が実行されてもよい。
また、マイクロコントローラユニット102の内部に記憶されたアプリケーション(ファームウェア)に従ってマイクロコントローラユニット102により、データフレーム取得部1032と、メッセージID取得部1034と、誤り検出値取得部1036、誤り検出部1038としての機能が実行されるのが好ましい。また、記憶部(図示無し)に記憶されたアプリケーションに従ってマイクロコントローラユニット102により、データフレーム取得部1032と、メッセージID取得部1034と、誤り検出値取得部1036、誤り検出部1038としての機能が実行されてもよい。
マイクロコントローラユニット102は、メッセージID設定部1022として機能する。メッセージID設定部1022は、第1の通信ノード100から送信するメッセージのメッセージIDを設定する。メッセージID設定部1022は、データフレーム作成部1030へ、メッセージIDを入力する。
マイクロコントローラユニット102は、データ作成部1024として機能する。データ作成部1024は、第1の通信ノード100から送信するメッセージデータを作成する。データ作成部1024は、誤り検出値演算部1028及びデータフレーム作成部1030へ、メッセージデータを入力する。
第1の通信ノード100は、DLC作成部1026として機能する。DLC作成部1026は、第1の通信ノード100から送信するメッセージデータの長さを表すデータ長コードを作成する。DLC作成部1026は、メッセージデータの長さとして8ビットを表す「1000」を作成するのが好ましい。DLC作成部1026は、データフレーム作成部1030へ、DLCを入力する。
マイクロコントローラユニット102は、誤り検出値演算部1028として機能する。誤り検出値演算部1028は、データ作成部1024と接続される。誤り検出値演算部1028は、データ作成部1024からのメッセージデータに基づいて誤り検出値を演算する。誤り検出値演算部1028は、データフレーム作成部1030へ誤り検出値を入力する。
第1の通信ノード100は、データフレーム作成部1030として機能する。データフレーム作成部1030は、メッセージID設定部1022、誤り検出値演算部1028、データ作成部1024、及びDLC作成部1026と接続される。データフレーム作成部1030は、メッセージID設定部1022により入力されるメッセージID、誤り検出値演算部1028により入力される誤り検出値、データ作成部1024により入力されるメッセージデータ、DLC作成部1026により入力されるDLCに基づいて、データフレームを作成する。具体的には、データフレーム作成部1030は、データフレームの転送フォーマットのIDフィールドにメッセージIDと誤り検出値と付加し、データフィールドにメッセージデータを付加し、DLCフィールドにDLCと誤り検出値を付加する。データフレーム作成部1030は、通信装置104へ、データフレームを入力する。
例えば、データフレーム作成部1030は、送信レジスタAと、送信レジスタBと、送信レジスタCを有する。
データフレーム作成部1030は、メッセージID設定部1022により入力されるメッセージIDを左へビットシフトする。つまり、データフレーム作成部1030は、メッセージIDを下位から上位へ所定のビット数シフトさせる。データフレーム作成部1030は、左へビットシフトしたメッセージIDと誤り検出値演算部1028により入力される誤り検出値の上位から所定のビット数(以下、「第1の誤り検出値」という)との論理和を演算し、送信レジスタAに格納する。ここで、メッセージIDをシフトさせたビット数と、誤り検出値の上位から取得される所定のビット数は同じであるのが好ましい。送信レジスタAに格納された、左へビットシフトしたメッセージIDと第1の誤り検出値との論理和は、データフレームのIDフィールドに付加される。
データフレーム作成部1030は、データ作成部1024により入力されるメッセージデータを送信レジスタBに格納する。送信レジスタBに格納されたメッセージデータは、データフレームのデータフィールドに付加される。
データフレーム作成部1030は、DLC作成部1026により入力されるDLCを送信レジスタCに格納する。さらに、データフレーム作成部1030は、誤り検出値のうち、上位から所定のビット取得された残りのビット(以下、「第2の誤り検出値」という)を送信レジスタCに格納する。データフレーム作成部1030は、各送信レジスタに格納されるデータに基づいてデータフレームを作成する。送信レジスタCに格納されたDLCと、第2の誤り検出値は、データフレームのDLCフィールドに付加される。
マイクロコントローラユニット102は、データフレーム取得部1032として機能する。データフレーム取得部1032は、通信装置104と接続される。データフレーム取得部1032は、通信装置104からのデータフレームを取得する。該データフレームは、第2の通信ノード200から第1の通信ノード100へ送信されたものである。
例えば、データフレーム取得部1032は、受信レジスタAと、受信レジスタBと、受信レジスタCを有する。
データフレームのIDフィールドは受信レジスタAで取得される。つまり、左へビットシフトしたメッセージIDと第1の誤り検出値との論理和は、データフレーム取得部1032の受信レジスタAで取得される。
データフレームのデータフィールドは受信レジスタBで取得される。つまり、メッセージデータは、データフレーム取得部1032の受信レジスタBで取得される。
データフレームのDLCフィールドは受信レジスタCで取得される。つまり、DLCと第2の誤り検出値は、データフレーム取得部1032の受信レジスタCで受信される。
データフレーム取得部1032は、メッセージID取得部1034へ、受信レジスタAで取得した左へビットシフトしたメッセージIDと第1の誤り検出値との論理和を入力する。
データフレーム取得部1032は、誤り検出値取得部1036へ、受信レジスタAで取得した左へビットシフトしたメッセージIDと第1の誤り検出値との論理和を入力する。データフレーム取得部1032は、誤り検出値取得部1036へ、受信レジスタCで取得したDLCと、第2の誤り検出値を入力する。
データフレーム取得部1032は、誤り検出部1038へ、受信レジスタBで取得したデータフィールドを入力する。
マイクロコントローラユニット102は、メッセージID取得部1034として機能する。メッセージID取得部1034は、データフレーム取得部1032からの左へビットシフトしたメッセージIDと第1の誤り検出値との論理和から、メッセージIDを取得する。メッセージID取得部1034は、左へビットシフトしたメッセージIDと第1の誤り検出値との論理和から第1の誤り検出値を削除し、右へビットシフトさせることによりメッセージIDを取得する。
マイクロコントローラユニット102は、誤り検出値取得部1036として機能する。誤り検出値取得部1036は、データフレーム取得部1032からの左へビットシフトしたメッセージIDと第1の誤り検出値との論理和から第1の誤り検出値を取得する。誤り検出値取得部1036は、データフレーム取得部1032からのDLCと第2の誤り検出値との論理和から第2の誤り検出値を取得する。誤り検出値取得部1036は、第1の誤り検出値と第2の誤り検出値から誤り検出値を取得する。誤り検出値取得部1036は、誤り検出部1038へ、誤り検出値を入力する。
マイクロコントローラユニット102は、誤り検出部1038として機能する。誤り検出部1038は、データフレーム取得部1032からのメッセージデータと、誤り検出値取得部1036からの誤り検出値に基づいて、誤り検出を行う。誤り検出部1038によりメッセージデータが誤っていると判定された場合、そのメッセージデータを破棄するようにしてもよいし、送信側へ再送を要求するようにしてもよい。
<第1の通信ノード100の動作>
<第1の通信ノード100の送信処理>
図11、図12は、第1の通信ノード100の動作の一実施例を示す。
図11、図12に示される例では、メッセージIDに使用されるビット数が5ビット、誤り検出値に使用されるビット数が7ビットに設定される場合について説明する。メッセージIDに使用されるビット数、誤り検出値に使用されるビット数については、適宜設定可能である。
図11は、第1の通信ノード100の送信処理を示す。図11には、主に、誤り検出値演算部1028と、データフレーム作成部1030の処理が示される。第2の通信ノード200の送信処理についても第1の通信ノード100の送信処理と略同一である。
ステップS1102では、第1の通信ノード100は、メッセージIDを左へビットシフトさせる。例えば、第1の通信ノード100は、IDフィールドのビット数からメッセージIDに使用されるビット数を減算したビット数左へシフトさせる。つまり、データフレーム作成部1030は、メッセージID設定部1022からのメッセージIDを左側へ6ビットシフトさせる。メッセージID設定部1022は、データフレーム作成部1030にメッセージID「000000xxxxx」を入力する。データフレーム作成部1030は、メッセージID設定部1022からのメッセージID「000000xxxxx」を左側に6ビットシフトさせる。
ステップS1104では、第1の通信ノード100は、誤り検出値を演算する。誤り検出値演算部1028は、データ作成部1024からのデータに基づいて、誤り検出値を演算する。ここでは、誤り検出値演算部1028は、誤り検出値を演算することにより、誤り検出値「zzzzzzz」を得る。誤り検出値の演算には様々なものを適用できる。例えば、誤り検出値として、チェックサムが適用されてもよい。
ステップS1106では、第1の通信ノード100は、ステップS1104により演算された誤り検出値からステップS1102によりビットシフトしたビット数と同数のビットを一方のビット、例えば上位ビットから取得する。データフレーム作成部1030は、誤り検出値「zzzzzzz」の上位ビットから6ビットを取得する。
ステップS1108では、第1の通信ノード100は、ステップS1102でメッセージIDを左側へ6ビットビットシフトさせた「xxxxx000000」とステップS1106で取得された誤り検出値「zzzzzz」の論理和を演算する。データフレーム作成部1030は、「xxxxx000000」と「zzzzzz」の論理和を演算することにより「xxxxxzzzzzz」を得る。
ステップS1110では、第1の通信ノード100は、ステップS1108における論理和の演算結果を送信レジスタAに格納する。データフレーム作成部1030は、送信レジスタAへ、論理和の演算結果を格納する。
ステップS1112では、第1の通信ノード100は、メッセージデータを送信レジスタBに格納する。
ステップS1114では、第1の通信ノード100は、DLCと、誤り検出値のうちステップS1106により取得された誤り検出値の残りのビットを送信レジスタCに格納する。データフレーム作成部1030は、DLC「1」と、誤り検出値のうちステップS1106により取得された誤り検出値の残りのビット「z」を送信レジスタCに格納する。
ステップS1116では、第1の通信ノード100は、データフレームを送信する。データフレーム作成部1030は、データフレームを送信する。
<第1の通信ノード100の受信処理>
図12は、第1の通信ノード100の受信処理を示す。図12には、主に、データフレーム取得部1032と、メッセージID取得部1034と、誤り検出値取得部1036と、誤り検出部1038の処理が示される。第2の通信ノード200の受信処理についても第1の通信ノード100の受信処理と略同一である。
ステップS1202では、第1の通信ノード100は、データフレームを受信する。第2の通信ノード100からのデータフレームは、トランシーバ106により受信され、通信装置104を介して、マイクロコントローラユニット102に入力される。データフレームは、データフレーム取得部1032により取得される。IDフィールドは受信レジスタAで取得され、データフィールドは受信レジスタBで取得され、DLCフィールドは受信レジスタCで取得される。
ステップS1204では、第1の通信ノード100は、メッセージIDを取得する。データフレーム取得部1032は、受信レジスタAで取得されたIDフィールドから左へビットシフトしたメッセージIDと第1の誤り検出値との論理和を取得する。データフレーム取得部1032は、メッセージID取得部1034へ、左へビットシフトしたメッセージIDと第1の誤り検出値との論理和を入力する。メッセージID取得部1032は、左へビットシフトしたメッセージIDと第1の誤り検出値との論理和から第1の誤り検出値を除去し、右へビットシフトさせることによりメッセージIDを取得する。具体的には、メッセージID取得部1032は、左へビットシフトしたメッセージIDと第1の誤り検出値との論理和「xxxxxzzzzzz」から第1の誤り検出値「zzzzzz」を除去し「xxxxx000000」を得る。メッセージID取得部1032は、該「xxxxx000000」を右に6ビットシフトさせることによりメッセージID「000000xxxxx」を取得する。
ステップS1206では、第1の通信ノード100は、第1の誤り検出値を取得する。データフレーム取得部1032は、受信レジスタAで取得されたIDフィールドから左へビットシフトしたメッセージIDと第1の誤り検出値との論理和を取得する。データフレーム取得部1032は、誤り検出値取得部1036へ、左へビットシフトしたメッセージIDと第1の誤り検出値との論理和を入力する。誤り検出値取得部1036は、左へビットシフトしたメッセージIDと第1の誤り検出値との論理和から第1の誤り検出値を取得する。具体的には、誤り検出値取得部1036は、左へビットシフトしたメッセージIDと第1の誤り検出値との論理和「xxxxxzzzzzz」から下位6桁を取得することにより第1の誤り検出値「zzzzzz」を取得する。
ステップS1208では、第1の通信ノード100は、第2の誤り検出値を取得する。データフレーム取得部1032は、受信レジスタCで取得されたDLCフィールドからDLCと第2の誤り検出値とを取得する。データフレーム取得部1032は、誤り検出値取得部1036へ、DLCと第2の誤り検出値とを入力する。誤り検出値取得部1036は、DLCと第2の誤り検出値とから第2の誤り検出値を取得する。具体的には、誤り検出値取得部1036は、DLCと第2の誤り検出値との論理和「100z」から下位1桁を取得することにより第2の誤り検出値「z」を取得する。
ステップS1210では、第1の通信ノード100は、誤り検出値を求める。誤り検出値取得部1036は、第1の誤り検出値「zzzzzz」と第2の誤り検出値「z」に基づいて、誤り検出値を求める。誤り検出値取得部1036は、第1の誤り検出値と第2の誤り検出値とを並べることにより誤り検出値を取得するのが好ましい。
ステップS1212では、第1の通信ノード100は、誤り検出値に基づいて、メッセージデータの誤り検出を行う。データフレーム取得部1032は、受信レジスタBで取得されたデータフィールドからメッセージデータを取得する。データフレーム取得部1032は、誤り検出部1038へ、メッセージデータを入力する。誤り検出値取得部1036は、誤り検出部1038へ、誤り検出値を入力する。誤り検出部1038は、データフレーム取得部1032からのメッセージデータと、誤り検出値取得部1036からの誤り検出値に基づいて、メッセージデータの誤り検出を行う。
通信システムの一実施例によれば、IDフィールドに割り当てられるビットの一部のビットにメッセージIDが使用され、且つDLCフィールドの一部でDLCを表す場合、メッセージIDに使用しないビットとDLCに使用しないビットを他の用途に使用できる。メッセージIDに使用しないビットとDLCに使用しないビットを他の用途に使用することにより、データフレームの使用効率を向上できる。例えば、CANのデータフレームの通常フォーマットにおいて、IDフィールドとDLCフィールドを有効活用できる。つまり、IDフィールドの11ビットのうち下位4ビットで全メッセージを識別できる場合には、上位7ビットは未活用領域である。また、データフィールドのデータ長が8ビットである場合には、DLCフィールドの4ビットのうち1ビットで識別できるため、3ビットは未活用領域である。このため、該未活用領域を他の用途に使用できる。
メッセージデータの誤り検出にメッセージIDに使用しないビットとDLCに使用しないビットを使用するのが好ましい。メッセージIDに使用しないビットとDLCに使用しないビットをメッセージデータの誤り検出に使用することにより、通信能力を向上させることができる。
以上、本発明は特定の実施例及び変形例を参照しながら説明されてきたが、各実施例及び変形例は単なる例示に過ぎず、当業者は様々な変形例、修正例、代替例、置換例等を理解するであろう。説明の便宜上、本発明の実施例に従った装置は機能的なブロック図を用いて説明されたが、そのような装置はハードウェアで、ソフトウェアで又はそれらの組み合わせで実現されてもよい。本発明は上記実施例に限定されず、本発明の精神から逸脱することなく、様々な変形例、修正例、代替例、置換例等が包含される。
50 通信バス
100 第1の通信ノード
102 マイクロコントローラユニット
104 通信装置
106 トランシーバ
200 第2の通信ノード
1022 メッセージID設定部
1024 データ作成部
1026 DLC作成部
1028 誤り検出値演算部
1030 データフレーム作成部
1032 データフレーム取得部
1034 メッセージID取得部
1036 誤り検出値取得部
1038 誤り検出部

Claims (10)

  1. 第1の通信ノードと、該第1の通信ノードと通信を行う第2の通信ノードとを有する通信システムであって、
    前記第1の通信ノードは、
    前記第2の通信ノードへ送信するデータフレームのメッセージIDを下位から上位へ所定のビット数シフトさせ、該所定のビット数シフトさせた前記メッセージIDを前記データフレームのIDフィールドに付帯するとともに、該IDフィールドの下位から前記所定のビット数の部分に前記メッセージID以外のデータを付帯するデータフレーム作成部と、
    該データフレーム作成部により作成したデータフレームを送信する送信部と
    を有し、
    前記第2の通信ノードは、
    前記第1の通信ノードからのデータフレームを受信する受信部と、
    前記受信部により受信したデータフレームのIDフィールドから前記メッセージID以外のデータを取得するとともに、前記所定のビット数シフトさせた前記メッセージIDを上位から下位へ前記所定のビット数シフトさせることにより前記メッセージIDを取得するデータフレーム取得部と
    を有する、通信システム。
  2. 前記第1の通信ノードは、
    前記データフレームのデータフィールドに付帯されるデータに基づいて誤り検出値を演算する誤り検出値演算部
    を有し、
    前記データフレーム作成部は、前記IDフィールドの下位から前記所定のビット数の部分に前記誤り検出値を付帯する、請求項1に記載の通信システム。
  3. 前記データフレーム取得部は、前記受信部により受信したデータフレームのIDフィールドから前記誤り検出値を取得し、
    第2の通信ノードは、
    前記データフレーム取得部により取得した誤り検出値に基づいて、前記データフレームのデータフィールドに付帯されるデータの誤り検出を行う誤り検出部
    を有する、請求項2に記載の通信システム。
  4. 第1の通信ノードと、該第1の通信ノードと通信を行う第2の通信ノードとを有する通信システムであって、
    前記第1の通信ノードは、
    前記第2の通信ノードへ送信するデータフレームのメッセージIDを下位から上位へ所定のビット数シフトさせ、該所定のビット数シフトさせた前記メッセージIDを前記データフレームのIDフィールドに付帯するとともに、該IDフィールドの下位から前記所定のビット数の部分と、前記データフレームのDLCフィールドの一部に前記メッセージID以外のデータを付帯するデータフレーム作成部と、
    該データフレーム作成部により作成したデータフレームを送信する送信部と
    を有し、
    前記第2の通信ノードは、
    前記第1の通信ノードからのデータフレームを受信する受信部と、
    前記受信部により受信したデータフレームのIDフィールドとDLCフィールドから前記メッセージID以外のデータを取得するとともに、前記所定のビット数シフトさせた前記メッセージIDを上位から下位へ前記所定のビット数シフトさせることにより前記メッセージIDを取得するデータフレーム取得部と
    を有する、通信システム。
  5. 前記第1の通信ノードは、
    前記データフレームのデータフィールドに付帯されるデータに基づいて誤り検出値を演算する誤り検出値演算部
    を有し、
    前記データフレーム作成部は、前記IDフィールドの下位から前記所定のビット数の部分と前記DLCフィールドの一部に前記誤り検出値を付帯する、請求項4に記載の通信システム。
  6. 前記データフレーム取得部は、前記受信部により受信したデータフレームのIDフィールドとDLCフィールドから前記誤り検出値を取得し、
    第2の通信ノードは、
    前記データフレーム取得部により取得した誤り検出値に基づいて、前記データフレームのデータフィールドに付帯されるデータの誤り検出を行う誤り検出部
    を有する、請求項5に記載の通信システム。
  7. 複数の通信ノードを有する通信システムにおける1の通信ノードであって、
    他の通信ノードへ送信するデータフレームのメッセージIDを下位から上位へ所定のビット数シフトさせ、該所定のビット数シフトさせた前記メッセージIDを前記データフレームのIDフィールドに付帯するとともに、該IDフィールドの下位から前記所定のビット数の部分に前記メッセージID以外のデータを付帯するデータフレーム作成部と、
    該データフレーム作成部により作成したデータフレームを送信する送信部と
    を有する、通信ノード。
  8. 複数の通信ノードを有する通信システムにおける1の通信ノードであって、
    他の通信ノードへ送信するデータフレームのメッセージIDを下位から上位へ所定のビット数シフトさせ、該所定のビット数シフトさせた前記メッセージIDを前記データフレームのIDフィールドに付帯するとともに、該IDフィールドの下位から前記所定のビット数の部分と、前記データフレームのDLCフィールドの一部に前記メッセージID以外のデータを付帯するデータフレーム作成部と、
    該データフレーム作成部により作成したデータフレームを送信する送信部と
    を有する、通信ノード。
  9. 第1の通信ノードと、該第1の通信ノードと通信を行う第2の通信ノードとを有する通信システムにおける通信方法であって、
    前記第1の通信ノードは、
    前記第2の通信ノードへ送信するデータフレームのメッセージIDを下位から上位へ所定のビット数シフトさせ、
    該所定のビット数シフトさせた前記メッセージIDを前記データフレームのIDフィールドに付帯するとともに、該IDフィールドの下位から前記所定のビット数の部分に前記メッセージID以外のデータを付帯し、
    該データフレームを送信し、
    前記第2の通信ノードは、
    前記第1の通信ノードからのデータフレームを受信し、
    該データフレームのIDフィールドから前記メッセージID以外のデータを取得するとともに、前記所定のビット数シフトさせた前記メッセージIDを上位から下位へ前記所定のビット数シフトさせることにより前記メッセージIDを取得する、通信方法。
  10. 第1の通信ノードと、該第1の通信ノードと通信を行う第2の通信ノードとを有する通信システムにおける通信方法であって、
    前記第1の通信ノードは、
    前記第2の通信ノードへ送信するデータフレームのメッセージIDを下位から上位へ所定のビット数シフトさせ、
    該所定のビット数シフトさせた前記メッセージIDを前記データフレームのIDフィールドに付帯するとともに、該IDフィールドの下位から前記所定のビット数の部分と、前記データフレームのDLCフィールドの一部に前記メッセージID以外のデータを付帯し、
    該データフレームを送信し、
    前記第2の通信ノードは、
    前記第1の通信ノードからのデータフレームを受信し、
    該データフレームのIDフィールドとDLCフィールドから前記メッセージID以外のデータを取得するとともに、前記所定のビット数シフトさせた前記メッセージIDを上位から下位へ前記所定のビット数シフトさせることにより前記メッセージIDを取得する、通信方法。
JP2013078786A 2013-04-04 2013-04-04 通信システム、及び通信ノード並びに通信方法 Active JP5983507B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013078786A JP5983507B2 (ja) 2013-04-04 2013-04-04 通信システム、及び通信ノード並びに通信方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013078786A JP5983507B2 (ja) 2013-04-04 2013-04-04 通信システム、及び通信ノード並びに通信方法

Publications (2)

Publication Number Publication Date
JP2014204287A JP2014204287A (ja) 2014-10-27
JP5983507B2 true JP5983507B2 (ja) 2016-08-31

Family

ID=52354371

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013078786A Active JP5983507B2 (ja) 2013-04-04 2013-04-04 通信システム、及び通信ノード並びに通信方法

Country Status (1)

Country Link
JP (1) JP5983507B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102015213522A1 (de) * 2015-07-17 2017-01-19 Robert Bosch Gmbh Bussystem, Teilnehmerstation dafür und Verfahren zur Konfiguration eines statischen Bussystems für eine dynamische Kommunikation
JP2017118317A (ja) * 2015-12-24 2017-06-29 株式会社デンソー 通信装置
JP6984201B2 (ja) * 2016-09-09 2021-12-17 株式会社デンソー 電子制御装置
DE102020200819A1 (de) 2020-01-23 2021-07-29 Zf Friedrichshafen Ag Erweiterung eines Busprotokolls mit Übergabe eines Nutzdatums im Header

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4129205A1 (de) * 1991-03-28 1992-10-01 Bosch Gmbh Robert Verfahren zum aufbau von botschaften fuer den datenaustausch und/oder fuer die synchronisation von prozessen in datenverarbeitungsanlagen
JP3661946B2 (ja) * 2002-09-04 2005-06-22 三菱電機株式会社 コントローラエリアネットワーク通信装置
JP4708901B2 (ja) * 2005-07-29 2011-06-22 ルネサスエレクトロニクス株式会社 データ処理モジュール及びそのメッセージの送信準備方法

Also Published As

Publication number Publication date
JP2014204287A (ja) 2014-10-27

Similar Documents

Publication Publication Date Title
US10693905B2 (en) Invalidity detection electronic control unit, in-vehicle network system, and communication method
US8509257B2 (en) CAN node, and communication method of communication system including CAN node
CN103782283B (zh) 用于具有灵活的消息大小和可变的位长的数据传输的方法和装置
KR101519793B1 (ko) 차량용 네트워크 시스템 및 이 시스템 내 이종 통신 제어기의 데이터 전송 방법
EP3169021B1 (en) Vehicle-mounted network system, electronic control unit, reception method, and transmission method
CN104995873B (zh) 使用协议异常状态的数据传输
KR101932787B1 (ko) 직렬 버스 시스템에서 데이터 전송 용량을 증대하기 위한 방법 및 장치
RU2597501C2 (ru) Способ и устройство для последовательной передачи данных с гибким размером сообщений и переменной длительностью бита
KR101876602B1 (ko) 직렬 버스 시스템에서 데이터 전송 보안의 조정 방법 및 장치
JP5983507B2 (ja) 通信システム、及び通信ノード並びに通信方法
KR20150059740A (ko) 신축적 데이터-레이트를 갖는 can
JP7200374B2 (ja) シリアルバスシステムの加入者局用のエラーフレーム遮蔽ユニット、およびシリアルバスシステムでの通信方法
JP6121563B2 (ja) プロトコル例外状態を用いたデータ伝送プロトコル
EP2959604A1 (en) Power line communications using frame control data blocks for data transport
WO2012169456A1 (ja) 車両制御装置、車両制御システム
CN113841362A (zh) 用于串行总线系统的用户站和用于在串行总线系统中进行通信的方法
KR20210102408A (ko) 직렬 버스 시스템용 가입자국 및 직렬 버스 시스템에서의 통신 방법
CN113452475B (zh) 数据传输方法、装置及相关设备
KR101334017B1 (ko) 차량 네트워크의 메시지 무결성 체크 시스템 및 방법
JP7005201B2 (ja) 通信メッセージ変換装置
US11831466B2 (en) User station for a serial bus system, and method for transmitting a message in a serial bus system
JP5958335B2 (ja) 通信ノード、及び通信システム
JP2014187544A (ja) 通信システム、及び通信ノード並びに通信方法
WO2018193690A1 (ja) 車載通信システム、車載装置、通信制御方法および通信制御プログラム
CN108141357B (zh) 用于在网络中生成秘密的电路装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150605

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160615

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160705

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160718

R151 Written notification of patent or utility model registration

Ref document number: 5983507

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151