Design av inbyggda system

Relevanta dokument
Design av inbyggda system

Design av inbyggda system

Design av inbyggda system. Innehåll. Hårdvarunära design. Hårdvarunära design. Hårdvarunära design. Hårdvarunära design TDD

Design vid utveckling av inbyggda system

Design av inbyggda system

Goda råd till de som ska utföra ett liknande projekt (från KMM 2016)

Digitala Projekt (EITF11)

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

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

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

Program & programmering

Digitalt lärande och programmering i klassrummet

Enchipsdatorer med tillämpningar LABORATION 7, ROBOT

Före Kravspecifikationen

TETRIS. LTH, Campus Helsingborg EITA15 Digitala System

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

Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic

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

Laboration 4: Knappstuds Drivrutiner för att eliminera störningar.

Pulsmätare med varningsindikatorer

Bilen som inte kan krocka

Rapport. Fyra i rad-spel. Rapport Digitala Projekt EITF11 Grupp 9 Emma Rasmusson & Louise Ragnarsson Handledare: Bertil Lindvall

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

Bruksanvisning KABA MAS AUDITCON KABA MAS HAMILTON Modell 100, 200, 400, 50 och 52

Växtviskaren EITF11 Digitala projekt VT15, I12

Fö 5+6 TSEA81. Real-time kernel + Real-time OS

Projektlaboration 4, synkronisering av klockan

Digitala Projekt(EITF40) - Larm

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

Scratch Junior. makeandshape.com. by MIT. Gränssnitt Scratch Junior

Alla datorprogram har en sak gemensam; alla processerar indata för att producera något slags resultat, utdata.

Det är principer och idéer som är viktiga. Skriv så att du övertygar examinatorn om att du har förstått dessa även om detaljer kan vara felaktiga.

Thunder s Truck projektrapport

Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp

Välkomna till KMM! KMM. KMM - lärandemål Efter fullgjord kurs ska ni bland annat kunna:

Hjälpmedel: Appendix A. VHDL-syntax. (bifogas detta prov) Appendix B.2. IEEE-package (bifogas detta prov)

The Intelligent Timer

Välkomna till KMM! KMM. KMM - lärandemål Efter fullgjord kurs ska ni bland annat kunna:

KOMPLETTERANDE HEMTENTAMEN TDDB53

Om NXTprogrammering. Vad är MINDSTORMS NXT? Vad är MINDSTORMS NXT? Vad är MINDSTORMS NXT? Vad är MINDSTORMS NXT? Vad är MINDSTORMS NXT?

TPFD - TestPlan Före Design BESKRIVNING AV AKTIVITETER

Digitala projekt - Radiostyrd bil

Digitala projekt Linjeföljande bil

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

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

Programmering A. Johan Eliasson

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p

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

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

Digitala projekt rapport

Digital- och datorteknik

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

Digital- och datorteknik

Programmering med Arduino

Tentamen Grundläggande programmering

Laboration i datateknik

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

Välkomna till DIT012 IPGO. Tyvärr en bug i Google Docs: Sidnummer stämmer inte alltid. Alla anteckningar börjar på sidan 1.

Extramaterial till Matematik Y

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Tentamen i IE1204/5 Digital Design onsdagen den 5/

Programmering robotprogrammering med mbot

Programmerbara kretsar och VHDL 2. Föreläsning 10 Digitalteknik, TSEA22 Oscar Gustafsson Institutionen för systemteknik

Tentamen i IE1204/5 Digital Design onsdagen den 5/

Programallokering. Programtyper. Att placera program i flashrespektive. Program i FLASH-minne. Program i RAM-minne

Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp

Välkommen till. Datastrukturer, algoritmer och programkonstruktion. eller DOA

Systemkonstruktion SERIEKOMMUNIKATION

Granska befintlig kod och kommentarer Testa loopbackfunktionen

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Laborationshandledning

Effektpedal för elgitarr

Datorprojekt, del 1. Digitala system 15 p

DANCING ROBOT. EITF11, Grupp 10. Kajsa Salomonsson, Hugo Hedin och Petter Mårtensson

Lego Robot [ ] [ ] [ ]

Projekt i programmering 1 (ver 2)... 2 Projektidé... 2 Planering... 2 Genomförande... 2 Testning och buggar... 3 Utvärdering... 3 Planering...

Larmcentral. Digitala Projekt. Cecilia Olsson & Erika Björck Handledare: Bertil Lindvall LUNDS TEKNISKA HÖGSKOLA

Grunderna i stegkodsprogrammering

Inlämningsuppgifter, EDAF30, 2015

Vad händer egentligen före en krasch? Svarta lådor och tidsmaskiner sparar pengar för företag

Digital- och datorteknik

DIGITALA PROJEKT Väderstation

PROGRAMMERING ÅK 9 INTRODUKTION

Robotfotboll med Arduino

EITF11 Digitala Projekt TIC TAC TOE. Lukas Ljungblom & Johan Lyckenvik I-13 Handledare: Bertil Lindvall

Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp

SKOLFS. beslutade den XXX 2017.

Programmering i C, 7,5 hp

Databaser design och programmering. Transaktionshantering och säkerhet säkerhetsproblem fleranvändarproblem transaktioner låsning

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

DIGITALA PROJEKT (EITF40) Fartmätare

Programmering eller Datalogiskt tänkande

Visual Basic, en snabbgenomgång

Micro:bit och servomotorer

Snabbstart av Aspen med hjälp av skärmdumpar

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

Föreläsningsanteckningar 3. Mikroprogrammering II

Nätverkskopplat djävulskap Digitala projekt 2011 EITF40. Erik Lundh E06

Logik och kontrollstrukturer

Transkript:

Design av inbyggda system Innehåll Hårdvarunära design Erfarenhet värd att tänka på Avbrottsrutiner och huvudloopar hantering av gemensamma data Kopplingsschema hur och varför Designspecar bra / dåligt / hur / varför / när

Hårdvarunära design Inbyggt system = man ser inget Hårdvarunära design Systemet byggs samtidigt som man programmerar det

Hårdvarunära design Man behöver ta *SMÅ* utvecklingssteg, justera kompasskursen ofta. Varför? Helheten är svår att överblicka Systemet är ofärdigt Förutsättningar kanske förändras Hårdvarunära design Börja med låga hastigheter öka vid behov Robustare Energisnålare Störningskänsligt Energikrävande

Hårdvarunära design Spana framåt undvik hinder Hårdvarunära design Se även bakåt ingen del av systemet är färdigt förrän hela produkten är klar Man kan få riva upp och göra om Då är man glad om man tagit små steg

Hårdvarunära design Var paranoid! Överallt! Koll på allt! Hela tiden! Avbrottsrutiner och huvudloopar Ett sätt att uppnå realtidsfunktionalitet och parallelism

Avbrottsrutiner och huvudloopar Vilka avbrott ska vi hantera? Vad ska göras i avbrottsrutiner? Vad ska göras i kod som inte är avbrottsrutiner? Vad är lagom mycket för en avbrottsrutin? Hur klarar man krav på timing? Vilka data delas mellan avbrottsrutiner och övrig kod? Hur delas data? En läser och en skriver, båda läser, båda skriver, etc. Avbrottsrutiner och huvudloopar

Avbrott i AVR, förutsättningar: Nya avbrott blockeras när avbrottsrutin körs (dvs pågående avbrott avbryts inte) Nya avbrott som inkommer när avbrottsrutin körs latchas/memoreras (en flagga per avbrottsvektor) Vissa variabler kan läsas och skrivas atomärt (dvs accessen av variabeln avbryts inte), andra är icke atomära Avbrott i AVR, atomär läsning av en variabel vid upprepade tillfällen Gemensam variabel mellan ISR huvudloop int Distance; Variabeln sätt av ISR (Interrupt Service Routine)

Avbrott i AVR, atomär läsning av en variabel vid upprepade tillfällen Kod i huvudloop if (Distance < 10) decrease robot speed else if (Distance > 20) increase robot speed else do not change robot speed Avbrott i AVR, atomär läsning av en variabel vid ett tillfälle local_distance = Distance; if (local_distance < 10) decrease robot speed else if (local_distance > 20) increase robot speed else do not change robot speed

Avbrott i AVR, icke-atomär läsning av en variabel DISABLE_INTERRUPTS; local_distance = Distance; ENABLE_INTERRUPTS; if (local_distance < 10) decrease robot speed else if (local_distance > 20) increase robot speed else do not change robot speed Distance 8 bitar 8 bitar Avbrott, andra typer av scenarier gemensamma data Buffertar avbrottsrutin skriver/läser, huvudloop skriver/läser Gemensamma datablock huvudloop skriver/läser hela block med avbrott stängda (för att säkerställa konsistens av data inom ett block) Dubbelbuffring huvudloop arbetar med kopia, avbrottsrutin arbetar med en annan - avbrottsrutin gör swap genom att flytta pekare huvudloop stänger av avbrott vid läsning av pekare om dessa inte kan läsas atomärt

Avbrott - embedded, referensmaterial Artikel på vanheden - http://bit.ly/xo5fzz En artikelserie från embedded.com http://bit.ly/svhrih Embedded Gurus http://embeddedgurus.com/ The Ganssle Group http://www.ganssle.com/ Kopplingsschema

Kopplingsschema Hur? Varför? Kopplingsschema Från schema till bygge Vira in en liten del åt gången Bocka av virade trådar i schemat

Kopplingsschema Från schema till bygge Ett eller flera virkort... Kopplingsschema Från schema till bygge Parallella ledare...

Kopplingsschema Från schema till bygge Anslut reset! Utan reset : svår felsökning! Utan reset : felaktig programmering! Kopplingsschema Från schema till bygge JTAG används för programmering och debugging JTAG-kedja...... eller inte

Schemaritningsprogram EAGLE www.cadsoftusa.com Gratis för mindre storlekar av konstruktioner EAGLE finns i Muxen

1 : Börja i tid 2 : Gör ordentliga virningar www.bigmessofwires.com

3 : Skriv programkoden själv 4 : Strukturera programkoden int banan22(int banan13, int banan37) { if (banan37 > banan13) then banan13 = banan37*3; else banan13 = banan37-banan13; return banan13; }

5 : Använd versionshantering Håll även kopplingsshemat uppdaterat!!! 6 : Läs databladen 1. Översiktligt 2. Detaljerat 3. Verifiering

7 : Verifiera komponentens funktion REKLAM VERKLIGHET 8 : MÄT! Zu messen ist zu wissen

9 : Samarbeta 10 : Konstruera och lös problemen steg för steg

Designspecar Checklista för designspec => Exempel på designspecar => + Fokus på hårdvaran + Pseudokod som bilaga + Upprepa inte datablad Inlämningstid Senast 8/3 kl 16:00 ska en första version av designspecen vara inlämnad till handledaren Senast 21/3 ska designspecen kunna vara godkänd av handledaren Designspecifikation : Förslag på arbetsordning 1 : Kopplingsschema - Så detaljerat som möjligt - Ta bort ovidkommande information - Vilken / vilka bussar är lämpliga / krävs? - Namnge signaler och bussar - Planera in anslutning för JTAG samt reset - Behövs nivåkonvertering? 5V <-> 3V 2 : Datastrukturer - Hur ska data lagras? - Vad ska skickas? - På vilken form? Rådata eller SI-enheter? - Behövs nåt protokoll, paketering av data? 3 : Programflöde / struktur - Vad ska vara avbrott? - Vad passar i huvudloopen 4 : Beskrivande information - Textuell - Bilder / figurer