早起きして、ヤ○キー車両の祭典、もとい、カスタマイズ&チューニングカーの祭典、「Tokyo Auto Salon」に行ってきました。

今回も特別招待券をお手配いただきましたjuinさん、たいへんありがとうございました。0xF9EB
![]() | ||
Previous | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | Next 
早起きして、ヤ○キー車両の祭典、もとい、カスタマイズ&チューニングカーの祭典、「Tokyo Auto Salon」に行ってきました。

今回も特別招待券をお手配いただきましたjuinさん、たいへんありがとうございました。0xF9EB
0xF99B「ラブレター フロ~ム カナ~ダ~ッ!!」

唐突な出だしですが、届きました。カナダはオンタリオ州、ロンドンから、航空郵便が。0xF8E6

中央の28ピンのチップは、今回の主役、Elm Electronics社のOBD/RS-232Cインタプリタ、「ELM327」(32.50カナダ$)です。
手前の8ピンのチップは、Microchip Technology社のCANトランシーバ、「MCP2551」(5.00カナダ$)です。CANバスの差動信号を、TTLレベルの信号に変換してくれます。

OBD-IIコネクタと、コネクタピンです。4ピンしか使いませんが、万が一のことを考えて、8ピン分買いました。

秋月電子通商さんのUSB/シリアル変換モジュール、「AE-UM232R」(950円)です。
USARTからのシリアル信号は、RS-232Cレベルに変換して入出力するのが一般的ですが、最近のPCは、シリアルポート(COMポート)を持っていないことが多くなっています。(うちのVAIOクン達も)
そこで、USARTからのシリアル信号(TTLレベル)を、直接そのままUSBに変換し、ノートPCには、「バーチャルCOMポート」として接続することにします。
AE-UM232Rは、FTDI Chip社のUSB/USARTインタフェース、「FT232R」を使っています。モジュールは、24ピンDIPサイズに収められており、とても扱いやすくなっています。
(FT232Rを“生”で使っても良かったのですが、フラットパッケージのピンのピッチ幅が細か過ぎて、ハンダ付けが面倒くさそうなので、950円で解決)0xF9C7
〔関連情報〕
・MCP2551 DataSheet
・FT232R DataSheet
・FT232R Virtual COM Port Drivers
前回の続きです。
最終的には、CANインタフェースを持っている「PIC18F2480」などを使って、スタンドアロンで動作するモジュールを作ることを目標としていますが、まずは小手調べとして、CANバス上に流れているデータを、ノートPCでロギングするツールを作ることにします。
なぜにロギング・ツールから先に作るかというと、つぎのような理由に依ります。
CANプロトコルでは、標準で用意すべきPID(Parameter ID)の他に、メーカーで独自にPIDを割り当てることができるようになっています。BMWでも、車載されている多数のモジュール対して、独自のPIDを割り当てているでしょうから、CANバス上に流れている膨大なデータの中から希望の情報を取り出すためには、どのPIDにどのような情報が割り当てられているのか、一つ一つ対照していく必要があります。
いつも親切丁寧な「BMWカスタマー・サポート」のお姉さんに聞いても良いのですが、そんなこと教えてくれる筈もなく(当たり前だ)0xF9C7、独自に解析していかなければなりません。ほとんど全検索するぐらいの勢いで。
初めて作る「PIC18F2480」のCANインタフェースの動作チェックをしながら、CANバス上に流れているデータのチェックをしていたのでは、どちらをデバッグしているのか分からなくなってしまいます。
(「PIC18F2480」の評価用ボードは、ボッタクリだし、DIYの精神に反するので却下)
そこで、まずはノートPCに接続して、CANネットワークのデータを解析できる環境を作ることにします。
CANバス上に流れているデータを吸い出すために、便利なチップがあります。カナダのElm Electronics社が開発・販売している、「ELM327」というチップです。
このELM327を使うことにより、OBD-IIコネクタに出ているCANの信号を、RS-232Cのシリアル信号に変換することができます。

とりあえず、データシートにある標準回路をベースに、実験用の回路を作ってみました。
回路を考えていた時に、気付いた点を一つ。
ELM327のピンアサインを眺めていたところ、「何となく、PIC18Fファミリのピンアサインとよく似ているなぁ」と思っていたのですが、データシートをよくよく読んでみたところ(英文60ページ!!)、脚注に小さく、「ELM327は、PIC18F2x8xファミリのデバイスを用いています」との記述が・・・。
(なんだよ~、早く言ってよ~)0xF9C7
当初、ELM327をテストベッドとして、(BMWの)CANネットワークの解析をしてから、PIC18F2480のCコンパイラ用のCANライブラリの勉強をしようと思っていたのですが(これがなかなか難儀そう)、ELM327をうまく使えば、後者を省くことができそうです。
ということで、CANからRS-232CへのインタプリタとしてELM327を用いて、各種数値を視覚化するためのコントローラとして、一般的なPIC(PIC18Fファミリ等)を使うことにします。
(最終的に、モジュールの小型化を図る際には、PIC18F2480を使うかも知れませんが)
〔関連情報〕
・ELM327 DataSheet
・ELM327 QuickSheet
・ELM327 AT Commands
ALPINAのショールームがみなとみらい地区にオープンした、とは聞いていたのですが、まさかこんなに近くにあろうとは、しばらく気付きませんでした。

灯台もと暗し、うちのオフィスの真下にありました。0xF9C7
(横浜美術館の裏の方だと思っていたのですが)

お目当ての、「B3 BiTurbo Coupe」(車両本体価格:10,450,000円+α)。
M3 Coupeを購入する時にも、かなり迷ったのですが、いきなりALPINAに乗ってしまうと、ALPINAの素晴らしさが分からないように思えたので、まずは"究極のエンジン"に乗ってみることにしました。

BMW伝統のストレート6+ツインターボエンジン(N54B30)に、ALPINAのマイスターがさらにファインチューニングを施した、"至高のエンジン"。
("エンジン萌え"には、たまりません)0xF9CB

こちらは、「B3 BiTurbo Limousine」(車両本体価格:9,990,000円+α)。

「いつかは、ALPINA」。0xF9CF
これに触発されて、以前から気になっていたCAN(Controller Area Network)の勉強を始めました。

市販のツールやソフトを組み合わせて、「表示できた~っ!!」とか喜んでいてもレベルが低いので0xF9D1、以前から構想していた計画を実行に移すことにします。

最終的な目標は、NISSAN GT-Rのマルチファンクションメーターのように、各種情報を、M3 Coupeのセンターディスプレイに、ビジュアルに映し出すことです。
(完成は、いつになることやら・・・)0xF9C7
この本を読んだ時点では、CANインタフェースを内蔵しているMicrochip Technology社の「PIC18F2480」を使おうと思っていたのですが、この本に依ると、Renesas Technology社のM16C/Tinyシリーズ(M16C/29)やSuperHファミリ(SH7147)の方が、評価用ボードがいくつか出ていて、取り組みやすそうです。
にしても、久しぶりに難解な本を読みました。んがしかし、サンプルソースも公開されていて、CANインタフェースをトライ&エラーでねじ伏せるには、なかなか良さそうです。
(本業とは、ぜんぜん関係ないのですが・・・)0xF9C7
とりあえず、CANバス上に垂れ流されているデータを、OBD-IIポートから吸い出して、ノートPCでロギングするところまではできそうです。
縦G/横Gの情報は、iPhone本体の“いい加減な”加速度センサのデータではなく、車両側の「加速度センサモジュール」のデータを抜き出すことができます。
(PIDが分かれば、の話ですが)
できなければ、新たに「2軸加速度センサ」を取り付けて、縦G/横Gの情報を数値化したいと思います。
その他、「ヨーレートセンサモジュール」などのデータが抜き出せれば、もっと面白いことができるかも知れません。
いずれにしても、どうせ苦労して作るなら、市販のツールやソフトには無い機能を実現しようと思います。
(blogに書いちゃったんで、後には引けない・・・)0xF9C7
Previous | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | Next 