屋根裏部屋SE > 日産デュアリス > デジタルタコメーターの自作 > ECUのハックその1

<トップページに戻る>



日産デュアリス 作業メモ
車内LAN解析 & 外部メータ作成

デュアリスのECUをハック − その1
[2008/05/03 K2000]


故障診断コネクタの規格を調べる
2008年2月――デュアリスの納車(2007年7月7日)から半年が過ぎた頃、たまたまネットで車載のエコ商品を見かけたのをきっかけに、もしかしてコレ自作できるんじゃねえかってことで、早速調べ始めました。調査から部品調達、完成まで約2ヶ月間の道のりです。


まず最初に、私は車両診断コネクタがどういうものか全く知らないので調べます。

市販のエコ機器を見ると自動車メーカーを問わず接続できるように書かれているので何らかの統一規格が存在しているような気がします。 それを踏まえて調べてみると、これが意外と複雑――車両診断コネクタには幾つかの規格が存在します。欧米ではかなり徹底された規格統一化によりISOで標準化されたプロトコルとOBD2の採用が義務づけられていますが、日本ではコネクタの形状だけがOBD2で中身は独自プロトコルなんてことも珍しくないようです。 実に厄介ですね・・・私のデュアリスは、どの規格を使っているのでしょう?

日産が発表した2006/11/16のニュースによれば三世代目の故障診断システム「CONSULT-V」が導入されているはずです。CONSULT-Vの採用プロトコルはCAN――CANはシリアルバスの一種ですが、ノイズ対策と高速通信を実現するためUSBにも採用されている差動信号が使われます――デュアリスの配線図にもCANバスに繋がるコンビネーションメーターとインテリジェントキーユニット、そして日産ではDDL2と呼ばれているOBD2車両診断コネクタの6番と14番に繋がっています。OBD2におけるCANバスの位置は6番/14番とISOで決められています。ということで、デュアリスはOBD2のCANバスで決まりでしょう。

ちなみにコネクタの場所は運転席足下。OBD2ではこの設置場所もISOで決められています。ところで配線を見てみるとラインの合計は7本あります。

4 Chassis Ground
5 Signal Ground
6 CAN High (J-2284)
7 ISO9141-2 K-Line
8 Ignition (?)
14 CAN Low (J-2284)
16 Battery Power

CAN通信に必要なのは5/6/14番の3本と、必要に応じて16番の電源です。4番はシャーシアースなので無視して構わないでしょう。残る7/8番はネットで調べていて、たぶんそうじゃないかという当てずっぽうです。8番はテスタで計る限りイグニッション的な動作をしているし、7番のK-Lineもまず間違いないと思うのですが・・・。



ELM327
今回の目的はマイコンで車両情報を表示することです。もちろんその前に信号の内容を把握する必要があるのでPCにも接続したいところです。では、どのようにしてCANの信号をマイコンやPCが判る形にできるのか――調べてみると、CANの信号をPCで読み出せる機器が実際に売られているようです。

・株式会社コンパス・ラブ 「CAN to RS232」 (CANBUS-RS232Cコンバータ)
・OBD2CABLES.com (恐らくOBD2製品に関する米国の大御所)
・ScanTool.net 「ElmScan5」 (CANBUS-RS232C/USB/Bluetoothコンバータ)
・KVASER (CANデータロガー付きCANBUS-USBコンバータ)
・millisi.jp 「OBD-2 scan instruments」 (CANBUS-USB/Bluetoothコンバータ)
・Ross-Tech 「VAG-COM」 (CANBUS-USBコンバータ)

上記以外にも、まだまだあります。但し日本製はありません。どうやらOBD2がマイナーなのは日本だけで、欧米ではメジャーな存在のようです。とりあえずマイコン制御が目的なのでUSBやBluetoothでPCとダイレクトに繋ぐ機器は論外です。残るCAN232とElmScan5ですが、マイコン接続が目的ならばかなり理想に近い装置です。実際多くの自作屋さんもコレを使ってマイコン接続を実現しているようです。

――でも高い。日本では対応していない車種も結構あるそうで、もしデュアリスに使えなかったら洒落にならない出費になります。それに微妙に美しくない。できればシンプルに、かつコンパクトしたい。単刀直入に言えばCANとマイコンをサクッと繋げられるICが欲しい。

早速調べてみると、どうやらCANに対応したPIC18系の一部やdsPICなどがあるらしい。でも正直なところCANなんてプロトコル今回初めて知ったレベルなので扱いきれそうにありません。いや、それ以前に手持ちの旧式ライタでは目的のPICを焼くことすらできません。そんなわけでPICを使う線はパス。できれば上記製品のように何も考えずにCAN-RS232なんて便利なことができるICが欲しいところです。

そこで気になったのが、ElmScan5に使われているらしいELM323やELM327という名前のIC。なんぞやと思って調べてみると、これがなんとOBDの信号をRS232に変換してくれる便利なICではないかと。しかもELM327に至っては現時点でのあらゆるOBDのプロトコルをサポートしている。まさに理想のIC!

そんなわけで注文しました。1週間後カナダからはるばる空輸便で到着。ELM327はプロトコルコンバータであり単体ではCANの差動信号を解析できないのでMCP2551というCANトランシーバを使います。ここで買うのは割高ですが日本で注文しても送料で相殺されてしまうので一緒に注文しました。



OBD2コネクタ
診断コネクタに接続するためのオスコネクタです。
別に無くても作れるのですが、デバッグ中は何度も抜き差しするだろうということで念のために準備。

しかし、これまた日本国内ではほとんど流通していないコネクタで私が知る限りでは北海道のネットショップでしか扱っていません(海外では買えると思うけど)。ピンは6本購入。カバーは使わないので購入していません。



TTL-USB変換モジュール
これで一応CANをRS232にコンバートする件は解決。次はデュアリスが吐き出すデータの中身がわからんことには話にならないのでPCと接続させます。

回路内のシリアルデータはTTLなのでレベルコンバータを組めば済む話ですが、もっとスマートにUSBでサクッと繋げられる方法があります。

使用するのは秋月のUSBシリアル変換モジュール。他社からも色々出ていますが、これは安くて多機能でDIPなので、とても使いやすい。



電源
最後に電源。
PC接続ならUSBから簡単に電源は取れますがマイコン接続を考えたら車両から確保したいところです。問題はどのようにして車両の不安定な電源から安定した5Vを確保するか。

丁度良いものがあります。 100均で売られているシガーソケット型充電器です。

もとの基板のままでは非常に使い難いので部品を全て引っぺがして回路を組み直しました。唯一違うのは10KΩの可変抵抗器で出力電圧を1.25Vから9.6Vまで自由に変えられるところです。「気の迷い」さんの記事通りで、なんのひねりもありませんけど(^_^;

ここで一つ問題が。OBD2の電源ピンを期待していたのですが、調べてみるとACCに関係なく常に12Vが流れているんです・・・もしかしてバッ直ですかこれ。エンジン回ってもいないのに電気流れたら困ります。

ちなみに日産独自の規格か、pin8にイグニッションが来ているような雰囲気なので、最終的にそこから電源を確保できれば良いなと。

もしも電力不足になりそうな場合は600mAの制限抵抗を変えて1.3Aまで引き上げる予定です。ちなみにICの定格は1.5A。計算上はこのままでもイケるはず。



PC接続
全てのパーツが揃ったので早速I/Fボードを作りました。CAN関係の回路だけを抽出したELM327のデータシートに載っているまんまの回路です。LEDはスペースが作れなくてUSBモジュールの下に配置。デバッグ中しか見ないだろうから構いません。

車両には繋げず、まずはPCの接続をチェック。ATコマンドを投げてみると正常にレスポンスが。通電端子に+V5をかけて電源検査要求(ATRV)を投げるとしっかり5V(前後)の数値が。 イイ感じ。 期待大です。

早速デュアリスに繋げて・・・ダメでした。スキャンソフトはもちろん、ターミナルから直に命令を投げても「CAN ERROR」しか返しません。

回路を何度見直しても異常は見当たらず。テスタで車両側CANの信号線を調べてみるとしっかり何かの信号が流れている。MCP2551を通してみると、やはり問題なくRXDから信号が流れてる――つまり、少なくともMCP2551までの回路に異常はないということです。となると問題はそれ以降。

一つ疑問なのは、MCP2551からCAN信号が駄々漏れ状態になっているはずなのにELM327のOBD受信ステータスLEDが全く光らないこと。

そこで通信速度やID長の問題を疑って、お馴染みVC++でELM327のCAN設定の全組み合わせを自動でやらせるプログラム組んで走らせるも全ての組み合わせで「CAN ERROR」。 終いには信号の減衰やノイズを疑って3m近くあったOBDケーブルをおもいきってカット。でも状況は全く変わらず。

どうして?(汗)
 




 


<トップページに戻る>

データの無断転載/無断使用を禁じます