Interfacetechnieken Interne Interfaces (Met de Atmel AT91SAM7SExxx microcontroller)

Maat: px
Weergave met pagina beginnen:

Download "Interfacetechnieken Interne Interfaces (Met de Atmel AT91SAM7SExxx microcontroller)"

Transcriptie

1 Interne Interfaces (Met de Atmel AT91SAM7SExxx microcontroller) Versie 1.1 (4 Februari 2013)

2 Inhoud 1 Opbouw van de AT91SAM7SExxx Beschrijving Blokschema Architectuur ARM7TDMI Processor Memory controller System Controller External Bus Interface DMA controller Peripherals De ARM7TDMI processor Beschrijving De instructie pipeline Geheugen toegang Geheugen Interface EmbeddedICE Logica Architectuur Blokschema Core diagram Functioneel diagram Bus interface signalen Klok en klok controller signalen Adres signalen Geheugen request signalen Data signalen Bus cycle types Nonsequential cycles Sequential cycles Internal cycles Coprocessor transfer cycles Overzicht van alle bus cycles Adres timing Data timing D[31:0], DOUT[31:0] en DIN[31:0] Unidirectionele databus Bidirectionele databus Byte Latch enables Byte en half word acces Read Write Stretching acces timing Aanpassen MCLK nwait AC Parameters Algemene timing Timing Bidirectionele data read/write cycle Timing Unidirectionele data read/write cycle

3 2.7.4 Klok timing AC parameter symbolen Timing berekeningen in een bus Beschrijving Procedure Timing berekening, met en zonder statistiek Aansluiten SRAM op de externe interface bus De SRAM CY Timing specificaties van een read-cycle Timing specificaties van een write-cycle Static Memory Controller Verbindingen tussen SRAM en ATMEL controller Interne verbindingen tussen ARM7TDMI processor en SMC/EBI Aansluiten SRAM op AT91SAM7SExxx Timing gegevens van de Static Memory Controller Voorbeeld timing berekening van een read-cycle Volgorde van een read-cycle De berekening Interrupt Algemeen Interrupts Interrupts blokkeren Interrupts bij computers Nut van interrupts Voorzieningen ten behoeve van interrupts soorten interrupts Hardware interrupts Software interrupts Traps Interruptafhandeling Interrupts detecteren Interrupts weghalen Instructie afmaken Terugkeeradres bewaren Flags opslaan Voldoende stackruimte Interrupt Service Routine starten ISR uitvoeren Onderbroken programma voortzetten Meerdere interrupts Een interrupt per interrupt ingang Prioriteit Meerdere interrupt aanvragers op dezelfde interruptingang Wired-and/wired-or, wired-dot Polling Werkwijze Software polling Prioriteit Een of meerdere interrupt afhandeiingen per ISR Volledige polling

4 5.4.6 Voor- nadeel van software polling Vectoring Principe van hardware vectoring Functies van de interrupt hardware Het bepalen van ISR -startadres De interrupt hardware vertaalt het interruptvectoradres De interrupt hardware levert het startadres van de ISR Interrupt aanvrager levert vectorinformatie Hardware polling Software polling in combinatie met hardware vectoring Interrupt levels Interrupts ARM7TDMI processor Starten Interrupt Service Routine Interrupt Service Routine verlaten Exception vectoren Prioriteiten van alle exceptions Advanced Interrupt Controller Algemeen Blokschema Externe interrupt lijnen Interrupt sources Functionele beschrijving Besturen van de interrupt source Interrupt latencies Normale Interrupts Fast Interrupts Protect mode Spurious interrupts AIC Registers DMA Algemeen DMA controller modes Idle Mode MPU Mode DMA Mode Methode van datatransport met DMA Expliciete of tweevoudige adressering Impliciete of enkelvoudige adressering Bandbreedte van de databus Methode van DMA aanvragen Internel request, maximum rate Internal request, limited rate Auto start, external request External request, burst mode External request, cycle steal External request, cycle steal with hold Methode van data overdracht Single block transfer Continuous block transfer chained block transfer

5 Sequential array chained block transfer Link array chained block transfer Peripheral DMA Controller (PDC) Algemeen Blokschema Functionele beschrijving Configuratie Memory pointers Transfer counters Data Transfer Prioriteiten PDC registers I/O Devices Algemeen Memory mapped I/ I/O-mapped I/O Programmed I/ Interrupt-I/ Direct memory access Serieel en parallel transport Synchronisatie Synchrone communicatie Asynchrone communicatie Seriële I/O USART De USART van de AT91SAM7SExxx Algemeen Blokschema Baudrate generator Receiver en Transmitter besturing Test modes USART registers SPI Algemeen Blokschema Applicatie voorbeeld met 3 slaves Modes Werking in de master-mode Werking in de slave-mode Kenmerken Toepassingen SPI Registers TWI Algemeen Blokschema Applicatie voorbeeld Functionele omschrijving Modes Kenmerken Toepassingen

6 TWI registers Parallel I/O PIO Algemeen Blokschema PIO Registers Timers Timer/Counter Blokschema Functionele omschrijving TC registers

7 1 Opbouw van de AT91SAM7SExxx 1.1 Beschrijving Atmel s AT91SAM7SExxx serie is een lid van de SMART ARM Microcontroller familie die is gebaseerd op de 32-bit ARM7 RISC processor, deze serie bestaat uit 3 varianten: AT91SAM7SE512 met 512Kbyte Flash en 32Kbyte SRAM AT91SAM7SE256 met 256Kbyte Flash en 32Kbyte SRAM AT91SAM7SE32 met 32Kbyte Flash en 8Kbyte SRAM De microcontroller bezit een groot aantal periferals, zoals USB 2.0, SPI, USART, Parallel I/O, DMA controller, Timers, Interrupt controller, ADC, External interface (EBI), etc. De external bus interface (EBI) bevat controllers voor synchroon (DRAM, SDRAM) en asynchrone (Statische RAM) geheugen en ook speciale functies voor NAND Flash, SmartMedia en CompactFlash. Het embedded Flash geheugen kan in system geprogrammeerd worden via de JTAG-ICE interface of parallel I/O lijnen. Door het combineren van ARM7TDI processor met on-chip Flash, Sram, en een grote range aan periferals op één chip, maakt van de AT91SAM7SExxx een krachtig microcontroller, die door zijn flexibiliteit en prijs prestatie verhouding zeer geschikt is voor embedded systemen in een groot toepassingsgebied. 7

8 1.2 Blokschema 8

9 1.3 Architectuur ARM7TDMI Processor RISC processor gebaseerd op de von Neumann architectuur Max 55Mhz met 0,9MIPS/Mhz (bij een voeding spanning van 1,8V) 2 instructie sets: o ARM high-performance 32-bit instruction set o Thumb high code density 16-bit instruction set Three stage pipeline architectuur: o (F) Instruction fetch o (D) Instruction decode o (E) Execute Memory controller Programmeerbare bus, behandelt aanvragen van: o ARM7TDMI processor o DMA controller Adres decoder Memory protection unit (PMU) Embedded Flash controller System Controller Interrupt controller o Verzorgt de interrupt lijnen naar de ARM processor (nirq en nfiq). o 8 prioriteit niveaus o Iedere interrupt source heeft een 32-bit vector register Reset controller o Power on reset o Status van de laatste reset (power-on, software reset, user-reset, watchdog, etc.) o Regelt de interne reset en de NRST output pin. Power managment controller (PMC) o Verzorgt, gebruik makend van de Clock generator uitgangen, de volgende klok signalen: Processor clock PCK Master clock MCK USB clock UDPCK Periferal clocks 3 programmeerbare clock uitgangen Watchdog timer Real-time timer PIO controller o Poort A en B ieder 32 bits I/O, poort C 24 bits I/O 9

10 1.3.4 External Bus Interface Static memory controller o 8 16 bits databus o Tot 512Mbyte adresseerbaar o Verschillende access-modes o Wait-state managment SDRAM controller o Verschillende configuraties van SDRAM chips mogelijk o Error detectie Externe bus o 16 of 32 bits data bus o Maximaal 23 bits adres bus (max 8Mbyte te adresseren) DMA controller Verzorgt de data-transfer tussen periferals en geheugen 11 DMA kanalen Peripherals USB V2.0 (full-speed compliant) SPI, Serial Peripheral Interface TWI, Two Wire Interface USART, 5..9 bit full-duplex synchroon of asynchroon communicatie poorten (2x) met programmeerbare baudrate generatoren. SSC, Serieel Synchronous Controller PWMC, 4 16 bits PWM kanalen Timer, bevat 3 16-bit counter kanalen. ADC, 8 Analoge naar Digitaal converters van 10 bit. 10

11 2 De ARM7TDMI processor 2.1 Beschrijving De ARM7TDMI core is een lid van de 32 bits general-purpose ARM processor familie. De ARM processor familie biedt hoge performance bij een lage power consumptie en kleine afmetingen. De ARM architectuur is gebaseerd op de Reduced Instruction Set Computers (RISC) principes. De RISC instructie set en het daaraan gerelateerde decodeer algoritme is veel eenvoudiger als bij Complex Instruction Set Computers (CISC). Hierdoor kun je veel meer instructies per seconde uitvoeren, en zijn er zeer snelle reactietijden mogelijk bij interrupt aanvragen De instructie pipeline De ARM7TDMI gebruikt een pipe voor het vergroten van de snelheid bij het ophalen en uitvoeren van de instructies. Dit betekent dat een aantal operaties tegelijk kunnen worden uitgevoerd. De pipe kent 3 toestanden : fetch, decode en execute. Tijdens het uitvoeren van een instructie (execute) wordt de volgende instructie gedecodeerd (decode) en de 3 e instructie opgehaald uit het geheugen (fetch). De programcounter wijst naar de instructie die uit het geheugen wordt gehaald, en dus niet naar de instructie die op dat moment wordt uitgevoerd. Het is belangrijk om te weten dat de PC (programcounter) altijd 2 instructies verder is als de werkelijk uitgevoerde instructie Geheugen toegang De ARM7TDMI heeft een Von Neumann architectuur, met een enkele 32-bits databus voor zowel de instructies als de data. Alleen load, store en swap commando s hebben toegang tot de data in het geheugen. 11

12 Data kan zijn : 8-bit (bytes) 16-bit (halfwords) 32-bit (words) Words moeten op een 4-bytes boundarie en halfwords op een 2-bytes boundarie staan Geheugen Interface Het geheugen interface van de ARM7TDMI is ontworpen voor maximale performance en een zo minimaal mogelijk gebruik van het geheugen. De ARM7TDMI core heeft 4 basis geheugen cycles: Idle cycle Non sequential cycle Sequential cycle Coprocessor transfer cycle EmbeddedICE Logica EmbeddedICE Logic is extra toegevoegde hardware waarmee de ARM processor kan worden gedebugged. Het biedt software tools de mogelijkheid om de code die op de ARM wordt uitgevoerd te debuggen. De EmbeddedICE logic wordt aangestuurd via de Joint Test Action Group (JTAG) poort, gebruik makend van de EmbeddedICE interface. 12

13 2.2 Architectuur Blokschema Het blokschema laat de componenten van de ARM7TDMI processor zien en de mannier waarop deze gekoppeld zijn. 13

14 2.2.2 Core diagram Het core diagram laat de inhoud (core) van de hoofd processor zien. 14

15 2.2.3 Functioneel diagram In het functioneel diagram worden alle signalen getoond met de indeling per functionele groep. 15

16 2.3 Bus interface signalen De signalen van de ARM7TDMI kunnen in 4 groepen worden verdeeld: Klok en klok controller signalen Adres signalen Geheugen request signalen Data signalen Klok en klok controller signalen MCLK nwait ECLK nreset MCLK is de hoofd klok voor alle geheugen accessen en processor operaties, de MCLK kan worden verlaagd om wat tragere devices te kunnen accessen. (dit kan ook worden bereikt door gebruik te maken van het nwait signaal met een constante MCLK) Wanneer nwait actief is wordt een processor acces verlengd met een aantal cycles. Dit is te gebruiken bij tragere devices. Tijdens normaal gebruik is de ECLK output gelijk aan de MCLK. Tijdens debuggen is dit de debug klok DCLK. De nreset input wordt gebruikt om de processor op een bekent adres te laten starten. Wanneer nreset minimaal 1 klok cycle hoog is herstart de processor vanaf adres Adres signalen A[31:0] A[31:0] is de 32 bit adresbus die het adres van de transfer aangeeft. Alle adressen zijn byte adressen, dus als er een word (4-bytes) worden geadresseerd zal de adresbus iedere keer worden verhoogd met 4 bij iedere bus cycle. De adresbus kan een gebied van 4GB lineaire adresseren. Bij een word (4-bytes) acces worden de onderste 2 bits A[1:0] genegeerd en bij een half word (2-bytes) acces wordt het laatste bit A[0] genegeerd. nrw Word data moet worden aligned op word boundaries en half word data moet worden aligned op half word boundaries. nrw geeft de richting van een data transfer aan, bij een hoog niveau wordt er een schrijf actie weergegeven, en bij een laag niveau een lees actie. MAS[1:0] 16

17 MAS[1:0] geeft de grote van de data transfer aan; word, half word of byte. nopc de nopc uitgang geeft informatie over de transfer, is het een opcode fetch of een data transfer. Dit signaal kan worden gebruikt door bijvoorbeeld een MMU (Memory Management Unit) om aan geheugen beheer of protectie te doen. (samen met het ntrans signaal) ntrans ook de ntrans uitgang geeft informatie over de transfer, user of privileged mode. LOCK TBIT ABE ALE LOCK geeft aan dat er een ondeelbare operatie wordt uitgevoerd. Een ondeelbare read/write operatie kan bijvoorbeeld worden gebruikt voor semaforen. TBIT geeft aan in welke operatie mode de ARM7TDMI processor staat, laag niveau de ARM mode, bij een hoog niveau Thumb state. ABE wordt gebruikt voor het aan (enable) en uitzetten (disable) van de adres bus drivers. 17

18 APE Met het ALE signaal kan de adres latch worden aan en uitgezet. Als ALE actief is blijf het adres op de adresbus de gehele geheugen acces cycle valide. Met APE kan worden aangegeven of er adres pipeline wordt gebruikt, vooral bij bijvoorbeeld DRAM is het handig om zo snel mogelijk het adres op de bus te zetten zodat de overige tijd kan worden gebruikt voor decoderen en het generen van de benodigde DRAM controle signalen. Voor ROM en SRAM kan geen gebruik worden gemaakt van pipeline (APE disabled) omdat gedurende de gehele geheugen cycle bij de ROM en SRAM het adres stabiel moet blijven Geheugen request signalen nmreq SEQ De nmreq output is laag als de processor een geheugen aanvraag doet voor de volgende cycle. De SEQ output geeft aan dat het adres van de volgende geheugen cycle gerelateerd is aan het huidige adres (hetzelfde of opeenvolgend) Data signalen D[31:0] D[31:0] is de 32-bit bidirectionele databus, welke wordt gebruikt voor de transfers tussen processor en extern geheugen. DIN[31:0] DIN[31:0] is de 32-bit unidirectionel input databus, welke wordt gebruikt voor de transfer van data en instructies van geheugen naar processor. DOUT[31:0] DOUT[31:0] is de 32-bit unidirectionele output databus, welke wordt gebruikt voor de transfer van data van processor naar geheugen. ABORT BL[3:0] ABORT geeft aan dat een datatransfer is mislukt. Wanneer ABORT actief wordt zal de processor de Data Abort Trap uitvoeren. (ABORT kan gebruikt worden door een MMU). Met BL[3:0] kun je aangeven welk data byte wordt ingelezen : BL[3] leest data op datalijnen D[31:24] BL[2] leest data op datalijnen D[23:16] BL[1] leest data op datalijnen D[15:8] BL[0] leest data op datalijnen D[7:0] 18

19 2.4 Bus cycle types De ARM7TDMI processor bus interface maakt gebruik van een pipe, dit zorgt ervoor dat er een maximale tijd is voor een geheugen cycle om het adres te decoderen en te reageren op de acces aanvraag: De geheugen aanvraag signalen worden verstuurd in de bus cycle voorafgaand aan de bus cycle waarop deze betrekking heeft. Adres klasse signalen worden verstuurd een halve clock cycle voorafgaand aan de bus cycle waarop deze betrekking heeft. De ARM7TDMI processor bus interface kent 4 soorten bus cycles: Nonsequential cycles, er wordt een transfer van of naar een adres aangevraagd die geen relatie heeft met het adres van de vorige transfer. Sequential cycles, er wordt een transfer van of naar een adres aangevraagd die wel een relatie heeft met het adres van de vorige transfer, bijvoorbeeld; hetzelfde adres of een adres dat een half of een heel word verder ligt. Internal cycles, bevat geen transfer omdat er een interne functie wordt uitgevoerd en er geen zinvolle prefetch kan worden uitgevoerd op dezelfde tijd. Coprocessor transfer cycles, gebruikt dezelfde bus om te communiceren met een coprocessor, maar heeft geen transfers naar het geheugen. De bus cycles types zijn te onderscheiden m.b.v. de signalen nmreq en SEQ: Een geheugen controller voor de ARM7TDMI processor mag alleen reageren op geheugen accessen van het bus cycle type : N-cycle en S-cycle. 19

20 2.4.1 Nonsequential cycles Dit is de simpelste van de bus cycles, en wordt toegepast als er een transfer wordt aangevraagd naar een adres welke geen relatie heeft met het adres van de voorgaande transfer Sequential cycles De sequential cycles worden gebruikt voor burst data transfers op de bus. Het adres kan hetzelfde zijn of automatische worden verhoogd t.o.v. de vorige cycle. Voor een burst cycle van een word wordt het adres met 4 verhoogd, en van een half word met 2. Burst cycles voor een byte zijn niet toegestaan. Een Burst cycle start altijd met een N-Cycle (Nonsequential cycle) welke dan wordt vervolgt met S-Cycles (Sequential cycles). De adres signalen A[31:0] worden iedere keer verhoogt tijdens de burst, alle andere adres signalen blijven onveranderd. De volgende burst type zijn mogelijk: Alle accessen tijdens een burst zijn van hetzelfde data formaat, richting en protection type. 20

21 Geheugen systemen kunnen sneller reageren op sequential acces en kunnen een kortere acces tijd tot gevolg hebben als bij nonsequetial acces. Een voorbeeld van een burst acces is hieronder te zien: Internal cycles Tijdens een interne cycle heeft de ARM7TDMI processor geen geheugen acces nodig als hij een interne functie aan het uitvoeren is. Wanneer mogelijk zal de processor wel het adres voor de volgende acces op de adresbus zetten zodat het decoderen alvast kan starten, alleen moet de geheugen controller niet reageren op een geheugen acces. 21

22 2.4.4 Coprocessor transfer cycles Tijdens een coprocessor register transfer cycle gebruikt de ARM7TDMI processor de data bus voor de transfer van data van en naar de coprocessor. Een geheugen cycle is niet nodig en de geheugen controller zal geen transactie initiëren. De geheugen controller mag tijdens de coprocessor transfer cycle de bus niet gebruiken Overzicht van alle bus cycles Een voorbeeld van alle type bus cycles en hun timing is in onderstaand diagram te zien. 22

23 2.5 Adres timing De ARM7TDMI processor adresbus kan in 1 van volgende 2 configuraties werken: Pipelined Depipelined De adres depipelined configuratie wordt bestuurd door het input signaal APE of ALE. Met deze configuratie kan je simpel een ARM7TDMI processor systeem maken dat is gebaseerd op SRAM of DRAM. APE beïnvloedt de timing van de adresbus A[31:0], nrw, MAS[1:0], LOCK, nopc en ntrans. In de meeste systemen, en in het bijzonder de systemen met DRAM, is het wenselijk dat het adres zo snel mogelijk wordt bekend gemaakt door de ARM7TDMI processor. Wanneer APE hoog is wordt het adres van de processor valid na een opgaande flank van de MCLK voor de geheugen cycle waarvoor het adres bedoeld is. In het volgende figuur is een voorbeeld van pipelined adressering te zien. SRAM en ROM echter eisen dat het adres stabiel wordt gehouden gedurende de gehele geheugen cycle. In een systeem met alleen maar SRAM en ROM kan het APE signaal permanent laag worden gehouden. In deze configuratie wordt het adres valid na een neergaande flank van de MCLK. In volgende figuur is deze depipelined adressering te zien. 23

24 Veel systemen hebben een mix van DRAM, SRAM en ROM. Om dan aan de verschillende adres timing requirements te voldoen, kan het APE signaal veilig worden aangepast tijdens de laag fase van de MCLK. APE wordt op 1 niveau gehouden gedurende een burst of sequential access naar een bepaald type geheugen. Het ALE signaal was aanwezig bij vorige (oudere) type van de ARM processor, en daarom is deze behouden voor backwards comptabiliteit. Dit signaal biedt dezelfde mogelijkheden als het APE signaal. 2.6 Data timing D[31:0], DOUT[31:0] en DIN[31:0] De ARM7TDMI processor heeft zowel een bidirectionele, D[31:0] als een unidirectionele DIN[31:0] en DOUT[31:0] databus. De input BUSEN bepaald welke databus actief is, bij BUSEN hoog is de unidirectionele bus actief, de bidirectione databus mag dan niet aangesloten zijn. Bij BUSEN laag is de bidirectione databus actief, alle data die op DIN[31:0] komt wordt dan genegeerd en de outputs DOUT[31:0] worden op 0x geforceerd. Volgend figuur laat zien hoe de databus en bus splitter logica zij opgebouwd. 24

25 Unidirectionele databus Wanneer de BUSEN input hoog is zullen alle instructies en input data op de input databus DIN[31:0] worden aangeboden. De timing voor deze data is gelijk met die voor de bidirectionele databus in de input mode. De data zal moeten worden klaargezet en worden vastgehouden tot en met de neergaande flank van de MCLK. Alle output data staat op de output databus DOUT[31:0], de waarde op deze bus veranderen alleen als de processor een write cycle doet. Ook hierbij is de timing hetzelfde als bij de bidirectionele databus in de output mode. Hieronder is de timing van een read-write-read cycle te zien. De unidirectionele databussen worden vooral gebruikt in ASIC embedded applicaties. Extern zullen de meeste systemen nog steeds een bidirectionele databus nodig hebben om te kunnen communiceren met extern geheugen of devices Bidirectionele databus Wanneer ARM7TDMI processor uit geheugen leest fungeren de databus lijnen D[31:0] als input. Tijdens een write cycle fungeren de databus lijnen als output. Onderstaand figuur laat de timing voor een read-write-read cycle zien. Signaal nrw geeft aan of het om een write (hoog) of een read (laag) cycle gaat. Gedurende een actuele writye cycle geeft een laag niveau op nenout aan dat de processor D[31:0] aanstuurt als outputs. Volgend figuur laat de bustiming zien met de data bus enabled. 25

26 2.6.2 Byte Latch enables Om de ARM7TDMI processor eenvoudig te kunnen verbinden aan geheugen die half word of byte georiënteerd is, kan de processor het geheugen byte voor byte lezen. Hiervoor zijn de ingangsignalen BL[3:0] als volgt te gebruiken: BL[3] voor datalijnen D[31:24] BL[2] voor datalijnen D[23:16] BL[1] voor datalijnen D[15:8] BL[0] voor datalijnen D[7:0] Als het geheugen alleen maar uit words bestaat kunnen de lijnen BL[3:0] altijd hoog worden gehouden. Bij geheugen gebaseerd op sub-words (half words of bytes) zullen de lijnen BL[3:0] gebruikt worden om de juiste data aan te geven. Als bijvoorbeeld een word read moet worden gedaan op een half word breed geheugen, zal dit in 2 cycles gebeuren: D[15:0] zal worden ingelezen op de neergaande flank van de MCLK, waarbij BL[1:0] beide hoog zijn. D[31:16] zal worden ingelezen op de neergaande flank van de MCLK, waarbij BL[3:2] beide hoog zijn en BL[0:1] laag. 26

27 Tijdens multi cycle geheugen acces moet nwait altijd laag worden gehouden tot de laatste acces komt Byte en half word acces De processor gebruikt de uitgangsignalen MAS[1:0] om de size (word, half-word of byte) van een transfer weer te geven Read Wanneer een half-word of byte wordt gelezen,kan een 32-bits geheugen systeem een kompleet 32-bits word terug geven, waaruit de processor dan het half-word of byte haalt. Welk veld uit het 32-bits word wordt gehaald is afhankelijk van het BI- GEND signaal. Little-endian: Big-endian: 27

28 Write Wanneer de ARM7TDMI processor een byte, half-word of word schrijft, wordt de data op de volgende wijze op de databus gezet: Stretching acces timing De ARM7TDMI processor bevat geen dynamische logica die afhankelijk is van de MCLK, zodat deze klok onbeperkt kan worden uitgerekt (stretched). Er zijn 2 methode om de acces tijd uit te kunnen rekken: MCLK signaal aanpassen Gebruik maken van nwait om de bus cycles te kunnen beïnvloeden 28

29 Aanpassen MCLK Alle geheugen timing is afgeleid van de MCLK, en lange acces tijden kunnen worden bereikt door het verlengen (uitrekken) van deze klok. De MCLK wordt dan op het lage niveau uitgerekt. De MCLK kan worden uitgerekt voordat deze bij de processor wordt ingevoerd nwait Door de pipeline structuur van de processor bus interface is er een verschil tussen een klok cycles en een bus cycles. nwait kan worden gebruikt om een bus cycles uit te rekken, zodat het meerdere klok cycle kan duren. De nwait input mag de bus cycles uitrekken met complete MCLK cycles: Wanneer nwait hoog is op een neergaande flank van de MCLK, wordt een bus cycle beëindigd. Wanneer nwait laag is, wordt de bus cycle uitgerekt met de lengte van het lage interne klok signaal. nwait mag alleen veranderen als MCLK laag is. In de pipeline, lopen de adres en geheugen aanvraag signalen 1 bus cycle voor op de data transfer. Wanneer nwait wordt gebruikt kan dit meer dan 1 MCLK cycle zijn. 29

30 2.7 AC Parameters In de volgende hoofdstukken worden enkele voorbeelden geven van timing diagrammen, de tijden die gegeven worden zijn gebaseerd op een ARM7TDMI processor met een MCLK van 33Mhz Algemene timing 30

31 2.7.2 Timing Bidirectionele data read/write cycle 31

32 2.7.3 Timing Unidirectionele data read/write cycle 32

33 2.7.4 Klok timing 33

34 2.7.5 AC parameter symbolen 34

35 35

36 36

37 3 Timing berekeningen in een bus 3.1 Beschrijving Om timing berekeningen in een bussysteem te kunnen uitvoeren, moet je in de eerste plaats de busprocedure goed kennen. Vervolgens dien je uit het gegeven tijddiagram de eisen te kunnen ontlenen die aan een bepaald signaal gesteld worden. Hierna moet je kunnen berekenen of aan de eisen is voldaan, eventueel met gebruikmaking van statistiek. 3.2 Procedure De volgende procedure is zeer aan te raden (zie ook fig. 1): 1. leid uit het tijddiagram de eis(en) at die aan het betreffende signaal XS van device X worden gesteld. Vaak gaat het hier om de eisen ten aanzien van de setup tijd en de hold tijd. 2. Formuleer de twee vragen a en b die gesteld moeten worden met betrekking tot dat signaal XS. Onderscheid hierbij zowel de situatie I (setup tijd) als II (hold tijd): a. I "Wanneer moet signaal XS op lijn laatst geldig (of actief) lijn Op device X?" II "Wanneer mag signaal XS op lijn vroegst ongeldig (of inactief) lijn op device X?" b. I "Wanneer is signaal XS op lijn laatst geldig (of actief) op device X?" II "Wanneer is signaal XS op lijn vroegst ongeldig (of inactief) op device X?" 3. Kies de uitgangssituatie t=0. Deze moet bij vraag a hetzelfde lijn als bij vraag b. In feite is deze keuze arbitrair. Je kunt bijvoorbeeld uitgaan van een karakteristiek signaal XK (bijvoorbeeld de klokpuls) op device X waaraan de eis aan signaal XS direct is gerelateerd. 4. Bereken nu, uitgaande van t=0, het antwoord op vraag a. Dit dient te geschieden aan de hand van het tijddiagram van device X. 5. Bereken vervolgens het antwoord op vraag b, eveneens uitgaande van hetzelfde moment t=0. Ga eerst na van welke signalen YS en YK van device y (waarmee device X communiceert) de signalen XS, respectievelijk XK zijn afgeleid. Raadpleeg hiervoor de verbindingen en de hardware tussen de devices X en Y. Zoek nu in het tijddiagram van device Y naar de meest directe relatie tussen de signalen YS en YK. Reken nu vanaf t=0 van signaal XS op device X (via bus en eventuele hardware) terug naar het signaal YS op device Y. Tel hierbij de tijd tp op die verstrijkt van signaal YS naar YK op device Yen de tijd die signaal YK nodig heeft om via de bus en eventuele hardware naar signaal XK op device X te gaan. 6. Bepaal de ongelijkheid waaraan voldaan moet zijn. In situatie I is in het allerslechtste geval aan de timing voldaan als geldt t(a)min > t(b)max, dus t(a)min -t(b)max > 0. 37

38 In situatie II is in het meest ongunstige geval aan de timing voldaan als t(a)max < t(b)min, dus t(a)max -t(b)min < 0. Indien nodig kan een realistische worst case waarde van t(a) -t(b) worden verkregen met behulp van statistiek. Een kansverdeling is meestal normaal (Gaussisch). Indien een waarde van meerdere zaken afhankelijk is, terwijl die zaken afzonderlijk weer aan een bepaalde statistische verdeling voldoen, dan nadert de kansverdeling van die waarde tot een Gausse verdeling. Het resultaat van een worp met een dobbelsteen is uniform verdeeld. De kans op elk getal is immers 1/6. Gooien we twee keer met een dobbelsteen en tellen we de resultaten op, dan is de som driehoekig verdeeld. De som van drie worpen begint al aardig op een Gausse verdeling te lijken. De kans op een hele lage of op een hele hoge som is erg klein. Propagatietijden van circuits hangen van vele factoren af, zoals diffusies, spoorbreedten, oppervlakten van emitters, bases en collectors, temperatuur, voedingsspanning, enz. Ze zullen derhalve normaal verdeeld zijn. Uitersten komen slechts zeer zelden voor. Gaan we vervolgens propagatietijden sommeren, dan is het erg irreëel om met de som van deze toch al zeldzame uitersten te werken. Bij de dobbelstenen zagen we at dat de kans om een 1 te gooien gelijk is aan 1/6. De kans om echter achter elkaar drie enen te gooien is slechts 1/216. Fabrikanten geven timing specificaties van hun producten. We kunnen hier als volgt mee omgaan: Ga uit van de minimale en maximale waarden en stel tmin = tgem -s tmax = tgem + s tgem = (tmax + tmin)/2 s = (tmax -tmin)/2 met tgem is de gemiddelde (nominale) waarde en s is een maat voor de spreiding. 38

39 Meestal wordt tmin niet gegeven. In het geval van een propatietijd kan 10 % van de maximale waarde worden genomen voor tmin. 3.3 Timing berekening, met en zonder statistiek Minima en maxima zijn geen absolute waarden. Er is altijd een (kleine) kans dat een waarde buiten de gespecificeerde grenswaarden ligt. De eigenschappen van bouwstenen hangen van een groot aantal eigenschappen af. Dit betekent dat er een normale verdeling ontstaat. De kans van voorkomen van een bepaalde waarde is het grootst bij het gemiddelde en wordt kleiner naarmate de afwijking tot de gemiddelde waarde groter wordt. De meeste waarden liggen dus rond het gemiddelde. De spreiding is een maat waarmee men kan aangeven in welk gebied de meeste waarden liggen. De kans dat een waarde verder dan 3 maal de standaarddeviatie (spreiding) van het gemiddelde afwijkt, bedraagt 0,26 %. Worden een aantal waarden opgeteld, dan is bet gemiddelde van de somwaarde gelijk aan de som van de gemiddelden van de opgetelde waarden. Voor de spreiding geldt nu dat de kwadraten mogen worden gesommeerd. Vaarwaarde is dat de waarden van elkaar onafhankelijk zijn. Voorbeeld Stel dat we uit de gegeven minima en maxima de gemiddelden en de bijbehorende spreiding bepalen: minimum maximum gemiddelde spreiding adresbuffer 2 ns 8 ns 5 ns ±3 ns adresbus 3 ns 17 ns 10 ns ±7 ns adresdecoder 5 ns 25 ns 15 ns ±10 ns geheugendelay 8 ns 50 ns 29 ns ±21 ns databuffer 2 ns 8 ns 5 ns ±3 ns databus 4 ns 20 ns 12 ns ±8 ns De waarde van p is niet bekend. We handhaven in onze berekeningen dezelfde factor. Dit wil zeggen dat overschrijdingen van de grenswaarden in onze schakeling niet vaker voorkomen dan dat de componenten niet aan de specificaties voldoen. 39

40 Zendt de processor een adres via adresbuffer, adresbus en adresdecoder naar geheugen, zet het geheugen de data via een databuffer op de databus, dan gaat deze data vervolgens naar het geheugen, waar deze wordt ingelezen. Hiermee is een bepaalde tijd gemoeid. Zouden we de extreme waarden van de diverse delays zonder meer optellen, dan levert dit een minimale waarde van 24 ns en een maximale waarde van 128 ns. De gemiddelde waarde van de totale delay bedraagt 76 ns. Al deze componenten, behalve de adresbuffers en de databuffers, zijn verschillende IC's. Nemen we aan dat de adresbuffers en de databuffers van dezelfde wafer komen en dus sterk gecorreleerd zijn, dan nemen we deze twee samen als een component met een gemiddelde delay van 10 ns en een spreiding van 6 ns. We houden zodoende 5 statistisch onafhankelijke componenten over, waarvan we de spreidingen kwadratisch optellen en waaruit we vervolgens de wortel trekken. De nieuwe spreiding wordt nu: spreiding = ( ) = 26 ns. Zo vinden we voor de extreme waarden van de totale delay 76 ns ± 26 ns, zodat het minimum 50 ns bedraagt (in plaats van 24 ns) en het maximum 102 ns (in plaats van 128). U ziet dat dit een enorme verbetering oplevert. De kans dat elke waarde worst case is, is extreem klein. Verlagen van klokfrequentie Bij te grote vertragingstijden brengt het verlagen van de klokpulsfrequentie uitkomst, indien buffer gates, de inzet van snellere versies van de IC's en een statistische (realistische) benadering niet voldoende helpen. Hierdoor wordt de snelheid van het systeem natuurlijk lager. Externe hardware Indien looptijdverschillen ernstige problemen veroorzaken, moet uiteindelijk de toevlucht worden genomen tot extra hardware. Hierbij valt vooral te denken aan delayschakelingen om sommige signalen extra te vertragen ten opzichte van anderen en aan one-shots om bepaalde pulsbreedten te vergroten of te verkleinen. 40

41 4 Aansluiten SRAM op de externe interface bus Als voorbeeld voor het berekenen van timing gaan we een SRAM aansluiten op de externe interface bus van de ATMEL AT91SAM7SE, via de static memory controller (SMC). We bekijken de read-cycle wat uitgebreider en zullen hiervoor de timing gaan berekenen. 4.1 De SRAM CY62128 De CY62128 SRAM is een 128K x 8 Statische RAM. De interne opbouw van de chip is in onderstaand figuur te zien. Vervolgens zijn de timing eisen voor een read en write cycle te zien. Voor dit voorbeeld zullen we gebruik maken van een 55ns versie van de SRAM die werkt op 3,3V. 41

42 4.1.1 Timing specificaties van een read-cycle 42

43 4.1.2 Timing specificaties van een write-cycle 43

44 4.2 Static Memory Controller Verbindingen tussen SRAM en ATMEL controller In onderstaand figuur is te zien hoe, voor een 16-bits geheugen breedte, de 2 daarvoor benodigde SRAM moeten worden verbonden met de ATMEL microcontroller. Je ziet dat de databus lijnen D7..D0 naar de ene SRAM gaan, terwijl de databus lijnen D15..D8 met de andere SRAM zijn verbonden Interne verbindingen tussen ARM7TDMI processor en SMC/EBI Hoe de controle lijnen tussen de ARM7TDMI core en de static memory controller (SMC) en external bus interface (EBI) zijn verbonden is te zien in onderstaand figuur. 44

45 In onderstaand figuur is te zien hoe de upper en lower SRAM zijn verbonden met de SMC. Hierbij valt op dat adres lijn A0 niet wordt gebruikt, deze functie wordt overgenomen door de nwr1 en nwr0 lijnen om aan te geven of de upper SRAM (D15:8) of de lower SRAM(D7:0) actief is Aansluiten SRAM op AT91SAM7SExxx Om de Cypress SRAM, CY62128V, aan te sluiten op de ATMEL, AT91SAM7SExx moeten de volgende signalen van beide devices op elkaar aangesloten worden: AT91SAM7SExx CY62128V D0..D7 of D8..D15 I/O 0..7 A1..A17 A0..A16 ncsx nce1 altijd hoog CE2 nwr0 of nwr1 nwe nrd noe 45

46 4.2.4 Timing gegevens van de Static Memory Controller In onderstaande tabellen staan de timing gegevens van deat91sam7sexxx read en write cycles. De AT91SAM7SExxx werkt ook op een spanning van 3,3V en een clock frequentie van 33Mhz, dus t CPMCK = 30ns. 46

47 47

48 4.3 Voorbeeld timing berekening van een read-cycle Volgorde van een read-cycle Bij een read-cycle zullen de volgende stappen worden uitgevoerd: (zie ook het eerste gedeelte van het bovenstaande timing diagram van de SMC) 1. processor zet adres op adresbus en geeft aan dat het om een read cycle gaat. 2. processor maakt chip select signaal actief. 3. SRAM gaat data op de databus zetten. 4. processor leest data van de databus. 5. processor maakt chip select signaal inactief. 6. SRAM haalt data van de databus. 7. processor haalt read actief signaal weg en zal adres van de adresbus halen De berekening We willen nu weten wat de minimale tijd is wanneer de data valid is na een chipselect signaal. In het timing diagram van de ATMEL zien we: SMC7 SMC42 met: SMC7 = (n+1)x tcpmck - 2,5 SMC42 = 23,2 ns tcpmck = 1/33Mhz = 30ns Bij 0 Ws = 27,5-23,2 = 4,3ns Bij 1 Ws = 57,5-23,2 = 34,3ns Bij 2 Ws = 87,5-23,2 = 64,3ns Voor SRAM geldt (zie timing specificaties van de CY62128V55): Tijd tussen CS en Data valid = 55ns (maximaal) Dus de timing klopt als 2 waitstates (=64,3ns) worden toegevoegd, want dan heeft de SRAM immers minimaal 55ns de tijd om de data op de databus te zetten en is na 64,3ns deze data zeker valid. Opm. In dit voorbeeld zijn niet de looptijden van de signalen meegenomen. Deze kunnen echter behoorlijk oplopen als de drivers van de uc niet al te veel stroom kunnen leveren en deze toch geleverd moeten worden door ontstane capaciteit. Delay-tijden in eventuele extra adres en/of databuffer zijn ook niet meegenomen. 48

49 5 Interrupt 5.1 Algemeen Interrupts Een interrupt is een onderbreking van de huidige bezigheden ten gevolge van een externe gebeurtenis, zodanig dat de bezigheden na de onderbreking weer kunnen worden hervat. Essentieel is hierbij, dat de onderbreking moet worden veroorzaakt van buitenaf. Veronderstel je leest een boek. Na enige tijd besluit je met het lezen te stoppen, omdat je vindt dat je lang genoeg hebt gelezen. Er is hier geen sprake van een interrupt, omdat je zelf besluit tot het beëindigen van jouw activiteit. Je wordt immers niet gestoord door een externe gebeurtenis. Na enige tijd kun je eventueel weer besluiten verder te lezen. Het kan echter ook zijn, dat je gestoord wordt door een externe gebeurtenis, bijvoorbeeld door het overgaan van de telefoon. Nu is er sprake van een interrupt. Het opgebeld worden geschiedt geheel buiten je om. Je kunt op elk moment, buiten jouw wil om, worden opgebeld. Doorgaans ga je nu over tot het afhandelen van de interrupt. Je legt een papiertje in jouw boek om te weten waar je gebleven bent met lezen. Vervolgens leg je het boek terzijde en neem je de telefoon op. Na het beëindigen van het gesprek verbreek je de verbinding, neem jouw boek op en gaat verder met het lezen op de plaats waar het papiertje ligt. Nu kan in principe een telefoongesprek ook plaatsvinden zonder gebruik te maken van interrupts. Dit is echter bijzonder onhandig. Als jouw telefoon geen bel ( of andere signalering) zou hebben, moet je van tijd tot tijd de hoorn opnemen om te horen of iemand u opbelt. Je moet hiervoor veelvuldig jouw activiteiten onderbreken, meestal tevergeefs. Dit is natuurlijk erg vervelend, ook voor degene die je belt. Deze moet doorgaans vrij lang wachten, alvorens hij contact krijgt. Bovendien loop je het risico de oproep te missen, omdat de oproeper al heeft neergelegd, voordat je de hoorn opneemt. Een interrupt mechanisme is hier de aangewezen oplossing. Je kunt rustig met jouw activiteiten bezig zijn, zonder op de telefoon te hoeven letten. Als je gebeld wordt, krijgt je een signaal dat uw aandacht trekt en je tevens verteld dat iemand u opbelt Interrupts blokkeren Een interrupt kan ook wel eens vervelend zijn. Er kunnen bezigheden zijn, waarbij je niet gestoord wilt worden. Stel dat je niet wilt worden onderbroken bij bet eten van jouw warme maaltijd. Dan moet je de mogelijkheid hebben om de interrupt te blokkeren. Bij de telefoon zou je dat kunnen doen door de bel uit te schakelen. Een eventuele oproep gaat dan verloren, maar je kunt ongestoord van jouw maaltijd genieten. De oproeper zal later terug moeten bellen. Na het eten schakelt je de bel weer in, zodat de volgende oproepen je kunnen bereiken Interrupts bij computers Ook bij computers bestaat er een interrupt mogelijkheid. Deze werkt op soortgelijke wijze als de hiervoor beschreven telefoonoproep. 49

50 Programmaverloop wijzigen Interrupts zijn nodig om de volgorde van de geplande (geprogrammeerde ) activiteiten te wijzigen. De volgorde van de activiteiten (instructies) ligt volledig vast in het programma. Natuurlijk kan onder invloed van bepaalde condities (bijvoorbeeld bij bet optreden van overflow) gesprongen worden naar een ander deel van het programma. Deze condities worden op vaste plaatsen (die door de programmeur bepaald zijn) getest, zodat de ene actie dan wel de andere wordt ondernomen. Het programmaverloop vindt hierbij gewoon doorgang. Er is geen sprake van interrupt. Een spronginstructie verandert de flow van het programma op een van tevoren door de programmeur gedefinieerde plaats in het programma. De programmaflow verandert bij een interrupt op een tijdstip, dat niet vooraf is bepaald Nut van interrupts Interrupts bij computers worden gebruikt voor: -het beheer van het computersysteem bij parallel programmeren (multitasking). -de service. -de signalering bij apparatuurfouten en programmatuurfouten. -de communicatie met de buitenwereld, bijvoorbeeld ten behoeve van procesbesturing. Voorbeeld (beheer) Een computersysteem werkt doorgaans aan diverse taken 'tegelijkertijd' (multitaking), zodat bijvoorbeeld verschillende gebruikers 'tegelijkertijd' (multiuser) programma's kunnen laten uitvoeren. Dit kan geschieden doordat het operating system aan elke taak een bepaalde tijd toewijst. Er wordt bij toerbeurt gedurende de toegewezen tijd aan de diverse taken gewerkt (timesharing). Is die tijd verstreken, dan wordt het lopende programma onderbroken en wordt er doorgegaan met het uitvoeren van de volgende taak. Zo wordt taak 1 na de toegewezen tijd t1 onderbroken en taak 2 wordt voortgezet. Na t2 wordt taak 2 onderbroken en wordt gedurende t3 aan taak 3 gewerkt. Als alle taken aan de beurt zijn geweest, wordt taak 1 weer voortgezet gedurende een tijd t1, enzovoorts. Dit telkens onderbreken van het lopende programma vindt plaats doordat een timer bijvoorbeeld elke 10 ms een puls afgeeft. Deze puls wordt als interrupt gebruikt voor de microprocessor. Telkens onderbreekt de puls het lopende programma. Er wordt een aparte routine ( een interrupt service routine) gestart die een andere taak doorstart. Interrupts zijn dus de basis voor het zogenaamde parallel programmeren. Dankzij interrupts kunnen meerdere taken schijnbaar gelijktijdig door een microprocessor worden uitgevoerd. Voorbeeld (service) De operator onderbreekt het systeem om bijvoorbeeld een testprogramma uit te voeren, teneinde na te gaan of een bepaald deel van het systeem nog correct functioneert. 50

51 Voorbeeld (beveiliging) Bij een apparatuurfout (bijvoorbeeld een niet-functionerende printer) moet het lopende programma worden onderbroken en moet er een melding worden gegeven aan de operator, die dan actie kan ondernemen (bijvoorbeeld de printer inschakelen of van papier voorzien). Bij een programmatuurfout (bijvoorbeeld bij delen door 0) moet het programma worden afgebroken en moet er als output een foutmelding worden gegenereerd. Voorbeeld (communicatie) Een proces kan het lopende programma onderbreken ten behoeve van onmiddellijke actie als bijvoorbeeld het vloeistofniveau in een tank te laag wordt. Hierop kan dan een interrupt service routine worden gestart, die een klep open stuurt, zodat de tank weer gevuld wordt. Op deze wijze kan een procesbesturing worden gerealiseerd. Zo kan een naderende trein via een detector een interrupt genereren teneinde de overwegbomen automatisch te sluiten Voorzieningen ten behoeve van interrupts Ten behoeve van interrupts moeten er enige voorzieningen worden getroffen: 1. Er moet een mogelijkheid zijn om de interrupt kenbaar te maken ( denk aan de telefoonbel). 2. Naar aanleiding van het optreden van een interrupt moet er een bepaalde activiteit uitgevoerd kunnen worden ( denk aan het opnemen van de telefoon). 3. De onderbroken activiteit moet zinvol voortgezet kunnen worden (bladwijzer in het boek leggen bij het stoppen met lezen). 4. Bepaalde interrupts moeten geblokkeerd kunnen worden (telefoonbel uitschakelen). 5. Bij meerdere interrupts moet nagegaan kunnen worden waar de interrupt vandaan komt (bijvoorbeeld de deurbel en de telefoonbel hebben een verschillend geluid) soorten interrupts - hardware interrupts - software interrupts - traps Hardware interrupts Voordat een interrupt kan worden afgehandeld, moet deze eerst aan de microprocessor worden gemeld. Dit geschiedt via een aparte ingang van de microprocessor. Via deze ingang wordt het interruptsignaal aan de microprocessor doorgegeven. We hebben hier te maken met zogenaamde hardware interrupts, omdat externe hardware via zo n interrupt ingang het lopende programma kan onderbreken. Zo'n onderbreking kan op elk willekeurig moment optreden en is derhalve asynchroon ten opzichte van het programma. Een interruptingang van de microprocessor wordt meestal gerekend tot de controlbus. 51

52 Software interrupts Naast een of meerdere hardware interrupts kennen microprocessoren bovendien een of meerdere software interrupts. Een software interrupt is een interrupt, die wordt uitgevoerd bij een bepaalde instructie, die op een door de programmeur bepaalde plaats in het programma voorkomt. Een software interrupt is dus synchroon ten opzichte van het programma. Software interrupts worden vaak gebruikt om functies van de systeem software aan te roepen, die ook door de applicatieprogrammeurs gebruikt kunnen worden. In dit geval wordt ook wel gesproken van system calls Traps Sommige microprocessoren veroorzaken zelf intern op de chip een interrupt bij het optreden van een bepaalde situatie,die ontstaat ten gevolge van het programma zelf. Zo kan een microprocessor bijvoorbeeld een interne interrupt genereren, indien er een niet-bestaande opcode wordt gedetecteerd door de processor of wanneer er bij een divide-instructie wordt gedeeld door 0. Zo'n interne interrupt wordt ook wel trap genoemd. Ook een trap is synchroon ten opzichte van het programma, omdat hij optreedt als direct gevolg van het uitvoeren van een instructie. Hij treedt echter in tegenstelling tot een software interrupt niet altijd op bij het uitvoeren van bepaalde instructies, maar alleen in geval van een uitzonderingstoestand, zoals bij het delen door Interruptafhandeling Interrupts detecteren De interrupt aanvraag moet voldoende lang aanwezig zijn, opdat de microprocessor de aanvraag kan detecteren. Is de interrupt aanvraag te kort, dan wordt deze niet gedetecteerd en wordt er geen actie ondernomen. Het programma wordt zonder onderbreking voortgezet Interrupts weghalen De interrupt aanvraag moet tijdig worden weggehaald (door de aanvrager). Is de interrupt afgehandeld, met andere woorden zijn de gewenste acties uitgevoerd, dan wordt het onderbroken programma weer voortgezet. Is de interrupt aanvraag nog aanwezig, dan wordt de interrupt afhandeling opnieuw gestart en wordt de door de (oude) interrupt gevraagde actie nogmaals uitgevoerd. Het is dus nodig de interrupt aanvraag weg te halen, voordat de afhandeling beëindigd is, dus voordat er wordt teruggekeerd naar het onderbroken programma. In het algemeen is er een terugmelding van de microprocessor aan de interrupt aanvrager nodig, opdat deze weet wanneer hij de interrupt aanvraag kan weghalen. 52

53 5.2.3 Instructie afmaken Om het onderbroken programma na de interrupt zinvol te kunnen voortzetten, moet de microprocessor eerst de instructie afmaken, waar bij mee bezig is. De interrupt vraagt om een bepaalde activiteit, dus om het uitvoeren van instructies. Hierdoor gaat de oorspronkelijke inhoud van het instructieregister verloren. Derhalve mag de processor niet halverwege een instructie stoppen. Bovenstaand figuur laat zien op welk moment in de Von Neumann cyclus een interrupt effect heeft Terugkeeradres bewaren Om terug te kunnen keren naar het programma moet de processor weten, waar hij gebleven was, met andere woorden, op welke geheugenlocatie de volgende instructie van het onderbroken programma staat. Het adres van die geheugenlocatie bevindt zich in de program counter. Door nu de inhoud van de program counter op te bergen op de stack, wordt de plaats waar het programma later dient te worden voortgezet, onthouden Flags opslaan Een interrupt vraagt om acties, instructies. Deze beïnvloeden de bits van het condition code register. Daar een interrupt in principe op elk willekeurig moment kan optreden, kan de programmeur hiertegen geen maatregelen treffen. Bij het voortzetten van het programma mag de inhoud van het condition code register echter niet zijn gewijzigd. Veronderstel dat het programma bezig is met het optellen van een aantal getallen. Hierbij moet telkens de carry van de vorige optelling worden meegenomen. Bij een interrupt wordt het optelprogramma onderbroken en wordt een andere routine uitgevoerd. Hierbij wordt de carry gewijzigd. Bij het voortzetten van bet optelprogramma zal het resultaat niet correct zijn. Derhalve moet de processor de inhoud van bet condition code register bewaren. Ook dit gebeurt op de stack. Bij sommige microprocessoren wordt ook de inhoud van de overige registers van het programmeermodel automatisch op de stack gezet bij het optreden van een interrupt. Het is in principe ook mogelijk de registerinhouden van de microprocessor te redden in aparte, daarvoor bedoelde MPU-registers. In dit geval bevindt de stack zich als het ware op de microprocessorchip. Het nadeel hiervan is dat deze stackruimte erg beperkt is. Het voordeel is dat het aanzienlijk sneller gaat. 53

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

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

Voorblad tentamen ENG

Voorblad tentamen ENG Voorblad tentamen ENG 015-016 Naam student: Studentnr: Klas: Cijfer: Dit voorblad en indien aangegeven overige opgavenbladen, moeten voorzien zijn van naam, studentnummer en klas. Controleer dit tentamen

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 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

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

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

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

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

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

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

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

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

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

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

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

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

Interfacetechnieken Studiehandleiding

Interfacetechnieken Studiehandleiding Interfacetechnieken Groep : ES2, ES3D Peter Bijl 1 September 2014 Inhoud 1 Inleiding... 3 1.1... Voorkennis... 3 1.2... Doelstellingen... 3 2 Beschrijving en beoordeling... 4 2.1... Hoofdfase voltijd...

Nadere informatie

Tentamen 17 augustus 2000 Opgaven Computerarchitectuur

Tentamen 17 augustus 2000 Opgaven Computerarchitectuur Tentamen 17 augustus 2000 Opgaven - 1 - Computerarchitectuur Tentamen Computerarchitectuur (213005) 17 augustus 2000 2 bladzijden met 5 opgaven 3 antwoordbladen Het raadplegen van boeken, diktaten of aantekeningen

Nadere informatie

Hoofdstuk 18. Embedded systemen

Hoofdstuk 18. Embedded systemen Hoofdstuk 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

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

Digitale technieken Deeltoets II

Digitale technieken Deeltoets II Digitale technieken Deeltoets II André Deutz 11 januari, 2008 De opgaven kunnen uiteraard in een willekeurige volgorde gemaakt worden geef heel duidelijk aan op welke opgave een antwoord gegegeven wordt.

Nadere informatie

Naam student: Studentnr: Klas: Cijfer:

Naam student: Studentnr: Klas: Cijfer: oorblad tentamen ENG -6 Naam student: Studentnr: Klas: Cijfer: Dit voorblad en indien aangegeven overige opgavenbladen, moeten voorzien zijn van naam, studentnummer en klas. Controleer dit tentamen alvorens

Nadere informatie

Voorblad tentamen

Voorblad tentamen oorblad tentamen - Naam student: Studentnr:. Klas:. Cijfer.. Dit voorblad en indien aangegeven overige opgavenbladen, moeten voorzien zijn van naam, studentnummer en klas. Controleer dit tentamen alvorens

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

slides2.pdf April 12,

slides2.pdf April 12, Werking van CPU CSN CS2 CPU, I/O en Memory management Piet van Oostrum 12 april 2002 De ALU kan alleen eenvoudige operaties uitvoeren (bijv. twee getallen optellen, vermenigvuldigen of testen of iets >

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

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

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

Tentamen Computersystemen

Tentamen Computersystemen Tentamen Computersystemen baicosy6 2e jaar bachelor AI, 2e semester 21 oktober 213, 9u-11u OMHP D.9 vraag 1 Van een Single Cycle Harvard machine hebben de componenten de volgende propagation delay time:

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

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

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

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

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

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

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

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

Computerarchitectuur. Terugblik / discussie / oefenopgaven

Computerarchitectuur. Terugblik / discussie / oefenopgaven Computerarchitectuur Terugblik / discussie / oefenopgaven Kristian Rietveld http://ca.liacs.nl/ Trends & Performance Voorkennis We bouwden een 4-bit microprocessor bij Digitale Technieken. Bij computerarchitectuur

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

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

versie: 1.0 status: vrijgegeven door: J.Eberson datum: 15 augustus 2005 aangepast: 19 februari 2006 concept beschrijving

versie: 1.0 status: vrijgegeven door: J.Eberson datum: 15 augustus 2005 aangepast: 19 februari 2006 concept beschrijving versie: 1. status: vrijgegeven door: J.Eberson datum: 15 augustus 25 aangepast: 19 februari 26 concept beschrijving DOLLYsms SMS server conceptbeschrijving V1. I N H O U D Inleiding... 3 DOLLYsms... 3

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

Antwoorden vragen en opgaven Basismodule

Antwoorden vragen en opgaven Basismodule Antwoorden vragen en opgaven Basismodule Antwoorden van vragen en opgaven van hoofdstuk 1 1. Is elke combinatorische schakeling een digitale schakeling? Zo nee, waarom niet? Antwoord: Elke combinatorische

Nadere informatie

Besturingspaneel v Raam E-systeem functie omschrijving v109

Besturingspaneel v Raam E-systeem functie omschrijving v109 Besturingspaneel v Raam E-systeem functie omschrijving v109 Aantal druktoetsen: 4 stuks met de volgende functies: On/off toets voor in- en uitschakelen, toets 1 laagste vermogen, 2 midden stand, 3 max.

Nadere informatie

Beter, Sneller, Mooier. Processoren 12 januari 2015

Beter, Sneller, Mooier. Processoren 12 januari 2015 Beter, Sneller, Mooier Processoren 12 januari 2015 Beter! Sneller! Krachtigere CPU: maak instructies die meer doen Snellere CPU: pipeline, out-of-order execution Sneller RAM: cache meer mogelijkheden...

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

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

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

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

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

Meervoudige Smart-Card Duplicator. Gebruiksaanwijzing

Meervoudige Smart-Card Duplicator. Gebruiksaanwijzing Meervoudige Smart-Card Duplicator Gebruiksaanwijzing Project Specificaties De Smart Card Duplicating PCB is kan zes verschillende type smartcards lezen en schrijven, die allemaal gebaseerd zijn op de microchip

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

Datacommunicatie ov. Seriële bussystemen SERIËLE VERBINDINGEN

Datacommunicatie ov. Seriële bussystemen SERIËLE VERBINDINGEN Datacommunicatie ov THEORIE SERIËLE VERBINDINGEN Seriële bussystemen Prof. Dr. Bernd vom Berg en Dipl.-Ing. Peter Groppe Synchrone seriële datacommunicatie tussen microcontroller en periferie is de laatste

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

Sequentiële schakelingen

Sequentiële schakelingen Gebaseerd op geheugen elementen Worden opgedeeld in synchrone systemen» scheiding tussen wat er wordt opgeslagen (data) wanneer het wordt opgeslagen (klok) asynchrone systemen» Puls om geheugen op te zetten

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

Windows Basics. yvan vander sanden. 22 februari 2015

Windows Basics. yvan vander sanden. 22 februari 2015 Windows Basics yvan vander sanden 22 februari 2015 Windows is nog altijd een veel gebruikt operating system. Als technicus moet je bekend zijn met het Windows operating system om gebruikers te kunnen helpen,

Nadere informatie

Stappenmotor Interface. Controller

Stappenmotor Interface. Controller Besturing In deze moderne tijd zal de besturing geheel elektrisch worden uitgevoerd. De bedoeling is dat er voor ieder afgaand spoor een wisseladres gebruikt worden. Dit betekend dan een reeks van 24 aansluitende

Nadere informatie

INHOUD SPI : SERIAL PERIPHERAL INTERFACE ALGEMEEN. Videolessen Deel 3 DATACOMMUNICATIE SPI

INHOUD SPI : SERIAL PERIPHERAL INTERFACE ALGEMEEN. Videolessen Deel 3 DATACOMMUNICATIE SPI INHOUD SPI : Serial Peripheral Interface... 1 Algemeen... 1 SPI protocol... 2 Klokpolariteit... 3 CASE 1. MAX5385 DAC... 4 CASE 2: FM25640 FRAM Memory... 5 SPI Praktisch... 7 Uitdagingen:... 7 Datacom-fiche...

Nadere informatie

IDAgeChecker BDX118T11xx Manual V02.00

IDAgeChecker BDX118T11xx Manual V02.00 XLN-t bvba Hoogstraat 52 B 2580 Putte-Beerzel Belgie - Belgium tel +32 (0) 15 24 92 43 fax +32 (0) 15 25 10 58 RPR Mechelen BTW BE 423 212 087 Bank 733-2011497-38 IDAgeChecker BDX118T11xx Manual V02.00

Nadere informatie

Netwerk Interfacing Data Logging.

Netwerk Interfacing Data Logging. Handleiding Netwerk Interfacing Data Logging. EduTechSoft.nl 2009-2010 H.O.Boorsma. Pagina - 2 - Netwerk Interfacing Data Logging Pagina - 3 - Inhoud Inleiding.... 4 Beschrijving van het programma....

Nadere informatie

Software beschrijving Epoluthon 2.0

Software beschrijving Epoluthon 2.0 Software beschrijving Epoluthon 2.0 Opgesteld door: Richard Rasker HI-180116 SOFTWARE De software voor Epoluthon v.2.0 bestaat uit vijf van elkaar te onderscheiden delen: een interrupt-service-routine

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

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

Uitwerking oefententamen Computerarchitectuur December 2016

Uitwerking oefententamen Computerarchitectuur December 2016 Uitwerking oefententamen Computerarchitectuur December 2016 I.a. De overall CPI kan worden berekend met de formule n IC i CPI Instruction count CPI i voor de ratio vullen we telkens de geven frequentie

Nadere informatie

Jan Genoe KHLim. PCI Signalen en timing

Jan Genoe KHLim. PCI Signalen en timing PCI Signalen en timing Jan Genoe KHLim 1 Doelstellingen PCI bus: 1. Laag vermogenverbruik 5 V en 3.3 V signaalomgeving Verschillende kaarten voor 3.3 V en 5 V Het doel is een evolutie naar 3.3 V bus en

Nadere informatie

Tweede workshop Arduino

Tweede workshop Arduino Tweede workshop Arduino In deze workshop zal veel gewerkt worden met voorbeelden die meegeleverd worden met de Arduino IDE. Deze zijn te vinden onder het menu File >Examples. Oefening 1 - Seriële communicatie

Nadere informatie

Virtueel Geheugen en demand paging (1)

Virtueel Geheugen en demand paging (1) Virtueel Geheugen en demand paging (1) Programma's zijn vaak niet in hun geheel in het geheugen nodig, vanwege: zelden gebruikte onderdelen groter gedeclareerde arrays dan nodig als programma helemaal

Nadere informatie

EE1410: Digitale Systemen BSc. EE, 1e jaar, , vragencollege 2

EE1410: Digitale Systemen BSc. EE, 1e jaar, , vragencollege 2 EE4: Digitale Systemen BSc. EE, e jaar, 22-23, vragencollege 2 Arjan van Genderen, Stephan Wong, Computer Engineering 7-6-23 Delft University of Technology Challenge the future Vragencollege Tentamen dinsdag

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

Technology, Innovation & Society Delft

Technology, Innovation & Society Delft Technology, Innovation & Society Delft VOORBLAD SCHRIFTELIJKE TOETSEN OPLEIDING TOETSCODE GROEP : ELEKTROTECHNIEK : MICPRG-sc1 : EQ1 TOETSDATUM : 25 JANUARI 2013 TIJD : 15.00 16.30 uur AANTAL PAGINA S

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

Microcontrollers Week 5 Interrupts, Timer/Counter 0 Jesse op den Brouw INLMIC/

Microcontrollers Week 5 Interrupts, Timer/Counter 0 Jesse op den Brouw INLMIC/ Microcontrollers Week 5 Interrupts, Timer/Counter 0 Jesse op den Brouw INLMIC/2014-2015 Interrupts Stel dat een programma snel moet reageren op een event (gebeurtenis) van buitenaf. Dit kan worden opgelost

Nadere informatie

Besturing van de Miniatuurwereld OC32. Apparaatdefinities Servo s en gerelateerde zaken

Besturing van de Miniatuurwereld OC32. Apparaatdefinities Servo s en gerelateerde zaken Besturing van de Miniatuurwereld OC32 Apparaatdefinities Servo s en gerelateerde zaken Auteur: Leon J.A. van Perlo Versie: 2010/10/26 Datum: 26 oktober 2010 Release beheer Deze handleiding is van toepassing

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

Bouwbeschrijving UniSAI

Bouwbeschrijving UniSAI Bouwbeschrijving UniSAI Print maken De layout heeft hele fijne sporen en daarom is fotografisch afdrukken de enige mogelijkheid. Voor het bewerken van de layout gebruik ik het programma Adobe Photoshop

Nadere informatie

Domotica in drie stappen: Systeem omschrijving: DDNET:

Domotica in drie stappen: Systeem omschrijving: DDNET: dmxdomotica DDC1-IP Controller. Ipad en Android Simplistic Light Domotica in drie stappen: 1: Monteren componenten en aansluiten. 2: Adressen instellen op de DMX dimmers Zones in stellen op de drukknop

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

TECHNISCHE UNIVERSITEIT EINDHOVEN ComputerSystemen Deeltentamen B (weken 6..9) vakcode 2M208 woensdag 19 Maart 2003, 9:00-10:30

TECHNISCHE UNIVERSITEIT EINDHOVEN ComputerSystemen Deeltentamen B (weken 6..9) vakcode 2M208 woensdag 19 Maart 2003, 9:00-10:30 TECHNISCHE UNIVERSITEIT EINDHOVEN ComputerSystemen Deeltentamen B (weken 6..9) vakcode 2M208 woensdag 19 Maart 2003, 9:00-10:30 Algemene opmerkingen (lees dit!): - Dit tentamen duurt ANDERHALF UUR! - Dit

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

Handleiding HCS VB5248

Handleiding HCS VB5248 Handleiding HCS VB5248 Analoge Uitgangsmodule met 8 uitgangen HCS Building Automation Kompasstraat 7a, 2901AM Capelle a/d IJssel Postbus 182, 2900AD Capelle a/d IJssel Tel. +31(0)10 458 00 00 Fax +31(0)10

Nadere informatie

Het koppelen van de Wago aan de AC500-eco via Modbus RTU. A quick start guide. Jaap Ruiten

Het koppelen van de Wago aan de AC500-eco via Modbus RTU. A quick start guide. Jaap Ruiten Het koppelen van de Wago 750-315 aan de AC500-eco via Modbus RTU. A quick start guide Jaap Ruiten Het koppelen van de Wago 750-315 aan een AC500-eco plc. Solar TPS 1 dinsdag 4 februari 2014 Inhoudsopgave

Nadere informatie

Scan-pad technieken. Zet elk register om in een scan-pad register (twee opeenvolgende D-latches: master-slave):

Scan-pad technieken. Zet elk register om in een scan-pad register (twee opeenvolgende D-latches: master-slave): Zet elk register om in een scan-pad register (twee opeenvolgende D-latches: master-slave): D is de normale data ingang C is de normale fase 1 klok I is de data ingang van het shift-regiester A is de klok

Nadere informatie

Applicatiesoftware Tebis

Applicatiesoftware Tebis 5 Applicatiesoftware Tebis STXB322 V 1.x 2 ingangen / Schakeluitgang inbouw, 2-v LED (licht / jal. / venti.) (Status indicatie) STXB344 V 1.x 4 ingangen / Schakeluitgang inbouw, 4-v LED (licht / jal. /

Nadere informatie

MURRELEKTRONIK IO-LINK, EN NU? Roel Janssen

MURRELEKTRONIK IO-LINK, EN NU? Roel Janssen MURRELEKTRONIK IO-LINK, EN NU? Roel Janssen MURRELEKTRONIK Onze systemen en waar u deze kan tegenkomen. Elektronica in de schakelkast I/O-Systemen Automotive Interfaces Aansluittechniek Werktuigmachine

Nadere informatie

DATA SHEET C2-20. Besturing voor elektrische actuators. DATA SHEET C2-20 A&E Trading b.v. 1

DATA SHEET C2-20. Besturing voor elektrische actuators. DATA SHEET C2-20 A&E Trading b.v. 1 DATA SHEET C2-20 Besturing voor elektrische actuators DATA SHEET C2-20 A&E Trading b.v. 1 C2-20 De C2-20 biedt geavanceerde positionering en controle van actuators door middel van eenvoudige en flexibele

Nadere informatie

GEBRUIKSAANWIJZING HD-9022. Microprocessor Volledig vrij instelbare controller

GEBRUIKSAANWIJZING HD-9022. Microprocessor Volledig vrij instelbare controller GEBRUIKSAANWIJZING HD-9022 Microprocessor Volledig vrij instelbare controller HD9022 MICROPROCESSOR CONFIGURATIE CONTROLLER De microprocessor gestuurde controller HD9022 is een aflees- en regelunit met

Nadere informatie

Het Versacom systeem is gedefinieerd in DIN 43861, deel 301 als "transfer protocol A".

Het Versacom systeem is gedefinieerd in DIN 43861, deel 301 als transfer protocol A. Versacom Het Versacom protocol (Versatile Communication) wordt gebruikt voor het op afstand programmeren van intelligente ontvangers. Dit protocol verstuurt schakelprogramma's, agenda- en vakantie periodes

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

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

Foundation Fieldbus. Er zijn 2 soorten Foundation Fieldbus: FF HSE FF-H1

Foundation Fieldbus. Er zijn 2 soorten Foundation Fieldbus: FF HSE FF-H1 Foundation Fieldbus Deze paragraaf zal gaan over de opdracht die betrekking had tot de Foundation Fieldbus. Hierin zal worden beschreven hoe de informatie van deze bus in de PLC komt. Bij deze bus zijn

Nadere informatie

Hoofdstuk 4. Digitale techniek

Hoofdstuk 4. Digitale techniek Hoofdstuk 4 Digitale techniek 1 A C & =1 F Figuur 4.1: Combinatorische schakeling. A C & & F A = & F C Figuur 4.2: Drie-input AND. A C _ >1 & F Figuur 4.3: Don t care voorbeeld A? F Figuur 4.4: Onbekende

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

Microcontrollers. Bart Kardinaal E204 221490 Verslag microcontrollers 28-11-06. Rev 1.0 Status definitief.

Microcontrollers. Bart Kardinaal E204 221490 Verslag microcontrollers 28-11-06. Rev 1.0 Status definitief. Microcontrollers Bart Kardinaal E204 221490 Verslag microcontrollers 28-11-06 Rev 1.0 Status definitief. Voorword. Dit verslag is geschreven in het kader van de opdracht, als onderdeel van het eerste studiejaar

Nadere informatie

Studentnummer:... Opleiding:... a) Met welke term wordt het interface tussen software en hardware van een processor aangeduid?

Studentnummer:... Opleiding:... a) Met welke term wordt het interface tussen software en hardware van een processor aangeduid? Computerorganisatie (213110) Dinsdag 15 augustus 2000, 13.30 17.00 uur 7 bladzijden met 6 opgaven 3 bladzijden met documentatie Bij dit tentamen mag geen gebruik worden gemaakt van boeken, dictaten of

Nadere informatie

Beter, Sneller, Mooier. Processoren 27 maart 2012

Beter, Sneller, Mooier. Processoren 27 maart 2012 Beter, Sneller, Mooier Processoren 27 maart 2012 Beter! Sneller! Krach:gere CPU: microcode Snellere CPU: pipeline, out- of- order execu:on Sneller RAM: cache meer mogelijkheden... Welke extra s kan processor-

Nadere informatie

Specificatie van de I²C bus.

Specificatie van de I²C bus. Specificatie van de I²C bus. Het I²C-concept De I²C-bus ondersteunt IC's van de logische families. Twee leidingen, SDA (Serial DAta) en SCL (Serial CLock), verzorgen de uitwisseling van informatie. Iedere

Nadere informatie

De AT90CAN microprocessor van ATMEL in de motorvoertuigentechniek (8)

De AT90CAN microprocessor van ATMEL in de motorvoertuigentechniek (8) De AT90CAN microprocessor van ATMEL in de motorvoertuigentechniek (8) 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

Modem en Codec. Telematica. Amplitude-modulatie. Frequentie-modulatie. Soorten modems. Fase-modulatie

Modem en Codec. Telematica. Amplitude-modulatie. Frequentie-modulatie. Soorten modems. Fase-modulatie Modem en Codec Telematica Data Transmissie (Fysieke laag) Hoofdstuk 6 t/m 8 Een modem gebruikt analoge signalen om digitale signalen te versturen Een codec gebruikt digitale signalen om analoge signalen

Nadere informatie