فشل تعداد جهاز USB: ما يجب أن يلتقطه مهندسو البرامج الثابتة أولاً
دليل عملي لتشخيص أجهزة USB غير المعروفة، أو التي تفشل في التعداد، أو التي تختفي أثناء تفاوض الواصفات. يغطي عدم اكتشاف برنامج تشغيل USB، وعدم تعرف Windows على USB، وعدم رؤية الكمبيوتر لـ USB في Bus Scope.
عندما لا يتم التعرف على جهاز USB، نادرًا ما يكون السؤال الأول "أي زر في الواجهة يجب أن أنقر؟" السؤال المفيد هو: "إلى أي مدى وصل التعداد، وما الدليل الذي يثبت أين توقف؟" تعداد USB محادثة منظمة بين المضيف والجهاز. يعيد المضيف تعيين المنفذ، ويطلب الواصفات، ويعين عنوانًا، ويختار تهيئة، ويحمل برنامج تشغيل بناءً على أدلة الفئة والواجهة. يمكن أن تنتج مشكلة البرامج الثابتة، أو عدم تطابق الواصفات، أو مشكلة التوقيت، أو مشكلة الكابل، أو مشكلة ربط برنامج التشغيل نفس العرض للمستخدم: "الجهاز لا يظهر."
ابدأ بالخط الزمني للتعداد
يجب أن يُظهر التقاط USB الجيد:
- توصيل الجهاز أو إعادة تعيين المنفذ
- حزم الإعداد
- طلبات
GET_DESCRIPTOR - استجابة واصف الجهاز
- تعيين العنوان
- طلب واصف التهيئة
- طلبات واصف السلسلة عند وجودها
SET_CONFIGURATION- طلبات خاصة بالفئة بعد التهيئة
إذا توقف الخط الزمني قبل واصف الجهاز، فقد تكون المشكلة كهربائية أو في التوقيت أو الموزع أو الكابل أو جاهزية الجهاز منخفض المستوى. إذا توقف عند تحليل التهيئة، افحص طول الواصف، وتعريفات نقطة النهاية، وفئات الواجهة، وحقول الطول الكلي. إذا نجح التعداد لكن التطبيق فشل، فقد تكون المشكلة بروتوكول الفئة أو سلوك نقطة النهاية أو توقعات برنامج التشغيل.
أدلة الواصفات تغلب على التخمين
غالبًا ما تعرف فرق البرامج الثابتة ما كانت تنوي كشفه: HID أو CDC أو تخزين الكتلة أو نقاط نهاية خاصة بالبائع أو تخطيط مركب. المضيف يرى فقط الواصفات. إذا كانت الواصفات غير متسقة، فقد يرفض المضيف الجهاز حتى لو كان منطق البرامج الثابتة صحيحًا بخلاف ذلك.
تشمل الحقول المهمة:
- معرّف البائع ومعرّف المنتج
- فئة الجهاز والفئة الفرعية والبروتوكول
- الطول الكلي للتهيئة
- عدد الواجهات
- عنوان نقطة النهاية والاتجاه
- نوع نقل نقطة النهاية
- حجم الحزمة الأقصى
- توفر واصف تقرير HID
- الواصفات الوظيفية لـ CDC
يمكن أن تسبب أخطاء الواصفات الصغيرة أعراضًا كبيرة. يمكن أن يجعل الطول الكلي غير المتطابق أو نقطة النهاية المفقودة الجهاز بأكمله يبدو معطلًا.
التقط قبل تثبيت المزيد من برامج التشغيل
يمكن أن يغير تثبيت برامج التشغيل السلوك، لكنه قد يخفي أيضًا الفشل الأصلي. للتشخيص، التقط محاولة التعداد النظيفة الأولى. ثم التقط بعد تغييرات برنامج التشغيل إذا لزم الأمر. المقارنة ذات قيمة.
سير عمل الدعم العملي:
- التقط التوصيل والتعداد
- حدد آخر طلب مضيف ناجح
- افحص حقول الواصف حول الفشل
- قارن بفئة USB المقصودة
- كرر بعد تغييرات البرامج الثابتة أو برنامج التشغيل
هذا يتجنب فخ تصحيح خطأ التطبيق النهائي فقط.
Linux و Windows يحتاجان مسارات التقاط مختلفة
على Linux، يوفر usbmon أدلة حركة USB على مستوى النواة. على Windows، USBPcap هو مسار برنامج تشغيل التقاط الشائع. الالتقاطات ليست متطابقة في الإعداد التشغيلي، لكن هدف الهندسة هو نفسه: الحفاظ على أدلة الطلب والاستجابة ونقطة النهاية والاتجاه والفئة.
للفرق التي تدعم كلا النظامين، يجب أن يذكر التقرير مصدر الالتقاط. قد يكون للجهاز الذي يعد على Linux لكنه يفشل على Windows مشكلة ربط برنامج تشغيل. الجهاز الذي يفشل قبل الواصفات على كلا النظامين من المرجح أن يكون مشكلة في البرامج الثابتة أو الكابل أو الموزع أو التوقيت الكهربائي.
أين يتناسب Bus Scope
تم بناء Bus Scope حول أدلة USB بدلاً من انتشار البروتوكول الواسع. يساعد فرق البرامج الثابتة والأجهزة في فحص عمليات النقل والواصفات ونقاط النهاية وملاحظات الفئة في منصة عمل كثيفة. الهدف ليس استبدال كل محلل بائع. الهدف هو جعل أدلة USB اليومية أسهل في الالتقاط والفحص والحفظ والتسليم.
لحالات فشل التعداد، النتيجة القيّمة هي حد واضح:
- المضيف قدم هذا الطلب
- الجهاز أعاد هذه الاستجابة
- التعداد توقف هنا
- أدلة الواصفات تشير إلى عدم التطابق هذا
- الإجراء التالي يخص البرامج الثابتة أو برنامج التشغيل أو الكابل أو الموزع أو سياسة المضيف
هذا ما يحوّل "جهاز USB غير معروف" إلى حالة هندسية.