The Etherphone Digital Board
The Etherphone system includes:
Thrush -- Cedar based control
Bluejay -- Cedar based Voice File Server
Workstations -- (user interface)
Lark -- Etherphone
Lark software includes:
Alto style open OS
Pup package
RPC
Voice protocol code
Smarts RPC interface to Thrush
Lark hardware includes:
Power supply, chassis
User terminal devices (Telephone etc.)
Analog board
Locator board (not yet designed)
Digital Board
Lark digital board includes:
Main CPU (OS, protocol, I/O drivers, etc.)
Ethernet, Encryption, RS232, PIO, Interrupts
Shared memory
Slave CPU (voice data handling)
Lark Digital Board Hardware
Main system
8088 CPU
8K bytes EPROM
monitor, refresh, downloading
Interrupt controller
Encryption, Ethernet, RS232, Offboard
DMA Encryption
900 Kbps hardware, 700 Kbps incl. software
Ethernet
1.5 Mbps, MEC Shared Line Controller
2 RS232 channels
6 Timer channels
Refresh, RS232, T1 timing, SLCHoldOff
48 pins of parallel I/O
17 on-board, 31 off-board
Lark Digital Board Hardware
Memory System
Bus arbitration for memory: CPU, Ethernet, Slave CPU
64 Kbyte dynamic ram
Slave system
8088 CPU
8 K bytes EPROM
audio signal processing and data handling, translation tables
2 K bytes RAM
scratch space, soft-loadable code and tables
T1 input and output shift registers
Slave Processor Program Functions
Move digital voice samples between shared memory and local memory.
Combine voice streams for conference calls
Gain control for echo supression
Silence detection for bandwidth reduction
Move voice samples between local memory and T1 digital voice I/O device.
Synchronization with SLC and with T1.
What is T1?
T1 line is a 1.536 Mbps serial bus.
24 8-bit slots, 8000 frames per second.
Direct interface to U255 Codecs ( A/D, D/A )
Slave Processor Program Organization
The loop must execute in 125 microseconds.
The loop is unrolled eight times.
Communications via shared memory:
Four 320 byte "ring buffers"
Ten word command area
Two programs:
Conference calls and tones
Independent conversations
Later a third program for speakerphone service.
Translation tables:
U255 -> linear, 0 dB (256 words)
U255 -> linear, -3 dB (256 words)
U255 -> linear, -6 dB (256 words)
U255 -> U255, 0 dB (256 bytes)
U255 -> U255, -5 dB (256 bytes)
U255 -> U255, -10 dB (256 bytes)
U255 -> U255, -15 dB (256 bytes)
U255 -> U255, -20 dB (256 bytes)
linear -> U255, (2048 bytes)
U255 -> silence function, (256 words)
Slave Processor Program Organization
LoopO3I1 -- Conference Calls
0Read input gain, read output gain
Write sample pointer
Write silence value (end of packet)
1Read Output Buffer 1
2Read Output Buffer 2
3Read Output Buffer 3
4Write Input Buffer
5Write zeros in OutBuf1
6Write zeros in OutBuf2
7Write zeros in OutBuf3
LoopO2I2 -- Independent conversations
0Write sample pointer
Write silence values 1 & 2
(end of packet)
1 Read Output Buffer 1
2 Read Output Buffer 2
3 Write Input Buffer 2
4 Write Input Buffer 1
5 Write zeros in OutBuf1
6 Write zeros in OutBuf2
7 Read Input 1 gain
Read Input 2 gain