先日、OBD-Ⅱコネクタを用いて車両情報の取得を試みたのですが
見事に玉砕しました。
ドングルは、某大陸製(^_^;)
アプリケーションは、その道でのTOPアプリの「TORQUE(free)」です。
(自分はそう思っています・・・)
他の車種ではその組み合わせで問題なく、あんなデータやそんなデータなど
取得して楽しく見ている方々がいるようです。
そもそもCAN通信って良く聞きますが、実際にはどんな物なんだろうと
思っている方もいると思いますので少々情報を。
暇なので・・・(^_^;)
【文書をだらだら書いていますので、読みにくいかも知れません・・・】
CANとは、「Controller Area Network」です。
パソコンのLAN「Local Area Network」はよく聞くと思いますが、
ま~親戚みたいなものです。
頭文字CとLが違うだけですから(笑)
LANは、パソコン間、サーバー間などの情報のやり取りに使われますが、
CANは、車の場合ECU(各コンピュータ)間のデータのやり取りに使われます。
パソコンでLANを使用しWEBページを開く場合、URLのアドレスに対して「画像、文字」頂戴と要求すると
WEBサーバーに蓄えられた「画像、文字」を要求元に送って来てくれます。
基本的には、要求に対して時間がかかるかも知れませんが「Html」を回答してくれます。
時たまタイムアウトとかしますが・・・
車のCAN通信も同様でCANバス(2本線で構成)対して「情報クレクレ」と発すると、
その情報を持っているECUが返事をしてくれます。
動き的にはLANもCANも同じですが、車でのCANバスは「制御情報」をやり取りしているので
無駄な待ち時間は許されません。
なので各ECUで発生する「情報クレクレ」に優先順位が付いています。
CANバスは2本しかありませんので、同時にECUが「情報クレクレ」とした場合、
声の大きい方(優先順位高い方)が優先され、声の小さい方(低い方)は黙ってしまう様に決められています。
そう言う取り決めです。
LANで「情報クレクレ」がぶつかる場合は、ハブなどが交通整理をしてデータをロストさせない様に頑張りますが、
CANではECU自身が判断しなければならない様になっています。
何も考えず「情報クレクレ」する人がいると、それぞれのECUが必要な情報が取れなくなります。
そのへんがアプリの作りの要になるのです。
例えば水温を1秒間に「情報クレクレ」を100回連呼しても「80℃」×100回、
1秒に1回呼び出しても「80℃」たいした違いはありません。
100回連呼は無駄になり、ほかの優先度が低い情報を収集する機会が減ります。
(極端な例ですがその為優先順位があります)
エンジンを廻すには、回転数、油温、水温、O2センサーなど各種の情報が必要です。
それらの情報はエンジンECUにセンサーが繋がっていて直接取り込まれます。
その情報をCAN通信を使って「情報クレクレ」するのが、表示アプリになります。
アプリは刻一刻変る情報をリアルタイムで取得する必要があるため、
各ECUに対してやっぱ「情報クレクレ」を連発するのです。
その様なやり取りで「TORQUE」などの秀作アプリと思います。
話がずれちゃいましたが、CAN通信の基本なんてそんなものです。
ただ、実際にアプリを作成するにはBluetoothやEML327などの知識が必要です。
ここにルネサス(三菱、トヨタなどにECU提供)から、出ている「
CAN 入門書」がありましたので紹介しときます。
http://documentation.renesas.com/doc/products/mpumcu/apn/rjj05b0937_canap.pdf
そんなに難しく書いてありませんし、45ページなので興味ある方は読んでみては・・・
それにしても、アイはなぜ動かないんでしょうか orz
Posted at 2012/01/30 16:29:07 | |
トラックバック(0) |
ECU | クルマ