Patent Abstract:
In one aspect, in general, the invention features a method including a second wireless system determining a frequency of active operation of a first wireless system, and communicating wirelessly on the second wireless system in the vicinity of the wireless communication on the first wireless system, the wireless communication utilizing a spread-spectrum technique that excludes the determined frequency.

Full Description:
This is a continuation-in-part of U.S. application Ser. No. 10/640,215, filed Aug. 12, 2003, and incorporated by reference in its entirety. 
    
    
     The description relates to wireless communicating. 
     BACKGROUND 
     Wireless communicating is utilized in wide ranging applications, for example, in cellular phones, controlling devices, and exchanging data signals among two or more devices. 
     DEFINITIONS 
     
         
         
           
             Master: A node on the network that is in control of how communications will be managed between itself and a set of slaves. 
             Slave: A node on the network that communicates with a master. 
             Primary Data: The information that is presented to the master for the purpose of reliably transmitting representative signals to one or more of the slaves. 
             Ancillary Data: Data that is presented to a master or a slave represented by signals to be transmitted to another node on the network, with possibly poorer reliability and latency than that of the primary data. 
             Management Data: Data represented by signals that are transmitted across the network for the purpose of maintaining the performance of the network. 
             Transmission Parameter: A controllable characteristic that affects the performance of the communication system (for instance: signal power, center frequency, modulation technique, phase, antenna direction, antenna directivity, antenna position, signal polarization, time slot, equalizer setting, chipping sequence, and other characteristics). 
             Transmission Configuration: One or more transmission parameters with an associated value (e.g., signal power—200 mW, center frequency—2450 MHz, Modulation technique—4FSK.) 
             Transmission Quality Aggregation: A process whereby a node, such as the master on the network, develops its transmission quality estimation based at least in part on the transmission quality estimations of other nodes in the network. 
             Preferred Configuration List: A list of different transmission configurations that are used or intended to be used in the short term for transmission. 
             Preferred Frequencies: Frequencies of transmission included in the transmission configurations of the preferred configuration list. 
             Potential Configuration List: A list of transmission configurations that are not used nor intended to be used in the short term for transmission, but could potentially be used at some point in the future for that purpose. 
             Potential Frequencies: Frequencies of transmission included in the transmission configurations of the potential configuration list. 
             Packet: A collection of data signals that are transmitted contiguously using the same transmission configuration. 
             Block: A collection of packets containing data signals that together can be independently decoded by an error correction decoder. A block will preferably be transmitted using a variety of transmission configurations so as to average out the effects of localized channel degradation. 
             Frame: A collection of blocks and management packets that are transmitted using the preferred configuration list. 
             Stream: A contiguous flow of data bit signals that together represent the information from a single source (such as audio from FM radio or a CD player). A stream can contain more than one channel (such as left and right). 
             Signature: A characteristic emission of a wireless system. 
             Wireless system: A single wireless device, or multiple wireless devices capable of communicating wirelessly with one another. 
           
         
       
    
     Other terms are defined in context in the body of the specification. 
     SUMMARY 
     In one aspect, in general, the invention features a method comprising a second wireless system determining a frequency of active operation of a first wireless system, and communicating wirelessly on the second wireless system in the vicinity of wireless communication on the first wireless system, the wireless communication utilizing a spread-spectrum technique that excludes the determined frequency. 
     Implementations may include one or more of the following features: The determining is done at a time when transmissions from the first wireless system cannot be detected by the second wireless system. The determining is done at a time when transmissions from the first wireless system do not impede the functionality of the second wireless system. The determining is done at a time when transmissions from the second wireless system do not impede the functionality of the first wireless system. The determining is done at a time when the second system is not transmitting. The second system comprises a node, and the determining is done at a time when the node is not transmitting. The determining comprises receiving from a user information associated with the frequency to be determined. The information comprises an identification of a communication channel of the first wireless network. The information is received through a manual user interface. The manual user interface comprises a button. The manual user interface further comprises a visual indicator. The determining comprises detecting activity of the first wireless system. The determining comprises connecting to the first wireless system. An additional step may be added of deriving a channel of operation of the first wireless system. The determining comprises recognizing a signature of the first wireless system. An additional step may be added of suspending wireless communication on the second wireless network, and during the suspending, determining a frequency of operation of the first wireless system. The first wireless system comprises an IEEE 802.11 wireless network. 
     In another aspect, in general, the invention features a method comprising maintaining for a second wireless network, information about a frequency in use by a first wireless network, communicating on the second wireless network using a spread-spectrum technique, and controlling the spread-spectrum technique to exclude the frequency associated with the maintained information. 
     Implementations may include one or more of the following features: The information is updated periodically. The information is obtained from a user through a user interface. The information is obtained automatically by observation of the first wireless network. 
     In another aspect, in general, the invention features an apparatus comprising an identifier device to determine information about frequencies in use by a first wireless network, a transmitter device to transmit using a spread-spectrum technique, and a controller to cause the transmitter device to avoid the determined frequencies by the second wireless network. The identifier device comprises a manual user interface. 
     In another aspect, in general, the invention features an apparatus comprising means for determining information about frequencies in use by a first wireless network, and means for avoiding the determined frequencies by the second wireless network using a spread-spectrum technique. 
     Other features and advantages will become apparent from the following description and from the claims. 
    
    
     
       DESCRIPTION 
         FIG. 1  shows a function block diagram of one implementation of the invention; 
         FIG. 2A  shows the data signal structure from the output of the payload manager; 
         FIG. 2B  shows the block structure from the error correction codec; 
         FIG. 2C  shows a CRC protected packet structure; 
         FIG. 3  shows the flowchart of system operation procedure of one implementation of the invention; 
         FIG. 4A  shows the flowchart of operation procedure for network acquisition at the master; 
         FIG. 4B  shows the flowchart of operation procedure for network acquisition at the slave; and 
       FIG.  5 A- 1 - 3 , FIG.  5 B 1 - 2   FIGS. 5C-4 , D, E are schematic circuit diagrams of an exemplary embodiment of the invention; 
         FIGS. 7-9 ; are flow charts illustrating exemplary processes according to the invention, and 
         FIGS. 6-9 ; and 
         FIG. 10  is a black diagram of channel selector  75 . 
     
    
    
     With reference now to the drawing,  FIG. 1  is a block diagram illustrating the logical arrangement of a system  4  according to the invention. A master  170  communicates with at least one slave, such as slave  180 , via a wireless medium (not shown). The system  4  is not limited to one master or one slave; multiple masters  170  can transmit to multiple slaves  180 . For simplicity, the following description will be based on an example of one master  170  and multiple slaves  180 . The slaves  180  are generally located in multiple distributed locations. The slaves  180  can be located in a plurality of rooms, each having a utilization device, such as a speaker, connected to it. While this specific example relates to a sound system, other applications are contemplated, such as video, multimedia, telemetry, and remote data gathering applications). The slaves  180  can be battery powered and/or portable, such as in a headset. 
     Information signals  160  to be transmitted from the master  170  to the slaves  180 , such as digital audio information signals, are first processed by payload manager  10  to provide a data unit signal to be used as input to error correction coder  20 , functioning to present information signals to a communication channel so as to reduce the channel&#39;s negative impact on data integrity. The master can further include a source coder  5  for providing compression (an audio compressor, for instance). A variety of techniques can be employed for audio compression: for example, Audio Layer 2 (AC2) compression as described in ISO/MPEG-1; AC3 Psychoacoustic masking and Redundancy reduction. For example, for 16-bit, 2 audio channel, 32.55 kHz audio information signals, the master can include a source coder, such as an apt-x coder from APT—Audio Processing Technology (headquartered in Belfast, N Ireland). 
     The output from the Apt-x coder is organized by payload manager  10  into a data signal structure typically containing one hundred seventeen Message Words with six Symbols per Message Word and 4-bits per symbol in 2808 bits. This data signal structure can be represented by a matrix having six columns and one hundred seventeen rows, as shown in  FIG. 2A . Each entry in the matrix is a symbol with 4-bits, and each row in the matrix is a “message word” (a unit of input to error correction encoder  20  which will be described in more detail below). The output from payload manager  10  along with some management bits (such as multiplexing control signals) can be protected using a channel coding technique such as error correction coding. The error correction encoder  20  maps a message word into a code word. Reed-Solomon (RS) coding can be used. For the exemplary RS coding in this example, the bit rate of the output from the error correction encoder  20  is doubled with respect to its input. The output of error correction encoder  20  (a block) can also be represented in the form of a matrix as shown in  FIG. 2B . Each entry of the matrix is a symbol having 4 bits, and each row of the matrix is a code word composed of 12 symbols. For the exemplary audio signal, the block as output from error correction encoder  20  is a matrix having 12 columns and 117 rows. Each column of the matrix is defined as a packet having 468 (117×4) bits. 
     Error detection can be implemented by adding Cyclic Redundancy Checks (CRCs) or checksums into each packet after error correction coding. The CRCs can be distributed within the packet so that it is possible to tell not only if the packet contains an error, but also what part of the packet contains the error. Specifically, for the exemplary wireless audio home application, each packet is further divided into a number of (four, for this example) sub-packets (each has 117-bits), and a 4-bit CRC is individually calculated on each sub-packet (as shown in  FIG. 2C ). For the 4-bit CRC in this example, corrupted data will have a 1/16 chance of falsely passing. The CRCs are further multiplexed by inserting each CRC close to the sub-packet it protects (either preceding or following the sub-packet). By doing so, the location of an error within a packet can be better located. The output from error correction encoder  20  is then processed by a packetizer  25 . The output from packetizer  25  is transmitted to the slaves by the wireless interface  30  via one or more antennas  40 . 
     From one transmission configuration to another, channel capacity can vary due to factors such as path loss, multipath interference, any interference other than the multipath interference, and nonlinearities. The system  4  can control how it uses the communication medium by changing its controllable transmission parameter values. The system  4  can in effect perform averaging over some or all of the controllable transmission parameters to compensate for localized channel capacity degradation. For example, localized channel capacity degradation can sometimes be caused by multipath interference which renders some pieces of spectrum unusable. If frequency is a controllable transmission parameter, the averaging can be achieved by sending the primary data over a sufficiently large number of frequencies and relying on error correction coding to repair the errors in packets sent over the affected spectrum. 
     Different transmission parameters are allowed to take on different values. For example, the frequency parameter can take on one value from the discrete set of radio frequencies that are tunable by the Phase Locked Loop (PLL). For the polarization parameter, the range of values can be the choice of vertical or horizontal polarization. The transmission quality achieved for a certain transmission configuration can be measured as the quality of the information signals received at the slave  180  (when the information is transmitted using the specified transmission configuration). The transmission quality can be quantified by many metrics such as Bit Error Rate (BER) which can be estimated based on information present in the error correction decoder and from the CRCs. 
     For the exemplary wireless application, the communication channel between a master  170  and slave  180  is the wireless medium with its associated multipath characteristics and interference sources. The controllable transmission parameter is the carrier frequency. The range of transmission parameter values depends on the selected frequency spectrum and channel bandwidth. For example, for an RF medium in the 2.4 GHz ISM (the Industrial, Scientific and Medical) radio band, the range of parameter values for the carrier signal control variable embraces all the tunable frequencies within the ISM radio band. The transmission configurations are the frequencies that can be adjusted by varying the transmission parameter value (carrier signal frequency, for this example). The following description is based on the exemplary wireless application. 
     Referring back to  FIG. 1 , a number of blocks (each containing multiple packets) from the output of error correction encoder  20  can be further processed and organized by packetizer  25  into a frame containing the blocks and management packets. The management packets will be described in more detail below. For the exemplary wireless application, eleven blocks from error correction encoder  20  and two management packets are organized into a frame having one hundred thirty-four packets. 
     The output from packetizer  25  is then transmitted via the wireless interface  30  using digital modulation techniques such as Frequency-Shift Keying (FSK), Quadrature Amplitude Modulation (QAM), Phase-Shift Keying (PSK), or Amplitude Shift Keying (ASK), from the master  170  to the slaves  180  using the 40 frequencies on the preferred frequency list. Since there are ninety-four tunable frequencies in the 2.4 GHz band, this choice leaves fifty-four frequencies on the potential frequency list. For this example, a frame contains 102.4 μs of audio data signals. A packet within a frame lasts about 750 μs. Error correction encoder module  20  can further perform interleaving in the time and frequency domains such that each symbol in a code word from the error correction encoder  20  is distributed to a different packet (as shown in  FIG. 2B ) to be transmitted on a different frequency from the preferred frequency list. The interleaving enables the error correction decoder  90  in the slave  180  to average the good quality of some packets with the poor quality of other packets such that the original information is accurately reconstructed. Interleaving can be performed over time, over frequency, or over any other controllable transmission parameter. Furthermore, each packet within a frame can be transmitted on a different frequency (transmission configuration in general)—in essence, introducing averaging in the frequency domain. A block as a whole is then transmitted over a representative portion of the available frequencies. 
     The system  4  is not limited to a specific form of source coder  5  and payload manager  10 . The basic function of source coder  5  and payload manager  10  along with error correction encoder  20  and packetizer  25  can include dividing the information signals to be transmitted into a plurality of data signal units such as blocks for channel coding. The function can also include interleaving. The use of modules payload manager  10 , error correction encoder  20  and packetizer  25  are for the purpose of illustration. These functional modules can be implemented in one or multiple physical units in the form of hardware or software. The invention is not limited to the specific source coder (such as Apt-x source coder in the exemplary implementation), specific structure of the data units (such as blocks and frames as illustrated) and specific error correction coder (such as RS coding in the exemplary implementation). The described data structures as shown in  FIG. 2A  and  FIG. 2B  are also for illustration purpose only. 
     Also shown in  FIG. 1  is the slave  180  which can include one or more antennas  150  along with the wireless interface  80  for receiving the information transmitted from the master  170 . The received information is fed to the depacketizer  185  and then to the error correction decoder  90 . The depacketizer  185  and error correction decoder  90  perform essentially the inverse functions of packetizer  25  and error correction encoder  20 . In the error correction decoder  90 , each code word of every received block is checked for errors using the information inherent in the error correction coding, for example, the RS coding and the CRCs. The symbols in each code word will be flagged as correct or erroneous. If CRCs are present, they can be used to flag a group of symbols as “erasures” as is well known in the art of error correction coding. The transmission quality estimation provided by channel quality estimator  130  will be described in more detail later) is sent back to the master  170  via the wireless channel. The channel quality aggregator  70  in the master  170  collects this information for use by the channel manager  50  to select subsequent sets of frequencies (preferred frequency lists) used for transmitting primary data signals. The decoded information from error correction decoder  90  is sent to the payload manager  100 . A source decoder  105  can be further provided for performing essentially the inverse function of source coder  5  for audio data signal transmission. The information signals can then go through the digital/analog converter  110  for the exemplary wireless application and be fed to the speaker  120 . 
     The modules in the block diagram of  FIG. 1 , depicting the system  4 , (e.g., source coder  5 , payload manager  10  and channel manager  50 , etc.), are logical modules that can be aggregated together in one or more physical modules, such as in the form of either hardware modules like ASICs and/or software modules. 
     The system estimates the channel transmission quality for both the preferred frequency list (preferred configuration list in general) and the potential frequency list (potential configuration list in general). The potential frequency list, for this example, can include all available frequencies (besides the 40 RF frequencies from the preferred frequency list) selected from the 2.4 GHz ISM frequency band. Although this detailed description focuses on the exemplary wireless application, the system  4  has broader applicability, and is not limited to a single controllable transmission parameter but is applicable to multiple controllable transmission parameters, including but not limited to time, frequency, wavelength, polarization, antenna directivity, antenna direction, antenna location, equalizer settings, chipping sequence, signal power, and signal phase. In general terms, the system monitors the transmission quality for the preferred configuration list which will be used for transmitting primary data signals, and the potential configuration list which is not expected to be used for transmitting primary data signals in the immediate future. 
     Referring back to  FIG. 1 , each one of the slaves  180  develops its own transmission quality estimation in  130  by keeping track of the symbol-error information determined in its error correction decoder  60  for the preferred frequency list. For the potential frequency list, estimation of the transmission quality can be done by sending a probe packet containing data signals known a priori by both the master  170  and the slaves, such as slave  180 . The probe packets are transmitted on probe frequencies selected from the potential frequency list. The transmission quality for the probe frequencies is estimated in each slave by measuring, such as the BER, of the received probe data. The probe frequencies are not currently-in-use, but the master  170  needs to know their transmission quality so that they can be used as candidates along with the preferred frequency list when the system  4  selects subsequent preferred frequency lists for transmitting subsequent primary data signals. The set of probe frequencies can include all or a subset of the frequencies from the potential frequency list. The transmission quality estimate for both the set of 40 frequencies on the preferred frequency list and the set of probe frequencies can be sent back to the master in a feedback packet. Due to a variety of phenomena, such as multipath interference, each one of the set of 40 frequencies can behave differently in terms of transmission quality. One advantageous choice of frequency for transmitting the feedback packet is the frequency from the preferred list which has the highest transmission quality, although many other choices, such as alternately using frequencies having higher than average transmission quality are also possible. 
     To improve performance, frequency (transmission configuration in general) adaptation is used. The master collects the feedback data signals from all of the slaves and aggregates its own transmission quality estimate. The master then periodically adjusts the preferred frequency list (or in general, the preferred configuration list) for the subsequent primary data signals. There are many different ways in which the master can aggregate the transmission quality information from the slaves  180  and select the subsequent preferred frequency list. For instance, it can simply average the estimate reported by each slave  180  for each frequency. The master  170  can also use the transmission quality information from each slave  180  to estimate the quality of the link to each slave  180 , and then make decisions about which frequencies to use in the future based on the needs of a slave  180  which is closest to failure. In general, the master  170  can process the transmission quality measurements and select the subsequent preferred frequency list which improves a function of the transmission quality of all master/slave pairs. Based on the transmission quality estimation and how the master  170  selects the subsequent preferred frequency list, the preferred frequency list can not need to be adjusted, or the adjustment (from current preferred frequency list to subsequent preferred frequency lists) can be pseudorandom, partially pseudorandom or the adjustment can be nonrandom. 
     Although the system described thus far is effective at recovering from outside interference, in some circumstances it may interfere with other communications systems. Moreover, the approach thus far described represents a reactive approach, in which interference must have already occurred in order for the system to compensate for it. An additional, proactive approach is also possible, in which the system can be instructed to avoid interference from another network, and avoid interfering with another network, before the interference has happened. 
     For example, with reference to  FIG. 1 , another local wireless network  190  may exist in the same frequency range as the system described. As a more specific example, a user may have a WiFi network (a wireless network conforming to the IEEE 802.11 standard) in the same vicinity as the described system. A WiFi network includes one or more nodes, such as computers and/or base stations, all of which transmit in the same 2.4 GHz range as does the exemplary system described above although what is described is also applicable to other frequency bands. In certain configurations, the WiFi network may be more affected by the described system than the system is by the WiFi network. 
     To address this situation, the channel manager  50  also takes into account information from a channel selector  75  in determining the preferred and, optionally, potential frequency lists. (Although the channel selector  75  is shown separately in  FIG. 1 , it may also be part of the channel manager or part of another element or device in the system.) The channel selector  75  determines frequencies that should not be included among the preferred and, optionally, potential frequencies, because the determined frequencies may interfere with the other local wireless network  190 . 
     With reference to  FIGS. 1 and 6 , in some implementations, the channel selector  75  includes a user interface  610  that has a visual indicator  620 , such as an LED, and a button  650 . Each time the user presses the button  650 , the indicator  620  flashes once. This signifies to the user that the system has registered the button press. Each time the user presses the button  650 , the channel selector  75  selects a WiFi channel (a frequency band utilized by an IEEE 802.11 wireless network) to avoid. By default, before the user has pressed the button  650 , the channel selector  75  selects WiFi channel  6  to avoid, since channel  6  is the most common channel in use in WiFi networks. When the user presses the button  650  once, the channel selector  75  selects WiFi channel  11 , since that is the second-most common WiFi channel. Each subsequent time the user presses the button  650 , the channel selector  75  selects WiFi channels  2 - 5 , followed by  6 - 10 . If the user again presses the button  650 —or if, at any time, the user holds down the button  650  for three seconds—the channel selector  75  will switch to “full band” mode, in which it does not avoid any WiFi channel. In this case, the indicator  620  flashes multiple times. 
     In other implementations, multiple indicators exist such that the currently-selected WiFi channel may be unambiguously displayed. For example, in some implementations, a display exists showing the WiFi channel number. In some implementations, the user controls the selected channel through DIP switches. In some implementations, the user controls the selected channel through an on-screen graphical user interface or an LCD-based graphical user interface. 
     In some implementations, more than one WiFi channel may be selected at once. 
     The user may know in advance which channel is in use by the other network  190 , in which case he or she can press the button  650  the correct number of times to select the required channel. Alternatively, the user may simply press the button  650  when the other network  190  is experiencing interference. Repeated presses of the button  650  will eventually cause the channel selector  75  to select the correct channel to avoid. 
     The channel selector  75  communicates the information about which WiFi channel has been selected to the channel manager  50 , which excludes the associated frequencies from the preferred and, optionally, potential frequency lists. For example, if the user has selected WiFi channel  6 , the channel manager  50  will exclude frequencies corresponding to WiFi channel  6 , i.e, 2.426 to 2.448 GHz, from the preferred frequency list, and optionally the potential frequency list as well. 
     In other implementations, the channel selector  75  includes a mechanism by which the channels occupied by other devices operating on the 2.4 GHz frequency range can be automatically detected and avoided. Referring to  FIG. 7 , for example, the channel selector  75  first waits until the master  170  is not linked to other nodes (steps  710  and  720 ), for example, to a slave node. Then, the channel selector  75  listens for activity on frequencies within the 2.4 GHz frequency band (step  730 ). If the channel selector  75  finds activity (step  740 ), it instructs the channel manager  50  excludes those frequencies from the preferred and, optionally potential frequency lists (step  750 ); otherwise the channel manager  50  determines that the entire band is available (step  760 ). In some variations, instead of waiting until the master  170  is not linked to other nodes (steps  710  and  720 ), the channel selector  75  instead waits until the button  650  ( FIG. 6 ) is pushed. In some variations, step  760  is not used; instead, the channel manager assumes that all frequencies within the band of operation may be included in the potential and preferred frequency list unless instructed otherwise. In some variations, the channel selector  77  located in a slave  180  is used in addition to a channel selector  75  located in a master  170 . In these variations, the slave&#39;s channel selector  77  sends the channel selector  75  in the master  170  information about what frequencies to instruct the channel manager  50  to exclude in step  750 . In some variations channel selectors  75 ,  77  located in both the slave  180  and in the master  170  listen for activity. These variations are advantageous in that the slave&#39;s channel selector  77  may be able to detect frequencies that the master&#39;s channel selector  75  cannot. 
     In some implementations, referring to  FIG. 8 , the master  170  periodically allocates small slices of time (for example, 150 microseconds) within the normal sequence of transmissions/receptions during which all nodes on the network are radio-silent. The channel selector  75  waits for the allocated time slice (step  810 ). At this point, the master  170  suspends transmission (step  825 ) while the channel selector  75  listens for activity (step  820 ). If it finds activity (step  830 ), the channel manager  50  excludes the frequencies at which the activity is occurring from the preferred frequencies (step  840 ); otherwise the channel manager determines that the given frequencies are available (step  850 ). In some variations, step  850  is not used; instead, the channel manager assumes that all frequencies within the band of operation may be included in the potential and preferred frequency list unless instructed otherwise. 
     In the implementations described in  FIGS. 7 and 8 , the channel selector  75  listens for activity in one of following two exemplary ways. In one variation, the channel selector  75  successively tunes to each frequency (or channel) in the band and detects radio frequency energy. In a second variation, the channel selector  75  attempts to detect the signature of a device operating on the channel. As used herein, a signature represents a characteristic emission of a device. The signature may relate to an emission&#39;s frequency, duration, amplitude, phase, power level, antenna polarity, or other attributes, or a combination of attributes. In some implementations, the signature comprises “beacon” packets with a fixed duration associated with an 802.11 network, sent at regular intervals. In some implementations, the signature comprises bursts of energy at regular intervals. In some implementations, the signature comprises energy configured in swaths of 22 MHz, also characteristic of an 802.11 network. In some implementations, a signature comprises a modulation technique, for example ASK, FSK, QAM, OFDM, FHSS, or DSSS. In some implementations, other signatures are defined. 
     Referring to  FIGS. 1 and 9 , in some implementations, a node such as the master  170  is capable of connecting to an 802.11 wireless network. In some variations the node connects, such as through a standard 802.11 chip  73 , to the 802.11 wireless network. In these variations, the connection can be initiated by the user, such as when the user pushes a button. In this case, the channel selector  75  checks to see if the button  650  was pressed (step  905 ). If not, it waits until the user presses the button. (Note that the button press described here does not cause the same effect as the button press described in the text referring to  FIG. 6 .) Next, the channel selector  75  checks to see if an 802.11 network  190  is present (step  910 ). If a network exists, the channel selector  75  instructs the 802.11 chip  73  to connect to the network (step  920 ) and, using the 802.11 protocol, to ascertains the channel on which the network is operating (step  930 ). The channel selector  75  then instructs the channel manager  50  to exclude the frequencies associated with the detected channel (step  940 ). In some variations, the channel selector  75  checks to see if a node such as the master  170  is connected to other nodes such as the slave nodes  180 . If it is, it waits until it is not connected before searching for a wireless network. 
     In some variations, the master  170  performs the process described in  FIG. 9  by omitting step  905  altogether. Instead, the master  170  begins at step  910 . In some implementations, it performs this process when it is first turned on. In some implementations, it performs this process at prespecified time intervals, for example, every 3 seconds. In some variations, the master  170  suspends transmission while it is performing the process described. 
     In other examples, the other network  190  need not be a WiFi network but could be any network on which communication may interfere with the system. Other techniques may be used to solicit the user&#39;s input on the frequencies to be avoided, or to obtain that information automatically. 
     In some implementations, the channel selector  75  is a software program implemented on a DSP (“digital signal processor”). Referring to  FIG. 10 , the button  650  ( FIG. 6 ) is attached to a pin  1005  on the DSP. The channel selector  75  consists of two layers of software code: a low level  1010  and a high layer  1020 . Code in the low level  1010  monitors the voltage on the pin  1005 . A voltage of 0 indicates that the button  650  is depressed; a voltage of non-0 (for example, 3.3 volts) indicates that the button  650  is not depressed. The low-level code  1010  constantly monitors the status of the pin  1005 . The middle-level code  1020  constantly monitors the status of the low-level code  1010 . When the voltage on the pin  1005  becomes non-zero, the low-level code returns an indication that the button has been pressed. It does not continue to return this result until the voltage becomes zero, then non-zero again. (Otherwise, it would send multiple messages whenever the button  650  is pressed.) 
     The low-level code  1010  also maintains a timer  1007 , which the code  1010  uses to determine when the button  650  has remained pressed for three seconds or more. When this happens, the low-level code  1010  returns an indication to the middle-level code  1020  that the button has been pressed. This indication, and the indication that the button has been pressed, take the form of arbitrary patterns. In some examples, the indication that the button is not pressed is binary ‘00’; the indication that the button is pressed is ‘01,’ and the indication that the button has been pressed for three seconds is ‘11’. 
     The indicator  620  is connected via a pin  1025  to the DSP. When the middle-level code  1020  receives a positive result (indicating that the button  650  has been pressed) from the low-level code  1010 , the middle-level code  1020  briefly sends a signal on pin  1025  to flash the indicator  620  once. The middle-level code  1020  then updates an internal channel ID list to mark the channel to avoid. If, after updating, the channel ID list indicates that the system should now be in full band mode, the middle-level code  1020  sends a signal on pin  1025  to flash the indicator  620  one or more additional times. 
     The channel manager  50  constantly monitors the status of the middle-level code  1020 . The middle-level code  1020  returns the frequencies that are associated with the selected WiFi channel. When the button  650  is pressed, the middle-level code  1020  initiates a process  1030  that reallocates all of the channels in the band according to the new selection. 
     The channel manager  50  updates the preferred and, optionally, the potential frequency lists based on factors described earlier as well as the result from the middle-level code  1020 . 
     Information about the selected subsequent preferred frequency list is included in the network management information which can be transmitted to the slaves  180 . To improve reliability of transmitting this information, the network management information can be further protected via error correction coding, which can be more certain of correction than that used to protect the primary data, along with the use of CRCs. Further, instead of sending the network management information once, during the transmission of a frame, the network management information can be transmitted multiple times. For the exemplary wireless audio application, since each frame contains 11 blocks, the network management information can be transmitted along with every block of data so the slaves will have 11 opportunities to receive it. 
       FIG. 3  shows a flowchart operation procedure  190  of the system  4 . The system start  200  organizes information signals into a first number of frames, each including a second number of packets  210 . Each frame is transmitted from the master  170  to the slaves  180  by sending  220  the packets within the frame via a preferred frequency list. The master  170  aggregates and selects a subsequent preferred frequency list based on transmission quality estimation between all the master/slave pairs for both the preferred frequency list and a set of probe frequencies chosen from the potential frequency list  230 . The procedure  190  continues until all the frames are sent  240 . 
     An adaptive scheme, which utilizes the transmission quality estimation, can be used along with a number of technologies for transmitting the digitally modulated information, e.g., FHSS, DSSS, and OFDM (selecting appropriate RF spectrum and digital modulation schemes), by adaptively adjusting one or more controllable transmission parameters. For example, in the case of frequency hopping (FHSS), the master  170  sends a short burst of data signals (a packet for the exemplary wireless sound system) via a digital modulation technique such as 4-level frequency shift keying (4-FSK) or quadrature amplitude modulation (QAM), then adjusts the frequency and sends another short burst of data signals. Each frequency is occupied for a brief period of time. The preferred frequency list can or can not be adaptively adjusted, based on transmission quality estimation and how the master  170  selects the frequencies, to accommodate the localized channel capacity variation. When the proposed transmission quality based adaptive scheme is used with direct sequence modulation (DSSS), the system  4  can take various actions based on transmission quality information, including switching to a new center frequency having better transmission quality, adjusting the chipping sequence, or changing other variables that can affect the transmission, such as antenna polarization, power level, and time slot. When the slaves  180  are handsets, the handset transmission power can also be adjusted so that signals of all handsets have the same power arriving at the master  170 . 
     In general, the monitored channel transmission quality information can be used in many different ways to improve system performance in addition to the adaptive adjustment of frequencies (transmission configurations in general) described above. For example, the properties of digital modulation can be adjusted based on monitored transmission quality. For a frequency having better quality, a higher order modulation scheme such as 16-QAM could be used, while for a frequency having poorer quality a lower order modulation scheme such as 4-QAM could be used, so as to equalize the BER on the frequencies. 
     The information signals  160  to be transmitted can include more than one stream of information signals simultaneously. For example, for the exemplary wireless sound system, there can be two streams from two separate audio signal sources (e.g., one might be carrying a radio broadcast while the other carries material from a CD player), allowing people in different rooms to listen to sounds from different audio signal sources simultaneously. The multiple streams can be separately coded and transmitted via separate masters, and the slaves will then choose to connect to one of the available masters. Alternately, the multiple streams can be multiplexed into the transmission of a single master. For the case when more than one stream is transmitted, the error correction coding scheme of coder  20  can also be adjusted based on the transmission quality and/or utilization of received streams (such as based on slave  180  status and user command/control for each stream). For example, when one stream is not used, an error correction scheme of coder  20  more certain of error correction can be used for the other stream. Furthermore, one embodiment can pack two of the masters  170  into a single physical unit, with each master  170  dedicated to a separate audio signal source (e.g., one for a radio broadcast, and the other for a CD player). They can share common components, such as a common power supply. Also, two masters  170  can be wire-connected in order to synchronize their transmissions and share preferred frequency lists. Two masters  170  that are so implemented are preferably synchronized so that they can listen for feedback packets at the same time. They can also coordinate their selection of frequencies to avoid transmitting on the same frequency at the same time. 
     The master  170  and the slaves  180  preferably agree on which frequencies (transmission configurations in general) will be used, especially for a broadcast network when either a new slave  180  or an existing slave  180  which lost synchronization with the network (e.g., due to interference), must be able to acquire the network (know which frequencies will be used for the next frame of data and synchronize its own time base with that of the master  170 ), without disturbing any ongoing transmission to other slaves  180 . A set of predefined “base frequencies” can be used by the master  170  to transmit the information about the current preferred frequency list to the slaves  180 , and the information used by a new slave  180  for acquiring the network. The set of base frequencies is known a priori by both the master  170  and the slaves  180 , including the slave  180  to be attached. At a predetermined rate, the master  170  can transmit a “sync” packet on one of the base frequencies. The sync packet includes a timing reference extracted from the master&#39;s local clock (for instance, a local crystal oscillator) and the current preferred frequency list. When a new slave  180  is turned on, the slave  180  tunes to one of the base frequencies. The slave  180  repeatedly tries to receive the sync packet, and moves on to another one of the base frequencies, until it succeeds. The slave  180  then reads in the data and the CRC. If the CRC fails, the slave  180  resets itself and tries again. If the CRC passes, the slave  180  assumes it has acquired a master. The new slave  180  then receives packets from the master  170  until such time as the new slave  180  detects a loss of synchronization. 
       FIG. 4A  shows a process  290  for network acquisition at the master  170 . The process  290  start  300  selects one frequency from the set of preselected base frequencies  310  to be used for acquiring the network by the new slaves  180 . A COUNT variable is then reset  320 . Periodically (every 100 ms for example) the master  170  transmits a sync packet containing the master&#39;s timing reference and the subsequent preferred frequency list on the selected base frequency  330 . The COUNT variable is incremented  340 . If the COUNT variable is larger than a predetermined threshold value  350 , the procedure switches to select one frequency  310  to pick another frequency from the list of base frequencies. Otherwise the master  170  transmits the sync packet on the same selected base frequency. When the master  170  is not transmitting a sync packet (which is most of the time), it sends other packets containing other data signals. 
       FIG. 4B  shows a process  390  for network acquisition at the slaves  180 . The process  390  start  400  selects one frequency from the set of preselected base frequencies  410  to be used for acquiring the network by the new slaves  180 . A COUNT variable is then reset  420 . The new slave  180  seeking a master  170  for attachment tunes to the selected frequency and searches for the timing reference information  430  sent as part of the sync packet. If it succeeds, the process reads in the synchronization data  450 . Otherwise the COUNT variable is incremented  460 . If the COUNT variable is larger than a predetermined threshold value  470 , the process switches to select frequency  410  to select another frequency from the list of base frequencies. Otherwise, the procedure returns to  430  so the new slave  180  will continue trying to find a sync packet on the same base frequency. After reading the synchronization data  450 , its CRC is checked for validity  480 . If synchronization data is valid, synchronization has been achieved. The new slave  180  reads in subsequent packets  490 . Otherwise, the procedure returns to  460  to seek synchronization data again. After step  480 , the new slave receives primary data packets. If the received primary data packets are consistently incorrect  495 , the process returns to  410  to try to acquire the network again. 
       FIGS. 5A-5E  are exemplary schematic circuit diagrams suitable for use as a master  170  or a slave  180 . This circuitry can be connected as a master  170  and receive stereo signals from a source, such as a CD player or tuner, and function as a slave  180  that furnishes appropriate audio signals to a loudspeaker system. 
     The probe packet, feedback packet, and sync packet are a few possible management packets that can be implemented. The packet structure of such management packets can be the same as or different from the packet structure used for data signal transmission. An exemplary implementation of the invention accommodates one feedback packet per frame, with probe packets and sync packets each being sent every other frame. 
     The wireless system  4  can operate alone or in parallel with other types of existing networks such as Ethernet networks. For example, the wireless system can be used to transmit time critical data (e.g., audio signal streams) while the existing network is used to transmit other data signals (e.g., command/control signals). 
     An advantage of the wireless system  4  is that it can successfully operate in the presence of noise and competing data signal transmissions in the same transmission band (e.g., from microwave ovens, cell phones, wireless telephones, and other audio devices). For example, interference from microwave ovens, which can be a serious impediment to wireless data signal transmission in homes, is inherently rejected by the system&#39;s monitoring of transmission quality—frequencies affected by microwave oven are discovered and avoided. Competing wireless data transmissions are also, to a degree, dealt with in the same manner; and additional immunity to such competing transmissions arise by choosing sets of frequencies that have little overlap with the frequencies used by competing systems (e.g., the frequencies used in a frequency hopping implementation could be orthogonal to those of a competing system). 
     Each master  170  in the system can also be assigned a unique identification signal that can be transmitted to slaves  180  in the same system to condition the slaves  180  to receive correct data signals. Management packets returned by slaves  180  to masters  170  can be sent during time slots assigned on the basis of a slave&#39;s unique identification signal. 
     The system  4  is sufficiently reliable to provide a multiroom home wireless audio system with a range (distance between master and slaves) of more than 100-ft, as many as eight slaves; a latency (time delay between master and slaves) of less than 40 ms, excellent audio quality, and ability to accommodate transmissions from at least two independent audio signal sources. 
     The auxiliary data signals, such as command/control signals from the slaves can also be sent back to the master along with, or separate from, the transmission quality estimation information signals via the same or separate frequency. For example, for the exemplary wireless sound system application, the user can want to change the audio signals transduced by the speaker, such as by changing the FM radio station. For this example, the relatively long-range wireless link (up to more than 100 ft for the exemplary application) can operate beside short-range RF remote controls, with which the user can command the specific audio devices (e.g., changing the FM radio station). The user&#39;s command/control information can be relayed from the short-range RF remote to the master located at the other end of the long-range wireless link. When the RF remote operates in a different frequency spectrum from the wireless data transmission, the slaves where the audio device is connected can have an RF remote transceiver included so that the command/control to/from the RF remote can be passed through the long-range wireless link in the same way that ancillary information signals are transmitted. Essentially this arrangement forms a repeater for the short-range RF remote, enabling RF remote operation in the same area served by the long-range wireless link. 
       FIGS. 5A-1  includes a transceiver chip  500  commercially available from Atmel Corporation of San Jose, Calif. For transmission, the chip  500  receives a base band signal and FSK modulates this signal on a carrier in the 2.4 Ghz band tunable by a PLL on the chip. A digital interface receives appropriate signals for controlling the carrier frequency and other parameters. For reception, the chip  500  receives a signal in the 2.4 Ghz band, converts the signal for filtering, and then demodulates it to a base band signal delivered at  510 . Chip  502  can be regarded as a sibling chip of transceiver chip  500 . For transmission, it functions as a power amplifier, delivering as much as a few hundred mw of power for radiation of a modulated carrier in the 2.4 Ghz band. For reception, it includes a low noise amplifier. 
     A chip  504  is an analog switch that functions primarily for modulation and is commercially available from Atmel accepting two-level FSK modulation, and with supporting components, furnishes four-level FSK modulation. A chip  506  functions as an operational amplifier that coacts with one of the switches in analog switches  504  as a sample/hold circuit. This circuit accepts a reference level from an incoming analog signal at  510  so that the following circuitry can correctly differentiate one level from another to negate the effects of any DC bias in the incoming signal. 
     A data slicer  508  coacts with surrounding components to convert the analog signal at  510  into a digital signal that can be sampled. 
     Referring to  FIGS. 5B-1  an oscillator  512  functions as the primary time base for furnishing timing signals to all other circuits in the embodiment. An analog audio interface  514  receives left and right stereo signals when the embodiment functions as a master, and a socket  516  is only populated when operating as a master. Switch bank  518  allows a user to select the identification signal for the specific master  170  or slave  180 . 
     Programmable logic device (PLD)  520  can be an EPM3032ATC44-10 commercially available from Altera of San Jose, Calif. The device  520  handles many low-level digital signal functions that are relatively easily handled with programmable logic. The device also performs the preamble detection. When the PLD detects a given pattern in the incoming signal (the preamble), it fires an interrupt signal which the digital signal processor uses as a timing reference. When used as a slave  180 , the master/slave interface can include these voltage translation transistors. 
     Referring to FIGS.  5 C- 1 - 4  a digital signal processor  526  performs the methods according to the system  4 . This digital signal processor in this exemplary embodiment is a 180-MIPS Motorola chip (Motorola DSP56367) commercially available from Motorola. Referring to  FIG. 5D , there is shown circuitry performing analog audio signal processing. For master  170 , circuit  528  includes a differential pre-amp followed by an A/D converter. The master  170  is capable of taking two analog streams (of two channels each), two pairs of differential amplifiers and two dual analog-to-digital converters. For slave  180 , circuit  530  has a single (dual) digital-to-analog converter followed by a pair of buffered amplifiers. Only one stream of two channel output is furnished for this example. 
     Referring to  FIG. 5E , there is a schematic circuit diagram of the power supply. The output of a transformer is full-wave rectified, processed and converted into a range of DC voltages used in the circuitry. 
     There has been described novel apparatus and techniques for wireless communicating. It is evident that those skilled in the art can now make numerous uses and modifications of an departures from the specific apparatus and techniques disclosed herein without departing from the inventive concepts. Consequently the invention is to be construed as embracing each and every novel feature and novel combination of features present in or possessed by the apparatus and techniques herein disclosed and limited only by the spirit and scope of the appended claims.

Technology Classification (CPC): 7