aboutsummaryrefslogtreecommitdiff
path: root/en/devices/bluetooth/asha.html
diff options
context:
space:
mode:
Diffstat (limited to 'en/devices/bluetooth/asha.html')
-rw-r--r--en/devices/bluetooth/asha.html101
1 files changed, 55 insertions, 46 deletions
diff --git a/en/devices/bluetooth/asha.html b/en/devices/bluetooth/asha.html
index f6a6c193..d3c879d7 100644
--- a/en/devices/bluetooth/asha.html
+++ b/en/devices/bluetooth/asha.html
@@ -34,7 +34,7 @@
The design of CoC references the
<a href="https://www.bluetooth.com/specifications/bluetooth-core-specification">Bluetooth Core Specification Version 5</a>
(BT). To stay aligned with the core specifications, all multi-byte
- values on this page should be read as little-endian.
+ values on this page shall be read as little-endian.
</p>
<h2 id="terminology">Terminology</h2>
@@ -85,17 +85,16 @@
</aside>
<p>
- When pairing and connecting hearing devices, the central should:
+ When pairing and connecting hearing devices, the central shall:
</p>
<ul>
<li>
Keep track of the more recent left and right peripherals paired.
- Those two peripherals should be considered the audio sink.
</li>
<li>
Assume the peripherals are in use if a valid pairing exists. The
- central should attempt to connect or reconnect with the paired
+ central shall attempt to connect or reconnect with the paired
device when the connection is lost.
</li>
<li>
@@ -113,34 +112,39 @@
<p>
To properly implement CoC for a good user experience, the Bluetooth
- systems in the central and peripheral devices should:
+ systems in the central and peripheral devices shall:
</p>
<ul>
<li>
- implement a compliant BT 4.2 or higher controller
+ implement a compliant BT 4.2 or higher controller.
</li>
<li>
- support at least 2 simultaneous LE links with parameters as
+ have the central support at least 2 simultaneous LE links with parameters as
+ described in <a href="#audio-packet-format-and-timing">Audio packet
+ format and timing</a>.
+ </li>
+ <li>
+ have the peripheral support at least 1 LE link with the parameters
described in <a href="#audio-packet-format-and-timing">Audio packet
format and timing</a>.
</li>
<li>
have an LE credit based flow control [BT Vol 3, Part A, Sec 10.1].
- Devices should support an MTU and MPS size of at least 240 bytes on
+ Devices shall support an MTU and MPS size of at least 241 bytes on
CoC and be able to buffer up to 8 packets.
</li>
<li>
have an LE data length extension [BT Vol 6, Part B, Sec 5.1.9] with
- a payload of at least 87 bytes. It is recommended that the data
- length is at least 250 bytes.
+ a payload of at least 167 bytes. For peripherals that support the
+ codec G.722 @ 24 kHz, the length is at least 247 bytes.
</li>
<li>
have the central device support the HCI LE Connection Update Command
and comply with the non-zero minimum_CE_Length parameter.
</li>
<li>
- maintain the data throughput for two LE CoC connections to two
+ have the central maintain the data throughput for two LE CoC connections to two
different peripherals with the connection intervals and payload
sizes in <a href="#audio-packet-format-and-timing">Audio packet
format and timing</a>.
@@ -156,11 +160,11 @@
</ul>
<p>
- The peripheral and central may implement 2 Mbit PHY as specified in
- BT 5. The central should support audio links up to 64 kbit/s on both 1
- Mbit and 2 Mbit PHY but can choose to limit support for links
- requiring more than 64 kbit/s to the 2 Mbit PHY in order to improve
- coexistence with other 2.4 GHz devices. The BLE long range PHY should
+ The peripheral and central may implement 2M PHY as specified in
+ BT 5. The central shall support audio links up to 64 kbit/s on both 1M
+ and 2M PHY but can choose to limit support for links
+ requiring more than 64 kbit/s to the 2M PHY in order to improve
+ coexistence with other 2.4 GHz devices. The BLE long range PHY shall
not be used.
</p>
@@ -172,8 +176,8 @@
<h2 id="asha-gatt-services">ASHA GATT services</h2>
<p>
- A peripheral should implement the Audio Streaming for Hearing Aid
- (ASHA) GATT server service described below. The peripheral should
+ A peripheral shall implement the Audio Streaming for Hearing Aid
+ (ASHA) GATT server service described below. The peripheral shall
advertise this service when in general discoverable mode to let the
central recognize an audio sink. Any LE audio streaming operations
shall require encryption. The BLE audio streaming consists of the
@@ -215,16 +219,16 @@
<td>Volume</td>
<td>Write without Response</td>
<td>
- Byte between -128 and 0 indicating volume in dB. -128 should be
+ Byte between -128 and 0 indicating volume in dB. -128 shall be
interpreted as mute. 0 dB with a rail-to-rail sine tone streamed
- should represent a 100 dBSPL input equivalent on the hearing
- instrument. The central should stream in nominal full scale and
+ shall represent a 100 dBSPL input equivalent on the hearing
+ instrument. The central shall stream in nominal full scale and
use this variable to set the desired presentation level in the
peripheral.
</td>
</tr>
<tr>
- <td>LE_PSM</td>
+ <td>LE_PSM_OUT</td>
<td>Read</td>
<td>
PSM to use for connecting the audio channel. To be picked from the
@@ -259,13 +263,13 @@
<td><code>{00e4ca9e-ab14-41e4-8823-f9e70c7e91df}</code></td>
</tr>
<tr>
- <td>LE_PSM</td>
+ <td>LE_PSM_OUT</td>
<td><code>{2d410339-82b6-42aa-b34e-e2e01df8cc1a}</code></td>
</tr>
</table>
<p>
- In addition to the ASHA GATT service, the peripheral should also
+ In addition to the ASHA GATT service, the peripheral shall also
implement the Device Information Service to let the central detect the
manufacturer names and device names of the peripheral.
</p>
@@ -319,7 +323,7 @@
<td>
Supported <a href="#codec-ids">Codec IDs</a>. This is a bitmask
of supported codec IDs. A 1 in a bit location corresponds to a
- supported codec. All other bits should be set to 0.
+ supported codec. All other bits shall be set to 0.
</td>
</tr>
</table>
@@ -359,7 +363,9 @@
</tr>
<tr>
<td>0-1</td>
- <td>ID of the manufacturer.</td>
+ <td>ID of the manufacturer. It is the
+ <a href="https://www.bluetooth.com/specifications/assigned-numbers/company-identifiers">Company Identifiers</a>
+ assigned by BTSIG.
</tr>
<tr>
<td>2-7</td>
@@ -379,7 +385,7 @@
</tr>
<tr>
<td>0</td>
- <td>LE CoC audio streaming supported (Yes/No).</td>
+ <td>LE CoC audio output streaming supported (Yes/No).</td>
</tr>
<tr>
<td>1-7</td>
@@ -466,7 +472,7 @@
<li><strong>2</strong> - Phonecall</li>
<li><strong>3</strong> - Media</li>
</ul>
- The peripheral should not request connection updates before a
+ The peripheral shall not request connection updates before a
<code>«Stop»</code> opcode has been received.
</td>
</tr>
@@ -476,8 +482,7 @@
<td>
Instructs the peripheral to stop rendering audio. A new audio
setup sequence should be initiated following this stop in order
- to render audio again. The peripheral may request a connection
- update following this command.
+ to render audio again.
</td>
</tr>
</table>
@@ -548,14 +553,15 @@
The peripherals must have a <strong>Complete Local Name</strong>
data type that indicates the name of the hearing aid. This name will
be used on the mobile device's user interface so the user can select
- the right device. The name should not indicate the left or right
+ the right device. The name shall not indicate the left or right
channel since this information is provided in
<a href="#devicecapabilities">DeviceCapabilities</a>.
</p>
<p>
If the peripherals put the name and ASHA service data types in the same
- frame type (ADV or SCAN RESP), then the two data types should appear
+ frame type (ADV or SCAN RESP), then the two data types ("Complete Local Name"
+ and "Service Data for ASHA service") shall appear
in the same frame. This lets the mobile device scanner get both data
in the same scan result.
</p>
@@ -601,8 +607,8 @@
<ul>
<li>
An audio frame should always match the connection interval in time.
- For example, if the connection interval is 15ms and sample rate is
- 1 kHz, then the audio frame should contain 240 samples.
+ For example, if the connection interval is 10ms and sample rate is
+ 16 kHz, then the audio frame shall contain 160 samples.
</li>
<li>
Sample rates in the system are restricted to multiples of 8kHz to
@@ -610,14 +616,14 @@
the frame time or the connection interval.
</li>
<li>
- A sequence byte should prepend audio frames. The sequence byte
- should be counting with wrap-around and allow the peripheral to
+ A sequence byte shall prepend audio frames. The sequence byte
+ shall be counting with wrap-around and allow the peripheral to
detect buffer mismatch or underflow.
</li>
<li>
- An audio frame should always fit into a single LE packet. The audio
- frame should be sent as a separate L2CAP packet. The size of the LE
- LL PDU should be:<br />
+ An audio frame shall always fit into a single LE packet. The audio
+ frame shall be sent as a separate L2CAP packet. The size of the LE
+ LL PDU shall be:<br />
<em>audio payload size + 1 (sequence counter) + 6
(4 for L2CAP header, 2 for SDU)</em>
</li>
@@ -635,7 +641,7 @@
</p>
<p>
- For all the codecs that a peripheral supports, the peripheral should
+ For all the codecs that a peripheral supports, the peripheral shall
support the connection parameters below. This is a non-exhaustive list
of configurations that the central can implement.
</p>
@@ -645,7 +651,7 @@
<th>Codec</th>
<th>Bitrate</th>
<th>Connection interval</th>
- <th>CE Length (1/2 Mbit)</th>
+ <th>CE Length (1M/2M PHY)</th>
<th>Audio payload size</th>
</tr>
<tr>
@@ -693,19 +699,22 @@
<p>
Before starting an audio stream, the central queries the peripherals
- and establishes the best quality common denominator codec. The stream
+ and establishes a common denominator codec. The stream
setup then proceeds through sequence:
</p>
<ol>
- <li>PSM, and optionally, PreparationDelay is read.</li>
+ <li>PSM, and optionally, PreparationDelay and RenderDelay are read. These values
+ may be cached by the central.
+ </li>
<li>
- CoC L2CAP channel is opened – the peripheral should grant 8 credits
+ CoC L2CAP channel is opened – the peripheral shall grant 8 credits
initially.
</li>
<li>
A connection update is issued to switch the link to the parameters
- required for the chosen codec.
+ required for the chosen codec. The central may do this connection update
+ before the CoC connection in the previous step.
</li>
<li>
Both the central and the peripheral host wait for the update
@@ -734,7 +743,7 @@
</p>
<p>
- The peripheral should not issue a connection update to the central.
+ The peripheral shall not issue a connection update to the central.
To save power, the central may issue a connection update to the
peripheral when it is not streaming audio.
</p>