1. Field of the Disclosure
Various embodiments of the present disclosure relate to a low-power audio data transmission method and apparatus using a multicast/broadcast channel.
2. Description of the Related Art
Bluetooth® Low Energy (BLE) or Bluetooth® LE, which is a wireless personal area network based on Bluetooth®, i.e., a short range wireless protocol, has been developed to reduce power consumption and cost in comparison to conventional Bluetooth®, while maintaining a communication range for health care, fitness, security, home entertainment, etc.
By the nature of a protocol designed to restrict a symbol rate and to minimize power consumption, BLE may not provide a sufficiently high data rate or may consume too much power due to retransmissions in noisy environments.
Accordingly, a need exists for a technique capable of achieving the same audio quality, but using less power in the same environment, by minimizing power consumption at a restricted data rate.
The present disclosure has been made to at least partially solve, alleviate, or remove at least one of problems and/or disadvantages described above, and to provide at least the advantages described below.
Accordingly, various aspects of the present disclosure provide a method and apparatus for transmitting audio data in a communication system.
Various aspects of the present disclosure also provide an audio transmission method and apparatus using BLE.
Various aspects of the present disclosure also provide a method and an apparatus for transmitting audio data by using a multicast/broadcast channel.
Various aspects of the present disclosure also provide a method and an apparatus for transmitting audio data through a multicast/broadcast channel by using BLE.
According to an aspect of the present disclosure, a method is provided for transmitting audio data by a master device. The method includes setting a connection with a plurality of slave devices by using Bluetooth low energy, generating a data packet comprising the audio data, and repetitively transmitting the data packet to the plurality of slave devices through a multicast/broadcast channel a number of times, with a maximum number of times of the repetitively transmitting of the packet data to the plurality of slave devices being determined based on a maximum connection interval.
The above and other aspects, features and advantages of embodiments of the present disclosure will be more apparent from the following description taken in conjunction with the accompanying drawings, in which:
Throughout the drawings, like reference numerals will be understood to refer to like elements, features, and structures.
Hereinafter, various embodiments of the present disclosure will be described in detail with reference to the accompanying drawings. In the description below, technical matters that are well known to a person having ordinary skill in the art and that are not directly related to the present disclosure will not be described in detail in order to avoid obscuring the present disclosure in unnecessary descriptions.
Likewise, some elements may have been exaggerated, omitted, or schematically illustrated in the attached drawings. In addition, a size of each element may not totally reflect a real size of the element. In each drawing, the same or corresponding element is referred to by the same reference numeral.
Herein, the term “unit” means a software or a hardware element like a Field-Programmable Gate Array (FPGA) or an Application Specific Integrated Circuit (ASIC), and the “unit” performs some roles. However, the “unit” is not limited to software or hardware. For example, the “unit” can be configured to exist in an addressable storage medium, and can be configured to operate at least one processor. Accordingly, as an example, the “unit” comprises elements selected from the group consisting of software element, object oriented software elements, class elements and task elements, and further comprises processes, functions, attributes, procedures, subroutines, segments of program code, drivers, firmware, microcode, circuits, data, databases, data constructions, tables, arrays, and variations thereof. The function provided in elements and “unit” can be any of coupled with more or less number of elements and the “units”, and divided into additional elements and “units”. In addition, elements and “unit” can be implemented to operate at least one Central Processing Unit (CPU) in a device and a security multimedia card.
Further, herein, the terms “include” and “comprise,” as well as derivatives thereof, mean inclusion without limitation; the term “or,” is inclusive, meaning and/or; the phrases “associated with” and “associated therewith,” as well as derivatives thereof, may mean to include, be included within, interconnect with, contain, be contained within, connect to or with, couple to or with, be communicable with, cooperate with, interleave, juxtapose, be proximate to, be bound to or with, have, have a property of, or the like; and the term “controller” means any device, system or part thereof that controls at least one operation, such a device may be implemented in hardware, firmware or software, or some combination of at least two of the same. It should be noted that the functionality associated with any particular controller may be centralized or distributed, whether locally or remotely. Definitions for certain words and phrases are provided throughout this disclosure, those of ordinary skill in the art should understand that in many, if not most instances, such definitions apply to prior, as well as future uses of such defined words and phrases.
Although the present disclosure is related to a Bluetooth® or Gaussian Frequency Shift Keying (GFSK)-based wireless communication system, the subject matter of the present disclosure is applicable to other communication systems, protocols, and services having similar technical backgrounds and channel types in a range that does not depart from the scope of the present disclosure.
Embodiments of the present disclosure, as described below, provide efficient audio transmission protocols that may be used in subminiature devices such as hearing aids, headsets, etc., by transmitting audio data through a multicast/broadcast channel in a BLE or Bluetooth® LE.
Referring to
The master device 100 is a digital device that may include several audio sources, such as a phone conversation, radio, a music player, etc., and may be a smart phone, a digital music player, a car stereo system, etc. The master device 100 transmits an output processed/mixed by an internal audio processor to the slave devices 110 and 120 by using a wireless communication device, such as a transceiver. The wireless communication device may operate using Bluetooth or BLE.
The slave devices 110 and 120 are audio devices configured to support BLE-based communication, such as a hearing aid, a headset, etc. The slave devices 110 and 120 are in charge of left and right sound, respectively.
Referring to
Referring to
Referring to
The BLE stack 220 includes a LE protocol unit 222 and a Logical Link Control and Adaptation (L2CAP) unit 224. The LE protocol unit 222 manages a generic access profile and a generic attribute profile, and controls an attribute protocol and security management. The L2CAP unit 224 supports higher-level protocol multiplexing, packet segmentation and reassembly, and conveying of Quality of Service (QoS) information. The L2CAP unit 224 controls a higher-level protocol and an application to transmit a higher-level data packet, i.e., an L2CAP Service Data Unit (SDU), and performs channel-flow-specific control through control of a flow and a retransmission mode. The L2CAP unit 224 provides logical channels, which are commonly referred to as L2CAP channels, each of which may operate in a basic L2CAP mode, a flow control mode, and the retransmission mode.
The audio processor 112 transmits the audio signal to the BLE stack 220 or receives the audio signal through the BLE stack 220. The audio processor 112 may directly transmit the audio signal to the link/physical layer unit 230 or receive the audio signal, without passing through the BLE stack 220.
The link/physical layer unit 230 performs retransmission of audio data based on BLE. The link/physical layer unit 230 may include a communication circuit for converting an input audio signal into a Bluetooth®-based data packet for wireless transmission and extracting the data packet from the wirelessly received signal, and a processor for controlling transmission and reception performed by the communication circuit.
Referring to
Referring to
Referring to
Referring to
At the start of a next CI 410, the transmission side transmits transmission data Tx #2, and data (Data) and an acknowledgement ACK #2 transmitted by the reception side are lost, failing to arrive in the transmission side in the CI 410. Then, the transmission side retransmits the transmission data Tx #2 at the start of a next CI 420. In the same CI 420, the reception side transmits the data (Data) and the acknowledgement ACK #2 to notify that the transmission data Tx #2 has been successfully received. The transmission data Tx #2 includes MD=1, such that the transmission side transmits transmission data Tx #3 in the CI 420. An acknowledgement ACK #3 for transmission data Tx #3 is also transmitted in the same CI 420.
Restrictions on implementation of audio streaming using BLE may include a low transmission speed due to the restrictions of a low symbol rate of 1 Mbps, a maximum packet length of 184 bits, and a CI of a minimum of 7.5 ms, and a restriction on the number of retransmissions due to non-guaranteed continuous data delivery caused by a process latency problem. To obtain 32 kbps in the CI of 7.5 ms, a packet length of 240 bits is used. In this case, additional transmission may be used in a CI, or length extension may be used. General requirements for audio streaming (mono for voice) include:
The maximum length of a CI is defined as shown in Equation (1).
Max CI=20 ms−audio encode/decode time−1 max packet length−1 packet process delay−jitter margin (1)
Referring to
For use in stereo music playback, an audio path between the master device and each slave device carries different audio data for left and right sounds. For use in mono audio/voice, such as a mono record file, a voice mail, a phone call, etc., the transmission side copies the same voice data and transmits the copied voice data to each slave device.
A quality factor for an audio device considers audio quality and power consumption. The audio quality is determined by robustness, a packet transfer rate, a retransmission rate, etc. Power consumption is determined by a packet length and overhead, a lower packet transmission speed, less retransmission attempts, etc. BLE supports lower power consumption and faster connection time than conventional Bluetooth®, and needs to support transmission of audio data and control data (audio control data and link control data) to implement an audio device using BLE.
Referring to
Left audio data #1 L is transmitted at the start of the first transaction time 604 in the CI 602. After an Inter Frame Spacing (IFS) being set to 150 μs (micro seconds), an acknowledgement ACK #1 is transmitted.
At the start of the second transaction time 606, right audio data #1 R including different data of a different channel is transmitted. After the IFS, the acknowledgement ACK #1 is transmitted. An empty packet for acknowledgement has a length of 10 octets and occupies a transmission interval of 80 μs. To support retransmission, in the transaction times 604 and 606, each transmission should be performed prior to a given channel margin 602 (for example, 4.8 ms). The channel margin 602 refers to a limited margin in which further data transmission to the same slave device is possible.
Referring to
Left audio data #1 L is transmitted at the start of the first transaction time 612 in the CI 610. After a given IFS, microphone data (Mic.) and an acknowledgement ACK #1 are transmitted. At the start of the second transaction time 614, right audio data #1 R including the same data of a different channel is transmitted. After the IFS, the acknowledgement ACK #1 is transmitted. An empty packet for acknowledgement occupies a transmission interval of 80 μs. A channel margin 620 refers to a limited margin in which further data transmission to the same slave device is possible.
Referring to
Referring to
For BLE, the number of possible retransmissions is limited by a symbol rate and a CI restricted by standards, and a required audio data latency. As a result, the same audio quality may be obtained with less power consumption by retransmitting data simultaneously to connected slave devices a predetermined number of times, without reception of an acknowledgement from each slave device. When mono audio data, such as a voice signal, is transmitted to a plurality of devices, transmission of left data and transmission of right data for left and right headsets are repetitive transmissions of the same data, which is wasteful. In particular, for BLE, since a maximum of two or three retransmissions are possible, due to the aforementioned restrictions of the standard, an efficient technique for mono audio streaming, such as increasing the number of possible retransmissions, is needed.
Referring to
Referring to
Referring to
Referring to
Limitations on the number of retransmissions for supporting audio data transmission using a multicast/broadcast channel may be indicated or negotiated by the master device during an establishment of the multicast/broadcast channel.
Alternatively, the master device may determine the number of retransmissions based on channel quality obtained through channel scanning, before establishing the multicast/broadcast channel.
As another alternative, the number of retransmissions may be updated through a channel update procedure in a connection state.
In an embodiment of an audio data transmission method using the multicast/broadcast channel, to transmit microphone data or control data using the same channel, to the master device, from one of multiple slave devices, one of the multiple slave devices may serve as a main slave device and the microphone data or control data may be forwarded to the master device from the main slave device. One of the multiple slave devices, which is equipped with a microphone and transmits microphone data to the master device, is the main slave device, and any other slave devices are sub slave devices.
The main-sub roles are fixed during connection establishment, and in the connection state, the roles may be changed by a predetermined role change procedure. For example, a headset having a microphone or a hearing aid that connects first may be a main slave device and the other audio devices may be sub slave devices.
In accordance with an embodiment of the present disclosure, only the main slave device may be configured to transmit an acknowledgement regarding audio data received from the master device. If the headset equipped with the microphone is the main slave device, the headset may incorporate an acknowledgement into microphone data to be transmitted to the master device.
The main slave device, like the master device, may repetitively transmit microphone data a fixed number of retransmissions, and the microphone data, like the audio data from the master device, may be repetitively transmitted in the same CI or in different CIs.
Alternatively, retransmission of the microphone data by the main slave device may be controlled according to an acknowledgement of the master device.
The number of retransmissions should be smaller than a maximum number of retransmissions. The maximum number of retransmissions may be determined based on a maximum CI, the number of slave devices, and a packet transfer time. For example, the maximum CI may be defined as shown in Equation (2).
Max CI=max latency−audio encode/decode time−1 max packet length−1 packet process delay−jitter margin (2)
The main slave device may retransmit the microphone data according to a predetermined retransmission number.
In accordance with an embodiment of the present disclosure, each time an acknowledgement regarding data received from the master device is transmitted, the slave device may transmit the microphone data together with the acknowledgement. If there is no sensed voice, the microphone data may include null data.
The data and/or the acknowledgement from the main slave device may be transmitted during a slave transmission interval in a CI. Each slave device does not receive data in a retransmission interval if a previous packet is correctly received, depending on a previously-known retransmission number, thereby reducing power consumption. That is, each slave device listens to a retransmission from the master device during a retransmission interval, if the previous packet has not been correctly received.
The master device may separately set a unicast or multicast/broadcast channel for control data associated with audio data, when establishing a multicast/broadcast channel for the audio data. In this case, the audio data and the control data are distinguished from each other by a separate unicast channel for each slave device or by a channel ID of a header of L2CAP included in a header or payload of a PDU.
Alternatively, the audio data and the control data may be distinguished from each other by a PDU header or a channel ID of a header of L2CAP included in payload of a PDU, while sharing one multicast/broadcast channel. For example, one bit of an RFU may be set to ‘0’ indicating audio data or ‘1’ indicating control data. The bit of the RFU is referred to as a channel type indicator.
In accordance with another embodiment of the present disclosure, the channel type indicator includes a plurality of bits and is set to ‘0’ indicating multicast/broadcast, ‘1’ indicating the first slave, ‘2’ indicating the second slave, etc.
Referring to
In step 1210, the master device sends a multicast/broadcast connection request through the ACL connection. For example, the multicast/broadcast connection request includes at least one of an access address for the multicast/broadcast channel, time information, and a CI. A control PDU for creating the multicast/broadcast channel may be set to one of reserved values of the Bluetooth® standard. For example, the control PDU for the multicast/broadcast channel may be set to one of 0x14-0xFF.
In step 1215, the master device receives a response to the request and identifies each slave device having transmitted the response.
In step 1220, the master device completes establishment of the multicast/broadcast channel with each slave device having transmitted the response.
Thereafter, the access address determined by the establishment of the multicast/broadcast channel is used as an access code for every slave device that connects the multicast/broadcast channel.
Referring to
For identification of an audio channel type prior to establishment of the multicast/broadcast channel, control data including an audio data type (mono, interactive (call), etc.) and a codec configuration may be used.
Referring to
Referring to
Likewise, in the next CI 1430, repetitive transmissions of left/right audio data #2 L/R 1432 and 1436 and repetitive transmissions of microphone data Mic. #2 L 1434 and 1438 may be performed. The number of retransmissions for the multicast/broadcast channel may be determined based on a length of a CI. Alternatively, the length of the CI may be adjusted according to the number of retransmissions required for the multicast/broadcast channel, when the multicast/broadcast channel is established.
Referring to
Referring to
Referring to
At the start of the next CI 1630, the next audio data #1 L/R 1632 is transmitted, but microphone data Mic. #1 L is not retransmitted because it was acknowledged in the previous CI 1620. In the remaining time of the CI 1630, the next audio data #2 L/R 1636 and the next microphone data Mic. #2 L 1638 are transmitted, but the main slave device fails to receive an acknowledgement regarding the microphone data Mic. #2 L 1638. In the next CI 1640, the main slave device retransmits microphone data Mic. #2 L 1644.
Referring to
Referring to
Referring to
Referring to
Referring to
Referring to
In step 2010, the master device generates data including audio data to be transmitted. The data includes the access code for the multicast/broadcast channel in an access address field and a channel type indicator indicating the multicast/broadcast channel in a header. The data is referred to as multicast/broadcast data.
In step 2015, the multicast/broadcast data is transmitted to multiple slave devices that set up a connection with the master device.
In step 2020, if data to be received exists, the master device receives microphone data from the main slave device.
In step 2025, the master device determines whether the number of transmissions of the data reaches the set number of retransmissions. If the number of transmissions of the data reaches the set number of retransmissions, operation returns to step 2010 to generate new data. However, when the number of transmissions of the data has not reached the set number of retransmissions, the master device waits for the next transmission time for the same data in step 2030, and then the operation returns to step 2015 to retransmit the same data. The next transmission time may be included in, for example, the same CI or the next CI.
Referring to
In step 2110, the slave device receives data from the master device. If the slave device operates as the main slave device, the slave device determines whether data to be transmitted exists, i.e., whether sensed voice exists, in step 2115, and if the data to be transmitted exists, the slave device transmits microphone data to the master device in step 2120.
In step 2125, the slave device identifies whether the received data is multicast/broadcast data. The multicast/broadcast data includes an access code for the multicast/broadcast channel in an access address field and includes a channel type indicator indicating the multicast/broadcast channel in a header. If the received data is not the multicast/broadcast data, the operation returns to step 2110 to receive new data. However, if the received data is the multicast/broadcast data, the slave device determines whether data transmitted from the master device has an error in step 2130. If there is no error in the data transmitted from the master device in step 2130, the slave device stands by in a power saving mode until a new data transmission point in time, and the operation returns to step 2110 to receive new data.
However, if there is an error in the data transmitted from the master device, the slave device waits for the next transmission point in time for the same data in step 2135, and then the operation returns to step 2110 to receive the same data again. For example, the next transmission time may be included in the same CI or the next CI.
At this time, it can be understood that each illustration of flowcharts and the combination of the flowcharts can be executed by the instructions of a computer program. Since the instructions of the computer program can be loaded in the processor of any of a general purpose computer, a special purpose computer and other programmable data processing equipment, the instructions executed through one of the computer and the processor of the other programmable data processing equipment generates a means for processing the functions explained in the flowchart(s). Since it is possible that these instructions of the computer program are also stored in a memory which can be used and be read in any computer and other programmable data processing equipment which is compatible with the computer so as to implement the function in a specific manner, it is also possible for the instructions stored in the memory which can be used and be read in computer to manufacture a production which includes an instructing means executing the functions explained in blocks of the flowcharts. Since it is possible that the instructions of the computer program can also be loaded in a computer and other programmable data processing equipment, it is also possible to provide the steps of executing the function explained in block(s) of the flowchart processes by instructions which generate a process executed in the computer by executing a series of operation steps on the computer and other programmable data processing equipment.
In addition, each block may represent a module including one or more executable instructions for executing one of a specified logical function, a segment and a part of code.
Further, it should be noted that, in some alternative embodiments, the functions mentioned in the blocks can be generated in different orders. For example, it is also possible that the two blocks which are consecutively shown can be executed substantially at the same time, and that, sometimes, the blocks are executed in reverse order in accordance with a corresponding function.
Various embodiments of the present disclosure may also be embodied as computer-readable code on a computer readable recording medium. A computer-readable recording medium is any data storage device that can store data which can be thereafter read by a computer system. Examples of the computer-readable recording medium include Read-Only Memory (ROM), Random-Access Memory (RAM), Compact Disc (CD)-ROMs, magnetic tapes, floppy disks, optical data storage devices, and carrier waves (such as data transmission through the Internet). The computer-readable recording medium can also be distributed over network coupled computer systems so that the computer-readable code is stored and executed in a distributed fashion. Also, functional programs, code, and code segments for accomplishing the present disclosure can be easily construed by programmers skilled in the art to which the present disclosure pertains.
It will be appreciated that the apparatus and method according to the above described embodiments of the present disclosure may be implemented in a form of hardware, software or a combination of the hardware and software. Such arbitrary software may be stored in a volatile or non-volatile storage device, for example a ROM, a memory, for example, a RAM, a memory chip, a memory device, or a memory integrated circuit, or a storage medium that is optically or magnetically recordable and readable by a machine (for example, a computer), for example, a CD, a Digital Versatile Disk (DVD), a magnetic disc, or a magnetic tape, irrespective of whether the software is erasable or rewritable or not. The method according to various embodiments of the present disclosure may be implemented by a computer or a portable terminal that includes a controller and a memory, in which the memory is an example of a machine-readable storage medium which is suitable for storing a program or programs that contain instructions for implementing the exemplary embodiments of the present disclosure.
Accordingly, the present disclosure includes a storage medium, a program that contains codes for implementing the apparatuses or methods defined in the accompanying claims, and a machine-readable (for example, computer-readable) storage medium that stores the program. In addition, the programs may be electronically transmitted through an arbitrary medium, for example, communication signals transmitted through a wired or wireless connection, and the present disclosure properly includes those equivalent thereto.
Further, the apparatus according to various embodiments of the present disclosure may receive and store the program from wired or wirelessly connected program providing apparatus. The program providing apparatus may include a memory for storing a program that contains instructions for executing the method, a communication unit, such as a transceiver, for performing a wired or wireless communication of the apparatus, and a controller for transmitting the corresponding program to the communication unit in response to a request of the apparatus or automatically.
While the present disclosure has included reference to certain embodiments thereof, it will be understood by those of ordinary skill in the art that various changes in form and details may be made therein without departing from the spirit and scope of the present disclosure, as defined by the following claims and their equivalents.
Number | Date | Country | Kind |
---|---|---|---|
10-2014-0153583 | Nov 2014 | KR | national |
This application is a Continuation Application of U.S. patent application Ser. No. 14/712,469, filed May 14, 2015, and claims priority under 35 U.S.C. § 119(e) to U.S. Provisional Application Ser. No. 61/996,848, which was filed in the U.S. Patent and Trademark Office on May 14, 2014, and under 35 U.S.C. § 119(a) to Korean Patent Application Serial number 10-2014-0153583, which was filed in the Korean Intellectual Property Office on Nov. 6, 2014, the entire disclosure of each of which are incorporated herein by reference.
Number | Name | Date | Kind |
---|---|---|---|
20060111044 | Keller | May 2006 | A1 |
20120196534 | Kasslin | Aug 2012 | A1 |
20120257561 | Redding | Oct 2012 | A1 |
20130034005 | Xhafa | Feb 2013 | A1 |
20130045684 | Linde et al. | Feb 2013 | A1 |
20140348327 | Linde | Nov 2014 | A1 |
20150010179 | Solum | Jan 2015 | A1 |
20150195857 | Pan | Jul 2015 | A1 |
20150312858 | Kerai | Oct 2015 | A1 |
20150319557 | El-Hoiydi | Nov 2015 | A1 |
Number | Date | Country | |
---|---|---|---|
20170272851 A1 | Sep 2017 | US |
Number | Date | Country | |
---|---|---|---|
61996848 | May 2014 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 14712469 | May 2015 | US |
Child | 15616593 | US |