理解力と記憶力がなさ過ぎるんじゃないの? としばしば思うことがあるので、自分なりにまとめノートを作ってみることにしました。
ネット環境があれば見られるようにブログに書いておきます。
しかも信号線1本(差動なので2本だけど)でどうやってんのってことでちょっとイメージ図を書いてみました。
要は1本の紐を隙を見て揺すっているような感じなんだと思います。
紐が揺れている様は他のみんなが観察できるというわけで、相手を特定せずに送信でき、誰もがマスターになれるというわけですね。
ネェ マスター 揺すってやってよ なんつって。
通信はデータを要求して送ってもらうこともできますが、垂れ流しになっているのを必要なら見るというパターンが多いらしいです。
CANとOBD-IIの関係が長らく分からなかったんですが、ようやく分かってきた気がします。
CANのメッセージはメーカー毎に色々あって今更統一できないので、CANメッセージの一部を使って統一したやり取りを決めようってことなんだと思います。
詳しいことは有名なWikiの解説を見ていただくとして、これまた自分なりにまとめてみました。
OBDではECUに対してデータを要求して送ってもらう手順を踏みます。
故障診断用の端末を接続してデータを吸い出すことが主目的のようですのでさもありなんですね。
CANではノードに特定のIDは必要ありませんが、OBDプロトコルではOBDでの問い合わせに対して返答を返すノードはIDを持つようです。
OBD対応ノードは8つまで存在可能で、IDの範囲は7e0〓7e7に決められています。
これはOBDのノードIDでもありCANのメッセージIDにもなっているわけですね。
データの要求はメッセージ7dfを発行することで全てのOBD対応ノードに対して行うことができます。
そして、要求されたPIDの処理を担当しているノードが返答するわけですね。
その際、自分のIDに8を足したものをメッセージIDとして返すようになっていますので、メッセージIDを見ればOBDの返答だと分かります。
メッセージの受信方法についてはCANコントローラーによりますので別の記事で。
セコメントをする