Mitsubishi de control al senzorului de detonație (bandă largă)

Pe termen lung a dorit ceva din calatoriile sale prin stiva m32r scrie, astfel încât să nu uitați.
Acest post analizează knock sistem de control bazat pe bandă largă knock senzor (DD) și circuitele de comandă Bosch 30424 (CC195) în controlerul de Mitsubishi Colt Z27AG.

O parte din placa controlerului 1860B104

În sistemele mai vechi folosit un senzor de detonație de rezonanță, frecvența de rezonanță senzor este potrivit la motor, dar nu am studiat vechiul sistem, cel mai probabil, o mare parte din cele de mai sus se aplică acestora (cu excepția faptului că nu există nici un tratament de specialitate ms DD).

Noile sisteme folosesc un DD de bandă largă (caracteristica este relativ constantă pe o gamă largă), un semnal într-un mod diferential este pus într-un cip Bosch, îndeplinind funcții filtru acordabile bandpass (frecvență, câștig) și integrator SH.

Sub forma de semnale de intrare / ieșire de la foi de date Bosch CC195

Aici MF - măsurarea semnalului de program fereastră detonare Colt'a început și de sfârșit sunt specificate în grade după punctul 5BTDC, în funcție de viteza, dar măsurătoarea nu începe înainte de momentul aprinderii.

Puncte de deschidere / închidere a ferestrelor de măsurare în grade ATDC

KE - semnalul de la senzor, senzor de sârmă Colt'e zavedon semnal în mod diferențial (semnalul senzorului monofilară nouă Lancere ecranat sârmă).

KI - măsoară tensiunea controlerului. Aici se poate observa că după comutatorul MF KI scade la zero - compensa un zero. Plutește în dependență de temperatură, de tensiune și de la instanță la instanță, cu toate acestea să se calculeze în anumite puncte a douăzecea măsurătorile sunt făcute cu o fereastră fixă ​​scurtă.

Dispozitivul de circuit al datashita CC195 Bosch

Și astfel: DD fereastra închisă de procesare, controlerul a preluat rezultatul ADC (adc_byte_knock, MUT 0x30), dar asta e tot doar începutul.

1. Din rezultatul subtracts integratorul de offset (knock_integrator_offset), obținem semnalul util (knock_signal, MUT 0x6a).

2. Apoi, un algoritm mic pentru a determina DD eșec:
mut_knock_change = | knock_signal - knock_signal_previous | (0x6d MUT)

Dacă knock_signal_time_averaged

3. Increment knock_sum (corecție pe termen scurt a CPP 90/256 grade la discrete, MUT 0x26):
Calculele implicate knock_positive = knock_signal - knock_base (MUT 0x6b)

knock_sum_addition (0x6c MUT) = knock_positive. knock_positive * K / knock_base + 1. 0, unde K - factor constant
dacă knock_sum_addition destul de mici (1-2 puncte) și se manifestă în mod constant în 1-2 cilindri, efectul său este suprimat.

4. Calcularea stratului de bază:
knock_signal_spark_averaged = knock_signal_spark_averaged_previous * (R - 1) / R + knock_signal * 256 / R condițional
R depinde de condițiile, implicit = 32 se aplică în continuare prima condiție de potrivire:
- atunci când o creștere bruscă sau un obiect ascuțit se transformă accelerației mișcării (decays_40hz.knock_rpm_accel temporizator MUT 0x6f) scade la 16
- cu un knock_positive pozitiv creste la 255
- la knock_signal> = knock_signal_time_averaged peste șase măsurători - scade la 16
- în cazul în care 8 * knock_signal> = 16 * knock_signal_time_averaged - creste la 255
Cu cât R, cu atât mai puțin efectul asupra valorii curente a valorii rezultată knock_signal knock_signal_spark_averaged

dacă knock_base transcende - comută câștigul de 30424 ms și recalcularea apare knock_base, knock_signal_spark_averaged și knock_signal_time_averaged.

În această prelucrare se termină măsurătoarea curentă.

knock_base Calcul (MUT 0x6b). Are loc în ramura principală 100Hz 800Hz întrerup, toti cei care citesc codul MMC ar putea vedea acest monstru la 15008 octeți (în blocul de firmware Colt Ralliart pe blana) cod mașină, bine că nu este scrisă de mână.

knock_signal_time_averaged = (knock_signal_time_averaged_previous * (K - 1) + knock_signal_spark_averaged) / K

knock_base = knock_signal_time_averaged * Corr (rpm) + EngineNoise (rpm)
în cazul în care Corr și EngineNoise calculate în avans.

knock_sum Umenshshenie 200Hz are loc într-o ramură de aceeași întrerupere. Sub acțiunea decays_40hz.knock_rpm_accel scad la fiecare 35 de cicluri, sau la fiecare 160

Dincolo de sarcină modul de comutare stânga. Acesta ar trebui să excite doar cei cu scalarea sarcina nu corespunde real (de exemplu, CS3 Lancers cu turbina). Precum și calcularea octane_level.

3 ani Tag-uri: ecu mmc