توضح هذه الصفحة الطرق الشائعة لقياس زمن وصول الإدخال والإخراج.
قياس الكمون الإخراج
هناك العديد من التقنيات المتاحة لقياس زمن وصول الإخراج، بدرجات متفاوتة من الدقة وسهولة التشغيل، الموضحة أدناه. راجع أيضًا دائرة الاختبار للحصول على مثال لبيئة الاختبار.
اختبار الصمام والذبذبات
يقيس هذا الاختبار زمن الوصول بالنسبة لمؤشر LED الخاص بالجهاز. إذا لم يكن جهاز الإنتاج الخاص بك يحتوي على مؤشر LED، فيمكنك تثبيت مؤشر LED على جهاز عامل الشكل النموذجي. للحصول على دقة أفضل على الأجهزة النموذجية ذات الدوائر المكشوفة، قم بتوصيل مسبار راسم الذبذبات بمصباح LED مباشرةً لتجاوز زمن وصول مستشعر الضوء.
إذا لم تتمكن من تثبيت مؤشر LED على جهاز الإنتاج أو جهاز النموذج الأولي لديك، فجرّب الحلول البديلة التالية:
- استخدم دبوس الإدخال/الإخراج للأغراض العامة (GPIO) لنفس الغرض.
- استخدم JTAG أو منفذ تصحيح آخر.
- استخدم الإضاءة الخلفية للشاشة. قد يكون هذا محفوفًا بالمخاطر لأن الإضاءة الخلفية قد يكون لها زمن انتقال لا يُذكر، ويمكن أن تساهم في قراءة زمن الوصول غير دقيقة.
لإجراء هذا الاختبار:
- قم بتشغيل أحد التطبيقات التي تنبض بشكل دوري بمصباح LED في نفس الوقت الذي يقوم فيه بإخراج الصوت.
ملاحظة: للحصول على نتائج مفيدة، من الضروري استخدام واجهات برمجة التطبيقات الصحيحة في تطبيق الاختبار حتى تتمكن من ممارسة مسار إخراج الصوت السريع. راجع التصميم لتقليل زمن الوصول للخلفية.
- ضع مستشعر الضوء بجوار LED.
- قم بتوصيل مجسات راسم الذبذبات ثنائي القناة بكل من مقبس سماعة الرأس السلكية (خرج الخط) ومستشعر الضوء.
- استخدم راسم الذبذبات لقياس الفارق الزمني بين مراقبة إشارة خرج الخط وإشارة مستشعر الضوء.
الفرق في الوقت هو الكمون التقريبي لإخراج الصوت، على افتراض أن زمن استجابة LED وزمن استجابة مستشعر الضوء كلاهما صفر. عادةً ما يكون لكل من مستشعر LED ومستشعر الضوء زمن وصول منخفض نسبيًا يصل إلى مللي ثانية واحدة أو أقل، وهو منخفض بدرجة كافية لتجاهله.
قياس الكمون ذهابا وإيابا
زمن الوصول ذهابًا وإيابًا هو مجموع زمن وصول الإخراج وزمن وصول الإدخال.
اختبار لارسن
أحد أسهل اختبارات الكمون هو اختبار ردود الفعل الصوتية (تأثير لارسن). يوفر هذا مقياسًا أوليًا للكمون الناتج والمدخل عن طريق توقيت حلقة الاستجابة النبضية. لا يعد هذا الاختبار مفيدًا جدًا للتحليل التفصيلي في حد ذاته بسبب طبيعة الاختبار، ولكنه يمكن أن يكون مفيدًا لمعايرة الاختبارات الأخرى ولإنشاء حد أعلى.
لا تقوم هذه الطريقة بتقسيم أوقات المكونات، وهو أمر مهم عندما يكون زمن استجابة الإخراج وزمن وصول الإدخال مستقلين. لذلك، لا يُنصح باستخدام هذه الطريقة لقياس زمن وصول المخرجات بشكل دقيق أو قيم زمن وصول الإدخال بشكل منفصل، ولكنها قد تكون مفيدة لإنشاء تقديرات تقريبية.
يمكن أن يكون زمن استجابة الإخراج لمكبر الصوت الموجود على الجهاز أكبر بكثير من زمن استجابة الإخراج لموصل سماعة الرأس. ويرجع ذلك إلى تصحيح المتحدث وحمايته.
لإجراء هذا الاختبار:
- قم بتشغيل تطبيق يلتقط الصوت من الميكروفون ويقوم على الفور بتشغيل البيانات الملتقطة مرة أخرى عبر مكبر الصوت.
- قم بإنشاء صوت خارجيًا، مثل النقر بقلم رصاص بواسطة الميكروفون. هذا الضجيج يولد حلقة ردود الفعل. وبدلاً من ذلك، يمكن للمرء ضخ دفعة في الحلقة باستخدام البرنامج.
- قم بقياس الوقت بين نبضات التغذية المرتدة للحصول على مجموع زمن انتقال الإخراج وزمن وصول الإدخال والحمل الزائد للتطبيق.
فيما يلي بعض الموارد للحصول على تطبيق لاختبار Larsen:
- تطبيق الاسترجاع Dr. Rick O'Rang هو تطبيق Android لاختبار التعليقات الصوتية. يمكنك تنزيل التطبيق من Google Play أو الحصول على الكود المصدري من GitHub .
- لقد نشرنا أيضًا مثالًا للتنفيذ على slesTestFeedback.cpp . هذا تطبيق سطر أوامر وتم إنشاؤه باستخدام بيئة بناء النظام الأساسي؛ ومع ذلك، يجب أن يكون من السهل اعتماد التعليمات البرمجية للبيئات الأخرى. ستحتاج أيضًا إلى رمز FIFO غير المحظور الموجود في مكتبة
audio_utils
.
دونجل استرجاع الصوت
يعد دونجل استرجاع الصوت Dr. Rick O'Rang مفيدًا لقياس زمن الوصول ذهابًا وإيابًا عبر موصل سماعة الرأس. توضح الصورة أدناه نتيجة حقن دفعة في الحلقة مرة واحدة، ومن ثم السماح لحلقة التغذية المرتدة بالتأرجح. فترة التذبذبات هي زمن الوصول ذهابًا وإيابًا. لم يتم هنا تحديد الجهاز المحدد وإصدار البرنامج وشروط الاختبار. لا ينبغي استقراء النتائج المعروضة.
![قياس ذهابا وإيابا](https://source.android.com/static/docs/core/audio/images/round_trip.png?authuser=7&hl=ar)
الشكل 1. قياس رحلة ذهابا وإيابا
قد تحتاج إلى إزالة كابل USB لتقليل الضوضاء وضبط مستوى الصوت للحصول على تذبذب مستقر.
قياس زمن وصول الإدخال
يعد قياس زمن وصول الإدخال أكثر صعوبة من قياس زمن وصول الإخراج. قد تساعد الاختبارات التالية.
تتمثل إحدى الطرق في تحديد زمن وصول الإخراج أولاً باستخدام طريقة LED ومرسمة الذبذبات ثم استخدام اختبار التغذية المرتدة الصوتية (لارسن) لتحديد مجموع زمن وصول الإخراج وزمن وصول الإدخال. الفرق بين هذين القياسين هو زمن الوصول للإدخال.
أسلوب آخر هو استخدام دبوس GPIO على جهاز النموذج الأولي. خارجيًا، قم بنبض مدخل GPIO في نفس الوقت الذي تقدم فيه إشارة صوتية إلى الجهاز. قم بتشغيل تطبيق يقارن الفرق في أوقات وصول إشارة GPIO والبيانات الصوتية.
تقليل الكمون
لتحقيق زمن انتقال صوتي منخفض، انتبه بشكل خاص في النظام بأكمله للجدولة ومعالجة المقاطعة وإدارة الطاقة وتصميم برنامج تشغيل الجهاز. هدفك هو منع أي جزء من النظام الأساسي من حظر سلسلة المحادثات الصوتية SCHED_FIFO
لأكثر من بضعة أجزاء من الثانية. من خلال اعتماد مثل هذا النهج المنهجي، يمكنك تقليل زمن الوصول الصوتي والحصول على فائدة جانبية تتمثل في أداء أكثر قابلية للتنبؤ به بشكل عام.
غالبًا ما لا يمكن اكتشاف حالات نقص الصوت، عند حدوثها، إلا في ظل ظروف معينة أو فقط عند التحولات. حاول الضغط على النظام من خلال تشغيل تطبيقات جديدة والتمرير بسرعة عبر شاشات العرض المختلفة. لكن انتبه إلى أن بعض ظروف الاختبار تكون مرهقة للغاية بحيث تتجاوز أهداف التصميم. على سبيل المثال، يؤدي أخذ تقرير بالأخطاء إلى وضع حمل هائل على النظام بحيث قد يكون من المقبول حدوث نقص في التشغيل في هذه الحالة.
عند اختبار النقصان:
- قم بتكوين أي DSP بعد معالج التطبيق بحيث يضيف الحد الأدنى من زمن الوصول.
- قم بإجراء الاختبارات في ظل ظروف مختلفة مثل تشغيل الشاشة أو إيقاف تشغيلها، أو توصيل USB أو فصله، أو تشغيل WiFi أو إيقاف تشغيله، أو تشغيل Bluetooth أو إيقاف تشغيله، وتشغيل أو إيقاف تشغيل الهاتف وأجهزة راديو البيانات.
- اختر موسيقى هادئة نسبيًا تكون مألوفًا لديك، والتي يسهل سماع نغماتها المنخفضة.
- استخدم سماعات الرأس السلكية لمزيد من الحساسية.
- امنح نفسك فترات راحة حتى لا تشعر "بإرهاق الأذن".
بمجرد العثور على الأسباب الكامنة وراء حالات النقصان، قم بتقليل أعداد المخزن المؤقت وأحجامه للاستفادة من ذلك. إن النهج المتحمس لتقليل أعداد وأحجام المخزن المؤقت قبل تحليل حالات النقصان وإصلاح أسباب النقصان يؤدي فقط إلى الإحباط.
أدوات
تعد systrace
أداة ممتازة للأغراض العامة لتشخيص مواطن الخلل في الأداء على مستوى النظام.
يحتوي إخراج dumpsys media.audio_flinger
أيضًا على قسم مفيد يسمى "إحصاءات النقل البسيطة". يحتوي هذا على ملخص لتغير الأوقات المنقضية لكل مزيج صوتي ودورة إدخال/إخراج. من الناحية المثالية، يجب أن تكون قياسات الوقت كلها مساوية لمتوسط أو وقت الدورة الاسمية. إذا رأيت حدًا أدنى منخفضًا للغاية أو حدًا أقصى مرتفعًا، فهذا مؤشر على وجود مشكلة، ومن المحتمل أن يكون زمن الوصول للجدولة مرتفعًا أو وقت تعطيل المقاطعة. الجزء الخلفي من الإخراج مفيد بشكل خاص، لأنه يسلط الضوء على التباين وراء +/- 3 انحرافات معيارية.