LIN フレームは、マスタタスクが送信する「ヘッダ」部と、スレーブタスクが送信する「レスポンス」部で構成される(図1)。ヘッダ部は次の5つで構成される。
(1) Break field | フレームの区切り(13ビット以上) |
(2) Break delimiter | 次の Sync byte field 検出用区切り(1ビット以上) |
(3) Sync byte field | スレーブノードがクロック同期をとる領域(10ビット) |
(4) Inter-Byte Space | 次の Protected identifier field 検出用区切り(0ビット以上) |
(5) Protected identifier field | スレーブタスク指定(10ビット) |
「ヘッダ」部の最小長は34ビット(13+1+10+0+10=34)で、最大長は最小長に40%マージンを加えた値となる(34×1.4=47.6ビット)となる。上記の(1)から(5)までの長さが、47.6ビット時間に収まる必要がある。「Break field 13ビット以上」はマスタが送信する際の決まりで、スレーブ側での検出は、11ビット時間あれば検出ができる。このため、マスタ側の送信が13ビット長よりも若干短くなっても、マスタ⇔スレーブ間の通信が可能だ。マスタとスレーブのクロック精度の差などの要因を加味した柔軟な仕組みだ。
スレーブタスクが送信する「レスポンス」部は 1 ~ 8 バイトのデータで構成する。データの数はあらかじめ決めておく必要がある。
ヘッダとレスポンスを構成する各部は、基本的に図2 「バイトフィールド」と呼ぶ 8 ビットデータでできているが、 Break field はこのルールから外れ、13 ビット以上のドミナントで構成する。
各領域の間は、「break delimiter」「Inter-byte space」「Response space」などの区切りビットが入る。
ヘッダ
Break Field
Break Field は、新しいフレームが始まったことを示す。Byte Field フォーマット(図2)に従わない唯一のフィールドで、常にマスタが送信し、少なくとも13ビット長の「ドミナント」の後に、Break Delimiter が続く。Break Delimiter は1ビット以上の長さが必要。
Sync Byte Field
Sync Byte Field は、マスタが送信する Byte Field でデータは 0x55だ。スレーブは、Sync Byte Field の 1/0 の繰り返し波形から受信データの伝送速度を検出し、以降のデータ受信の基準クロックとなる。Sync Byte Field の後には、最小長さ0の Inter-Byte Space が続く。
Protected Identifier Field
Protected Identifier Field は、2つのサブフィールドで構成される。「フレーム識別」と「パリティ」だ。フレーム識別用に 6 ビットが割り当てられ、0 ~ 63 の範囲を使用でき、次の3つのカテゴリがある。
0 ~ 59 (0x3B) | 信号用 |
60 (0x3C)/ 61 (0x3D) | 診断とコンフィグ用 |
62 (0x3E)/63 (0x3F) | 予約(拡張用) |
Parity は、図3 の様に割り当てられ、計算式は次式だ。
- P0 = ID0 + ID1 + ID2 + ID4
- P1 = (ID1 + ID3 + ID4 + ID5)
Rev 1.x には、ID4 と ID5 で 64 個のフレーム識別のセットを、それぞれ 2/4/8 個のデータフィールドを持つ 16 個の識別子の 4 つのサブセットに分割するオプションがある。
Data
1 ~ 8 バイトデータを伝送できる。
Checksum
フレームの最後のフィールドが Checksum だ。Rev 2x では、 Protected Identifier Field と Data が計算の対象で「 enhanced checksum 」、Rev 1x では Data のみが計算の対象 で「 classic checksum 」と呼ぶ。バージョンにより互換性がないので注意が必要だ。
送信ノードはチェックサムを計算し、 Checksum 領域に書き込む。Checksum の生成は8ビットデータを加算し、キャリーは LSB に加算する。全ての加算結果の逆数がChecksum Field(図4) に書き込まれる。受信ノードは受信データを順次加算し、最後に Checksum を加算した結果が「0xFF」になればデータが正しく受信できたと判断する。0xFF でない場合は、エラーが発生したと判断し、データを廃棄する。計算方法は、図5 の例を参照いただきたい。この例は、次の4 バイトを順次加算し、キャリーがあれば LSB(最下位)に加算する。最終加算結果を反転したものが「Checksum」になる。この例は、「LIN Specification Package Revision 2.2A」を引用している。
- 0x4A/0x55/0x93/0xE5
車載ネットワーク
-
4.車載ネットワーク
車載ネットワーク(1)変遷
自動車の基本的な機能(走る・曲がる・止まるなど)は、機械や油圧などの機能ごとの比較的単純な制御だった。アクセルペダルを踏めば加速し、ブレーキペダルを踏めば車が止まる。排ガス規制やエンジン高性能化の要求が強くなり、エンジン […] -
4.車載ネットワーク
車載ネットワーク(2)社会の変化と技術トレンド
社会の変化 2020年代に入り、自動車制御は大きく変わった。自動運転の進展が大きな要因だ。条件付きで自動運転を可能とする自動運転レベル3や、無人運転を可能にする自動運転レベル4が登場した(表1)。自動運転レベルの基準は米 […] -
4.車載ネットワーク
車載ネットワーク(3)CAN規格の歴史と概要
CAN 規格の歴史 CAN(Controller Area Network)は、、1983年にBosch社が開発した通信プロトコルだ。1986年に公式発表され、1987年に販売を開始した。CAN は数度に渡り規格が改定さ […] -
4.車載ネットワーク
車載ネットワーク(4)CANのマルチマスタとシングルマスタ
CAN は、複数のマスタノードが1組のバスラインに接続される「マルチマスタ」方式だ。全てのノードはバス接続され、送信データを全ノードが共有する。マルチマスタ方式は、平等にバスにアクセスでき、バスに空きがあればどのノードも […] -
4.車載ネットワーク
車載ネットワーク(5)CAN 通信手順とCSMA/CR 衝突時の調停
CAN には、データフレーム/リモートフレーム/オーバーロードフレーム/エラーフレームの4種類のフレームタイプがある。データフレームには標準フォーマットと拡張フォーマットの2種類がある。両者の違いは、識別コード(ID)の […] -
4.車載ネットワーク
車載ネットワーク(6)CAN 通信手順とフレーム構造
CAN には、データフレーム/リモートフレーム/オーバーロードフレーム/エラーフレームの4 種類のフレームタイプがある(表1)。 名称概要データフレーム通常のデータ送信フレーム(標準/拡張フォーマット)リモートフレームデ […] -
4.車載ネットワーク
車載ネットワーク(7)CAN 通信手順とエラー処理
車載ネットワークは、オフィスネットワークに比べ格段に環境条件が厳しい。CAN は平衡伝送方式で比較的ノイズに強いが、GND は不安定で電気的にも厳しい環境だ。障害発生時も、ネットワーク全体を停止させることは危険だ。一部の […] -
4.車載ネットワーク
車載ネットワーク(8)CAN ハードウェア
40年前の技術の影響 40年前に開発された CAN の仕様は、当時の技術を強く反映している。当時のマイクロプロセッサは、 8ビット処理でクロックも4MHzや8MHz 程度であった。メモリーも非常に高価で容量も4キロバイト […] -
4.車載ネットワーク
車載ネットワーク(10)LIN ハードウェア
トポロジ ネットワークに接続する通信機器を「ノード」と呼び、複数のノードを相互接続しネットワークを構成する方法を「トポロジ」と呼ぶ。車載ネットワークでは、ECU( Electronic Control Unit )がノー […] -
4.車載ネットワーク
車載ネットワーク(9)LINの規格概要
LIN規格 LIN(Local Interconnect Network)は、車載ネットワークのコストダウンを目的に、LIN コンソーシアムで策定された通信規格だ。LIN コンソーシアムは、欧州の自動車メーカや半導体メー […] -
4.車載ネットワーク
車載ネットワーク(11)LIN 通信手順
マスタタスクとスレーブタスク LIN は1つのマスタノードと複数のスレーブノードで構成され、唯一のマスタノードが、ネットワーク全体の通信を制御する方式だ。ネットワーク上での衝突や調停(Arbitration)をなくし、低 […] -
4.車載ネットワーク
車載ネットワーク(12)LINのフレーム構造
LIN フレームは、マスタタスクが送信する「ヘッダ」部と、スレーブタスクが送信する「レスポンス」部で構成される(図1)。ヘッダ部は次の5つで構成される。 (1) Break fieldフレームの区切り(13ビット以上)( […] -
4.車載ネットワーク
車載ネットワーク(13)LINの節電機能・エラー処理・発振子
節電機能 車載ネットワークでは「節電」は重要なテーマだ。限られたバッテリー電力と発電量の範囲内で動作しなければならない。LIN は限られた電力を有効に使うため、「ネットワーク管理」として Sleep と Wake Up […]