問題タブ [can-bus]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
can-bus - CAN 2.0 - 障害の閉じ込め - エラーカウンターの変更
CAN 2.0B 仕様には、正しく理解しているかどうかわからないことが 1 つあります。
第 8 章 - 障害の制限 - には、エラー カウンターの変更に関する次の規則があります。
ルール 2: RECEIVER が ERROR FLAG を送信した後、最初のビットとして「ドミナント」ビットを検出すると、RECEIVE ERROR COUNT が 8 ずつ増加します。
と
ルール 6: どのノードも、ACTIVE ERROR FLAG、PASSIVE ERROR FLAG、または OVERLOAD フラグを送信した後、最大 7 つの連続する「ドミナント」ビットを許容します。ACTIVE ERROR FLAG または OVERLOAD FLAG の場合は 14 番目の連続した「ドミナント」ビットを検出した後、または PASSIVE ERROR FLAG に続く 8 番目の連続した「ドミナント」ビットを検出した後、および追加の 8 つの連続した「ドミナント」ビットの各シーケンスの後は TRANSMIT ERROR COUNT を 8 ずつ増やし、すべての RECEIVER は RECEIVE ERROR COUNT を 8 ずつ増やします。
ルール 2 は、ノード A がエラー フレームを送信し、6 つのドミナント ビット (エラー フラグ) を送信した後、次のビットがドミナントであることを検出した場合、受信エラー カウンターを増やす必要があることを意味しますか? エラーフラグに6つ以上のドミナントビット(正確には6から12)があっても大丈夫だと思いました...また、ルール6は「どのノードも(...)の後に最大7つの連続した「ドミナント」ビットを許容します」と述べています
Rule6 は、8 つの連続するドミナント ビットのシーケンスについても述べています。しかし、この規則は正確には何のために適用されるのでしょうか? エラー フレームの最初の送信後に来るようなシーケンスのみですか?
例を見てみましょう。ノード A がエラー フレームを送信し、他のノードが独自のエラー フレームを送信し始めます。ノード A はエラー フラグの 6 ビットを送信し、7 番目のドミナント ビットを検出します (カウンタを増やす? - ルール 2)。次に、別の 6 つのドミナント ビットを取得し、14 番目のドミナント ビットの後、ノード A はエラー カウンタを再び増やします (ルール 6 の最初の部分)。
次に、別の 8 つのドミナント ビットがあります。ノード A は、エラー カウンタを再び増やします (ルール 6 の 2 番目の部分)。
私は正しいですか?私はこれらの規則にとても混乱しており、完全に理解する必要があります。誰かが私を助けてくれることを願っています:)
android - CANCaseXLツールを使用したobdII Bluetooth
キショアです
ELM327 ベースの OBDII to Bluetooth アダプターを使用して、乗用車の CAN トラフィックを監視します。別の言い方をすれば、EML327 を CAN2BT ドングルとして展開することを目的としています (CAN メッセージ Rx の目的で)。
すべての監視機能を使用して、車両内のすべてのメッセージを受信したいと考えています (OBDII プロトコルで通常行われる診断だけではありません)。ELM327 でサポートされている AT-MR および AT-MT インターフェイスを使用して、アプリケーションが関心のあるメッセージを選択的にリッスンするつもりです。
私が抱えている問題は、ラボでは ELM327 が CANCaseXL に接続されており、AT-MA または AT-MR または AT-MT モードでは ELM327 が確認応答を送信しないことです。この ACK がないため、CANcaseXL は互換性のあるボーレートで送信していますが、送信エラーによって CANcaseXL がエラー状態になります。
ELM327 を OBDII 診断プロトコルを介して通信しないモードにするために一連の専用 AT コマンドを送信する方法はありますか?
この点でコミュニティの親切な助けが必要です
ありがとうございます
stm32 - CANフィルターを理解する
stm32f4-discovery の CAN フィルター構成を理解できません。
誰かがこれがどのように機能するかを私に説明できますか? それともどこかに文書化されていますか?私はそれを見つけることができません。
c++ - CAN通信を介してコンピューターに接続されたモーターをプログラミングしますか?
CAN 経由でモーターに接続されているコンピューターにモーターが接続されています。基本的に、私は USB-to-CAN アダプターを持っており、これにコンピューターから USB ケーブルを接続します。次に、アダプターからモーターをCAN経由で接続します。
ここで、データをモーターに送信したいと考えています。送信する必要があるバイトのシーケンスは既にわかっていますが、CAN 経由で接続されているモーターと「通信」するために使用するコマンドがわかりません。コンピュータからモーターに直接 USB 接続してデータを送信することはできましたが (C++ の WriteFile コマンドを使用)、この方法は CAN では機能しません。
C++ で CAN 経由でモーターと通信するために使用できるライブラリ/関数はありますか?
microcontroller - CAN メッセージ読み取りエラー
Infineon XC2768X マイクロコントローラを使用しています。問題は、if
ステートメントの行にあります。「uwspeed」は、外部 CAN バスから受信しているモーターの速度です。コードがこの行に到達すると、LED P10_6 と P10_7 は点灯しません。この問題を解決するにはどうすればよいですか?
c++ - CANバスソケットを強制的にフラッシュできますか?
私のソフトウェア (C++ で書かれています) では、Linux 標準関数を使用して、CAN バス ソケットを開いて I/O 処理を行っています。
ソケットは次のように開かれ、使用されます。
後でコードを...
ただし、ソケットに書き込んだばかりのメッセージがバス経由で送信されない場合があることに気付きました。時々明示的なフラッシュが必要なバッファのようなものだと思いました(同時に多くのメッセージなど)。私はネットを検索しましたが、私のケースに適したものは何も見つかりませんでした (多くの人が fflush() を使用することを提案していますが、int として宣言されたファイル記述子しか持っていません)。 FSTREAM を使用せずにソケットのフラッシュを強制しますか?
私のソフトウェアから修正できる問題ではないかもしれませんが、試してみる価値はあります...
embedded - ハードウェアを追加せずに Arduino で CAN を使用することは可能ですか?
Arduino を CAN ネットワークで動作させたいと考えています。OSIモデルのネットワーク層を提供するソフトウェアはArduino用に存在しますか? GPIO/ADC で HI/LOW レベルを検出し、DAC で信号をネットワークに送信することを想像します。余分なハードウェアが接続されていないのはいいことです。ただし、CANネットワークに必要な終端抵抗を持っていてもかまいません。
Arduinoとは、それらのいずれかを意味します。私の意図は、開発環境を維持することです。
そのようなソフトウェアが存在しない場合、フラッシュサイズの制限など、技術的な障害はありますか (繰り返しますが、特定の Atmega チップを搭載した特定のボードを意味するわけではありません)。
c# - mono を使用した SocketCAN C#
私は mono と C# に本当に慣れていませんが、ソケットを使用して CAN 経由で通信を開始したいと考えています。問題は、多くのプロトコルとアドレス ファミリが実装されていますが、今のところモノでは CAN がサポートされていないことです。システム カーネルはそれをサポートしていますが、この方法でファイルにパッチを適用して SystemCall レベルまで下げることはできません。したがって、本当に素晴らしいモノ開発コミュニティの一員である誰かがこれを読んだら、私とこの機能を必要とする他の多くの人を助けてください。3週間以来、私は何かをグーグルで検索し、それを取得するための独自の回避策を見つけようとしましたが、今まで成功していません. ここstackvoerflowのこの質問で私の問題が解決されない場合でも、私よりモノとハードコードの改善に優れている人をやる気にさせて、他の人がCANとモノで簡単に作業できるようにしたいと考えています. 基本的な問題は、変数 AF_CAN および PF_CAN がモノラルで実装されていないこと。値 29 の PF_CAN と AF_CAN を追加してこれらのファイルを調整することで最善を尽くしましたが、うまくいきません
すべて揃っているので助けてほしいのですが、すべてをまとめることはできません。C では、この方法で簡単にソケットを開くことができ、CAN バスは問題なく動作しますが、モノラルでは、すべてを機能させるには小さな石が欠けています。
よろしくベン
windows - SocketCAN over Ethernet
私たちのシナリオを簡単に説明しようと思います。
Windows ベースのシミュレーション ツール スイートと一緒に使用できるように、Ubuntu で実行されているシステムのシミュレーション環境をセットアップしたいと考えています。現在、Windows ホスト上の VirtualBox を使用して仮想マシンで Ubuntu を実行しています。Ubuntu では SocketCAN を使用しており、引き続き使用したいと考えていますが、実際の CAN ハードウェアを使用する代わりに、Windows ホストへのイーサネット経由の CAN 通信をセットアップします。
Linux での CAN は初めてですが、SocketCAN について読んでいて、仮想缶 (vcan) を何らかの方法で使用できるかどうか疑問に思っていました。
SocketCAN over Ethernet を実現できるかどうか、もしそうなら、どのように実現できるかを明確にする助けをいただければ幸いです。
arduino - 車の窓を制御するために CAN-BUS arduino シールドをプログラムする方法は?
私のプロジェクトは、音声認識を使用して車の窓を制御することです。EasyVR arduino シールドと arduino MEGA を使用して、いくつかの LED の制御に成功しました。ここで、CAN-BUS arduino シールドを使用してウィンドウを制御したいと考えています。
私が所有する車にはOBD-IIコネクタがないため、2つのCAN-BUS arduinoシールドを備えた2つのarduinoを使用して、1つを送信機、もう1つを受信機にしています。CAN-BUS arduino シールドをプログラムして車の窓のシミュレーションを行う方法がわかりません。
私が使用しているCAN-BUSシールド:https ://www.sparkfun.com/products/10039
Arduino メガ : https://www.sparkfun.com/products/11061