【免責:本記事は,筆者の知識の範囲内での考察です.あくまで参考程度にしてください.有識者からの補足やご教示あれば幸いです.】
以下の整備手帳で,不作法なOBD機器でのモニタリングは良くないと述べた.
[整備] #GRヤリス CANchecked MFD32 #2 OBD接続でのモニタリングは危険なのか,https://minkara.carview.co.jp/userid/3360006/car/3112141/7709828/note.aspx
どんなのが不作法かというと主に
(1) OBDで規定されていないIDのメッセージ送信
(2) 尋常ではない頻度やおかしなタイミングでのメッセージリクエスト
の2つ.
(1) については,車両独自のIDとかで制御していたり,場合によってはECUの内容を書き換えたりもできるような機能も入っているかもしれないので,下手に触ることなかれ.
逆に言えば,ちゃんとお作法を守っていれば変になることはない.CANの物理層のエラー訂正は強力だし,純正機器はそれなりにちゃんと作り込まれていて,変な要求には応答しないようになってたり,想定できる程度の変な挙動に対してはフェイルセーフがちゃんと実装されている.
問題は (2) である.
CANってのいうのはバス型通信と言って,共通の信号線であるバスを共用してデータ通信をする.
2つ以上の機器がバスにぶら下がっていて,同時には1つの機器しか送信しない.
もし同時に2つの機器が送信してしまうと信号がぶつかって読めなくなってしまう.
行儀の良い機器はちゃんとバスが空いているか調べてから送信したり,信号の衝突の発生をちゃんと検出して,再発しないように配慮する.
一般的なCANは500kHzのボーレートなので,500kbpsが送信できるデータの上限となる.
十分バスが空いていれば,各機器が好きなタイミングで送信しても通信が衝突することはないのだが,2つ以上の送信元の機器があるときにバスの使用率が6割を超えてくると高確率で衝突して,ちゃんとルールを守らない通信だとほとんどのデータが読めなくなってしまうことがある.
これが前の記事で「バス使用率40%は割と多いなぁ」と思った理由.
さて,ここに下品なOBDモニタリング機器を付けて,アホみたいな頻度でデータリクエスト送るとどうなるかは想像に難くない.
また,単に「OBDポートは分岐してはダメ」というのではなく(電気的特性はおいておいて),勝手なタイミングでデータリクエストを出す機器を複数つなげると危ないよねというのはこういう理由である.
CANにつながる機器は,自分が送受信したデータフレームが衝突したかどうかをカウントする機能を持っていて,それが一定を超えると送信を控えたり,自身を停止したりする.
つまり純正部品のようにお行儀のよい機器は,自分の通信がダメだと自分は故障しているかもしれないと自己診断をして,機能を止めてしまうのである.
お行儀の悪いOBD機器を付けて純正機器の通信を潰したりすると,純正機器が機能停止する.そしてこれはイグニッションオフでリセットされるのではなく(そうするとすぐ再発するからそうならないように設計されている),外からリセットしてあげないと復活しない.
酷く病んでしまったGRヤリスが単純なECUのエラーリセットで復帰しないとか言われているのは,この辺が原因じゃないかなと推測.
CANにつながってて通信エラーカウンタが飽和した機器をそれぞれリセットして起こしてあげないと.
私は自動車のコンピュータの専門家ではないため,この辺の考察が限界.
みなさま,Happy GRヤリス Lifeを!
Posted at 2024/03/20 13:05:16 | |
トラックバック(0) |
GRヤリスの技術・整備関連 | クルマ