اختفاء منفذ COM التسلسلي USB: تصحيح أخطاء إعادة التعداد وربط برنامج التشغيل وأرقام المنافذ وجسور CDC

كيفية استكشاف أخطاء اختفاء منافذ COM التسلسلية USB، وتغيير الأرقام، وإعادة التعداد، وإعادة تعيين جسر CDC ACM، وحالات فشل ربط برنامج التشغيل، والتطبيقات التي تحتفظ بمقابض قديمة.

اختفاء منفذ COM التسلسلي USB, منفذ COM مفقود, cdc acm, جسر تسلسلي USB, إعادة التعداد, ربط برنامج التشغيل, تشخيص USB

أجهزة USB التسلسلية في كل مكان: "لوحات Arduino، والمتحكمات الصناعية، والمودمات، وأجهزة استقبال GPS، والتركيبات الاختبارية، ومسبقات التصحيح، وأدوات PLC، وأجهزة الباركود، وبرامج CDC ACM الثابتة المخصصة. عندما يختفي منفذ COM، يبحث المستخدمون عن "USB serial COM port disappears"، و"COM port missing Device Manager"، و"USB serial re-enumerates"، و"CDC ACM device disconnects"، و"COM port changes after reconnect" لأن التطبيق عادة يقول فقط إنه لا يستطيع فتح المنفذ." يكون Bus Scope مفيدًا لأن منفذ COM المفقود يمكن أن يكون ناتجًا عن طبقات مختلفة جدًا: "تعداد USB، ومشاكل الواصفات، وربط برنامج التشغيل، وإعادة تعيين الجهاز، ومقبض التطبيق القديم، وفشل طلب ترميز الخط، أو تعيين Windows لرقم COM جديد."

منفذ COM ليس جهاز USB

منفذ COM هو تجريد لنظام التشغيل يُنشأ بعد أن يعد جهاز USB ويربط برنامج التشغيل التسلسلي. إذا لم يعد جهاز USB أبدًا، لا يمكن أن يظهر منفذ COM. إذا يعد جهاز USB لكن واجهة CDC تفشل، قد لا يزال منفذ COM مفقودًا.

افصل الطبقات:

  • هل توصيل جهاز USB؟
  • هل قُرئت الواصفات بشكل صحيح؟
  • هل اكتملت التهيئة؟
  • هل ظهرت واجهات CDC؟
  • هل ربط برنامج التشغيل؟
  • هل خصص نظام التشغيل منفذ COM؟
  • هل فتح التطبيق المنفذ الصحيح الحالي؟

إعادة التعداد تغير أرقام المنافذ

قد يخصص Windows رقم COM جديدًا عندما يظهر جهاز برقم تسلسلي مختلف، أو مسار USB مختلف، أو VID/PID مختلف، أو هوية واجهة مختلفة. قد يكشف الجهاز الذي يعيد التعيين إلى وضع bootloader عن منفذ COM مختلف أو لا منفذ COM على الإطلاق.

الأعراض:

  • كان الجهاز COM8، الآن COM11.
  • التطبيق يتذكر منفذ COM القديم.
  • توصيل الجهاز في منفذ USB آخر يغير التخصيص.
  • يستخدم bootloader منفذًا مختلفًا.
  • يظهر الجهاز كغير معروف بعد تحديث البرامج الثابتة.

يحدد تتبع الناقل ما إذا كانت هوية الجهاز قد تغيرت.

طلبات تحكم CDC ACM

تتلقى الأجهزة التسلسلية CDC غالبًا طلبات فئة:

  • SET_LINE_CODING
  • GET_LINE_CODING
  • SET_CONTROL_LINE_STATE
  • SEND_BREAK

إذا أوقفت البرامج الثابتة هذه الطلبات أو أساءت التعامل معها، قد يفتح المنفذ لكن البيانات لا تتدفق أبدًا، أو قد يفشل ربط برنامج التشغيل.

التقط سلوك فتح المنفذ، وليس فقط التوصيل. تحدث العديد من حالات الفشل عندما يفتح التطبيق منفذ COM ويرسل برنامج التشغيل ترميز الخط أو تغييرات حالة DTR/RTS.

مقابض التطبيق القديمة

أحيانًا يعيد USB تعداده بشكل صحيح، لكن التطبيق يحتفظ بمقبض قديم أو قائمة منافذ COM مخزنة. يُظهر الناقل أن الجهاز الجديد موجود. التطبيق لا يزال يفشل لأنه لم يحرر المنفذ أو يحدّثه.

هذه ليست فشل ناقل USB. إنها سلوك تطبيق/إدارة جهاز.

قائمة مراجعة التصحيح

استخدم سير العمل هذا:

  1. التقط من التوصيل.
  2. تأكد من واصف الجهاز وواصف التهيئة.
  3. افحص واصفات واجهة CDC.
  4. التقط التطبيق الذي يفتح منفذ COM.
  5. افحص طلبات فئة CDC.
  6. تحقق من إعادة التعيين أو الانفصال بعد ترميز الخط.
  7. قارن هوية الجهاز قبل وبعد إعادة التوصيل.
  8. تحقق مما إذا كان رقم COM قد تغير.
  9. تحقق مما إذا كان التطبيق يستخدم اسم منفذ قديمًا.
  10. حافظ على أدلة USB وملاحظات تخصيص منفذ نظام التشغيل.

التشخيص النهائي

يمكن أن يكون منفذ COM التسلسلي USB المختفي فشل تعداد، أو فشل واصف CDC، أو فشل ربط برنامج التشغيل، أو إعادة تعداد بهوية جديدة، أو فشل طلب ترميز الخط، أو إعادة تعيين تحت الحمل، أو حالة تطبيق قديمة.

يساعد Bus Scope من خلال إظهار جانب USB من القصة بحيث يمكن ربط أعراض منفذ COM بالتوصيل والواصفات وطلبات CDC وإعادة التعيين وهوية الجهاز الفعلية.