تصحيح أخطاء bInterval لنقطة نهاية المقاطعة في USB
كيفية تصحيح أخطاء bInterval لنقطة نهاية المقاطعة في USB، ومعدل الاستطلاع، وكمون HID، والتقارير المفقودة، وقواعد فاصل السرعة الكاملة مقابل العالية، وأخطاء واصف نقطة النهاية.
تُستخدم نقاط نهاية المقاطعة في USB بواسطة لوحات المفاتيح والفئران وأذرع التحكم وأجهزة الاستشعار ولوحات اللمس والماسحات الضوئية وأجهزة UPS والعديد من أدوات HID المخصصة. يبحث المستخدمون عن "bInterval USB"، و"معدل استطلاع HID"، و"كمون نقطة نهاية مقاطعة USB"، و"تقارير الإدخال المفقودة"، و"جهاز USB 125Hz 250Hz 1000Hz"، و"bInterval السرعة الكاملة السرعة العالية" عندما يشعر الإدخال متأخرًا أو تصل التقارير بالمعدل الخاطئ.
يكون Bus Scope مفيدًا لأن سلوك الاستطلاع محدد بواصفات نقطة النهاية وتوقيت الناقل الفعلي. قد تُظهر واجهة المستخدم لنظام التشغيل فقط "الجهاز متصل"؛ يمكن أن يُظهر الالتقاط الفاصل الزمني الذي يستخدمه المضيف فعليًا.
ما يعنيه bInterval
يتضمن واصف نقطة نهاية المقاطعة bInterval. تصف هذه القيمة فاصل الاستطلاع، لكن التفسير يعتمد على السرعة ونوع نقطة النهاية.
تمييزات مهمة:
- تستخدم نقاط نهاية المقاطعة منخفضة السرعة وكاملة السرعة فواصل قائمة على الإطارات بالمللي ثانية.
- تستخدم نقاط نهاية المقاطعة عالية السرعة ترميزًا مختلفًا يعتمد على الإطارات الدقيقة.
- يمكن أن تؤثر جدولة وحدة تحكم المضيف وطوبولوجيا الموزع على التوقيت المرصود.
- توقيت قراءة التطبيق ليس نفس توقيت استطلاع ناقل USB.
إذا نظر المهندس فقط إلى ردود نداء التطبيق، فقد يفوت الجدول الفعلي لنقطة النهاية.
الأعراض الشائعة
تظهر مشكلات فاصل الاستطلاع كـ:
- تشعر الفأرة أو وحدة التحكم بالتباطؤ.
- تصل تقارير إدخال HID كل 8 مللي ثانية بدلاً من 1 مللي ثانية.
- يعلن الجهاز 1000 هرتز لكنه يتصرف مثل 125 هرتز.
- بيانات المستشعر متفجرة.
- الماسح الضوئي يُسقط المسحات السريعة.
- لوحة اللمس تشعر بالتأخر بعد الاستئناف.
- ترسل البرامج الثابتة تقارير أسرع مما يستطلعه المضيف.
- وضع السرعة العالية يغير توقيت التقرير بشكل غير متوقع.
غالبًا ما تبدو هذه المشكلات كمشكلات كمون أو استجابة، لكن الدليل الجذري في واصف USB وتوقيت الحزمة.
تفسير السرعة الكاملة مقابل العالية
يمكن أن تعني نفس القيمة العددية لـ bInterval توقيتًا فعالًا مختلفًا حسب السرعة. نقطة نهاية HID كاملة السرعة مع bInterval=8 ليست نفس نموذج الجدولة كنقطة نهاية عالية السرعة بنفس قيمة البايت.
يجب أن يلتقط التصحيح:
- السرعة المتفاوض عليها الفعلية.
- واصف نقطة النهاية.
- عنوان نقطة النهاية.
- نوع النقل.
bInterval.- إيقاع رمز IN أو النقل المرصود.
- توقيت حمولة التقرير.
يجب أن يُظهر Bus Scope قيم الواصف والتوقيت المرصود معًا.
الإنتاج المفرط للبرامج الثابتة
تولد بعض البرامج الثابتة تقارير إدخال أسرع مما يستطلعه المضيف. قد يتم استبدال هذه التقارير، أو دمجها، أو إسقاطها قبل أن يراها المضيف أبدًا.
الأعراض:
- تُظهر سجلات الجهاز الداخلية الأحداث.
- يتلقى المضيف تقارير أقل.
- تُفقد ضغطات الأزرار السريعة.
- تبدو الحركة ملساء أو متأخرة.
- التقارير بعد الانفجار تحتوي فقط على آخر حالة.
هذه ليست مشكلة فقدان حزم USB. إنها مشكلة تخزين مؤقت للبرامج الثابتة وعقد استطلاع.
استطلاع المضيف ليس معدل قراءة التطبيق
قد يقرأ التطبيق كل 1 مللي ثانية، لكن مضيف USB قد يستطلع كل 8 مللي ثانية فقط. أو قد يستطلع المضيف في الوقت المحدد، لكن قد يعالج حلقة حدث التطبيق البيانات لاحقًا.
يفصل التقاط الحزم بين:
- فاصل استطلاع الناقل.
- توقيت استجابة الجهاز.
- تخزين برنامج تشغيل المضيف المؤقت.
- كمون رد نداء التطبيق.
هذا الفصل حاسم لحالات دعم كمون HID.
أخطاء واصف bInterval
تشمل أخطاء الواصف الشائعة:
- الإعلان عن طريق الخطأ عن
bInterval=10بدلاً من1. - نسخ فاصل السرعة الكاملة إلى واصف السرعة العالية بشكل غير صحيح.
- استخدام فاصل واحد في توقعات واصف HID وآخر في واصف نقطة النهاية.
- تدّعي تعليقات البرامج الثابتة 1000 هرتز لكن الواصف يقول أبطأ.
- تغيير الإعداد البديل للفاصل لكن البرامج الثابتة لا تتعامل معه.
البايت في الواصف هو العقد الذي يجدول المضيف ضده.
قائمة مراجعة التصحيح
استخدم سير العمل هذا:
- التقط التعداد.
- حدد واصفات نقطة نهاية المقاطعة.
- سجّل سرعة الجهاز الفعلية.
- فك تشفير
bInterval. - قس إيقاع IN للمقاطعة المرصود.
- قارن بمعدل الاستطلاع المتوقع.
- شغل أحداث إدخال سريعة.
- تحقق مما إذا كانت التقارير مفقودة أو مدمجة.
- قارن المنفذ المباشر مقابل الموزع.
- حافظ على أدلة الواصف والتوقيت معًا.
التشخيص النهائي
كمون مقاطعة USB ليس مجرد مشكلة أداء تطبيق. يعتمد على bInterval نقطة النهاية، ووضع السرعة، وجدولة المضيف، وتوليد التقرير، وتخزين البرامج الثابتة المؤقت.
يساعد Bus Scope في إثبات ما إذا كان جهاز HID أو جهاز مقاطعة يتم استطلاعه فعلاً بالمعدل المقصود وما إذا كان الإدخال المفقود ناتجًا عن إعدادات الواصف، أو تخزين البرامج الثابتة المؤقت، أو توقيت المضيف/التطبيق.