ソフトがわかるとハードがわかる気がする

どうも、おれです。

やっとわかってきたよFC3SのROMの中身。
いや、弄るMAPとかはわりとすぐにわかったんだけど、構造的なものが見えてきたというか開発者の意図が見えてきた。

トップ画像はそのイメージ図。
ROMを上から順番になぞっていくとこんな感じになっている。

でも、データ領域の各MAPは下から順に積み上げて構築していってるように見えるんだよ。

普通文章を書くならタイトル→本文の順でしょ?
それが上から読んでいくと本文→タイトルの順のように見える

MAPのヘッダ情報というか前提条件が格子状のMAPの下に書かれているんだよ。

だからオヤオヤ?う~ん?って思ってたんだ。

燃料、点火、その下が図では一応「?」にしてるんだけどおそらくメタリングオイルポンプかな、でブーストの順に書いてある。

でも読み解く順番は真逆の、

プログラム領域のすぐ上のブースト関連。
メタリングオイルポンプ。
その上が点火。
その上が燃料。

といった順。

あ、読み「解く」順番ね。CPUが読みに行く順序では無いからね。
いや、どうだろう?
トレーサーで見ればわかる?でも速すぎてわからないかも。

 

まずブーストを決めることで、エンジンの総排気量というか吸気量というかエンジンの実質の容量を決めることで、エンジンの負荷が決まってくるでしょ。
次にその負荷に対して必要なオイル量を決めなきゃいけない。
で、どの周期でクランクが回るかの設定をするので点火が決まってきて、最後にそのタイミングで噴射する燃料の量を決める。

そう、ECUの中もエンジン自体のアーキテクチャに沿った形でくみ上げられてるんだな、ということなんだ。

だから何?って感じ?(笑)

まぁそのことが分かったところで何がどう、ってことは無いんだけど(^^;
でもデータを決める際の「重さ」の順、影響力の大きさがわかるんだよね。

燃料の量を多少上下したところで、点火への影響は無い。
燃料を少なくしすぎてノッキングするからって点火MAPでリタードするなんてナンセンスだし、多いからって進角するのもまたナンセンス。

逆にブーストが変わるってことはエンジンの容量が変わる=エンジンそのものがガラッと変わるくらいの影響力があるんだね。
燃焼速度も変わるので点火もセットしなきゃだし、燃料もそれに合わせてセットしていかないといけない。

この構造がわかることで、EcoCPUの5Dを3Fにしている意味がわかったし、燃料補正MAP下のエアフロ&基本燃料噴射MAPの大幅な「減量」の意味がわかった。
ていうかこれが無ければ基本燃料噴射MAPだということすらちょっと読み解けなかったかも。

逆アセンブル、逆コンパイルしないでHEXデータをシコシコ比較検討するだけでなんとかかんとかここまでこぎ着けられた。
超~頑張った。
エンジンとか燃焼とかの論文や書籍など、カジる程度とは言え結構読み込んだっていうことも当然ある。

ECUの仕様書が手に入ればもっと確度の高いことが言えるんだけどな~。
でも、ある程度機材が揃った環境で育ったメカなら、仕様書とかなくても全然わかるようになるんだろうな、という印象。
おそらく、FD8bitもロードスターも同じ構造っぽいので結構読めると思う。
サンプルデータくれ。(笑)

 

まだまだ回収できないデータやフラグがあるので、まだまだ研究(自慰行為)は続く。

おすすめの記事