METHOD AND NON-TRANSITORY COMPUTER-READABLE STORAGE MEDIUM AND APPARATUS FOR TRANSMITTING AND RECEIVING WIRELESS MULTI-SOURCE PACKETS

The invention relates to methods, non-transitory computer-readable storage medium, and apparatus for transmitting and receiving a wireless multi-source packet. A processing unit of a first audio-data transmitter device obtains data-slot assignments indicating that a first data slot is assigned to a second audio-data transmitter device and a second data slot is assigned to first audio-data transmitter device for data transmission from a audio-data receiver device; tunes in a first physical channel in the first data slot to obtain a first frame from the second audio-data transmitter device; obtains a second frame including a chunk of second audio data originated by the first audio-data transmitter device; encapsulates the first frame and the second frame into a payload of a media packet; and transmits the media packet at a second physical channel to the audio-data receiver device in the second data slot.

BACKGROUND

The disclosure generally relates to wireless transmission and, more particularly, to methods, non-transitory computer readable storage media and apparatuses for transmitting and receiving wireless multi-source packets.

The wireless system may be configured as multiple transmitter devices and a single receiver device, and in the wireless system the receiver device operates like a master device to coordinate the packet transmissions by the transmitter devices while the transmitter devices operate like slave devices. For example, the wireless microphone system includes the wireless system with the above configurations. In the wireless microphone system, each handheld, handset or lavalier microphone turns audio signals captured mainly from humans into digital data, which is transmitted by a transmitter device thereof. A consumer electronic product is equipped with the receiver device to receive audio data from the transmitter devices. The consumer electronic product may be a digital camera, a digital video recorder, a karaoke host, or others.

SUMMARY

The disclosure relates to an embodiment of a method for transmitting a wireless multi-source packet, which is performed by a processing unit of a first audio-data transmitter device, to include: obtaining data-slot assignments indicating that a first data slot is assigned to a second audio-data transmitter device and a second data slot is assigned to first audio-data transmitter device for data transmission from an audio-data receiver device; tuning in a first physical channel in the first data slot to obtain a first frame from the second audio-data transmitter device, where the first frame comprises a chunk of first audio data originated by the second audio-data transmitter device; obtaining a second frame comprising a chunk of second audio data originated by the first audio-data transmitter device; encapsulating the first frame and the second frame into a payload of a media packet; and transmitting the media packet at a second physical channel to the audio-data receiver device in the second data slot.

The disclosure further relates to an embodiment of a non-transitory computer-readable storage medium having stored therein program code that, when loaded and executed by a processing unit of a first audio-data transmitter device, causes the processing unit to perform the method for transmitting a wireless multi-source packet.

The disclosure further relates to an embodiment of an apparatus for transmitting a wireless multi-source packet, to include a processing unit. The processing unit is arranged operably to: obtain data-slot assignments indicating that a first data slot is assigned to a second audio-data transmitter device and a second data slot is assigned to first audio-data transmitter device for data transmission from an audio-data receiver device; drive a radio frequency (RF) module and a modulator-demodulator (MODEM) to tune in a first physical channel in the first data slot to obtain a first frame from the second audio-data transmitter device, where the first frame comprises a chunk of first audio data originated by the second audio-data transmitter device; obtain a second frame comprising a chunk of second audio data originated by the first audio-data transmitter device; encapsulate the first frame and the second frame into a payload of a media packet; and drive the RF module and the MODEM to transmit the media packet at a second physical channel to the audio-data receiver device in the second data slot.

The disclosure relates to an embodiment of a method for receiving a wireless multi-source packet, which is performed by a processing unit of an audio-data receiver device, to include: transmitting first data-slot assignments indicating that a first data slot is assigned to a second audio-data transmitter device and a second data slot is assigned to a first audio-data transmitter device for data transmission to the first audio-data transmitter device; transmitting a first transmission mode being set to a specific mode, and a first physical-channel configuration to the first audio-data transmitter device, thereby enabling the first audio-data transmitter device to relay a first frame that is listened in the first data slot to the audio-data receiver device, where the first frame comprises a chunk of first audio data originated by the second audio-data transmitter device; and tuning in a first physical channel in the second data slot to receive a first media packet from the first audio-data transmitter device, where the first media packet comprises a first payload carrying the first frame and a second frame and the second frame comprises a chunk of second audio data originated by the first audio-data transmitter device.

The disclosure further relates to an embodiment of a non-transitory computer-readable storage medium having stored therein program code that, when loaded and executed by a processing unit of an audio-data receiver device, causes the processing unit to perform the method for receiving a wireless multi-source packet.

The disclosure further relates to an embodiment of an apparatus for receiving a wireless multi-source packet, to include a processing unit. The processing unit is arranged operably to: transmit first data-slot assignments indicating that a first data slot is assigned to a second audio-data transmitter device and a second data slot is assigned to a first audio-data transmitter device for data transmission to the first audio-data transmitter device; transmit a first transmission mode being set to a specific mode, and a first physical-channel configuration to the first audio-data transmitter device, thereby enabling the first audio-data transmitter device to relay a first frame that is listened in the first data slot to the audio-data receiver device, where the first frame comprises a chunk of first audio data originated by the second audio-data transmitter device; and drive a RF module and a MODEM to tune in a first physical channel in the second data slot to receive a first media packet from the first audio-data transmitter device, where the first media packet comprises a first payload carrying the first frame and a second frame and the second frame comprises a chunk of second audio data originated by the first audio-data transmitter device.

Both the foregoing general description and the following detailed description are examples and explanatory only, and are not restrictive of the invention as claimed.

DETAILED DESCRIPTION

Reference is made in detail to embodiments of the invention, which are illustrated in the accompanying drawings. The same reference numbers may be used throughout the drawings to refer to the same or like parts, components, or operations.

Refer toFIG.1showing a wireless system10including multiple audio-data transmitter devices131,133,135and137, and a single audio-data receiver device110. Each audio-data transmitter device is installed in an audio-data collecting device, such as a handheld, handset or lavalier wireless digital microphone, which is used to pick up sound mainly from humans and digitalize the picked-up sound into digital audio data. The audio-data receiver device110is installed in a digital camera or a digital video recorder for recording and storing the digital audio data, or a karaoke host for converting the digital audio data into analog voice signals, mixing the analog voice signals with other analog signals by musical instruments and amplifying the mixed analog signals. In the wireless system10, the audio-data receiver device110operates as a master device to control timing and physical channels of packet transmissions performed by each of the audio-data transmitter devices131,133,135and137and serve as their communication gateway. Each audio-data transmitter device operates as a slave device to transmit packets carrying digital audio data to the audio-data receiver device110in designated time intervals individually with a designated physical channel. It may use a wireless communications protocol between the audio-data receiver device110and any of the audio-data transmitter devices131,133,135and137, such as Bluetooth low energy Audio (LE Audio), extended Synchronous Connection-Oriented (eSCO), Asynchronous Connection-Oriented (ACL), etc., to transfer packets carrying digital audio data

Refer toFIG.2showing an embodiment of the system block applied in any of the audio-data receiver device110, the audio-data transmitter devices131,133,135and137. The system architecture includes the antenna210, the radio frequency (RF) module220, the modulator-demodulator (MODEM)230and the baseband module240. The baseband module240includes the processing unit242and the memory244. The processing unit242may be implemented in numerous ways, such as with general-purpose hardware (e.g., a microcontroller unit, a digital signal processor, a single processor, multiple processors or graphics processing units capable of parallel computations, or others) that is programmed using firmware, software instructions or the both to perform the functions recited herein. The memory244may allocate space as a data buffer temporarily storing the media packet(s) that has been obtained from the medium, which are originally transmitted to other devices, and collected audio data to be transmitted to the medium. The memory244further stores data needed during execution, such as variables, data tables, and so on. The processing unit242may couple the memory244to access data through a bus architecture.

In adaptive frequency hopping (AFH), the audio-data receiver device110may send the same channel map to the audio-data transmitter devices131,133,135and137. The channel map instructs the audio-data transmitter devices131,133,135and137to use the specific one of the multiple physical channels (for example, 37 physical channels) in the 2.4 to 2.48 GHz frequency band in each time interval (or time slot) to receive data or transmit data, thereby enabling the corresponding RF module220to receive or transmit data in each time interval on the designated physical channel. The audio-data receiver device110may establish different isochronous links with the audio-data transmitter devices131,133,135and137, respectively, and each link uses a specified logical transport and supports bi-directional communication. The RF module220is employed to receive RF signal in the medium and convert the received RF signal into baseband signal that can be processed by the MODEM230. The RF module220is also employed to receive baseband signal from the MODEM230and convert the received baseband signal into RF signal that can be sent to the medium. The RF module220may include a mixer to generate a new frequency according to the input signal, and the signal output from a local oscillator. The MODEM230may implement Gaussian Frequency Shift Keying (GFSK), π/4-Differenttial Quadrature Phase Shift Keying (DQPSK), 8-Differential Phase Shift Keying (DPSK), or others.

In wireless audio-data communications, no acknowledgement mechanism is employed to ensure the network packets transmitted from any audio-data transmitter device to be safely received by the audio-data receiver device110through a media. In a common scenario, one chunk of audio data with the related cyclical redundancy check (CRC) is transmitted by any audio-data transmitter device to the audio-data receiver device110at least three times to improve the reliability. For example, the length of one chunk of audio data and its related CRC is 200 bits (i.e. 25 bytes). One chunk of audio data and the related CRC may be referred to as one frame collectively The audio-data receiver device110determines whether the received audio-data chunk with the CRC in each frame is correct by using a well-known error-check algorithm. The audio-data reception is successful when the received audio-data chunk with the CRC in any of three frames passes the verification with the error-check algorithm.

In some implementations, for example, the audio-data transmitter devices131and133transmit one audio-data chunk with the related CRC to the audio-data receiver device110in the interlaced manner. However, more latency is produced when two or more audio-data transmitter devices appear in the wireless network. Refer toFIG.3showing a wireless transmission timing diagram illustrating transmitting audio data by two transmitter devices131and133. Each event occurs with a regular interval and contains six data slots and one control signal slot. Specifically, the audio-data transmitter device131transmits one chunk of audio data with the related CRC (so-called frame A), which is originated by the audio-data transmitter device131, to the audio-data receiver device110for the first time in the data slot311. The audio-data transmitter device133transmits one chunk of audio data with the related CRC (so-called frame B), which is originated by the audio-data transmitter device133, to the audio-data receiver device110for the first time in the data slot332. The audio-data transmitter device131transmits the frame A to the audio-data receiver device110for the second time in the data slot313. The audio-data transmitter device133transmits the frame B to the audio-data receiver device110for the second time in the data slot334, and so on. The audio-data receiver device110transmits updated setup parameters for the isochronous links in the following events to the audio-data transmitter devices131and133in the control signal slot350. The audio-data transmitter device131deems the data slots311,313and315as transmission (TX) slots for transmitting the frame A while the audio-data receiver device110deems the data slots311,313and315as reception (RX) slots for receiving the frame A. The audio-data transmitter device133deems the data slots311,313and315as idle slots. The audio-data transmitter device133deems the data slots332,334and336as TX slots for transmitting the frame B while the audio-data receiver device110deems the data slots332,334and336as RX slots for receiving the frame B. The audio-data transmitter device131deems the data slots332,334and336as idle slots. The audio-data receiver device110deems the control signal slot350as a TX slot for transmitting the updated setup parameters while the audio-data transmitter devices131and133deem the control signal slot350as a RX slot for receiving the updated setup parameters. Additional latency (about 3 ms−about 1.5 ms=about 1.5 ms) is generated when the audio-data transmitter devices131and133appear in the wireless network. The additional latency is 15% per 10 ms and is 22% per 6.8 ms.

In order to reduce the additional latency because of two or more audio-data transmitter devices connect to the audio-data receiver device110in the wireless network, an embodiment of the invention introduces the relay mechanism. Although the specification describes the shortcomings of the above implementation, this is only used to illustrate the inspiration of embodiments of the present invention as follows. Those artisans may apply the technical solutions to solve other technical problems or be applicable to other technical environments, and the invention should not be limited thereto.

The relay mechanism may be implemented with the Bluetooth Low Energy (LE) specification as an example. Refer toFIG.4showing a wireless transmission timing diagram illustrating allowing any audio-data transmitter device to connect to the audio-data receiver device110. The audio-data receiver device110periodically broadcasts LE advertising (ADV) packets to advertise the name and the ID of the audio-data receiver device110, a short list of services, which includes such as an audio-data host, etc., and information indicating that the LE ADV packet can be responded and the advertising device can be connected. Any of the audio-data transmitter device131,133,135and137scans the designated physical channels, such as channels #37, #38 and #39, to discover a LE ADV packet. For example, once detecting the advertising packet450broadcasted by the audio-data receiver device110, the audio-data transmitter device131sends a scan request carrying the name and the ID of the audio-data transmitter device131to the audio-data receiver device110. The audio-data receiver device110sends a scan response to the audio-data transmitter device131in a control signal slot. The audio-data transmitter device131sends a link layer (LL) connect request to the audio-data receiver device110for requesting to establish a link with the audio-data receiver device110. Once the audio-data receiver device110responds with an acknowledgement and setup parameters to the audio-data transmitter device131, a link has been established between the audio-data receiver device110and the audio-data transmitter device131. The setup parameters may include but not limited to the start times of the following events, the offsets to the data slots and the control signal slot from the start time of each following event, physical-channel configurations used in this link, an encryption key, and a transmission mode. The physical-channel configurations may include settings for a channel hopping algorithm, such as a channel map, constants used in a channel selection equation, etc.

Any of the audio-data transmitter devices133,135and137may use the same procedure to connect to the audio-data receiver device110. Since two to four audio-data transmitter devices can connect to the audio-data receiver device110and produce more additional latency, in some embodiments, the audio-data receiver device110enters one of two reception modes and directs each of the connected audio-data transmitter devices to operate in one of four transmission modes depending on a total number of the audio-data transmitter device or devices that has or have connected to the audio-data receiver device110. The reception modes include: a normal mode and an interlaced mode. The audio-data receiver device110uses a variable to record, in the memory244, a reception mode in which the audio-data receiver device110is operating. The transmission modes include a normal mode, a relay mode, a prolong normal mode, and a prolong relay mode. Any audio-data transmitter device uses a variable to record, in the memory244, a transmission mode in which the audio-data transmitter device is operating. Several scenarios are provided below to illustrate the technical details for the two reception modes and the four transmission modes.

In the first scenario, if there is no audio-data transmitter device which has connected to the audio-data receiver device110, the audio-data receiver device110enters the normal mode and directs the requested audio-data transmitter device to operate in the normal mode.

Assume that the audio-data transmitter devices131is the first device to request the audio-data receiver device110for establishing a link for transmitting audio data. The audio-data receiver device110directs the audio-data transmitter devices131to operate in the normal mode by responding with the setup parameters including the transmission mode being set to the normal mode to the audio-data transmitter devices131. In the normal mode, the audio-data transmitter device131occupies all data slots to transmit audio-data chunks with the related CRC (referred to as frames collectively) to the audio-data receiver device110. Frames to be sent are queued in a First-In First-Out (FIFO) in the audio-data transmitter devices131. The FIFO may be practiced in an allocated space of the memory244in the audio-data transmitter devices131.

To limit the transmission times for the same frame, each frame is attached to a flush timeout value. The flush timeout value is a timestamp indicating the time at which the corresponding frame is generated or is pushed into the FIFO plus a predefined time period (e.g. 1.5 ms). For each data slot, the audio-data transmitter device131, if existed, drops the expired frame (that is, the frame with the flush timeout value, which is earlier than the start time of this data slot) from the top of the FIFO The audio-data transmitter device131picks up the available frame (that is, the frame with the flush timeout value, which is later than the start time of this data slot) from the top of the FIFO to transmit to the audio-data receiver device110in this data slot.

The obtained frame is enclosed in a media packet. The payload of each media packet may carry at most three frames. In the first scenario, the payload of each media packet carries one frame, and the header of the media packet records information about the device ID of the audio-data transmitter device131, and the frame ID of the carried frame and the start bit number of the carried frame in the payload thereof. The audio-data transmitter device131is considered as the data source of the carried frame.

For the transmission in each data slot, the audio-data transmitter device131tunes in a designated physical channel by using the channel hopping algorithm according to the physical-channel configurations set by the audio-data receiver device110. Regularly, each frame is transmitted by the audio-data transmitter device131in the normal mode three times to the audio-data receiver device110under the control with the related flush timeout value when each data slot can be used to transmit at most 75 bytes of data and the predefined time period is set to 1.5 ms. The audio-data receiver device110operating in the normal mode tunes in a designated physical channel to listen in each data slot by using the channel hopping algorithm according to the same physical-channel configurations as that set to the audio-data transmitter device131.

In the second scenario, if there is one audio-data transmitter device (e.g., audio-data transmitter device131) which has connected to the audio-data receiver device110, the audio-data receiver device110enters or keeps in the normal mode and directs both the connected audio-data transmitter device (e.g., audio-data transmitter device131) and another requested audio-data transmitter device (e.g., audio-data transmitter device133) to operate in the relay mode.

Assume that the audio-data transmitter device131has connected to the audio-data receiver device110, which is illustrated in the first scenario, and the audio-data transmitter device133requests the audio-data receiver device110for establishing a link for transmitting audio data. The audio-data receiver device110directs the audio-data transmitter device131to change to operate in the relay mode by sending the updated setup parameters including a transmission mode and data-slot assignments to the audio-data transmitter device131in a control signal slot, where the transmission mode is set to the relay mode and the data-slot assignments indicate that the even number of data slots are assigned to the audio-data transmitter device131and the odd number of data slots are assigned to the audio-data transmitter device133for data transmission. Note that, the starting data slot in each event is denoted as the 0thdata slot (i.e. an even number of data slot).

The audio-data receiver device110responds with the setup parameters including the same transmission mode and the same data-slot assignments to the audio-data transmitter device133, thereby enabling the audio-data transmitter device133to operate in the relay mode in coordination with the audio-data transmitter device131. The setup parameters sent to the audio-data transmitter device133further includes the same physical-channel configurations as that is set to the audio-data transmitter device131, so that the audio-data transmitter devices131and133share the same link to tune in the same physical channel in each data slot.

In the relay mode, the audio-data transmitter device131occupies a half of data slots to transmit data to the audio-data receiver device110and the audio-data transmitter device133occupies the other half of data slots to transmit data to the audio-data receiver device110in the interlaced manner. Similarly, frames to be sent are queued in FIFO in the audio-data transmitter devices131and133and are attached to flush timeout values The predefined time period is the same as that in the normal mode for calculating the flush timeout values. For the transmission in each data slot, the audio-data transmitter device131or133tunes in a designated physical channel by using the channel hopping algorithm according to the physical-channel configurations set by the audio-data receiver device110. Regularly, each frame is transmitted by the audio-data transmitter devices131and133in the relay mode three times to the audio-data receiver device110under the control with the related flush timeout value when each data slot can be used to transmit at most 75 bytes of data and the predefined time period is set to 1.5 ms.

To make the audio-data transmission more efficient, in addition to transmitting the frames originated by itself, each of the audio-data transmitter devices131and133also relays frames originated from the other audio-data transmitter device. The audio-data receiver device110operating in the normal mode tunes in a designated physical channel to listen in each data slot by using the channel hopping algorithm according to the same physical-channel configurations as that set to the audio-data transmitter devices131and133.

Refer toFIG.5showing a wireless transmission timing diagram for transmitting audio data by the audio-data transmitter devices131and133in the relay mode and receiving by the audio-data receiver device110in the normal mode. Each event occurs with a regular interval and contains six data slots and one control slot. Although the numbers, such as511,532,513,534and550, are provided to indicate the slots, which is used to transmit data by a specific device, so-called TX slots, they can also indicate the corresponding RX slots but are omitted for the brevity ofFIG.5. For example, the number511not only indicates the data slot for the audio-data transmitter devices131, but also indicates the data slots aligned vertically to the data slot511for the audio-data transmitter device133and the audio-data receiver device110.

In the data slot511, the audio-data transmitter device131transmits one chunk of audio data with the related CRC (so-called the frame A, shown as the block filled with slashes), which is originated by the audio-data transmitter device131, to the audio-data receiver device110for the first time while the audio-data transmitter device133and the audio-data receiver device110listen to the physical channel hopped in the data slot511and store the listened data (including the frame A theoretically) in the memory thereof. The frame A is enclosed in the payload of the media packet P51. The header of the media packet P51records information about the device ID of the audio-data transmitter device131, the frame ID of the frame A, and the start bit number of the frame A in the payload thereof.

In the data slot532, the audio-data transmitter device133transmits one chunk of audio data with related CRC (so-called the frame B, shown as the block filled with dots), which is originated by the audio-data transmitter device133, to the audio-data receiver device110for the first time, and transmits the data listened in the data slot511to the audio-data receiver device110for the second time while and the audio-data receiver device110listens to the physical channel hopped in the data slot532and store the listened data (including the frames A and B theoretically) in the memory thereof. The frames A and B are enclosed in the payload of the media packet P52. The header of the media packet P52records information about the device ID of the audio-data transmitter device131, the frame ID of the frame A and the start bit number of the frame A in the payload thereof, and a flush timeout value attached to the frame A, as well as the device ID of the audio-data transmitter device133, the frame ID of the frame B and the start bit number of the frame B in the payload thereof, and a flush timeout value attached to the frame B. The audio-data transmitter device131also listens to the physical channel hopped in the data slot532and store a portion of listened data (including the frame B theoretically) in the memory thereof. It is to be understood that the audio-data transmitter device131drops the frame A listened in the data slot532because the frame A is originated by itself.

In the data slot513, the audio-data transmitter device131transmits the frame A to the audio-data receiver device110for the third time and transmits the data, which includes the frame B, listened in the data slot532to the audio-data receiver device110for the second time while the audio-data receiver device110listens to the physical channel hopped in the data slot513and store the listened data (including frames A and B theoretically) in the memory thereof. The payload of the media packet P53encloses the frames A and B, and the header of the media packet P53records the aforementioned information for the frames A and B. The audio-data transmitter device133also listens to the physical channel hopped in the data slot513and store a portion of listened data (including the frame A theoretically) in the memory thereof. It is to be understood that the audio-data transmitter device133drops the frame B listened in the data slot513because the frame B is originated by itself.

In the data slot534, the audio-data transmitter device133transmits the frame B for the third time while the audio-data transmitter device131and the audio-data receiver device110listens to the physical channel hopped in the data slot534and store the listened data (including frame B theoretically) in the memory thereof. In the data slot534, the audio-data transmitter device133may drop the listened frame A because the audio-data transmitter device133detects that the flush timeout value for the listened frame A is earlier than the start time of the data slot534. The payload of the media packet P54encloses the frame B, and the header of the media packet P54records the aforementioned information for the frame B.

The process of obtaining the data originated from the other audio-data transmitter device and transmitting the listened data to the audio-data receiver device110by the audio-data transmitter devices131or133is referred to as a relay process.

The audio-data receiver device110may transmit updated setup parameters, such as a new encryption key, new physical-channel configurations, and so on, for the following events to the audio-data transmitter devices131and133in the control signal slot550. Comparing withFIG.3, the additional latency as shown inFIG.5may be reduced by 1.5 ms when the transmitter devices131and133operate in the relay mode.

The audio-data transmitter device131in the relay mode deems the data slots511and513as TX slots for transmitting data while the audio-data transmitter device133in the relay mode and the audio-data receiver device110in the normal mode deems the data slots511and513as RX slots for receiving data. The audio-data transmitter device133in the relay mode deems the data slots532and534as TX slots for transmitting data while the audio-data transmitter device131in the relay mode and the audio-data receiver device110in the normal mode deems the data slots532and534as RX slots for receiving data. The audio-data receiver device110deems the control signal slot550as a TX slot for transmitting the updated setup parameters while the audio-data transmitter devices131and133deems the control signal slot550as a RX slot for receiving the updated setup parameters.

An audio-data collecting device equipped with the audio-data transmitter device131may further include a microphone and an analog-to-digital (ADC) converter. The microphone repeatedly collects voice signals (analog signals) mainly from humans and the ADC converter converts the analog signals into audio data. The processing unit242of the audio-data transmitter device131when loading and executing relevant firmware code, software code or the both continuously receives the audio data originated from the ADC, collects it into fixed-length chunks and calculates CRC of each chunk. One chunk of audio data and the associated CRC form the frame A. Similarly, an audio-data collecting device equipped with the audio-data transmitter device133may further include a microphone and an ADC converter to repeatedly generate audio data. The processing unit242of the audio-data transmitter device133when loading and executing relevant firmware code, software code or the both generates the frame B by applying a similar procedure to the audio data originated from the ADC of the audio-data collecting device.

In the third scenario, if there are two audio-data transmitter devices which have connected to the audio-data receiver device110, the audio-data receiver device110enters the interlaced mode, directs the two connected audio-data transmitter devices to operate in the prolong relay mode and directs the requested audio-data transmitter device to operate in the prolong normal mode.

Assume that the audio-data transmitter devices131and133have connected to the audio-data receiver device110, which is illustrated in the second scenario, and the audio-data transmitter device135requests the audio-data receiver device110for establishing a link for transmitting audio data. The audio-data receiver device110directs the audio-data transmitter devices131and133to change to operate in the prolong relay mode by sending the updated setup parameters including the transmission mode being set to the prolong relay mode to the audio-data transmitter devices131and132in a control signal slot. Technical details of the operations performed by the audio-data transmitter devices131and132operating in the prolong relay mode will be discussed in the fourth scenario as follows.

The audio-data receiver device110responses with the setup parameters including the transmission mode being set to the prolong normal mode to the audio-data transmitter device135, thereby enabling the audio-data transmitter device135to operate in the prolong normal mode. The setup parameters sent to the audio-data transmitter device135may include different physical-channel configurations from that is set to the audio-data transmitter devices131and133, so that the audio-data receiver device110establishes a different link with the audio-data transmitter devices135. The audio-data receiver device110groups the audio-data transmitter devices131and133into the group A and groups the audio-data transmitter device135into the group B. The different physical-channel configurations for the groups A and B set by the audio-data receiver device110ensures that two physical channels that any group A's audio-data transmitter device and any group B's audio-data transmitter device tune in are different during the same time period.

In the prolong normal mode, the audio-data transmitter device135occupies all data slots to transmit audio-data chunks with the related CRC to the audio-data receiver device110. Similarly, frames to be sent are queued in FIFO in the audio-data transmitter device135and are attached to flush timeout values. The predefined time period employed in the prolong normal mode is twice (e.g. 3 ms) as long as that in the relay mode or the normal mode for calculating the flush timeout values. For the transmission in each data slot, the audio-data transmitter device135tunes in a designated physical channel by using the channel hopping algorithm with the physical-channel configurations set by the audio-data receiver device110. Regularly, each frame is transmitted six times to the audio-data receiver device110in the prolong normal mode under the control with the related flush timeout value when each data slot can be used to transmit at most 75 bytes of data and the predefined time period is set to 3 ms.

The audio-data receiver device110operating in the interlaced mode tunes in designated physical channels to listen in a half of data slots by using the channel hopping algorithm according to the physical-channel configurations set to the audio-data transmitter devices131and133and tunes in designated physical channels to listen in the other half of data slots by using the channel hopping algorithm according to the physical-channel configurations set to the audio-data transmitter device135in the interlaced manner. Technical details of the operations, which is performed by the audio-data receiver device110, for receiving data from the audio-data transmitter devices of the groups A and B in the interlaced manner will be discussed in the fourth scenario as follows.

In the fourth scenario, if there are three audio-data transmitter devices have connected to the audio-data receiver device110, the audio-data receiver device110enters the interlaced mode and directs the three connected audio-data transmitter device operating in the prolong normal mode to change to operate in the prolong relay mode and directs the requested audio-data transmitter device to operate in the prolong relay mode.

Assume that the audio-data transmitter devices131,133and135have connected to the audio-data receiver device110, which is illustrated in the third scenario, and the audio-data transmitter device137(shown inFIG.6) requests the audio-data receiver device110for establishing a link for transmitting audio data. The audio-data receiver device110directs the audio-data transmitter device135to change to operate in the prolong relay mode by sending the updated setup parameters including a transmission mode and data-slot assignments to the audio-data transmitter device135in a control signal slot, where the transmission mode is set to the prolong relay mode and the data-slot assignments indicate that the even number of data slots are assigned to the audio-data transmitter device135and the odd number of data slots are assigned to the audio-data transmitter device137for data transmission. Note that, the starting data slot in each event is denoted as the 0thdata slot (i.e. an even number of data slot).

The audio-data receiver device110responds with the setup parameters including the same transmission mode and the same data-slot assignments to the audio-data transmitter device137, thereby enabling the audio-data transmitter device137to operate in the prolong relay mode in coordination with the audio-data transmitter device135. The setup parameters sent to the audio-data transmitter device137further includes the same physical-channel configurations as that is set to the audio-data transmitter device135, so that the audio-data transmitter devices131and133share one link (so-called link A) and the audio-data transmitter devices135and137share another link (so-called link B). The audio-data receiver device110groups the audio-data transmitter devices131and133into the group A and groups the audio-data transmitter devices135and137into the group B.

In the prolong relay mode, the audio-data transmitter device131occupies a half of data slots of the link A to transmit data to the audio-data receiver device110and the audio-data transmitter device133occupies the other half of data slots of the link A to transmit data to the audio-data receiver device110in the interlaced manner. For the transmission or the reception in each data slot, the audio-data transmitter device131or133tunes in a designated physical channel by using the channel hopping algorithm with the physical-channel configurations set by the audio-data receiver device110. Similarly, the audio-data transmitter device135in the prolong relay mode occupies a half of data slots of the link B to transmit data to the audio-data receiver device110and the audio-data transmitter device137in the prolong relay mode occupies the other half of data slots of the link B to transmit data to the audio-data receiver device110in the interlaced manner. For the transmission or the reception in each data slot, the audio-data transmitter device135or137tunes in a designated physical channel by using the channel hopping algorithm with the physical-channel configurations set by the audio-data receiver device110. The predefined time period employed in the prolong relay mode is twice (e.g. 3 ms) as long as that in the relay mode or the normal mode for calculating the flush timeout values. Regularly, each frame is transmitted six times to the audio-data receiver device110in the prolong relay mode under the control with the related flush timeout value when each data slot can be used to transmit at most 75 bytes of data and the predefined time period is set to 3 ms.

To make the audio-data transmission more efficient, in addition to transmitting the frames originated by itself, each of the audio-data transmitter devices131,133,135and137also relays frames originated from the other audio-data transmitter device in the same group. The audio-data receiver device110operated in the interlaced mode tunes in designated physical channels to listen in a half of data slots by using the channel hopping algorithm according to the physical-channel configurations set to the audio-data transmitter devices131and133and tunes in designated physical channels to listen in the other half of data slots by using the channel hopping algorithm according to the physical-channel configurations set to the audio-data transmitter devices135and137in the interlaced manner.

Refer toFIG.6showing a wireless transmission timing diagram for transmitting audio data by the transmitter devices131,133,135and137in the prolong relay mode and receiving by the audio-data receiver device110in the interlaced mode. Each event in each link occurs with a regular interval and contains six data slots and one control slot. Although the numbers, such as611,632,613,634,615,636,651,672,653,674,655,676and690, are provided to indicate the TX slots, they can also indicate the corresponding RX slots but are omitted for the brevity ofFIG.6. For example, the number611not only indicates the data slot for the audio-data transmitter device131, but also indicates the data slots aligned vertically to the data slot611for the audio-data transmitter device133and the audio-data receiver devices110. The number651not only indicates the data slot for the audio-data transmitter devices135, but also indicates the data slots aligned vertically to the data slot651for the audio-data transmitter device137.

For the group A, in the data slot611, the audio-data transmitter device131transmits one chunk of audio data with the related CRC (so-called the frame A, shown as the block filled with slashes), which is originated by the audio-data transmitter device131, to the audio-data receiver device110while the audio-data transmitter device133listens to the physical channel hopped in the data slot611and store the listened data (including the frame A theoretically) in the memory thereof. The frame A is enclosed in the payload of the media packet P621. The header of the media packet P621records information about the device ID of the audio-data transmitter device131, the frame ID of the frame A, the start bit number of the frame A in the payload thereof, and a flush timeout value attached to the frame A. The frame A is transmitted to the audio-data receiver device110in the data slot611for the first time.

In the data slot632, the audio-data transmitter device133transmits one chunk of audio data with the related CRC (so-called the frame B, shown as the block filled with dots), which is originated by the audio-data transmitter device133, to the audio-data receiver device110, and transmits the data listened in the data slot611to the audio-data receiver device110while the audio-data transmitter device131listens to the physical channel hopped in the data slot632and store the listened data (including the frame B theoretically) in the memory thereof. The frames A and B are enclosed in the payload of the media packet P622. The header of the media packet P622records information about the device ID of the audio-data transmitter device131, the frame ID of the frame A and the start bit number of the frame A in the payload thereof, and a flush timeout value attached to the frame A, as well as the device ID of the audio-data transmitter device133, the frame ID of the frame B and the start bit number of the frame B in the payload thereof, and a flush timeout value attached to the frame B. It is to be understood that the audio-data transmitter device131drops the frame A listened in the data slot632because the frame A is originated by itself. The frame A is transmitted to the audio-data receiver device110in the data slot632for the second time and the frame B is transmitted to the audio-data receiver device110in the data slot632for the first time.

In the data slot613, the audio-data transmitter device131transmits the frame A to the audio-data receiver device110and transmits the data (including frame B) listened in the data slot632to the audio-data receiver device110while the audio-data transmitter device133listens to the physical channel hopped in the data slot613and store the listened data (including frame A theoretically) in the memory thereof. The payload of the media packet P623encloses the frames A and B, and the header of the media packet P623records the aforementioned information for the frames A and B. It is to be understood that the audio-data transmitter device133drops the frame B listened in the data slot613because the frame B is originated by itself. The frame A is transmitted to the audio-data receiver device110in the data slot613for the third time and the frame B is transmitted to the audio-data receiver device110in the data slot613for the second time. The behaviors acted by the audio-data transmitter devices131and133in the data slots634,615and636can be deduced by analogy and are omitted herein for brevity.

The frame A is transmitted to the audio-data receiver device110through the media packets P624, P625and P626in the data slots634,615and636for the fourth, the fifth and the sixth times, respectively. The frame B is transmitted to the audio-data receiver device110through the media packets P624, P625and P626in the data slots634,615and636for the third, the fourth and the fifth times, respectively. The frame B is transmitted to the audio-data receiver device110for the sixth time in the first data slot of the next regular interval (not shown inFIG.6).

The audio-data transmitter device131in the prolong relay mode deems the data slots611,613and615as TX slots for transmitting data while the audio-data transmitter device133in the prolong relay mode and the audio-data receiver device110in the interlaced mode deems the data slots611,613and615as RX slots for receiving data. The audio-data transmitter device133in the prolong relay mode deems the data slots632,634and636as TX slots for transmitting data while the audio-data transmitter device131in the prolong relay mode deems the data slots632,634and636as RX slots for receiving data.

For the group B, in the data slot651, the audio-data transmitter device135transmits one chunk of audio data with the related CRC (so-called the frame C, shown as the block with backslashes), which is originated by the audio-data transmitter device135, to the audio-data receiver device110while the audio-data transmitter device137listens to the physical channel hopped in the data slot651and store the listened data (including the frame C theoretically) in the memory thereof. The frame C is enclosed in the payload of the media packet P641. The header of the media packet P641records information about the device ID of the audio-data transmitter device135, the frame ID of the frame C, the start bit number of the frame C in the payload thereof, and a flush timeout value attached to the frame C. The frame C is transmitted to the audio-data receiver device110in the data slot651for the first time.

In the data slot672, the audio-data transmitter device137transmits one chunk of audio data with the related CRC (so-called the frame D, shown as the block filled with vertical lines), which is generated by the audio-data transmitter device137, to the audio-data receiver device110, and transmits the data (including frame C) listened in the data slot651to the audio-data receiver device110while the audio-data transmitter device135listens to the physical channel hopped in the data slot672and store the listened data (including the frame D theoretically) in the memory thereof The frames C and D are enclosed in the payload of the media packet P642. The header of the media packet P642records information about the device ID of the audio-data transmitter device135, the frame ID of the frame C, the start bit number of the frame C in the payload thereof, and a flush timeout value attached to the frame C, as well as the device ID of the audio-data transmitter device137, the frame ID of the frame D, the start bit number of the frame D in the payload thereof, and a flush timeout value attached to the frame D. It is to be understood that the audio-data transmitter device135drops the frame C listened in the data slot672because the frame C is originated by itself. The frame C is transmitted to the audio-data receiver device110in the data slot672for the second time and the frame D is transmitted to the audio-data receiver device110in the data slot672for the first time.

In the data slot653, the audio-data transmitter device135transmits the frame C to the audio-data receiver device110and transmits the data (including frame D) listened in the data slot672to the audio-data receiver device110while the audio-data transmitter device137listens to the physical channel hopped in the data slot653and store the listened data (including frames C and D theoretically) in the memory thereof. The payload of one media packet P643encloses the frames C and D, and the header of the media packet P643records the aforementioned information for the frames C and D. It is to be understood that the audio-data transmitter device137drops the frame D listened in the data slot653because the frame D is originated by itself. The frame C is transmitted to the audio-data receiver device110in the data slot653for the third time and the frame D is transmitted to the audio-data receiver device110in the data slot653for the second time. The behaviors acted by the audio-data transmitter devices135and137in the data slots674,655and676can be deduced by analogy and are omitted herein for brevity.

The frame C is transmitted to the audio-data receiver device110through the media packets P644, P645and P646in the data slots674,655and676for the fourth, the fifth and the sixth times, respectively. The frame D is transmitted to the audio-data receiver device110through the media packets P644, P645and P646in the data slots674,655and676for the third, the fourth and the fifth times, respectively. The frame D is transmitted to the audio-data receiver device110for the sixth time in the first data slot of the next regular interval (not shown inFIG.6).

The audio-data transmitter device135in the prolong relay mode deems the data slots651,653and655as TX slots for transmitting data while the audio-data transmitter device137in the prolong relay mode deems the data slots651,653and655as RX slots for receiving data. The audio-data transmitter device137in the prolong relay mode deems the data slots672,674and676as TX slots for transmitting data while the audio-data transmitter device135in the prolong relay mode and the audio-data receiver device110deems the data slots672,674and676as RX slots for receiving data.

The audio-data receiver device110may transmit updated setup parameters, such as a new encryption key, new physical-channel configurations, and so on, for the following events to the audio-data transmitter devices131,133,135and137in the control signal slot690The audio-data receiver device110deems the control signal slot690as a TX slot for transmitting the updated setup parameters while the audio-data transmitter devices131,133,135and137deems the control signal slot690as a RX slot for receiving the updated setup parameters.

Since the audio-data receiver device110is equipped with a single RF module to receive data from the four audio-data transmitter devices131,133,135and137, the audio-data receiver device110listens to the designated physical channels for the links A and B in the interlaced manner. Specifically, the audio-data receiver device110sequentially listens to the designated physical channels hopped in the data slot611for the link A, the data slot672for the link B, the data slot613for the link A, the data slot674for the link B, and so on. As a result, the frame A is received by the audio-data receiver device110for the first time in the data slot611. Both the frames C and D are received by the audio-data receiver device110for the first time in the data slot672. The frame B is received by the audio-data receiver device110for the first time and the frame A is received by the audio-data receiver device110for the second time in the data slot613. Both the frames C and D are received by the audio-data receiver device110for the second time in the data slot674. The frame B is received by the audio-data receiver device110for the second time and the frame A is received by the audio-data receiver device110for the third time in the data slot615. Both the frames C and D are received by the audio-data receiver device110for the third time in the data slot676. The process of obtaining the data originated from the other audio-data transmitter device in the same group and transmitting the listened data to the audio-data receiver device110by the audio-data transmitter devices131,133,135or137is referred to as a relay process.

Similarly, an audio-data collecting device equipped with the audio-data transmitter device135may further include a microphone and an ADC converter to repeatedly generate audio data. The processing unit242of the audio-data transmitter device135when loading and executing relevant firmware code, software code or the both generates the frame C with a similar procedure based on the audio data originated from the ADC of the audio-data collecting device. An audio- data collecting device equipped with the audio-data transmitter device137may further include a microphone and an ADC converter to repeatedly generate audio data. The processing unit242of the audio-data transmitter device137when loading and executing relevant firmware code, software code or the both generates the frame D with a similar procedure based on the audio data originated from the ADC of the audio-data collecting device.

An embodiment of the method for executing tasks for each data slot is performed by a processing unit of an audio-data transmitter device (e.g. the processing unit242of the audio-data transmitter device131,133,135or137) when loading and executing relevant firmware codes, software codes, or the both, to operate in the relay mode or the prolong relay mode. It is to be understood that, if not specified, the RF module220, the MODEM230, the processing unit242and the memory244mentioned in the passages associated withFIG.7is installed in a corresponding audio-data transmitter device (such as the audio-data transmitter device131,133,135or137). Detailed steps as shown inFIG.7are described as follows:

Step S710: It is determined whether this data slot is a TX or RX slot according to the updated setup messages obtained from the audio-data receiver device110. If this data slot is a TX slot, the process proceeds to step S731; otherwise, the process proceeds to step S751.

Step S731: The available frame (i.e. the first available frame) is obtained from the top of the FIFO. The first available frame is the frame that is originated by this audio-data transmitter device. It is noted that any expired frame (i.e. the frame attached with a flush timeout value, which is later than the start time of this data slot) is dropped from the top of the FIFO.

Step S733: The available frame (i.e. the second available frame), which was obtained in the previous RX slot if existed, is read from the memory244. The second available frame is the frame that is originated from another audio-data transmitter device. It is noted that any expired frame (i.e. the frame attached with a flush timeout value, which is earlier than the start time of this data slot) read from the memory244is dropped.

It is noted that the available frame recited in steps S731and S733means the frame attached with a flush timeout value, which is later than the start time of this data slot.

Step S735: The MODEM230and the RF module220is driven to transmit a media packet including the first available frame and the second available frame (if existed) at the designated physical channel in this data slot. The processing unit242encapsulates the first available frame and the second available frame (if existed) into the payload of one media packet for transmission. The processing unit242may fill with a guard pattern between the first and second available frames in the payload of the media packet. The processing unit242generates the header of the media packet recording information about the frame IDs of the first and second available frames, the device IDs of the audio-data transmitter devices that originally provide the first and second available frames, start bit numbers of the first and second available frames in the payload, and first and second flush timeout values attached to the first and second available frames, respectively.

Step S751: The MODEM230and the RF module220is driven to tune in the designated physical channel in this data slot to obtain data from the other audio-data transmitter device.

Step S753: The obtained data is stored in the memory244.

An embodiment of the method for executing tasks for each data slot, which is performed by a processing unit242of an audio-data receiver device110when loading and executing relevant firmware codes, software codes, or the both. It is to be understood that, if not specified, the RF module220, the MODEM230, the processing unit242and the memory244mentioned in the passages associated withFIG.8indicate that are installed in the audio-data receiver device110. Detailed steps as shown inFIG.8are described as follows:

Step S810: It is determined whether the audio-data receiver device110is operating in the normal or the interlaced mode. If the audio-data receiver device110is operating in the normal mode, the process proceeds to step S830. If the audio-data receiver device110is operating in the interlaced mode, the process proceeds to step S851.

Step S830: The MODEM230and the RF module220is driven to tune in the designated physical channel in this data slot to obtain data according to the physical-channel configurations set to the audio-data transmitter devices.

Step S851: It is determined which one of the group A and B that this data slot corresponds to. If this data slot corresponds to the group A, the process proceeds to step S853. If this data slot corresponds to the group B, the process proceeds to step S855.

Step S853: The MODEM230and the RF module220is driven to tune in the designated physical channel in this data slot to obtain data according to the physical-channel configurations set to the audio-data transmitter devices in the group A.

Step S855: The MODEM230and the RF module220is driven to tune in the designated physical channel in this data slot to obtain data according to the physical-channel configurations set to the audio-data transmitter devices in the group B.

In each of steps S830, S853and S855, the processing unit242obtains the header and the payload of the media packet from the listened data at the tuned-in physical channel. The processing unit242parses the header to know how many frames are enclosed in the media packet, the flush timeout values attached to each frame, and the start bit number of each frame in the payload, and obtains one chunk of audio data and the related CRC in each frame accordingly.

Step S870, each frame, which passes the verification with the error-check algorithm, is stored in the memory244. It is noted each frame, which cannot pass the verification, is dropped. The stored frame may be fed into a specific application, such as a multi-media recorder, an audio playback, etc., to process.

Some or all of the aforementioned embodiments of the method of the invention may be implemented in a computer program, such as a driver of a dedicated hardware, digital signal processor (DSP) code in a specific programming language, or others. Other types of programs may also be suitable, as previously explained. Since the implementation of the various embodiments of the present invention into a computer program can be achieved by the skilled person using his routine skills, such an implementation will not be discussed for reasons of brevity. The computer program implementing some or more embodiments of the method of the present invention may be stored on a suitable computer-readable data carrier, or may be located in a network server accessible via a network such as the Internet, or any other suitable carrier.

A computer-readable storage medium includes volatile and non-volatile, removable and non-removable media implemented in any method or technology for storage of information such as computer-readable instruction, data structures, program modules, or other data. A computer-readable storage medium includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory, CD-ROM, digital versatile disks (DVD), Blue-ray disk or other optical storage, magnetic cassettes, magnetic tape, magnetic disk or other magnetic storage devices, or any other medium which can be used to store the desired information and may be accessed by an instruction execution system. Note that a computer-readable medium can be paper or other suitable medium upon which the program is printed, as the program can be electronically captured via, for instance, optical scanning of the paper or other suitable medium, then compiled, interpreted, or otherwise processed in a suitable manner, if necessary, and then stored in a computer memory.

Although the embodiment has been described as having specific elements inFIG.2, it should be noted that additional elements may be included to achieve better performance without departing from the spirit of the invention. Each element ofFIG.2is composed of various circuits and arranged to operably perform the aforementioned operations. While the process flows described inFIGS.7and8include a number of operations that appear to occur in a specific order, it should be apparent that these processes can include more or fewer operations, which can be executed serially or in parallel (e.g., using parallel processors or a multi-threading environment).