Modem Control Logic controls the interface
with the MODEM or data set (or a peripheral
device emulating a MODEM).
A P P L I C A T I O N
addr
addr(2:0)
clk
rst
baudclk
rclk
addr
latch
Interrupt Controller - D16450 consists fully
prioritized interrupt system controller.
It
CPU
ale
D16450
controls interrupt requests to the CPU and
interrupt priority. Interrupt controller contains
datao(7:0)
datai(7:0)
datai(7:0)
datao(7:0)
wr
rd
cs
intr
so
si
Interrupt
Enable
(IER)
and
Interrupt
Identification (IIR) registers.
we
rd
cs
int
rts
dtr
dsr
dcd
cts
ri
EIA
Drivers
Receiver
Control
addr(2:0)
datai(7:0)
datao(7:0)
rclk
rclken
si
out1
out2
&
Shift Register
rd
wr
cs
Data Bus
Buffer
baudclken
rclken
Transmitter
Control
ddis
so
&
Typical D16450 and processor connection is
shown in figure above.
Shift Register
Interrupt
Controller
B L O C K D I A G R A M
rts
cts
dtr
dsr
dcd
ri
out1
out2
Data Bus Buffer - The data Bus Buffer
accepts inputs from the system bus and
generates control signals for the other D14750
functional blocks. Address bus ADDR(2:0)
selects one of the register to be read
from/written into. Both RD and WE signals are
active low, and are qualified by CS; RD and
WE are ignored unless the D16450 has been
selected by holding CS low.
Modem
control
logic
baudclk
baudclken
baudout
Baud
Generator
clk
rst
Receiver Control - Receiving starts when the
falling edge on Serial Input (SI) during IDLE
State is detected. After starting the SI input is
sampled every 16 internal baud cycles as it is
shown in figure below. When the logic 1 state
is detected during START bit it means that the
False Start bit was detected and receiver back
to the IDLE state.
Baud Generator - The D16450 contains a
programmable 16 bit baud generator that
divides clock input by a divisor in the range
between 1 and (216–1). The output frequency
of the baud generator is 16× the baud rate.
The formula for the divisor is:
Transmitter
Control
module
controls
frequency
transmission of written to THR (Transmitter
Holding register) character via serial output
SO. The new transmission starts on the next
overflow signal of internal baud generator,
after writing to THR register or Transmitter
FIFO. Transmission control contains THR
register and transmitter shift register.
divisor =
baudrate *16
Two 8-bit registers, called divisor latches DLL
and DLM, store the divisor in a 16-bit binary
format. These divisor latches must be loaded
during initialization of the D16450 in order to
ensure desired operation of the baud
generator. When either of the divisor latches
is loaded, a 16-bit baud counter is also loaded
on the CLK rising edge following the write to
DLL or DLM to prevent long counts on initial
load.
All trademarks mentioned in this document
are trademarks of their respective owners.
http://www.DigitalCoreDesign.com
http://www.dcd.pl
Copyright 1999-2007 DCD – Digital Core Design. All Rights Reserved.