2.
RAM Writeと適合バイパスについて
− RAM Writeとは?
ECUプログラムが内部で使用している任意のRAM値(演算値)を、計測適合ツール側から違う値に
書き換えることをRAM Writeといいます。RAM値は具体的には、以下のようなエンジン回転数の値や、
水温、点火時期などのことを指します。
− 適合(Calibration)とRAM Writeの違い
−
適合(
Calibration)
とは、ある特定のしきい値やマップ情報など、ECUプログラムが内部で保持
しているパラメータ自体を調整し、エンジンや
ECUの性能そのものを変更することを指します
−
RAM Write
は、
ECUプログラムが実行/演算する上で、一時的に使用している値を変更し、
現在の挙動を仮想的に変更することを指します
例
センサ
ECUプログラム
比較
しきい値
=10[V] しきい値よりセンサ
入力値が高ければ
センサが故障
したと判定する
x[V]
これを書き換えること(=エンジンやECUの現在の挙動の変更)がRAM Write
これを書き換えること(=エンジンやECUの性能そのものの変更)がCalibration
ECUプログラム (点火制御)
カム角センサ
クランク角センサ
エアフローメータ
水温センサ
電池電圧
気筒判別
エンジン回転数演算
エンジン負荷演算
水温補正
電圧補正
点火時期
演算
通電時間
演算
点火信号
点火装置
RAM値
ECUに仮想的な状況を与えるには、ECU内部のパラメータを外部から変更させる必要があります。内部パラメータの変更には
「RAM Write」と「適合」が存在しますが、両者は異なります。システムテストのために現在挙動を変更するには「RAM Write」を行います。
2.
RAM Writeと適合バイパスについて
− 適合バイパスとは?
通常、INCAなどの適合ツールからRAM Writeを行うと、上書きした値はその瞬間にのみ反映され、
次にECUプログラム側から別の演算値が上書きされると、そちらが有効となります。
適合バイパスは、ECUソフトウェア開発で利用されるバイパス手法を用いて、ECUの制御ロジック
自体を変更して、特定の値を常に保持させる手法です。
エンジン回転数
時間→
1000を書き込み
1010を書き込み
NE=1000 NE=0 NE=1010
RAM Writeで
0を書き込み
RAM Writeした値が、次にECUプログラム
が値を更新するまでの間だけ有効となる
エンジン回転数
時間→
1000を書き込み
→反映せず 1010を書き込み
→反映せず
NE=(初期値) NE=0 NE=0
適合バイパスで
0を書き込み
void Constant Bypass Func_NE( void ) {
if(NE.enabler == true) {
NE = Calibrated_NE;
} else {
NE = Sensor_NE;
} プログラムイメージ
センサ
センサ
ECUソフトウェア側に加工を行っていない場合、「RAM Write」は一時的にしか反映できません。「適合バイパス」を利用することで、
仮想的な状況を継続的に与える事ができるため、少ない事前準備でより複雑なテストを行うことができるようになります。
3.
EHOOKSについて
− EHOOKS
EHOOKSはECUのバイパス設定を半自動的に行うためのツールです。
EHOOKSを利用することで、複雑なECUプログラムのバイパス実装処理を知らなくても、
OEM様側で容易にバイパスの設定、変更を行うことができます。
− EHOOKSのツールチェーン
EHOOKSは以下の3つのツールによって構成されます。
1. EHOOKS-PREP
ECUにEHOOKS対応を行うための、ECUサプライヤ様で使用するツールです
2. EHOOKS-DEV
EHOOKSに対応したECUに対して、OEM様内でバイパスを設定するためのツールです
3. EHOOKS-Unlocker (EHOOKS-CAL)
EHOOKS設定を行ったECUに対して、実験実行時にロックを解除して、バイパスを
有効化させるためのツールです
【ECUサプライヤ】
【OEM】
実験作業
ECU
EHOOKS-PREP
納入
バイパス対象変数(フックポイント)設定
ECUフック設定の暗号化
Original
A2L
ProF
Config
Original
HEX
Prepared
A2L
Hooked
A2L
Hooked
HEX
EHOOKS-DEV
ECUへ書き込み
実験設定
実験実施
フックポイント
設定済みA2L/HEX
EHOOKS
対応A2L
配布
EHOOKS-Unlocker
INCA
「適合バイパス」を行うために、ECUソフトウェア側にバイパス設定を行うツールが「EHOOKS」です。
(※EHOOKSをご利用いただくためには、お使いのECUがEHOOKSに対応している必要がございます。)
3.
EHOOKSについて
− EHOOKSが対応する「RAM値の更新(書き込み)」のコントロール
EHOOKSは、INCA上で目的のRAM値を適合ラベルとして値を指定する「適合バイパス」のほかに、
事前に指定した定数にRAM値を固定させる「定数バイパス」、値は指定せずにECUソフトウェア側に
よる値の更新のみを止めてしまう「
NOPバイパス」、そして外部プログラムが演算した結果をRAM値
の更新値と置き換える「外部/内部バイパスフック」など様々なバイパスタイプに対応します。
これらのRAM値更新
コントロールのOn/Off
タイミングを外部プログ
ラムの判断によって切り
替えることもできます
(デフォルトでは手動
切り替え)。
さらにINCAが持つ様々
な外部連携機能(
ASAP3
通信、INCA-MIP、INCA-FLOW、COM通信など)
によって、自動化を図る
こともできます。
ご利用いただくバイパス
のタイプによって、
EHOOKS-Unlocker
のライセンスを選択
いただけます(BYP
又は
CAL)。
EHOOKSを使用することで、ECUソフトウェアによるRAM値の更新(書き込み)を高度にコントロールすることができます。
ECU内で
演算された値
Enabler
ETAS HW
Output
外部バイパスフック:External Bypass
作成したモデルをETAS HW上で実行。その結果をECUへ書き込む
ECUで使用されているラベルをモデルへの入力値として使用することも可能
ECU内で
演算された値
Enabler
Output
内部バイパスフック:Internal(On-Target) Bypass
作成したモデルをECU内部の空き領域で実行。その結果をECUへ書き込む
ECUで使用されているラベルをモデルへの入力値として使用することも可能
EHOOKS-BYP
EHOOKS-BYP
定数バイパス:Constant Bypass
EHOOKS-DEVで設定した値で出力値を
固定
EHOOKS-CAL
EHOOKS-BYP
ECU内で
演算された値
Enabler
適合ラベル
INCA
Output
適合バイパス:Calibration Bypass
適合ラベルを追加し、指定した計測ラベル
に対してINCAからの書き換えを可能
EHOOKS-CAL
EHOOKS-BYP
固定値
(EHOOKS-DEVで設定)
ECU内で
演算された値
Enabler
Output
EHOOKS-CAL
EHOOKS-BYP
NOPバイパス:No-Operation Bypass
フック付き変数へ書き込もうとするECU
ソフトウェア命令をNOPに切り替え
ECU内で
演算された値
Enabler
Output
(書き込みなし)
5.具体例①:
FI-AT協調における性能試験
− シフト固定
トランスミッションのシフトを適合バイパスによって意図的に固定した状態で、エンジンへの要求トルク
を変更し、出力トルクやエミッション等の各種性能の測定を行います。
− トルク固定状態でのシフト変更
エンジンへの要求トルクを固定した状態で、トランスミッションのシフトを変更し、ギアとエンジン回転数
の変化に伴う官能評価(音、振動、応答性、なめらかさ等)を行います。
【具体例について】
予めテスト実行用の機能がECUソフトウェア側に実装されているなど、ECU個別の事情によって、以降の具体例が実際には適さない(又は適用できない)ケースもございます。
ECU
トランスミッション
エンジン
トランスミッション
エンジン
要求トルク変更
ECU
トランスミッション
エンジン
トランスミッション
エンジン
以降では、適合バイパス手法を用いたテストの具体的な例を御紹介します。
具体例①は「FI-AT協調制御における性能試験」です。
5.具体例②:アクチュエータ性能試験
− ラジエータ性能試験
エンジン回転数、出力トルクを固定した状態で、ラジエータファンの回転数を変更することで、ラジエータ
の効果の測定を行います。
また、ASAP3クライアントなどのオートメーションツールと組み合わせることで、ファン回転数を段階的に
変化させていきながら、その効果を測定することができます。
− サーモスタット開放下の低温始動
上記の例と同様に、電子制御サーモスタットがある場合にはこの制御を行えます。
例えば、サーモスタット・バルブを適合バイパスにより全開とした状態で、エンジンの低温始動時の影響を
試験する場合などです。
サーモスタット
ファン
エンジン
ECU
クーラント
段階的な
変更指示
オートメーションツール
(ASAP3クライアントなど)
ラジエータ
具体例②は、電子制御されている、システム内に組み付けられた様々なアクチュエータに対する性能試験です。
5.具体例④:疑似信号の入力
− ワインディング走行時に発生した問題の再現
ワインディング走行で確認された振動・異音等の問題について、
HiLsでの再現が難しく台上で再現試験する
場合に、実センサの入力値が問題発生時と異なる場合には、これを模擬信号として入力することができます。
また、外部のオートメーションツールと合わせることで時系列を持ったデータを入力として使用することもできます。
(※より厳密、高速な模擬信号入力を要する場合には、適合バイパスではなく内部バイパスやINCA-MCEを用いた高速適合手法、Function-in-the-loop(FiLs)
との連携など、別の手法が必要となる場合もあります。上記例における時系列データの更新周期は100msec程度になる場合があります。)
− センサドリフトの抑制
テスト完成車の組み付け上の問題等により、センサ出力のドリフトが強い場合には、同様の手法により、
疑似信号に代替させ挙動を安定化させることができます。
時系列データ
の入力
オートメーションツール
(ASAP3クライアントなど)
大気圧センサ
ステアリング信号
車体姿勢情報
具体例④は、テストにおける擬似的な時系列データの入力を行う試験です。
INCAの持つ外部連携機能を併用し、外部から時系列を持ったデータを入力し、ECUの状態遷移を擬似的に発生させます。
5.具体例⑤:故障検知カウンタの任意制御
− 失火カウンタの任意値入力
エンジンの失火カウンタに任意値を入力することで、
OBD IIの機能試験を行ったり、またラフアイドル状態を
仮想的にECUへ与えてラフアイドル解消制御等の機能試験を行います。
− 故障検知情報のリセット
暖機サイクル40回(~n回)で特定の故障検知情報が消去されるような場合、現在の暖機サイクル数を直接指定
することで、故障検知情報のリセットに至るまでの行程をスキップしたり、また、この故障検知情報の消去自体を
確認することができます。
暖機サイ
クル
(1)
暖機
サイク
ル
(2)
暖機サイ
クル
(40)
暖機サイ
クル
(3)
ここからテスト開始
・・・
DT
C
消去
ECU
トランスミッション
エンジン
エンジン
適合バイパスにより
失火カウンタの任意値を入力
最後の具体例は故障検知カウンタの任意制御です。「複数回同じ現象が確認されたら、初めて動作させる制御」をテストする場合に、
実際に何度も同じ現象を発生させるのではなく、意図的にカウンタを変化させて、制御試験をスムーズに行います。
− 準備物
EHOOKSに対応したECU、A2L、HEX、ProF
EHOOKS-DEV(設定ツール)
INCA
ECUとの通信機器(ES592等)
EHOOKS-Unlocker (バイパスロックを解除する
ための
INCA用アドオンツール)
(必要に応じて)オートメーションツール
− 作業の流れ
1.
EHOOKS-DEVにA2LとHEXを読み込ませます
2.
変更したい
RAM値(バイパス変数)を選択し、この変
数を「Calibration Bypass」に設定します
3.
EHOOKS-DEV上でビルドして、新しいHEXとA2Lを
生成します
【補足】作業の流れ
ツール詳細(価格等)、作業手順の詳細に関しましてはお問い合わせくださいませ。
4.
INCAを起動して新しいA2L、HEXを読み込ませます
5.
ProFコンフィグレーションを使用して新しいHEXをECU
に書き込みます
6.
実験画面を開き、変数選択画面から適合バイパスの
イネーブラ変数と、
2.で設定したRAM値を選択します
7.
INCA実験画面上で、選択したRAM値を指定したい値
に変えます(選択したRAM値はINCA上で適合変数と
同じように扱われます)
8.
イネーブラのスイッチをTrueに変更するとINCA上で
指定した値にRAM値が固定されます
9.
測定開始を行います
10.
EHOOKS-Unlockerを起動してECUバイパスのロック
解除を行います
RAM値の選択 適合バイパス
(Calibration
Bypass)を指定
以下の通り、特殊な治具、機材の準備やハードウェア加工などの複雑な準備は不要です。
適合バイパスの
イネーブラ変数
上書きする値