Werking van een ECU

Let op: deze pagina is nog in bewerking.

Onderwerpen:

  • Inleiding
  • RAM-geheugen
  • ROM-geheugen
  • Processor (CPU)

Inleiding:
Op deze pagina wordt uitgelegd waar de componenten in een ECU voor dienen. Het grootste gedeelte van de tekst en afbeeldingen zijn samengesteld door dhr. W. Tulp voor zijn eigen lessen en is met zijn toestemming hier gepubliceerd.

Een ECU ontvangt cq. meetgegevens van sensoren, verwerkt de informatie en voert berekeningen uit om de actuatoren aan te sturen. De onderstaande afbeelding weergeeft een blokschema van een regelsysteem.

Sensoren zijn opnemers die reageren op een natuurkundige grootheid. De elektronica in de sensor maken hiervan een elektrisch signaal. De ECU ontvangt dit elektrische signaal als “input” en vergelijkt dit signaal met de voorgeprogrammeerde waarde. Afhankelijk waar het signaal voor dient, vindt er een regeling plaats door de actuatoraansturing hierop aan te passen.

De volgende afbeelding toont een ECU met drie stekkeraansluitingen. Van links naar rechts: voeding en netwerk, sensoren, actuatoren.

Bij een benzine-motormanagementsysteem vinden we o.a. de volgende sensoren:

  • krukaspositiesensor om het krukastoerental te meten;
  • koelvloeistoftemperatuursensor om de opwarming van de koelvloeistof te meten;
  • gaskleppositiesensoren om de stand van de gasklep en daarmee de motorbelasting te meten;
  • MAP- of luchtmassameter om de onderdruk of luchtstroming te meten;
  • lambdasonde om het zuurstofgehalte in de uitlaatgassen te meten;
  • de barometische sensor en inlaatluchttemperatuursensoren;
  • pingelsensor om de ontsteking zo ver mogelijk te laten vervroegen.

De bovenstaande sensoren dienen als input om de injectoren en bobine(s) aan te sturen. Hiervoor worden alle sensorwaarden in een voorgeprogrammeerd kenveld opgezocht.

Als voorbeeld nemen we de injectoraansturing. Bij een stationair motortoerental spuiten de injectoren een x-aantal graden na het BDP in.

  • Bij een lage koelvloeistoftemperatuur wordt de injectieduur verlengd (verrijken);
  • Bij rustig accelereren wordt eveneens de injectieduur verlengd. Er vindt ook een meting plaats die bijhoudt hoe snel het gaspedaal wordt ingeduwd: bij abrubt vol gas geven vindt er nog eens extra verrijking plaats;
  • De onderdruk in het inlaatspruitstuk heeft invloed op het injectietijdstip- en duur;
  • De lambdasonde (als voorbeeld de sprongsensor) meet of het mengsel te rijk of te arm is. Als het mengsel een aantal krukasrotaties te arm is, wordt met behulp van de fuel trims de injectieduur verlengd, tot dat het mengsel weer stoichiometrisch is;
  • De barometische sensor en inlaatluchttemperatuursensor meten de luchtdruk- en temperatuur om de zuurstofgraad in de aangezogen lucht te bepalen.

De injectieduur hangt dus af van de waarden van wel vijf sensoren. Bij moderne motoren spelen nog meer sensoren hierin een rol.

Tijdens en na het aansturen van een actuator, koppelen de sensoren informatie terug naar de ECU. De gemeten waarde wordt in de software vergeleken met de gewenste waarde. Hiermee kan worden bepaald of een actuatoraansturing constant kan blijven, moet worden verkort, of juist verlengd.  De ECU treedt dus op als regelaar, zodat er een regelkring ontstaat.

De volgende afbeelding toont een kenveld, waarin de basis-inspuittijd wordt bepaald uit het krukastoerental t.o.v. de onderdruk in het inlaatspruitstuk, dat maat is voor de motorbelasting. De temperaturen en lambdasonde vormen een correctiefactor en hebben elk hun eigen kenveld.

RAM-geheugen:
RAM (onder te verdelen in SRAM en DRAM)

SRAM is Statische RAM:

  • on-chip (cache) geheugen (in processor zelf)
  • lage geheugenopslag (tot MB’s)
  • snelle toegangstijd
  • dure uitvoering
  • 1 bit = 6 transistoren.
De werking van het SRAM-geheugen wordt in de volgende acht stappen toegelicht:

 

1. Data opslaan in geheugen: data = 0 en data = 1.

2. De adreslijn wordt “0” gemaakt door de processor

3. T5 en T6 schakelen in

4. “-” en “+” wordt doorgestuurd

5. T3 (maakt de “0”) en T2 (maakt de “1”) gaan in geleiding

6. De adreslijn wordt weer “1” (T5 en T6 schakelen weer uit). De data wordt uit het geheugen gelezen.

7. De adreslijn wordt “0” gemaakt door de processor.

8. T3 en T2 geven nu hun waardes door naar de datalijnen.

Het DRAM-geheugen werkt volgens een ander principe dan het SRAM-geheugen. 

DRAM is Dynamische RAM

  • werkgeheugen (tot GB’s)
  • hoge toegangstijd (nsec)
  • goedkoop
  • 1 bit = 1 transistor + 1 condensator
  • moet worden ververst om bit te blijven onthouden, omdat de condensator als gevolg van zelfontlading langzaam leegloopt

Voorbeeld berekening RAM refresh rate (verversingstijd):

  • geheugenbus: 8192 rijen (vastgelegd in 2012 PC)
  • bussnelheid: 133 Mhz
  • er zijn vier klokpulsen nodig voor de complete refresh
  • de benodigde tijd voor één refresh kunnen we berekenen:

ROM-geheugen:
ROM is een afkorting van: Read Only Memory. Het geheugencircuit is opgesteld met vaste verbindingen. De ECU start vanuit het ROM-geheugen het softwareprogramma (booting). Het ROM-geheugen is een traag geheugen. Tijdens het opstarten wordt de data vanuit het ROM naar het RAM gekopieerd.

Hieronder volgen vier voorbeelden van het uitlezen van de ROM.

Processor (CPU):
De processor (Central Processing Unit) start op vanaf het ROM-geheugen en kopieert data van ROM naar RAM. Na het opstarten haalt de CPU alle data en opdrachten uit het snelle RAM-geheugen.

De CPU is middels een adresbus en databus met het geheugen verbonden.

  • Set: er worden bits opgeslagen in het RAM
  • Enable: er worden bits opgehaald uit het RAM

Bits en bytes aan data in het RAM-geheugen kunnen bestaan uit:

  • numbers: data van sensoren / data naar actuatoren / berekeningen
  • adressen van sensoren (input) en actuatoren (output)

De data in het RAM-geheugen kan zijn:

  • letters: ASCII-codes, cijfers, letters, symbolen
  • instructions: instructieset van de processor (opdrachten voor processor)

De processor werkt volgens een zogenaamd ISA (Instruction Set Architecture) oftewel een instructieset. De ISA is een lijst met instructies welke door de fabrikant is ingeprogrammeerd en door de processor wordt gebruikt. De ISA is per processor verschillend en is sterk afhankelijk van de toepassing waarvoor de processor wordt ingezet. Hieronder volgen een aantal voorbeelden:

  • LOAD de processor haalt een waarde op uit het RAM geheugen
  • STORE de processor slaat een waarde op in het RAM geheugen
  • ADD de processor telt twee getallen bij elkaar op
  • CLR de processor wist een waarde in het RAM geheugen
  • COMPARE de processor vergelijkt twee getallen met elkaar
  • JUMP IF de processor springt naar een bepaald geheugenadres in RAM (voorwaarde uit compare)
  • OUT de processor stuurt informatie naar een output
  • IN de processor vraag om informatie van een input

Om een processor op volle kloksnelheid te kunnen laten werken, wordt er gewerkt met inwendig RAM-geheugen. Dit worden “registers” genoemd. De verschillende soorten registers zijn:

  • A-register: register voor A-input naar ALU
  • B-register: register voor B-input naar ALU
  • Werkregister: algemeen doel, voor het bewaren van (tussen)resultaten
  • Instructieregister: de huidige uit te voeren instructie voor de processor wordt hierin bewaard
  • Adresregister (program counter): bevat het adres van de eerstvolgende uit te voeren instructie
  • Vlagregister: getal (na een berekening) is: nul, negatief, positief, te groot, even of oneven
  • Floating Point Register: getal met cijfers achter de komma
  • Schuifregister: geheugen waarbij de data tijdens elke klokpuls één bit opschuift
  • Geheugen Data Register: buffer tussen CPU en RAM voor geheugendata
  • Geheugen Adres Register: buffer tussen CPU en RAM voor geheugenadres

De ALU (Arithmetic Logic Unit) voert alle rekenkundige bewerkingen en logische bewerkingen (AND, OR, NOT, etc.) uit.

  • 2 inputs naar ALU: A en B
  • 1 input: welke bewerking moet de ALU uitvoeren
  • 1 output: R (Result) gaat naar een register
  • 1 output: vlagregister

1. De ALU wil 01010101 zenden

2. Eerst moet de Control Unit set “1” maken

3. Het register wordt ingevuld

4. Hierna wordt Enable “1” gemaakt.

5. De data van de ALU wordt op een bus gezet

De CPU wil data ophalen uit het RAM-geheugen:

1. CPU stuurt een adres naar het RAM (01001001)

2. CPU wil informatie ontvangen; “enable” = 1

3. RAM stuurt data van adres 01001001 naar de CPU

4. CPU verwerkt de informatie

De CPU wil data opslaan in het RAM-geheugen:

1. CPU stuurt een adres naar het RAM (01001011)

2. CPU wil informatie opslaan; “set” = 1

3. CPU stuurt data (00111100) naar adres 01001011 in het RAM.
De data in de RAM wordt nu overschreven van: 11111001 naar: 00111100