OBDスピードパルスを構築する:ICEを見なさい

私はそれが降りるときにクラッピーソフトウェアコーダーです。すべてがオブジェクト指向になったときに注意を払わなかったので、私のルーツは常にアセンブリ言語とリアルタイムオペレーティングシステム(RTOS)でした。

それで、私はパルスジェネレータウィジェットをスピードアップするために私の小さなObdiiバスの終わりに真のインサーキットエミュレータ(氷)に到達することだけが当然のことです。 ICEは、組み込みシステムをデバッグするために使用されるハードウェアデバイスです。それはあなたのボード上のマイクロコントローラと通信し、実行を一時停止し、ハードウェアレジスタ内の値の検査または変更を推測することを可能にします。埋め込み開発に最適になりたい場合は、インサーキットエミュレーションを使用するのに最適な必要があります。

私はリアルタイムに近い間違いを楽しむことができるだけでなく、それについてのビデオを作ります。

車からデータを取得する

私は私の車を差し込む小さなボードに取り組んできて、コントローラエリアネットワーク(CANバス)で報告されたスピードに直接アクセスします。

少しバックアップするために、私の最後のビデオポストは私のトラック上のObdiiポートに差し込み、私のGPSのための自動車のスピードを表す一連のパルスを作りたい小さなアセンブリを作りたいという私のイインネの願望でした。より正確に。車両のエンジン制御モジュールに接続されたワイヤーの複数のバンドルに深く埋められたワイヤーがありましたが、私は自分の信号源を作成する多くの理由で決定を下しました。

私のプロジェクトの中心部では、OBDIIポートと基礎となる可能性のあるプロトコルを速度を表す基本変数に変換し、その値を速度に基づいて変化するパルスストリームにその値を隠します。 OBDII / CANプロトコルはSTN1110チップによって処理され、ASCIIに変換され、ASCIIのための多数のArduinoのボードで見つかったATMEGA328を使用しています。ハードウェア割り込みを使用して、ロックソリッド、ジッタフリータイミングの信号出力を制御しています。

下のビデオ内のインサーキットエミュレータを使用するプロセスを歩き、その中断の後、いくつかのプロセスの詳細については、私に参加してください。

ハードウェア

私は最後のビデオを考慮してボードを修正し、CAN以外のさまざまなプロトコルのサポートを削除しました。これは束の非古いプロトコルです。一部の部品を削除することによって、私はたくさんのホームバイストにとってはるかに簡単なスルーホールにパッケージスタイルを変えることができましたので、 ‘冷蔵庫にはんだペーストを残すことができます。

Rev 2

Rev 1

あなたのArduinoの「その他のコネクタ」

USBポートに話す準備が整ったArduinoとは異なり、箱から入ったときにAtmegaチップはコードの移動とダウンロード方法の知識がなく、言い換えればブートローダがありません。その結果、私は私のボード上のピンヘッダにルーティングされたインサーキットシリアルプログラミング(ICSP)ピンを直接プログラムできるようにします。

このコネクタではリセット線を見つけることができます。これは、このヘッダーで示すICEがDebugWireプロトコルを使用して使用できることを示します。 AVRチップを使用するデザインの大部分がGPIOのリセットピンを再プロットしないことを考慮すると、ICEに使用するのに最適なピンです。デバッグプロセス中のすべての通信はリセットピンで行われます。

氷を入れる

スクラッチからコンピュータを作成するときは、まだ動作していないステージが常にあります。単純に配置すると、マイクロプロセッサ回路は設計のほぼすべての部分まで機能することはできません。 RAM、ROM、および基礎となるバスはすべて基本的なことができる前に(主に)働く必要があります。貿易によるハードウェアエンジニアとして、私は常に氷のために到達して実装を開始します。ベータリリースの後にのみ、氷が角のほこりを集め始めます。

ATmegaの場合、デバッグ機能はマイクロコントローラ自体に組み込まれています。これは、独自のローカルRAM / ROMを搭載したオフボードを実行していた2番目の絶縁型プロセッサを持っていた早い日よりもはるかに簡単な実装です。

ビデオに指摘されている1つのノートは、標準のArduino’ishボードがリセットラインから取り外したフィルタコンデンサを持つ必要があるため、デバッグワイヤの使用率のライン上の高速データを許可する必要があります。

ここで使用している氷はAtmelによって作られたもので、Atmel Studioと互換性があります.AVR Dragonなどの他のモデルもあります。

偏見

氷は、RAMを観察して上書きすることができる間に、コードを1回押すことを可能にし、そしてキーボードからのRAMおよびI / Oレジスタを上書きすることを可能にします。私たちは、コンパイラによって生成された実際のアセンブリコードでステップバイステップのプログラムステップを楽しむことができます。私たちはRAMに直接変数や場所を楽しむか、またはC言語のカウンターパートを楽しむことができます。すべての処理なしで結果を見たいだけで、インスタンス内のサブルーチン呼び出しをジャンプすることも可能です。

氷の能力の外観でさえ見るのにあなたの時間の価値がある中止。 デバッグが始まるビデオを楽しむことをお勧めします。

最後の言葉

このビデオは本当にOBDIIサーキットを終えていましたので、私は氷ができることすべてについて議論する時間がありませんでした。