Keywords: Fuel-Injection ECU EFI SUBARU WRX Impreza STI M37700 M37781 MELPS7700.

スバル EJ20用ECUの解析

ec2-18-223-195-127.us-east-2.compute.amazonaws.com , 155707th 1998/05/09 UPDATED

無保証
UNDER CONSTRUCTION

[ENGLISH]

宣伝情報

GC8用 PowerFCの解析
MELPS7700シリーズ用逆アセンブラ
スバル用ECUモニターの製作
センターデフのコントローラ

解析ログ

1996.4.1	納車
1996.4.10	開発中ROM流出品入手
1996.4.13	使用CPU判明
1996.4.18	CPUマニュアル入手
1996.4.18	逆アセンブラ製作開始
1996.7.17	通信I/F回路解析
1996.7.18	逆アセンブラ完成、解析開始
1996.7.20	通信ルーチン発見
1996.8.10	RS232Cアダプタ完成
1996.8.16	自分の車のROM読み出し完了
1996.8.21	チェックサムルーチン発見
1996.8.23	アクセル開度アドレス発見
1996.8.24	外部ROM基板用部品買い出し
1996.8.26	水温アドレス発見
1996.9.5	エアフロアドレス発見
		スピードリミッタ発見
		エンジン負荷アドレス発見(検証中)
		回転数アドレス発見
		ROM基板製作開始
1996.9.6	バッテリ電圧アドレス発見
1996.9.11	ROM基板完成, スピードリミッタカット
1996.9.17	レブリミッタ, ブーストマップ情報入手
1996.9.23	スタータSW,エアコンSW,パワステSW,
		DテストSW,リードメモリSW,ニュートラルSW
		アクセルSW,アイドルSWアドレス発見
1996.9.25	点火時期モニタ, インジェクタ開弁タイマーアドレス発見

今後の予定	ワークエリアスパイプログラムの埋め込み
		マップ校正用ワークSRAM追加
		スパイプログラム用ROMエリア拡大

CPUについて

ピン接続から調べたところ、三菱の16bitマイコン M377xxらしい事がわかりました。
M377xx用逆アセンブラが利用可能です。

外部ROMの使用方法

このCPUは NUAと呼ばれる端子を HIレベルにすると内蔵ROMが無効になりますが、その端子は基板上の J1というジャンパを介して GNDに接続されています。 つまり、J1をカットするわけです。

外部ROM用のソケットには 富士通製の MBM27C1028を使うことになっているようです。 ところが、このROMは廃盤品でどこにも売っていないので、 ROMのアダプタを使って 27C256の2個使用で代用します。


試作追加基板装着例
試作追加基板の表
試作追加基板の裏

内蔵ROMの読み出し

内蔵ROMのチェック用にメモリーリードコネクタと呼ばれる9Pの端子がブレーキペダルの上の方にあります。 このコネクタは平成5年モデルまでのレガシーのカーステのコネクタと外形が同一です。 その端子を操作すると内部メモリを参照できます。この機能を利用して スバル用ECUモニターの製作を計画中です

セレクトモニターコネクター


インターフェースの電圧レベルは 5Vです。

ECU内の通信ポート周辺



RS-232Cレベルコンバーター外観
RS-232Cレベルコンバーター回路図

通信処理ルーチンを解析してみましたが、リードコマンドとライトコマンドしか見つかりませんでした。 おそらく、動作中のエンジンデータはプログラムのワークエリアから直接読みとるのでしょう。

通信フォーマットはデフォルトのバイナリーモードの他にアスキーモードも存在するようです。
通信速度はアスキーモード時で φ/832(4,808.9bps), バイナリモード時で φ/2048(1,953.6bps)に設定されるようです。 なお、CPUクロックは 8.0020MHzです。 また、アスキーモードは8ビットストップビット1パリティーなしですが、バイナリーモードは8ビットストップビット1偶数パリティとなっているようです。

レガシーやインプレッサの場合は、1024μsに1回通信処理ルーチンへのコールを持った割り込み処理がコールされます。 ワークエリアのある部分の値を変化させるとデフォルトのバイナリーモードからアスキーモードに移行します。 アスキーモードは移行時に通信速度を変化させますが、バイナリーモードに戻るときには通信速度を元に戻しません。 一度移行してすぐにバイナリモードに戻せば通信速度をUPする事ができます。 また、バイナリーモードのままでも直接UARTの通信速度設定を操作すれば 9,600bps程度まで速めることも可能だと思います。 コマンドの区切りは受信データー長で識別しており、規定数のデーターを受信した時点でコマンドが発行されます。

Command in binary mode(default)

command phase length +0 +1 +2 +3 description
memory read command 4 0x78 addr MSB addr LSB ' R ' read data from absolute memory. repeate until get another commands.
result 3X addr MSB addr LSB DATA -
memory write command 4 0xaa addr MSB addr LSB DATA write data to absolute memory
result 3 addr MSB addr LSB DATA - reread data from wrote address
clear command 1 0x12 - reset command phase
result 0 -
get ROM ID command 4 0x00 ' F ' ' H ' ' I ' get ROM ID
result 3 ID #0 ID #1 ID #2 -



Command in ASCII mode(optional)

command phase length +0 +1 +2 +3 +4 +5 +6 +7 description
memory read command 6 0x7f MSB LSB ' R ' - read data from absolute memory
result 8 addr MSB addr LSB DATA CR LF
memory write command 6 0x20 MSB LSB DATA - write data to absolute memory
result 8 addr MSB addr LSB DATA CR LF reread data from wrote address
clear command 1 0x12 - reset command phase
result 0 -


各パラメータアドレス(大暫定)

ID記号項目A/D#モニタaddr内部addr単位
F01VBバッテリ電圧20x13350x1046.wMon:E[V] = N * 0.08
F02
F03VSP車速信号VSP0x13360x1075V[Km/h] = N * 2
F04EREVエンジン回転数0x13380x121c.wMon:R[RPM] = N * 25, 内部:R[RPM] = 120000000 / N
F05
F06TW水温信号10x13370x1268.w
F07ADVS点火時期0x1053BTDC[deg]
F08QAエアフロー信号00x13080x1042.w( Vadc = N / 200 )
F09LDATAエンジン負荷0x1305
F10THVスロットル信号40x13290x1262.wMon:THV[%] = N / 2.56
F11TIMインジェクタ噴射幅0x13060x10c0.w $1306 = $10c0.w / 64, $10c0.w * 4usec = 実噴射時間?, $1306 * 64 * 4 * 1000 = 実噴射時間[msec]
F12ISCISCバルブデューティー
F13O2O2センサ信号
F14O2MaxO2センサ信号Max
F15O2MinO2センサ信号Min
F16ALPHA空燃比補整係数
F17RTRD点火時期補整値
F18WGC過給圧制御デューティー
F19BARO.P大気圧50x1340P[mmHg] = N / 2 - 260?
F20MANI.Pブースト50x13410x12c4.wP[mmHg] = N / 2 - 260?
F21
F22
F23EXTEMP排気ガス温度
FA0.1IGイグニションスイッチ
FA0.3UDテストモード端子0x1343:50x2200:1
FA0.4RMリードメモリ端子0x1343:40x2200:2
FA0.6ASアクセルスイッチ0x1343:30x2200:6
FA0.7NTニュートラルスイッチ0x1343:20x2000:0
FA0.9SSステアリンング転舵スイッチ0x1343:00x2200:7
FA1.1IDアイドルスイッチ0x1344:70x2000:4
FA1.2ACエアコンスイッチ0x1344:60x2000:1
FA1.3ARエアコンリレー
FA1.4R1ラジエータファン1
FA1.5R2ラジエータファン2
FA1.6FPフューエルポンプ
FA1.8KSノックシグナル
FA2.1MCN/A
FA2.2ICN/A
FA2.3BR大気圧切替ソレノイド
FA3.10O2O2モニタ
[その他]
スタータースイッチ0x2000:2

E-mail [注意]不適正な題名は即座ゴミ箱、名前を名乗らぬ者への返事はしない事があります。フリー系メールからは自動的に拒絶する場合があります。
-- LINK FREE --
 
HOME LAST