382 lines
17 KiB
Perl
382 lines
17 KiB
Perl
[To be published in Computer Music Journal 18:4 (Winter 94)]
|
|
|
|
A Summary of the ZIPI Network
|
|
|
|
Keith McMillen*, David Simon&, and Matthew Wright*&&
|
|
*Zeta Music/Gibson Western Innovation Zone
|
|
2560 9th St. Suite 212
|
|
Berkeley, California 94710 USA
|
|
&Probitas Corporation
|
|
2570 El Camino Real, Suite 310
|
|
Mountain View, CA 94040
|
|
&&Center for New Music and Audio Technologies (CNMAT)
|
|
Department of Music, University of California, Berkeley
|
|
1750 Arch St.
|
|
Berkeley, California 94720 USA
|
|
McMillen, Matt@CNMAT.Berkeley.edu
|
|
|
|
The ZIPI network specification defines a collection of communication
|
|
protocols intended for musical instruments and other similar devices. The
|
|
network is laid out as a star-shaped token-passing ring with a hub in the
|
|
center. One device, typically the hub, monitors the general health of the
|
|
network. The protocols constitute a stack that conforms to the open systems
|
|
interconnection (OSI) model.
|
|
|
|
This is a technical introduction to the ZIPI network, summarizing the
|
|
capabilities of the protocols and the full specification. We explain briefly
|
|
what the ZIPI network does, how it works, how a network of ZIPI devices is
|
|
connected, and what is involved in building instruments to run in
|
|
conjunction with ZIPI networks.
|
|
|
|
|
|
Body and Soul
|
|
=============
|
|
|
|
The key feature of ZIPI, in our opinion, is our definition of the Music
|
|
Parameter Description Language (MPDL), an application-level protocol for
|
|
sending musical information. A complete network standard must of course
|
|
define a physical layer as well as the application layer, so this article
|
|
describes an appropriate physical layer that can handle the bandwidth and
|
|
determinacy required for a real-time interface.
|
|
|
|
Great strides are being made in networking technology with regards to
|
|
performance, cost, and features. Ethernet (Tanenbaum 1989, section 3.4.1) is
|
|
now common on many personal computers, and there are fast, deterministic
|
|
versions of it. In fact, our first prototype MPDL implementation is based on
|
|
IP/UDP (Tanenbaum 1989) and Ethernet. We are carefully keeping the nature of
|
|
the physical implementation separate from our specification of the MPDL to
|
|
allow the MPDL to run on other networks such as Apple's announced 150 MBaud
|
|
serial protocol Firewire (Teener 1994) and Lone Wolf's Medialink (Lacas,
|
|
Moses, and Warman 1993).
|
|
|
|
Unfortunately, all of these physical layers are currently much more
|
|
expensive than the US$ 5 that ZIPI interface hardware costs. We cannot
|
|
imagine that ZIPI will gain widespread acceptance if manufacturers must add
|
|
hundreds of dollars to the price of an instrument to make it
|
|
ZIPI-compatible. Therefore, we have chosen a physical layer that has
|
|
acceptable performance at a very low cost.
|
|
|
|
|
|
OSI
|
|
===
|
|
|
|
"OSI" stands for "Open Systems Interconnection." It was developed by the
|
|
International Standards Organization as model for how to divide computer
|
|
networks into various conceptual layers (Tanenbaum 1989). ZIPI's
|
|
organization conforms to this model. OSI's seven layers and their
|
|
functionality are shown in Figure 1.
|
|
|
|
[Figure 1 would go here if this weren't the ASCII version]
|
|
|
|
A possible physical layer and data link layer have been fully defined. In
|
|
addition, a network-layer naming service is specified and various
|
|
application-layer protocols have been defined. Routing, transport, session,
|
|
and presentation protocols are not specified, as we see no immediate need
|
|
for them, but hooks have been left to allow the inclusion of such protocols.
|
|
|
|
|
|
Features of the ZIPI Protocols
|
|
==============================
|
|
|
|
The following features of the ZIPI protocols are the most notable.
|
|
|
|
- Peer-to-peer architecture: Any device can send frames directly to any
|
|
other device on the ring, or to all devices at once. Up to 253 devices can
|
|
be on the ring.
|
|
|
|
- Low per-node cost: The hardware required to implement the network on a
|
|
node consists of a serial controller chip, a small PAL, and a dual
|
|
opto-isolator. The total cost is under US$ 5.
|
|
|
|
- Low development cost: We will provide sample schematics for the hardware,
|
|
the PAL equations or already-programmed PALS, and most of the software
|
|
needed to implement the lower network layers and much of the MPDL. A
|
|
manufacturer need only provide software to deal with the hardware-dependent
|
|
aspects of its node.
|
|
|
|
- Serial Communications Chip: Most of ZIPI's lower levels are taken care of
|
|
by the 8530 serial communications chip (SCC), an inexpensive, plentiful chip
|
|
found in Apple Macintosh and Silicon Graphics computers. It is a dual device
|
|
and can support both MIDI and ZIPI at the same time.
|
|
|
|
- Compatibility: The protocol works with other protocols. Specific
|
|
provision has been made to carry MIDI data over the ZIPI data-link protocol.
|
|
Hooks have been left to run other protocols as the market requires.
|
|
|
|
- Open architecture: We have published the draft specifications for the
|
|
protocols and will continue to publish revised specifications.
|
|
|
|
- Efficiency: The protocols allow the most common information to be passed
|
|
in very small frames. The token-passing network scheme uses most of the
|
|
network bandwidth for transmitting data. Typical applications would be on
|
|
the order of 95% efficient.
|
|
|
|
- Determinism: The token-passing ring guarantees that each node will get a
|
|
chance to send data whenever the token comes around the ring. Once a device
|
|
has the token, the data that it transmits is guaranteed to arrive before a
|
|
certain time, since no device has permission to talk while another holds the
|
|
token.
|
|
|
|
- Fault tolerance: The network does not fail if one of the nodes fails;
|
|
protection in the hubs will simply remove a failed node from the ring.
|
|
|
|
- OSI: The protocols conform to the OSI model, allowing ZIPI to interface
|
|
with other networks such as Ethernet or FDDI.
|
|
|
|
- Expandability: ZIPI has been designed to allow adding new features to
|
|
existing protocols or adding entirely new protocols.
|
|
|
|
- Speed: The network operates at speeds from 250 kHz and up. (Presently
|
|
available hardware will support up to 20 MHz.) The data rate is variable
|
|
depending on the capability and requirements of the devices on the network.
|
|
Initial turn-on baud rate is 250 kBaud, but there is a software protocol for
|
|
bringing the baud rate up to any speed that all devices can handle. Another
|
|
protocol allows two high-speed nodes to temporarily increase the network
|
|
speed beyond the limits of slower devices.
|
|
|
|
- Small Processor Load: Each host processor is interrupted only when it
|
|
receives a frame addressed to it. Only the monitor device must see every
|
|
frame.
|
|
|
|
- Minimal Cabling Required: Each ZIPI device needs only one cable to
|
|
connect it to the network. ZIPI cables will be inexpensive.
|
|
|
|
|
|
Network Functionality Overview
|
|
==============================
|
|
|
|
The ZIPI protocols are divided into layers according to the OSI model. The
|
|
following sections summarize network operations at the various layers.
|
|
|
|
Physical Layer
|
|
--------------
|
|
|
|
Logically, ZIPI devices are connected in a ring, in which each device passes
|
|
data to the next one around the ring. Physically, the devices are connected
|
|
in a star-shaped configuration in which each device is connected to an
|
|
active "hub" at the center of the star, as shown in Figure 2. The hub
|
|
maintains the logic of a ring by sending the data coming from each device
|
|
out to the next device in the star, as shown in Figure 3. Each connector on
|
|
each hub has a set of relays to bypass that connector if no instrument is
|
|
attached or if the attached instrument has failed or been turned off.
|
|
|
|
[Figure 2 would go here if this weren't the ASCII version]
|
|
|
|
[Figure 3 would go here if this weren't the ASCII version]
|
|
|
|
Devices are connected to the hub by a 7-wire cable with two directions of
|
|
ZIPI data flowing through it. Each direction has a clock, data, and current
|
|
line; the seventh wire is for shielding the entire cable. Each cable end is
|
|
terminated with a 7-pin DIN plug; the pin-out for 7-pin ZIPI plugs is shown
|
|
in Figure 4. ZIPI cables can also be terminated with an eight pin mini-DIN
|
|
connector to allow ZIPI interfaces to be built into laptop computers. In
|
|
that case, the pin-out is as shown in Figure 5.
|
|
|
|
[Figure 4 would go here if this weren't the ASCII version]
|
|
|
|
[Figure 5 would go here if this weren't the ASCII version]
|
|
|
|
By having one cable carry ZIPI information in two directions, each device
|
|
will need only one female 7-pin DIN connector. ZIPI hubs will have multiple
|
|
female 7-pin DIN connectors, all equivalent. A device can be attached to a
|
|
hub using a male-to-male 7-pin DIN cable. Hubs can be attached to one
|
|
another simply by cabling any connector on one to any connector on the
|
|
other. ZIPI hubs will have two LEDs per ZIPI plug, with the following
|
|
meanings:
|
|
- A device is connected and sending a clock.
|
|
- The connected device is sending data.
|
|
These LEDs should make it very easy for musicians to debug problems in their
|
|
ZIPI setup, such as malfunctioning devices, bad cables, or loose
|
|
connections. Figure 6 shows a typical hub configuration.
|
|
|
|
[Figure 6 would go here if this weren't the ASCII version]
|
|
|
|
ZIPI uses an opto-isolated current loop, like MIDI. Up to 253 devices can be
|
|
connected on a single ring. The total distance from one device to the hub
|
|
can be up to 300 meters.
|
|
|
|
The preferred implementation of a ZIPI network device is based on the 8530,
|
|
an inexpensive serial communications controller chip available from Zilog
|
|
and from AMD, or on one of its close relatives (Zilog 1992). The 8530
|
|
running in "SDLC Loop Mode" implements most of the ZIPI physical layer
|
|
protocol as well as some of the ZIPI data link layer protocol. The 8530
|
|
automatically handles most of the SDLC protocol (Tanenbaum 1989, section
|
|
4.7.1): device addressing, host processor interrupts only for matched
|
|
addresses, data framing, CRC error checking, and hardware arbitration of who
|
|
gets to talk when. It has a 4-byte FIFO buffer and supports DMA ("direct
|
|
memory access").
|
|
|
|
Data is sent packaged in SDLC frames. A token circulates around the ring;
|
|
devices are allowed to transmit only when they receive the token. When a
|
|
device has completed its transmission, it must pass the token on to the next
|
|
device on the ring. Since each device gives up the token as soon as
|
|
possible, the token goes all the way around the ring many times in a second,
|
|
ensuring that it is never very long before any particular device gets a
|
|
chance to talk.
|
|
|
|
Each ZIPI network must also have one device that implements a monitoring
|
|
function to keep the network running smoothly. (Initially, ZIPI hubs will be
|
|
capable of this monitoring function, and other devices will not, since each
|
|
network must have a hub anyway, just for connectivity. Putting monitor
|
|
functionality in the hub keeps the cost down for other devices.) First, the
|
|
monitor provides a clock for all ring communications; devices on the ring
|
|
can negotiate the speed of the clock. Second, the hub monitors the ring to
|
|
ensure that the token is circulating and that no garbage circulates on the
|
|
ring.
|
|
|
|
It is possible to have multiple monitor-capable devices; the software
|
|
protocols elect a single monitor from among the qualified devices. It is
|
|
also possible to have passive hubs that provide connectivity with no monitor
|
|
capabilities.
|
|
|
|
When a ring of ZIPI devices is formed, an automatic start-up sequence
|
|
begins. First, the ring monitor is elected. The clock rate is determined,
|
|
and all the other network setup happens automatically within a second of
|
|
connecting the ring. From the user's point of view, just turn everything on
|
|
and plug everything in and ZIPI will work fine.
|
|
|
|
|
|
Data Link Layer
|
|
---------------
|
|
|
|
The data link layer provides the following services in addition to sending
|
|
and receiving frames:
|
|
|
|
It ensures that data has been received correctly by checking the CRC
|
|
included with each frame and discarding frames in which the CRC is bad.
|
|
|
|
It sends acknowledgments of received frames (at the option of the sender).
|
|
|
|
It establishes an address for its device that is unique among devices on the
|
|
network.
|
|
|
|
It negotiates with the other devices on the network to determine the clock
|
|
speed at which the network runs. The data link layer in the device
|
|
monitoring the ring also ensures that there is a token on the ring and that
|
|
no garbage is on the ring, and notifies other devices when the clock speed
|
|
is changing.
|
|
|
|
It synchronizes the real-time clocks of all devices on the ring to within 50
|
|
msec.
|
|
|
|
|
|
Network Layer
|
|
-------------
|
|
|
|
ZIPI includes a network-layer naming protocol to allow devices on the
|
|
network to find one another either by name or by any of a large and
|
|
expandable list of characteristics. For example, the naming protocol allows
|
|
a device to search the network for "synthesizers that can accept data at 1.0
|
|
Mb per second or faster and that run ZIPI protocol version 1.1 or later."
|
|
|
|
|
|
Application Layer(s)
|
|
--------------------
|
|
|
|
ZIPI will contain multiple application layer protocols. They include the
|
|
following:
|
|
|
|
- The Music Parameter Description Language: The MPDL is a language for
|
|
describing music. It delivers musical parameters (such as articulation,
|
|
brightness, etc.) to notes or groups of notes. This language is fully
|
|
described in another article earlier in this issue of *Computer Music
|
|
Journal*.
|
|
|
|
- MIDI: The MIDI protocol can be sent through the ZIPI network, converted
|
|
back to the MIDI physical layer, and used to control a MIDI device on the
|
|
other end.
|
|
|
|
- Patch Dumps: Patch dump messages will include the manufacturer ID,
|
|
instrument ID, patch name, and patch number, in a universal format, followed
|
|
by any arbitrary amount of manufacturer-specific binary data. This allows
|
|
any patch librarian to work with any ZIPI synthesizer, without knowing the
|
|
patch data format.
|
|
|
|
- Sample Dumps: There will be a standard format for sending digital audio
|
|
over ZIPI, with a file format to be determined.
|
|
|
|
- Data Dump Protocol: A format will be defined for transferring
|
|
unrestricted binary data, such as memory dumps, inter-computer
|
|
communication, compiled software, etc. over ZIPI.
|
|
|
|
- Error messages: ZIPI devices with limited user interfaces can send
|
|
ASCII-encoded error messages, which will be picked up and displayed to the
|
|
user by another device, e.g., a computer.
|
|
|
|
- Other Application Layer Protocols: Other application layer protocols may
|
|
include: mixer automation, lighting, and effects control (yet undefined);
|
|
machine control/synchronization (yet undefined); and images, sound, and
|
|
gestures for virtual reality (yet undefined). There is room to add
|
|
potentially thousands of more application layers in the future.
|
|
|
|
|
|
Other Layers
|
|
------------
|
|
|
|
Hooks have been left for other OSI protocol layers, but these protocols are
|
|
not currently defined.
|
|
|
|
|
|
|
|
Building a ZIPI-Capable Device
|
|
==============================
|
|
|
|
A ZIPI device needs the capabilities of the 8530 SCC running in SDLC loop
|
|
mode. In general terms, a ZIPI device must be able to send and receive SDLC
|
|
frames and to recognize and capture the token as it circulates around the
|
|
ring. A sample schematic for the ZIPI network hardware is in Figure 7. The
|
|
required parts for a network device are: an 8530 SCC or equivalent; an
|
|
inexpensive 22V10 PAL (the equations for which are available from Zeta
|
|
Music); a fast dual opto-isolator (e.g., the Texas Instruments HCPL2630) for
|
|
the receive data and receive clock lines; and miscellaneous resistors,
|
|
capacitors, and diodes.
|
|
|
|
[Figure 7 would go here if this weren't the ASCII version]
|
|
|
|
We will provide the source code in C for the data link layer and some useful
|
|
routines for implementing the upper layer protocols. The following software
|
|
must be provided by the manufacturer: an interrupt routine for the 8530 that
|
|
pushes the necessary registers, calls the routines provided by us, and
|
|
resets any interrupt control hardware other than that in the 8530; and
|
|
software to set up a timer, handle the timer interrupt, push the registers,
|
|
and call the pre-defined routine. In addition, our source code must be
|
|
configured with such items as the address of the 8530 SCC and the frequency
|
|
of the timer interrupt.
|
|
|
|
|
|
Building a ZIPI Monitor
|
|
-----------------------
|
|
|
|
In addition to the functionality required of every ZIPI device, the monitor
|
|
must implement the following: a 16-bit delay in the ring in order to float
|
|
the token (although in practice this delay may be somewhat longer);
|
|
re-synchronization of the data to deal with the problem that the clock the
|
|
monitor uses to send data might not be in phase with the clock it uses to
|
|
receive data; recognition that the token has been lost and the ability to
|
|
then put a new token on the ring; the protocol for electing a ring monitor
|
|
when several monitor-capable devices are connected to the ring; and the
|
|
protocol for picking a clock speed.
|
|
|
|
|
|
For more information
|
|
====================
|
|
|
|
For a detailed specification of the network described here, please contact
|
|
the authors.
|
|
|
|
|
|
References
|
|
==========
|
|
|
|
Lacas, M., B. Moses, and D. Warman. 1993. *The MediaLink Real-Time
|
|
Multimedia Network*. Conference Preprint #3736. New York: Audio Engineering
|
|
Society.
|
|
|
|
*SCC User's Manual*. 1992. Campbell, California: Zilog Corp.
|
|
|
|
Tanenbaum, A. S. 1989. *Computer Networks*. Englewood Cliffs, New Jersey:
|
|
Prentice Hall.
|
|
|
|
Teener, M., ed. 1994. *High Performance Serial Bus*. P1394/Draft 6.8v1. New
|
|
York: The Institute of Electrical and Electronic Engineers.
|