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

Digitalt lärande och programmering i klassrummet

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

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

Program & programmering

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

Digitala Projekt (EITF11)

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

Enchipsdatorer med tillämpningar LABORATION 7, ROBOT

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

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

Före Kravspecifikationen

TETRIS. LTH, Campus Helsingborg EITA15 Digitala System

Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic

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

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

Programmering eller Datalogiskt tänkande

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

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.

Systemkonstruktion SERIEKOMMUNIKATION

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

Växtviskaren EITF11 Digitala projekt VT15, I12

TPFD - TestPlan Före Design BESKRIVNING AV AKTIVITETER

Pulsmätare med varningsindikatorer

Bilen som inte kan krocka

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

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

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

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

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

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Projektlaboration 4, synkronisering av klockan

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

Digitala Projekt(EITF40) - Larm

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

Digitala projekt - Radiostyrd bil

Programmering A. Johan Eliasson

Inlämningsuppgifter, EDAF30, 2015

Roboten. Sida 1 av 11

Lego Robot [ ] [ ] [ ]

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

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

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

Digitala projekt rapport

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

SKOLFS. beslutade den XXX 2017.

Robotfotboll med Arduino

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Tentamen Grundläggande programmering

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:

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

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

Programmering robotprogrammering med mbot

The Intelligent Timer

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?

Datorprojekt, del 1. Digitala system 15 p

Digitala projekt Linjeföljande bil

Introduktion till git

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

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

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

Programmering i C, 7,5 hp

Programmering = modellering

Digital- och datorteknik

DIGITALA PROJEKT Väderstation

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

Programmering med Arduino

Digital- och datorteknik

Tomas Axelsson

Introduktion till E-block och Flowcode

Laboration i datateknik

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

AVR Studio 4 Och AVRFLASH

Extramaterial till Matematik Y

Tentamen i IE1204/5 Digital Design onsdagen den 5/

Visual Basic, en snabbgenomgång

INNEHÅLLSFÖRTECKNING... 2 FÖRORD... 3 INLEDNING... 4 ATT ANVÄNDA MOTORERNA... 9 LOOP (UPPREPANDE) FUNKTIONEN SKAPA EN EGEN KLOSS...

Tentamen i IE1204/5 Digital Design onsdagen den 5/

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

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

Datorteknik TSIU02 Kursinformation

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

Granska befintlig kod och kommentarer Testa loopbackfunktionen

4 augusti (G) Programmering: Lego

1 Kravspecifikation Snake App

Effektpedal för elgitarr

Laborationshandledning

Svar till tentamen den 16 december 2013 Datorarkitekturer med operativsystem, EDT621, 7,5 poäng

PROGRAMMERING AV MCU LABORATION6. Laborationens syfte

Strukturerad problemlösning. Metoder och verktyg för datavetare Ht09

Formell Verifiering. Hur vet man att ett system fungerar korrekt? Lisa Kaati

Transkript:

Design av inbyggda system Innehåll Hårdvarunära design Erfarenhet/Utmaningar värda 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 Små delar kan testas lättare 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

2017-10-02 Kopplingsschema Hur? Varför? Renrita!! Använd rutat papper!! 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 KiCad www.kicad-pcb.org Open Source via GNU GPL v3 EAGLE https://www.autodesk.com/products/eagle/ Kommersiell, men gratis för mindre storlekar (80 cm^2) av konstruktioner Mentor - Expedition PCB Cadence - Allegro PCB Altium - PCB Designer Kommersiella och kompetenta, MEN komplexa med mycket dyra licenskostnader Baserat på råd från tidigare års studenter

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 https://gitlab.ida.liu.se https://docs.isy.liu.se/bin/view/vanheden/git Undvik helst GitHub Håll även kopplingsshemat uppdaterat!!! 6 : Läs databladen 1. Översiktligt 2. Detaljerat 3. Verifiering

7 : Verifiera komponentens funktion REKLAM VERKLIGHET 8 : MÄT! Logikanalysatorlab Tre tillfällen, gå på ett av dom Anmälan på listor utanför Muxen Zu messen ist zu wissen

9 : Samarbeta Kommunicera! Färdig i förväg? Sjuk? Alla har ett gemensamt ansvar! 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 31/10 kl 16:00 ska en första version av designspecen vara inlämnad till handledaren Senast 3/11 kl 16:00 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