6.0 Musical Instrument Digital Interface (MIDI) Port (Continued)
97
www.national.com
Figure 18. MIDI Port Block Diagram
6.2.1
Internal Bus Interface Unit
The Internal Bus Interface Unit handles all read and write transactions between the host and the registers of the MIDI Port.
It also controls the MIDI Port interrupt request logic (see
Section 6.2.8).6.2.2
Port Control and Status Registers
the operation of the MIDI, and provide status information regarding its various functional units. A Command register (MCOM,
see
Section 6.3.5) allows the user to control the operation mode of the MIDI Port by serving as a port via which the host can
issue commands to the MIDI. A MIDI Port command is defined as a write access to the MIDI Command register. The mean-
ing of each command is determined by the data byte written during this write access.
6.2.3
Data Buffers and FIFOs
The Data Buffers and FIFOs function as a mechanism for synchronizing between the Internal Bus Interface Unit and the
MIDI Communication Engine. This synchronization allows each of these units to handle its own tasks without having to
pause to send/receive data to/from the other unit. Synchronization also bridges the gap in the data transfer rate between
these two units. Data transfer rate matching is done when the FIFOs of the MIDI Port are enabled. It allows the MIDI Port to
interface a bus at a relatively high data transfer rate, while maintaining communication with a MIDI device over a communi-
cation channel that supports a relatively low data transfer rate.
6.2.4
MIDI Communication Engine
The MIDI Communication Engine handles the serializing of outgoing data and the de-serializing of incoming data transferred
between the MIDI Port and the MIDI device. During transmit (serial data transfer from the MIDI Port to the MIDI device), the
Communication Engine receives data bytes from the output data buffer or FIFO, serializes them into a stream of data bits,
and transmits them as a sequence of high and low pulses over the MDTX pin according to the MIDI communication protocol.
During receive (serial data transfer from the MIDI device to the MIDI Port), the Communication Engine receives a sequence
of high and low pulses via the MDRX pin, converts them into a stream of data bits and de-serializes them into data bytes
that it sends to the input data buffer or FIFO.
Both transmit and receive are performed at a fixed serial data rate of 31.25 Kbits per second. The serial data format is also
fixed, and consists of 1 Start bit, 8 Data bits and 1 Stop bit. See the waveform illustrating a MIDI byte transfer in
Figure 19.
Internal
Interface
MIDI
Routing
Control
Signals
MIDI
Communication
Engine
Data
Buffers
and
FIFOs
MDTX Pin
MDRX Pin
MIDI
Transmit
Signal
MIDI
Receive
Signal
(Data Serializer)
8
Bus
Control
Tx Data
Rx Data
SuperI/O
Internal
Bus
MIDI Port
Control and Status
Registers
Read/Write
Interface
Routing
Control
Data Buffer
Status and Control
Communication
Status and Control
Asynchronous
Synchronous
Interface
Unit
8
Control
Tx Data
Rx Data