中身をのぞく

 「0」と「1」の世界

ノーマルECUの中身をのぞくと、「16進数」の羅列が現れる。実際には「0」「1」だけで記録されている。コンピューターには理解できるのだが、人間にはまったく内容が分からない。ROMチューンではこの中の一部だけを変更する。

 四角い箱の中にはどんな世界が広がっているのか。ノーマルECUに内蔵されているプログラムを吸い出し、パソコンに読み出してみると、画面には右のような数字の羅列が現れる。16進数といってコンピューターにとって都合が良い数字である。こんな調子で延々と続いていく。

 普段使っている10進数だと1から9まで進むと次は「10」となる。16進数だと1から9になると次は「A」。ABCDEと進んでいき、Fでちょうど15番目を迎えて位が上がり「10」となる。10進数の16である。16番目に位が上がるから16進数と呼ぶ。100は16進数で64と表すことができる。こんな奇妙な世界が広がっているのだ。

 16進数でさえ、人間にわかりやすく翻訳された形の数字で、コンピューターは基本的にスイッチが入っているか入っていないか、または電流が流れているかいないかと言い換えてもいいけれど、「0」か「1」しか理解できないから、チップの中に入っているデーターとは「10100110」といった2進数になる。上の16進数の羅列の中で「FF」とあれば、10進数では255を表し、実際には「11111111」と記憶されている。例えば、「AA」という16進数は10進数で170を表し、チップの中では「10101010」の2進数で記述されている。ちなみに「0」「1」といったデータ単体のことを「1ビット(bit)」と呼び、それが8個連なって8ビットになると「1バイト(byte)」と呼ぶ。NA6CEのECUが「8ビットコンピューター(CPU)」と呼ばれているのを聞いたことがある人もいるかもしれない。ばっさり簡単に表現してしまうと一度に8ビット「11111111」=255までの大きさのデータを扱える能力を表している。

 Freedomコンピューターは、16ビット「11111111 11111111」=65535までの大きさのデータを一度に扱うことができるチップを積んでいる。なんだか訳が分からないことになってきたからここら辺でやめよう。

 こんなことはあまり覚えなくてもいじることは可能なのだが、一応、コンピューターの中の世界を見るためには予備知識として何となく知っておく必要がある。インターネットを飛び交っているデータもパソコンで扱っているデータもすべては2進数だ。そんなことを気にしなくてもパソコンやインターネットが使えるのは、コンピューターが生まれて半世紀以上の積み重ねがあるからで、感謝しなくてはいけない。

右上にある一番大きなチップがCPU(中央演算装置)。黄色い場所にエンジンなどから来た信号がまとまった「ハーネス」が接続される。さまざまな回路を通って、CPUに入力された後、燃料噴射や点火の命令が出される。

 ECUの4つのねじだけで留められているふたを開けてみると、この通り。右上の大きなチップがCPU(中央演算装置)。水温センサーなどから来たアナログ信号を「0」と「1」で表現されたデジタル信号に変換してエンジンの状況を把握し、燃料噴射量や点火時期の制御をしている。

 NA6CEだと、でっかいチップの「CPU」に上で見たようなプログラムが内蔵されている。この中に入っているプログラムを変更するのがROMチューンという作業だ。

 チップの中にプログラムが内蔵されているから本来はいじりようがないのだが、内蔵されているプログラムを殺して、外部に後付けしたプログラムを読み出せるようにした「追加基盤」というものを使うことで、いじることが可能になっている。

 具体的には、はんだ付けされているCPUを丁寧に取り外して、代わりに追加基盤を取り付け、外したCPUを追加基盤に差すという方法をとる。ECUとCPUの間に追加基盤をサンドイッチし、プログラムだけ後付けしたチップから読み込ませるイメージ。そして、EP-ROMと呼ばれるICチップにチューンしたプログラムを書き込んで、追加基盤に差すのだ。

 ROMチューンでは、噴射量や点火時期を決めるマップを書き換えるのが一般的。マップとはだいたい下のようなイメージである。

 

1000
2000
3000
4000
5000
6000
7000
1
14.7
14.7
14.7
14.7
13.3
11.5
11.1
2
14.7
14.7
14.7
14.7
13.3
11.5
11.1
3
14.7
14.7
14.7
14.7
13.3
11.5
11.1
4
13.9
13.7
12.8
12.8
13.3
11.5
11.1
5
13.9
13.1
13.1
13.1
12.9
11.5
11.1
6
13.1
13.1
13.1
13.1
12.8
11.5
11.1
7
13.1
13.1
13.1
13.1
12.5
10.9
11.1
8
13.1
13.1
13.1
13.1
12.5
10.9
10.8
9
13.1
13.1
13.1
13.1
12.5
10.9
10.5

 これは燃料噴射を指示するためにコンピューター内にインプットされているデータのイメージを、簡略化したもの。横軸は回転数、縦軸はエアフロの信号を元に算出した吸入空気量を表す。下に行くほどアクセルを踏んでいるイメージ。本当はもう少し細かく(1000回転から500回転ごとに13段階と、吸入空気量が15段階)になっている。書かれている数字は空燃比を示す。本当は、理論空燃比14.7を基準に、どれだけ濃くするのかを指示している。表の中で14.7示されているところは実際には「0」が記入されている。10.5とされている場所には実際には16進数で「34」と書かれている。10進数に直すと52。

 これをどう使っているかというと、予測も交じるのだけれど、コンピューターの中でエアフロの信号と回転数からまず理論空燃比になるだけの燃料噴射量を計算し、表に指示してある分だけ燃料を増量しているらしい。7000回転の一番下の10.5なんて空燃比が実際に書き込まれているのだが、ターボ車じゃあるまいし、ありえない空燃比なわけで、壊されないようにエンジンの回転上昇を意図的に頭打ちにさせているメーカーの意図が伺える。

 14.7で埋まっている領域(実際には0で埋まっている)は、回転も低く負荷も低いので02センサーの信号によって理論空燃比に近づけるフィードバック制御をしている。O2センサーは理論空燃比より濃いか薄いかだけ分かるので、濃いときは燃料を減らし、薄くなったら燃料を増やす、という制御を一定のタイミングでしている。後付の空燃比計で調べてみると、濃いか薄いかだけのセンサーでかなり正確にコントロールしているのが分かる。

 このマップを修正して、パワーの出やすいとされる空燃比まで濃くしたり薄くしたりする。14.7と書かれている場所以外で薄目のところを濃く、濃いところを薄くするだけでがらりとエンジンの性格が変わるからおもしろい。

 有名なFireRoadsterで、ROMチューンの方法が詳しく解説されているし、さらに噴射マップと点火時期マップを手軽に変えることができるエクセルのマップがダウンロードできるから、NAロードスター乗りはかなり恵まれた環境にいる。しかし、いくら簡単にROMチューンができるとは言え、うっかりすればエンジンを壊してしまうから、変更にはきちんとした知識と細心の注意が必要である。

 

1000
2000
3000
4000
5000
6000
7000
1
10
19.3
30
31.8
27.1
30
30
2
12.2
25.1
31.6
33.6
30.7
31.6
31.6
3
14.4
23.1
28.7
32.4
27.8
28.7
28.7
4
4.22
17.3
26.9
28.7
24.9
25.8
25.8
5
-0.67
11.6
24
24.9
24
21.8
21.8
6
-1.78
9.56
16.2
17.6
24
20.7
20.7
7
-1.78
9.56
16.2
17.6
24
20.7
20.7
8
-1.78
9.56
16.2
17.6
24
20.7
20.7
9
-1.78
9.56
16.2
17.6
24
20.7
20.7

 点火時期はこんなイメージ。点火時期は500回転だから、14×15のマップが用意されている。実際は16進数の羅列であることは言わずもがな。

 これもけっこうマージンが取られていて、ROMチューンでいろいろ数値を変えることができる。ノッキングに気を付けながら進めていく(数値を大きくしていく)と見違える吹け方に変わる。圧縮比を上げて、ノッキングが出た場合は、遅らせることも可能だ。

 このほかに重要なのが回転上昇を止めるレブリミッタの変更である。ノーマルは7200回転で燃料噴射が止まるようになっているが、スポーツカーで7000回転ちょっとしか回せないのは物足りない。ROMチューンで吹け上がりが良くなると、物足りなさは倍増するわけで、ぜひ変えたいところ。

 NA6CEのROMチューンに必要な追加基盤を売っているGRIDというお店で、ノーマルのデータを購入する(8000円)と、チューンしやすいようにさまざまなところが変更してあってレブリミッタは最初から8333回転になっている。だから、ここのデータを使う限りは、レブリミッタで困ることはない。

 これがFreedomの噴射量マップを変更する画面である。載せたらまずいのかもしれないけれど、この画面を載せたってソフトの著作権は侵害しないから良いだろう(と思う)。ソフトもちゃんとお金を出して買ったのだし。

 縦軸が回転数で横軸が負圧センサーの信号から計算した吸気圧を示している。これがDジェトロのマップとなる。吸気圧が400mmHg、回転数が6000rpmまでしか表示されていないが、それぞれ右と下に隠れていて、カーソルを移動させればスクロールして見られるようになっている。回転数の軸は9000回転まで用意され、吸気圧は加給されたときにも対応していて1600mmHgまである。NAエンジンならば、850mmHgぐらいまでを使う。

 マップ上の数値は、その条件における充填効率に相当する値を表す。つまり、400ccの体積があるシリンダーのうち何ccまで吸えているかを表していると考えればよい。当然、アイドリングだとスロットルが閉じているのだから、ほとんど空気が吸えずに0.1〜0.2あたりの数値(空気が40〜80ccしか吸えていない)となり、アクセルを開いていくと1(=400cc)に近づいていく。本来なら400ccを超えて吸い込めない気がするのだが、「慣性加給効果」という現象も存在するから、1を超える場合もある。この数値を元にFreedomが燃料噴射量を計算し、さらに吸気温度によって補正を加えたりして、実際の噴射量を決める。

 エンジンにはさまざまな仕様があって回転数ごとの充填効率ががらりと変わるから、初期値ははっきり言って役に立たない。走ることは走るのだがぎくしゃくしたり、燃料噴射が多すぎて回転が上がらなかったりと、まともには走らないのだ。

 初期値でも走行は可能だが、これを1から入力したとすると、16×16=256のデータをきちんと入力する必要がある。実際はほとんど読まない部分もあるのだが、アクセル全開の領域を調子よく走らせようとするだけでかなりの労力が必要。僕の場合は、空燃比計を持っていて、Freedomがマップの数値を勝手に学習する「空燃比計連動機能」を備えているから付ける気になったが、そうでなかったら手を出さなかったと思う。

 お次は点火マップ。これは何となく点火時期部分にメーカー側の著作権が存在しそうな感じだったのでモザイクを入れた。一番試行錯誤が必要な部分であるし。基本的にハイオク対応のマップになっている。圧縮比9.4のエンジンでハイオクはもったいないので、レギュラー対応とするために、全体的に大幅に点火時期を遅らしてある。

 マップ以外にも膨大な数のパラメーターが存在する。お次はフルコンの真骨頂(悩みの種とも言う)とも言えるここら辺の紹介をば。

戻る