อุปกรณ์เครื่องช่วยฟัง (HA) สามารถปรับปรุงการช่วยเหลือพิเศษในอุปกรณ์เคลื่อนที่ที่ใช้ Android ได้โดยใช้ช่อง L2CAP ที่เน้นการเชื่อมต่อ (CoC) ผ่านบลูทูธพลังงานต่ำ (BLE) CoC ใช้บัฟเฟอร์แบบยืดหยุ่น ที่มีแพ็กเก็ตเสียงหลายรายการเพื่อรักษาการไหลของเสียงให้คงที่ แม้ จะมีการสูญเสียแพ็กเก็ตก็ตาม บัฟเฟอร์นี้ให้คุณภาพเสียงสำหรับ อุปกรณ์เครื่องช่วยฟังโดยแลกกับเวลาในการตอบสนอง
การออกแบบ CoC อ้างอิงถึง Bluetooth Core Specification เวอร์ชัน 5 (BT) เพื่อให้สอดคล้องกับข้อกำหนดหลัก ค่าแบบหลายไบต์ทั้งหมดในหน้านี้ต้องอ่านเป็นแบบ Little-Endian
คำศัพท์
- กลาง
- อุปกรณ์ Android ที่สแกนหาโฆษณาผ่านบลูทูธ
- อุปกรณ์ต่อพ่วง
- เครื่องช่วยฟังที่ส่งแพ็กเก็ตโฆษณาผ่านบลูทูธ
โทโพโลยีเครือข่ายและสถาปัตยกรรมระบบ
เมื่อใช้ CoC สำหรับเครื่องช่วยฟัง โทโพโลยีเครือข่ายจะถือว่ามีอุปกรณ์ส่วนกลาง 1 เครื่องและอุปกรณ์ต่อพ่วง 2 เครื่อง โดยมี 1 เครื่องทางซ้ายและ 1 เครื่องทางขวา ดังที่แสดงในรูปที่ 1 ระบบเสียงบลูทูธจะมองอุปกรณ์ต่อพ่วงด้านซ้าย และขวาเป็นแหล่งรับเสียงเดียว หากอุปกรณ์ต่อพ่วง หายไปเนื่องจากใส่หูฟังข้างเดียวหรือการเชื่อมต่อขาดหาย อุปกรณ์ส่วนกลางจะมิกซ์ช่องเสียงซ้ายและขวา แล้วส่งเสียง ไปยังอุปกรณ์ต่อพ่วงที่เหลือ หากอุปกรณ์กลางสูญเสียการเชื่อมต่อกับอุปกรณ์ต่อพ่วงทั้ง 2 เครื่อง อุปกรณ์กลางจะถือว่าการเชื่อมต่อกับอุปกรณ์รับเสียง ขาดหายไป ในกรณีดังกล่าว เส้นทางส่วนกลางจะกำหนดเส้นทางเสียงไปยังเอาต์พุตอื่น
รูปที่ 1 โทโพโลยีสำหรับการจับคู่เครื่องช่วยฟังกับ
อุปกรณ์เคลื่อนที่ Android โดยใช้ CoC ผ่าน BLE
เมื่ออุปกรณ์กลางไม่ได้สตรีมข้อมูลเสียงไปยังอุปกรณ์ต่อพ่วงและสามารถ รักษาการเชื่อมต่อ BLE ไว้ได้ อุปกรณ์กลางไม่ควรยกเลิกการเชื่อมต่อกับ อุปกรณ์ต่อพ่วง การรักษาการเชื่อมต่อช่วยให้การสื่อสารข้อมูล ไปยังเซิร์ฟเวอร์ GATT ที่อยู่ในอุปกรณ์ต่อพ่วงเป็นไปได้
เมื่อจับคู่และเชื่อมต่อเครื่องช่วยฟัง อุปกรณ์กลางต้องทำดังนี้
- ติดตามอุปกรณ์ต่อพ่วงด้านซ้ายและขวาที่จับคู่ไว้ล่าสุด
- ถือว่าอุปกรณ์ต่อพ่วงกำลังใช้งานอยู่หากมีการจับคู่ที่ถูกต้อง ศูนย์กลางต้องพยายามเชื่อมต่อหรือเชื่อมต่อใหม่กับอุปกรณ์ที่จับคู่ไว้เมื่อการเชื่อมต่อขาดหายไป
- ถือว่าไม่ได้ใช้อุปกรณ์ต่อพ่วงอีกต่อไปหากมีการลบการจับคู่
ในกรณีข้างต้น การจับคู่หมายถึงการดำเนินการ ลงทะเบียนชุดเครื่องช่วยฟังด้วย UUID ที่กำหนดและ ตัวระบุซ้าย/ขวาในระบบปฏิบัติการ ไม่ใช่กระบวนการจับคู่บลูทูธ
ข้อกำหนดของระบบ
หากต้องการติดตั้ง CoC อย่างถูกต้องเพื่อให้ผู้ใช้ได้รับประสบการณ์การใช้งานที่ดี ระบบบลูทูธในอุปกรณ์ส่วนกลางและอุปกรณ์ต่อพ่วงต้องมีคุณสมบัติดังนี้
- ใช้ตัวควบคุม BT 4.2 ขึ้นไปที่เป็นไปตามข้อกำหนด เราขอแนะนำอย่างยิ่งให้ใช้การเชื่อมต่อที่ปลอดภัยของ LE
- มีลิงก์ LE พร้อมกันอย่างน้อย 2 ลิงก์ที่มีพารามิเตอร์ตามที่อธิบายไว้ในรูปแบบและเวลาของแพ็กเก็ตเสียง
- มีอุปกรณ์ต่อพ่วงที่รองรับลิงก์ LE อย่างน้อย 1 ลิงก์ที่มีพารามิเตอร์ อธิบายไว้ในรูปแบบและเวลาของแพ็กเก็ตเสียง
- มีการควบคุมการไหลตามเครดิต LE [BT Vol 3, Part A, Sec 10.1] อุปกรณ์ต้องรองรับขนาด MTU และ MPS อย่างน้อย 167 ไบต์ใน CoC และสามารถบัฟเฟอร์ได้สูงสุด 8 แพ็กเก็ต
- มีส่วนขยายความยาวข้อมูล LE [BT Vol 6, Part B, Sec 5.1.9] ที่มี เพย์โหลดอย่างน้อย 167 ไบต์
-
มีอุปกรณ์ส่วนกลางที่รองรับคำสั่งอัปเดตการเชื่อมต่อ HCI LE
และเป็นไปตามพารามิเตอร์ที่ไม่ใช่ศูนย์
maximum_CE_Length
และminimum_CE_Length
- มีส่วนกลางที่รักษาปริมาณข้อมูลสำหรับ 2 การเชื่อมต่อ LE CoC กับอุปกรณ์ต่อพ่วง 2 เครื่องที่แตกต่างกัน โดยมีช่วงการเชื่อมต่อและขนาดเพย์โหลดในรูปแบบและเวลาของแพ็กเก็ตเสียง
-
ตั้งค่าพารามิเตอร์
MaxRxOctets
และMaxRxTime
ในเฟรมLL_LENGTH_REQ
หรือLL_LENGTH_RSP
ให้เป็นค่าที่เล็กที่สุดที่จำเป็น สำหรับข้อกำหนดเหล่านี้ ซึ่งจะช่วยให้ส่วนกลาง เพิ่มประสิทธิภาพตัวกำหนดเวลาเมื่อคำนวณระยะเวลา ที่ต้องใช้ในการรับเฟรม
เราขอแนะนำอย่างยิ่งให้ส่วนกลางและอุปกรณ์ต่อพ่วงรองรับ PHY ขนาด 2 MB ตามที่ระบุไว้ในข้อกำหนด BT 5.0 อุปกรณ์กลางต้องรองรับลิงก์เสียงที่มีอัตรา อย่างน้อย 64 kbit/s ทั้งใน PHY 1M และ 2M ห้ามใช้ PHY ระยะไกลของ BLE
CoC ใช้กลไกบลูทูธมาตรฐานสำหรับการเข้ารหัสเลเยอร์ลิงก์ และการสลับความถี่
บริการ GATT ของ ASHA
อุปกรณ์ต่อพ่วงต้องใช้บริการเซิร์ฟเวอร์ GATT ของการสตรีมเสียงสำหรับเครื่องช่วยฟัง (ASHA) ตามที่อธิบายไว้ด้านล่าง อุปกรณ์ต่อพ่วงต้อง โฆษณาบริการนี้เมื่ออยู่ในโหมดที่ค้นพบได้ทั่วไปเพื่อให้ อุปกรณ์กลางรู้จักอุปกรณ์รับเสียง การดำเนินการสตรีมเสียง LE ทั้งหมด ต้องมีการเข้ารหัส การสตรีมเสียงผ่าน BLE ประกอบด้วยลักษณะต่อไปนี้
ลักษณะ | คุณสมบัติ | คำอธิบาย |
---|---|---|
ReadOnlyProperties | อ่าน | ดู ReadOnlyProperties |
AudioControlPoint | เขียนและเขียนโดยไม่มีการตอบกลับ | จุดควบคุมสำหรับสตรีมเสียง ดู AudioControlPoint |
AudioStatusPoint | อ่าน/แจ้งเตือน | ฟิลด์รายงานสถานะสำหรับจุดควบคุมเสียง ดู AudioStatusPoint |
ระดับเสียง | เขียนโดยไม่ต้องตอบกลับ | ไบต์ระหว่าง -128 ถึง 0 ซึ่งระบุจำนวนการลดทอนที่จะใช้กับ สัญญาณเสียงที่สตรีม โดยมีตั้งแต่ -48 dB ถึง 0 dB การตั้งค่า -128 ต้องตีความเป็นปิดเสียงทั้งหมด นั่นคือระดับเสียงต่ำสุดที่ไม่ได้ปิดเสียง คือ -127 ซึ่งเทียบเท่ากับการลดทอนที่ -47.625 dB ที่การตั้งค่า 0, สัญญาณไซน์แบบ Rail-to-Rail ที่สตรีมต้องแสดงถึงอินพุต 100 dBSPL ที่เทียบเท่าในเครื่องช่วยฟัง ส่วนกลางต้องสตรีมในระดับสูงสุด ตามปกติและใช้ตัวแปรนี้เพื่อตั้งค่าระดับการนำเสนอที่ต้องการใน อุปกรณ์ต่อพ่วง |
LE_PSM_OUT | อ่าน | PSM ที่จะใช้ในการเชื่อมต่อช่องเสียง ต้องเลือกจาก ช่วงไดนามิก [BT Vol 3, Part A, Sec 4.22] |
UUID ที่กำหนดให้กับบริการและลักษณะมีดังนี้
UUID ของบริการ: {0xFDF0}
ลักษณะ | UUID |
---|---|
ReadOnlyProperties | {6333651e-c481-4a3e-9169-7c902aad37bb} |
AudioControlPoint | {f0d4de7e-4a88-476c-9d9f-1937b0996cc0} |
AudioStatus | {38663f1a-e711-4cac-b641-326b56404837} |
ระดับเสียง | {00e4ca9e-ab14-41e4-8823-f9e70c7e91df} |
LE_PSM_OUT | {2d410339-82b6-42aa-b34e-e2e01df8cc1a} |
นอกจากบริการ ASHA GATT แล้ว อุปกรณ์ต่อพ่วงยังต้อง ใช้บริการข้อมูลอุปกรณ์เพื่อให้ส่วนกลางตรวจหา ชื่อผู้ผลิตและชื่ออุปกรณ์ของอุปกรณ์ต่อพ่วงได้ด้วย
ReadOnlyProperties
ReadOnlyProperties มีค่าดังนี้
ไบต์ | คำอธิบาย |
---|---|
0 | เวอร์ชัน - ต้องเป็น 0x01 |
1 | ดู DeviceCapabilities |
2-9 | ดู HiSyncId |
10 | ดู FeatureMap |
11-12 | RenderDelay คือเวลาเป็นมิลลิวินาทีตั้งแต่เมื่ออุปกรณ์ต่อพ่วงได้รับเฟรมเสียงจนกว่าอุปกรณ์ต่อพ่วงจะแสดงผลเอาต์พุต ไบต์เหล่านี้ใช้เพื่อหน่วงเวลาวิดีโอให้ ซิงค์กับเสียงได้ |
13-14 | สงวนไว้สำหรับการใช้งานในอนาคต เริ่มต้นเป็น 0 |
15-16 | รหัสตัวแปลงรหัสที่รองรับ ซึ่งเป็นบิตมาสก์ ของรหัสตัวแปลงรหัสที่รองรับ ค่า 1 ในตำแหน่งบิตจะสอดคล้องกับตัวแปลงรหัสที่รองรับ เช่น 0x0002 แสดงว่ารองรับ G.722 ที่ 16 kHz บิตอื่นๆ ทั้งหมดต้องตั้งค่าเป็น 0 |
DeviceCapabilities
บิต | คำอธิบาย |
---|---|
0 | ด้านอุปกรณ์ (0: ซ้าย, 1: ขวา) |
1 | ระบุว่าอุปกรณ์เป็นแบบสแตนด์อโลนและรับข้อมูลโมโนหรือไม่ หรืออุปกรณ์เป็นส่วนหนึ่งของชุด (0: โมโน, 1: ไบนอรัล) |
2 | อุปกรณ์รองรับ CSIS (0: ไม่รองรับ, 1: รองรับ) |
3-7 | สงวนไว้ (ตั้งค่าเป็น 0) |
HiSyncID
ฟิลด์นี้ต้องไม่ซ้ำกันสำหรับอุปกรณ์ Binaural ทั้งหมด แต่ต้องเหมือนกันสำหรับชุดหูฟังซ้ายและขวา
ไบต์ | คำอธิบาย |
---|---|
0-1 | รหัสของผู้ผลิต ซึ่งเป็น ตัวระบุ บริษัทที่ BTSIG กำหนด |
2-7 | รหัสที่ไม่ซ้ำกันที่ระบุชุดเครื่องช่วยฟัง ต้องตั้งรหัสนี้ ให้เหมือนกันทั้งอุปกรณ์ต่อพ่วงด้านซ้ายและด้านขวา |
FeatureMap
บิต | คำอธิบาย |
---|---|
0 | รองรับการสตรีมเอาต์พุตเสียง LE CoC (ใช่/ไม่ใช่) |
1-7 | สงวนไว้ (ตั้งค่าเป็น 0) |
รหัสตัวแปลงรหัส
หากตั้งค่าบิตไว้ แสดงว่าระบบรองรับตัวแปลงรหัสนั้น
ID / หมายเลขบิต | ตัวแปลงรหัสและอัตราการสุ่มตัวอย่าง | อัตราบิตที่จำเป็น | เวลาที่ใช้ในการแสดงผลเฟรม | ต้องระบุในส่วนกลาง (C) หรือส่วนอุปกรณ์ต่อพ่วง (P) |
---|---|---|---|---|
0 | สงวนไว้ | สงวนไว้ | สงวนไว้ | สงวนไว้ |
1 | G.722 @ 16 kHz | 64 กิโลบิต/วินาที | ตัวแปร | C และ P |
2-15 สงวนไว้ นอกจากนี้ ยังสงวนหมายเลข 0 ไว้ด้วย |
AudioControlPoint
ใช้จุดควบคุมนี้ไม่ได้เมื่อปิด LE CoC ดูคำอธิบายขั้นตอนได้ที่ การเริ่มและ การหยุดสตรีมเสียง
รหัสดำเนินการ | อาร์กิวเมนต์ | ขั้นตอนย่อยของ GATT | คำอธิบาย |
---|---|---|---|
1 «Start» |
|
เขียนด้วยการตอบกลับและคาดหวังการแจ้งเตือนสถานะเพิ่มเติมผ่านลักษณะ AudioStatusPoint |
สั่งให้อุปกรณ์ต่อพ่วงรีเซ็ตตัวแปลงรหัสและเริ่ม
การเล่นเฟรม 0 ฟิลด์ตัวแปลงรหัสระบุรหัสตัวแปลงรหัสที่จะใช้
สำหรับการเล่นนี้
เช่น ฟิลด์ตัวแปลงรหัสคือ "1" สำหรับ G.722 ที่ 16k Hz ฟิลด์บิตประเภทเสียงจะระบุประเภทเสียงที่มีอยู่ใน สตรีม
อุปกรณ์ต่อพ่วงต้องไม่ขออัปเดตการเชื่อมต่อก่อนได้รับรหัสปฏิบัติการ «Stop»
|
2 «Stop» |
ไม่มี | เขียนด้วยการตอบกลับและคาดหวังการแจ้งเตือนสถานะเพิ่มเติมผ่านลักษณะ AudioStatusPoint | สั่งให้อุปกรณ์ต่อพ่วงหยุดแสดงเสียง ควรเริ่มลำดับการตั้งค่าเสียงใหม่หลังจากหยุดนี้เพื่อแสดงเสียงอีกครั้ง |
3 «Status» |
|
เขียนโดยไม่ต้องตอบกลับ |
แจ้งให้อุปกรณ์ต่อพ่วงที่เชื่อมต่อทราบว่ามีการอัปเดตสถานะใน
อุปกรณ์ต่อพ่วงอื่น ฟิลด์ที่เชื่อมต่อจะระบุประเภทการอัปเดต ดังนี้
|
AudioStatusPoint
ฟิลด์รายงานสถานะสำหรับจุดควบคุมเสียง
รหัสดำเนินการ | คำอธิบาย |
---|---|
0 | สถานะ ใช้ได้ |
-1 | คำสั่งที่ไม่รู้จัก |
-2 | พารามิเตอร์ที่ผิดกฎหมาย |
โฆษณาสำหรับบริการ ASHA GATT
UUID ของบริการต้องอยู่ใน แพ็กเกตโฆษณา ในโฆษณาหรือเฟรมการตอบกลับการสแกน อุปกรณ์ต่อพ่วงต้องมีข้อมูลบริการดังนี้
ออฟเซ็ตไบต์ | ชื่อ | คำอธิบาย |
---|---|---|
0 | ความยาวของโฆษณา | >= 0x09 |
1 | ประเภทโฆษณา | 0x16 (ข้อมูลบริการ - UUID 16 บิต) |
2-3 | UUID ของบริการ |
0xFDF0 (little-endian) หมายเหตุ: นี่คือรหัสชั่วคราว |
4 | เวอร์ชันของโปรโตคอล | 0x01 |
5 | ความสามารถ |
|
6-9 | HiSyncID ที่ถูกตัดทอน | ไบต์ที่สำคัญที่สุด 4 ไบต์ของ HiSyncId ไบต์เหล่านี้ควรเป็นส่วนที่สุ่มที่สุดของรหัส |
อุปกรณ์ต่อพ่วงต้องมีชื่อในเครื่องแบบสมบูรณ์ ประเภทข้อมูลที่ระบุชื่อของเครื่องช่วยฟัง ชื่อนี้จะ ใช้ในอินเทอร์เฟซผู้ใช้ของอุปกรณ์เคลื่อนที่เพื่อให้ผู้ใช้เลือก อุปกรณ์ที่ถูกต้องได้ ชื่อต้องไม่ระบุช่องซ้ายหรือขวา เนื่องจากข้อมูลนี้มีให้ใน DeviceCapabilities
หากอุปกรณ์ต่อพ่วงใส่ชื่อและประเภทข้อมูลบริการ ASHA ไว้ในเฟรมประเภทเดียวกัน (ADV หรือ SCAN RESP) ประเภทข้อมูลทั้ง 2 ประเภท ("ชื่อเฉพาะที่สมบูรณ์" และ "ข้อมูลบริการสำหรับบริการ ASHA") จะต้องปรากฏในเฟรมเดียวกัน ซึ่งจะช่วยให้เครื่องสแกนอุปกรณ์เคลื่อนที่รับข้อมูลทั้ง 2 อย่าง ในผลการสแกนเดียวกันได้
ในระหว่างการจับคู่ครั้งแรก อุปกรณ์ต่อพ่วงต้อง โฆษณาในอัตราที่เร็วพอที่จะทำให้อุปกรณ์เคลื่อนที่ค้นหา อุปกรณ์ต่อพ่วงและจับคู่กับอุปกรณ์ต่อพ่วงได้อย่างรวดเร็ว
ซิงค์อุปกรณ์ต่อพ่วงด้านซ้ายและขวา
หากต้องการใช้บลูทูธในอุปกรณ์เคลื่อนที่ Android อุปกรณ์ต่อพ่วง จะต้องรับผิดชอบในการตรวจสอบว่าอุปกรณ์ซิงค์กันแล้ว การเล่น ในอุปกรณ์ต่อพ่วงด้านซ้ายและขวาต้องซิงค์กัน ในเวลาเดียวกัน อุปกรณ์ต่อพ่วงทั้ง 2 เครื่องต้องเล่นตัวอย่างเสียงจาก แหล่งที่มาพร้อมกัน
อุปกรณ์ต่อพ่วงสามารถซิงโครไนซ์เวลาได้โดยใช้ลำดับ หมายเลขที่นำหน้าแต่ละแพ็กเก็ตของเพย์โหลดเสียง ซึ่งจะรับประกันว่าแพ็กเก็ตเสียงที่ตั้งใจจะเล่นพร้อมกันในอุปกรณ์ต่อพ่วงแต่ละเครื่องจะมีหมายเลขลำดับเดียวกัน หมายเลขลำดับ จะเพิ่มขึ้นทีละ 1 หลังจากแพ็กเก็ตเสียงแต่ละแพ็กเก็ต หมายเลขลำดับ แต่ละรายการมีความยาว 8 บิต ดังนั้นหมายเลขลำดับจะซ้ำกันหลังจากแพ็กเก็ตเสียง 256 แพ็กเก็ต เนื่องจากขนาดแพ็กเก็ตเสียงและอัตราการสุ่มตัวอย่างแต่ละรายการได้รับการแก้ไข สำหรับการเชื่อมต่อแต่ละครั้ง อุปกรณ์ต่อพ่วงทั้ง 2 เครื่องจึงสามารถอนุมานเวลาเล่นที่เกี่ยวข้องได้ ดูข้อมูลเพิ่มเติมเกี่ยวกับแพ็กเก็ตเสียงได้ที่ รูปแบบแพ็กเก็ตเสียงและ การกำหนดเวลา
โดยส่วนกลางจะช่วยด้วยการให้ทริกเกอร์แก่อุปกรณ์แบบ Binaural เมื่ออาจต้องมีการซิงค์ ทริกเกอร์เหล่านี้จะแจ้งสถานะของอุปกรณ์ต่อพ่วงที่จับคู่ไว้แต่ละเครื่อง เมื่อใดก็ตามที่มีการดำเนินการที่อาจส่งผลต่อการซิงค์ ทริกเกอร์มีดังนี้
-
ในส่วนของคำสั่ง
«Start»
ของ AudioControlPoint ระบบจะระบุสถานะการเชื่อมต่อปัจจุบันของอุปกรณ์สองหู อีกด้าน -
เมื่อใดก็ตามที่มีการเชื่อมต่อ การยกเลิกการเชื่อมต่อ หรือ
การดำเนินการอัปเดตพารามิเตอร์การเชื่อมต่อในอุปกรณ์ต่อพ่วงหนึ่ง
ระบบจะส่งคำสั่ง
«Status»
ของ AudioControlPoint ไปยัง อุปกรณ์ Binaural อีกด้าน
รูปแบบและเวลาของแพ็กเก็ตเสียง
การแพ็กเฟรมเสียง (บล็อกของตัวอย่าง) ลงในแพ็กเก็ตช่วยให้เครื่องช่วยฟัง สามารถกำหนดเวลาจากจุดยึดเวลาของเลเยอร์ลิงก์ได้ หากต้องการ ลดความซับซ้อนในการติดตั้งใช้งาน ให้ทำดังนี้
- เฟรมเสียงควรตรงกับช่วงเวลาการเชื่อมต่อเสมอ ตัวอย่างเช่น หากช่วงการเชื่อมต่อคือ 20 มิลลิวินาทีและอัตราการสุ่มตัวอย่างคือ 16 kHz เฟรมเสียงต้องมีตัวอย่าง 320 รายการ
- ระบบจะจำกัดอัตราการสุ่มตัวอย่างให้เป็นทวีคูณของ 8kHz เพื่อให้มีจำนวนตัวอย่างเป็นจำนวนเต็มในเฟรมเสมอ ไม่ว่าเวลาเฟรมหรือช่วงการเชื่อมต่อจะเป็นเท่าใดก็ตาม
- ไบต์ลำดับต้องอยู่ก่อนหน้าเฟรมเสียง ไบต์ลำดับ ต้องนับโดยมีการวนรอบและอนุญาตให้อุปกรณ์ต่อพ่วง ตรวจหาบัฟเฟอร์ที่ไม่ตรงกันหรือบัฟเฟอร์ขาด
-
เฟรมเสียงต้องอยู่ในแพ็กเก็ต LE เดียวเสมอ ต้องส่งเฟรมเสียงเป็นแพ็กเก็ต L2CAP แยกต่างหาก ขนาดของ PDU LE
LL ต้องเป็น
ขนาดเพย์โหลดเสียง + 1 (ตัวนับลำดับ) + 6 (4 สำหรับส่วนหัว L2CAP, 2 สำหรับ SDU) - เหตุการณ์การเชื่อมต่อควรมีขนาดใหญ่พอที่จะมีแพ็กเก็ตเสียง 2 แพ็กเก็ต และแพ็กเก็ตเปล่า 2 แพ็กเก็ตสำหรับ ACK เพื่อสำรองแบนด์วิดท์สำหรับการ ส่งซ้ำ โปรดทราบว่าตัวควบคุมบลูทูธของอุปกรณ์กลางอาจ แยกแพ็กเก็ตเสียง อุปกรณ์ต่อพ่วงต้องรับแพ็กเก็ตเสียงที่แยกส่วนได้มากกว่า 2 แพ็กเก็ตต่อเหตุการณ์การเชื่อมต่อ
เพื่อให้อุปกรณ์กลางมีความยืดหยุ่นมากขึ้น จึงไม่ได้ระบุความยาวแพ็กเก็ต G.722 ความยาวของแพ็กเก็ต G.722 อาจเปลี่ยนแปลงไปตามช่วงเวลาการเชื่อมต่อที่ส่วนกลางตั้งค่าไว้
รูปแบบอ็อกเทตเอาต์พุต G.722 อ้างอิงถึง Rec. ITU-T G.722 (09/2012) ส่วนที่ 1.4.4 "Multiplexer"
สำหรับตัวแปลงรหัสทั้งหมดที่อุปกรณ์ต่อพ่วงรองรับ อุปกรณ์ต่อพ่วงต้อง รองรับพารามิเตอร์การเชื่อมต่อด้านล่าง นี่คือรายการการกำหนดค่าโดยสังเขป ที่ส่วนกลางสามารถใช้ได้
ตัวแปลงรหัส | อัตราบิต | ช่วงเวลาการเชื่อมต่อ | ความยาวของ CE (PHY 1M/2M) | ขนาดเพย์โหลดเสียง |
---|---|---|---|---|
G.722 @ 16 kHz | 64 กิโลบิต/วินาที | 20 มิลลิวินาที | 5000/3750 us | 160 ไบต์ |
เริ่มและหยุดสตรีมเสียง
ก่อนที่จะเริ่มสตรีมเสียง อุปกรณ์ส่วนกลางจะค้นหาอุปกรณ์ต่อพ่วง และสร้างตัวแปลงรหัสตัวหารร่วม จากนั้นการตั้งค่าสตรีม จะดำเนินการตามลำดับต่อไปนี้
- ระบบจะอ่าน PSM และ RenderDelay (ไม่บังคับ) ค่าเหล่านี้ อาจได้รับการแคชโดยส่วนกลาง
- เปิดช่อง CoC L2CAP แล้ว อุปกรณ์ต่อพ่วงต้องให้เครดิต 8 รายการ ในตอนแรก
- ระบบจะออกการอัปเดตการเชื่อมต่อเพื่อเปลี่ยนลิงก์เป็นพารามิเตอร์ ที่จำเป็นสำหรับตัวแปลงรหัสที่เลือก ศูนย์กลางอาจทำการอัปเดตการเชื่อมต่อนี้ ก่อนการเชื่อมต่อ CoC ในขั้นตอนก่อนหน้า
- ทั้งโฮสต์กลางและโฮสต์อุปกรณ์ต่อพ่วงจะรอเหตุการณ์การอัปเดต เสร็จสมบูรณ์
-
รีสตาร์ทตัวเข้ารหัสเสียง และรีเซ็ตจำนวนลำดับแพ็กเก็ตเป็น 0
ระบบจะออก
«Start»
คำสั่งที่มีพารามิเตอร์ที่เกี่ยวข้อง ใน AudioControlPoint ส่วนกลางจะรอการแจ้งเตือนสถานะสำเร็จ ของคำสั่ง«Start»
ก่อนหน้าจากอุปกรณ์ต่อพ่วงก่อนที่จะสตรีม การรอครั้งนี้จะช่วยให้อุปกรณ์ต่อพ่วง มีเวลาเตรียมไปป์ไลน์การเล่นเสียง ในระหว่างการสตรีมเสียง ข้อมูลจำลอง ควรพร้อมใช้งานในทุกเหตุการณ์การเชื่อมต่อ แม้ว่าเวลาในการตอบสนองของข้อมูลจำลอง ปัจจุบันอาจไม่ใช่ 0 - อุปกรณ์ต่อพ่วงจะนำแพ็กเก็ตเสียงแรกจากคิวภายใน (หมายเลขลำดับ 0) มาเล่น
ปัญหาหลักคือคำสั่ง «หยุด» เพื่อปิดสตรีมเสียง หลังจากคำสั่งนี้ อุปกรณ์ต่อพ่วงไม่จำเป็นต้องพร้อมใช้งานในทุก เหตุการณ์การเชื่อมต่อ หากต้องการเริ่มการสตรีมเสียงอีกครั้ง ให้ทำตามลำดับข้างต้นโดยเริ่มจากขั้นตอนที่ 5 เมื่ออุปกรณ์กลางไม่ได้ สตรีมเสียง อุปกรณ์กลางควรยังคงรักษาการเชื่อมต่อ LE สำหรับบริการ GATT ไว้
อุปกรณ์ต่อพ่วงต้องไม่ส่งการอัปเดตการเชื่อมต่อไปยังอุปกรณ์กลาง เพื่อประหยัดพลังงาน อุปกรณ์กลางอาจส่งการอัปเดตการเชื่อมต่อไปยัง อุปกรณ์ต่อพ่วงเมื่อไม่ได้สตรีมเสียง