Bluetooth LE ile işitme cihazı ses desteği

İşitme cihazı cihazlarının (HA) erişilebilirliği iyileştirilebilir Bağlantı odaklı L2CAP kullanan Android destekli mobil cihazlar (CoC) üzerinden yayınladığımız içerikleri (COC) ayarlayabilirsiniz. CoC, elastik bir sabit bir ses akışı sağlamak üzere, ses paketinden oluşan bir arabellek olduğunu unutmayın. Bu arabellek, işitme cihazı cihazlarıyla gecikme pahasına.

CoC'nin tasarımında Bluetooth Temel spesifikasyon sürüm 5 (BT). Temel spesifikasyonlarla uyum sağlamak için, çok baytlı küçük-endian olarak okunur.

Terminoloji

  • Merkezi - Tarama yapan Android cihaz ve Bluetooth üzerinden verir.
  • Çevre birimi: İleti gönderen işitme cihazı aktarmanızı sağlar.

Ağ topolojisi ve sistem mimarisi

İşitme cihazları için CoC kullanılırken ağ topolojisi, işitme cihazları için tek bir (biri sol ve bir sağ olmak üzere) orta ve iki çevre birimi 1. Şekil. Bluetooth ses sistemi sol tarafı görüntüler olarak ayarlayabilirsiniz. Çevre birimi tek ses uydurma veya bağlantı kaybından dolayı kaybolduğunda Central, sol ve sağ ses kanalını karıştırıp sesi iletir kalan çevre birimine bağlanır. Merkezin hem merkez birimi, çevre birimlerini kullanırsa ses havuzuna emin olun. Böyle durumlarda merkezi, sesi başka bir çıkışa yönlendirir.


Şekil 1. İşitme cihazlarını BDE üzerinden CoC kullanan Android mobil cihazlar

Merkezi cihaz, çevre birimine ses verisi akışı yapmadığında ve BDE bağlantısını sürdürürseniz merkezden çevre birimi. Bağlantının sürdürülmesi veri iletişimine olanak tanır GATT sunucusuna gönderilir.

İşitme cihazları eşlenirken ve bağlanırken merkez birimi:

  • En son eşlenen sol ve sağ çevre birimlerini takip edin.
  • Geçerli bir eşleme varsa çevre birimlerinin kullanıldığını varsayın. İlgili içeriği oluşturmak için kullanılan merkezi, eşlenen cihazla bağlanmaya veya yeniden bağlantıyı kaldırabilirsiniz.
  • Bir eşleme silinirse çevre birimlerinin artık kullanılmadığını varsayın.

Yukarıdaki durumlarda eşleme, bir veya başka bir kişinin belirli bir UUID ile işitme cihazını kaydettirmek ve Bluetooth eşleştirme işleminde değil, OS'te sol/sağ tanımlayıcıları.

Sistem gereksinimleri

Bluetooth ve çevre birimi cihazlarındaki sistemler:

  • BT 4.2 veya üzeri uyumlu bir kumanda kullanmalıdır. LE Secure Connections kesinlikle önerilir.
  • 2 eşzamanlı LE bağlantısını destekleyen ve Ses paketi biçimi ve zamanlama.
  • çevre biriminin, parametrelerle birlikte en az 1 LE bağlantısını desteklemesini sağlayın Ses paketi biçimi ve zamanlama.
  • LE kredisine dayalı bir akış kontrolüne sahip olmalıdır [BT Vol 3, Bölüm A, Sec 10.1]. Cihazlar, CoC ile 8 pakete kadar arabelleğe alınabilir.
  • LE veri uzunluğu uzantısı [BT Vol 6, Part B, Sec 5.1.9], Yüklü olması gerekir.
  • cihazın HCI LE Connection Güncelleme Komutunu desteklemesini sağlama ve sıfır olmayan maximum_CE_Length ve minimum_CE_Length parametre
  • iki LE CoC bağlantısı için veri işleme hızını merkeze alan bağlantı aralıkları ve yüke sahip farklı çevre birimleri Ses paketindeki boyut sayısı biçimi ve zamanlama.
  • çevre biriminin MaxRxOctets ve LL_LENGTH_REQ içinde MaxRxTime parametre veya LL_LENGTH_RSP kareleri gereken en küçük değerler olacak şekilde ayarlayın izin verilmez. Bu sayede merkezde süreyi hesaplarken zaman planlayıcısını optimize etme bir kare almak için gereken şeydir.

Merkezi ve çevre biriminin 2 MB PHY'yi desteklemesi önemle tavsiye edilir. BT 5.0 spesifikasyonunda belirtilir. Orta bölüm, şuranın ses bağlantılarını desteklemelidir: 1M ve 2M PHY'lerde en az 64 kbit/sn. BDE uzun menzili PHY kullanılmamalıdır.

CoC, bağlantı katmanı şifrelemesi için standart Bluetooth mekanizmaları kullanır zaman atlamasını da sağlar.

ASHA GATT hizmetleri

Bir çevre birimi, İşitme Cihazı için Ses Akışı'nı uygular (ASHA) GATT sunucu hizmeti hakkında daha fazla bilgiyi aşağıda bulabilirsiniz. Çevre birimi izin vermek için genel bulunabilir modda bu hizmetin reklamını ses havuzu algılanır. LE ses akışı işlemleri için şifreleme gerekir. BDE ses akışı şunlardan oluşur: şu özelliklere sahiptir:

Özellik Özellikler Açıklama
Salt Okunur Özellikler Oku ReadOnlyProperties'e bakın.
SesDenetim Noktası Yanıt Almadan Yazma ve Yazma Ses yayını için denetim noktası. Görüntüleyin AudioControlPoint olarak ayarlayabilirsiniz.
SesDurum Noktası Oku/Bildir Ses kontrol noktası için durum raporu alanı. Görüntüleyin AudioStatusPoint öğesidir.
Ses Yanıt kullanmadan yaz -128 ile 0 arasında, uygulanacak zayıflama miktarını gösteren bayt -48 dB ile 0 dB arasında değişen ses sinyali. Ayar -128, tamamen sessiz (sessiz olmayan en düşük ses düzeyi) olarak yorumlanmalıdır. ses seviyesi -127'dir ve bu, -47,625 dB zayıflamaya eşdeğerdir. 0 ayarında, akarılan raydan raya sinüs tonu akışı, 100 dBSPL girişini temsil etmelidir işitme cihazında eşdeğeri. Ortadaki akış, nominal ve bu değişkeni kullanarak istediğiniz sunu seviyesini devre dışı bırakılır.
LE_PSM_OUT Oku Ses kanalını bağlamak için kullanılacak PSM. Seçilecek dinamik aralık [BT Cilt 3, Bölüm A, Kısım 4,22]

Hizmete atanan UUID'ler ve özellikler:

Hizmet UUID'si: {0xFDF0}

Özellik UUID
Salt Okunur Özellikler {6333651e-c481-4a3e-9169-7c902aad37bb}
SesDenetim Noktası {f0d4de7e-4a88-476c-9d9f-1937b0996cc0}
Ses Durumu {38663f1a-e711-4cac-b641-326b56404837}
Ses {00e4ca9e-ab14-41e4-8823-f9e70c7e91df}
LE_PSM_OUT {2d410339-82b6-42aa-b34e-e2e01df8cc1a}

ASHA GATT hizmetine ek olarak çevre birimi ayrıca merkezin şunları algılamasını sağlamak için Cihaz Bilgileri Hizmeti'ni devreye sokmak çevre biriminin üretici adlarını ve cihaz adlarını girin.

Salt Okunur Özellikler

ReadOnlyProperties aşağıdaki değerlere sahiptir:

Bayt Açıklama
0 Sürüm - 0x01 olmalıdır
1 DeviceCapabilities (Cihaz Yetenekleri) bölümüne göz atın.
2-9 HiSyncId'ye bakın.
10 FeatureMap'e göz atın.
11-12 Oluşturma Gecikmesi. Bu, milisaniye cinsinden, çevre birimi, çevre birimi oluşturulana kadar bir ses karesi alır çıktı. Bu baytlar bir videoyu geciktirmek için kullanılabilir. ses ile senkronize edilir.
13-14 İleride kullanılmak üzere ayrılmıştır. Sıfır olarak başlat.
15-16 Desteklenen Codec Kimlikleri. Bu bir bit maskesi listesini sunar. Bir bit konumundaki 1, bir destekler. Örneğin, 0x0002, G.722'nin 16 kHz'de olduğunu gösterir desteklenir. Diğer tüm bit değerleri 0 olarak ayarlanır.

Cihaz Özellikleri

Keser Açıklama
0 Cihaz tarafı (0: sol, 1: sağ)
1 Cihazın bağımsız olup olmadığını ve mono veri alıp almadığını ya da cihaz bir grubun parçası (0: tek yönlü, 1: stereofonik)
2 Cihaz, CSIS'yi destekliyor (0: desteklenmiyor, 1: destekleniyor)
3-7 Ayrılmış (0 olarak ayarlandı)

HiSyncID

Bu alan tüm stereofonik cihazlar için benzersiz olmalıdır, ancak aynıdır.

Bayt Açıklama
0-1 Üreticinin kimliği. Uygulama, Şirket Tanımlayıcılar BTSIG tarafından atanır.
2-7 İşitme cihazı grubunu tanımlayan benzersiz kimlik. Bu kimlik ayarlanmalıdır aynı değere sahiptir.

Özellik Haritası

Keser Açıklama
0 LE CoC ses çıkışı akışı desteklenir (Evet/Hayır).
1-7 Ayrıldı (0 olarak ayarlandı).

Codec Kimlikleri

Bit ayarlanmışsa ilgili codec desteklenir.

Kimlik&sp;/&sairsp;Bit numarası Codec ve örnek hızı Gerekli bit hızı Kare süresi Merkezi (C) veya çevre biriminde (P) zorunlu
0 Rezervasyon yapıldı Rezervasyon yapıldı Rezervasyon yapıldı Rezervasyon yapıldı
1 16 kHz'de G.722 64 kbit/sn Değişken C ve P
2-15 tane ayırtılmıştır.
. 0 değeri de ayrılmıştır.

SesDenetim Noktası

LE CoC kapalıyken bu denetim noktası kullanılamaz. Görüntüleyin Başlangıç ve Prosedür açıklaması için ses yayınını durdurma.

İşlem kodu Argümanlar GATT alt prosedürü Açıklama
1 «Start»
  • uint8_t codec
  • uint8_t audiotype
  • int8_t volume
  • int8_t otherstate
Yazarak yanıt verin ve şu e-posta üzerinden ek durum bildirimi almayı bekleyin: AudioStatusPoint özelliği. Çevre birimine codec'i sıfırlamasını ve 0. kare oynatılıyor. Codec alanı, kullanılacak codec kimliğini gösterir bu oynatma için geçerli. Örneğin, codec alanı "1"dir. G.722 için 16k Hz.

Ses türü bit alanı, mevcut ses türlerini gösterir sohbet sırasında:
  • 0 - Bilinmiyor
  • 1 - Zil sesi
  • 2 - Telefon görüşmesi
  • 3 - Medya
otherstate alanı, stereofonik telefonun diğer tarafının olup olmadığını gösterir. cihaz bağlı. Diğer çevre birimi cihazı bağlandığında alan değeri 1 olur. aksi takdirde değer 0 olur.

Çevre birimi, son 30 güne kadar «Stop» işlem kodu alındı.
2 «Stop» Yok Yazarak yanıt verin ve şu e-posta üzerinden ek durum bildirimi almayı bekleyin: AudioStatusPoint özelliği. Çevre birimine ses oluşturmayı durdurmasını söyler. Yeni ses kurulum sırası, bu durma işleminden sonra başlatılmalıdır. kullanarak sesi tekrar oluşturun.
3 «Status»
  • uint8_t connected
Yanıt eklemeden yaz Bağlı çevre birimine, olduğunu göreceksiniz. Bağlı alan, güncellemenin türünü gösterir:
  • 0 - Diğer çevre biriminin bağlantısı kesildi
  • 1: Başka çevre birimi bağlandı
  • 2: LE Connection Parametresi Güncellemesi yapıldı her iki bağlantıda da

SesDurum Noktası

Ses kontrol noktası için durum raporu alanı

İşlem kodları Açıklama
0 Durum: İyi
-1 Bilinmeyen komut
-2 Geçersiz parametreler

ASHA GATT hizmetiyle ilgili reklamlar

Hizmet UUID'si reklam paketi ekleyin. Reklamda veya taramada çevre birimlerinde Hizmet Verileri yer almalıdır:

Bayt ofseti Ad Açıklama
0 REKLAM Uzunluğu >= 0x09
1 Reklam Türü 0x16 (Hizmet Verileri - 16 bit UUID)
2-3 Hizmet UUID'si 0xFDF0 (küçük-endian)

Not: Bu geçici bir kimliktir.
4 Protokol Sürümü 0x01
5 Kapasite
  • 0 - sol (0) veya sağ (1) yan
  • 1 - tek (0) veya çift (1) cihaz.
  • 2 - Cihaz, CSIS'yi destekler (<0: desteklenmiyor, 1: destekleniyor)
  • 3-7 - ayrılmış. Bu bitler sıfır olmalıdır.
6-9 Kısaltılmış HiSyncID HiSyncId. Bu baytlar, kimliğin en rastgele bölümü olmalıdır.

Çevre birimlerinin Tam Yerel Adı olmalıdır veri türü olduğunu unutmayın. Bu adla, Kullanıcının seçim yapabilmesi için mobil cihazın kullanıcı arayüzünde doğru cihaza yükleyin. Ad, sol veya sağ tarafı belirtmemelidir sağlandığı için bu bilgilerin DeviceCapabilities (Cihaz Yetenekleri)

Çevre birimleri, adı ve ASHA hizmeti veri türlerini aynı çerçeve türünü (ADV veya TARAMA RESP) belirleyip iki veri türünü ("Tam Yerel Ad" "ASHA hizmeti için Hizmet Verileri") görünecektir ekleyebilirsiniz. Bu şekilde mobil cihaz tarayıcısı her iki veriyi de alabilir eklemeniz gerekir.

İlk eşleme sırasında çevre birimlerinin mobil cihazın hızlı bir şekilde çalışmasını sağlayacak kadar hızlı çevre birimlerini keşfedip bunlarla olan bağlarını kurun.

Sol ve sağ çevre birimi cihazlarını senkronize et

Android mobil cihazlarda, çevre birimi cihazlarında Bluetooth ile çalışmak için senkronize edilmesini sağlamaktan sorumludur. Oynatma sol ve sağ çevre birimi cihazlarının şurada senkronize edilmesi gerekiyor: gerekir. Her iki çevre birimi cihazı, aynı kaynakta kalır.

Çevre birimi cihazları, bir adım sırası kullanarak zamanlarını senkronize edebilir sayı, ses yükünün her paketinin başına eklenen sayıdır. Merkezi aynı anda çalınması amaçlanan ses paketlerinin sayısı aynı sıra numarasına sahip olmalıdır. Sıra sayısı her ses paketinden sonra bir birim artar. Her dizi numara 8 bit uzunluğundadır, bu nedenle sıra numaraları 256'dan sonra tekrarlanacaktır ses paketleri olabilir. Her ses paketi boyutu ve örnek hızı sabit olduğundan her bağlantı için, iki çevre birimi, her bir bağlantının oynatma süresidir. Ses paketi hakkında daha fazla bilgi için bkz. Ses paketi biçimi ve zamanlama.

Merkezi işlev, senkronizasyon sırasında stereofonik cihazlara tetikleyiciler sağlayarak yardımcı olur gerekebilir. Bu tetikleyiciler, her bir çevre birimine ilgili öğenin durumu hakkında bilgi verir. eşlenen bir çevre birimi cihazıyla ilgili her işlem senkronizasyonu etkileyebilir. Tetikleyiciler şunlardır:

  • AudioControlPoint'in «Start» komutunun bir parçası olarak, stereofonun diğer tarafının mevcut bağlantı durumu cihaz verilmelidir.
  • Bağlantınız kesildiğinde veya bağlantı kesildiğinde ya da bir çevre biriminde bağlantı parametresi güncelleme işlemi yapılır. AudioControlPoint'in «Status» komutu diğer tarafını da oynatabilirsiniz.

Ses paketi biçimi ve zamanlaması

Ses çerçevelerini (örnek blokları) paketlere paketlemek bağlantı katmanı zamanlama çapalarından araç türetimi. Alıcı: uygulama sürecini basitleştirin:

  • Ses çerçevesi her zaman bağlantı zaman aralığıyla eşleşmelidir. Örneğin, bağlantı aralığı 20 ms ve örnek hızı 16 kHz ise ses çerçevesi 320 örnek içermelidir.
  • Sistemdeki örnek hızları 8 kHz'in katları ile bir çerçevede her zaman tam sayı olan örnek sayısı çerçeve süresini veya bağlantı aralığını değiştirebilirsiniz.
  • Ses karelerinin başına bir sıra baytı eklenir. Sıra baytı saymalarını sağlar ve çevre biriminin, çevre biriminin arabellek uyuşmazlığını veya yetersizliği saptamanıza yardımcı olabilir.
  • Bir ses çerçevesi her zaman tek bir LE paketine sığmalıdır. Ses çerçevesi ayrı bir L2CAP paketi olarak gönderilmelidir. LE boyutu LL PDU:
    ses yük boyutu + 1 (sıra sayacı) + 6 (L2CAP başlığı için 4, SDU için 2)
  • Bağlantı etkinliği her zaman 2 ses içerecek kadar büyük olmalıdır paket ve 2 boş paket içerir. her zaman dönüşüm işleminden geçiyor. Ses paketinin merkezin Bluetooth denetleyicisidir. Çevre birimi, alabiliyor olmalıdır. bağlantı etkinliği başına 2'den fazla parçalı ses paketi.

Merkezine bir miktar esneklik kazandırmak için G.722 paket uzunluğu belirtiliyor. G.722 paketinin uzunluğu bağlantıya bağlı olarak değişebilir zaman aralığı.

G.722 çıkış sekizli biçimi, Rek. ITU-T G.722 (09.2012) bölüm 1.4.4 "Multiplexer"

Çevre biriminin desteklediği tüm codec'ler için çevre birimi, aşağıdaki bağlantı parametrelerini destekler. Bu listede olası her örneğe yer verilmemiştir tek bir konfigürasyondan oluşur.

Codec Bit hızı Bağlantı aralığı CE Uzunluğu (1 milyon/2 milyon PHY) Ses yükü boyutu
16 kHz'de G.722 64 kbit/sn 20 ms. 5000/3750 abd 160 bayt

Ses yayını başlatma ve durdurma

Ses akışı başlatılmadan önce merkezde bulunan alan, çevre birimlerini sorgular ve ortak payda codec'i oluşturur. Akış kurulumdan sonra aşağıdaki sırayı takip eder:

  1. PSM ve isteğe bağlı olarak RenderDelay okunur. Bu değerler merkezi tarafından önbelleğe alınabilir.
  2. CoC L2CAP kanalı açıldı; çevre birimi 8 kredi verecek. ilk adımıdır.
  3. Parametrelerin bağlantısını değiştirmek için bir bağlantı güncellemesi yayınlandı için gereklidir. Merkez bu bağlantı güncellemesini gerçekleştirebilir önceki adımda CoC bağlantısından önce.
  4. Hem merkezi hem de çevre birimi ana makinesi güncellemeyi bekler gösterir.
  5. Ses kodlayıcıyı yeniden başlatın ve paket sırası sayısını 0 olarak sıfırlayın. İlgili parametreleri içeren bir «Start» komutu yayınlanan tüm adımları listeler. Merkez, başarılı bir durum bildirimi gönderilmesini bekler komutu, akış öncesinde çevre biriminden alınan önceki «Start» komutunun bir örneğidir. Bu bekleme, çevre birimine hazırlaması gerekir. Ses akışı sırasında replika, her bağlantı etkinliğinde kullanılabilir olması gerekir. replika gecikmesi sıfır olmayabilir.
  6. Çevre birimi, dahili sırasından ilk ses paketini alır (sıra numarası 0) söyler ve çalar.

Merkezinde, aynı sayfada bulunan «Stop » komutu Ses yayını. Bu komuttan sonra, çevre biriminin bağlantı etkinliği. Ses akışını yeniden başlatmak için aşağıdaki adım sırasını uygulayın: kaldırın. Merkezin ise ses akışı sağlasa da GATT için LE bağlantısı sağlanmalıdır. kullanıma sunuyoruz.

Çevre birimi, merkezi merkeze bağlantı güncellemesi yayınlamamalıdır. Merkezi güçten tasarruf etmek için çevre birimini etkinleştirin.