Embedded Systems
Detour: Number Systems
Humans work in Base Ten (Decimal)
Each digit is 0!" each #lace is $0%#lace
&om#uters work in Base Two (Binary)
Each digit is 0 or $" each #lace is '%#lace
(ost de)ices use *Two+s &om#liment, which allows -or
signs with only the two symbols.
Decimal/-ractional numbers are usually re#resented as
0loating 1oint Numbers (*0loats,) that use se)eral
number -ields
2-ten He3adecimal (He3 4 Base $5" symbols 00) or
2ctal (Base 6" symbols 07) are used as a
com#romise
Embedded Systems
&om#uters" customi8ed -or a s#eci-ic task
9ange in si8e and com#le3ity -rom -lashlights to
air#lanes.
(ost o-ten" (icrocontrollers
0i3ed (emory" 9:(" &1; and </2 on one chi#.
2ther -la)ors:
:S<&
01=:/1rogrammable >ogic
DS1
Single Board &om#uters
S#ecial 0unction &om#uters
History
D$7 &om#uter ((inuteman (issiles) in $!5$
:#ollo =uidance &om#uter in $!55
<ntel ?00? Single&hi# &1; in $!7$
T< T(S $000 in $!7$$!7?
1owers the S#eakandS#ell
:tmel and (icrochi# introduce #rogrammable
models in $!!@.
D$7 D$7
?00? 1ackage
?00? (ask
T(S$000
:natomy
:ttached to something to (onitor and/or
&ontrol
>ess usermodi-iable
;sually less #ower-ul
(any embedded com#uters #er recogni8able
com#uter.
<ncluding se)eral <NS<DE the com#uter.
S&:D: 4 Su#er)isory Control And Data
AcAuisition
(icrocontroller 0amilies
2rder o- '0 common -amilies in circulation
(any more obscure designs around.
(any are closely related to or directly
descended -rom *0ull, com#uters.
6Bit micros make u# about hal- the &1;s sold
e)ery year.
6Bit
60B$ 4 Since $!60" but direct descendent o-
<ntel+s (&S?6 -rom $!75.
1<& *1eri#heral <nter-ace &ontroller,
ubiAuitous" around since $!7B.
56H&$$ 4 u& cousin o- the (otorola 5600 -rom
$!6B.
C60 4 0ancier <ntel 6060" same #arent as 365
1&s.
:D9 4 :tmel+s line -rom $!!5" descendent o-
Norweigan college students+ design.
$5 and @' Bit
(S1?@0 4 T< $5bit design" -rom the $!!0s" like
a 1D1$$.
:9( 4 Designed -or 1&s in $!67" good -or
mobile" licensed to e)eryone.
&old0ire 4 (otorola 56E+s embedded )ariant.
F65 Embedded Boards
:rduino
1roGect started in <)rea" <taly in '00B
Based on earlier 1rocessing and Hiring #roGects.
E--ort to make u&s accessible to hobbyists"
artists" and other nonengineers.
Based on an :D9 :T(ega6 -amily #art
&II like language" Ja)a <DE
=reat -or ra#id #rototy#ing
>EDs
>ight Emitting Diode
9eAuires a &urrent >imiting 9esistor
Embedded De)elo#ment Two
1utting 1arts Together
Breadboard
Each numbered row is
connected internally" u# to the
middle se#arator.
Each marked Bus &olumn is
connected internally
Sometimes s#it in the middle
D<1 <&s straddle the middle
=ood -or #rototy#ing" bad -or
reliability and sensiti)e signals.
Breadboard Best 1ractices
Neatness &ounts. : lot.
&olor &ode wires
;se wires o- a##ro3imately the correct length
Start with <&s 4 always orient them the same way
Then add #ower and ground
Then add internal connections
Then add chi#tochi# connections
Then e)erything else
Ta#e -lags and other labels are your -riend
Now HhatK
Breadboards are e3#ensi)e" laborintensi)e" bulky" and -ragile.
Hire Hra#
2ut o- )ogue" #ointto#oint wired on long #ins
1er-board
:ccessible and ;ni)ersal
Not re#eatable" error #rone
1rinted &ircuit Boards
Design with &:D so-tware" like gED: and E:=>E
Send away
;se co##erclad with #rinter or #hoto trans-er and chemical baths.
2r" a mill it
Hobby tool called 0rit8ing
E3am#les
Hire Hra#
Household Etching
1er-board D. 1&B
Buttons and Switches
: sim#le button Gust makes or breaks a
connection
Need some kind o- reliable binary on/o--
;nconnected #in L ;nknown )alue
1ull a signal between Dcc and =nd
Dead 8one between $ and 0 )oltage *Hysteresis,
1ullu# and 1ulldown 9esistors
(any kinds o- switch
Buttons and Switches (cont+d)
S1ST
Single1ole Single
Throw
S1DT
Single1ole" Double
Throw
N&/N2 Normally Connected / Normally O#en
1ullu# and 1ulldown
<ntegrated 1ullu#s
(any de)ices" es#ecially microcontrollers" ha)e
builtin #ullu# resistors
Enable in so-tware when setting u# a #in/#ort
2n an :rduino" the -ollowing code will #ull u#
an in#ut #in.
pinMode(pin, INPUT); // set pin to input
digitalWrite(pin, HIGH); // turn on pullup
resistors
Switch Bounce
0li##ing a switch or #ressing a button doesn+t
make a single clean transition
9ead too -ast" get the wrong )alue
E3tra e)ents on *when the switch changes,
Switch bounce image courtesy o- (a3im Semiconductor
Handling Bounce
Hardware (ethods
9& &ircuit
>atch
(onostable
multi)ibrator
Timer
State machine
&ommon -actor:
9eAuire additional
#arts.
So-tware (ethods
0i3ed Delay
Timer/&om#arator
Debouncing on the :rduino
int val;
int val2;
int buttontate;
void loop()!
val " digital#ead(s$it%&Pin);
dela'(());
val2 " digital#ead(s$it%&Pin);
i* (val "" val2) !
//+%t on Input &ere
E3am#le -rom >ady:da.net :rduino Tutorial
Alternative technique example at:
http://www.arduino.cc/en/Tutorial/Debounce
&ommunication
(ain &hoices:
Serial )s. 1arallel
Serial reAuires -ewer #ins
1arallel allows more data #er action
Di--erent decoding reAuirements
Synchronous )s. :synchronous
:synchronous reAuires a start/sto# symbol
Synchronous reAuires a se#arate sync signal
1arallel 1rotocols
Bundles o- Discrete
>ogic Signals
2ne Hot/Encoded
symbols
<EEE $'6? 1&
1arallel 1ort
1&< (not e3#ress)
Serial 1rotocols
&hea#er to im#lement (&ables and
transcei)ers)
>ess susce#tible to inter-erence
&rosstalk" &lock Skew
S#eed issue:
2nly one bit mo)ed at a time
&om#le3ity 2-ten discussed )ia Hire &ount
!wire" Bwire ?wire" @wire" 'wire and $wire
common
&ommon 1rotocols
9S'@'
0rom $!5'
&om#liant designs must handle M'BD
(ost don+t" and run at @.@D or BD
S1< (*0our Hire,)
Built in to many u& designs" including :tmega6
<'& (*Two Hire,)
S(Bus (com#uter sensors) is a subset
$Hire
2nly one wire and a ground connection
9S'@'
2#tion con)entions
S#eed: $'00" '?00" ?600" !500" $??00" $!'00"
@6?00" B7500 and $$B'00 bit/s
(Data/1arity/Sto#)
Data: Number o- data bits #er -rame" B"5"7" 8 or !
1arity : None" Odd" )en" !ark" or S#ace
Sto#: Number o- sync bits at end o- -rame (usually $)
0low &ontrol
9TS/&TS" DT9/DS9 (using wires)
F2N/F200 (esca#ed Signals)
None or Higher >e)el
<'&/TH<
Dery #o#ular -or small" low #ower board integration
;# to $$' De)ices
2ne master" switchable at any time
$00Ebit/s low #ower mode" u# to @.?(bit/s high s#eed
mode
Single Ended
2ne Hire signals" one wire carries re-erence
&lock Stretching
:ny sla)e de)ice can hold the clock until it is ready to res#ond
:rduino
Has S1< and 9S'@' Su##ort
&ommunication between the :rduino and 1&
are )ia 9S'@' !500 (6/N/$)
Bridged -rom ;SB with 0TD< 0T'@'9> or
#rogrammed :Tmega6;'
Serial library is always included
Serial.begin(!500)N in setu#
Serial.#rintln()N to write
Ha)e to Oinclude PS1<.hQ -or S1< su##ort
Homework
Hrite a sketch that correctly counts the number
o- times a button attached to the :rduino has
been #ressed" and #rints it to the serial monitor.
Bring a co#y o- your code to turn in ne3t week.
:nalog </2
Datasheets
Digital De)ices" :nalog Horld
:nalog L &ontinuous Time" &ontinuous Dalue
Digital L Discrete Time" Discrete Dalue
(icrocontrollers" like all modern com#uters" are
digital de)ices.
The world is an analog #lace
<n#ut: :nalog to Digital &on)erters (:D&)
2ut#ut: Digital to :nalog &on)erters (D:&)
Terminology
9ange
The s#ectrum o- )alues a de)ice can manage
;sually Dolts" ;sually limited usercon-iguration
Hatch limits: BD to IBD is not the same as 0$0D
9esolution
The number o- discrete le)els a de)ice can encode
2-ten Auoted in Bits
EAui)alently: The smallest change the de)ice can detect/#roduce
2-ten Auoted in Dolts/Di)
9ate
How -ast/o-ten the signal is sam#led
(ust be twice as -ast as the -astest signal to be sam#led (NyAuist4
Shannon sam#ling theorem)
Terminology" contd.
Signaltonoise
The relati)e si8e o- the desired signal to
background signals
2-ten Auoted in dB 4 $0Rlog
$0
()alue)
>inearity
(ost :D&s designed so each ste# is the same si8e
Non>inearity measures the de)iation -rom that ideal
Some :D&s are intentionally nonlinear
Einds o- D:&
9'9 9esistor >adders
Thermometercoded D:&
Doltage source #er out#ut )alue
Turn on the closest match
DE9S e3#ensi)e
(ost D:& is accom#lished with 1H(
1H( 4 1ulse Hidth (odulation
9eAuires only one #in" and a timer
1H(
&arrier 0reAuency
>imiting -actor: &ounter
resolution
0ilter to smooth out the
#ulses
(any de)ices reAuire
no -iltering
>ights ha)e 1ersistence
o- Dision
(otors ha)e <nductance
<mage courtesy o- :rduino.cc
Einds o- :D&
:bout a do8en common )arieties
Tradeo-- between com#le3ity and S#eed
(any designs use a D:&" and a &om#arator to
iterati)ely match the in#ut
Design goal: >owest su--icient resolution
:)ailable as discrete com#onents
;sually builtin to u&s" included in some
sensors.
0lash :D&
>arge bank o- com#arators
Tests against each #ossible
encoded )alue
The closest match is selected
'
N
4 $ com#arators -or N bits o-
resolution
E3tremely -ast
E3tremely e3#ensi)e
Hard to manu-acture
SubGect to noise
=enerally low resolution
9am# &om#are
;ses a D:& to create a com#arison signal
Single com#arator continuously com#ares in#ut
to generated signal
9e#eatedly *ram#s, D:& o)er the range
9ecords D:& )alue when signals match
<mage -rom htt#://www.allaboutcircuits.com/)olT?/ch#tT$@/B.html
Successi)e :##ro3imation
1er-orms a binary search o-
the range with a D:& and
com#arator
Set -irst bit to $N generate )alue
on D:&N com#are.
<- D
in
PD
dac
" reset to 0N else" kee#
bit as $
9e#eat -or ne3t bit
Turn on E2& when match
achie)ed
Slow" but relati)ely sim#le and
#rotected -rom errors
:rduino
:nalog9ead()
Successi)e :##ro3imation :D&
5 channels" $0bit resolution" $0kH8
Builtin :9E0
analog9e-erence(ty#e)
Ty#e is DE0:;>TLBD" <NTE9N:>L$.$D" EFTE9N:>
:nalogHrite()
1H(
?!0H8 carrier
: -inal :ssignment
;sing the #arts and skills -rom the unit" and
anything else you might want to include" build
something ni-ty.
He ha)e a #ool o- e3tra #arts a)ailable:
7Segment >ED Dis#lay
9=B (tricolor) >ED (&olor mi3ing)
1ie8o Bu88er (Tiny" tinny" directly dri)able s#eaker)
Tem#erature Sensor
9eading Datasheets
Eey skill" de)elo#ed by #ractice
0ormats N2T well standardi8ed" e)en -or
similar #arts
>argely about -iltering -or what you want
Eind o- an art
0inal assignment #arts (and some other bits
and #ieces) as e3am#les
:cknowledgments
;nless otherwise marked" images used in this
#resentation are -rom the Hikimedia &ommons