OBDIIアダプタを接続し車両側のCANからデータを取得すると、車両側に影響を与える場合がある。
これに気づいたのはミニのトランスミッションの動きからだった。
停車中にショックを感じたことが最初だったのだが、何が起きたのかはよく分からなかった。
停車中はニュートラルにシフトされるのだが、それが1速に入ったようなシフトショックではない。
あたかもロックアップクラッチがエンゲージしたような、強いショックを感じた。
ただショックは一瞬で、エンジンがストールすることも、車が動き出す事もなかった。
もしもロックアップクラッチがエンゲージしたままになれば、車両は停止中なのでエンジンはストールする。
これはその時だけのことで、その後は何事もなかった。
しかし1ヶ月位したとき、今度は低速走行中に同様の事が起きた。
低速走行時だったのでショックは少なかったが、それでも体に感じるほどだった。
ISTAでエラーを見てみると、トランスミッションのトルクセンサの異常が残っていた。
他にもリアデフォッガの断線や短絡など、いくつかのエラーが記録されていた。
ただしエラーは継続しておらず、その時だけのものとなっていた。
しばらくそのまま乗っていたが、不具合は感じられなかった。
どこかの接触不良だったのかな?程度に思っていたのだが、BMWとアイシン製トランスミッションの組み合わせ車両において、OBDII端子にアクセサリを接続するとシフト不良が起きる的な記事を見つけた。
そこでOBDII端子からレーダ探知機を外し、様子を見ているというのがこの動画である。
それから2ヶ月ほど経ったのでISTAでエラーを確認してみた。
すると何もエラーが出ていない。
エラーが出ないのが普通なのだが、OBDII端子にレーダ探知機を付けているときにはエラーが出ていた。
エラーを消去しても1週間ほどすればエラーは再現していたのである。
もう少し長期で様子を見ないといけないとは思うが、とりあえずはエラーが発生していない。
また2ヶ月位経ったら、もう一度チェックしようと思う。
レーダ探知機をOBDII端子に接続すると様々な情報が取得できて便利なのだが、データリクエストの周期が短くてCANのBUSを混雑させるのではないだろうか。
エンジン回転数や吸入管圧力、速度などは余りタイムラグがあると役に立たない。
こうなると自ずとデータリクエストも頻繁に出す必要がある。
OBDIIとレーダ探知機間のインタフェースを自分で作れば好きに出来るのだが、それにはレーダ探知機とOBDIIアダプタ間の通信を解析しなければならない。
さほど長いデータ列ではないと思うのでオシロやロジックアナライザで解析は出来ると思うが、そこから更に車両側に与える影響を調べるのはCANアナライザでもないと大変だ。
OBDIIアダプタはCANの状態をチェックして、レーダ探知機に供給する電力をスイッチしている。
OBDII端子はバッテリー直結なので、そこに接続したのではエンジンをOFFにしてもレーダ探知機の電源が切れない。
そこでOBDIIアダプタが電源制御を行うのだが、これの誤動作の痕跡もLogに残っていた。
スタンバイ電流が過大だというエラーと、スタンバイ電流が過大なので常時電源をOFFにしたというアラートだった。
OBDIIアダプタを外すとこれも当然出なくなったので、電源系の誤作動も起きていた可能性がある。
この電源制御異常はメーカも把握しているようなのだが、どの車両でも必ずスタンバイ電流が増えるわけではないとのことで、対応が難しいのだそうだ。
ではOBDIIアダプタに行く電源線を、バッテリー直結ではなくアクセサリ電源にしたらどうか?
これだとキーオフの時には電圧が印加されないので、OBDIIアダプタにも電圧がかからなくなる。
電源的には良いとしてもCANのバスが等価的にプルダウンされる可能性があるので、CANのバスに影響を与える事がある。
ブリッツのOBDIIアダプタは電源をACCから配線するような構造になっているので、電源を切った状態で規定のインピーダンスを持つようになっているのかも。
アクティブプルアップの場合はデバイスに対して電流が流れ込む可能性があるので、電源を切った状態でCANのバスに接続すると問題が出る場合がある。
最近の車両はスタンバイ時でもCANバスにデータが流れているので、バスの状態で電源を切り替えるのは難しいと判断したのだろう。
OBDIIアダプタ自体の消費電流は20mA程度の間欠動作なので気にすることはないが、レーダ探知機に電源が入ってしまうと数百mAの電流が流れる。
またOBDIIアダプタからのデータリクエストによって、車両側の機器がアクティブ状態に移行してしまう場合もある。
バッテリーを充電した話を以前に書いた。
車に乗ったときにバッテリ電圧が12Vを下回っていたら充電するよ、みたいな話である。
しかしOBDIIアダプタを外しておくと、少なくとも1週間位車に乗らなくてもバッテリーの電圧は12Vを下回らなくなった。
つまりミニにおいても消費電力の増大が起きていた可能性が高い。
エラーログは車両テスタソフトを使えば見ることが出来る。
スマートフォンでチェックできるアプリがあるが、アプリによってはその時に発生しているエラーしか表示が出来ない場合があり、エラーの記録(現在は正常になっているもの)が見られるかどうかの確認が必要だ。
CAN通信はP2Pだけだと誤解している人もいるのだが、いわゆるUDPのような垂れ流しのデータもある。
車速信号などは常時バスを流れている可能性が高いので、こうしたものだけを拾ってモニタすれば理屈の上ではバスの負荷にならない。
ただブロードキャスト的に流されているデータにもIDが振られているので、それを解析しなければ受信は出来ない。
また車速信号などの他でも、他のユニットやセンサとの通信が起きるので、そのデータを盗み見る仕組みであれば負荷は小さく出来る。
これも特定の車種やメーカだけであれば出来るが、市販品としてこの方法は成立しない。
CANバスの分岐は問題はない。
ケーブル長とノード数だけ守れば、いくらでも機器をぶら下げることが出来るのは、有線LAN(10BASE2/10BASE5)あるいはWiFi同様である。
分岐がダメと言っている人が多く、人それぞれ理由が異なる。
線が長くなるからダメだとか、分岐が想定されていないとか。
これは経験的に、分岐させて色々な機械を接続したらエラーが出たから、みたいな事かな。
CANのノード間距離の最大は500kbpsの場合で100mである。
従って多少電線を接続した位で云々という事はない。
少し注意が必要なのはスタブ長が30cm(1Mbpsの場合)に制限されていることで、非終端ノードを接続する場合には注意を要する。
CANバス接続機器のインピーダンスは12kΩ~100kΩと規定されている。
(この他にバスの端に付ける120Ωの終端抵抗がある)
ノード数の最大は規格上(ISO11898)は32個なので、10kΩのインピーダンスを持つノードを32個接続すると、バス上のインピーダンスは312.5Ωになる。
実際には物理特性とコリジョンに依存することになるので、32個以上のノードを接続することが出来る。
ただし物理規格の最小インピーダンスを守る必要がある。
論理的、つまりID数は標準で11ビット、拡張仕様で29ビットなので、CANの使われる環境を考えると無限と言っても良い。
コメント
国産車でも車種や年式によって、OBDⅡに社外のアクセサリー類を接続すると純正セキュリティの機能が停止する車両がありますね。