Digitala projekt rapport

Relevanta dokument
Digitala Projekt - Snake Grupp - 7. Erik Ljung, d01elj Erik Simmons, d01es 25 maj 2005

Labyrintspelet EDI021 Grupp 5

Digitala Projekt Konstruktion av Tamagocchi. Av: Oskar Andersson D05 & Danial Rehman D05

Innehållsförteckning. Figur- och tabellförteckning. Figure 1 Blockschema över hårdvaran...4 Figure 2 Blockschema över programet...

Department of Information Technology Digitala projekt. SuperKull. Daniel Öhman Alexander Persson

Snake. Digitala Projekt (EITF11) Fredrik Jansson, I-12 Lunds Tekniska Högskola,

DEPARTMENT OF INFORMATION TECHNOLOGY. Digitala Projekt. Redovisning av Projekt - Grupp 14

PlantPuppy Räddaren för den som inte kan hålla växterna vid liv

Övervakningskamera Digitala projekt 2006

DIGITALA PROJEKT Väderstation

Spotlight. EDI022 - Digitala Projekt SK. Fredrik Svensson Hans Månsson. Handledare: Bertil Lindvall

Digitala projekt, EDI021 Rapport Handledare: Bertil Lindvall

Temperaturmätare med lagringsfunktion DIGITALA PROJEKT EITF11 GRUPP 14, ERIK ENFORS, LUDWIG ROSENDAL, CARL MIKAEL WIDMAN

RemoteBud. Inlämnas: Patrik Johnsson, e01pjo Viktor Karlsson, e01vk

Digitala Projekt (EITF11)

F8: Undantagshantering

Formula Blue. Digitala Projekt 8p. Jesper Ferm E02 Carl Hakenäs E04

Laboration 5. Temperaturmätning med analog givare. Tekniska gränssnitt 7,5 p. Förutsättningar: Uppgift: Temperatur:+22 C

Gustaf Backman, Anton Nystedt, Nicholas Peebo Battleships. Lunds tekniska högskola. EITF11 Digitala projekt

Rapport Digitala Projekt EITF11 Grupp 4 Axel Sundberg, Jakob Wennerström Gille Handledare: Bertil Lindvall

Projektrapport i Digitala System

Innehåll. 1 Inledning 3

HOWTO: HDD Clock. 1 Översikt. Eller: hur man gör en HDD klocka. Peter Faltpihl & Gustav Andersson. Linköpings Universitet, Norrköping

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

Effektpedal för elgitarr

Pulsmätare med varningsindikatorer

Digitala Projekt VT13. PING-Pong

Temperaturregleringssystem

Digitala Projekt(EITF40) - Larm

Digitala projekt - Radiostyrd bil

DAT 015 Maskinorienterad programmering 2010/2011. Uppbyggnad_och_funktion.pdf

Projektarbete. Nummerpresentatör

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

Föreläsningsanteckningar till Konstruktionsmetoder

Project Echelon EDI021 Digitala Projekt lp2 HT03

Enchipsdatorer med tillämpningar LABORATION 7, ROBOT

Programmera i teknik - kreativa projekt med Arduino

AVR 3 - datorteknik. Avbrott. Digitala system 15 hp. Förberedelser

Digital- och datorteknik

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

PROGRAMMERING AV MCU LABORATION6. Laborationens syfte

Digital och Datorteknik EDA /2011. EDA 451 Digital och datorteknik 2010/2011. Uppbyggnad_och_funktion.pdf

Digitala projekt Konstruktion av nummerpresentatör

DigiRuler Digitala Projekt 2005

Projekt EITA15. Väckarklocka. LTH Ingenjörshögskolan vid Campus Helsingborg Datateknik

Avbrottshantering. Övningsuppgifter

Digital Projekt EDI 021 Konstruktion av talande nummerpresentatör VT1 2004

Växtviskaren EITF11 Digitala projekt VT15, I12

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

Styrteknik distans: Minneselement, register, räknare, AD-omv D4:1

D/A- och A/D-omvandlarmodul MOD687-31

Konstruktion av en radiostyrd legobil. Digitala projekt av Arbon Vata Leonardo Vukmanovic Amid Bhatia

LARMANLÄGGNING. Digitala Projekt, EITF11. Oskar von Knorring Emin Karimov Henrik Akej Handledare: Bertil Lindvall

Läsminne Read Only Memory ROM

Grafik. För enklare datorsystem

TEMPERATUR OCH VINDMÄTARE MED HÖGTALARFUNKTION

Övningsuppgifter i Mikrodatorteknik 4p/5p

Mekanisk solros, Digitala projekt(edi021) Kristoer Nordvall, Stefan Windfeldt, Inlämmnad: 4 december 2006

TETRIS. LTH, Campus Helsingborg EITA15 Digitala System

Instruktion för I/O-Kort, med USB-anslutning.

Datorsystemteknik DAV A14 Föreläsning 1

Exempeluppgift i Logikstyrning. 1 Inledning. 2 Insignaler och utsignaler

Grafiska pipelinens funktion

Digitalteknik EIT020. Lecture 15: Design av digitala kretsar

Tentamen i Digitalteknik, EIT020

Vad är en UART? Universal Asynchronous Receiver Transmitter parallella seriella parallell åttabitars signal mest signifikant bit

Adressrum, programmerarens bild

Minneselement,. Styrteknik grundkurs. Digitala kursmoment. SR-latch med logiska grindar. Funktionstabell för SR-latchen R S Q Q ?

Ett minneselements egenskaper. F10: Minneselement. Latch. SR-latch. Innehåll:

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

SMS-Relay. Digital Projects Lund University, Faculty of Engineering. Lund Supervisor: Bertil Lindvall

Vad är kommunikation? Vad är datorkommunikation? Dataöverföring; Inledning

Grafik. För enklare datorsystem

2 UPPBYGGNAD OCH FUNKTION

Grundläggande A/D- och D/A-omvandling. 1 Inledning. 2 Digital/analog(D/A)-omvandling

Talsystem Teori. Vad är talsystem? Av Johan Johansson

Systemkonstruktion SERIEKOMMUNIKATION

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

HF0010. Introduktionskurs i datateknik 1,5 hp

The Secure Light. Digitala Projekt EITF11. Hanna Tinglöf, I-12 Anna Horvath, I-12 Filippa Österlin, I-12. Handledare: Bertil Lindvall

Whac A mole. Ett rektionstest i kursen Digitala Projekt EITF11 utfört av: Axel Spångberg I10 Marcus Witting I10. Handlett av: Bertil Lindvall

Procedurell renderingsmotor i Javascript och HTML5

Digitalt eller Analogt

Pulsmätare Digitala Projekt EITF11

A-del motsvarande KS1

Minnen. Informationsteknologi sommarkurs 5p, Agenda. Slideset 4

Tetris By Tobbe. EDI021 Digitala Projekt. Tobbe Lundberg Handledare: Bertil Lindvall. Lund, Mars 2009

Accelerometer. Rikard Ekström Mattias Kindborg. Informationsteknologi Lunds Universitet

EDI021 Digitala projekt. Rapport LARMSYSTEM. Utförd av: Niklas Eklund E03 David Olsson E04. Inlämnad:

Sekvensnät i VHDL del 2

LABORATION. Datorteknik Y

Institutionen för elektro- och informationsteknologi, LTH

Datorteknik. Föreläsning 5. Realtidssystem och realtidsprogrammering. Institutionen för elektro- och informationsteknologi, LTH.

Digital- och datorteknik

Digital- och datorteknik

Normer: EMC: EN , EN LVD: EN Matning:

Elektro och Informationsteknik LTH. Laboration 6 A/D- och D/A-omvandling. Elektronik för D ETIA01

Adressavkodning - busskommunikation

Exempel på LAX-uppgifter

Dataöverföring på Parallell- och serieform MOP 11/12 1

Transkript:

Digitala projekt rapport Alexander Westrup, d04aw@student.lth.se Martin Sandgren, d04ms@student.lth.se 4 december 2007

Innehåll 1 Abstract 1 2 Inledning 1 3 Arbetsgång 1 4 Hårdvara 1 4.1 Processor............................... 1 4.2 Klocka................................. 1 4.3 SRAM................................. 2 4.4 EPROM................................ 2 4.5 Batron / Skärm............................ 2 4.6 Logik................................. 2 4.7 Räknare................................ 3 4.8 Latchar - Lysdioder......................... 3 4.9 A/D-omvandlare........................... 3 5 Mjukvara 3 5.1 Huvudprogram............................ 3 5.1.1 Bitmasken Bertil....................... 3 5.2 Avbrott................................ 4 5.2.1 A/D-omvandlare....................... 4 5.2.2 Räknare............................ 4 6 Slutsats 5 A Kopplingschema 5

1 Abstract Denna rapport är till kursen EDI021 Digitala Projekt om vårt projekt Bitmasken Bertil. Projektet innefattar konstruktion av både hårdvara och mjukvara. I rapporten går vi igenom alla hårdvarukomponenter som ingår i vår konstruktion och hur vår mjukvara är uppbyggd för att arbeta med hårdvaran. Under kapitlet 5.1 går vi igenom extra intressanta mjukvarulösningar. 2 Inledning Vårt syfte med detta projekt var att göra något häftigt. Vi snöade snabbt in på något sorts spel och beslöt oss tillslut att göra ett Snake-liknande spel. Vi valde att jobba med Motorola 68008 därför att vi ville få en bred kunskap över hela konstruktionsarbetet. Under projektets gång har vi stött på en hel del problem, men med hjälp av andra har vi tagit oss igenom allihop och resultatet blev över förväntan. Vi ck ett roligt spel med många features, t.ex. så har vi stöd för joysticks och animerad grak. 3 Arbetsgång Vår första uppgift var att komma på en ide för projektet. Därefter utvecklade vi hårdvaran genom att först designa hur alla komponenter är kopplade och kommunicerar med varandra och sedan sätta fast alla komponenter och vira all tråd mellan dem. Sista steget i hårdvarukonstruktionen var att testa att allt funkade som det var tänkt. Mjukvaran var tänkt att utvecklas parallellt men alla problem med hårdvaran gjorde att vårt fokus var på den. Utvecklingen av mjukvara gick snabbare än väntat så att vi kunde lägga in lite häftiga saker. 4 Hårdvara 4.1 Processor Processorn är en Motorola på 8 Mhz, den har en databus på 8 bitar samt en adressbus på 20 bitar. Detta innebär att processorn har 1 Mb adresseringsutryme som kan användas till externa komponenter. Eftersom processorn är en assynkron processor så måste alla assynkrona periferienheter skicka DTACK när enheten är klar. Processorn kan ta emot 2 nivåers avbrott, vi använder dessa för vår A/D-omvandlare och räknade. 4.2 Klocka Klockan vi använder är en exo 3 som har en grundfrekvens på 16 khz. Man kan dock inte få ut detta utan bara fraktioner. Till vår krets använder vi 8 khz. Denna signal går in i processorn samt skärmens synkroniseringsmodul. För att 1

Figur 1: Synkroniseringsmodul till skärmen driva de esta andra periferienheter används signalen E från processorn, den är på 800Hz. 4.3 SRAM Vårt SRAM på 8 kbyte är det minne i vår krets som innehåller stacken och variabler som programmet använder under körning. Minnet nollställs vid frånvarande av ström. 4.4 EPROM EPROMet är en minnesmodul på 32 kbyte vars uppgift är att lagra all statisk information såsom programkod, statiska variabler och div. dataobjekt t.ex. bilder. Vi valde en EPROM med en kapacitet på 32 kbyte då våra bilder för helskärm har vardera en storlek på 1 kbyte. 4.5 Batron / Skärm Vår skärm är en liten monokron LCD på 128x64 pixlar. Den har ett inbyggt minne som är 1 kbyte stort där skärmbilden sparas. En väsentlig del för att få skärmen att fungera korrekt är dess synkroniseringsenhet. Från denna enhet använder vi signalen VPA för att sätta processorn i synkront läge. SCSDISP skickas vidare till vår logikkrets som gör att vi kan skicka synkrona Chip Select till skärmen, se gur 1. Eftersom denna enhet alltid körs i synkront läge behöver den inte generera DTACK till processorn. 4.6 Logik I vår krets använder vi två stycken logikkretsar, en ansvarar för Chip Select för I/O-enheter och den andra har mest hand om avbrott. Kretsarna programmeras med boolsk logik i särskilda ler som sedan skrivs till kretsen av speciella verktyg. 2

4.7 Räknare Vår räknare är en 14-bitars räknare som har processorns E-signal som klocka. Ut ur räknaren tar vi signaler till avbrott och som startpuls till vår A/Domvandlare. Räknaren nollställs via logiken för att få en fördröjning. 4.8 Latchar - Lysdioder Latchen har till uppgift att hålla värden under körning. Vår latch är kopplad till lysdioderna och bestämmer vilka som ska lysa. Eftersom det är dioder på utgångarna så har vi kopplat på sådant sätt att latchen aldrig behöver använda sin tristate-funktionalitet. För att lamporna inte ska överbelastas använder vi ett motståndsnät. 4.9 A/D-omvandlare Vår A/D-omvandlare har 8 kanaler och omvandlar med 8 bitars upplösning. Utav de åtta kanaler som nns används endast fyra kanaler, två för varje joystick. För att starta en omvandling skriver man till den kanalen man avser. När en omvandling är klar skickas ett avbrott till avbrottslogiken och då kan man läsa av databussen. För att A/D-omvandlaren inte ska ta all processorkraft har vi valt att sänka dess klocka. Detta medför att vi i vårt program kan starta en omvandling och direkt när vi läst av värdet, starta nästa omvandling. 5 Mjukvara För att kommunicera med hårdvaran så har varje periferienhet en egen adress, denna adress är mappad i logiken. I vårt program har vi ett huvudprogram och två avbrottsrutiner. 5.1 Huvudprogram För att kunna köra spelet har vi implementerat många funktioner bl.a. funktioner för att rensa skärmen, rita hårdkodade bilder och rita ut enskilda pixlar. För att få en jämn och n rörelse i spelet har vi valt att implementera Fixed point-aritmetik, vilket innebär att masken har koordinater innanför en enskild pixel. För att kunna utnyttja att joystickarna är analoga och ger olika utslag beroende på hur mycket man drar, så har vi implementerat sinus- och cosinustabeller med 64 olika vinklar på 360. Tack vare detta kan vi kontrollera att masken aldrig åker mer än 1 längdenhet i taget även om masken åker diagonalt, se gur 2. 5.1.1 Bitmasken Bertil Innan spelet startar så nollställs skärmen och liven till vardera spelare sätt till fyra. Därefter börjar spelet och under en spelcykel händer följande: 3

Figur 2: Ny position på subkoordinater 1. Programmet väntar på avbrott från klockan. 2. Spelarens nya riktning hämtas från tabellerna utifrån vinkeln på joysticken. 3. Den nya positionen räknas ut och motsvarande pixel fylls i om spelarens position är på en nya pixel. 4. Om pixeln redan är utritad så har spelaren krockat, då dras ett liv från spelaren och en ny omgång startar. Om spelaren inte har er liv så avslutas spelet. 5.2 Avbrott Avbrotten körs oberoende från main-funktionen och kallas på av processorn när den får externa vektoriserade avbrott. 5.2.1 A/D-omvandlare När denna anropas så läses A/D-omvandlaren av och sparar värdet hos korrekt spelare och axel. Därefter startas direkt en ny omvandling på nästa kanal. Detta medför att vi alltid har uppdaterade variabler då A/D-omvandlaren körs era gånger i sekunden. 5.2.2 Räknare Detta avbrotts enda uppgift är att kontinuerligt avbryta programmet för att signalera ny uppdatering. 4

6 Slutsats Under vårt projekt har en del större och en massa mindre problem dykt upp. Av varenda en av dessa har vi lärt oss en massa. Som datavetare är vår vanliga miljö mjukvaran men under detta projekt har vi fått en god förståelse även för hur hårdvaran fungerar. Det största problemet vi hade var nog att vi saknade den övergripande förståelsen för hur allt hänger ihop hårdvarumässigt, detta medförde att vi hade svårt att veta vilka signaler som skulle gå vart och detta tog extra lång tid. Projektet har varit väldigt roligt och inspirerande och vi kommer att rekommendera den till alla som frågar. Som tack för den utomordentliga hjälp vår handledare (med kollegor) har gett oss under hela projektet så har vi namngett vårt eminenta spel efter honom, Bitmasken Bertil. A Kopplingschema 5