© 2000 morgan kaufman overheads for computers as components the embedded systems platform zexample:...
TRANSCRIPT
![Page 1: © 2000 Morgan Kaufman Overheads for Computers as Components The embedded systems platform zExample: alarm clock](https://reader036.vdocuments.us/reader036/viewer/2022083009/5697bfe31a28abf838cb5226/html5/thumbnails/1.jpg)
© 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](https://reader036.vdocuments.us/reader036/viewer/2022083009/5697bfe31a28abf838cb5226/html5/thumbnails/2.jpg)
© 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](https://reader036.vdocuments.us/reader036/viewer/2022083009/5697bfe31a28abf838cb5226/html5/thumbnails/3.jpg)
© 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](https://reader036.vdocuments.us/reader036/viewer/2022083009/5697bfe31a28abf838cb5226/html5/thumbnails/4.jpg)
© 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](https://reader036.vdocuments.us/reader036/viewer/2022083009/5697bfe31a28abf838cb5226/html5/thumbnails/5.jpg)
© 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](https://reader036.vdocuments.us/reader036/viewer/2022083009/5697bfe31a28abf838cb5226/html5/thumbnails/6.jpg)
© 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](https://reader036.vdocuments.us/reader036/viewer/2022083009/5697bfe31a28abf838cb5226/html5/thumbnails/7.jpg)
© 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](https://reader036.vdocuments.us/reader036/viewer/2022083009/5697bfe31a28abf838cb5226/html5/thumbnails/8.jpg)
© 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](https://reader036.vdocuments.us/reader036/viewer/2022083009/5697bfe31a28abf838cb5226/html5/thumbnails/9.jpg)
© 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](https://reader036.vdocuments.us/reader036/viewer/2022083009/5697bfe31a28abf838cb5226/html5/thumbnails/10.jpg)
© 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](https://reader036.vdocuments.us/reader036/viewer/2022083009/5697bfe31a28abf838cb5226/html5/thumbnails/11.jpg)
© 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](https://reader036.vdocuments.us/reader036/viewer/2022083009/5697bfe31a28abf838cb5226/html5/thumbnails/12.jpg)
© 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](https://reader036.vdocuments.us/reader036/viewer/2022083009/5697bfe31a28abf838cb5226/html5/thumbnails/13.jpg)
© 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](https://reader036.vdocuments.us/reader036/viewer/2022083009/5697bfe31a28abf838cb5226/html5/thumbnails/14.jpg)
© 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.