อุปกรณ์เครื่องช่วยฟัง (HA) สามารถปรับปรุงการช่วยเหลือพิเศษในอุปกรณ์เคลื่อนที่ที่ใช้ Android โดยใช้แชแนล L2CAP (CoC) ที่มุ่งเน้นการเชื่อมต่อผ่านบลูทูธพลังงานต่ำ (BLE) CoC ใช้บัฟเฟอร์แบบยืดหยุ่นของแพ็กเก็ตเสียงหลายรายการเพื่อรักษาระดับเสียงให้ราบรื่น แม้จะมีการสูญเสียแพ็กเก็ตก็ตาม บัฟเฟอร์นี้ให้คุณภาพเสียงสำหรับอุปกรณ์เครื่องช่วยฟัง แต่แลกมาด้วยเวลาในการตอบสนองที่ช้าลง
การออกแบบของ CoC อ้างอิงถึงข้อกำหนดหลักของบลูทูธเวอร์ชัน 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
ที่ไม่ใช่ 0 - ให้อุปกรณ์กลางรักษาอัตราข้อมูลสำหรับการเชื่อมต่อ LE CoC 2 รายการไปยังอุปกรณ์ต่อพ่วง 2 ตัวที่มีช่วงเวลาการเชื่อมต่อและขนาดเพย์โหลดในรูปแบบและเวลาของแพ็กเก็ตเสียง
-
ให้อุปกรณ์ต่อพ่วงตั้งค่าพารามิเตอร์
MaxRxOctets
และMaxRxTime
ในเฟรมLL_LENGTH_REQ
หรือLL_LENGTH_RSP
เป็นค่าต่ำสุดที่จำเป็นสำหรับข้อกำหนดเหล่านี้ ซึ่งช่วยให้ส่วนกลางเพิ่มประสิทธิภาพตัวจัดเวลาเมื่อคำนวณระยะเวลาที่จําเป็นในการรับเฟรม
ขอแนะนําอย่างยิ่งว่าอุปกรณ์ส่วนกลางและอุปกรณ์ต่อพ่วงควรรองรับ PHY 2MB ตามที่ระบุไว้ในข้อกําหนดของ BT 5.0 อุปกรณ์ส่วนกลางต้องรองรับลิงก์เสียงอย่างน้อย 64 Kbit/s ทั้งใน PHY 1M และ 2M ไม่ควรใช้ PHY ระยะไกลของ BLE
CoC ใช้กลไกบลูทูธมาตรฐานสำหรับการเข้ารหัสเลเยอร์ลิงก์และการกระโดดความถี่
บริการ ASHA GATT
อุปกรณ์ต่อพ่วงจะใช้บริการเซิร์ฟเวอร์ GATT สตรีมมิงเสียงสำหรับเครื่องช่วยฟัง (ASHA) ตามที่อธิบายไว้ด้านล่าง อุปกรณ์ต่อพ่วงจะต้องโฆษณาบริการนี้เมื่ออยู่ในโหมดที่ค้นพบได้ทั่วไปเพื่อให้อุปกรณ์ส่วนกลางจดจำตัวรับเสียง การดำเนินการสตรีมเสียง LE ทั้งหมดจะต้องเข้ารหัส สตรีมมิงเสียง BLE มีลักษณะต่อไปนี้
ลักษณะ | คุณสมบัติ | คำอธิบาย |
---|---|---|
ReadOnlyProperties | อ่าน | ดู ReadOnlyProperties |
AudioControlPoint | เขียนและเขียนโดยไม่ตอบ | จุดควบคุมสำหรับสตรีมเสียง ดูAudioControlPoint |
AudioStatusPoint | อ่าน/แจ้งเตือน | ช่องรายงานสถานะสำหรับจุดควบคุมเสียง ดูAudioStatusPoint |
ระดับเสียง | เขียนโดยไม่มีการตอบกลับ | ไบต์ระหว่าง -128 ถึง 0 ที่ระบุปริมาณการลดทอนที่จะใช้กับสัญญาณเสียงที่สตรีม ซึ่งมีช่วงตั้งแต่ -48 dB ถึง 0 dB การตั้งค่าเป็น -128 จะถือว่าปิดเสียงทั้งหมด กล่าวคือ ระดับเสียงที่ดังที่สุดโดยไม่ปิดเสียงคือ -127 ซึ่งเทียบเท่ากับการลดทอน -47.625 dB เมื่อตั้งค่าเป็น 0 การสตรีมเสียงไซน์แบบรางต่อรางจะแสดงอินพุต 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
ช่องนี้ต้องไม่ซ้ำกันสำหรับอุปกรณ์เสียงแบบ 2 ช่องหูทั้งหมด แต่ต้องเหมือนกันสำหรับชุดเสียงซ้ายและขวา
ไบต์ | คำอธิบาย |
---|---|
0-1 | รหัสของผู้ผลิต ตัวระบุบริษัทที่ BTSIG กำหนด |
2-7 | รหัสที่ไม่ซ้ำกันซึ่งระบุชุดเครื่องช่วยฟัง รหัสนี้ต้องตั้งค่าให้เหมือนกันทั้งในอุปกรณ์ต่อพ่วงด้านซ้ายและด้านขวา |
FeatureMap
บิต | คำอธิบาย |
---|---|
0 | รองรับการสตรีมเอาต์พุตเสียง LE CoC (ใช่/ไม่) |
1-7 | สงวนไว้ (ตั้งค่าเป็น 0) |
รหัสตัวแปลงรหัส
หากตั้งค่าบิตไว้ แสดงว่าระบบรองรับตัวแปลงรหัสนั้น
รหัส / หมายเลขบิต | ตัวแปลงรหัสและอัตราการสุ่มตัวอย่าง | อัตราบิตที่กำหนด | เวลาที่ใช้ในการแสดงผลเฟรม | ต้องระบุในอุปกรณ์ส่วนกลาง (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» opcode
|
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 ชิ้นจึงสามารถอนุมานเวลาการเล่นโดยประมาณได้ ดูข้อมูลเพิ่มเติมเกี่ยวกับแพ็กเก็ตเสียงได้ที่รูปแบบและเวลาของแพ็กเก็ตเสียง
โดยอุปกรณ์ส่วนกลางจะช่วยเหลือโดยการส่งทริกเกอร์ไปยังอุปกรณ์เสียงแบบ 2 ช่องหูเมื่ออาจต้องมีการซิงค์ ทริกเกอร์เหล่านี้จะแจ้งสถานะของอุปกรณ์ต่อพ่วงที่จับคู่ไว้ให้อุปกรณ์ต่อพ่วงแต่ละเครื่องทราบทุกครั้งที่มีการดำเนินการที่อาจส่งผลต่อการซิงค์ ทริกเกอร์มีดังนี้
-
เป็นส่วนหนึ่งของคําสั่ง
«Start»
ของ AudioControlPoint ซึ่งจะแสดงสถานะการเชื่อมต่อปัจจุบันของอีกด้านหนึ่งของอุปกรณ์เสียงแบบ 2 ช่อง -
เมื่อใดก็ตามที่มีการดำเนินการเชื่อมต่อ ยกเลิกการเชื่อมต่อ หรืออัปเดตพารามิเตอร์การเชื่อมต่อในอุปกรณ์ต่อพ่วงเครื่องหนึ่ง ระบบจะส่งคําสั่ง
«Status»
ของ AudioControlPoint ไปยังอีกด้านหนึ่งของอุปกรณ์เสียงแบบ 2 ข้าง
รูปแบบและช่วงเวลาของแพ็กเก็ตเสียง
การจัดเฟรมเสียง (บล็อกของตัวอย่าง) ลงในแพ็กเก็ตช่วยให้เครื่องมือฟังเสียงสามารถดึงข้อมูลเวลาจากจุดยึดเวลาของเลเยอร์ลิงก์ วิธีลดความซับซ้อนในการติดตั้งใช้งาน
- เฟรมเสียงควรตรงกับช่วงเวลาการเชื่อมต่อเสมอ ตัวอย่างเช่น หากช่วงเวลาการเชื่อมต่อคือ 20 มิลลิวินาทีและอัตราการสุ่มตัวอย่างคือ 16 kHz เฟรมเสียงจะมี 320 ตัวอย่าง
- ระบบจะจำกัดอัตราตัวอย่างไว้ที่จำนวนที่คูณด้วย 8kHz เพื่อให้มีจำนวนตัวอย่างที่เป็นจำนวนเต็มในเฟรมเสมอ โดยไม่คำนึงถึงเวลาเฟรมหรือช่วงเวลาการเชื่อมต่อ
- บิตตามลำดับจะวางไว้ข้างหน้าเฟรมเสียง ไบต์ลำดับจะนับแบบวนรอบและอนุญาตให้อุปกรณ์ต่อพ่วงตรวจหาบัฟเฟอร์ที่ไม่ตรงกันหรือการไหลเข้าข้อมูลไม่เพียงพอ
-
เฟรมเสียงควรพอดีกับแพ็กเก็ต LE แพ็กเกจเดียวเสมอ ระบบจะส่งเฟรมเสียงเป็นแพ็กเก็ต L2CAP แยกต่างหาก ขนาดของ LE
LL PDU จะเป็น
ขนาดของข้อมูลแอตทริบิวต์เสียง + 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) และเล่นแพ็กเก็ตนั้น
อุปกรณ์ส่วนกลางจะออกคำสั่ง «Stop» เพื่อปิดสตรีมเสียง หลังจากใช้คำสั่งนี้แล้ว อุปกรณ์ต่อพ่วงไม่จำเป็นต้องพร้อมใช้งานในเหตุการณ์การเชื่อมต่อทุกครั้ง หากต้องการเริ่มสตรีมเสียงอีกครั้ง ให้ทำตามลำดับข้างต้นโดยเริ่มจากขั้นตอนที่ 5 เมื่อไม่ได้สตรีมเสียง อุปกรณ์หลักควรยังคงเชื่อมต่อ LE สำหรับบริการ GATT
อุปกรณ์ต่อพ่วงต้องไม่ออกการอัปเดตการเชื่อมต่อไปยังส่วนกลาง อุปกรณ์หลักอาจออกการอัปเดตการเชื่อมต่อกับอุปกรณ์ต่อพ่วงเมื่อไม่ได้สตรีมเสียงเพื่อประหยัดพลังงาน