© 2000 morgan kaufman overheads for computers as components the embedded systems platform zexample:...

14
© 2000 Morgan Kaufman Overheads for Computers as Components The embedded systems platform Example: alarm clock

Upload: annabel-leonard

Post on 18-Jan-2016

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: © 2000 Morgan Kaufman Overheads for Computers as Components The embedded systems platform zExample: alarm clock

© 2000 Morgan Kaufman

Overheads for Computers as Components

The embedded systems platform

Example: alarm clock

Page 2: © 2000 Morgan Kaufman Overheads for Computers as Components The embedded systems platform zExample: alarm clock

© 2000 Morgan Kaufman

Overheads for Computers as Components

Alarm clock interface

Alarm on Alarm off

Alarmready

settime

setalarm

hour minutelight

button

PM buzzer

Page 3: © 2000 Morgan Kaufman Overheads for Computers as Components The embedded systems platform zExample: alarm clock

© 2000 Morgan Kaufman

Overheads for Computers as Components

Operations

Set time: hold set time, depress hour, minute.

Set alarm time: hold set alarm, depress hour, minute.

Turn alarm on/off: depress alarm on/off.

Page 4: © 2000 Morgan Kaufman Overheads for Computers as Components The embedded systems platform zExample: alarm clock

© 2000 Morgan Kaufman

Overheads for Computers as Components

Alarm clock requirements

name alarm clockpurpose 24-hour digital clock with one alarminputs set time, set alarm, hour, minute, alarm on/offoutputs four-digit display, PM indicator, alarm ready, buzzerfunctions keep time, set time, set alarm, turn alarm on/off,

activate buzzer by alarmperformance hours and digits, no seconds; not high precisionmanufacturingcost

consumer product

power ACphysicalsize/weight

fits on stand

Page 5: © 2000 Morgan Kaufman Overheads for Computers as Components The embedded systems platform zExample: alarm clock

© 2000 Morgan Kaufman

Overheads for Computers as Components

Alarm clock class diagram

Lights* Display Mechanism

Buttons*

Speaker*

1 1 1 1

1

1

1

1

Page 6: © 2000 Morgan Kaufman Overheads for Computers as Components The embedded systems platform zExample: alarm clock

© 2000 Morgan Kaufman

Overheads for Computers as Components

Alarm clock physical classes

Lights*

digit-val()digit-scan()alarm-on-light()PM-light()

Buttons*

set-time(): booleanset-alarm(): booleanalarm-on(): booleanalarm-off(): booleanminute(): booleanhour(): boolean

Speaker*

buzz()

Page 7: © 2000 Morgan Kaufman Overheads for Computers as Components The embedded systems platform zExample: alarm clock

© 2000 Morgan Kaufman

Overheads for Computers as Components

Display class

Display

time[4]: integeralarm-indicator: booleanPM-indicator: boolean

set-time()alarm-light-on()alarm-light-off()PM-light-on()PM-light-off()

Page 8: © 2000 Morgan Kaufman Overheads for Computers as Components The embedded systems platform zExample: alarm clock

© 2000 Morgan Kaufman

Overheads for Computers as Components

Mechanism classMechanism

Seconds: integerPM: booleantens-hours, ones-hours: booleantens-minutes, ones-minutes: booleanalarm-ready: booleanalarm-tens-hours, alarm-ones-hours: booleanalarm-tens-minutes, alarm-ones-minutes: booleanscan-keyboard()update-time()

Page 9: © 2000 Morgan Kaufman Overheads for Computers as Components The embedded systems platform zExample: alarm clock

© 2000 Morgan Kaufman

Overheads for Computers as Components

Update-time behavior

update secondswith rollover

update hh:mmwith rollover

Rollover?T

F

PM=true PM=false

AM->PM PM->AM

display.set-time(current time)

Time >= alarm and alarm-on?

alarm.buzzer(true)

T

F

Page 10: © 2000 Morgan Kaufman Overheads for Computers as Components The embedded systems platform zExample: alarm clock

© 2000 Morgan Kaufman

Overheads for Computers as Components

Scan-keyboard behavior

compute button activations

alarm-ready=true

alarm-ready=false

alarm.buzzer(false)

Increment timetens w. rollover

and AM/PM

Increment timeones w. rollover

and AM/PM

save buttonstates

Alarm-on

Alarm-off

Set-time andnot set-alarmand hours

Set-time andnot set-alarmand minutes

Page 11: © 2000 Morgan Kaufman Overheads for Computers as Components The embedded systems platform zExample: alarm clock

© 2000 Morgan Kaufman

Overheads for Computers as Components

System architecture

Includes: periodic behavior (clock); aperiodic behavior (buttons, buzzer

activation).Two major software components:

interrupt-driven routine updates time; foreground program deals with buttons,

commands.

Page 12: © 2000 Morgan Kaufman Overheads for Computers as Components The embedded systems platform zExample: alarm clock

© 2000 Morgan Kaufman

Overheads for Computers as Components

Interrupt-driven routine

Timer probably can’t handle one-minute interrupt interval.

Use software variable to convert interrupt frequency to seconds.

Page 13: © 2000 Morgan Kaufman Overheads for Computers as Components The embedded systems platform zExample: alarm clock

© 2000 Morgan Kaufman

Overheads for Computers as Components

Foreground program

Operates as while loop:while (TRUE) {

read_buttons(button_values);

process_command(button_values);check_alarm();

}

Page 14: © 2000 Morgan Kaufman Overheads for Computers as Components The embedded systems platform zExample: alarm clock

© 2000 Morgan Kaufman

Overheads for Computers as Components

Testing

Component testing: test interrupt code on the platform; can test foreground program using a

mock-up.System testing:

relatively few components to integrate; check clock accuracy; check recognition of buttons, buzzer, etc.