2015-01-05

CANUSB (CAN to USB Dongle)

CANUSB
猫様と暮らしているため、泊りでのお出かけは基本NG。
年末年始は、部屋に籠って CANUSB で遊んでました。一昨年の夏に買ってから、一度も袋から出さずに死蔵してたのを漸く開封。

CANUSB。
簡単に言えば、NCロドの OBD-II コネクタに接続。PCからはUSB経由でデータが見られるというもの。
Windowsタブレットを買った事もあり、車内でデータ見る環境が手軽になったので、やっとイジってみる気に。

◆ハードウェア
PCの他に必要なモノ。
  • CANUSB
  • OBD-II → D-Sub9pin ケーブル
共にコンパスラブで買えます。ケーブルは自作しても良いけど、どうせ製品のようなクオリティは出せないから、買ったほうが満足すると思います。



◆ドライバインストールの流れ
TeraTermとかのターミナルソフトで、CANのデータフレームを眺める...という使い方なら、PCに仮想COMポートドライバ(VCP)を入れる事になります。
  1. can232.comから「FTDI driver」をダウンロード
  2. ドライバをインストール。(まず「D2XX」ドライバがインストールされる)
  3. デバイスマネージャのUSBノードにある「Lawicel CANUSB」詳細設定から「VCPをロードする」にチェック
  4. 再び、ドライバをインストール。(今度は、VCPドライバが入る)
の手順。

◆ドライバインストール前の手順 (for Windows8.1)
ワシの持ってるWindowsタブレットはWin8.1。基本的には、認証されてないドライバはインストールできません。裏を返せば、例外的には入れる事が可能です。ドライバインストールの前に下準備。
  1. セキュアブートを解除する
  2. PCをテストモードで起動、「ドライバ署名の強制」を無効化
この辺り、あまりハードル下げるのも良くないと考えますので、上記キーワードを記すのみにしておきます(ググれば出るので)。
手順2については、Lawicel のサイトに bcdedit コマンドの使い方が載ってます。

◆車両と接続
ハードは揃った。ドライバも入った。デバイスマネージャでCANUSBのCOMポート番号も判ってる。とりあえず、TeraTermで通信する!
OBD-II コネクタ→CANUSB→PCと繋いで、エンジンかけて、TeraTerm起動。
  1. TeraTermでCOMポートを開く(9600bps、送信:CR、受信:CR+LF、ロカールエコー)
  2. 「V」(大文字)と打つと、バージョンが返るハズ "V1011" とか
  3. 「S6」CANの通信速度設定。Setup 500Kbit
  4. 「O」(大文字のオー)で、チャンネルオープン
  5. 「C」(大文字のシー)で、チャンネルクローズ
オープンすると、ダラダラと「t」コマンドが流れてくるハズ。標準11bitデータフレームというものらしいです。CANUSBでは、Byte単位で扱えるようになってます。CANの仕様書よりもCANUSBのマニュアルを見る。

◆解析
車両に流れるCAN通信のデータを見る事ができましたが...どの数値が何を意味しているのかは、不明。年末年始は、受信した「t」コマンドをID毎に振り分けて表示するプログラムとか作ってずっと解析作業。
AIMのページを見てて、MX-5では下記の情報がOBD-IIから取れるらしいんだけど...。
  • RPM
  • Front left wheel speed
  • Front right wheel speed
  • Rear left wheel speed
  • Rear right wheel speed
  • Brake pressure
  • Brake
  • ABS alarm
  • Pedal position sensor
  • Clutch switch
  • Water temperature
  • Intake Air temperature
  • Steering angle
  • Engine load
  • Lambda value
  • Advance
  • Catalyst Temperature
  • Fuel level
1/3くらいはアタリがついたんだけど残りは...ぬぅ。