LIN テレグラムの構造


プロトコル仕様(メッセージフレーム)

(1) 各バイトの間にバイト間隔があります。

(2) 応答間隔はヘッダーと応答の間にあります。

(3) MCU に十分な処理時間を残します。

(4) フレーム長が増加する可能性があります。

完全な LIN バス メッセージ フレーム "メッセージ フレーム" には、ヘッダー "Header" と応答 "Response" が含まれます。マスター タスクはフレーム ヘッダーの送信を担当します。スレーブ タスクはフレーム ヘッダーを受信して​​、フレーム ヘッダーに含まれる情報を解析し、応答を送信するか、応答を受信するか、応答しないかを決定します。
LIN1


1. バイトフィールド

1) SCI ベースの通信フォーマット。

2) 各バイト フィールドの長さは 10 タイミング ビット (BIT TIME) によって計時されます;
バイトフィールド
① スタート ビット (START BIT) はバイトの始まりをマークする「ドミナント」ビットです;
② 8 はデータ ビットであり、最下位ビットが最初に送信されます;
③ ストップ ビット (STOP BIST) はバイト フィールドの終わりをマークする「リセッシブ」ビットです。

2. ヘッダーフィールド

ヘッダ

同期ブレイク

同期間隔セグメントは、同期間隔(Break)と同期間隔セグメントデリミタ(Break Delimiter)で構成されます。

機能: マスター ノードによって送信されたメッセージの先頭を識別し、すべてのスレーブ タスクをバス クロック信号と同期させます。
インターバル信号は、少なくとも 13 のドミナント ビットと、それに続く少なくとも 1 つのリセッシブ ビットのインターバル区切り文字で構成されます。
間隔フィールド

インターバルデリミタの役割: 次の同期フィールド (Synch Field) の開始ビットを検出するために使用されます。

同期セグメント (SyncByte FIELD)

1) すべてのスレーブ ノードがデータの送受信にノードと同じボー レートを使用することを確認します。

2) 1 バイト、固定構造: 0X55;
同期フィールド

保護された ID フィールド (保護された識別子フィールド)

保護された ID セグメントの最初の 6 ビットはフレーム ID (フレーム ID) と呼ばれ、さらに 2 つのパリティ ビットは保護された ID と呼ばれます。
1) ID 範囲は 0 ~ 63 (0x3f);
2) パリティ (Parity) P0、P1;
識別子フィールド
ID4 および ID5 はデータ フィールドのデータ長を定義します
必要応じて (たとえば、LIN 仕様 1.1 と互換性がある)、識別子ビット ID4 および ID5 はメッセージ内の NDATA データ フィールドの数を定義できます (以下の表を参照)。これにより、64 個の識別子のセットが、それぞれ 2、4、8 個のデータ フィールドを持つ 16 個の識別子の 4 つのサブセットに分割されます。

ID5 ID4 データフィールドの数
0 0 2
0 1 2
1 0 4
1 1 8
【LIN2.0相对于LIN1.3最主要的差别】
1、支持最多8个字节的数据序列;
2、取消了受保护标识符中的数据长度字段,即传输长度不再受限于ID,并将最后一个字节视为校验和;
3、校验和的验算包括了受保护标识符。
4、支持自动波特率检测功能;
5、对偶发帧进行了定义;
6、网络管理的定时用秒来定义,而不是用比特数来定义;

②パリティビット P0 P1 (⊕XOR演算)
パリティ

3. データフィールド

1) データフィールドの長さは 1 ~ 8 バイトです。

2) 下位バイトが最初に送信され、下位バイトが最初に送信されます。

3) 特定の信号の長さが 1 バイトを超える場合、下位ビットから送信されます (リトル エンディアン)。
データフィールド

4. チェックサムフィールド

受信したデータが正しいかどうかを検証するために使用されます

1) クラシック チェックサムはデータ フィールドのみをチェックします (LIN1.3)

2) 拡張チェックサム (Enhance Checksum) 識別子フィールドとデータ フィールドの内容をチェックします (LIN2.0、LIN2.1)

LIN2.0以前 LIN2.0以降
通信フレーム クラシック 強化された
診断フレーム クラシック クラシック

識別子が 0x3C および 0x3D のフレームは、クラシック チェックサムのみを使用できます。

チェックサムフィールド
アルゴリズム (クラシック): すべてのバイトを蓄積します。各加算を判断するには、合計が 0xFF より大きい場合、上位 8 ビットの 1 を下位 8 ビットに加算します。これは、実際には下位 8 ビットに 1 を加算することになります (8 ビットの合計を反転します)。最終結果を取得した後、その逆を取得すると、最終チェックサムが得られます。
例: 標準チェックサムを使用すると、Data1 = 0x4A、Data2 = 0x55、Data3 = 0x93、Data4 = 0xE5
チェック
上の図を説明すると、0x4A+0x55 = 0x9F は間違いなく、それに 0x93 = 0x132 を加えます。明らかに 0xFF を超えており、0x1 と 0x32 に分解され、未処理の上位 8 ビットが削除され、下位 8 ビットに追加されます。ビット、0x1+0x3 ​​2=0x33。0xE5 = 0x118 を追加します。これは、0x1+0x18=0x19 を超えます。否定 (否定)、0xE6。

おすすめ

転載: blog.csdn.net/qq_41908302/article/details/130796111