技術情報
産業用コンピューター
Kvaser - J1939規格概要
SAE J1939規格
仕様書の詳細は SAE(SAE英語サイト)から購入できます。
J1939は、以下のサブスタンダードで構成されています:
- J1939 - シリアル車両コントロールおよび車両通信ネットワークのための推奨事項
- J1939/11 - 物理層 - 250kビット/秒、シールド付きツイストペア
- J1939/13 - Off-Board診断コネクタ
- J1939/21 - データリンク層
- J1939/31 - ネットワーク層
- J1939/71 - ビークルアプリケーション層
- J1939/73 - アプリケーション層 - 診断
- J1939/81 - ネットワークマネージメント
J1939/11 物理層
バスの物理的プロパティ:
- シールド付きツイストペアワイヤ
- 最大40m
- 250kbit/s
- 最大30ノード(ECU)
- ISO11898に準拠
J1939/13 Off-Board診断コネクタ
このドキュメントは、診断目的のための標準コネクタを定義しています。記載されているコネクタは、Deutsch HD10-9-1939、9ピンの丸型コネクタです。
- J1939 Off-Board診断コネクタ
J1939/21データリンク層
このドキュメントは、CANフレーム(29ビット識別子、PGNなど)とトランスポートプロトコル機能の使用を定義し、J1939 busネットワーク上で8バイトより長いメッセージをどのように伝送するかを定義しています。
J1939メッセージは、識別子と8つのデータバイトで構成されるPDU(Protocol Data Unit)にまとめられます。1バイトより大きい数値データは、最下位バイト(LSB)から順に送信されます。J1939では、CAN 2.0Bの拡張識別子(29ビット)を使用しています。CANの識別子は、プライオリティ(3ビット)、予約(1ビット)、データページ(1ビット)、PDUフォーマット(1バイト)、PDU固有(1バイト)、ソースアドレス(1バイト)で構成されています。
PDUには2種類のフォーマットがあります。PDU1フォーマットは、特定の宛先アドレスを指定してメッセージを送信する場合に使用します。PDU2フォーマットは、ブロードキャストでのみ送信できます。識別子の中のPDUフォーマットバイトがメッセージフォーマットを決定します。PDUフォーマットバイトが240(0xF0)未満の場合、フォーマットはPDU1であり、239より大きい場合はPDU2フォーマットとなります。
また、このJ1939ドキュメントでは、コマンド、リクエスト、ブロードキャスト/レスポンス、Acknowledgment、グループファンクションの5種類のメッセージタイプについて説明しています。
トランスポートプロトコルは、8バイトよりも長いメッセージを送信するための機能を提供しますが、これらのメッセージは1つのCANフレームに収まりません。J1939において、これらのメッセージは、各パケットに順序、順番番号が付けられた7バイトのパケットに分割されます。セグメント化されたメッセージの通信を処理するために特別なConnection Management (CM)メッセージがあります。これらのメッセージの例としては、RTS(Request to Send)、CTS(Clear to Send)、BAM(Broadcast Announce Message)があります。セグメント化されたメッセージは、特定のデバイスに送信することもブロードキャストとして送信することもできます。CMメッセージは、送信者と受信者の間の仮想的なコネクションとハンドシェイク手順を提供します。送信者は、セグメント化されたメッセージの送信を要求し、受信者はその時点で受信可能なセグメント数を応答します。セグメント化されたメッセージは、送信者と受信者の間でハンドシェイクを行わずにブロードキャストとしても送信できます。
J1939/31ネットワーク層
このドキュメントは、J1939ネットワークの異なるセグメント間の相互通信に必要なサービスと機能について説明しています。セグメントは、同じ信号を"seeing"するECUによって区切られるサブネットワークにすることができます。J1939/31では、セグメント間のネットワーク相互接続のための機能を提供するリピータ(転送)、ブリッジ(転送とフィルタリング)、ルータ(転送、フィルタ、アドレス変換)、ゲートウェイ(転送、フィルタ、アドレス変換、メッセージの再パッケージ化)の4つのECUタイプが記述されています。
J1939/71ビークルアプリケーション層
このドキュメントでは、メッセージフレームにグループ化され、PGNが与えられる"standard"パラメータについて説明および定義します。このドキュメントは、年に4回ほど更新され、新しいstandardパラメータとメッセージが追加されます。
本ドキュメントにおいて1、2、4バイトの異なる長さのパラメータが定義されています。パラメータの最上位バイト値が0xFEの場合はエラー、0xFFの場合は、そのパラメータが使用できないことを示します。また、ドキュメントでは、パラメータの長さや物理的特性に応じて適切なスケーリング、リミット、オフセットを推奨しています。
パラメータの記述は、名前と表す値の説明(パラメータ値を得るために使用するための測定方法など)から始まります。そして次の情報でパラメータの内容を説明します:
- データ長(バイト)
- レゾリューション(スケーリングおよびオフセット、測定単位)
- データレンジ(スケーリング後の物理値のレンジ)
- タイプ(ステータス、測定値)
- Suspect Parameter Number(SPN)(パラメータ固有の番号)
- PGN(送信されたメッセージフレームの参照)
各パラメータグループには、Nameの後に以下の情報が記述されています:
送信繰り返し率(時間間隔または要求に応じて)
- データ長(バイト)
- データページ(0または1、PGNと関係あり)
- PDUフォーマット(0~255、PGNと関係あり)
- PDU固有(PDUフォーマットに依存)
- デフォルトのプライオリティ(0~7間の値で、0が最も優先度が高い)
- Parameter Group Number (PGN)
- データパラメーターバイト(参照およびバイト順序に含まれるすべてのパラメータ)
内部メッセージのほとんどは、特定の宛先アドレスを持たないブロードキャストとして送信されます。
J1939 DBCファイルに特化した説明は「J1939およびDBC fileの概要」をご覧ください。
J1939/73アプリケーション層 - 診断
このドキュメントは、診断および校正データにアクセスするための機能およびメッセージを定義しています。あらかじめ定義された診断メッセージ(DM)は、以下のように使用されます:
- ECUメモリへの読み込みと書き込み
- 実行中の診断情報の報告
- ランプの状態の確認
- 診断トラブルコード(DTC)の読み取りと消去
- スタート/ストップブロードキャストDM
このドキュメントの新しいバージョンには、診断トラブルコード(DTC)の解釈に関する追加情報が含まれています。DTCは、J1587から引き継がれた32ビットの識別子で、4つの要素で構成されている。DTCは、J1587から引き継がれた32ビットの識別子であり、4つのエレメント(Suspect Parameter Number (SPN)、Failure Mode Identifier (FMI)、Occurrence Count (OC)、SPN Conversion Method)で構成されています。DTCは、ソースアドレスと共にコンポーネントまたはサブシステムを識別します。
J1939/81ネットワークマネージメント
このドキュメントでは、ECU Nameの内容と、そのNameを使用してECUがアドレッシングを要求する方法について説明しています。Nameは、64ビット(8バイト)の長さの数字で、すべてのECUに固有のIDを提供します。Nameには主に2つの目的があります:
- 機能を含めたECUの記述を提供します
- アドレスを要求する際の調停のために使用できる数値として機能します
J1939/81のドキュメントには、アドレス要求プロセスの仕組みが記述されています。この目的のためにドキュメントで定義されているメッセージには基本的に3つのタイプがあります。
- Request for Address Claimed(PGN 59904)。これはネットワーク上の他のデバイスが使用しているアドレスに関する情報を取得するために送信されます
- Address Claimed (PGN 60928)は、以下のように分けられます:
- Address Claimed:アドレスを要求するために送信あるいは"Request for Address Claimed"メッセージの応答としてデバイスのアドレスを表します。ソースアドレスには要求されたアドレスが設定されます。
- Address Cannot Claim:ECUがアドレスの要求に失敗した場合に送信されます。ECUがアドレスの要求プロセスに失敗し、"Reuest for Address Claimed "メッセージを受信した場合、その応答としてAddress Cannot Claimが送信されます。ソースアドレスには0x254が設定されアドレスがないことを示します。
- Commanded Address(PGN 65240):ECUに特定のアドレスを設定するために使用します。これは診断ツールまたは相互に接続するECU(ブリッジ、ゲートウェイ)によって実行できます。
アドレスの調停を行う場合、Nameは、8バイトの数値として扱われ、値が小さいほどプライオリティが高くなくなります。