Processes and operating systems
Telephone answering machine.
2008 Wayne Wolf
Overheads for Computers as Components 2nd ed.
Theory of operation
Compress audio using adaptive differential pulse code modulation (ADPCM).
analog time ADPCM
3 2 1 -1 -2 -3
time
2008 Wayne Wolf Overheads for Computers as Components 2nd ed.
ADPCM coding
Coded in a small alphabet with positive and negative values.
{-3,-2,-1,1,2,3}
Minimize error between predicted value and actual signal value.
2008 Wayne Wolf
Overheads for Computers as Components 2nd ed.
ADPCM compression system
S quantizer inverse quantizer
integrator
encoder
samples
inverse quantizer decoder
2008 Wayne Wolf Overheads for Computers as Components 2nd ed.
integrator
Telephone system terms
Subscriber line: line to phone. Central office: telephone switching system. Off-hook: phone active. On-hook: phone inactive.
2008 Wayne Wolf
Overheads for Computers as Components 2nd ed.
Real and simulated subscriber line
Real subscriber line:
90V RMS ringing signal; companded analog signals; lightning protection, etc.
Simulated subscriber line:
microphone input; speaker output; switches for ring, off-hook, etc.
2008 Wayne Wolf Overheads for Computers as Components
Requirements
Inputs Outputs Telephone: voice samples, ring. User interface: microphone, play messages button, record OGM button. Telephone: voice samples, onhook/off-hook command. User interface: speaker, # messages indicator, message light. Default mode: detects ring, signals offhook, pays OGM, records ICM Playback: play all messages, wait 5 seconds for new playback. OGM editing: OGM up to 10 sec. About 30 minutes voice (@ 8kHz). Consumer product range ($50) AC plug Comparable to desk phone.
Overheads for Computers as Components 2nd ed.
Functions
Performance Manufacturing cost Power Physical size/weight
2008 Wayne Wolf
Comments on analysis
DRAM requirement influenced by DRAM price. Details of user interface protocol could be tested on a PC-based prototype.
2008 Wayne Wolf
Overheads for Computers as Components 2nd ed.
Answering machine class diagram
1 1 1
Microphone*
Line-in* Line-out* Buttons* Speaker*
2008 Wayne Wolf
Controls
1 1 1 11
Record
1 1
* Outgoing* message *
1
1 1 1
Playback
1
Incoming* message
Lights
Overheads for Computers as Components 2nd ed.
Physical interface classes
Microphone*
sample()
Line-in*
sample() ring-indicator()
Line-out*
sample() pick-up()
Buttons* record-OGM play
Lights* messages num-messages
Speaker* sample()
2008 Wayne Wolf
Overheads for Computers as Components 2nd ed.
Message classes
Message
length start-adrs next-msg samples Incoming-message msg-time
Overheads for Computers as Components 2nd ed.
Outgoing-message length=30 sec
2008 Wayne Wolf
Operational classes
Controls operate()
Record record-msg()
Playback playback-msg()
2008 Wayne Wolf
Overheads for Computers as Components 2nd ed.
Software components
Front panel module. Speaker module. Telephone line module. Telephone input and output modules. Compression module. Decompression module.
Overheads for Computers as Components 2nd ed.
2008 Wayne Wolf
Controls activate behavior
Compute buttons, line activations Activations? Play OGM Record OGM Play ICM Wait for timeout Erase Record ICM
2008 Wayne Wolf Overheads for Computers as Components 2nd ed.
Erase
Answer Play OGM Allocate ICM
Record-msg/playback-msg behaviors
nextadrs = 0 msg.samples[nextadrs] = sample(source) F End(source) T record-msg
2008 Wayne Wolf Overheads for Computers as Components 2nd ed.
nextadrs = 0
speaker.samples() = msg.samples[nextadrs]; nextadrs++ F nextadrs=msg.length T
playback-msg
Hardware platform
CPU. Memory. Front panel. 2 A/Ds:
subscriber line, microphone.
2 D/A:
subscriber line, speaker.
2008 Wayne Wolf Overheads for Computers as Components 2nd ed.
Component design and testing
Must test performance as well as testing.
Compression time shouldnt dominate other tasks.
Test for error conditions:
memory overflow; try to delete empty message set, etc.
2008 Wayne Wolf
Overheads for Computers as Components 2nd ed.
System integration and testing
Can test partial integration on host platform; full testing requires integration on target platform. Simulate phone line for tests:
its legal; easier to produce test conditions.
2008 Wayne Wolf
Overheads for Computers as Components 2nd ed.