LINは、現代の車両におけるコンポーネント間の通信に使用されるネットワークプロトコルです。低コストのシングルステップシリアルプロトコルであり、最大19.2 Kbit/sの通信速度と最大40メートル(131.23フィート)のバス長をサポートします。
自動車に搭載される技術や設備が進化するにつれ、安価なシリアルネットワークの必要性が高まった。一方、CANバスは自動車のすべてのコンポーネントに実装するにはコストが高すぎた。ヨーロッパの自動車メーカーは様々なシリアル通信技術を採用し始めたが、それが互換性の問題を引き起こした。
1990年代後半、LINコンソーシアムは5つの自動車メーカー(BMW、フォルクスワーゲングループ、アウディ、ボルボカーズ、メルセデス・ベンツ)によって設立され、ボルケーノ・オートモーティブ・グループとモトローラから技術(ネットワークとハードウェアの専門知識)が提供されました。新しいLIN仕様の最初の完全実装バージョン(LINバージョン1.3)は2002年11月に公開されました。2003年9月には、機能拡張と追加の診断機能の実装のためにバージョン2.0が導入されました。LINは、特別なLIN over DC電源ライン(DC-LIN)トランシーバーを使用して、車両のバッテリー電源ラインでも使用できます。DC電源ライン上のLIN(DC-LIN)はISO/AWI 17987-8として標準化されています。[ 1 ]
CAN in Automationは、 ISO技術管理委員会(TMB)により、ISO 17987シリーズで標準化されたLINサプライヤーIDの登録機関として任命されました。
LINは、16個のノード(1つのプライマリノードと最大15個のセカンダリノード)で構成されるブロードキャストシリアルネットワークです。 [ 2 ] [ 3 ] [ 4 ] [ 5 ]
すべてのメッセージはプライマリノードによって開始され、特定のメッセージ識別子に対して応答するセカンダリノードは最大で1つです。プライマリノードは、自身のメッセージに応答することでセカンダリノードとしても機能します。すべての通信はプライマリノードによって開始されるため、衝突検出を実装する必要はありません。[ 6 ]
プライマリノードとセカンダリノードは通常マイクロコントローラですが、コスト、スペース、または電力を節約するために、専用ハードウェアまたはASICで実装される場合もあります。
現在の用途では、LINの低コスト効率とシンプルなセンサーを組み合わせて小規模ネットワークを構築しています。これらのサブシステムは、バックボーンネットワーク(自動車のCANなど)で接続できます。[ 7 ]
LINバスは、車載ネットワーク内でのリモートアプリケーションを効果的にサポートする、安価なシリアル通信プロトコルです。特に分散型自動車アプリケーションにおけるメカトロニクスノード向けに設計されていますが、産業用途にも同様に適しています。既存のCANネットワークを補完し、車内における階層型ネットワークの構築を目指しています。
1990年代後半、ヨーロッパの自動車メーカー5社、メンターグラフィックス(旧ボルケーノ・オートモーティブ・グループ)、フリースケール(旧モトローラ、現NXP)によって、ローカル・インターコネクト・ネットワーク(LIN)コンソーシアムが設立されました。新しいLIN仕様の最初の完全実装版は、2002年11月にLINバージョン1.3として公開されました。2003年9月には、構成機能を拡張し、重要な追加診断機能とツールインターフェースに対応するために、バージョン2.0が導入されました。
本プロトコルの主な特徴は以下のとおりです。
データは、選択可能な長さの固定形式のメッセージとしてバスを介して転送されます。マスタータスクは、ブレーク信号、同期フィールド、および識別子フィールドで構成されるヘッダーを送信します。スレーブは、2、4、または8バイトのデータと3バイトの制御情報で構成されるデータフレームで応答します。[ 9 ]
メッセージには次のフィールドが含まれます: [ 9 ]
LIN 仕様は、ネットワーク内で非常に安価なハードウェア ノードを使用できるように設計されました。これは、ISO 9141に基づく低コストの単線ネットワークです。[ 11 ]今日の車載ネットワーク トポロジでは、UART機能または専用の LIN ハードウェアを備えたマイクロコントローラが使用されます。マイクロコントローラは、必要なすべての LIN データ (プロトコル ...) を (部分的に) ソフトウェアで生成し、LINトランシーバ(簡単に言えば、いくつかのアドオンを備えたレベル シフター) を介して LIN ネットワークに接続されます。LIN ノードとして動作することは、可能な機能の一部にすぎません。LIN ハードウェアにはこのトランシーバが含まれる場合があり、追加機能なしで純粋な LIN ノードとして動作します。
LINスレーブノードはできるだけ安価であるべきなので、水晶発振器(クォーツまたはセラミック)の代わりにRC発振器を使用して内部クロックを生成する場合があります。1つのLINフレーム内でのボーレートの安定性を確保するために、ヘッダー内のSYNCフィールドが使用されます。
LINマスターは、1つ以上の事前定義されたスケジューリングテーブルを使用して、LINバスへの送受信を開始します。これらのスケジューリングテーブルには、少なくともメッセージ送信が開始される相対的なタイミングが含まれています。1つのLINフレームは、ヘッダーとレスポンスの2つの部分で構成されます。ヘッダーは常にLINマスターによって送信され、レスポンスは専用のLINスレーブまたはLINマスター自身によって送信されます。
LIN内で送信されるデータは、1つのスタートビット、1つのストップビット、パリティなし(ブレークフィールドにはスタートビットもストップビットもありません)の8ビットデータバイトとしてシリアルに送信されます。ビットレートは1kbit /sから20kbit /sの範囲で変化します。バス上のデータは、リセッシブ(論理HIGH)とドミナント(論理LOW)に分けられます。時間は通常、LINマスタの安定したクロックソースによって計測され、最小単位は1ビット時間(19.2kbit/sで52μs )です。
LINプロトコルでは、スリープモードとアクティブモードの2つのバス状態が使用されます。バス上にデータが送信されている間、すべてのLINノードはアクティブ状態になるよう要求されます。指定されたタイムアウト時間が経過すると、ノードはスリープモードに入り、WAKEUPフレームによってアクティブ状態に戻ります。このフレームは、バス上でアクティビティを要求する任意のノード(内部スケジュールに従うLINマスター、または内部ソフトウェアアプリケーションによってアクティブ化される接続されたLINスレーブのいずれか)によって送信される可能性があります。すべてのノードが起動されると、マスターは次の識別子のスケジュール設定を続行します。
ヘッダーは5つの部分から構成されています。
BREAK: BREAK フィールドは、接続されているすべての LIN スレーブをアクティブにして、ヘッダーの次の部分をリッスンさせるために使用されます。これは、1 つのスタート ビットと複数のドミナント ビットで構成されます。長さは少なくとも 11 ビット倍ですが、現在の標準使用は 13 ビット倍であるため、基本データ フォーマットとは異なります。これは、指定された範囲内で設定されたバス ボー レートと異なるメイン クロックを持つリスニング LIN ノードが、BREAK をすべての値がゼロ ( 16 進数0x00) の標準データ バイトとしてではなく、通信を開始するフレームとして検出することを保証するために使用されます。
SYNC: SYNCは、16進数で0x55の値を持つ標準データフォーマットバイトです。RC発振器で動作するLINスレーブは、一定数の立ち上がりエッジと立ち下がりエッジ間の距離を使用して、バス上の現在のビット時間(マスターの標準時間)を測定し、内部ボーレートを再計算します。
バイト間隔: バイト間隔は、バスジッタを調整するために使用されます。これはLIN仕様におけるオプションの要素です。有効にした場合、すべてのLINノードはこれに対応できるように準備する必要があります。
BREAKフィールドとSYNCフィールドの間、SYNCフィールドとIDENTIFIERフィールドの間、ペイロードとチェックサムの間、そしてペイロード内の各データバイトの間には、バイト間スペースがあります。
識別子: 識別子は、接続されているLINスレーブノードのうち1つまたは複数によって実行されるアクションを定義します。ネットワーク設計者は、設計段階で障害のない機能性を確保する必要があります(1つのスレーブノードは、1フレーム時間内にバスにデータを送信できます)。
識別子によって物理LINスレーブが応答を送信する場合、その識別子はRx識別子と呼ばれることがあります。マスターのスレーブタスクがバスにデータを送信する場合、それはTx識別子と呼ばれることがあります。
応答スペース: 応答スペースとは、識別子フィールドと、LINフレームのLIN応答部分を開始する最初のデータバイトとの間の時間です。LINマスターが特定のLINフレーム(ヘッダーと応答)を完全に送信すると、LINマスターは応答スペースの全時間を使用して、ヘッダー送信後に応答を送信するタイミングを計算します。LINフレームの応答部分が物理的に異なるスレーブノードから送信されている場合、各ノード(マスターとスレーブ)はタイムアウト計算に応答スペースの50%を使用します。
応答は、接続されているLINスレーブタスクの1つによって送信され、データとチェックサムに分割されます。[ 9 ]
データ: 応答するスレーブは、0~8バイトのデータデータをバスに送信する可能性があります。データ量はアプリケーション設計者によって固定され、LINスレーブが動作するアプリケーションに関連するデータ量を反映します。
チェックサム: LINには2種類のチェックサムモデルがあります。1つ目はデータバイトのみを含むチェックサム(バージョン1.3までの仕様)、2つ目は識別子も含むチェックサム(バージョン2.0以降)です。使用するチェックサムモデルは、アプリケーション設計者によって事前に定義されます。
これらの方法により、LINバス上のスレーブノードの位置を検出し、一意のノードアドレス(NAD)を割り当てることができます。[ 12 ]
制限:
各スレーブノードは、入力ピンD1と出力ピンD2の2つの追加ピンを提供する必要があります。
各構成ピンD x (x=1-2)には、位置検出を補助するための追加回路が備わっています。
手順の開始時点では、どのSNPDデバイスにもNADは割り当てられていません。
1. 最初の自動アドレス指定LINメッセージ
2. 後続の自動アドレス指定LINメッセージ
3. すべてのプルアップとプルダウンがオフになり、アドレス指定手順が完了します。
各スレーブノードには2つのLINピンがあります
各スレーブノードは、位置検出を補助するために、標準的なLIN回路と比較して追加の回路を必要とする。
手順の開始時点では、どのSNPDデバイスにもNADは割り当てられていません。自動アドレス指定ルーチンは同期フィールド中に実行されます。同期フィールドは3つのフェーズに分かれています。
1. オフセット電流測定
2. プルアップモード
3. 電流源モード
この技術は、特許EP 1490772 B1およびUS 7091876によって保護されています。
LINはCANバスの完全な代替手段ではありません。しかし、低コストが不可欠で、速度や帯域幅が重要でない場合には、LINバスは優れた代替手段となります。一般的に、車両の性能や安全性に重要でないサブシステム内で使用されます。以下にいくつかの例を示します。
LINにおけるアドレス指定は、PID(保護識別子)の一部であるNAD(ノードアドレス)によって行われます。NADの値は7ビットで、1から127(0x7F)の範囲にあり、サプライヤーID、機能ID、およびバリアントIDの組み合わせで構成されています。
サプライヤーIDは、そのような識別子の割り当てを担当する機関であるCAN in Automationに問い合わせることで取得できます。
各種車両(自動車)接続バス:
LIN仕様v2.2A (2010年)は、 ISO 17987シリーズの公式規格文書に組み込まれました。ISOパート1~7は2016年に初版が発行され、続いてパート8が2019年に発行されました。