Download Networking for Embedded Systems

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

CAN bus wikipedia , lookup

Industry Standard Architecture wikipedia , lookup

I²C wikipedia , lookup

VMEbus wikipedia , lookup

Direct memory access wikipedia , lookup

Low Pin Count wikipedia , lookup

Bus (computing) wikipedia , lookup

Transcript
Bus-Based Computer
Systems
Busses.
Memory devices.
I/O devices:
serial links
timers and counters
keyboards
displays
analog I/O
© 2008 Wayne Wolf
Overheads for Computers as
Components 2nd ed.
The CPU bus
Bus allows CPU, memory, devices to
communicate.
Shared communication medium.
A bus is:
A set of wires.
A communications protocol.
© 2008 Wayne Wolf
Overheads for Computers as
Components 2nd ed.
Bus protocols
Bus protocol determines how devices
communicate.
Devices on the bus go through sequences
of states.
Protocols are specified by state machines,
one state machine per actor in the protocol.
May contain asynchronous logic behavior.
© 2008 Wayne Wolf
Overheads for Computers as
Components 2nd ed.
Four-cycle handshake
device 1
enq
device 1
device 2
ack
device 2
1
© 2008 Wayne Wolf
Overheads for Computers as
Components 2nd ed.
2
3
4
time
Four-cycle handshake,
cont’d.
1.
2.
3.
4.
Device
Device
Device
Device
© 2008 Wayne Wolf
1
2
2
1
raises enq.
responds with ack.
lowers ack once it has finished.
lowers enq.
Overheads for Computers as
Components 2nd ed.
Microprocessor busses
 Clock provides
synchronization.
 R/W is true when
reading (R/W’ is false
when reading).
 Address is a-bit bundle
of address lines.
 Data is n-bit bundle of
data lines.
 Data ready signals
when n-bit data is
ready.
© 2008 Wayne Wolf
Overheads for Computers as
Components 2nd ed.
Timing diagrams
© 2008 Wayne Wolf
Overheads for Computers as
Components 2nd ed.
Bus read
© 2008 Wayne Wolf
Overheads for Computers as
Components 2nd ed.
State diagrams for bus
read
Get
data
Send
data
Done
See
ack
Ack
Adrs
Wait
CPU
© 2008 Wayne Wolf
Release
ack
Adrs
Wait
start
Overheads for Computers as
Components 2nd ed.
device
Bus wait state
© 2008 Wayne Wolf
Overheads for Computers as
Components 2nd ed.
Bus burst read
© 2008 Wayne Wolf
Overheads for Computers as
Components 2nd ed.
Bus multiplexing
data enable
device
data
CPU
adrs
adrs
Adrs enable
© 2008 Wayne Wolf
Overheads for Computers as
Components 2nd ed.
DMA
Direct memory access
(DMA) performs data
transfers without
executing
instructions.
CPU sets up transfer.
DMA engine fetches,
writes.
DMA controller is a
separate unit.
© 2008 Wayne Wolf
Overheads for Computers as
Components 2nd ed.
Bus mastership
By default, CPU is bus master and initiates
transfers.
DMA must become bus master to perform
its work.
CPU can’t use bus while DMA operates.
Bus mastership protocol:
Bus request.
Bus grant.
© 2008 Wayne Wolf
Overheads for Computers as
Components 2nd ed.
DMA operation
 CPU sets DMA registers
for start address, length.
 DMA status register
controls the unit.
 Once DMA is bus master,
it transfers automatically.
May run continuously until
complete.
May use every nth bus
cycle.
© 2008 Wayne Wolf
Overheads for Computers as
Components 2nd ed.
Bus transfer sequence
diagram
© 2008 Wayne Wolf
Overheads for Computers as
Components 2nd ed.
System bus configurations
Multiple busses allow
parallelism:
CPU
A bridge connects
two busses.
© 2008 Wayne Wolf
bridge
Slow devices on one
bus.
memory
Fast devices on
separate bus.
slow device
slow device
high-speed
device
Overheads for Computers as
Components 2nd ed.
Bridge state diagram
© 2008 Wayne Wolf
Overheads for Computers as
Components 2nd ed.
ARM AMBA bus
 Two varieties:
AHB is high-performance.
APB is lower-speed, lower
cost.
 AHB supports pipelining,
burst transfers, split
transactions, multiple bus
masters.
 All devices are slaves on
APB.
© 2008 Wayne Wolf
Overheads for Computers as
Components 2nd ed.
Memory components
Several different
types of memory:
DRAM.
SRAM.
Flash.
Each type of memory
comes in varying:
Capacities.
Widths.
© 2008 Wayne Wolf
Overheads for Computers as
Components 2nd ed.
Random-access memory
Dynamic RAM is dense, requires refresh.
Synchronous DRAM is dominant type.
SDRAM uses clock to improve performance,
pipeline memory accesses.
Static RAM is faster, less dense, consumes
more power.
© 2008 Wayne Wolf
Overheads for Computers as
Components 2nd ed.
SDRAM operation
© 2008 Wayne Wolf
Overheads for Computers as
Components 2nd ed.
Read-only memory
ROM may be programmed at factory.
Flash is dominant form of fieldprogrammable ROM.
Electrically erasable, must be block erased.
Random access, but write/erase is much
slower than read.
NOR flash is more flexible.
NAND flash is more dense.
© 2008 Wayne Wolf
Overheads for Computers as
Components 2nd ed.
Timers and counters
Very similar:
a timer is incremented by a periodic signal;
a counter is incremented by an
asynchronous, occasional signal.
Rollover causes interrupt.
© 2008 Wayne Wolf
Overheads for Computers as
Components 2nd ed.
Watchdog timer
Watchdog timer is periodically reset by
system timer.
If watchdog is not reset, it generates an
interrupt to reset the host.
interrupt
host CPU
© 2008 Wayne Wolf
reset
watchdog
timer
Overheads for Computers as
Components 2nd ed.
Switch debouncing
A switch must be debounced to multiple
contacts caused by eliminate mechanical
bouncing:
© 2008 Wayne Wolf
Overheads for Computers as
Components 2nd ed.
Encoded keyboard
An array of switches is read by an
encoder.
N-key rollover remembers multiple key
depressions.
row
© 2008 Wayne Wolf
Overheads for Computers as
Components 2nd ed.
LED
Must use resistor to limit current:
© 2008 Wayne Wolf
Overheads for Computers as
Components 2nd ed.
7-segment LCD display
May use parallel or multiplexed input.
© 2008 Wayne Wolf
Overheads for Computers as
Components 2nd ed.
Types of high-resolution
display
Liquid crystal display (LCD) is dominant
form.
Plasma, OLED, etc.
Frame buffer holds current display
contents.
Written by processor.
Read by video.
© 2008 Wayne Wolf
Overheads for Computers as
Components 2nd ed.
Touchscreen
Includes input and output device.
Input device is a two-dimensional
voltmeter:
© 2008 Wayne Wolf
Overheads for Computers as
Components 2nd ed.
Touchscreen position
sensing
ADC
voltage
© 2008 Wayne Wolf
Overheads for Computers as
Components 2nd ed.
Digital-to-analog
conversion
Use resistor tree:
R
bn
bn-1
bn-2
Vout
2R
4R
8R
bn-3
© 2008 Wayne Wolf
Overheads for Computers as
Components 2nd ed.
Flash A/D conversion
N-bit result requires 2n comparators:
Vin
encoder
...
© 2008 Wayne Wolf
Overheads for Computers as
Components 2nd ed.
Dual-slope conversion
Use counter to time required to
charge/discharge capacitor.
Charging, then discharging eliminates
non-linearities.
Vin
© 2008 Wayne Wolf
timer
Overheads for Computers as
Components 2nd ed.
Sample-and-hold
Samples data:
Vin
© 2008 Wayne Wolf
converter
Overheads for Computers as
Components 2nd ed.