私は最近、C++ と LabVIEW で ELM-327 ベースの Bluetooth モジュールと通信して車の ECU から情報を取得するアプリケーションを開発しています。初期化シーケンスが失敗することもあれば、うまくいくこともあります。私が見つけたのは、ECU プロトコルの初期化の「キーワード」バイトが正しく検出されない場合があるということです。私のBluetoothモジュールが問題だと思います.合法的なELM-327の中国のクローンであることが判明したからです. どうすればそれを知ることができますか? コマンド ATI を発行すると、「ELM-327 ver. 1.5」と応答し、メーカーによると、1.5 バージョン =D をリリースしたことはありません。
私のために働いたのは次のようなものです:
- 通信を開始し、ATZ を送信します
- ATSP0
- ATSS (これにより、推奨されるプロトコル検索順序が有効になります)
- 010D
- 4. 失敗した場合、通信を閉じ、3 秒以上待ってから GO TO 1
- より多くの OBD-II または AT-コマンド。
BUSINIT:...ERROR 応答は、ELM-327 が ECU プロトコルのスタートアップ シーケンスを完了できなかったことを意味します。また、ISO-9141-2 または ISO-14230-4 KWP プロトコルを使用できる場合は、010C などの OBD-II コマンドを送信する前に、ATSI コマンドで通信を初期化できます。
完全自動検出に成功した後、コマンド ATDP を ELM-327 に送信すると、車が使用しているプロトコルを見つけることができます。
お役に立てれば。