Day: August 1, 2022

Elliot:LINはハッカーのためのものですElliot:LINはハッカーのためのものです

最近のgreybeardメカニックであるgreybeardメカニックを尋ねるだけで、彼の「キャブレター」ラントを始めてください。これらのシステムとサブシステムの全ては、電気的に敵対的な環境で互いに話す必要があり、誤解、または遅延通信さえも大きな結果を得ることができるという誇張ではありません。車のネットワーキングは主要な事業です。自動車の大量生産は、非自動車用ハードウェアハッカーのための関連するトランシーバICS低コストを多数する。それでは、この驚くべきリソースベースを活用するより多くのハッカープロジェクトを見るのはなぜですか? 自動車のネットワークのバックボーンは、コントローラエリアネットワーク(CAN)です。 Hackaday自身の[Eric Imechick]は、カーハッカーの臨時調整業者で、あなたが後で読むためにブックマークしたいマルチパートシリーズのCANバスについて知っておくべき多くのすべてを書きました。エンジン、ブレーキ、ドア、およびすべての計装データレビュー(差動)レビュー速くて高い信頼性です。それはまた複雑で実装するのが少し高価です。 1990年後半に、多数の生産者は、自動車ネットワークの非臨界部品のために缶と走る独自の独自のバスプロトコルを持っていました。それはそのようなクリティカルでローカルコミュニケーションのメインのCANバスを散らす価値がないので、サブネットワークはメイン缶から減速されました。これらはメインネットワークのスピードまたは信頼性の保証を必要とせず、そして費用の理由から、それらが実装が容易でなければならなかった。最小のマイクロコントローラは、窓を上下に転がすのに十分であるべきですね。 2000年代初頭では、ローカルインターコネクトネットワーク(LIN)仕様はこれらのサブネットワークに1つの方法を標準化し、1つのマスターマイクロコントローラと少数のスレーブの間の通信のための低コスト、中速、再構成、および予測可能な動作に焦点を合わせて、クラスタ安く、シンプルで、小型のマイクロコントローラで実装可能、そして中規模のプロジェクトに最適ですか?ハッカーの夢!なぜあなたはあなたの複数マイクロプロジェクトでLinを使っていないのですか?掘り下げましょう。 LINプロトコル LIN「クラスター」が、標準的なミニネットワークがJargonで呼び出されたもので、単一のマスターマイクロコントローラと数のスレーブで構成されています。 LINは通常19,200ボーで、従来の8N1 UARTシリアルとして始まり、1つのワイヤで離れています。次に、このシングルワイヤを複数のスレーブ間で共有するバスとして使用できるプロトコルを追加します。簡単なUARTシリアル通信のために独自のネットワークプロトコルをロールロールしようとした場合は、Linのようなものになりました。仕様書(PDF)のコピーを取得して読んでください。 すべてのLINトランザクションは基本的に同じです。マスターは、実行されるタスクを指定する保護された識別子(PID)を含むヘッダーを送信します。タスクは、「レポート温度センサ2」または「サーボ3位置の設定」のようなものにすることができます。タスクによっては、1バイトのチェックサムで、1~8バイトのデータが続きます。スレーブは、どのタスクが対応するか、およびどのように対応するかを知る必要があります。したがって、「サーボ3位置を設定する」が送信された場合、サーボ3スレーブは次のバイトを聴き、それに応じて反応する必要があります。コマンドに応答しないすべてのスレーブは、次のプリアンブルまでデータを無視できます。 「レポート温度センサ2」の場合、コマンドを受信した直後に温度センサを有するスレーブがそのデータを送信する。バイト長は事前に知られており、センサ2のみがこのタスクに応答することが許可されているため、マスターは正確に、つまり反応の4バイトを聞くことを知っており、それがどのくらいの時間を知っています。 マスター送信ヘッダーとスレーブ送信反応を持つこのポーリングシステムは、どのデバイスも同時にバスにアクセスしないことを保証します。プリアンブルには、スレーブがマスタークロックにロックするのに役立つ同期バイト(0x55)が含まれているため、スレーブはより安価なRCクロックソースで動作し、自動搭載が可能です。 メッセージの長さが前もって知られているので、マスターのポーリングルーチンのタイミングをスケジュールで書き留めることができます。マスターはネットワークを定義された間隔でポーリングし、スレーブがトランザクションに必要な時間の1.4倍以内に応答しない場合は、アクションが欠落していると推定されます。どちらの方法でも、マスターはそのスケジュールの次の項目に進み、そのターンが再び歩き回るまで潜在的に欠陥のあるスレーブを再試行しません。これにより、すべてのデバイスのアップデートレートが保証されており、ライフはマスターをプログラミングするためにLOLが簡単になります。 それらは基本です。マスターはPIDSを送信し、一連のデータバイトが続きます。小さなネットワークを作成するためにできるだけ簡単に適応された、すべてのComfy Old UART、呼び出しと応答。 extr Interalive ViからのGUI LIN設定アプリデオ。 簡単にネットワークを維持するには、マスターとスレーブがすべてコマンドセットと有効な反応長を同意することを要求しています。これは、原則としてLINクラスタが機能するのに必要な情報の多くです。やや問題を解決するのを助けてください。 C用の従来のAPIは、Masterマイクロコントローラとスレーブマイクロコントローラの両方がLINクラスタ内の符号化動作を処理するために使用できることもあります。組み合わされた、これは、LINバスを特定して実装するための従来のワークフローを作ります – 自動車メーカーにとって非常に有用であり、ハッカーのためには役に立たない。 関連するスリープ信号とウェイクアップ信号を使用して、バスに定義されている睡眠状態と動作もあります。すべてのスレーブはスリープ信号に応答する必要があり、それらがマスターから聞いたことがない場合は4秒のタイムアウト後に自動的にスリープ状態になる必要があります。ノード、スレーブまたはマスターは、wakeupコマンドを送信できます。その後、マスターが通常のポーリングスケジュールに戻るべきです。 LINバージョン2.0には、ネットワークをはるかに柔軟にするオプションのフレームタイプがいくつか含まれていました。特に、「散発的なフレーム」は、最後の更新で新しいデータを取得していない場合は、スレーブの反応をオプションにします。 「イベントトリガフレーム」は、新しいデータを持つ任意のスレーブノードによって追加的に応答できることを除いて、散発性フレームのようなものです。 これにより、バス上の衝突の可能性が紹介され、その場合、チェックサムが追加されず、マスターは以前と同じようにスレーブ固有のフレームに戻ります。これら2つのモードは、データの更新がまれであるときにバスを高速化しますが、コードにスケジュールと条件付きの複雑さにいくつかの不確定性を追加します。必要な場合にのみ使用してください。 マスターには複数のスケジュールを持ち、それらの間で切り替えることもできます。スレーブは気にしない