elomax

[ Techniek ] [ Shop ] [ Site map
Wat zit er in? ] Waarom een micro? ] Opbouw ] Geheugen ] I/O ] [ Processor ] Digitaal rekenen ]

Terug
Omhoog

De processor

De processor bevat alle logica die nodig is om een programma uit te voeren. Uitvoeren van een programma vereist:

  1. ophalen van een instructie uit het geheugen

  2. ophalen van de voor de instructie vereiste data uit het geheugen of de I/O

  3. bewerken van de data volgens het voorschrift van de instructie

  4. wegzetten van het resultaat in het geheugen of de I/O

  5. uitvoeren van de volgende instructie

Het programma staat altijd in het geheugen. De gegevens waarop het programma werkt staan in het geheugen, maar kunnen ook via de I/O van buiten de computer worden gehaald.

Wanneer de gegevens van de I/O altijd via de processor moeten gaan, kan dit vooral bij grote hoeveelheden data erg lang duren. Daarom wordt snelle randapparaten (bijvoorbeeld een hard-disk) vaak directe toegang tot het geheugen gegeven. Het randapparaat kan dan zelfstandig een datablok direct in het geheugen plaatsen (of eruit opvragen.) Deze directe toegang heet Direct Memory Access, of DMA. Bij een besturing voor een apparaat ligt het accent meestal op snelle besturing van de I/O, en niet zozeer op snel transport van grote hoeveelheden data. DMA komt in micro-controller schakelingen derhalve nauwelijks voor. In de figuur is deze verbinding met een sterretje aangegeven.

De klok

Het uitvoeren van het programma is een volgtijdig proces. De CPU verwerkt de instructies één voor één. Moderne CPU's, zoals die in een PC, kunnen wel meerdere instructies tegelijkertijd afhandelen, maar micro-controllers doen daar (nog) niet aan. De snelheid waarmee instructies worden afgehandeld hangt af van de z.g. klok-frequentie van de processor. De klok van een processor wordt afgeleid van een schakeling die een tussen twee vaste niveau's wisselend elektrisch signaal genereert (oscillator.) Bij de meeste microprocessoren wordt het signaal van de oscillator eerst nog een aantal malen gedeeld voordat het gebruikt wordt voor de timing in de processor. Het aantal keren dat het resulterende signaal per seconde wisselt noemt met de klok-frequentie.

De oscillator van de 68HC11 kan werken op een frequentie van 8 MHz, dat is 8.000.000 wisselingen per seconde. In de 68HC11 wordt deze frequentie door 4 gedeeld. Men zegt dan dat de processor 'draait' op 2 MHz, terwijl de frequentie van het kristal dat op de 68HC11 is aangesloten, 8 MHz is.

De stapsgewijze afhandeling van de instructies vindt plaats in nog veel kleinere stapjes dan de van buiten af min of meer waarneembare acties van de processor. Het hele proces van lezen van de instructie en het uitvoeren er van, is opgedeeld in een aantal hele kleine stapjes waarin telkens een klein onderdeel van het hele proces wordt uitgevoerd. De kleinste stapjes worden uitgevoerd in het tempo van de interne klok. De kleinste stap die voorkomt is de stap ten gevolge van één periode van de klok. Deze klok heeft bij de 68HC11 met een 8MHz kristal, een frequentie van 2 MHz.

Er is voor elke instructie een vast aantal stapjes nodig om de instructie volledig te kunnen lezen en uitvoeren. De 68HC11 kan bijna alle instructies uitvoeren in 2 tot 6 stapjes, dus binnen 3 μs. De Engelse benaming voor één zo'n stapje is een 'cycle'. De 68HC11 heeft een 'cycle-time' van 0.5μs, en de meeste instructies kosten 2 tot 6 cycles.

Ook bij PC's speelt de klok-frequentie een belangrijke rol. De frequentie die men gebruikt om aan te geven hoe snel een PC is, is de frequentie van de oscillator. PC's worden vaak versneld door de oscillator frequentie te verhogen. De instructie-cyclus is immers direct gekoppeld aan deze frequentie. Het opvoeren van de oscillator is echter niet zonder meer mogelijk en brengt in een bestaand ontwerp altijd risico met zich mee. De elektronische schakelingen in en rond de processor zijn berekend op een bepaalde snelheid van werken. Wordt de snelheid te ver opgevoerd dan kan er van alles fout gaan. Een voorbeeld is de snelheid van het geheugen in een PC. Het geheugen moet aangepast zijn op de verwerkingssnelheid van de processor. Een geheugen heeft een bepaalde tijd nodig om actief te worden. Dit betekent dat de processor na het aanwijzen van een bepaalde geheugenplaats even moet wachten voordat het zeker is dat de informatie van die geheugenplaats ook daadwerkelijk beschikbaar is. Deze wachttijd is normaal gesproken al verzekerd doordat de CPU een bepaalde tijd nodig heeft tussen aanwijzen van de geheugenplaats en het inlezen of schrijven van gegevens. Wordt nu de klok-frequentie opgevoerd, dan kan de vertraging tussen activeren en lezen of schrijven te kort worden en data onjuist gelezen of geschreven worden.

Behalve een bovengrens aan de klok-frequentie is er ook vaak een ondergrens. Zoals bij DRAM geheugen worden ook processors vaak intern uitgevoerd met stukjes dynamisch geheugen. Deze geheugens moeten met een bepaalde minimale snelheid ververst worden. De processor heeft daarom een minimale klok-snelheid nodig. Er bestaan ook processors die zijn opgebouwd met statische logica (zoals bij SRAM.) Bij dit type processor kan de klok-snelheid tot nul worden gereduceerd (er worden dan natuurlijk ook geen instructies meer uitgevoerd.) Een overweging om de klok-snelheid te verlagen kan het stroomverbruik zijn. In het algemeen geldt: hoe sneller de processor werkt, hoe meer stroom hij verbruikt. In batterij gevoede apparatuur kan het stroomverbruik een belangrijke factor zijn.

De 68HC11is volledig statisch. Er is zelfs een speciale instructie ('STOP') die ervoor zorgt dat de oscillator van de processor wordt gestopt. Het stroomverbruik gaat dan enorm naar beneden, maar uiteraard worden ook geen instructies meer uitgevoerd. Alleen een 'reset' kan de processor dan weer op gang brengen.

Instructieset

Iedere processor kent een bepaalde set instructies (de 'instructieset'.) Zoals gezegd bestaan er 'families' van micro-controllers waarvan de leden ongeveer dezelfde instructieset hebben, omdat alle leden van de familie zijn opgebouwd rond dezelfde processor. Er zijn diverse fabrikaten processors en micro-controllers op de markt. Erg bekende fabrikanten zijn Intel en Motorola. Principiëel is er niet erg veel verschil tussen processors van verschillende fabrikanten. Wanneer de werking van één bepaalde processor bekend is, is het goed mogelijk zonder al te veel inspanning een andere processor te leren programmeren. Het is uiteraard wel zo dat veel details verschillen waardoor er toch een inleer-periode vereist is. De 68HC11 wordt gemaakt door Motorola.

Gereedschap

Heel belangrijk bij de toepassing van een bepaald type processor is de beschikbaarheid van hulpmiddelen voor de ontwikkeling van programmatuur. Een programma voor een micro-controller bestaat uiteindelijk uit een lijst digitale codes. Voor de programmeur is het ondoenlijk deze machinecodes allemaal zelf op te zoeken en in te vullen. Er zijn hulmiddelen nodig voor het programmeren van de processor. De assembler is zo'n hulpmiddel. Met behulp van de assembler kan de programmeur een programma in goed te onthouden instructies ('mnemonics') invoeren. De assembler vertaalt het programma dan naar de digitale codes die de processor begrijpt. Hulpmiddelen zoals de assembler komen in de cursus nog aan de orde.

In onze shop is een printje te vinden met een 68HC11 erop, en alle spullen die nodig zijn om zelf met een micro-controller aan de slag te kunnen gaan. Behalve als oefenmateriaal bij de cursus, kan deze SIMPLEX ook als een ontwikkel gereedschap worden gezien. Immers, programma's die voor dit bordje geschreven worden, kunnen onmiddellijk worden geprobeerd en zo nodig aangepast. Het is zonder meer mogelijk hiermee professionele toepassingen te ontwikkelen.

Afhankelijk van de toepassing wordt van de processor een bepaalde rekencapaciteit gevraagd. De rekencapaciteit van een processor hangt samen met de grootte van de instructieset en van de hoeveelheid informatie die per instructie verwerkt kan worden. Er bestaan zeer eenvoudige micro-controllers met processors die slechts enkele tientallen instructies kennen en bewerkingen kunnen doen op niet meer dan 4 bits tegelijk. De grootste microprocessors kennen honderden instructies en verwerken tot 128 of meer bits per instructie.

De 68HC11bevat een krachtige 8-bits processor.


Vorige ] Volgende ]

© 2005...2008 Elomax [Voorwaarden ]