2015年10月29日木曜日

LIN(Local Interconnect Network)バスとはなにか

LINバスとは自動車業界で使われているもので、低コスト組込ネットワーク規格です。インテリジェントデバイス同士を接続するのに使用されます。低コスト、ローエンドマルチプレクス通信用の規格として開発されたものです。

マルチプレクス通信とは
・・・ふたつ以上の入力をひとつの信号として出力する機構。

ローエンドとは
・・・性能はあまり高くないが低価格の製品

LINバスと同じようなものにCANバスがありますが、CANバスは高帯域の高度エラー処理ネットワークに使われるものであり、CANを実装するのに必要なハードウェアとソフトウェアのコストは高い性能が求められないデバイス(パワーウィンドウや座席制御装置など)には高すぎます。

そこでこのようなパワーウィンドウや座席制御装置など高い性能が求められないデバイスにはLINバスを用います。LINバスを用いれば標準の汎用非同期送受信回路(UART)を使って比較的低コストで実装することができます。なお、汎用非同期送受信回路(UART、Universal Asynchronous Receiver/Transmitter)はほとんどの8ビットマイクロコントローラに組み込まれており、しかも8ビットマイクロコントローラは低コストです。

近年の自動車ネットワークでは、車体の電子部品の低コストアプリケーションにはLINを使い、中心となるパワートレインや車体通信にはCANを使い、アクティブサスペンションなどの高度なシステムにおける高速同期データ通信にはFlexRayを使うというような使い分けがされています。

一言で言えば・・・
・・・簡単なことしかしないデバイスにまでCANバスを使うと高すぎるから代わりに簡単・安価のLINバス使おうぜ。

LINバスの技術的な話


LINバスではマスタ/スレーブ方式を採用しており、マスタとスレーブから成り立っています。マスタとは主人、スレーブとは奴隷の意味ですから、マスターとその使いぱしりのように例えることができます。スレーブは複数の場合もあれば一つの場合もあります。

LINバスのメッセージはヘッダー(Message Header)とレスポンス(Message Response)から成ります。まずはヘッダーです。これはレスポンスの送信要求で、まずはヘッダー(送信要求)がマスタからスレーブに送信されないと、スレーブはデータの送信(レスポンス)を行いません。ヘッダーにはメッセージの始まりを示すブレイク(Break)、スレーブのノードがクロック同期に用いる同期(Sync)フィールド、そして識別子(Identifier、あるいはID)フィールドがあります。

引用元:http://www.ni.com/cms/images/devzone/tut/LIN_frame_20090802104146.png


この識別子には6ビットメッセージIDと2ビットパリティフィールドが含まれています。識別子は特定のメッセージアドレスを示しますが、送信先は示しません。

ヘッダーを受信し解釈すると、スレーブがレスポンス(Message Response)を開始します。このレスポンスは8バイトのデータと8ビットのチェックサムから成ります(図を参照)。

これに対してマスタはメッセージフレームの順序を制御しますが、これはスケジュール固定されています。このヘッダーを送信するタイミングをLINスケジュールといいます。ただし、このスケジュールは必要に応じて変更が可能です。

スレーブはマスタのヘッダーを受信しないとレスポンスを送信しません。ヘッダーを受信すればレスポンスの送信をします。また、マスターノード自身もスレーブタスクを持っているため、送信することもできます。

一言で言えば・・・
・・・マスタがヘッダー(送信要求)だすとスレーブがレスポンスをするよ。だからLINバスのメッセージはヘッダーとレスポンスから成り立ってるよ。