Det finns en hemsida. Adressen är http://www.idt.mdh.se/kurser/ct3760/



Relevanta dokument
Moment 2 - Digital elektronik. Föreläsning 1 Binära tal och logiska grindar

Digital elektronik CL0090

HF0010. Introduktionskurs i datateknik 1,5 hp

Struktur: Elektroteknik A. Digitalteknik 3p, vt 01. F1: Introduktion. Motivation och målsättning för kurserna i digital elektronik

General Purpose registers ALU I T H S V N Z C SREG. Antag att vi behöver skriva in talet 25 till register R18

0.1. INTRODUKTION Instruktionens opcode decodas till en språknivå som är förstålig för ALUn.

Grundläggande datavetenskap, 4p

A-del motsvarande KS1

Adderare. Digitalteknik 7.5 hp distans: 4.6 Adderare 4.45

Datormodell. Datorns uppgifter -Utföra program (instruktioner) Göra beräkningar på data Flytta data Interagera med omvärlden

DIGITALA TAL OCH BOOLESK ALGEBRA

T1-modulen Lektionerna Radioamatörkurs OH6AG OH6AG. Bearbetning och översättning: Thomas Anderssén, OH6NT Heikki Lahtivirta, OH2LH

Grunderna i stegkodsprogrammering

Laboration Kombinatoriska kretsar

Elektroteknik MF1016 föreläsning 9 MF1017 föreläsning 7 Mikrodatorteknik

Datorteknik. Den digitala automaten. En dator måste kunna räkna! Register och bussanslutning

F2 Binära tal EDA070 Datorer och datoranvändning

Adderare. Digitalteknik 7.5 hp distans: 4.6 Adderare 4.45

Laboration Kombinatoriska kretsar

Datorsystem 2 CPU. Förra gången: Datorns historia Denna gång: Byggstenar i en dators arkitektur. Visning av Akka (för de som är intresserade)

Digital- och datorteknik

F2 Datarepresentation talbaser, dataformat och teckenkodning EDAA05 Datorer i system! Roger Henriksson!

Minnen delas in i två huvudgrupper, permanenta och icke permanenta. Non-volatile and volatile.

Grundläggande digitalteknik

Digital- och datorteknik

Föreläsning 3.1: Datastrukturer, en översikt

Datorteknik. Tomas Nordström. Föreläsning 2. För utveckling av verksamhet, produkter och livskvalitet.

Talsystem Teori. Vad är talsystem? Av Johan Johansson

Mattias Wiggberg Collaboration

Digital Aritmetik Unsigned Integers Signed Integers"

Moment 2 Digital elektronik. Föreläsning Inbyggda system, introduktion

Digitalteknik EIT020. Lecture 15: Design av digitala kretsar

Programräknaren visar alltid på nästa instruktion som skall utföras. Så fort en instruktion har hämtats så visar programräknaren på nästa instruktion.

Digital- och datorteknik

Högskolan i Halmstad Digital- och Mikrodatorteknik 7.5p. Lista på registeruppsättningen i PIC16F877A Datablad TTL-kretsar 74-serien

Lista på registeruppsättningen i PIC16F877A Datablad TTL-kretsar 74-serien

2-14 Binära talsystemet-fördjupning Namn:

F5 Introduktion till digitalteknik

Övning1 Datorteknik, HH vt12 - Talsystem, logik, minne, instruktioner, assembler

SVAR TILL TENTAMEN I DATORSYSTEM, VT2013

Dataminne I/O Stack 0x005D 0x3D SP low byte 0x005E 0x3E SP high byte

TENTAMEN Datorteknik (DO2005) D1/E1/Mek1/Ö1

Digital- och datorteknik

Digitala Projekt (EITF11)

Kontrollskrivning Mikrodatorteknik CDT S2-704

c a OP b Digitalteknik och Datorarkitektur 5hp ALU Design Principle 1 - Simplicity favors regularity add $15, $8, $11

Programmerbar logik. Kapitel 4

F2 Datarepresentation talbaser, dataformat och teckenkodning

Kursplan för ENK Mikroprocessorteknik A

Datorsystemteknik DAV A14 Föreläsning 1

Programmeringsteknik med C och Matlab

Att använda pekare i. C-kod

TSEA22 Digitalteknik 2019!

Datorteknik Övningsuppgifter

Övning1 Datorteknik, HH vt12 - Talsystem, logik, minne, instruktioner, assembler

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program

Provmoment: Ladokkod: Tentamen ges för: Tentamen TE111B El3. Namn: Personnummer: Tentamensdatum: Tid: 14:00-18:00.

Förenklad förklaring i anslutning till kompedieavsnitten 6.3 och 6.4

Hanne Solem Görel Hydén Sätt in stöten! MATEMATIK

MIKRODATORTEKNIK 2012 INNEHÅLLSFÖRTECKNING

Datorteknik. Den digitala automaten. En dator måste kunna räkna! Register och bussanslutning

Datorsystem. Exempeltentamen

Processor pipelining genom historien (Intel i9-intel i7)

2-5 Decimaltal Namn: Inledning. Vad är ett decimaltal, och varför skall jag arbeta med dem?

Talrepresentation. Heltal, positiva heltal (eng. integers)

Digitalitet. Kontinuerlig. Direkt proportionerlig mot källan. Ex. sprittermometer. Elektrisk signal som representerar ljud.

Kapitel Beräkningar med binära, oktala, decimala och hexadecimala tal

Så här fungerar datorer Baserad på T-J Hallbergs minimalmaskin Högskolan i Jönköping/JTH Ragnar Nohre

Per Holm Lågnivåprogrammering 2014/15 24 / 177. int och double = = 2, 147, 483, 647

Tentamen i. för D1 m fl, även distanskursen. fredag 13 januari 2012

Lösningar till tentauppgifterna sätts ut på kurssidan på nätet idag kl 19. Omtentamen i Programmering C, 5p, fristående, kväll,

Ansvarig lärare: Olof Andersson, Telefon (besöker skrivsalen)

System S. Datorarkitektur - en inledning. Organisation av datorsystem: olika abstraktionsnivåer. den mest abstrakta synen på systemet

Datorsystem. Övningshäfte. Senast uppdaterad: 22 oktober 2012 Version 1.0d

Vår väg till Godkänt, och sedan vidare...

Tentamen Datorteknik D del 2, TSEA49

EDA215 Digital- och datorteknik för Z

Grundläggande Datorteknik Digital- och datorteknik

Beskrivning av porthantering i mikroprocessorn SAM3U som används på vårt labkort SAM3U- EK.

IE1205 Digital Design: F6 : Digital aritmetik 2

En ideal op-förstärkare har oändlig inimedans, noll utimpedans och oändlig förstärkning.

Digital- och datorteknik

Programmera i C Varför programmera i C när det finns språk som Simula och Pascal??

Binär addition papper och penna metod

a), c), e) och g) är olikheter. Av dem har c) och g) sanningsvärdet 1.

Bonusmaterial till Lära och undervisa matematik från förskoleklass till åk 6. Ledning för att lösa problemen i Övningar för kapitel 5, sid

Datoraritmetik. Binär addition papper och penna metod. Binär subtraktion papper och penna metod. Binär multiplikation papper och penna metod

Kommentarmaterial, Skolverket 1997

Microprocessor / Microcontroller. Industrial Electrical Engineering and Automation

Grundläggande programmering med C# 7,5 högskolepoäng

DIGITALTEKNIK. Laboration D173. Grundläggande digital logik

Datorarkitektur. Informationsteknologi sommarkurs 5p, Agenda. Slideset 3

D0013E Introduktion till Digitalteknik

2-1: Taltyper och tallinjen Namn:.

Design av digitala kretsar

Styrteknik: MELSEC FX och numeriska värden

Tenta i Digitalteknik

Föreläsningsanteckningar 2. Mikroprogrammering I

Försättsblad till skriftlig tentamen vid Linköpings Universitet

Laboration 6. A/D- och D/A-omvandling. Lunds universitet / Fakultet / Institution / Enhet / Dokument / Datum

Transkript:

CT3760 Mikrodatorteknik Föreläsning 1 Torsdag 2005-08-25 Upprop. Det finns en hemsida. Adressen är http://www.idt.mdh.se/kurser/ct3760/ Kurslitteratur är Per Foyer Mikroprocessorteknik. Finns på bokhandeln. På hemsidan finns också dokument om mikrocontrollern Atmel ATmega16. Vi kommer att ha två stycken kontrollskrivningar. Godkända kontrollskrivningar och godkända laborationer ger betyget tre. Vill man ha högre betyg, och eller om man blivit underkänd på någon kontrollskrivning får man tentera. Godkänd kontrollskrivning gäller bara första tentamenstillfället efter kursen. Vid omtentamen måste man tentera hela kursen. Kursen handlar om microcontroller i allmänhet och speciellt om Atmel ATmega16. Labkortet är STK 500 Vi kommer att behandla binära tal och tvåkomplement. Logiska operatorer och även begreppet bitvisa operatorer. Vi kommer att behandla olika sätt att bygga en mikroprocessor, minnestyper och bussar. Delar i en mikrocontroller respektive en mikroprocessor. Assembler och simuleringsprogrammet AVR Studio. Vi kommer också att ta upp C-programmering. Vi kommer att ta upp PWM puls-vidd-modulering. A/D-omvandling. Timerfunktionen och avbrottshantering. 2005-08-25 H:\CT3760\Period1_2005\F1.doc 1/9

Binära tal LSB står för Least Significant Bit MSB står för Most Significant Bit LSB är den position som har minst betydelse för hur stort talet är. Om man bara behandlar heltal är det siffran längst till höger. MSB är den position som har störst betydelse för hur stort talet är. Exempel. Decimaltal 345886 Sexan står i LSB positon. En förändring av sexan från 6 till 5 ändrar talet med en enhet. Trean står I MSB position, en förändring här från tre till fyra gör att talet blir 100000 gånger större. Vårt decimalsystem är uppbyggt som ett positionssystem med tio symboler. Vi kallar dessa symboler siffror. Basen är tio. Antalet symboler är detsamma som basen. Binära tal har basen två, och alltså finns det två symboler 0 och 1. Det som gör binära tal användbara är att det är lätt att översätta noll och ett till spänningsnivåer. Vanligen är noll lika med noll volt eller jordpotential. Ett får vara lika med en matnigsspänningen. Det behöver inte vara + 5 V, även om det är vanligast. Det finns elektronik som är byggd för 3,3 V och även andra spänningar. Då man anger en storhet med ett binärt tal får man som regel många siffror. Talet 100 uttryckt i binär form blir 110 0100. Detta är svårläst. För att lättare kunna läsa talen använder man sig av det hexadecimala talsystemet. Hexadecimala tal har basen 16. Alltså finns 16 symboler. 0 till 9 samt bokstäverna A till F. Transformering mellan binära tal och hexadecimala är mycket enkel. Man grupperar det binära talet med fyra siffror i varje grupp, och översätter. Så här går det till: 1100100 börja med LSB-biten 110 0100 110 motsvarar 6 och 0100 motsvarar 4. Motsvarande hexadecimala tal blir 64. För att vara tydlig skrivs detta som 64 16 eller 64 hex. I assembler 0x64 eller $64. (Jämför också med C-programmering, placeholder för hex-tal %x ) Ett exempel till. Det decimala talet 300 i binär form är 100101100. Gruppering ger 1 0010 1100 Hexadecimalt 1 2 C Från hexadecimalt till binärt är lika enkelt. Hexadecimalt 1234 blir 0001 0010 0011 0100 Hexadecimalt ACDC blir 1010 1100 1101 1100 2005-08-25 H:\CT3760\Period1_2005\F1.doc 2/9

Negativa tal Inom digitaltekniken använder man sig av två nivåer. Ett och noll. Det kan också uttryckas som: sant eller falskt, spänning eller icke spänning. Man har inget tredje alternativ. Det finns inget som kan säga att en storhet är negativ. Detta måste anges på något annat sätt. Vanligtvis använder man tvåkomplement för att ange negativa tal. Tvåkomplementmetoden använder sig av det faktum att det är mycket lätt att göra en invertering. Det är lätt att göra om en ett till en nolla och omvänt. Detta räcker inte för att få ett negativt tal, utan man måste alltid addera en etta. Då man anger tal som tvåkomplement kommer ett positivt tal alltid att börja med en nolla och ett negativt tal börjar alltid med en etta. Betrakta de två decimala talen 011 och 11. Vi säger att båda representerar talet elva. Om de är binära tal utan teckenbit är talen lika och har värdet tre. Betraktar vi dem soml tvåkomplement tal så betyder det första talet betyda plus tre och det andra minus ett. Viktigt. När man arbetar med tvåkomplemental måste samtliga bitar anges. Även om man har inledande nollor. För fyra bitar gäller följande tabell: Negativa Positiva Bin Decimalt 1000-8 1001-7 1010-6 1011-5 1100-4 1101-3 1110-2 1111-1 0000 0 0001 1 0010 2 0011 3 0100 4 0101 5 0110 6 0111 7 Har man fyra bitar kan man ange tal inom intervallet -8 till +7 Har man åtta bitar kan man ange tal inom intevallet -128 till + 127 Jämför med datatyperna i C-språket Så länge som resultatet av en beräkning hamnar inom talområdet är resultatet korrekt. 2005-08-25 H:\CT3760\Period1_2005\F1.doc 3/9

Addering Från kursen i digitalteknik känner vi till att man kan bygga kretsar med hjälp av logiska grindar. Exempelvis kan man bygga en komponenten för addering. Nedan visas en heladderare. Tre insignaler och två utsignaler. x 0 y 0 c 1 c 0 x 0 y 0 Summa s 1 s 0 0 0 0 0 1 1 1 0 1 1 1 1 0 s 0 Tabellen visar resultatet av x0 + y0.summan hamnar i samma position som de tal som adderas. Bildas det en minnessiffra förs den över till nästa position. s 1 är c 1. Här visas hur man kopplar ihop fyra st heladderare för att addera fyra-bitars tal. x 3 y 3 x 2 y 2 x 1 y 1 x 0 y 0 c 4 c 3 c 2 c 1 c 0 s 3 s 2 s 1 s 0 Detta är addition. För att även kunna göra subtraktion tillfogar man fyra xor-grindar. XOR gör att ett tal kan inverteras. x 3 y 3 x 2 y 2 x 1 y 1 x 0 y 0 +/- =1 =1 =1 =1 c 4 c 3 c 2 c 1 c 0 s 3 s 2 s 1 s 0 Nu har vi en uppkoppling som kan addera två tal, x+y. Den linje som är kraftigt markerad representerar en nolla. Talen x och y adderas. Kopplingen kan också utföra subtraktionen x-y. När den linje som är kraftigt markerad representerar en etta utförs 2005-08-25 H:\CT3760\Period1_2005\F1.doc 4/9

en subtraktion. XOR-grindarna gör en invertering av y. En etta läggs till i LSB positionen via carry in c 0. Genom att koppla ihop åtta st så kan man hantera en byte. Talen x och y lagras i minnesceller. Dessa minnesplatser kallas register. Resultatet kan placeras i ett annat register eller återföras till något register på ingången. Atmega16 innehåller 32 register som kan användas för att hantera tal. Dessa register benämns R0 till R31 De sex översta kan kopplas ihop för att kunna hantera tal på 16 bitar istället för 8. Vi har också en kontrollsignal, rutan som är betecknad med +/-. Med hjälp av den ställer man in funktionen. Antingen addition eller subtraktion. Ett litet problem Vart tar c 4 vägen? Eller c 8 om man har en hel byte? Svar, den lagras i ett register. Detta register kallas statusregister. SREG som består av en byte. C SREG Det kan också vara intressant att markera att resultatet blev noll. Det finns en plats i statusregistret för detta också. Z SREG Blev resultatet negativt? Markeras också i statusregistret. Har vi kommit utanför talområdet? N SREG V SREG Har vi fått en carry när vi adderat de fyra minst signifikanta bitarna? Detta kallas half-carry. H SREG 2005-08-25 H:\CT3760\Period1_2005\F1.doc 5/9

ALU Den enkla adderaren som jag skissat ovan kan byggas ut så att den kan göra ett antal olika aritmetiska och logiska operationer. Enheten kallas då ALU. Arithmetic Logic Unit. Beroende på instruktion så kan man utföra addition, subtraktion, öka ett register med ett, minska ett register med ett, logiskt AND, OR, XOR med mera. För varje operation som utförs så uppdateras SREG. En eller flrea bitar i registret påverkas. General Purpose registers R0 R25 X ( R27 : R26 ) Y ( R29 : R28 ) Z ( R31 : R30 ) ALU I T H S V N Z C SREG 2005-08-25 H:\CT3760\Period1_2005\F1.doc 6/9

Logiska operatorer Vi har ett litet program i C. #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { int x = 23, y =11, enkel, dubbel; printf(" x is %d\n",x); // x is 23 printf(" x is %o\n",x); // x is 27 oktal representation printf(" x is %x\n",x); // x is 17 hexadecimalt printf(" y is %x\n",y); // y is b enkel = x&y; dubbel = x&&y; printf("enkel blir %d\n",enkel); // enkel blir 3 printf("dubbel blir %d\n",dubbel); // dubbel blir 1 system("pause"); return 0; } x och y är decimala heltal. Talet x skrivs ut på tre olika sätt. Som decimaltal, som oktalt tal med basen 8, samt som ett hexadecimalt tal. I C-kursen behandlade vi logiskt AND. Med det menar man att om x är sann OCH y är sann så är x AND y sant. Med sant förstås att värdet inte är noll. Logiskt AND skrivs som &&. Skriver man bara ett &-tecken blir resultatet annorlunda. Den logiska operationen utförs bitvis. variabel Decimalt Hex Binärt x 23 17 1 0111 y 11 b 0 1011 x & y 0 0011 3 Motsvarande gäller för OR 2005-08-25 H:\CT3760\Period1_2005\F1.doc 7/9

CPU En processor innehåller en CPU. En kärna där data hanteras. AVR CPU består av de block som ligger innanför den prickade linjen. Program Flash och SRAM hör inte till det som kallas CPU. Det finns två huvudtyper av datorer. Von Neuman-modellen och Harvardmodellen. Skillnaden ligger i hur program och data hanteras. Harvard von Neuman adress adress CPU Program minne Data minne CPU Program och data minne data data Då man använder Harvard-arkitekturen kan man använda olika typer av minne för program och data. Dataminnet behöver inte vara lika snabbt som programinnet. Harvard-modellen används bl.a. i AVR-processorer och i PIC-processorer. Von Neuman används i Intel 80x86 och Motorola 68xx. 2005-08-25 H:\CT3760\Period1_2005\F1.doc 8/9

CISC och RISC Instruction Decoder bestämmer vad och hur CPU skall arbeta. Varje processor har en uppsättning instruktioner som kan utföras. CISC betyder Complex Instruction Set Computer. Man skaffade sig många olika instruktioner. Motorola:s microcontroller har exempelvis17 olika instruktioner för att göra en AND. Totalt finns 209 olika instruktioner. En instruktion tar mellan 1 och 10 klockcykler att utföra. De vanligaste tar 3 4 klockcykler. RISC betyder Reduced Instruction Set Computer. Som namnet antyder, färre instruktioner. De flesta instruktionerna tar en klockcykel att utföra. AT mega 16 har 130 olika instruktioner. De flesta utförs på en klockcykel. Några av PIC- processorerna från Microchip har ännu färre instruktioner. 31 st. Det är alltid en avvägning hur många istruktioner som skall finnas. Antag att en CISC-maskin har en instruktion för heltalsdivision. Denna tar 64 klockcykler att utföra. För att göra samma sak på en RISC-maskin, som saknar motsvarande instruktion, måste man skriva en liten rutin som gör samma sak. Man kommer då att använda ett antal instruktioner som tar 1 2 klockcykler. RISC-maskinen är effektivare om programmeraren kommer under 64 klockcykler. AVR processorerna är RISC-maskiner byggda enligt Harvard-principen. 2005-08-25 H:\CT3760\Period1_2005\F1.doc 9/9