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つのモードは、データの更新がまれであるときにバスを高速化しますが、コードにスケジュールと条件付きの複雑さにいくつかの不確定性を追加します。必要な場合にのみ使用してください。

マスターには複数のスケジュールを持ち、それらの間で切り替えることもできます。スレーブは気にしない – 彼らはとにかく彼らに関連するタスクを聞くだけです。たとえそれが物事を概念的により単純にする場合でも、それが変更されていない場合は、マスターが変更されていない場合はその期間ごとにサーボ位置データを送信する理由はありません。あなたの電話

CANバスと互換性のあるオプションのキャリーレイヤースペックさえも、ローカルLINクラスタをより大きなネットワークと統合するのが簡単になります。つまり、LINは、業界が優れているUARTバスプロトコルを介して非常に徹底的に考えられています。 LINトランシーバハードウェアのすべてのベンダーから良いチュートリアルがあります。 (これはナショナルインスツルメンツからの素晴らしいイントロです。)

ハードウェア – 物理層

このプロトコルのすべてを最上位にすると、普通のトランシーバの範囲で0.25ドルから0.50ドルの範囲の広範なLINトランシーバチップが、電圧レギュレータを内蔵した「システムベース」チップのための昇降圧または2つの範囲です。トランシーバはスリープ/ウェイクロジックの世話をすることができ、電源をマイクロコントローラのオン/オフにすることができるため、これらは特にスリックです。これにより、3.3 Vで動作するスレーブノードを非常に簡単に統合できます。

リトルチップはあなたをたくさん購入します。
LINバスは自動車用に開発されているので、それは通常あなたの車のワイヤーハーネスの静脈を通っているのかという理由から、通常12 vに隠されています。自動車の電気システムはスパイキー環境である可能性があるため、LINトランシーバハードウェアはさらに高い電圧を収容できる必要があります。他の誰かがそれを引き上げようとしている間、トランシーバチップがLINラインを引き下げようとしている可能性がある場合、バスの競合に対処する必要があります。 LINトランシーバは堅牢な小さな獣です。

パンジー抵抗でプルアップされているI2Cラインとは対照的に、自動車のLINバスは1kΩの抵抗で12 Vまでプルアップされます。このラインを十分に速く引き下げるには、LINトランシーバは数ミリアンペアを実行できる必要があります。 LINバスは、i2cが運転手に頼ることなくあなたに与えるカップルメートルではなく、40メートルで良いです。距離やノイズの免疫が必要な場合は、LINはあなたのためにあります。

しかし、トランシーバのハードウェアでさえ、12 Vでバスを実行することは何もありません。私が見たマイクロチップトランシーバは5.5 Vまで、NXPとMelexisのものはArduino対応の5 Vで停止します。

そして、トランシーバハードウェアをまったく使用することはありません。 PNPトランジスタ(またはPチャネルMOSFET)をバスラインに接続し、UART TXを使用してRXラインでバスをサンプリングするだけで駆動することができます。これは地元のエコーの欠点を持っていますが、それはソフトウェアで処理される可能性があります。または、ほんの数部の部品だけで、私たちが前に見たサービスがあります。ただし、rinトランシーバを実装するハッカープロジェクトが見つかりませんでした。たぶんそれは産業のものがとても安いのでそうです。

強みと弱み

すべての機会にはバスは理想的であり、Linは例外ではありません。 Linは特に速くはありませんが、19,200のボーのUAR頃に開発されていますT.アップデートは、マイクロコントローラの視点から、かなりめったにかなり来ています。タイムアウトを伴うフルレングストランザクションは、約10ミリ秒かかります。マスターが16個のデバイスをポーリングした場合、それは7つのHertz最悪の場合の更新率です。もちろん、マスターは毎回すべてのデバイスを投与する必要はなく、メッセージがその長さの半分になるでしょうが、あなたは200 Hz以上になるつもりはありません。一方、フレークされたデバイスにタイトタイムアウトを実行する能力のために、更新率は一定であり、信頼性と単純さにとっては素晴らしいものであり、I2Cよりもはるかに遅くはありません。

野生、1.x、2.xで見ることができる林の2つの主なバージョンがあります。上記のオプションのフレームタイプに加えて、2つのバージョンは異なるチェックサム式を持ち、2.xの1つは本当に奇妙です – Webベースの電卓はそれを正しくしていることを確認します。追加MOD-256の代わりに、それらは256以上の任意の値から255を減算します。それは0の代わりに1に折り返す8ビットのオーバーフローのようです。これはあなたのために意味がありますか?

LINデバイスは、Long Shootによって、I2CまたはSPIのように自動車産業の外側に普及していないため、おそらくプロトコルに対処することは決して強制されませんでした。しかし、少数のマイクロコントローラベースのモジュールをできるだけ簡単にネットワークアップしたい場合は、1ワイヤ(プラスグラウンド)を使用して、何も簡単に考えるのは難しいです。 I2Cスレーブコードの書き込みは確かにピクニックではありません。 UARTラインで特定のバイトをリッスンするコードを書くと、反応することはできませんでした。

プレーンバニラUARTをバスに変えたいですか? Lin Bookからページまたは2つを取り出してください。あなたはもうすでにやったことがありますか?私たちに見せてください!

Leave a Reply

Your email address will not be published. Required fields are marked *

Related Post

HブリッジHブリッジ

クラスDアンプD AMPは基本的なものです.PWMで正方波を変調するためだけでなく、入力を利用してください。このPWMシグナルをMOSFETまたは何かに送信するだけでなく、存在に最も簡単なクラスD AMPがあります。彼らはとてもシンプルです、あなたは3ドルでクラスDアンプチップを得ることができます、しかし、それは簡単になると信じていました。代わりに、彼はH-Bridge Motor Driverと同様に中心的なものと彼自身を開発しました。驚き、それはうまくいきますが、魅力的なことは、スピーカーから出てくるオーディオの高品質に与える影響が高い影響を与えることができます。 この仕事のために選択されたマイクロコントローラは、私たちがそれほど見ていない部分である。この発展の重い持ち上がる部分は、eBayで数ドルで発見されたL298チップです。このダブルHブリッジは通常、モーターを駆動するために利用されますが、[ジョージ]はアンプの電源セクションで家を発見しました。 アティニーは16 MHzで計時され、ADCクロックは1 MHzで実行されます。この値はPWMタスクサイクルを設定するだけでなく、10ビットの精度変換が行われます。チップ内のTIMER1は32 MHzで実行されるだけでなく、このTIMERを1023と数えるだけでなく、このAMPは31.25 kHzのPWMサイクル速度を提供します。それは、クラスD AMPが実行されなければならないこと、およびコードが約30行に過ぎないもののコミュニティでは理想的です。それより簡単になることはできません。 [George]このアンプのビデオを操作中、クラスD AMPの一般的なスタイルに準拠していないにもかかわらず、それはかなり良いようです。下のビデオを見ることができます。

Kristinaを使ったKeebin ‘:ボールペンティブタイプライターを持つものKristinaを使ったKeebin ‘:ボールペンティブタイプライターを持つもの

を入力したら、あなたがタイプしたときに指の動きを最小にしたいのですが、古いデータハンドで減少する3つの壮大さ、またはオープンソースの開発に十分な時間がありません。ラルボード? Chord Boardsのように見える[SouthpawEngineer]から、これら2つのアイデア大文字を調べてください。 家の列のすべてのキーは、直接入力を備えたD-PADのような5方向スイッチです。 [SouthPawEngineer]それぞれがQWERTY列を網羅するように設定されています。それで、左のPinkyスイッチの場合、UPはQ、右がA、DOWNはZです。 これらのkeebは両方ともKB2040ボードを利用しています。これは、これらの轟音2020Sのキーボードビルド動向に対するAdaFruitの対応です。これらのビットボードは、kmk、著名なQMKのオフショートをサポートするChiquePythonを使用してプログラムするプログラムです。ヒントをありがとう、[フォーマイジ]! 新しいkeebs:Glove80は1つのサイズすべてのサイズです 私のキネシスの利点が好きな限り、それは家庭のための完璧なキーボードです、そして必ずしも他のどこにもそうではありません。私が反復的なストレス傷害を再発することができない限り、私は長方形に戻ることができる方法はありませんので、私は家の外の人間工学的な分割を必要としています。非常に多くの種類の分割はキネシスよりも移植性が高いですが、すべての分割が等しいわけではありません。したがって、私は私の手に巨大な巨大なものを発見しました。 Ergo、私はGlove80に魅了されている以上のものです。それはKailh Chocs、Pom Keycaps、および一対のNRF52840を利用しています。 Glove80の背後にあるデザイナーは恋人です – 起業家、そして18年間のErgoキーボードを持つエンジニアは彼らの指の下で利用されています。彼らは500以上のERGA実験と、すべての手の大きさに快適になるようにされているキーボードを開発するために、本当にクールに見えるモジュラーテストリグを開発しました。しかし彼らはこのキーボードを商品化することを計画していなかったが、幸いなことに、誰かが彼らを説得したそれは世界を見せたはずです。 このBluetoothの分割は80の薄型の秘密(したがって名前)を持っています(その名前)、それらはすべてまった同じサイズ – 1uです。それはそれにそれにもかかわらず、それにもかかわらず、デザインやキーキャップを切り替えることを簡単にします。このキーボードに関する最も魅力的なことが選択されています:現在、赤、茶色、または白いスイッチを選択することができます。 物理学によって設計されたKeeB 他の日にTwitter(ThreadReaderバージョン)について説明したように、彼らの操作上の制限と同様にタイプライターから降りてきたので、キーボードのデザインはキーボードのデザインです。ただし、デジタルキーボードがあるため、ウィンドウのすべてを捨てることができます。 その最後に、[フォー]では、このデザインを、本質的にオンラインジャーにあるすべての秘密をいくつかのスペーサーの球に配置し、それを簡単にするだけでなく、文字、シンボルも簡単に行われます。彼らができるところで修飾子秋として。 あなたがこれを入力すると信じるならば、悪夢は、1分間の配線について考えてください。 [Foone]は、45のGPIOピンを持つTeensy ++ 2.0を利用しているため、マトリックスやダイオードに必要な要件はありません。これは本質的に高価な冗談ですが、それでもいくつかの現実があります。他に何もない場合は、この面白い運動を動機として機能させてください。ヒントをありがとう、[J. Peterson] 歴史的なクッキング:Ballpoint Typewritersはあなたを描画します Serial Keyboard Designer

iOS 13 Picturesアプリでアルバムの名前をiPhone、iPadiOS 13 Picturesアプリでアルバムの名前をiPhone、iPad

に変更する方法は、iPhoneまたはiPadのストックiOS 13写真アプリのアルバムを正確に変更する方法に関する段階的なガイドです。 iPhoneをプライマリカメラとして利用している場合、年間数え切れないほどの写真を撮影しても、おそらく数百枚撮影します。これは、写真アプリがあらゆる種類の画像でいっぱいであることを示しています。また、組織がそのような状況で重要であることを示しています。アルバムに名前を付けて、もっと意味のあるタイトルを提供できることを理解しましたか? 写真アプリに注文の類似性があることを確認したい場合、アルバムを使用することは、まさにそれを行う素晴らしい方法です。アルバムの名前を変更して、物事を少し整理する方法を正確に紹介します。 ステップ1:写真アプリを紹介するだけでなく、アルバムタブが選択されていることを確認してください。 ステップ2:タップ画面の上部にあるすべてを参照してください。 ステップ3:編集をタップします。 ステップ4:変更したいアルバムの名前をタップします。 ステップ5:[完了した]タップと同様に、新しい名前に移動します。 ステップ6:再度実行されたタップをタップするか、まったく同じプロセスを使用してもう1つのアルバムを変更します。 いくつかのデバイスで写真を使用する場合は、改名されたアルバムも同様に同期する必要があります。各プライベートiPhone、iPad、またはMacでアルバムの名前を変更する必要はありません。すべてが順調であるため、iCloudはあなたのためにすべてを管理します。 Appleは写真アプリと経験を改善し続けていますが、私たちはまだ適切な共有ライブラリを求めて叫んでいます。あなたの家庭がたくさんの写真を撮るなら、誰もがそれらを持っていることを確認することは本物の痛みになる可能性があります。 1つの屋根の下にいくつかのライブラリと一緒に暮らすだけでなく、さらに悪化しています。 多分iOS 14は休息を提供するでしょう。 同様に検査するのが好きかもしれません: ダウンロード:iOS 13.2ベータ3 IPSWリンク、OTAプロファイルデータリリース 脱獄iOS 13.1.3更新:安全材料の修正、Appleによる詳細なパッチ iOS 13.1.3 / iPados 13.1.3からiOS 13.1.2へのダウングレード、これがどのようにありますか checkra1n iOS 13.1.2