METHOD AND APPARATUS FOR CONFIGURING
PARAMETERS AND PRESENTING STATUS IN A
DISTRIBUTED COMMUNICATIONS SYSTEM
TECHNICAL FIELD
The present invention relates generally to bus system architecture and distributed communications systems, and more particularly to a method and apparatus for providing a user interface to configure a distributed communications system.
BACKGROUND
Home entertainment systems are increasingly being implemented as complex interconnections of special-purpose computer systems, which are generally referred to as "home entertainment devices." These home entertainment devices may be video and audio receivers, DVD players, CD-ROM players, sound mixers, amplifiers, speaker systems, display devices, and so on. Many different companies develop (e.g., design and manufacture) such home entertainment devices. Each company may develop its devices using proprietary interconnect technology. As a result, the input and output of devices developed by different companies may not be compatible. For example, a DVD player developed by one company may output data that is incompatible with a speaker subsystem developed by another company. Thus, it may be impractical to have a home entertainment system that includes devices that are developed by different companies.
Various standards, such as the IEEE 1394 "Standard for High Performance Serial Bus," have been developed to facilitate the development
of compatible home entertainment devices. Any devices that conform to such standards can be interconnected to a home entertainment system. In addition, these standards define a common bus interconnection mechanism by which any devices connected to the bus can communicate with any other device connected to the bus. In this way, a standard bus cabling can be used within a house for interconnecting these home entertainment devices and other types of devices such as coffeemaker, microwave oven, home security system, and so on. Such devices are referred to as "appliances," and home entertainment devices are referred to as "media appliances." The appliances may be considered to be a single function device with computer capabilities.
All communications systems require a variety of parameter settings to be established between sender and receiver nodes before they can exchange data. For example, many communications buses (such as IEEE 1394) require that sender and receiver nodes be configured for a common isochronous channel on which the sender will transmit a media stream, and from which the receiver will listen to the media stream. This is sometimes referred to as a "virtual connection" because no physical connection is dedicated between these nodes. Instead, the connection is represented by a data address within the shared communications space. In addition to configuring communication parameters, it is desirable that various status and diagnostics information be conveyed to the human operator to enable troubleshooting and validation that the communication system is operating properly. For example, a light eπύtting diode (LED) might illuminate periodically on each node to indicate that the nodes are operational.
One area in which the standards are deficient is in providing user interfaces for configuring and monitoring the distributed commumcations interface. The primary method for establishing connections between devices and reading status information from them is to execute a graphical user interface (GUI) application on a personal computer that has been specifically programmed to configure communication parameters in each node. Figure 1 is a block diagram of a system illustrating two nodes (a sender and a receiver) and a personal computer executing such a GUI configuration program. Sender 101 packetizes a media stream and transmits it on a shared communications bus 104. Receiver 103 consumes this stream from the communications bus 104 and typically presents it to a human audience. Personal Computer 102 executes a graphical user interface software program that configures the sender 101 and the receiver 103 to connect to each other on the shared communications bus 104, and/or observe status information read from the nodes.
There are several problems with this approach. First, the personal computer is relatively expensive (often an order of magnitude more costly than the media devices themselves), and is therefore not economical for mainstream consumer applications. Additionally, the personal computer is large and cumbersome compared to consumer electronics equipment and is therefore rarely located in close proximity to the home entertainment system. Additionally, the personal computer has no knowledge of which physical devices are located at each geographical location, and is therefore unable to differentiate between identical devices connected to the communications system (e.g. identical loudspeakers which are located in the front left, center, front right, rear left, and rear right listening positions; or two identical CD
players). Additionally, the personal computer may only communicate with each device over the shared communication system, so if a device is not yet configured to communicate it cannot be deteirninistically accessed by the personal computer. Consequently, no simple and foolproof process exists in the prior art for configuring a system and presenting status and diagnostics information.
SUMMARY
In accordance with the present invention, a method is provided for configuring a plurality of devices coupled by a communications bus. A user interfaces with a first one of the devices, such as by activating a switch on the first device. The first device then issues a connect signal that is received at each of the other devices. The user then interfaces with a second of the devices, such as by activating a switch on the second device. The second device then issues a response signal, and a communications link between the first and second devices is then established. Device status information may also be displayed, such as by using different colored and modulated intensity light indicating the status of the devices, including the connected, unconnected, and waiting-to-be-connected communications states.
In accordance with another aspect of the present invention, a system is provided that has appliances coupled by a bus, such as an IEEE 1394 bus. The system includes first and second configuration controls on the first and second appliances, respectively. The first configuration control responds to user input to transmit a connect signal on the bus. The second configuration control responds to receipt of the connect signal and to user
input to transmit a response signal on the bus. Upon exchange of the connect and response signals, the first and second configuration controls establish a communications link between the first and second appliances. The configuration controls may each include a user operable switch for receiving the user input, and may further include a visual display for indicating appliance status information, such as connected, unconnected, and waiting- to-be-connected communications states.
BRIEF DESCRIPTION OF THE DRAWINGS
Figure 1 is a block diagram illustrating a prior art system, with a sender, receiver, and personal computer.
Figure 2 is a state diagram of initiator virtual connection establishment in accordance with the present invention.
Figure 3 is a state diagram of responder virtual connection establishment in accordance with the present invention.
Figure 4 is a block diagram illustrating a system with a sender node and receiver node, with controls on each node in accordance with the present invention.
DETAILED DESCRIPTION
The following is a description of a method and system for providing a user interface for configuring device parameters and presenting status information is provided. The method and system are conformable to the applicable IEEE 1394, ISO/IEC 13213, and IEC 61883 standards. In this description, certain details are set forth in order to provide a thorough
understanding of embodiments of the present invention. It will be clear to one skilled in the art, however, that the present invention may be practiced without these details. In other instances, well-known circuits, circuit components, control signals, and timing and communications protocols have not been show or described in detail in order to avoid unnecessarily obscuring the description of embodiments of the invention.
A user interface is provided that allows media appliances to establish virtual connections and display status information via a simple user control that combines a momentary push button switch (for inputting user events) with a light emitting diode (for displaying status), called a "baton control". Pressing the switch with various patterns inputs configuration information to the device. The light emitting diode flashes various patterns to indicate status information. Because the user interface is based on a simple combination switch/LED control, it is economical and easy to include on virtually any consumer electronics device. By standardizing this functionality on all devices in a communication system, the user is guaranteed a consistent method to configure all nodes.
The baton switch allows a variety of configuration events to be input to the device. For example, the device may be returned to a default state by pressing and holding for a minimum duration (typically one second) or pressing during a power cycle. The device may be reset to recover from an error state by pressing and holding for a prolonged duration (typically three seconds).
The baton switch may be used to establish a virtual connection by executing the sequence of events illustrated in Figure 2 and Figure 3.
Figure 4 illustrates a system with two nodes, a media sender 401 and media receiver 403, connected to a shared communications bus 402. Each node has a baton control 404. During configuration of the communications system, a user wishes to establish a virtual connection between the sender and receiver nodes 401 and 403. This is accomplished by initiating a connection via the baton controls 404 on one node (arbitrarily selected, called the "initiator") and another node, the "responder".
Figure 2 shows the sequence of events for the initiator node, and Figure 3 shows the sequence of events for the responder node. Initially, both devices are in the "unconnected" state 201 and 301. When the switch is pressed on the initiator node, a "connect squawk" message is transmitted over the communications system to all other nodes (204), and the device enters the "wait for response squawk" 202. Each node in the system receives this connect squawk message 304 and enters the "wait for response squawk" state 302. At some point in the future a baton switch is pressed on the node which the user wishes to virtually connect to the initiator, and this causes the responder node to transmit a "response squawk" 306 over the communications system to all other nodes and enter the connected state 303. Alternatively, if a minimum time period elapses before any node transmits a "response squawk" (e.g., 5 seconds), all nodes return to the unconnected state 201 and 301 via state change 205 and 305. When all potential responder nodes receive a "response squawk" 305, they return to the unconnected state 301. When the initiator receives the "response squawk" 206, it enters the connected state 203. At this point the initiator and responder nodes are connected, and may exchange data. If at any time in the
future either node is disabled, both nodes return to the unconnected state 201 and 301.
During this sequence of events, the light emitting diode in the baton control is illuminated to indicate the connection status. For example, during state 201 and 301 the LED can flash with the communication system heartbeat, with the color green. During the waiting for response squawk state 202 and 302, the LED can flash with the communication system heartbeat, with the color yellow. During the connected state 203 and 303, the LED can flash with the communication system heartbeat, with the color red. One skilled in the art will appreciate that additional functionality can be added to this process allowing the initiator and responder nodes to connect to additional nodes on the communications bus, or to break a connection by pressing the baton switch during the connected state. Additionally, the LED may be illuminated with different colors or flashing patterns to indicate the same or different status information.
The baton LED can also be used to indicate communication system integrity and status. During normal conditions it can flash with the communication system heartbeat (typically once per second, each time bit 25 of the IEEE 1394 link layer controller cycle time register increments). Those skilled in the art will also appreciate that the LED may be employed to indicate various node states such as: IEEE 1394 bus reset (e.g., LED flashes rapidly each time a self ID packet is received), firmware download is in progress (e.g., LED flashes at double rate - each time bit 24 of the IEEE 1394 link layer controller cycle time register increments), node identification (e.g., LED flashes rapidly on a node which is queried by another node), and
various error codes (e.g., LED flashes intermittently, with a pattern uniquely associated with a specific error code).
Those skilled in the art will further appreciate that the baton control is also useful when a graphical user interface running on a personal computer is present. When the personal computer receives any squawk message, it can indicate to the user which icon (or whatever is used to represent the device on the GUI) corresponds to that node in the graphical system representation. This allows a GUI to be mapped to physical devices in the system.
From the foregoing, it will be appreciated that, although specific embodiments of the invention have been described above for purposes of illustration, various modifications may be made to these embodiments without deviating from the spirit and scope of the invention. Numerous variations are well within the scope of the invention, and the invention is not limited except as by the appended claims.