Onderwerpen:
- Inleiding
- Systeembus
- Processor (CPU)
- RAM-geheugen
- ROM-geheugen
Inleiding:
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.
Systeembus:
De systeembus maakt verbindingen tussen de componenten in de ECU (zie de onderstaande afbeelding). Bovenin de ECU vinden we de klok. Deze zogenaamde oscillator geeft een blokspanning af met een frequentie van meestal 16 mHz. De klokfrequentie bepaalt de snelheid van de regeleenheid. De componenten in een regelkring worden door deze timer op elkaar afgestemd.
De CPU, het geheugen en de I/O-interface (I/O staat voor: input / output) zijn onderling verbonden met een systeembus, bestaande uit meerdere verbindingen op de printplaat. Deze kunnen we onderverdelen in:
- adresbus: deze bus zorgt voor de dataoverdracht van de microprocessor naar bepaalde geheugenlocaties;
- databus: gegevens tussen het geheugen, de cpu en de interfaces wordt via de databus getransporteerd;
- controlbus: dient als besturing door lees- en schrijfselecties, aanvragen en resets uit te voeren aan de hand van de timing van de systeemklok.
Processor (CPU):
De processor (Central Processing Unit) vormt het hart van de computer. De combinatorische schakelingen, welke bestaan uit een enorme hoeveelheid EN, OF en NIET-poorten, zijn in de ECU door middel van software opgebouwd. Bij de fabricage van de processor zijn een aantal instructies (de software) ingebakken. Deze instructies voeren handelingen uit en zet deze in de juiste volgorde. Voorbeeld:
- de letters van het alfabet zijn in de processor digitaal opgeslagen. In werkelijkheid zal het niet gaan om letters, maar om digitale instructies die eenvoudige handelingen voorstellen;
- door de letters in de juiste volgorde te zetten, kunnen we woorden maken;
- door de woorden in de juiste volgorde te zetten, kunnen we zinnen maken;
- de zinnen maken het verhaal: in werkelijkheid het computerprogramma.
Het programma om – de door de processor bekende – instructies in de juiste volgorde te zetten is door de programmeur in de software ingebakken. Dit programma is in het flashgeheugen van de ECU geladen.
Wanneer de ECU wordt opgestart, worden op maat van de klok de instructies één voor één door de processor uit het flashgeheugen gehaald en uitgevoerd. Nadat het programma is uitgevoerd en ten einde is, begint de cyclus opnieuw.
De data die nodig is om gegevens als de ontstekingstijdstippen te laden, worden uit het ROM-geheugen geladen. De processor 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. Een relatief klein RAN-geheugen is noodzakelijk voor het tiijdelijk opslaan van gegevens en berekende tussenwaarden.
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. Registers zijn bijzonder belangrijke functieblokken in veel digitale systemen. Ze bestaan uit een verzameling flip-flopschakelingen die tijdelijk een binair getal kunnen vasthouden (daarmee onthouden). 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
ROM-geheugen:
ROM is een afkorting van: Read Only Memory. In dit geheugen is door de fabrikant geprogrammeerd. 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.
Gerelateerde pagina’s: