Embedded systems V1.0

Maat: px
Weergave met pagina beginnen:

Download "Embedded systems V1.0"

Transcriptie

1 Embedded systems Pauwels D. Embedded systems

2 Hoofdstuk Inleiding Wat is een embedded systeem? We leven in een "embedded" wereld. We worden omringd door een groot aantal embedded systemen en in ons dagelijks leven zijn we vaak afhankelijk van het correct functioneren van deze gadgets. Embedded systemen zijn elektronische systemen waarin microprocessoren zijn verwerkt. De hoofdredenen waarom deze zijn gebruikt is het vereenvoudigen van het systeemontwerp, het voorzien van de gewenste flexibiliteit en het drukken van de kostprijs per systeem. Een microprocessor aan boord hebben betekent dat het verbeteren van tekortkomingen, het maken van aanpassingen en het toevoegen van nieuwe features slechts een kwestie is van het herschrijven of aanpassen van de software die het toestel bedient. De hedendaagse embedded systemen zijn zo goedkoop geworden dat ze bijna in elk toestel zitten dat we gebruiken in ons alledaags leven. Embedded systemen zijn doorgedrongen in onze televisie, radio en CD speler. Ook de afwasmachine of microgolfoven uit onze keuken, kredietkaartlezers, en toegangscontrole-systemen of Palm computers en GSM's bevatten allemaal een embedded systeem. In heel wat gevallen zijn we er ons zelfs niet van bewust dat een "computer" aanwezig is daardoor beseffen we dikwijls niet wat de impact van embedded systemen is op ons leven. Onze desktop PC waarmee we versturen, tekstverwerking doen, speadsheets en databases raadplegen is ontworpen om verschillende toepassingen uit te voeren. Een embedded systeem is ontworpen om slechts een beperkt aantal taken uit te voeren zoals bv. er voor zorgen dat de toast niet aanbrandt of het instellen van de kookcyclus in de microgolfoven. Een embedded systeem kan dus niet voor iets ander worden gebruikt. 1.1 Wat is er uniek aan het ontwerp van embedded systemen? Het ontwerp van een embedded systeem vormt een uitdaging voor een elektronica ingenieur wat de betrouwbaarheid, performantie en systeemkost betreft. Pauwels D. Embedded systems 1

3 De betrouwbaarheidsvereisten zullen een grotere verantwoordelijkheid leggen bij de ontwerpers van het systeem, om fouten te elimineren en om de software zo te ontwerpen dat onverwachtte situaties of fouten getollereerd worden. Veel embedded systemen moeten 24 uur per dag, zeven dagen per week, 365 dagen per jaar werken. Men kan ze niet gewoon "rebooten" wanneer er iets verkeerd gaat. Daarom zijn soliede ontwerpmethoden en een grondige testfase heel belangrijk voor elk embedded systeem, dit wat de hardware- als de software-implementatie betreft. Door de behoefte om te communiceren met sensors, actuatoren, toetsenborden, display's enz. zal verondersteld worden van de programmeur dat hij (zij) een goede kennis heeft over hoe men op alternatieve manieren aan I/O kan doen, om vereisten qua snelheid, complexiteit en systeemkost op elkaar af te stemmen. Alhoewel we meestal (ahfankelijk van de gebruikte processor of controller) programmeren in een hogere programmeertaal voor een betere productiviteit, zal het toepassen van deze alternatieve methoden dikwijls aanleiding geven om af te dalen tot op het hardwareniveau van het systeem en te programmeren in assembler. 1.2 Hoe krachtig zijn embedded processoren? De embedded systemen die we vinden in de meeste consumer producten bevatten een microcontroller. De kracht van deze controllers is meestal vergelijkbaar met deze van de eerste PC's, maar krachtiger processoren worden steeds meer en meer gebruikt omdat ook de toepassingen die lopen op embedded sytemen steeds complexer worden. De grootste hoeveelheid embedded systemen die vandaag in productie zijn, zijn gebaseerd op 4-bit, 8-bit of 16-bit processoren. Alhoewel 32-bit processoren nu nog maar voor een relatief klein percentage meetellen voor het gebruik in embedded systemen stijgt hun gebruik voor deze doeleinden zeer snel. Ontwerpers van embedded systemen hebben vandaag de keuze uit een groot aanbod aan processoren en controllers. Vooral in het 8-bit segment kan de beschikbare variëteit zelfs een ervaren ontwerper soms overweldigen. Het selecteren van de meest geschikte controller voor een bepaalde toepassing is soms een moeilijke eerste stap. Het wordt er ook niet eenvoudiger op doordat er steeds nieuwe controllers op de markt komen. 1.3 Embedded systemen werken meestal "REAL-TIME". Real-time systemen verwerken 'events'. Events zijn gebeurtenissen die voorkomen aan systeeminputs en die andere gebeurtenissen veroorzaken aan systeemoutputs. Een voorbeeld van een event is het blokeren van een wiel van een wagen bij het remmen. De reactie van het ABS systeem (embedded systeem) hierop is het gepulseerd bekrachtigen van de remkracht zodat het wiel weer gaat draaien en er weer besturing van de wagen mogelijk is. Het hoofddoel van een real-time systeem is de responcetijd te minimaliseren. Het ABS systeem moet het blokeren van het wiel detecteren binnen enkele milliseconden; een vertraging van enkele seconden zou hier ontoelaatbaar en zelfs potentiëel dodelijk zijn. Wat real-time betekent voor een embedded systeem is afhankelijk van de toepassing, zo zal de besturing van een microgolfoven minder tijdskritisch zijn en zullen we tevreden zijn als de controller zijn responce zo snel mogelijk berekent, hij heeft immers geen echte deadline, de gebruiker of de installatie is niet in gevaar als de responce iets langer duurt. We spreken hier van soft real-time. Wanneer er wel een deadline is opgelegd aan het systeem, zoals in het geval van het ABS systeem spreken we van hard real-time systemen. Pauwels D. Embedded systems 2

4 Hoofdstuk Wat is een microcontroller? Iedereen heeft wellicht al wel de benaming 'microprocessor' gehoord, met als belangrijkste vertegenwoordiger de Pentium processor uit de Intel x86 reeks. Je vind deze term zeker in een aantal commerciële publicaties waarmee de PC-shops ons om de oren slaan. Men zou door al dat commerciële 'geschreeuw' bijna vergeten dat dit type van 'PC'-processor maar een klein stukje van de totale processormarkt vertegenwoordigd en dat er daarnaast ook nog een zeer groot en bloeiend segment is van embedded microprocessoren en microcontrollers. Dit zijn meteen ook termen die de modale PC gebruiker vreemd zijn! Wat is dan wel zo'n microcontroller? 2.1 Een typisch microprocessorsysteem. Om aan te geven wat een microcontroller is, gaan we eerst even het blokschema van een typisch embedded microprocessorsysteem van nabij bekijken. X-tal Osc. POR ADRES DECODER ADRESBUS CPU ROM (FLASH) (EPROM) (EEPROM) SRAM PAR. POORT SER. POORT TIMER COUNTER DATABUS Fig Een blokschema van een typisch microprocessorsysteem Pauwels D. Embedded systems 3

5 Op de figuur zien we de CPU (een single chip CPU is een microprocessor) die is verbonden met de nodige geheugenchips (ROM en RAM) en met een aantal I/O chips, in dit geval parallelle poorten, seriële poorten en timers. De verbinding van de CPU met de andere componenten verloopt via een aantal bussen. Een bus is een verzameling van geleiders die signalen van een zelfde aard transporteren. De draden die de gegevens van en naar het geheugen vervoeren, wordt de DATABUS genoemd. De geleiders die het adres (locatienummer) vervoeren dat aangeeft waar er informatie gelezen of geschreven wordt, noemen we de ADRESBUS. Omdat we moeten kunnen lezen en of schrijven naar het geheugen, zijn er ook controlesignalen nodig, die we de CONTROLEBUS noemen. Aangezien het de processor is die de controlebus stuurt, hebben alle namen van de signalen betrekking op de functie die ze vanuit de processor krijgen. Zo wordt de 'read' lijn actief als de processor wil lezen, en de 'write' lijn als de processor wil schrijven. Wat zijn nu de nadelen van een klassiek microprocessorsysteem voor embedded toepassingen? MTBF. Alles gaat stuk! Niets is helaas voor de eeuwigheid. Het systeem dat je zo geduldig en met zoveel liefde hebt ontworpen zal het na een poos opgeven bij de klant. De kunst bestaat erin dat je systeem de klant overleeft, je levert dus best kwaliteit af, zo hou je gelukkige klanten tot op hun sterfbed. Een systeem bestaat meestal uit verschillende componenten die allemaal hun eigen "Failure rate" hebben. Deze FIT-rate ( FIT of Failures In Time) is de statistische waarde die voor een component aangeeft hoeveel failures of defecten de component zal hebben per miljard werkingsuren. De FIT rate van een component is een gegeven dat door de fabrikant ter beschikking kan worden gesteld voor elke component, of in het beste geval gegevens waaruit je de FIT rate kan berekenen.. Aan de hand van deze cijfers kan voor een bepaald systeem de MTBF worden bepaald. MTBF staat voor Mean Time Between Failure. De MTBF is geen exact gegeven, het is een voorspelling, waar van een systeem met een aantal componenten met een bepaalde FIT-rate, een gemiddelde werkingsduur wordt berekend. Waarin: n het aantal verschillende componenten. q i hoeveelheid van de i de component. de FIT rate. r i Hieruit blijkt dat voor een bepaalde FIT rate de betrouwbaarheid van het systeem afneemt als het aantal componenten toeneemt, iets wat je met wat boerenwijsheid ook al wel kon inschatten. In de volgende figuur staat bv. de FIT-rate van een PowerPC 603r processor van Freescale weergegeven in functie van de junctietemperatuur met de voedingsspanning als parameter. Pauwels D. Embedded systems 4

6 Fig De FIT rate van een XPC 603 e processor van Freescale. Ontwerp van een PCB. Voor je fonkelnieuw embedded processorsysteem moet er helaas ook een PCB (Printed Circuit Board) worden ontworpen. Met de steeds hoger liggende clockfrequenties en pincount van de processoren is dit eveneens een niet zo voor de hand liggende en vaak een tijdrovende zaak. Sommige ontwerpers zullen, niet gehinderd door enige kennis ter zake, aanvoeren dat het tekenen van een PCB louter en alleen het omzetten is van schema verbindingen naar echte bedrading. Niets is minder waar! Het tekenen van een PCB is het met kennis van zaken creëren van een nieuwe component met eigen elektrische eigenschappen en met een aanzienlijk aandeel in het al dan niet slagen van een project! Zelfs bij de meest ervaren ontwerper, en bij het gebruik van de meest geavanceerde CAD pakketten zullen er waarschijnlijk een aantal designfouten in de eerste prototype PCB's van een complex systeem zitten. Dikwijls liggen deze problemen op het vlak van overspraak en wederzijdse koppelingen of signaalintegriteit. En ook op het vlak van EMC (Elektro Magnetische Compatibiliteit) kunnen er een aantal problemen aan het licht komen bij de eerste metingen op de prototypes. Het systeem kan immers te stoorgevoelig zijn, of kan zelf teveel storing veroorzaken. Dit heeft als gevolg dat er een aantal aanpassingen of zelfs een redesign van de PCB moet worden gedaan. Dit is een kostelijke zaak. Je kan dus maar beter deze complexe en grote PCB's vermijden. Pauwels D. Embedded systems 5

7 2.2 Een microcontrollersysteem. Wanneer we het blokschema van een microcontrollersysteem van fig vergelijken met het blokschema van een processorsysteem van fig dat is opgebouwd uit diskrete componenten dan merken we dat deze praktisch gelijkaardig zijn. Het grote verschil is echter dat bij een microcontroller het hele systeem op één chip is geïntegreerd, wat grote voordelen heeft tegenover een diskreet opgebouwd systeem. Omdat het hier gaat om een single-chip oplossing is de MTBF van het eindproduct meestal groter. Er moet meestal ook geen complexe PCB meer ontworpen worden. Uiteraard moet nog wel een PCB worden ontworpen voor je embedded toepassing, waar dan de microcontroller (single chip) in geïntegreerd wordt, maar deze is dan meestal veel minder complex dan bij een processorsysteem. Het systeem kan ook veel compacter worden gemaakt met een microcontroller dan met de diskrete oplossing, dit heeft samen met het vorige argument als gevolg dat het eindproduct economischer wordt. Op technisch vlak hebben de testingenieurs het ook gemakkelijker, immers daar de digitale bussen waar de snelle signalen over getransporteerd worden on-chip blijven zal het systeem veel sneller voldoen aan de gangbare EMC normen. Vandaar de gestadige groei van het aantal microcontrollers op de markt. Fig Een voorbeeld van een typisch microcontrollersysteem In het 8-bit segment is de meest populaire en meest gebruikte architectuur die van de Intel Doordat deze architectuur wijd aanvaardt is door een zeer groot aantal gebruikers, ontwikkelen verschillende fabrikanten nog steeds controllers met nieuwe features gebaseerd op deze architectuur. Er zijn naar schatting ongeveer een 400-tal verschillende derivaten van een oorspronkelijke 8051 op de markt, en na 25 jaar komen er nog elke dag bij. Men schat dat de helft van alle gebruikte microcontrollers gebaseerd zijn op deze architectuur. Pauwels D. Embedded systems 6

8 2.3 Wat is er op de markt? Er is tegenwoordig een groot assortiment aan verschillende microcontrollers terug te vinden op de markt. In de figuur wordt aangegeven wat de verdeling is tussen 4-bit, 8-bit, 16-bit en 32-bit controllers. Zoals blijkt zijn 64-bit en andere (DSP, 128-bit, ) tegenwoordig nog te verwaarlozen ten opzichte van de rest. Types van gebruikte controllers in embedded systemen bit 8-bit 16-bit 32-bit 64-bit Andere Fig Verdeling van de meest gebruikte architecturen naar verwerkingsbreedte. Wat opvalt is dat het overgrote deel van de huidige embedded systemen op de markt voorzien zijn van een 8-bit of 16-bit controller, terwijl het 32-bit segment nog relatief klein is. Een andere trend die we opmerken in de volgende figuur is dat door de steeds groeiende complexiteit van embedded systemen er een omgekeerde tendens is in het gebruik van controllers voor nieuwe ontwerpen. Hier is de 32-bit controller het snelst groeiende segment. Types van controllers gebruikt voor nieuwe ontwerpen bit 8-bit 16-bit 32-bit 64-bit Andere Fig Gebruik van controllers in nieuwe ontwerpen. Het komt er in de praktijk op neer dat voor een bepaalde toepassing steeds de meest geschikte controller moet gekozen worden uit het globale aanbod. Dit rekening houdend met een aantal aspecten zoals: reeds beschikbare tools voor de ontwikkeling (compilers,simulatoren, debuggers, enz ), reeds bestaande software bibliotheken, ervaring van de ingenieurs met bepaalde controllerreeksen, beschikbaarheid van componenten, economische gegevens enz. Dit is meestal geen gemakkelijke keuze. Pauwels D. Embedded systems 7

9 2.4 Een voorbeeld uit elke categorie. 4-Bit controller: bv. OKI MSM63184 Deze familie van controllers worden gebruikt voor 'low-end' toepassingen, zoals calculators, telefoons (geen GSM's of DECT toestellen ), uurwerken (in 'DIE' te verkrijgen), spelletjes, speelgoed, fietskilometertellers, thermostaat, enz Dit type heeft ingebouwde 640-dot matrix LCD drivers, wat ideaal is voor een aantal van de genoemde toepassingen. Andere types hebben een ingebouwde 'melody' module waarmee tonen, toonlengten en tempo's kunnen opgewekt worden: ideaal voor speelgoed. Een eigenschap van deze reeks controllers is dat ze low power devices zijn. Ze kunnen werken op een zeer lage voedingsspanning van 0,9V tot 2,7V en dit bij een stroomverbruik van 15µA in actieve toestand! Dit is ideaal voor batterijgevoede toepassingen. Een gevolg van dit zeer laag stroomverbruik is dat ze met een lage clockfrequentie werken, in dit geval 32KHz tot enkele honderden KHz. Bij 32KHz geeft dit een uitvoeringstijd van 61µS per instructie, zeker iets waar rekening moet mee gehouden worden. Een eigenschap van de meeste 4-bit controllers is dat ze slechts in mask ROM uitvoering of in OTP (One Time Programmable) ROM uitvoering beschikbaar zijn, en dat ze meestal van een hardware stack voorzien zijn. Hun kostprijs zit voor de meest performante controller uit deze reeks rond 3.5 voor grote aantallen. 8-Bit controller: bv. SAB 80C517 De groep van 8-bit controllers worden gebruikt in medium end toepassingen zoals: harddisk controle, keyboards, PLC's (vb. LOGO van SIEMENS), sensoren, stappenmotorsturingen, subsystemen (vb. display units), enz. De hier weergegeven SAB 80C517 van Infineon (vroeger SIEMENS) is een erg veelzijdige controller die een heleboel verschillende I/O mogelijkheden heeft meegekregen, vandaar zijn toepassing in voornamelijk industriële systemen. Deze controller is geen low power type, actief en 5V) verbruikt hij 40mA stroom, maar hij beschikt over een idle mode waar hij 15mA verbruikt en een power down mode waar hij maar 50µA verbruikt. De systeemclock moet tussen 3.5 en 16MHz liggen, het is dus geen statisch ontwerp. De SAB80C517 is een controller die meestal ROM-less gebruikt wordt, alhoewel hij door de fabrikant ook met mask ROM kan geleverd worden. Dit is een nadeel, er moet immers steeds een extern programmageheugen worden toegevoegd. De meeste fabrikanten integreren tegenwoordig minstens enkele Kbytes FLASH ROM in hun controllers die dan ISP (In System Programmable) worden. Dit is een algemene trend. De SAB80C517 is een controller die is afgeleid van de Intel 8051, waar heel wat nieuwe periferie-elementen werden aan toegevoegd. Het grote voordeel van deze familie is dat er reeds immense hoeveelheden software zijn geschreven voor deze controller-core die binnen de familie upward compatibel en dus herbruikbaar is. Naast deze periferie valt ook de hardware Division/Multiplication unit op, die 32-bit/16-bit bewerkingen en 16-bit*16-bit bewerkingen kan maken los van de CPU, wat een enorme tijdswinst kan opleveren bij wiskundige bewerkingen. De kostprijs voor dit type controller zit rond 8 voor grote aantallen. Pauwels D. Embedded systems 8

10 Fig Blokschema van de C517 controller van Infineon. Pauwels D. Embedded systems 9

11 16-bit controller: bv. XC167 van Infineon. 16-bit controllers worden gebruikt in high-end toepassingen, dit zijn meestal allemaal rekenintensieve toepassingen zoals: PID motorsnelheidsregelingen (servo-controllers), PLC's (S7 reeks van SIEMENS), industriële controlesystemen, management van verbrandingsmotoren, ABS systemen, enz. Het is zo dat industriële systemen meer en meer in staat moeten zijn om te communiceren met elkaar of met een subsysteem, hier vormt de CAN bus (industriëel- en automotive communicatie netwerk) een uitstekende oplossing. Deze chip bezit: een clockgenerator met PLL en verschillende types intern geheugen zoals 128Kbytes programma Flash, programma RAM en data RAM. Fig Blokschema van de XC167 controller van Infineon. Pauwels D. Embedded systems 10

12 32-Bit controller: bv. de MB91F361 van Fujitsu. Dit is een voorbeeld uit een reeks van controllers voor zeer rekenintensieve taken zoals: laseren high end inktjet printers, communicatie producten (routers, bridges ), high end gaming producten, muziek instrumenten, GPS systemen, next generation dashboards Zijn clocksnelheid ligt tussen 16 en 64MHz en is onder programmacontrole instelbaar, wat nuttig is om het stroomverbruik te beperken wanneer dit nodig is. Verder valt de massale hoeveelheid intern geheugen op (512 Kbytes Flash en 16Kbytes RAM) wat nuttig is voor het stockeren van een (real time) OS, wat bij 32-bit controllers meestal het geval is. Merk ook op dat deze controller beschikt over een volledige 32-bit externe bus interface zodat hij een groot extern geheugen kan aanspreken (max. 4Gbyte). Hij is dan ook ruim behuisd, met zijn 208 pins TQFP verpakking. De externe bus interface maakt de grens tussen een microcontroller en een embedded microprocessor zeer vaag. De microcontroller heeft hier in tegenstelling met een embedded processor echter nog altijd het voordeel single-chip te kunen werken. Fig Blokschema van de MB91F361 controller van Fujitsu. Pauwels D. Embedded systems 11

13 Hoofdstuk 8051 embedded controller hardware 8051,C517,ADµC832 De 8051 familie is een verzameling van controllers met dezelfde interne basisstructuur. De oorspronkelijke 8051 controller werd ontwikkeld door Intel en kwam omstreeks 1980 op de markt. Door het grote succes van deze µc ( microcontroller) voor industriële- en consumertoepassingen zijn er een groot aantal chip fabrikanten die onder licentie ook deze 8051µC gaan produceren. Men schat dat de helft van alle embedded systemen worden bestuurd door een controller uit de 8051 familie. Sommige van deze fabrikanten zoals PHILIPS, INFINEON (C517), DALLAS, ATMEL, ANALOG DEVICES (ADµC832), SILICON LABORATORIES enz. voegen aan deze µc nog interne componenten toe, terwijl ze de originele kern µc of CPU-CORE behouden. Dit heeft het voordeel dat bestaande software kan worden behouden, omdat de CPU-CORE alle originele hardware onderdelen bevat, terwijl de fabrikant toch eigen periferie componenten kan aanbrengen voor bepaalde toepassingen. Ook het feit dat de meeste ontwerpers "second-sources" willen voor hun componenten is een reden voor dit succes. Zo zijn er op het ogenblik honderden verschillende µc s die allemaal 8051 compatibel zijn, maar toch verschillen door hun specifieke extra s zoals bv. extra parallelle of seriële poorten, I 2 C Bus, AD/DA converters, extra hoeveelheid intern geheugen... Ook het tegenovergestelde doet zich voor; voor minimale toepassingen bevat de oorspronkelijke 8051 nog te veel mogelijkheden. Door een aantal parallelle poorten weg te laten, krijgt men een µc met minder aansluitpinnen en mogelijkheden, maar wel een µc die veel compacter is, bv. de ATMEL 89C5115 in een 28 pin SO behuizing. De ATMEL 89C5115 µc bestaat uit de 8051 CPU-CORE waarbij extra periferie werd toegevoegd en andere dan weer werd weggelaten. Dit heeft het voordeel dat men zeer compact en zeer economisch bepaalde toepassingen toch intelligentie kan verschaffen. Pauwels D. Embedded systems 12

14 3.1 De oorspronkelijke 8051 architectuur. De oorspronkelijke 8051µC bestaat uit: -Een 8-bit CPU ( Central Processing Unit ) die er voor zorgt dat de instructies worden opgehaald uit het geheugen, worden gedecodeerd en worden uitgevoerd. Deze CPU is geoptimaliseerd voor controletoepassingen ( bit bewerkingen). -4K bytes ROM. Voor programma opslag bytes interne RAM, voor het opslaan van variabelen, data, enz... -Twee 16 bit timer / counter circuits (TIMER0,TIMER1) -Een full duplex UART (Universele Asynchrone Receiver Transmitter) dit is een seriële poort voor commumicatie toepassingen (COM poort). - On chip clock oscillator. -4 acht bit parallel poorten. (P0,P1,P2,P3) waarvan ook twee poorten gebruikt kunnen worden als ADRES en DATA BUS om extern geheugen aan te spreken. Dit heeft als nadeel dat deze poorten dan hun functie als I/O poort verliezen. - Interrupt controller met twee interrupt niveau s, die 5 interrupt bronnen kunnen verwerken. Dit is dus de basisstructuur die we bijna altijd zullen terugvinden in de hele 8051 familie, en die compatibel is voor alle componenten in deze controllerfamilie. 3.2 De externe systeemarchitectuur. In sommige van de 8051 compatibele controllers is geen (of onvoldoende) intern programmageheugen geïntegreerd, dit is bv. zo bij de C517 van Infineon of de 8031 van Intel, die helemaal geen intern programmageheugen bezitten In deze gevallen gebruiken de controllers uit deze reeks extern aangesloten geheugenchips op dezelfde manier als een microprocessor. Op deze manier kan men extern bijkomend programmageheugen, datageheugen of bijkomende periferiechips zoals: parallelle- of seriële poorten, toevoegen aan een systeem door ze te verbinden met de bussen van de microcontroller De externe geheugen ruimte bij de 8051 reeks. De 8051 verschilt van een traditionele processor doordat hij een gescheiden geheugenruimte heeft voor data- en programmacode. Het verschil tussen programma- en datageheugen is een heel bijzondere eigenschap van de 8051 familie. De totale geheugenruimte voor programmacode is 64Kbytes, en deze kan extern of gedeeltelijk intern (bv. 4Kbyte bij de 8051) gesitueerd zijn. Ook het externe datageheugen is maximaal 64Kbytes groot. De 8051 compatibele controllers hebben bijkomend ook nog minstens 128 bytes intern datageheugen. De externe memorymap van een 8051 controller wordt in figuur weergegeven. Bij instruction fetches zal de controller instructies (code) steeds ophalen uit het code geheugen, dat intern of extern van de controller kan gelegen zijn. Extern codegeheugen wordt aangesproken onder twee voorwaarden: wanneer de /EA (External Access) pin met een logisch laag niveau is verbonden of wanneer de program counter (PC) een adres aangeeft dat groter is dan de interne geheugenruimte. Pauwels D. Embedded systems 13

15 De bedoeling is dus dat bij ROM-less (zonder intern codegeheugen) controllers vb. C517 en 8031 de /EA-pin laag gemaakt wordt, om aan te geven dat instructies extern moeten opgehaald worden. Niet alleen voor instruction fetches kan het codegeheugen aangesproken worden, maar a.d.h.v. een MOVC instructie kan ook data (bv. een tabel met constanten) die in dit codegeheugen staat gelezen worden. Wanneer het externe codegeheugen gelezen wordt, zal de /PSEN (Program Store Enable) lijn door de controller geactiveerd worden als leescontrolesignaal naar het geheugen toe. Merk op dat er geen voorzieningen zijn getroffen om naar het codegeheugen te schrijven vanuit de controller, de code zit immers in ROM geheugen! Codegeheugen Datageheugen FFFFh FFFFh Externe code geheugenruimte Externe data geheugenruimte Codegeheugen kan intern of extern zitten afhankelijk van de controller en de toestand van de EA-pin 1000h 0FFFh 0000h 0000h Fig De externe memorymap van een 8051 controller. Het externe datageheugen kan wel worden gelezen en geschreven, het moet immers geschikt zijn om variabelen te bevatten, het is dan ook uitgevoerd als RAM geheugen. Dit kan onder programmacontrole gelezen of geschreven worden met volgende instructies: MOVX en MOVX om data te lezen uit het geheugen en en om data te schrijven naar het geheugen. Waneer het externe datageheugen wordt gelezen of geschreven zal de controller respectievelijk de /RD of de /WR lijn activeren als controle signaal. Merk op dat de controller niet in staat is om uit het datageheugen instructies op te halen, daar hij hiervoor een ander leescontrolesignaal gebruikt. Pauwels D. Embedded systems 14

16 In sommige gevallen (bv. bij programma-ontwikkeling ) is het wenselijk dat een programma kan opgehaald (en uitgevoerd) worden uit het datageheugen, want daar kan men wel een programma in downloaden, het is immers schrijfbaar (RAM). Bij de 8051 reeks kan dit (het overlappen van data- en codegeheugenruimte) gedaan worden door de beide actief lage leescontrolesignalen (/RD en /PSEN) via een AND functie te combineren tot een nieuw actief laag leessignaal dat dan naar het fysische geheugen (RAM) met een bepaald geheugenbereik gaat. De externe verbindingen van een 8051 compatibele controller worden aangegeven in de figuur Fig Pinbeschrijving van een 8051 compatibele AT89s8252 in dil behuizing. De vier I/O poorten worden hier weergegeven samen met hun alternatieve functies. In een basis 8051 systeem kunnen de vier poorten als 8-bit parallelle poorten gebruikt worden. Het is belangrijk te begrijpen dat wanneer een pin gebruikt wordt met zijn alternatieve functie deze pin zijn gewone I/O functie verliest. Wanneer bv. externe periferiechips of geheugen nodig zijn, worden poort 0 en poort 2 gebruikt met hun alternatieve functie nl. als businterface. Poort 0 wordt dan de 8-bit gemultiplexte adres/data bus en poort 2 krijgt de functie toegewezen van hoogste byte van de adresbus. Enkele pinnen van poort 3 worden controlelijnen zoals /RD (read) en /WR (write). Deze poortpinnen zijn dan verloren als I/O-pinnen en er blijven in dit geval niet veel pinnen meer over die kunnen gebruikt worden als vrij programmmeerbare I/O pin. Het probleem wordt nog groter indien we ook enkele externe interrupts willen verwerken via de interruptingangen van poort 3. Ook de seriële poort en de timeringangen zitten als alternatieve functie op deze poort 3. Pauwels D. Embedded systems 15

17 Het besluit is dan ook dat we de 8051 controllers met vier poorten liefst single-chip gebruiken en niet met een externe businterface daar we immers op deze manier de voordelen (I/O) van de controller verliezen. Fig C517 systeem met externe EPROM en SRAM. Een 8051 compatibele controller met businterface gebruiken wordt pas interessant wanneer we kunnen beschikken over extra I/O poorten zoals bv. het geval is bij de C517 van Infineon, die beschikt over 8 poorten, zoals aangegeven in de figuur De RST (reset) ingang moet bij power-up even hoog worden gehouden ( bij de C517 is dit het inverse signaal, dat dus laag moet gemaakt worden) om de controller zich te laten initialiseren en met de programmauitvoering te beginnen op locatie 0000h. De oscillator pinnen (XTAL1, XTAL2) worden gebruikt om een quarts kristal aan te sluiten op de inwendige clockoscillator. Andere controlelijnen zijn: de adres latch enable (ALE) pin die gebruikt wordt om de adres/databus te demultiplexen, de program store enable (/PSEN) pin om het externe codegeheugen aan te spreken en de external access (/EA) pin die gebruikt wordt om de controller in het externe codegeheugen instructies te laten ophalen. Pauwels D. Embedded systems 16

18 3.2.2 De bus architectuur. De volgende figuur geeft de bus-structuur aan voor het aanspreken van externe geheugen- of periferie-elementen. We zien hier een 16 bit adresbus en een 8 bit databus, samen met een viertal controlesignalen. Om het aantal poortpinnen die gebruikt worden voor de adres-en databus te beperken worden de laagste byte van de adresbus en de data tijdgemultiplexed op dezelfde bus. Het Address Latch Enable (ALE) signaal wordt gebruikt om de laagste byte van het adres te latchen en zo deze twee types informatie te demultiplexen. Op deze manier kan een stabiele 16 bit adresbus worden aangeboden aan het systeem, tewijl de adres/databus daarna wordt gebruikt voor een datatransfert. De /RD en /WR lijnen controleren de datastroom van en naar de externe datageheugenruimte. De /PSEN lijn controleert de datastroom van de externe programmaruimte. In deze architectuur zijn er geen voorzieningen voor een gescheiden I/O ruimte (bv. voor andere periferiechips enz.) wat wil zeggen dat externe periferie in de geheugenruimte moet worden ondergebracht, we zeggen dat de periferie "memory-mapped" is compatibele controller P2 MSB adresbus (A8-A15) 16-bit adresbus ALE P0 LSB adres/ databus AD0-AD7 Adres latch LSB adresbus A0-A7 databus P3 RD WR PSEN Fig Busstructuur van een 8051 compatibele controller. 3.3 De externe timing De controllerclock en de relatie tot systeemtiming. De controller systeemclock bepaalt alle timing-eigenschappen van het systeem en wordt opgewekt door een interne oscillator in de controller. De XTAL1 en XTAL2 pinnen zijn de ingang en de uitgang van een inverterende versterker die kan werken als een on-chip oscillator van het Pierce type. Hiertussen sluiten we een quartskristal aan waarvan de parallelresonantiefrequentie gelijk is aan de gewenste clockfrequentie. Hoe hoger de clockfrequentie wordt gekozen, hoe sneller de controller instructies zal uitvoeren, maar hoe hoger het stroomverbruik en hoe groter de EMI. De minimum frequentie is afhankelijk van de functionaliteit van het systeem, m.a.w. de controller Pauwels D. Embedded systems 17

19 moet snel genoeg zijn om het systeem normaal te laten werken. De minimum frequentie is ook afhankelijk van de technologie waarmee de controller intern is opgebouwd (fully static?). Het bereik van de clockfrequentie wordt in de datasheet van de controller opgegeven en heeft meestal een maximum van enkele (tientallen) MHz. Men gebruikt in heel wat 8051 compatibele systemen een clock (en dus ook een quartskristal) van MHz. Men gebruikt deze frequentie omdat ze intern in de controller kan worden afgedeeld naar een standaard bitrate (communicatiesnelheid) voor de seriële poort. Naast dit quartskristal worden er ook nog twee capaciteiten vanuit XTAL1 en XTAL2 verbonden naar de massa, zoals wordt aangegeven in de figuur De datasheet van een parallel resonant kristal geeft de load capaciteit weer, wat de serieschakeling is van C1 en C2. De waarde van C1 en C2 ligt meestal tussen 30 en 40 pf. Het vergroten van de capaciteiten heeft als gevolg dat de start-up tijd van de oscillator stijgt tot het punt waar de oscillator niet meer start. De capaciteitswaarden verminderen heeft als gevolg dat de oscillator kan gaan oscilleren op een hogere harmonische (overtone) van de grondfrequentie. Daar dit een circuit is waar signalen worden gegenereerd van relatief hoge frequentie worden er ook enkele eisen gesteld aan de fysische layout van het circuit (EMI). De signaalbanen op de PCB (Printed Cicuit Board) die het kristal, de capaciteiten en de controller oscillatorpinnen verbinden, moeten zo kort en zo breed mogelijk zijn om parasitaire inductantie en weerstand te beperken. Het kristal en de capaciteiten moeten dus zo kort mogelijk bij de oscillatorpinnen van de controller geplaatst worden, terwijl de signaalbanen naar de oscillator moeten afgeschermd worden van andere signalen om overspraak te vermijden, dit doet men meestal met een massavlak of met een massaring rond de signaalbanen. Fig Oscillatorcircuit dat meestal wordt gebruikt bij controllers. De systeemclock bepaalt de interne clockphases, states en machinecycli m.a.w. de snelheid waarmee externe bustransacties en instructies worden uitgevoerd. Een machine cyclus bestaat uit 6 toestanden (states) en is 12 oscillator periodes lang. Elke state is onderverdeeld in een phase1 (P1) en een phase2 (P2). Een machinecyclus bestaat dus uit 12 oscillatorperiodes die genummerd worden van S1P1 (State1, Phase1) tot S6P2. Rekenkundige en logische bewerkingen vinden typisch plaats gedurende phase1 en register naar register transferts gedurende phase2. Pauwels D. Embedded systems 18

20 Fig Relatie tussen de clock en de verschillende states en machinecycli. De uitvoering van een één-cyclus instructie start op S1P2 (stijgende flank PSEN), wanneer de opcode wordt binnengelezen in het instructieregister. Als het een twee-byte instructie is, wordt de tweede byte gelezen tijdens S4 van dezelfde machinecyclus. Wanneer het over een één-byte instructie gaat, zal er ook tijdens S4 een byte gelezen worden (dit is de volgende opcode) maar deze wordt niet verder gebruikt. In elk geval is de uitvoering klaar op het einde van S6P2. De meeste 8051 instructies worden uitgevoerd in één machinecyclus, maar sommige doen er twee of vier cycli over. Pauwels D. Embedded systems 19

21 3.3.2 Timing van de buscontrolesignalen. De timing en de logische gedachtengang van de controlesignalen is belangrijk om de buswerking van een 8051 controller te begrijpen. De timingdiagramma's voor het lezen van een byte uit het programmageheugen en het lezen en het schrijven van een byte uit het datageheugen worden hier in figuur weergegeven en spreken voor zich. Fig Controlesignalen bij verschillende types van busacces. Pauwels D. Embedded systems 20

22 Alle buscycli starten met het aanbieden van de adresinfo op P0 en P2. Op de dalende flank van ALE wordt de info op P0 in de externe latch opgeslagen, het volledige 16 bit adres is nu stabiel tot het einde van de buscyclus. P0 kan nu veranderen van waarde en de data kan nu weergegeven of gelezen worden langs P0. Voor het ophalen van een instructiebyte uit het programmageheugen zal de stijgende flank van de /PSEN lijn de data (programmabyte) binnenlezen. In het geval het datageheugen wordt aangesproken zal de stijgende flank van het /RD signaal aangeven wanneer de data gelezen wordt, de data moet door het geheugen tegen deze tijd stabiel op de databus geplaatst zijn. Bij het schrijven naar het datageheugen zal de stijgende flank van /WR aangeven dat de data stabiel op de databus zit en dat de geheugencomponent deze mag latchen (lezen). Het ALE signaal wordt gebruikt om de adres/data info op P0 te demultiplexen, maar zelfs bij het uitvoeren van intern opgeslagen code zal dit signaal worden gegenereerd, het is dus een nuttig signaal voor debugdoeleinden, dat aangeeft of de controller daadwerkelijk code uitvoert. In single-chip toepassingen kan het ALE signaal, afhankelijk van het type van controller, softwarematig worden uitgeschakeld wat nuttig is voor het beperken van EMI, ALE wordt immers anders geactiveerd met een constante frequentie van 1/6 van de oscillatorclock wat aanleiding kan geven tot elektromagnetische straling. 3.4 I/O systemen. De 8051 gebaseerde controllers hebben naast twee interne timers meestal minstens vier parallelle poorten en één seriële poort als I/O. Zoals reeds eerder werd aangehaald heeft door het beperkte aantal pinnen van een behuizing (bv. 40 pins dip) bijna elke pin een alternatieve functie toegewezen gekregen. Het nadeel is dat wanneer deze pinnen met hun alternatieve functie worden gebruikt, ze natuurlijk niet tegelijk als gewone I/O pinnen kunnen gebruikt worden. Eigenlijk kan dit wel, maar dit kan nogal vreemde gevolgen hebben, de gebruiker moet dan wel weten wat hij doet. Na een RESET zijn de vier poorten (I/O pinnen ) allemaal geconfigureerd als Input pinnen, en zijn de alternatieve functies uitgeschakeld. Over de verschillende I/O blokken die in de controllers aanwezig (kunnen) zijn zullen we het hebben in het hoofdstuk 'Interne bouwstenen van een microcontroller'. Pauwels D. Embedded systems 21

23 Hoofdstuk 4 Software software basics. Er bestaan verschillende programmeertalen voor de 8051 compatibele controllers. Ze kunnen geprogrammeerd worden in assembler of in één van de verschillende beschikbare 'hogere' programmeertalen zoals C, BASIC, PL/M of Forth. Om de verschillende mogelijkheden te kunnen begrijpen, is het belangrijk om machinetaal, assembler en de hogere programmeertaal te begrijpen. Machinetaal bestaat uit getallen die de microcontroller interpreteert als commando's en data die aangeven hoe een taak moet uitgevoerd worden. Een voorbeeld hiervan is de sequentie 02h,12h,34h in het programmageheugen. Deze getallen worden door de controller geïnterpreteerd als een sprong (02h, de operation code of opcode) naar een geheugenlocatie 1234h (de operand of data). De instructies voor een 8051 controller kunnen bestaan uit 1, 2 of 3 bytes, afhankelijk van de hoeveelheid data die nodig is in de instructie. Al de programma's in de verschillende programmeertalen die beschikbaar zijn, moeten eerst worden omgezet naar machinetaal vooraleer ze bruikbaar zijn voor de controller. Elke instructie die kan uitgevoerd worden door de controller heeft een unieke opcode (eerste getal). Daar opcodes nogal moeilijk zijn om mee om te gaan voor de programmeur worden ze voorgesteld door een engelstalige afkorting of samentrekking van een aantal woorden (Mnemonic) die aangeeft wat de instructie doet. Dit noemen we een assembler instructie. De instructie die hoort bij de vorige getalsequentie is LJMP 1234h. De assemblerinstructie is de vorm die bruikbaar is voor de programmeur, tewijl de machinetaal door de controller wordt gebruikt. De instructieset zijn alle mogelijke instructies (op het laagste niveau) die een controller kan uitvoeren en die dus ter beschikking staan van de programmeur om een programma te schrijven. De 8051 instructieset is geoptimaliseerd voor 8-bit en single bit controletoepassingen. Zo zijn er heel wat instructies die toelaten 1-bit variabelen (Booliaanse variabelen) te manipuleren. Deze bitvariabelen kunnen bits zijn van interne poorten of van verschillende special-function registers of, bits uit interne bit-aanspreekbare RAM locaties voor het gebruik als flags. Dit is nuttig voor heel wat controle- en logische functies die Booliaanse bewerkingen vereisen. Dit wordt duidelijk in de volgende delen van de tekst. Assembler programma's laten totale controle toe over uitvoeringssnelheid en geheugengebruik, dit betekent dat de programmacode compacter kan gemaakt worden dan bij een hogere programmeertaal en de uitvoeringssnelheid perfect kan gecontroleerd worden. Pauwels D. Embedded systems 22

24 Wanneer men over weinig geheugen beschikt en de timing kritisch is kan het aangeraden zijn om in assembler te programmeren. Het grote nadeel van assembler is dat de programmeur elk detail van het programma voor zijn rekening moet nemen, inclusief geheugen allocatie voor code en data, registergebruik, en de controle over de opslag van variabelen. Hogere programmeertalen verlossen de programmeur van de details die gepaard gaan met assemblerprogrammatie. Geheugen allocatie, beveiliging van variabelen, stackgebruik en vele andere details worden afgehandeld door de compiler. Het nadeel hiervan is echter dat de programmeur de controle verliest over deze details. Gewoonlijk zal de machinecode die resulteert van een programma, dat werd gemaakt in een hogere programmeertaal, beduidend groter zijn en trager werken dan de code uit een assembler programma dat dezelfde taak uitvoert. De keuze van de taal is afhankelijk van de aard van het project. Een programma schrijven op een succesvolle manier, in om het even welke taal vereist echter een grondige kennis van de controller en zijn periferiebouwstenen en van het totale embedded systeem. Hierdoor is het schrijven van embedded software een uitdagender en dikwijls veel complexer geheel dan het schrijven van desktop software. 4.2 De interne 8051 familie architectuur. De CPU van de 8051 familie is een 8-bit processor die o.a. bestaat uit volgende delen: een instructiedecoder, een arithmatic section met hierin de ALU of Arithmatic Logic Unit (rekenkundige en logische eenheid), een program controller, een timing- en controledeel en een array van registers (8-bit geheugenlocaties in de controller) die aanspreekbaar zijn door de programmeur. Elke programma-instructie wordt door de instructie decoder ontcijferd, en de juiste interne timing signalen worden door de timing/controle-eenheid gegenereerd voor het controleren van de interne werking van de verschillende delen van de CPU. De Timing/Controle eenheid zorgt voor de syncronisatie van de dataflow in en uit de CPU. Hij coördineert de verplaatsing van data op de interne en externe bussen van de microcontroller en hij genereert de /PSEN, /RD en /WR signalen waarvan eerder sprake. De arithmatic section zorgt ervoor dat de data op de juiste manier bewerkt wordt en bestaat uit de ALU ( Arithmatic & Logic Unit), ACCU of A werkregister, B hulpregister, en PSW (Processor Status Word). De ALU is verantwoordelijkvoor het rekenkundig bewerken van bytes. Hij handelt de optelling, aftrekking, vermenigvuldiging, deling en de logische bewerkingen af zoals 'and'en en 'or'en van data. De ALU zit intern in de CPU en staat niet rechtstreeks onder controle van de programmeur. Het enige deel van de CPU waar de programmeur directe controle over heeft zijn de registers. Registers zijn in dit geval byte-brede latches (geheugenlocaties) die gebruikt worden om data te stockeren en te manipuleren. De registers bij de 8051 familie bevatten: een accumulatorregister (ACCU of gewoon A) dat ingangsdata bevat voor de rekenkundige bewerkingen die met de ALU worden uitgevoerd. De ACCU is ook het register dat het resultaat bevat na een rekenkundige bewerking met de ALU, een 16 bit datapointer register (DPTR), dat gebruikt wordt voor het aanwijzen van data die in het externe geheugen zitten en die moeten worden gemanipuleerd, Pauwels D. Embedded systems 23

25 het PSW is een geheugenplaats (register) met een speciale functie. Het bestaat uit een aantal bits die informatie vasthouden over de processor status, of m.a.w. over de instructies die reeds uitgevoerd werden door de µc. Fig Het processorstatusregister van een 8051 controller. De CY bit (CarrY flag), is een bit die aangeeft of er een overflow of underflow conditie is opgetreden, tijdens een vorige bewerking. De carry-bit wordt ook gebruikt als accumulator bij Booleaanse (bit) bewerkingen. De RS0 en RS1 bits worden gebruikt om één van de vier registerbanken te selecteren zoals aangegeven in de tabel onderaan in figuur De AC (Auxiliary Carry) wordt gebruikt bij BCD bewerkingen en geeft een overflow aan van de LS nibble naar de MS nibble. De P bit geeft de pariteit aan van de accu. P=1 bij een oneven aantal 1's in de accu. De twee bits F0 en F1 zijn general purpose flagbits voor de gebruiker. een reeks general-purpose registers (registerbanken) voor opslag van data. De program controller controleert de sequentie waarin de instructies worden uitgevoerd door de CPU. Een 16-bit Program Counter (PC) register bevat steeds het adres van de volgende uit te voeren instructie. Het PC register wordt beïnvloed door de spronginstructies. Al deze registers zitten in het inwendige datageheugen van de microcontroller. De registers van een 8051 controller bestaan uit twee soorten registers, de special-function registers (SFR's) en de registerbanken. Pauwels D. Embedded systems 24

26 4.2.1 De interne geheugen architectuur. De 8051 familie heeft intern een aantal datageheugenlocaties (RAM) die het mogelijk maken de controllers single-chip te gebruiken. Het interne datageheugen is opgedeeld in twee functionele blokken. Eén blok van 128 bytes data RAM en één blok van 128 mogelijke Special Function Registers ook wel SFR s genoemd. De interne geheugenindeling wordt aangegeven in de figuur Fig Intern datageheugen van een 8051 controller. Het data RAM gedeelte bestaat op zijn beurt uit twee delen: de gewone interne geheugenlocaties voor het opslaan van data en een deel geheugenlocaties die we registers noemen. Dit is een blok van general purpose registers die gegroepeerd zijn als 4 banken van acht registers die we R0 tot R7 noemen. De registers van dit registerblok dienen voor het opslaan van tijdelijke gegevens, het zijn de normale processorregisters. Zie figuur De SFR s zijn geheugenlocaties met een speciale functie in de controller zoals de CPU registers (bv. de ACCU, B,het PSW en pointers zoals SP, en de datapointer). Of het zijn geheugenlocaties waarvan de geheugencellen gebruikt worden om de op de chip aanwezige I/O componenten te besturen. Zo zijn oa. de poorten ook SFR's. De data die in deze SFR s geplaatst wordt, wordt door de bijhorende I/O component (bv, een timer) gebruikt om zijn werking te bepalen. Op deze manier worden de interne periferiecomponenten via software instelbaar. Een belangrijke eigenschap van de SFR's is hun resetwaarde. Na een power-up of reset van de 8051 wordt in de meeste SFR's een specifieke opstartwaarde geplaatst. Dit is belangrijk, want zo kan men interne periferie uitschakelen om te voorkomen dat er na het opstarten onvoorspelbare fouten zouden optreden. Zo worden bv. de poorten na een reset allemaal op een logisch 1 niveau (input mode) gezet, iets waar men in de software rekening moet mee houden. Pauwels D. Embedded systems 25

27 De SFR's nemen meestal ook niet alle 128 beschikbare geheugenadressen in. De niet gebruikte adressen kunnen echter niet gebruikt worden voor dataopslag, de geheugencellen op deze adressen bestaan gewoon niet. Dit wordt aangegeven in figuur Fig SFR's bij een 8051 compatibele AT89S8252. Microcontrollers hebben als voordeel t.o.v. processoren dat hun SFR's intern zitten en dat ze kunnen worden aangesproken als CPU registers. Een controller kan de SFR's dus snel aanpassen en kan ook met SFR's rekenen, iets wat geen enkele processor kan. Om al de interne geheugenlocaties (datalocaties, registers en SFR's) aan te spreken zijn er 256 adressen van 00h tot FFh voorzien. Om deze twee soorten geheugenlocaties, data of SFR's, aan te spreken wordt er gebruik gemaakt van instructies met directe en indirecte adressering. Bij directe adressering staat het adres van de geheugenlocatie waarop de instructie betrekking heeft in de operand (na de op-code) van de instructie zelf. De hoogste 128 bytes interne locaties (80h tot FFh) zijn voorzien voor de SFR s. Voor de SFR s kan enkel de directe adressering gebruikt worden. Bij indirecte adressering staat in de operand van de instructie het adres van een andere interne geheugenlocatie, zeg maar register, en die geheugenplaats bevat op haar beurt het adres van de geheugenplaats die we willen aanspreken met de instructie. Dit register kan dus beschouwd worden als een pointer naar een interne locatie. Dit lijkt zeer omslachtig doch voor veel toepassingen o.a. het aanspreken van tabellen is het een zeer handige adresseermethode. Pauwels D. Embedded systems 26

28 De laagste 128 bytes, van de interne data RAM, met de adressen 00H tot 7FH kunnen volgens beide adresseermethodes aangesproken worden. De meeste varianten van de 8051 famile hebben net zoals de 8052 (een 8051 compatibele opvolger) nog 128 bytes extra intern datageheugen. Er zijn in de architectuur echter maar 256 interne geheugenlocaties voorzien en deze zijn reeds door de vorige blokken ingenomen. Als oplossing voor dit probleem heeft men de 128 extra geheugenlocaties op dezelfde interne adressen geplaatst als de SFR's, dus van 80h tot FFh. Zie figuur Er is toch geen conflict tussen beide overlappende delen doordat men ervoor zorgde dat de extra locaties enkel via indirecte adressering kunnen aangesproken worden, waar dit voor de SFR's, die op dezelfde adressen zitten, met directe adressering het geval was. Fig Intern datageheugen van een 8052 compatibele controller Waarom wordt er nu een onderscheid gemaakt tussen de gewone interne RAM locaties en de registers? De lengte (het aantal bytes) van de opcode is heel belangrijk. De opcode van een instructie is de bitcombinatie in de instructie, die aangeeft over welke instructie het gaat. Hoe langer de opcode, hoe meer tijd de CPU nodig heeft om de instructie uit het geheugen te halen en uit te voeren. Voor een µc waar het programma in het interne codegeheugen (bv. Flash of eprom) zit is dit ook heel belangrijk, want deze hoeveelheid geheugen is beperkt. De fabrikanten besteden dan ook de nodige aandacht aan het inkorten van opcode s. Ideaal zijn instructies die 1 byte lang zijn, de CPU kan ze dan in één maal ophalen. Dit is onmogelijk voor instructies die het adres bevatten van een interne geheugenlocatie, want dit adres neemt zelf al één byte in beslag! Om dit op te vangen geeft men bij een 8051 compatibele µc acht geheugenlocaties een drie bit adres. Pauwels D. Embedded systems 27

8051 Microcontroller Embedded Systemen Een gids voor XC888 toepassingen.

8051 Microcontroller Embedded Systemen Een gids voor XC888 toepassingen. 8051 Microcontroller Embedded Systemen Een gids voor XC888 toepassingen. Versie: 1.0 01/10/2010 2.0 11/07/2011 3.0 05/07/2014 Auteurs: Pauwels D. Roggemans M. Inhoudsopgave: Inhoudsopgave:... 2 Inleiding...

Nadere informatie

De Arduino-microcontroller in de motorvoertuigentechniek (2)

De Arduino-microcontroller in de motorvoertuigentechniek (2) De Arduino-microcontroller in de motorvoertuigentechniek (2) E. Gernaat (ISBN 978-90-79302-11-6) 1 Procescomputer 1.1 Microprocessoren algemeen De informatie-verwerking zoals is behandeld, is vrijwel geheel

Nadere informatie

De Arduino-microcontroller in de motorvoertuigentechniek (4)

De Arduino-microcontroller in de motorvoertuigentechniek (4) De Arduino-microcontroller in de motorvoertuigentechniek () E. Gernaat (ISBN 978-90-7930--6) De Atmel ATmega38/P microcontroller. Uitvoering De ATmega38 is een microprocessor van de Amerikaanse firma ATMEL

Nadere informatie

De AT90CAN microprocessor van ATMEL in de motorvoertuigentechniek (2)

De AT90CAN microprocessor van ATMEL in de motorvoertuigentechniek (2) De AT90CAN microprocessor van ATMEL in de motorvoertuigentechniek (2) Timloto o.s. / E. Gernaat / ISBN 978-90-79302-06-2 Op dit werk is de Creative Commens Licentie van toepassing. Uitgave: september 2012

Nadere informatie

De AT90CAN microprocessor van ATMEL in de motorvoertuigentechniek (4)

De AT90CAN microprocessor van ATMEL in de motorvoertuigentechniek (4) De AT90CAN microprocessor van ATMEL in de motorvoertuigentechniek (4) Timloto o.s. / E. Gernaat / ISBN 978-90-79302-06-2 Op dit werk is de Creative Commens Licentie van toepassing. Uitgave: september 2012

Nadere informatie

2 Algemene opbouw van een computersysteem

2 Algemene opbouw van een computersysteem Procescomputer E. Gernaat 1 Microprocessoren algemeen Informatie-verwerking zoals behandeld is momenteel vrijwel geheel overgenomen door microprocessoren. Wanneer we voortborduren op het idee van combinatorische

Nadere informatie

Hoofdstuk 7. Computerarchitectuur

Hoofdstuk 7. Computerarchitectuur Hoofdstuk 7 Computerarchitectuur 1 controlebus CPU MEMORY I/O databus adresbus Figuur 71 Schematische opbouw van een computersysteem 8 Figuur 72 Een busverbinding Buslijn Out E A In Out E B In Out E C

Nadere informatie

informatica. hardware. overzicht. moederbord CPU RAM GPU architectuur (vwo)

informatica. hardware. overzicht. moederbord CPU RAM GPU architectuur (vwo) informatica hardware overzicht moederbord CPU RAM GPU architectuur (vwo) 1 moederbord basis van de computer componenten & aansluitingen chipset Northbridge (snel) Southbridge ("traag") bussen FSB/HTB moederbord

Nadere informatie

BASIS MICROCONTROLLERS. INLEIDING EN ADDENDUM BIJ HET AduC800 DATABOEK.

BASIS MICROCONTROLLERS. INLEIDING EN ADDENDUM BIJ HET AduC800 DATABOEK. BASIS MICROCONTROLLERS INLEIDING EN ADDENDUM BIJ HET AduC800 DATABOEK. ROGGEMANS M. 07/2014 2 Inhoud INLEIDING:... 4 HOOFDSTUK 1: DE UNIVERSELE VERWERKINGSEENHEID... 8 1.1 INLEIDING:... 8 1.2 HET GEHEUGEN:...

Nadere informatie

Microcontrollers Week 1 Introductie microcontroller Jesse op den Brouw INLMIC/2014-2015

Microcontrollers Week 1 Introductie microcontroller Jesse op den Brouw INLMIC/2014-2015 Microcontrollers Week 1 Introductie microcontroller Jesse op den Brouw INLMIC/2014-2015 Computersysteem Een systeem dat rekenkundige operaties, data manipulaties en beslissingen kan uitvoeren, aan de hand

Nadere informatie

Tinyserir-RC5. Datasheet. Tinyserir-RC5 Page: 1 of 8

Tinyserir-RC5. Datasheet. Tinyserir-RC5 Page: 1 of 8 9600 bps RS-232 interface voor uitlezing van Ontvangen RC5 codes Led aanduiding bij ontvangst van Infrarood pulsen Led aanduiding goede werking Interne firmware Inwendige oscillator Weinig externe componenten

Nadere informatie

Geheugenbeheer. ICT Infrastructuren 2 december 2013

Geheugenbeheer. ICT Infrastructuren 2 december 2013 Geheugenbeheer ICT Infrastructuren 2 december 2013 Doelen van geheugenbeheer Reloca>e (flexibel gebruik van geheugen) Bescherming Gedeeld/gemeenschappelijk geheugen Logische indeling van procesonderdelen

Nadere informatie

De computer als processor

De computer als processor De computer als processor DE FYSIEKE COMPUTER Componenten van de computerconfiguratie Toetsenbord Muis Scanner Microfoon (Extern geheugen) Invoerapparaten Uitvoerapparaten Monitor Printer Plotter Luidspreker

Nadere informatie

ES1 Project 1: Microcontrollers

ES1 Project 1: Microcontrollers ES1 Project 1: Microcontrollers Les 3: Eenvoudige externe hardware & hardware programmeren in C Hardware programmeren in C Inmiddels ben je al aardig op gang gekomen met het programmeren van microcontrollers.

Nadere informatie

Wat is Arduino? Arduino = microprocessor (Atmel)

Wat is Arduino? Arduino = microprocessor (Atmel) Intro tot Arduino Wat is Arduino? Volgens de website: Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software. It's intended for artists, designers,

Nadere informatie

Klas : 5 Industriële ICT Herhalingsvragen reeks 1 PC-techniek

Klas : 5 Industriële ICT Herhalingsvragen reeks 1 PC-techniek Klas : 5 Industriële ICT Herhalingsvragen reeks 1 PC-techniek VTI St.- Laurentius Neem eerst de tekst in het boek door, doe dit enkele keren en probeer uiteraard te onthouden wat je leest. Los nadien de

Nadere informatie

VRIJ TECHNISCH INSTITUUT Burg.Geyskensstraat 11 3580 BERINGEN. De PLC geïntegreerd in de PC. Vak: Toegepaste informatica Auteur: Ludwig Theunis

VRIJ TECHNISCH INSTITUUT Burg.Geyskensstraat 11 3580 BERINGEN. De PLC geïntegreerd in de PC. Vak: Toegepaste informatica Auteur: Ludwig Theunis Burg.Geyskensstraat 11 3580 BERINGEN De PLC geïntegreerd in de PC. Vak: Toegepaste informatica Auteur: Ludwig Theunis Versie: vrijdag 2 november 2007 2 Toegepaste informatica 1 De Microprocessor Zowel

Nadere informatie

Inhoud vandaag. Interrupts. Algemeen ARM7 AIC

Inhoud vandaag. Interrupts. Algemeen ARM7 AIC Inhoud vandaag Interrupts Algemeen ARM7 AIC Interrupts Wat is een interrupt? Een interrupt is een onderbreking van de huidige bezigheden ten gevolge van een externe gebeurtenis, zodanig dat de bezigheden

Nadere informatie

Labo digitale technieken

Labo digitale technieken .. Het gebied "elektronica" is reeds geruime tijd onderverdeeld in twee specialiteiten, namelijk de analoge en de digitale technieken. Binnen analoge schakelingen gebeurt de signaalverwerking met lineaire

Nadere informatie

RAM geheugens. Jan Genoe KHLim. Situering RAM-geheugens. Geheugens. Halfgeleider Geheugens. Willekeurig toegankelijk geheugen

RAM geheugens. Jan Genoe KHLim. Situering RAM-geheugens. Geheugens. Halfgeleider Geheugens. Willekeurig toegankelijk geheugen Jan Genoe KHLim Situering RAM-geheugens Geheugens Halfgeleider Geheugens Serieel toegankelijk geheugen Willekeurig toegankelijk geheugen Read Only Memory ROM Random Access Memory RAM Statische RAM SRAM

Nadere informatie

De CB channel controller TMS1022NL/NLL en TMS1023NL/NLL. ( Dit is een maskrom-programmed version van de Texas Instruments TMS1000 family)

De CB channel controller TMS1022NL/NLL en TMS1023NL/NLL. ( Dit is een maskrom-programmed version van de Texas Instruments TMS1000 family) De CB channel controller TMS1022NL/NLL en TMS1023NL/NLL ( Dit is een maskrom-programmed version van de Texas Instruments TMS1000 family) Ik begin even met een korte inleiding over de TMS1000. ( Wil je

Nadere informatie

Van Poort tot Pipeline. Ben Bruidegom & Wouter Koolen-Wijkstra AMSTEL Instituut Universiteit van Amsterdam

Van Poort tot Pipeline. Ben Bruidegom & Wouter Koolen-Wijkstra AMSTEL Instituut Universiteit van Amsterdam Van Poort tot Pipeline Ben Bruidegom & Wouter Koolen-Wijkstra AMSTEL Instituut Universiteit van Amsterdam Van Poort tot Pipeline Pipeline processor One cycle machine Calculator File of registers Assembly

Nadere informatie

Microcontrollers Introductie INLMIC Jesse op den Brouw INLMIC/2014-2015

Microcontrollers Introductie INLMIC Jesse op den Brouw INLMIC/2014-2015 Microcontrollers Introductie INLMIC Jesse op den Brouw INLMIC/2014-2015 Microcontroller Uit Wikipedia A microcontroller (sometimes abbreviated µc or uc) is a small computer on a single integrated circuit

Nadere informatie

Microcontrollers Labo

Microcontrollers Labo Microcontrollers Labo 8051 based microcontroller ADuC832 from Analog Devices 06/2016 Roggemans M. (MGM) LES 0 Testen en verdelen van de hardware FTP site overlopen Installeren van software om thuis te

Nadere informatie

Wat is een busverbinding?

Wat is een busverbinding? Wat is een busverbinding? gemeenschappelijke verbinding tussen CPU, geheugen en I/O-schakelingen onderscheid tussen: databus/adresbus/controlbus intern/extern serieel/parallel unidirectioneel/bidirectioneel

Nadere informatie

De seriële poort Jan Genoe KHLIM

De seriële poort Jan Genoe KHLIM De seriële poort Jan Genoe KHLIM De seriële poort 1 De seriële poort Een PC bezit een aantal seriële poorten: COM1, COM2,... Er zijn 1 of 2 seriële poorten voorzien op het moederbord Plug-in kaarten laten

Nadere informatie

Praktijkinstructie Industriële automatisering 3 (ICT09.3/CREBO:53270)

Praktijkinstructie Industriële automatisering 3 (ICT09.3/CREBO:53270) instructie Industriële automatisering 3 (ICT09.3/CREBO:53270) pi.ict09.3.v1 ECABO, 1 april 2002 Alle rechten voorbehouden. Niets uit deze uitgave mag worden vermenigvuldigd, overgenomen, opgeslagen of

Nadere informatie

AP80 Display Controller

AP80 Display Controller Datasheet AP80 AP80 Display Controller Toepasbaar als: Display voor positie en snelheid Nokkencontroller Signaalomvormer Toerentalbewaking Linearisatie functie 72 mm ca. 160 mm 144 mm Voor sensoren met:

Nadere informatie

Inleiding microcontrollers. Week 1 Introductie microcontroller Jesse op den Brouw (met dank aan Ben Kuiper) INLMIC/

Inleiding microcontrollers. Week 1 Introductie microcontroller Jesse op den Brouw (met dank aan Ben Kuiper) INLMIC/ Inleiding microcontrollers Week 1 Introductie microcontroller Jesse op den Brouw (met dank aan Ben Kuiper) INLMIC/2018-2019 Microcontroller Uit Wikipedia: A microcontroller (sometimes abbreviated µc or

Nadere informatie

Peripheral Interface Controllers. BRAC clubavond 5-105 PE2WDO

Peripheral Interface Controllers. BRAC clubavond 5-105 PE2WDO Peripheral Interface Controllers -10 PE2WDO Programma Introductie Wat is een PIC Wat heb je nodig om te beginnen Praktijkopdrachten: Voorbeeld met uitleg Opdrachten pag. 2 Wat is een PIC Programmable Intelligent

Nadere informatie

Hardware-software Co-design

Hardware-software Co-design Jan Genoe KHLim Versie: maandag 10 juli 2000 Pagina 1 Wat is HW/SW Co-design Traditioneel design: De verdeling tussen de HW en de SW gebeurt bij het begin en beiden worden onafhankelijk ontwikkeld Verweven

Nadere informatie

Sequentiële Logica. Processoren 24 november 2014

Sequentiële Logica. Processoren 24 november 2014 Sequentiële Logica Processoren 24 november 2014 Inhoud Eindige automaten Schakelingen met geheugen Realisatie van eindige automaten Registers, schuifregisters, tellers, etc. Geheugen Herinnering van week

Nadere informatie

Deel 2 S7 Graph Ont4 - GA3

Deel 2 S7 Graph Ont4 - GA3 Deel 2 S7 Graph Ont4 - GA3 Deel 2 : Graph 09/05 1 Wanneer er in een installatie een sequentiële beweging geprogrammeerd moet worden is het interessant om gebruik te maken van S7 Graph. De progammastructuur

Nadere informatie

De CPU in detail Hoe worden instruc4es uitgevoerd? Processoren 28 februari 2012

De CPU in detail Hoe worden instruc4es uitgevoerd? Processoren 28 februari 2012 De CPU in detail Hoe worden instruc4es uitgevoerd? Processoren 28 februari 2012 Tanenbaum hoofdstuk 2 von Neumann - architectuur. Tanenbaum, Structured Computer Organiza4on, FiMh Edi4on, 2006 Pearson Educa4on,

Nadere informatie

LocoServo Handleiding

LocoServo Handleiding LocoServo Handleiding HDM12 Disclaimer van Aansprakelijkheid: Het gebruik van alle items die kunnen worden gekocht en alle installatie-instructies die kunnen worden gevonden op deze site is op eigen risico.

Nadere informatie

AVR-DOPER MINI ASSEMBLAGE HANDLEIDING + LAYOUT. Geschreven door: Tom Vocke

AVR-DOPER MINI ASSEMBLAGE HANDLEIDING + LAYOUT. Geschreven door: Tom Vocke AVR-DOPER MINI ASSEMBLAGE HANDLEIDING + LAYOUT Geschreven door: Tom Vocke Datum: 28-09-2010 Inleiding: Dit document bevat alle hardware informatie betreffende de AVR-Doper mini. Het eerste deel zal zich

Nadere informatie

Hoofdstuk 6: Digitale signalen

Hoofdstuk 6: Digitale signalen Hoofdstuk 6: Digitale signalen 6. Algemeenheden Het decimale talstelsel is het meest gebruikte talstelsel om getallen voor te stellen. Hierin worden symbolen gebruikt ( t.e.m. 9 ) die ondubbelzinning de

Nadere informatie

Opgave Tussentijdse Oefeningen Jaarproject I Reeks 4: Lcd Interface & Files

Opgave Tussentijdse Oefeningen Jaarproject I Reeks 4: Lcd Interface & Files Opgave Tussentijdse Oefeningen Jaarproject I Reeks 4: Lcd Interface & Files 1 Introductie In deze oefening zal je je LCD display leren aansturen. Je controleert deze display door er instructies naar te

Nadere informatie

ES1 Project 1: Microcontrollers

ES1 Project 1: Microcontrollers ES1 Project 1: Microcontrollers Les 5: Timers/counters & Interrupts Timers/counters Hardware timers/counters worden in microcontrollers gebruikt om onafhankelijk van de CPU te tellen. Hierdoor kunnen andere

Nadere informatie

18 Embedded systemen 1

18 Embedded systemen 1 18 Embedded systemen 1 r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15(pc) NZCV CPSR Figuur 18.1 ARM-programmeermodel Byte 0 Byte 1 Byte 2 Byte 3 Byte 3 Byte 2 Byte 1 Byte 0 Figuur 18.2 Endian conversie

Nadere informatie

von-neumann-architectuur Opbouw van een CPU Processoren 1 december 2014

von-neumann-architectuur Opbouw van een CPU Processoren 1 december 2014 von-neumann-architectuur Opbouw van een CPU Processoren 1 december 2014 Herhaling: Booleaanse algebra (B = {0,1},., +, ) Elke Booleaanse functie f: B n B m kan met., +, geschreven worden Met Gates (electronische

Nadere informatie

Gebruiksaanwijzing AVR910 USB Programmer

Gebruiksaanwijzing AVR910 USB Programmer TECHNISCH INSTITUUT SINT-PAULUS Kruisven 25 2400 Mol Gebruiksaanwijzing Schooljaar 2007-2008 Studierichting EE Gebruiksaanwijzing AVR910 USB Programmer Geïntegreerd in AVR-DevL Board Jan Cools Projecten

Nadere informatie

Digitale technieken Microprocessoren

Digitale technieken Microprocessoren Digitale technieken Microprocessoren ir. Patrick Colleman Inhoudstafel Inhoudstafel. Afkortingen. Inleiding - voorwoord 1 Hoofdstuk 1 : Voorstelling van getallen en karakters. 2 1.1 Voorstelling van binaire

Nadere informatie

Geheugenbeheer. ICT Infrastructuren. hoofdstukken 7 en 8.1

Geheugenbeheer. ICT Infrastructuren. hoofdstukken 7 en 8.1 Geheugenbeheer ICT Infrastructuren hoofdstukken 7 en 8.1 Eenvoudig geheugenbeheer OS gebruikt een klein stukje geheugen rest is voor gewone processen OS vrij 0 1000 Eenvoudig geheugenbeheer OS gebruikt

Nadere informatie

LocoServo Handleiding

LocoServo Handleiding LocoServo Handleiding HDM12 Disclaimer van Aansprakelijkheid: Het gebruik van alle items die kunnen worden gekocht en alle installatie-instructies die kunnen worden gevonden op deze site is op eigen risico.

Nadere informatie

Microcontrollers Theorie

Microcontrollers Theorie Microcontrollers Theorie 8051 based microcontroller ADuC832 from Analog Devices 07/2016 Roggemans M. (MGM) LES 1 Doelstellingen: situering vak, afspraken labo en evaluatie toelichten concept embedded oplossing

Nadere informatie

Jen Kegels, Eveline De Wilde, Inge Platteaux, Tamara Van Marcke. Hardware. De computer in een oogopslag. 1 / 11 Cursusontwikkeling

Jen Kegels, Eveline De Wilde, Inge Platteaux, Tamara Van Marcke. Hardware. De computer in een oogopslag. 1 / 11 Cursusontwikkeling Hardware De computer in een oogopslag 1 / 11 Cursusontwikkeling Opslag Er worden verschillende apparaten gebruikt om gegevens op te slaan. Dit zijn de meest voorkomende apparaten. Harde schijf; CD / DVD;

Nadere informatie

computerarchitectuur antwoorden

computerarchitectuur antwoorden 2017 computerarchitectuur antwoorden F. Vonk versie 1 2-8-2017 inhoudsopgave hardware... - 3 - CPU... - 3 - bussen... - 4 - bridges... - 4 - RAM... - 4 - hardware architectuur... - 5 - Dit werk is gelicenseerd

Nadere informatie

4) De IPC@CHIP hardware.

4) De IPC@CHIP hardware. 4) De IPC@CHIP hardware. Hier geven we een beschrijving van de verschillende hardware-onderdelen van het RIOT bord en hun onderlinge samenhang. De belangrijkste componenten zijn: de IPC@CHIP SC12, een

Nadere informatie

Hoofdstuk 19. Embedded systemen

Hoofdstuk 19. Embedded systemen Hoofdstuk 19 Embedded systemen 1 r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15(pc) NZCV CPSR Figuur 19.1: ARM-programmeermodel. Byte 0 Byte 1 Byte 2 Byte 3 Byte 3 Byte 2 Byte 1 Byte 0 Figuur 19.2:

Nadere informatie

Departement industriële wetenschappen en technologie

Departement industriële wetenschappen en technologie Departement industriële wetenschappen en technologie Universitaire Campus, gebouw B B-3590 DIEPENBEEK Tel.: 011-23 07 90 Fax: 011-23 07 99 Aansturen en testen van een hybride infrarood beeldopnemer Abstract

Nadere informatie

Opgave Tussentijdse Oefeningen Jaarproject I Reeks 3: Tijd, licht en warmte

Opgave Tussentijdse Oefeningen Jaarproject I Reeks 3: Tijd, licht en warmte Opgave Tussentijdse Oefeningen Jaarproject I Reeks 3: Tijd, licht en warmte Voor deze oefeningenles heb je de handleiding van de uitgedeelde ARM processor nodig. Je kan deze vinden op de website van het

Nadere informatie

Digitale en analoge technieken

Digitale en analoge technieken Digitale en analoge technieken Peter Slaets February 14, 2006 Peter Slaets () Digitale en analoge technieken February 14, 2006 1 / 33 Computerarchitectuur 1 Processors 2 Primair geheugen 3 Secundair geheugen

Nadere informatie

1 graduaat Elektriciteit/elektronica KHLim - dep. IWT HALFGELEIDER-GEHEUGENS HALFGELEIDER GEHEUGENS STATISCH DYNAMISCH ROM PROM EPROM EEROM

1 graduaat Elektriciteit/elektronica KHLim - dep. IWT HALFGELEIDER-GEHEUGENS HALFGELEIDER GEHEUGENS STATISCH DYNAMISCH ROM PROM EPROM EEROM HALFGELEIDER-GEHEUGENS HALFGELEIDER GEHEUGENS WILLEKEURIG TOEGANKELIJK SERIEEL TOEGANKELIJK RAM ROM SRG CCD MBM STATISCH DYNAMISCH ROM PROM EPROM EEROM (ALLEEN-)LEES GEHEUGEN = ROM ROM = Read Only Memory:

Nadere informatie

TECHNISCHE UNIVERSITEIT EINDHOVEN FACULTEIT DER TECHNISCHE NATUURKUNDE

TECHNISCHE UNIVERSITEIT EINDHOVEN FACULTEIT DER TECHNISCHE NATUURKUNDE TECHNISCHE UNIVERSITEIT EINDHOVEN FACULTEIT DER TECHNISCHE NATUURKUNDE Tentamen Computers bij fysische experimenten (3BB20) op dinsdag 25 oktober 2005 Het tentamen duurt 90 minuten en wordt gemaakt zonder

Nadere informatie

Hoofdstuk 2. De Von Neumann-architectuur

Hoofdstuk 2. De Von Neumann-architectuur Input Interface Output Interface Informatica Deel III Hoofdstuk 2 De Von Neumann-architectuur 2.1. Organisatie. De overgrote meerderheid der digitale computers zijn georganiseerd zoals weergegeven in fig.

Nadere informatie

Hoe werkt een rekenmachine?

Hoe werkt een rekenmachine? Hoe werkt een rekenmachine? Uit welke hardware-componenten bestaat een rekenmachine? Welke instructies kan de machine uitvoeren? Practicum met de rekenmachine I Constante getallen Instructies van het type

Nadere informatie

Oefeningen Interpretatie I Reeks 6 : Registermachines

Oefeningen Interpretatie I Reeks 6 : Registermachines Oefeningen Interpretatie I Reeks 6 : Registermachines Deze oefeningenreeks behandelt het beschrijven van computationele processen aan de hand van registermachineprogrammaʼs. Registermachines manipuleren

Nadere informatie

Flex_Rooster WERKBOEK. INTRODUCTIE iseries. Dit werkboek is eigendom van ICS opleidingen en mag niet worden meegenomen.

Flex_Rooster WERKBOEK. INTRODUCTIE iseries. Dit werkboek is eigendom van ICS opleidingen en mag niet worden meegenomen. Flex_Rooster WERKBOEK INTRODUCTIE iseries Dit werkboek is eigendom van ICS opleidingen en mag niet worden meegenomen. ICS Opleidingen Niets uit deze uitgave mag worden verveelvoudigd en/of openbaar gemaakt

Nadere informatie

Een intelligent DMX netwerk

Een intelligent DMX netwerk WORKSHOP STEPP Een intelligent DMX netwerk WORKSHOP STEPP Wat is DMX? Een intelligent DMX netwerk Demo opstelling Probleem oplossing Wat is DMX? Hoe is het DMX signaal ontstaan DMX in de praktijk Hoe

Nadere informatie

-Een stukje geschiedenis van de PC (personal computer)

-Een stukje geschiedenis van de PC (personal computer) -Een stukje geschiedenis van de PC (personal computer) De pc is bedacht in 1833 Door gebrek aan onderdelen kwam de eerst werkende PC 100 jaar later Gewicht: 35 ton (35.000 kilo!) en kamervullend. Zie de

Nadere informatie

Microcontrollers. 8051 based microcontroller ADuC832 from Analog Devices. 12/2011 Roggemans M. (MGM)

Microcontrollers. 8051 based microcontroller ADuC832 from Analog Devices. 12/2011 Roggemans M. (MGM) Microcontrollers 8051 based microcontroller ADuC832 from Analog Devices 12/2011 Roggemans M. (MGM) LES 1 Doelstellingen: situering vak, afspraken labo en evaluatie toelichten concept embedded oplossing

Nadere informatie

Hoofdstuk 3: Processen: Beschrijving en Besturing. Wat is een proces? Waarom processen? Wat moet het OS ervoor doen? Is het OS zelf een proces?

Hoofdstuk 3: Processen: Beschrijving en Besturing. Wat is een proces? Waarom processen? Wat moet het OS ervoor doen? Is het OS zelf een proces? Hoofdstuk 3: Processen: Beschrijving en Besturing Wat is een proces? Waarom processen? Wat moet het OS ervoor doen? Is het OS zelf een proces? 1 Wat is een proces? Een proces is een programma in uitvoering

Nadere informatie

Computertechniek vorige examens

Computertechniek vorige examens Computertechniek vorige examens Examen 2009 Groep 1 1. Geef de 2 manieren waarop de adressen van de I/O-module in de adresruimte geïntegreerd kunnen zijn. (memory-mapped en isolated dus) 2. Wat is post-indexering?

Nadere informatie

Arduino CURSUS. door Willy - 09-juni-2017

Arduino CURSUS. door Willy - 09-juni-2017 Arduino CURSUS door Willy - w2@skynet.be, 09-juni-2017 OVERZICHT (1) OVERZICHT (2) Historiek Microcontroller (1) Microcontroller (2) Specificaties - Arduino UNO bord Specificaties - ATmega328P chip LET

Nadere informatie

In- en uitgangssignalen van microprocessoren

In- en uitgangssignalen van microprocessoren In- en uitgangssignalen van microprocessoren E. Gernaat 1 Overzicht signalen Informatie van en naar een microprocessor kan parallel of seriëel gebeuren. Bij parallel-overdracht zal elke lijn (draad) een

Nadere informatie

KEYSTONE. OM8 - EPI 2 AS-Interface module Handleiding voor installatie en onderhoud. www.pentair.com/valves

KEYSTONE. OM8 - EPI 2 AS-Interface module Handleiding voor installatie en onderhoud. www.pentair.com/valves KEYSTONE Inhoud 1 Optionele module 8: AS-Interface module 1 2 Installatie 1 3 Communicatiekenmerken 1 4 Beschrijving van de OM8 AS-Interface module 2 5 AS-Interface protocol 3 6 Communicatie-interface

Nadere informatie

Herconfigureerbare Hardware in Ieders Bereik

Herconfigureerbare Hardware in Ieders Bereik Herconfigureerbare Hardware in Ieders Bereik Prof. Dirk Stroobandt Universiteit Gent Vakgroep ELIS Onderzoeksgroep PARIS http://www.elis.ugent.be/~dstr/ Overzicht Nood aan digitale verwerking van gegevens

Nadere informatie

Sensor Test Unit TSK40A

Sensor Test Unit TSK40A Product Info Sensor Test Unit TSK40A Eenvoudig testen van diverse typen sensoren Instellingen manueel of snel via de PC te wijzigen Standaard kabels voor het snel aansluiten van sensoren Algemeen De sensor

Nadere informatie

Inleiding microcontrollers. Week 2 Introductie microcontroller Jesse op den Brouw (met dank aan Ben Kuiper) INLMIC/

Inleiding microcontrollers. Week 2 Introductie microcontroller Jesse op den Brouw (met dank aan Ben Kuiper) INLMIC/ Inleiding microcontrollers Week 2 Introductie microcontroller Jesse op den Brouw (met dank aan Ben Kuiper) INLMIC/2018-2019 Week 2 Datapad AVR-CPU Registers ALU Programmageheugen Fetch-decode-execute Instructies

Nadere informatie

Getalformaten, timers en tellers

Getalformaten, timers en tellers Getalformaten, timers en tellers S_CU CU S PV R CV DEZ CV_BCD S_ODT S TV BI R BCD 1 pagina 1 Getalformaten (16 bits) PG CPU BCD W#16#296 Voorteken (+) 2 9 6 0 0 0 0 0 0 1 0 1 0 0 1 0 1 1 0 Positieve getallen

Nadere informatie

AP40 Display Controller

AP40 Display Controller Datasheet AP40 Versie 03-2010 / NL AP40 Display Controller Toepasbaar als: Display voor positie en snelheid Nokkencontroller Signaalomvormer Toerentalbewaking Procestijdmeting (1/f) 48 mm ca. 150 mm 96

Nadere informatie

Programmering Tiny45 voor de DCC locdecoder

Programmering Tiny45 voor de DCC locdecoder Programmering Tiny45 voor de DCC locdecoder Dit is een beschrijving voor het programmeren van de Tiny45 van de locdecoder. Voor de eerste programmering is een programmer voor Atmel AVR mikrocontrollers

Nadere informatie

FORTH op de 80C535 processor met het ATS535 board.

FORTH op de 80C535 processor met het ATS535 board. FORTH op de 80C535 processor met het ATS535 board. ATS535 Het ATS535 board met 8052- ANS-Forth, is een product van de HCC Forth GG en Atelec Hoorn. Het board met de ingebouwde software is een uitstekend

Nadere informatie

Microcontrollers Week 2 Opbouw ATmega32 controller, instructies Jesse op den Brouw INLMIC/2014-2015

Microcontrollers Week 2 Opbouw ATmega32 controller, instructies Jesse op den Brouw INLMIC/2014-2015 Microcontrollers Week 2 Opbouw ATmega32 controller, instructies Jesse op den Brouw INLMIC/2014-2015 Blokdiagram ATmega32 2 ATmega32 Features 131 instructies 32 KB Flash ROM programmageheugen 2 KB Intern

Nadere informatie

Accelerometer project 2010 Microcontroller printje op basis van de NXP-LPC2368

Accelerometer project 2010 Microcontroller printje op basis van de NXP-LPC2368 Accelerometer project 2010 Microcontroller printje op basis van de NXP-LPC2368 Handleiding bij het gebruik van een microcontroller in het Accelerometerproject (Project II) Er zijn speciaal voor het Accelerometerproject

Nadere informatie

Locobuffer Handleiding

Locobuffer Handleiding Locobuffer Handleiding HDM09 Disclaimer van Aansprakelijkheid: Het gebruik van alle items die kunnen worden gekocht en alle installatie-instructies die kunnen worden gevonden op deze site is op eigen risico.

Nadere informatie

Verslag: Computer. Naam: Tyrone Ste Luce. Klas: M4B

Verslag: Computer. Naam: Tyrone Ste Luce. Klas: M4B Verslag: Computer Naam: Tyrone Ste Luce Klas: M4B Inhoud 1. Inleiding 2. Binaire taal 3. Besturingssysteem 4. Hardware 5. Cmos en Bios 6. De processor 7. Internet 1. Inleiding Wanneer is de computer uitgevonden?

Nadere informatie

De AT90CAN microprocessor van ATMEL in de motorvoertuigentechniek (3)

De AT90CAN microprocessor van ATMEL in de motorvoertuigentechniek (3) De AT90CAN microprocessor van ATMEL in de motorvoertuigentechniek (3) Timloto o.s. / E. Gernaat / ISBN 978-90-79302-06-2 Op dit werk is de Creative Commens Licentie van toepassing. Uitgave: september 2012

Nadere informatie

Technisch ontwerp positiebepaling Smart Blocks

Technisch ontwerp positiebepaling Smart Blocks Technisch ontwerp positiebepaling Smart Blocks Inhoudsopgave 1 Inleiding......3 2 Hardware......4 2.1 Blok....4 Contactpunten......4 Voeding......4 Datapinnen......5 2.2 Basisplaat......5 3 Positiebepaling......6

Nadere informatie

Combinatorische schakelingen

Combinatorische schakelingen Practicum 1: Combinatorische schakelingen Groep A.6: Lennert Acke Pieter Schuddinck Kristof Vandoorne Steven Werbrouck Inhoudstabel 1. Doelstellingen... 2 2. Voorbereiding... 3 3. Hardware-practicum...

Nadere informatie

scc = b) CD AB

scc = b) CD AB Computerarchitectuur en -organisatie (213030) Dinsdag 21 januari 2040, 13.30 17.00 uur 7 bladzijden met 8 opgaven 4 bladzijden met documentatie Let op: Vul het tentamenbriefje volledig in (d.w.z. naam,

Nadere informatie

Microcontrollers Week 4 Introductie microcontroller Jesse op den Brouw (met dank aan Ben Kuiper) INLMIC/

Microcontrollers Week 4 Introductie microcontroller Jesse op den Brouw (met dank aan Ben Kuiper) INLMIC/ Microcontrollers Week 4 Introductie microcontroller Jesse op den Brouw (met dank aan Ben Kuiper) INLMIC/2018-2019 Week 3 Lussen Ontdenderen Stack Parameteroverdracht 2 Wachtlussen In een programma willen

Nadere informatie

7,3. Samenvatting door een scholier 1961 woorden 16 januari keer beoordeeld. Informatica Informatica actief

7,3. Samenvatting door een scholier 1961 woorden 16 januari keer beoordeeld. Informatica Informatica actief Samenvatting door een scholier 1961 woorden 16 januari 2009 7,3 126 keer beoordeeld Vak Methode Informatica Informatica actief Hoofdstuk 3 Gespecialiseerde computers: kun je alleen voor een bepaalde functie

Nadere informatie

De Arduino-microcontroller in de motorvoertuigentechniek (3)

De Arduino-microcontroller in de motorvoertuigentechniek (3) De Arduino-microcontroller in de motorvoertuigentechniek (3) E. Gernaat (ISBN 978-90-79302-11-6) 1 In- en uitgangssignalen van microprocessoren 1.1 Overzicht signalen Informatie van en naar een microprocessor

Nadere informatie

AP90 Display Controller

AP90 Display Controller Datasheet AP90 AP90 Display Controller Toepasbaar als: Display voor positie, snelheid en verschil Nokkencontroller Signaalomvormer 72 mm ca. 170 mm 144 mm Voor aansluiting van 2 sensoren met: SSI interface

Nadere informatie

Het koppelen van een FC51, via Modbus RTU, aan een AC500-eco.

Het koppelen van een FC51, via Modbus RTU, aan een AC500-eco. Het koppelen van een FC51, via Modbus RTU, aan een AC500-eco. Snelle start handleiding. Solar Technical Support Inhoudsopgave: Benodigdheden.... 2 De Modbus RTU kabel.... 3 De gewijzigde parameters in

Nadere informatie

RIOT Remote Internet Operated Terminal. Gebruikers handleiding v1.0 6) De intelligente I/O-controller IOsys.

RIOT Remote Internet Operated Terminal. Gebruikers handleiding v1.0 6) De intelligente I/O-controller IOsys. 6) De intelligente I/O-controller IOsys. Om de I/O mogelijkheden van het RIOT bord aanzienlijk te vergroten werd een, als intelligente I/O-controller geprogrammeerde, AVRmega 128 microcontroller op het

Nadere informatie

De Arduino-microcontroller in de motorvoertuigentechniek (6)

De Arduino-microcontroller in de motorvoertuigentechniek (6) De Arduino-microcontroller in de motorvoertuigentechniek (6) E. Gernaat (ISBN 978-90-79302-11-6) 1 De Arduino Programmeeromgeving (IDE) 1.1 Inleiding Als we naar de Arduino site gaan kunnen we daar de

Nadere informatie

Handleiding Teknatool houtdraaibank Nova DVRxp Nederlands bij gebruik van de originele Engelse handleiding

Handleiding Teknatool houtdraaibank Nova DVRxp Nederlands bij gebruik van de originele Engelse handleiding Teknatool houtdraaibank Nova DVRxp Artikelnummer: 24207 Besturingssysteem software versie: 4.54x Interface software versie: s03 Teknatool International, 13 juli 2006 1.0 Introductie 1.1 Algemeen Deze handleiding

Nadere informatie

ES1 Project 1: Microcontrollers

ES1 Project 1: Microcontrollers ES1 Project 1: Microcontrollers Les 2: Architectuur ATmega32 en STK500 Door Hugo Arends, september 2012 Architectuur ATmega32 Een uitgebreide en gedetailleerde beschrijving van de ATmega32 microcontroller

Nadere informatie

KIT OVO. De automatisering moet worden onderworpen aan onderhoud op een regelmatige basis om een goede werking te garanderen.

KIT OVO. De automatisering moet worden onderworpen aan onderhoud op een regelmatige basis om een goede werking te garanderen. Onderhoud De automatisering moet worden onderworpen aan onderhoud op een regelmatige basis om een goede werking te garanderen. 01. OVO vergt gepland onderhoud om de 6 maanden of 3000 manoeuvres na eerdere

Nadere informatie

ICT Infrastructuren: Processen en Threads. 18 november 2013 David N. Jansen

ICT Infrastructuren: Processen en Threads. 18 november 2013 David N. Jansen ICT Infrastructuren: Processen en Threads 18 november 2013 David N. Jansen Datum en Ajd van werkcollege na overleg met de aanwezigen: donderdag 8:45 10:30 Leerdoel voor vandaag. Stallings hoofdst 2 4 Hoofddoelen

Nadere informatie

Innovaties door nieuwe ontwikkelingen

Innovaties door nieuwe ontwikkelingen IO Link dag - 2 juni 2015 IO-Link Festo: Benno Brinkers & Jeroen Mars Mogelijkheden van IO- Link Type producten Communicatie & installatie Integratie van signalen Machineveiligheid Demo Wie is Festo? Opgericht

Nadere informatie

Harmonischen: een virus op het net? FOCUS

Harmonischen: een virus op het net? FOCUS Amplitude Harmonischen: een virus op het net? FOCUS In het kader van rationale energieverbruik (REG) wordt steeds gezocht om verbruikers energie efficiënter te maken. Hierdoor gaan verbruikers steeds meer

Nadere informatie

DDS chips. DDS = Direct Digital (frequency) Synthesis. Output = sinusvormig signaal. Maximum frequentie = ½ klokfrequentie

DDS chips. DDS = Direct Digital (frequency) Synthesis. Output = sinusvormig signaal. Maximum frequentie = ½ klokfrequentie www.arduino.cc Arduino en DDS DDS chips DDS = Direct Digital (frequency) Synthesis Output = sinusvormig signaal Maximum frequentie = ½ klokfrequentie Frequentie bepaald door tuning word Grootste fabrikant:

Nadere informatie

AP21 SSI Display. Display voor positie en snelheid Nokkencontroller Signaalomvormer Display voor niet lineaire bewegingen. 96 mm

AP21 SSI Display. Display voor positie en snelheid Nokkencontroller Signaalomvormer Display voor niet lineaire bewegingen. 96 mm Datasheet AP21 AP21 SSI Display Toepasbaar als: Display voor positie en snelheid Nokkencontroller Signaalomvormer Display voor niet lineaire bewegingen 48 mm ca. 90 mm 96 mm Voor sensoren met Synchroon

Nadere informatie

CIM. Les 6. Het FFS controlesysteem

CIM. Les 6. Het FFS controlesysteem CIM Les 6 Het FFS controlesysteem Ontwerpfasen (gewoon weten dat er goed over nagedacht is) Referentiemodel algemene structuur taken relaties tussen taken bvb: ISO OSI / NBS (Amerikaans, slechts 6 lagen

Nadere informatie

Desktop, Laptop, Netbook, Ultrabook or Tablet? Which is best for what? Keuzes maken

Desktop, Laptop, Netbook, Ultrabook or Tablet? Which is best for what? Keuzes maken Desktop, Laptop, Netbook, Ultrabook or Tablet? Which is best for what?. Keuzes maken Wanneer je een computer wilt aanschaffen denk je tegenwoordig niet meteen meer aan de desktop. De desktop is een "grote"

Nadere informatie

IO-Link: de industriële communicatiestandaard. De basis van IO-Link

IO-Link: de industriële communicatiestandaard. De basis van IO-Link IO-Link: de industriële communicatiestandaard De basis van IO-Link IO-Link IO-Link = eenvoudig en geldbesparend IO-Link = bekabelings- en communicatieconcept IO-Link IO-Link: enkele technische

Nadere informatie