91
Språket för inbyggda system 3

Språket för inbyggda system 3

Embed Size (px)

DESCRIPTION

Språket för inbyggda system 3. Rapport om program för ett inbyggt system. Man dokumenterar:  Systemets uppbyggnad  Programmets omfattning  Programmets uppbyggnad  Hur programmet/funktionen testats. - PowerPoint PPT Presentation

Citation preview

Page 1: Språket för inbyggda system 3

Språket för inbyggda system 3

Page 2: Språket för inbyggda system 3

Rapport om program för ett inbyggt system

Man dokumenterar:

Systemets uppbyggnad

Programmets omfattning

Programmets uppbyggnad

Hur programmet/funktionen testats

Tekniska rapporter innehåller ”figurer” och text i samverkan. Figurerna är ofta olika typer av diagram.

William Sandqvist [email protected]

Page 3: Språket för inbyggda system 3

Graphic Organizers

Det kan vara enklare att förklara något med hjälp av ett diagramän utan. http://www.enchantedlearning.com/graphicorganizers/

En sida med Diagram för – grundskoleelever.

William Sandqvist [email protected]

Page 4: Språket för inbyggda system 3

SammanställningsbildEn inbyggnadsprocessor används inbyggd i en produkt. Det går nog knappast att beskriva processorns dator-program utan att man först åtminstone översiktligt förklarat produkten!

En sammanställningsbild definierar vad de olika delarna kallas för – man använder sedan exakt de namnen konsekvent genom hela rapporten när man behöver hänvisa till produkten.

William Sandqvist [email protected]

Page 5: Språket för inbyggda system 3

Blockdiagram

Det krävs inga avancerade hjälpmedel för att rita ett blockdiagram. Blockdiagrammet gäller produktens delar. Andra diagramtyper används för att beskriva programmets struktur.

Ett blockdiagram är ett diagram över ett system där de principiella delarna, eller funktionerna, representeras av block sammanbundna med pilar som visar blockens relationer.

William Sandqvist [email protected]

Page 6: Språket för inbyggda system 3

Illustrerat blockdiagram

Vänder man sig till läsare utanför gruppen av tekniker händer det ofta att blocken är färglagda och illustrerade …

William Sandqvist [email protected]

Page 7: Språket för inbyggda system 3

Bra diagramegenskaper

Ett bra diagram ska vara litet, enkelt, klart, innehålla få abstrakta symboler, och följa formella regler.

Ett bra diagram är till god hjälp när man ska förklara systemet för andra.

William Sandqvist [email protected]

Page 8: Språket för inbyggda system 3

Exempel på ett diagram som bryter mot alla reglerna!Bra diagram-egenskaper

William Sandqvist [email protected]

Page 9: Språket för inbyggda system 3

Diagrammet blir bara till hjälp om Du anstränger dig …

William Sandqvist [email protected]

Page 10: Språket för inbyggda system 3

Diagramtyper för programkod

Det finns många diagramtyper för att täcka olika aspekter av ett datorprogram.

William Sandqvist [email protected]

Page 11: Språket för inbyggda system 3

Diagramtyper för programkod

Tre vanligadiagramtyper:

Flödesdiagram – hur processorn exekverar

Strukturdiagram – programmets struktur

Tillståndsdiagram – för tillståndsmaskiner

Pilarna visar hur flera diagramtyper samverkar och behövs för att ge en helhetsbild.

Page 12: Språket för inbyggda system 3

Det finns en standard, UMLUnified Modeling Language (UML) är ett objektorienterat generellt språk för modellering av alla typer av system.

Språket används främst inom programvarukonstruktion men är även användbart inom andra områden som exempelvis modellering av affärsprocesser med mera. Genom att skapa en modell av systemet som skall konstrueras blir det enklare att förstå och bygga det.

UML – innehåller en mängd olika diagramtyper.

UML är dock för omfattande för denna kurs …William Sandqvist [email protected]

Page 13: Språket för inbyggda system 3

Vi använder …

Tillståndsdiagram– för tillståndsmaskiner

Strukturdiagram– programmets struktur

Flödesdiagram – hur processorn exekverar

William Sandqvist [email protected]

Page 14: Språket för inbyggda system 3

William Sandqvist [email protected]

Programmering efter tillståndsdiagram

En mycket vanlig teknik vid program-mering av inbyggnadsprocessorer är att använda ”tillstånd” och ”tillstånds-diagram”.

Idén är lånad från Digitalteknikens ”automater”.

Låt oss därför se kort på några av digitalteknikens sekvenskretsar och automater.

UML-tillståndsdiagram

Page 15: Språket för inbyggda system 3

Sekvensnät

William Sandqvist [email protected]

Om en och samma insignal kan ge upphov till olika utsignal, är logiknätet ett sekvensnät. Det måste då ha ett inre minne som gör att utsignalen påverkas av både nuvarande och föregående insignaler!

Page 16: Språket för inbyggda system 3

William Sandqvist [email protected]

Repetition - Klockad vippaInom digitaltekniken brukar man skilja på enkla låskretsar ( latch ) och klockade vippor ( flip-flop ). De enkla låskretsarnas begränsning ligger i att man inte kan mata in ett nytt värde till ingången samtidigt som man läser av utgångsvärdet. De elektroniska kretsarnas snabbhet har gjort det nödvändigt att utveckla mer sofistikerade kretsar.

Flanktriggad D-vippa. D-ingången är dataingång, C-ingången är klockpulsingång, därav beteckningen CP. Styringången C har ett flanktriggningstecken, en triangel. När C-ingången nås av en positiv flank, det vill säga under den korta tid då C går från "0" till "1”, kopieras D-ingångens värde till utgången Q. Utgångsvärdet är sedan låst tills det inkommer en ny flank på klockpulsingången.

Page 17: Språket för inbyggda system 3

William Sandqvist [email protected]

Moore-automat

En vanlig typ av sekvensnät är Moore-automaten. Nätets ”minnesfunktion” sitter i ett Tillståndsregister uppbyggt av D-vippor. Ett logiknät – Nästa tillståndsavkodaren – förutsäger det kommande tillståndet utifrån det nuvarande tillståndet och insignalerna. När klockpulsen CP kommer hamnar man i det nya tillståndet.

Page 18: Språket för inbyggda system 3

William Sandqvist [email protected]

Tillståndsregistrets D-vipporTillståndsregistrets D-vippor bromsar upp kapplöpningen mellan signalerna tills värdet är stabilt. (Jämför med tullstationen).

Page 19: Språket för inbyggda system 3

William Sandqvist [email protected]

Tillståndsregistrets D-vipporTillståndsregistrets D-vippor bromsar upp kapplöpningen mellan signalerna tills värdet är stabilt. (Jämför med tullstationen).

?

?

Page 20: Språket för inbyggda system 3

William Sandqvist [email protected]

Tillståndsregistrets D-vipporTillståndsregistrets D-vippor bromsar upp kapplöpningen mellan signalerna tills värdet är stabilt. (Jämför med tullstationen).

?

?

!

!

Page 21: Språket för inbyggda system 3

William Sandqvist [email protected]

Ex. Kaffeautomaten

Page 22: Språket för inbyggda system 3

William Sandqvist [email protected]

Exempel: En kaffeautomatNästa tillståndsavkodaren ska förutsäga nästa tillstånd – ungefär som oraklet i Delfi förutsäger framtiden!Uppgiften är inte omöjlig, det finns en systematisk metod som steg för steg leder till målet.

Första steget är att rita ett Tillstånds-diagram.Cirklarna Z0 Z1 och Z2 är tillstånden. Pilarna är möjliga övergångar mellan tillstånden och texten vid pilarna är vilkoret för övergången.Bredvid cirklarna står vad som ska hända i tillstånden.

!coin betyder inverterat vilkor

1 betyder alltid

Page 23: Språket för inbyggda system 3

William Sandqvist [email protected]

Tillståndsdiagrammet, insignalerKaffeautomaten har tvåinsignaler.

coin från myntinkastet som anger att en pollett passerat en fotocell där.

full från en givare som ”övervakar" plastmuggen under fyllningen.

coin = 1 när myntet passerar. full = 1 när muggen blir full.

Page 24: Språket för inbyggda system 3

William Sandqvist [email protected]

Tillståndsdiagrammet, utsignalerKaffeautomaten har två utsignaler.

drop_cup till en matarenhet för plastmuggar.

coffee till en magnetventil för påfyllning av kaffet.

Mataren matar fram en mugg var gång drop_cup blir "1", och kaffe fylls på så länge som coffee = 1.

Page 25: Språket för inbyggda system 3

William Sandqvist [email protected]

Tillståndsdiagrammet, övergångarI första tillståndet, Z0, gäller för ut-signalerna att man inte släpper någon kopp (!drop_cup), och inte häller i någon dryck (!coffee) förrän man fått betalning (coin).

I andra tillståndet, Z1, släpps plast-muggen (drop_cup). "1" betyder här "alltid uppfyllt” så nästa klockpuls (om 1 sek) lämnar man således Z1 för Z2.

Lämplig klockfrekvens1 Hz

I det tredje tillståndet, Z2, återställs mataren för plastmuggar (!drop_cup) och koppen börjar fyllas med dryck (coffee). Detta pågår tills muggen är full (full). Vi hamnar då åter i utgångsläget.

Page 26: Språket för inbyggda system 3

William Sandqvist [email protected]

Kaffeautomaten som Moore-automat

Beteckningar. D-vippornas utgångar betecknas med ql q0, ingångarna, som

bär nästa tillstånds signalen, brukar betecknas ql+ q0

+ där plustecknet står för

det "kommande" tillståndet. Sekvensnätets utgångar och ingångar betecknas ul u0, il i0.

Om vippornas utgångar styr utsignalerna direkt slipper man utgångsavkodaren!

Tillståndsdiagrammet har tre tillstånd. Tillståndsregistret måste innehålla minst tre olika kombination-er. Det behövs två D-vippor ( 22 = 4 >3).

Page 27: Språket för inbyggda system 3

William Sandqvist [email protected]

Kodad tillståndstabell

Observera att tabellen är uppställd som ett Karnaughdiagram. Detta kommer att under-lätta framtagandet av grindnäten senare!

Så här bygger man upp den kodade tillståndstabellen steg för steg …Z0: !full och !coin. Vi väntar på betalning och det finns inte någon full kopp i automaten. Nästa tillstånd blir att stanna kvar, ql

+q0+

= 00.

Z0: !full och coin. Den andra kolumnen innebär att betalningen har kommit, nästa tillstånd blir således Z1, ql

+q0+ = 01.

Z0: full och coin. Tredje kolumnen innebär att betalningen har kommit, men att en gammal full kopp tydligen finns kvar. Om det är osäkert om någon avlägsnar den bör nästa tillstånd bli att stanna kvar i Z0 (00).

Z0: full och !coin. Full kopp (gamla) och inget mynt; stanna kvar i

Z0 (00). Z1: Enligt det tidigare presenterade tillståndsdiagrammet ska man från Z1 gå direkt till Z2. Är detta så välbetänkt? !full och !coin. Gå till Z2 (10).

Z1: !full och coin. Gå till Z2 (10).Z1: full och coin. En gammal full mugg finns kvar. Släpp inte ner

den nya muggen i den gamla! Stanna kvar i Z1 (01). Z1: full och !coin. En gammal full mugg finns kvar. Släpp inte ner

den nya muggen i den gamla! Stanna kvar i Z1 (01). ??: I tillståndsdiagrammet har vi glömt bort ett fjärde tillstånd!

Det ska normalt inte kunna inträffa, men sekvensnätet kan naturligtvis utsättas för en störning. Tillståndet innebär att automaten kontinuerligt "fyller" kaffe, varför det måste förhindras. Att gå till Z0 (00) oavsett insignal är mest lönsamt ( för automatägaren ).

Z2: I de två sista kolumnerna har koppen blivit full och vi ska gå till Z0 (00). I de två första kolumnerna stannar man kvar i Z2 (10) och fortsätter att fylla på dryck.

 

),()( 010101 iiqqfqq

Page 28: Språket för inbyggda system 3

William Sandqvist [email protected]

Ett mer genomtänkt tillståndsdiagram!

Detta enkla exempel visar den stora fördelen med en systematisk syntes-metod; man tvingas överväga alla möjligheter för att därmed se till att sekvensnätet gör det bästa av varje situation, även sådana som "egentligen" inte ska kunna hända (men som vi alla vet ändå kommer att hända …).

Vi kan nu "rätta till" det ursprungliga tillståndsdiagrammet.

Page 29: Språket för inbyggda system 3

William Sandqvist [email protected]

Minimerade funktionerTabellen kan splittras upp i två Karnaughdiagram,ett för ql

+ = f ( ql q0 , il i0 ) och ett för q0+ = f ( ql q0 , il i0 ).

101010101011011 iqqiiqqqiqqiqqq

Hoptagningar i Karnaughdiagrammen ger:

Page 30: Språket för inbyggda system 3

William Sandqvist [email protected]

Kaffeautomat med standard-kretsar?

4 standardkretsar:

7404, 7411, 7421, 7432

Page 31: Språket för inbyggda system 3

William Sandqvist [email protected]

Programmerbar logik VHDL? next_state_decode: process ( present_state, COIN, FULL ) begin case present_state is when Z0 => if (NOT COIN OR NOT FULL) = '1' then next_state <= Z0 ; elsif (COIN AND NOT FULL) = '1' then next_state <= Z1 ; end if ; when Z1 => if FULL = '1' then next_state <= Z1 ; else next_state <= Z2 ; end if ; when Z2 => if FULL = '0' then next_state <= Z2 ; else next_state <= Z0 ; end if ; when Z3 => next_state <= Z3 ; end case ; end process ;end architecture behavior ;

library IEEE;use IEEE.std_logic_1164.all;

entity coffee_machine is port ( COIN, FULL : in std_logic ; DROP_CUP, COFFEE : out std_logic ) ;end coffee_machine ;

architecture behavior of coffee_machine is type state is ( Z0, Z1, Z2, Z3 ) ; signal present_state, next_state : state ;

state_register: process ( CLK ) begin if rising_edge( CLK ) then present_state <= next_state ; end if ; end process ;

output_decode: process ( present_state ) begin case present_state is when Z0 => DROP_CUP <= '0' ; COFFEE <= '0' ; when Z1 => DROP_CUP <= '0' ; COFFEE <= '1' ; when Z2 => DROP_CUP <= '1' ; COFFEE <= '0' ; when Z3 => DROP_CUP <= '1' ; COFFEE <= '1' ; end case ; end process ;

Entity

State register

Output decoder

Next StateDecoder

Kaffeautomaten direkt från tillståndsdiagram-mets beskrivning.

Page 32: Språket för inbyggda system 3
Page 33: Språket för inbyggda system 3

William Sandqvist [email protected]

Processor, C-kod från tillståndsdiagram

vanligen ”switch() case:” satser

Page 34: Språket för inbyggda system 3

William Sandqvist [email protected]

Processor, C-kod från tillståndsdiagramVanligen använder man ”switch() case:” satser.

switch(state) { case Z0: if( coin||full ) state = Z0; if( coin&&!full ) state = Z1; break; case Z1: if( full ) state = Z1; if( !full ) state = Z2; break; case Z2: if( full ) state = Z0; if( !full ) state = Z2; break; case Z3: state = Z0; }

#define Z0 0#define Z1 1#define Z2 2#define Z3 3

Page 35: Språket för inbyggda system 3

eller från tillståndstabell

int NextState[16]={0,1,0,0,2,2,1,1,2,2,0,0,0,0,0,0};

00011111510101117

00011101410101106

00011011321001015

00011001221001004

00010111100000113

00010101000000102

2101001910100011

2101000800000000

0010101

0010101 ZqqiiqqindexZqqiiqqindex

index = state*4 + full*2 + coin;

William Sandqvist [email protected]

Page 36: Språket för inbyggda system 3

C-kod från tillståndstabellvoid main(void){ int NextState[16]={0,1,0,0,2,2,1,1,2,2,0,0,0,0,0,0}; . . . /* initiation */ while(1) { full = GetFull(); /* sensor input */ coin = GetCoin(); /* sensor input */ index = state*4 + full*2 + coin; state = NextState[index]; DropCup( state ); /* actuator output */ FillCoffee( state ); /* actuator output */ delay(1000); /* 1 sec -> 1 Hz clock */ }}

Programmet blir mycket enkelt!

William Sandqvist [email protected]

Page 37: Språket för inbyggda system 3
Page 38: Språket för inbyggda system 3

Flera saker samtidigt?

/* Blink1: 1s ON - 1s OFF */

/* Blink2: 0,2s ON - 0,2s OFF - 1s ON - 1s OFF */

William Sandqvist [email protected]

Page 39: Språket för inbyggda system 3

Först en lysdiod …while(1) { /* Blink1: 1s ON - 1s OFF */ switch(State1) { case 0: Blink1 = ON; Time1++; if( Time1 == 10 ) { State1 = 1; Time1 = 0; } break; case 1: Blink1 = OFF; Time1++; if( Time1 == 10 ) { State1 = 0; Time1 = 0; } } delay(100); /* 0,1 sek delay */ }

William Sandqvist [email protected]

Page 40: Språket för inbyggda system 3

Sedan en annan lysdiod …while(1) { /* Blink2: 0,2s ON - 0,2s OFF - 1s ON - 1s OFF */ switch(State2) { case 0: Blink2 = ON; Time2++; if( Time2 == 2 ) { State2 = 1; Time2 = 0; } break; case 1: Blink2 = OFF; Time2++; if( Time2 == 2 ) { State2 = 2; Time2 = 0; } break; case 2: Blink2 = ON; Time2++; if( Time2 == 10 ) { State2 = 3; Time2 = 0; } break; case 3: Blink2 = OFF; Time2++; if( Time2 == 10 ) { State2 = 0; Time2 = 0; } } delay(100); /* 0,1 sek delay */ }

William Sandqvist [email protected]

Page 41: Språket för inbyggda system 3

Varför inte båda?

while(1) { /* Blink1: 1s ON - 1s OFF */ switch(State1) { case 0: ... ; break; case 1: ... ; }

/* Blink2: 0,2s ON - 0,2s OFF - 1s ON - 1s OFF */ switch(State2) { case 0: ... ; break; case 1: ... ; break; case 2: ... ; break; case 3: ... ; }

delay(100); /* 0,1 sek delay */ }

William Sandqvist [email protected]

Page 42: Språket för inbyggda system 3
Page 43: Språket för inbyggda system 3

En makalös manick?Lysdiod1, Lysdiod2, Kaffeautomat, Motor …Fyra Moore-automater på en och samma gång!

Programmet är bara på 300 kodrader.( Frågan är vad man ska ha det till ? )

Årets Julklapp?

Exemplet är från PIC-kursen IL131V

William Sandqvist [email protected]

Page 44: Språket för inbyggda system 3

State machinesState machines/Tillståndsmaskiner/Moore-automater är således mycket användbara hjälpmedel för att programmera ”parallella” processer för små microcontrollers.

Tips! Observera att de flesta kompilatorer lägger ut effektivare kod för switch() – case än förif() – else if() – else så använd alltid switch-satsen!

Många komersiella programvaror bygger på State machines …

William Sandqvist [email protected]

Page 45: Språket för inbyggda system 3

Grafiska programspråk, LabViewdo { Blink != Blink; delay(1000); /* 1 sek delay */ } while(!Stop );

William Sandqvist [email protected]

Bakom varje grafiskt element döljer sig en statemaskin …

Page 46: Språket för inbyggda system 3

En statemachine ritad med Realizer. PIC-kod genereras sedan direkt.

Realizer, ett grafiskt programmeringsverktyg för små processorer, tex. PIC.

Realiser

William Sandqvist [email protected]

Page 47: Språket för inbyggda system 3

Dokumentation

William Sandqvist [email protected]

State=NextState(State,In)Action(State)

Det brukar bli tydligare om man kompletterar strukturdiagrammet med ett tillsåndsdiagram, än om man försöker beskriva tillståndsövergångarna direkt i strukturdiagrammet.

State Machine

Otydligt!

Page 48: Språket för inbyggda system 3
Page 49: Språket för inbyggda system 3

William Sandqvist [email protected]

Flödesdiagram

Verktyg för att rita flödesschemor finns i

Word och Powerpoint.

Flödesdiagram använder man när det är viktigt att visa precis hur processorn exekverar koden. Till exempel när man analyserar assemblerkoden för att kunna se till att olika vägar genom programmet tar samma tid.

Normalt använder man i stället strukturdiagram för beskriva programstrukturer.

Page 50: Språket för inbyggda system 3

Strukturdiagram

Se ID120V: jsp.ppt JSP-editor som Java applet!

William Sandqvist [email protected]

Page 51: Språket för inbyggda system 3

William Sandqvist [email protected]

Interrupt?

Interruptrutinen kan få ett fristående strukturdiagram. Samverkan mellan huvudprogram och interruptrutin får beskrivas på annat sätt.

Page 52: Språket för inbyggda system 3

William Sandqvist [email protected]

ProgramkodProgramkod skrivs med ett typsnitt som har fast bredd (”skrivmaskinstil”).Vanliga typsnitt har annars variabel bredd: ”i” är ju smalare än ”W”.

Courier New, är ett sådant ”fast” typsnitt. Har Du använt 80 tecken per rad i texteditorn ska Size väljas till 8 punkter för att raderna ska få plats på A4. Om raderna bryts blir koden svårläst.

Observera! Tab-tecken kan behöva bytas ut mot mellanslag.

Page 53: Språket för inbyggda system 3

William Sandqvist [email protected]

ASCII-grafik

Viktig information kan bakas in i programkoden som ASCII-grafik.

Den finns då tillgänglig för alla oavsett system.

Page 54: Språket för inbyggda system 3

William Sandqvist [email protected]

ASCII-grafik

Page 55: Språket för inbyggda system 3
Page 56: Språket för inbyggda system 3

William Sandqvist [email protected]

REXUSRocket-borne Experiments for University Students

ESRANGE Sweden mar 2010

Page 57: Språket för inbyggda system 3

William Sandqvist [email protected]

Mission, deploy a web in space

MissionTo deploy a net in zero gravity

Page 58: Språket för inbyggda system 3

William Sandqvist [email protected]

What to do with a web in space?• Could be used as an Antenna?

• Could be a lightweight platform for miniature crawling construction robots?

Page 59: Språket för inbyggda system 3

William Sandqvist [email protected]

How to unfold a web in zero gravity?

?( when Fuglesang isn’t there to help )

Page 60: Språket för inbyggda system 3

William Sandqvist [email protected]

First: How to fold a web?

From Mattias Gärdsback and Gunnar Tibert

This is the Miura-Ori folding scheme

Some Japanese origami is needed

Page 61: Språket för inbyggda system 3

William Sandqvist [email protected]

Scater spinning on ice

Initial Unfold

Law of the Conservation of Angular Momentum

Rotation will slow down!

Page 62: Språket för inbyggda system 3

William Sandqvist [email protected]

The ”spinning scater principle”

The ”spinning scater priciple” can’t unfold the net.

If the initial rotational speed is to low, the final centrifugal forces won’t be strong enough to deploy the net.

If the initial rotational speed is to high, the energy transfered from the hub to the net will cause oscillations – then the net will be tangled.

Won’t Work!

Rotate the hub with weights attached to the corners of the web, then the centrifugal force will unfold the web?

Page 63: Språket för inbyggda system 3

William Sandqvist [email protected]

Reaction wheel to ”help” the rotationThe stabilizing rotation of the web

centrifugal force

Reaction wheel

hub

Page 64: Språket för inbyggda system 3

William Sandqvist [email protected]

Controled unfolding

Nice!

Page 65: Språket för inbyggda system 3

William Sandqvist [email protected]

Simulation of the reaction wheel motor voltage during controled unfolding

Simplified control is possible!

From Mattias Gärdsback and Gunnar Tibert

Page 66: Språket för inbyggda system 3

William Sandqvist [email protected]

Reaction wheel controler card

RWmotor

Now ejected signal

Gyro (x),( y), z,temperature

Release the net signal

E [V]Start now signal

Embedded controller

PWM

DIR

With simplified control, one simple embedded controller could do the job!

Page 67: Språket för inbyggda system 3

Objective: To make a RW-controller circuit board

William Sandqvist [email protected]

?

Page 68: Språket för inbyggda system 3

William Sandqvist [email protected]

Deadline, Launch:Esrange Februari/March 2010

Sorry: We didn’t deliver a working board in time.

Page 69: Språket för inbyggda system 3

William Sandqvist [email protected]

The Orion rocket

We missed the launch!

But we still have the chance of learning an important lesson over the topic:

- How to succeed in electronic prototyping?

Page 70: Språket för inbyggda system 3

How to succeed in electronic prototyping?

William Sandqvist [email protected]

Att misslyckas är alltid en möjlighet – faktiskt den sannolikaste möjligheten!Därför måste man se till att det man inte misslyckas med är ”hela projektet”!

Skjut inte från höften och håll tummarna för att Du ska träffa …

Planera hela tiden för att saker kan gå fel och ha beredskap för vad man då ska göra …

Varning för sagan om ”Mäster Skräddare” – det bidde ingenting! (Det händer hela tiden)

Page 71: Språket för inbyggda system 3

Suppose you should knit a Norvegian ”Lusekofte” ?

William Sandqvist [email protected]

How to avoid the mess?

Page 72: Språket för inbyggda system 3

You will need a knitting pattern chart!

William Sandqvist [email protected]

Organise your work step by step …And then proceed in a exact and careful way …

It could be done!

Page 73: Språket för inbyggda system 3

William Sandqvist [email protected]

Suppose you need to build and test an electronic circuit?

The Analog ”Guru” – Jim Williams at lab …

How to avoid the mess?

(no guru at hand)

Page 74: Språket för inbyggda system 3

Here are some useful, and simple tools ?

William Sandqvist [email protected]

• PAD Pencil Aided Design • ASCII-grafics

With ASCII-grafics inside your code, you will have hardware information in reach all the time while you are coding ...

Page 75: Språket för inbyggda system 3

The ultimate tool is the electronic CAD program!

William Sandqvist [email protected]

• Schematic view• Board view

Page 76: Språket för inbyggda system 3

Schematic and Board views

William Sandqvist [email protected]

Every electronic component has a schematic representation, and a representation of it’s board ”footprint”. These two views are connected to each other.If you highligt a signal in the schematic, the corresponding pin in the board view vill be highlighted to.

Page 77: Språket för inbyggda system 3

Board view

William Sandqvist [email protected]

The CAD is the main tool to help you check and organise the wirering of your circuit!

• You don’t have to fabricate a real circuit board in order to benefit from the information about pin-numbers, component footprints, and component alignment, that you can find from the board view!

Your CAD program is the place to collect all information about your circuit and your components!There will often be missunderstandings about orientation: up, down, left, right, pin-numbers - but everything can be described in your CAD in an exact manner!

Page 78: Språket för inbyggda system 3

A tested Board is the proof

William Sandqvist [email protected]

A tested board is the proof that your schematic and your wirering corresponds to each other.

Page 79: Språket för inbyggda system 3

Functional prototype

William Sandqvist [email protected]

Prototyping means building an actual circuit of your design, to verify that it works, and to provide a physical platform for debugging it, if it does not.

The prototype should always be built and tested in steps, there is no debugging harder than fixing a symptom that has more than one cause.

It's always easier to find the faults one at a time!

Page 80: Språket för inbyggda system 3

Try out the function on a breadboard

William Sandqvist [email protected]

A breadboard is used to make up temporary circuits for testing or to try out an idea. No soldering is required so it is easy to change connections and replace components

Practice with the: Virtual Breadboard programware!

Page 81: Språket för inbyggda system 3

Components not spaced with the 0.1” ”standard” ?

William Sandqvist [email protected]

Electronics of today consists of complicated printed circuit boards with surface mounted components and lots of other components not spaced with the 0.1” standard.

Then, how could a non-expert do anything at all?

Page 82: Språket för inbyggda system 3

Breakoutboards!

William Sandqvist [email protected]

For prototyping there exists ”breakoutboards” to faciliate the connection of all kind of special components to the 0.1” pin space ”standard”.

Page 83: Språket för inbyggda system 3

Then you can move the function to a stripboard

William Sandqvist [email protected]

Mount and solder components on the stripboard. It’s prefabricated with the 0.1” (2,54 mm) pin space ”standard”.

Connections are made with jumper wirers. Use a track- cutter to brake the lines wherever needed.

http://www.zen22142.zen.co.uk/Prac/vero_circ/vero.htm

http://www.printedcircuitsboards.com/software/88/veroboard-stripboard-software.html

Page 84: Språket för inbyggda system 3

The ”breadboard PCB”

William Sandqvist [email protected]

There are PCB:s with the exact layout of a breadboard! First try out the circuit on the breadboard, then when it’s a stable layout, solder the components in the same way to the PCB!

Page 85: Språket för inbyggda system 3

Mockup

William Sandqvist [email protected]

Mockups are non-functional PCBs used for physical sizing.A mockup will just have a few parts on it to test where connectors should be placed, or to show the outline of the hugest components. The components could be soldered on a bare laminate with no tracks.

Page 86: Språket för inbyggda system 3

Virtual Mockup

William Sandqvist [email protected]

There are programs that can convert from a CAD-file to a 3D image!

This could be used to show the size, look, and component placements of your circuit, long before the real product exists.

http://www.matwei.de/doku.php?id=en:eagle3d:eagle3d

Page 87: Språket för inbyggda system 3

William Sandqvist [email protected]

PCB prototyping

Our LKPF facility

PCB prototypes are made by a small “in house” milling machine, a “circuit board plotter”. The PCB prototype could verify the function, and the PCB layout, before ordering a factory made PCB.

Page 88: Språket för inbyggda system 3

Factory made PCB

William Sandqvist [email protected]

If you by two cards the cost will be 1300:- ( = the same …)

Order over internet!

Your CAD can produce all the files needed …

Page 89: Språket för inbyggda system 3
Page 90: Språket för inbyggda system 3
Page 91: Språket för inbyggda system 3