Accessories are often used with electronic equipment. For example, a computer user may listen to music with a headphone accessory. The headphone accessory may have left and right speakers and, in some configurations, noise cancellation microphones for use in implementing noise cancellation. A user of a cellular telephone may use a headset accessory that has a voice microphone and speakers. Music players are often connected to accessories such as headphones and external speakers.
In environments such as these, there is a need to convey data between accessories and associated devices. Devices such as computers, cellular telephones, and media players are therefore often provided with audio jacks. Accessories such as headsets have mating plugs. A user who desires to use a headset with an electronic device may connect the headset to the electronic device by inserting the headset plug into the mating audio jack on the electronic device.
Arrangements of this type may be suitable for low bandwidth applications such as audio playback and configurations in which there are only a limited number of audio channels involved, but are generally not suitable for more demanding applications.
It would therefore be desirable to be able to provide improved techniques for handling communications between pieces of electronic equipment such as arrangements for conveying audio signals and other data between electronic devices and accessories.
Electronic equipment such as hosts, hubs, and devices may be connected to form a network. Hosts may include devices such as computers, cellular telephones, and media players. Device may include accessories such as headsets, headphones, and amplified speakers. Hubs may be coupled to a host to provide additional downstream data ports.
Hosts may transmit downstream data to hubs and devices. Hubs may receive transmitted data from the host and may convey (e.g., retransmit) the data to equipment that is further downstream. For example, audio data such as music data may be transmitted from the host to one or more devices that are connected to the host through one or more layers of hubs.
The electronic equipment may include audio connectors such as four-contact plugs and jacks. Cables may be used to interconnect the audio connectors and thereby form communications paths between pieces of equipment in the network. The equipment may include uplink and downlink data interfaces having associated uplink interface addresses and downlink interface addresses. Devices and hybrid equipment may contain endpoints that are associated with components such as speakers and microphones. Equipment may also include input-output devices such as buttons that are used in gathering user input such as button press data. When a network is formed, a host can broadcast downstream data including its downlink interface address. Downstream equipment can assign uplink interface addresses, downlink interface addresses, and endpoint addresses using received downlink interface address information.
Data may be conveyed in superframes. Each superframe may contain frames. Each frame may include a slots of data such as 8B/10B encoded data bytes. A broadcast slot may be included in each frame to form a broadcast channel. Bulk slots may be included to form a bulk channel. The broadcast channel may be used to support the broadcasting of downstream data from the host to downstream equipment. The bulk channel may be used to convey upstream and downstream data such as button press data. Traffic slots may be used to carry audio data such as audio data to be played back through the speakers in a device or audio data that has been gathered from a microphone in a device.
Further features of the invention, its nature and various advantages will be more apparent from the accompanying drawings and the following detailed description of the preferred embodiments.
Pieces of electronic equipment such as electronic equipment 10 of
Equipment 10 may have a connector such as connector 34. Connector 34 may have four contacts such as contacts 36, 38, 40, and 42. If desired, connectors with other numbers of contacts (e.g., more than four contacts or fewer than four contacts) may be used in equipment 10. The four-contact arrangement of
As shown in
Control circuitry 12 may include processing circuitry based on microprocessors, microcontrollers, application-specific integrated circuits, digital signal processors, and other circuits. Control circuitry 12 may also include storage circuitry 14. Storage circuitry 14 may include hard disk drives, removable storage media, non-volatile memory such as electrically erasable programmable read-only memory, flash, other solid state memory, volatile memory, etc. Storage 14 may be implemented using components that are separate from the processor circuits of control circuitry 12 (e.g., using a memory chip that is separate from an integrated circuit that contains processing circuitry) or may be implemented using memory circuits that are part of an integrated circuit that contains processing circuitry.
During operation, control circuitry 12 may control operations such as generating audio data, processing audio data (e.g., to implement noise cancellation functions), transmitting data (e.g., by packaging data into suitable data structures to be transmitted by transceiver circuitry 16 and by unpacking data that has been received from an external source using transceiver circuitry 16), and other operations. Data interfaces in circuitry 12 may store assigned address information in storage 14.
Electronic equipment 10 may include components 46 such as user input interface components (e.g., displays, touch screens, buttons, speakers, microphones, status lights, sensors, etc.), power circuits (e.g., a battery and power regulator circuitry), etc.
Using cables with connectors that mate with connectors such as connector 34 of
For example, some of the equipment in a network may serve as a host. In general, hosts can be based on any equipment 10 that can transmit and/or receive digital data such as audio and control data. Examples of equipment 10 that may serve as hosts include desktop computers, portable computers, tablet computers, cellular telephones, and media players. Other types of equipment 10 may serve as hosts if desired. These are merely illustrative examples.
Some of the equipment in the network may include devices such as headsets, accessory speakers, and other accessories that operate in conjunction with hosts. Devices such as these are sometimes plugged directly into a connector port on a host. For example, equipment 10 may be a headset that has a cable that is terminated by a connector such as connector 34 of
In some scenarios, equipment 10 may serve as a network hub. Hubs may be interposed between devices and hosts. For example, a hub may be connected to a host and to three devices. As another example, a first hub may be connected between a host and a second hub and the second hub may be connected to a pair of devices. Hubs may be used to provide interconnection flexibility by adding available ports to the network. Device-type components such as speakers and microphones may also be incorporated into hubs if desired to form hybrid hubs that includes both hub-type ports and device-type components.
The inclusion of a hub between a host and a device generally does not affect the quality of audio data that is being conveyed between the host and device, because the hub retransmits digital data with little or no signal loss. Nevertheless, because there are numerous different patterns in which various pieces of equipment 10 can be interconnected, addressing techniques are used to ensure that digital data is conveyed properly to its intended destination. The equipment in a network is typically not provided with addresses until the network is formed. Once desired devices and hubs are connected to a host, addresses may be assigned.
After the addresses are assigned, messages may be conveyed between different pieces of equipment. For example, a device may send a button press message to a host that informs the host of which buttons have been pressed by the user in the device. This message may include a source address (e.g., the address of the device) and a destination address (e.g., the host). In response to receiving the message, the host may take appropriate actions (e.g., to fast forward or reverse media playback, to pause or stop media playback, to answer an incoming telephone call, to mute a call, to change a volume level, to skip tracks, etc.).
The host may likewise use addressed messages to send information to particular devices. For example, a device with an adjustable amplifier may be able to play music through speakers in the device at an adjustable volume level. The user of a host may supply the host with a user input command such as a command to set playback volume at a desired level. In response, host may send an addressed message to the appropriate device that informs the device of the desired volume level. The message may include a source address corresponding to the address of the host and a destination address corresponding to the address of the device.
Data traffic such as audio traffic may be conveyed between pieces of equipment 10 using traffic channels. Traffic channel parameters may be conveyed using messages that contain source and destination addresses (as an example).
The connectors such as connector 34 of
A typical audio connector arrangement is shown in
Control circuitry 12 of equipment 10 (
An illustrative system configuration showing how pieces of equipment 10 communicate using respective downlink and uplink interfaces is shown in
Within the device of
As described in connection with equipment 10 of
Each of components 68 may be provided with appropriate support circuitry. For example, microphones may be provided with analog-to-digital converter circuitry for converting analog microphone signals into digital microphone signals. The digital microphone signals may then be processed and provided to uplink interface 62 using communications and processing circuitry in an associated endpoint 64.
As another example, speakers may be provided with associated digital-to-analog converter circuitry, amplifier circuitry, and optional digital signal processing circuitry. During operation, uplink interface 62 may provide digital audio signals to an associate endpoint 64 over an associated path 66. The endpoint may use the digital-to-analog converter circuitry, amplifier circuitry, and optional digital signal processing circuitry that is associated with the speaker for that endpoint to play back the audio signals to a user.
User input-output components may include support circuitry such as circuitry for converting button presses into digital data, circuitry for converting sensor input into digital data, circuitry for converting digital data into status-indicator output, circuitry for converting digital data into displayed images, etc. In a typical user input scenario, a user at a device may press a button or otherwise use an input component to supply user input to the device. This user input may be gathered using the input component. The user input that is gathered in this way may be provided to uplink interface 62 in the form of digital data. Uplink interface 62 can transmit the user input to the host over path 58. In a typical output scenario, output data from a host may be received by a device in digital form over path 58 by uplink interface 62. Uplink interface 62 may route the output data to an appropriate output component. If, for example, the output is data that controls the state of a status light-emitting diode, uplink interface 62 may route a status bit for the light-emitting diode to a circuit that places the light-emitting diode in a desired state (e.g., on or off). Other types of user input and user output may be handled similarly.
If desired, a device may contain only a single endpoint (e.g., a single speaker or microphone). More complex devices will generally contain multiple endpoints. As an example, stereo headphones may include two endpoints for handling left and right audio for a pair of associated speakers. A stereo headset may include three endpoints—one to handle a voice microphone, one to handle a left speaker, and one to handle a right speaker.
A headset may also include more endpoints. For example, a headset may include seven endpoints—a first to handle a voice microphone, a second to handle a left audio channel high-frequency speaker (i.e., a tweeter), a third to handle a left audio channel low-frequency speaker (i.e., a bass driver), a fourth to handle a right audio channel high-frequency speaker (i.e., a tweeter), a fifth to handle a right audio channel low-frequency speaker (i.e., a bass driver), a sixth to handle a left channel noise cancellation microphone, and a seventh to handle a right channel noise cancellation microphone. Headsets with more than seven endpoints may also be used (e.g., to handle surround sound audio, noise cancellation, voice microphone signals, etc.).
In general, a given piece of equipment 10 may include no endpoints (see, e.g., the host of
Users may sometimes feel overly constrained with the number of ports available in a given host. For example, a host may only have one connector (e.g., a connector such as connector 34A of
Hubs may have any suitable number of ports (each with an associated connector 34). With one illustrative arrangement, which is sometimes described herein as an example, two-digit hexadecimal addresses are used to uniquely identify the downlink interfaces in the hub and up to two layers of hubs are allowed. With this type of system, the most upstream hub (sometimes referred to as the hub that forms a first level of downstream equipment) can be implemented with up to 15 ports. To maximize the number of available ports, a user may connect 15 hubs (i.e., 15 hubs that form a second level of downstream equipment) to the 15 available ports on the first-level hub. If each of the 15 second-level hubs has 15 ports of its own, a total of 225 ports (15*15) will be available, each with a respective downlink interface. A user may connect from 0-225 devices to these available downlink interfaces using paths 58. If desired, larger addressing schemes may be used to accommodate hubs with larger fan-outs, more layers of hubs may be supported, etc. The use of a two-layer hub limit and a maximum of 15 downlink interfaces per hub is merely an example. Each device may have up to 15 endpoints (as an example), so a system with all possible hubs and endpoints would support 3375 distinct endpoints (in this example).
If desired, hybrid equipment may be used that includes both device-type and hub-type circuits. Illustrative hybrid hub-device equipment of this type is shown in
Data may be conveyed between equipment 10 in digital form. With one illustrative arrangement, data may be organized using a frame structure of the type shown in
Each slot may include multiple data bits 72. There may be, for example, 10 bits of 8B/10B encoded data in each slot corresponding to a single data byte. When decoded (e.g., during internal processing in equipment 10), each 10-bit byte of 8B/10B encoded data corresponds to an 8-bit decoded data byte.
The time allotted for each of slots 70 may be, for example, 612.745 ns. Each of frames 74 may occupy 20.833 μs. Superframes 76 may each occupy 3.333 ms. If desired, other configurations may be used (e.g., configurations in which different periods of time are allotted to slots 70, frames 74, and superframes 76, configurations in which there are different numbers of bits 72 in each slot 70, different numbers of slots 70 in each frame 74, and different numbers of frames 74 in each superframe 76, configurations in which the data bits in each slot are encoded using a different encoding scheme or are not encoded, etc.). The arrangement of
To minimize unnecessary power consumption, frames may be partly utilized in situations in which the bandwidth of a fully-utilized frame is not required. Part of each frame (sometimes referred to as the downlink phase) may be used for downlink data and part of each frame (sometimes referred to as the uplink phase) may be used for uplink data.
Consider, as an example, a system in which a host is transmitting left and right audio channels of data to a pair of stereo noise cancellation headphones to be played for a user. Left and right noise cancellation microphones in the headphones may gather and transmit left and right channel noise cancellation microphone signals back to the host for processing (e.g., to subtract from the outgoing stereo audio). Each audio channel in this type of scenario may include data that is acquired using a 48 kHz sampling rate with 16 bits per sample (as an example). To accommodate four channels of audio data of this bandwidth, each channel may be assigned two of slots 70. For example, the host may transmit left audio channel data using a pair of slots 70 in downlink phase 74DL (i.e., slots 78). The host may transmit right audio channel data using slots 80. In uplink phase 74UL, the headphones may transmit microphone signals from the left noise cancelling microphone in slots 82 and from the right noise cancelling microphone in slots 84.
As shown in
The sync slot in the uplink phase identifies the beginning of transmission for the uplink phase and the sync slot in the downlink phase identifies the beginning of transmission for the downlink phase. Unique sync symbols may be used for the uplink and downlink phases. In arrangements where 8B/10B encoding is used, for example, the symbol K28.5 may be used as a start of downlink sync symbol and the symbol K28.6 may be used as a start of uplink symbol.
The broadcast channel may be used to convey information from the host to all devices in the network. The broadcast channel may be used to carry information such as information related to the assignment of addresses and other network setup information (i.e., network configuration information). The broadcast information that is provided in any given superframe may apply to the beginning of the following superframe. The 160 broadcast slot bytes that are transmitted per superframe are sometimes referred to as forming a 160-byte broadcast message (i.e., a broadcast message formed by concatenating all 160 broadcast bytes of a given superframe).
Each broadcast channel message may include start of superframe identifier information (SOSF). The SOSF may identify the start of each superframe (i.e., the start of each group of 160 frames).
The broadcast channel message may also include version information (HMBV). The value of HMBV may be used to determine the current protocol version being implemented by a given host.
A superframe number (SFN) may be included in each broadcast channel message. The superframe number may be obtained using a rolling counter that is updated each new superframe. The value of SFN may be used in implementing messages across superframes.
Each broadcast channel message may include a value representing the number of slots in downlink phase 74DL (DPS) and a value representing the number of slots in uplink phase 74UL (UPS). The value of DPS may take into account the downlink sync word. The value of UPS may include the uplink sync word.
A pointer to the beginning of the downlink phase (i.e., a downlink phase offset DTO as shown in
Each broadcast message may include a downlink interface address (DIA). The value of DIA represents the physical address of the downlink data interface from which the broadcast message was received. In networks that include multiple layers of equipment, such as a network that includes a hub, the intervening equipment (i.e., the hub) receives a DIA from upstream equipment (i.e., the host), but modifies the value of DIA in accordance with the physical address of each of its downlink interfaces. Each downlink interface then retransmits the modified version of the broadcast message downstream. In the retransmitted version of the broadcast messages, the values of DIA are modified to reflect the physical addresses of the downlink interfaces from which the broadcast messages are retransmitted. The downlink interface addresses of the downlink interfaces (e.g., the downlink interfaces in the hub) are not assigned during manufacturing, but rather are assigned only after the network is formed (i.e., dynamically), using the DIA from the downlink data interface that is upstream as a root address.
Broadcast messages may carry downlink bulk channel information (DBC) such as a “start slot” number indicating the placement of the first possible slot occupied by the downlink bulk channel data during the next superframe, “start slot bytes” information indicating the cumulative number of bytes occupied by the downlink bulk channel data in the start slot of the next superframe, an “end slot” number indicating the placement of the last possible slot occupied by downlink bulk channel data during the next superframe, and “end slot bytes” information indicating the cumulative number of bytes occupied by downlink bulk channel data in the end slot of the next superframe.
Broadcast messages may also carry uplink bulk channel information (UBC) such as a “start slot” number indicating the placement of the first possible slot occupied by the uplink bulk channel data during the next superframe, “start slot bytes” information indicating the cumulative number of bytes occupied by the uplink bulk channel data in the start slot of the next superframe, an “end slot” number indicating the placement of the last possible slot occupied by uplink bulk channel data during the next superframe, and “end slot bytes” information indicating the cumulative number of bytes occupied by uplink bulk channel data in the end slot of the next superframe.
Traffic channel allocation information (TCA) may be included in each broadcast message. The traffic channel allocation information may include a channel number for each traffic channel (i.e., a logic number identify the channel), a “start slot” (i.e., a slot number for each traffic channel indicating the first possible slot occupied by that traffic channel during the next superframe), “start slot bytes” information (i.e., the cumulative number of bytes for each traffic channel occupied by that traffic channel in its start slot of the next superframe), an “end slot” number indicating the placement for each traffic channel of the last possible slot occupied by that traffic channel during the next superframe, and “end slot bytes” information (i.e., the cumulative number of bytes for each traffic channel occupied by that traffic channel in its end slot of the next superframe).
If desired, broadcast information may be used to describe the allocation of slots to channels by describing the number of bytes allocated to each slot as follows. For each active traffic slot in the downlink and uplink phases, the broadcast channel may carry bytes that describe the “channel ID” and the number of slots per superframe used by that channel across a superframe. If multiple channels use that slot, then the “allocation” (channel ID+number of used bytes) may be provided in order, such that the number of slots per superframe already allocated to other channels for this slot may be inferred by accumulating the total number of bytes already reserved for that slot by other channels.
A broadcast channel checksum (BCC) may be included in each broadcast message to ensure that equipment can perform a data integrity check of the data received in the broadcast channel. If the data integrity check fails for a broadcast message, the equipment may mute playback (or interpolate audio playback using audio from adjacent superframes).
The downlink phase bulk slots form a downlink bulk channel and the uplink phase bulk slots for an uplink bulk channel. The bulk channels allow data to be transmitted between pieces of equipment 10 with minimal delay. Data with critical timing requirements (i.e., audio data for which low error rates are not generally critical but for which there is a desire for minimal latency) may be transmitted over the traffic channels. Traffic may be allocated among the traffic channels using a data dispersion algorithm that minimizes latency within each channel while ensuring that the number of slots used in each frame is minimized to avoid increasing power consumption. Bulk channel data may be used to transmit address information and other network setup information, button press data and other user input data, status indicator data and other output data, etc. This information may also be transmitted using other formats (e.g., higher-level protocol messages).
Bulk channel data transmissions may use error detection (e.g., cyclic redundancy checking, etc.) and may require transmission of acknowledgement (ACK) signals upon successful data reception. Retransmission upon detection of an error or other failure may or may not be required.
Downlink bulk data may contain error certification information. Uplink bulk traffic may be buffered when hubs are used to accommodate simultaneous upstream transmissions from multiple downstream devices. Data interfaces may be provided with buffer capacity to hold 30 or more bytes of bulk channel data per port (as an example).
Bulk data transfers may begin with the transmission of an 8B/10B value that serves as a start of stream (SOS) symbol. The K30.7 8B/10B symbol or other suitable data pattern may serve as the start of stream symbol. The start of stream symbol may identify the actual location of the start of the bulk data stream. Destination and source addresses (i.e., device-level addresses) may also be included in bulk channel messages. Information such as information on the length of the bulk channel message may be included with a bulk channel message (e.g., to facilitate cyclic redundancy calculations for bulk data).
Initially, equipment 10 such as hubs and devices are not provided with addresses. Rather, addresses are assigned dynamically based on the location of each piece of equipment in the network. The host may have a default address. When equipment is connected together to form a network, the uplink and downlink interfaces communicate and ensure that each piece of equipment is assigned an appropriate address. Thereafter, data may be conveyed throughout the network using the assigned addresses. Because addresses can be assigned dynamically, it is not necessary to provide each piece of equipment with a serial number or other unique identifier during manufacturing, thereby reducing manufacturing cost and system complexity. Hosts may be provided with a default address such as a two-digit hexadecimal address of “00”.
As shown in
Once the hybrid 10 is connected to host 10 via path 58 as shown in
When more levels of equipment are involved, superframes of data may be conveyed in both downstream and upstream directions (e.g., by retransmission of data in the downstream direction and by merging data in the upstream direction). For example, when a host or other upstream device transmits a superframe to downstream equipment, the downstream equipment receives the transmitted superframe and retransmits the superframe to any equipment that is further downstream. If desired, the downstream equipment may filter a superframe as part of retransmitting the superframe so that downstream equipment only receives relevant portions of the superframe. Similarly, when downstream equipment is transmitting data upstream, the upstream device that receives the transmitted data is responsible for retransmitting the received data further upstream and may be responsible for merging data transmitted from multiple pieces of downstream equipment into one or more superframes.
As with single-layer equipment networks, addresses may be assigned in multilayer equipment networks using the broadcast channel in the downlink phase of each superframe. As each superframe is transmitted downstream, the downlink interface address in the broadcast channel may be updated to be equal to that of the downlink interface address of the downlink interface that is performing the retransmission operation (i.e., the DIA value that is received from upstream equipment is replaced with the DIA value of the retransmitting downlink interface). The type of address assignments that result in a multilevel equipment network are shown in the example of
As shown in
After the UIA of uplink interface ULA has been set to 00, the DIA values for the downlink interfaces in hub A can be assigned using the address assignment scheme of 1Y, 2Y, 3Y, . . . , where Y is the second digit of the UIA in hub A (which is equal to the DIA of the host).
As a result, downlink interface DLA-1 is assigned a DIA of 10 and downlink interface DLA-2 is assigned a DIA of 20. Downlink interfaces DLA-1 and DLA-2 retransmit superframes that have been received from host 10 using uplink interface ULA. In doing so, DLA-1 broadcasts its value of DIA to device C in the broadcast channel (i.e., 10) and DLA-2 broadcasts its value of DIA (i.e., 20) to hub B in the broadcast channel.
Upstream interface ULC of device C receives the retransmitted superframe from downlink interface DLA-1 and extracts the DIA value of 10 that is associated with downlink interface DLA-1 of hub A. In response, the UIA of uplink interface ULC is set to 10. The addresses of the associated endpoints in device C are assigned accordingly (i.e., to 10.1, 10.2, 10.3, . . . , using the address assignment scheme of XY.1, XY.2, . . . , where XY is the UIA of the uplink interface that is associated with the endpoints.)
Hub A represents a first level of downstream equipment, because hub A is attached directly to host 10. Hub B represents a second level of downstream equipment, because hub B is attached to host A through first level equipment (i.e., hub A). Second level hub B uses uplink interface ULB to receive the superframe that is being retransmitted by downlink interface DLA-2. Hub B extracts the DIA of downlink interface address DLA-2 from the broadcast channel of the retransmitted superframe (i.e., the DIA value of 20 in the
Device D is connected to downlink interface DLB in system 56. Downlink interface DLB retransmits the superframe received from downlink interface DLA-2 by uplink interface ULB and, in retransmitting the superframe, replaces the DIA in the broadcast channel with the DIA value of DLB (i.e., 23). Uplink interface ULD in device D receives this DIA value and assigns it to the UIA of uplink interface ULD (i.e., the UIA of uplink interface ULD is set to 23 in this example). Endpoint addresses for the endpoints of device D are assigned using the address assignment scheme of XY.1, XY.2, XY.3 . . . , where XY represents the first and second digits of the UIA of uplink interface ULD.
Once the addresses have been assigned, data may be routed within the network of equipment 10 (i.e., system 56 of
Bulk channel messages may be used to convey user input and output data within the system. Bulk channel messages may include information such as a destination address (i.e., the address of a destination such as the downlink interface of the host or the uplink interface of a downstream device), source address (i.e., the address of the originating equipment in the system), bulk data (e.g., button press data or other user input, output data such as status data, etc.), and a bulk message error correction code such as a checksum (e.g., a cyclic redundancy check code).
Illustrative steps involved in setting up and using a network of equipment 10 (e.g., a host, hubs, and devices) in an configuration in which there are two layers of downstream hubs and three layers of downstream equipment (e.g., a network of the type shown in the example of
At step 90, the host is powered on. The host DIA (in this example) is 00. During the operations of step 90, the host uses its downlink interface to transmit the DIA value of 00 to downstream equipment. The DIA of the host may be transmitted in the broadcast channel.
At step 92, equipment that is one level downstream from the host such as device A in the example of
At step 94, at equipment that is two levels downstream from the host (e.g., device C and hub B in the network of
At step 96, at the equipment that is three levels away from the host (e.g., at device D in the
Information on assigned addresses may be conveyed between pieces of equipment in the network (e.g., equipment that is downstream from the host may upload address information to the host using messages formed from the slots in the uplink phase). The host and other equipment in the system may then use assigned addresses in determining how to send and receive data. For example, traffic channels may be set up and used to convey audio data and other synchronous data, bulk messages such as the illustrative bulk messages of
The foregoing is merely illustrative of the principles of this invention and various modifications can be made by those skilled in the art without departing from the scope and spirit of the invention.
This application claims the benefit of provisional patent application No. 61/302,505, filed Feb. 8, 2010, which is hereby incorporated by reference herein in its entirety.