محطة المنفذ التسلسلي: الاتصال، التسجيل، وتصحيح الأخطاء لـ RS-232 / RS-485 و VT-100

آخر تحديث في بواسطة Oliver Reed

SerialTool هو برنامج احترافي متعدد المنصات (Windows و macOS و Linux) مصمم من أجل الاختبار، وتصحيح الأخطاء، والتحليل المتقدم للمنافذ التسلسلية المتصلة بالأجهزة الإلكترونية والصناعية والمدمجة. إنه حالياً الحل الأكثر شمولاً للاتصال التسلسلي، حيث يوفر وضعي المستوى المنخفض (الموجه بالبايت) و المحطة المتقدمة (VT-100).

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

معلومات من ويكيبيديا: منفذ تسلسلي · RS-232 · RS-485 · UART

دعم كامل لمحطة VT-100

يدعم SerialTool محاكاة VT-100، والتي تستخدم على نطاق واسع في الأجهزة المهنية وأجهزة البنية التحتية. في هذه السياقات، غالباً ما تكون المحطة التسلسلية هي قناة الوصول الوحيدة الموثوقة "للخدمة"، حيث تظل متاحة حتى عند تعطل الشبكة.

أمثلة نموذجية للأجهزة التي تستخدم VT-100:

  • أجهزة الشبكة: أجهزة التوجيه (Routers)، المحولات (Switches)، جدران الحماية المادية، نقاط الوصول Wi-Fi للمؤسسات.
  • أنظمة الخوادم: خوادم المؤسسات (تكوينات BIOS/UEFI، وحدات iDRAC/iLO حتى بدون شبكة).
  • البنية التحتية: مزودات الطاقة غير المنقطعة (UPS)، مسجلات الفيديو الرقمية (DVR)، وحدات التخزين الشبكي (NAS).
  • الأدوات الصناعية/العلمية: أجهزة التحكم المنطقي القابل للبرمجة (PLC)، موازين الدقة، مستقبلات GPS، اللوحات الإلكترونية المطبوعة (PCBs)، والأجهزة المخصصة.

روابط ويكيبيديا مفيدة: BIOS · UEFI · PLC · GPS

في عالم الإلكترونيات المدمجة، يعد استخدام المحطة لتصحيح أخطاء البرامج الثابتة (Firmware) أمراً أساسياً. إذا كنت تستخدم منصات مثل Arduino، أو ESP32، أو STM32، أو Raspberry Pi، فإن SerialTool هو الأداة المثالية لمراقبة المخرجات وسجلات النظام.

الفرق بين البرمجيات التسلسلية والمحطة التسلسلية

تقوم برامج المنافذ التسلسلية الشائعة ببساطة بإرسال واستقبال بايتات خام عبر TX (الإرسال)، و RX (الاستقبال)، والأرضي (GND). في هذه الحالة، لا يتم تفسير دفق البيانات كواجهة نصية: بل يتم عرضها "كما هي" فقط.

  • ASCII (أحرف قابلة للطباعة)
  • Hexadecimal (تحليل بايت ببايت)
  • Binary (عند الحاجة لعرض مستوى البت)

من ناحية أخرى، يجب على محطة VT-100 تفسير تسلسلات الهروب ANSI (ESC) لإدارة المؤشر، والألوان، ومسح الشاشة، والتنسيق بشكل صحيح. هنا، طباعة البايتات ليست كافية: المحاكاة مطلوبة.

أحد الفروق العملية الهامة بين نوعي المحطات هو، على سبيل المثال، إنشاء سطر جديد على الشاشة.
في محطة VT-100، وبحسب العرف، يتم إدراج سطر جديد عند استقبال تسلسل البايت 0x0D 0x0A، والذي يخبر المحطة بأن الوقت قد حان لإضافة صف جديد إلى العرض.
هذا المعيار لا يتم احترامه بالضرورة في حالة البروتوكولات التسلسلية الخاصة.
في بروتوكول الاتصالات الصناعية Modbus، وبما أن البيانات خام وليست مخصصة للعرض بتنسيق ASCII، فإن الحزم لا تنتهي بتسلسل محدد.
لهذا السبب، يسمح لك SerialTool بتعيين سطر جديد في المحطة الكلاسيكية عند وصول الحزمة باستخدام خيار "Packet Mode" (وضع الحزمة) القابل للتحديد والموضح في لقطة الشاشة التالية.

serial port terminal vt-100

تحديد وضع المحطة الكلاسيكية في وضع الحزمة (Packet Mode)

بفعل ذلك، وعند استقبال سلسلة من البايتات من منفذ تسلسلي محدد، ستقوم المحطة بإنشاء سطر جديد عند انتهاء الحزمة.
لتحديد متى تنتهي الحزمة، من المهم تعيين "Last Byte Timeout" (مهلة البايت الأخير) في الشاشة الخاصة بالمنفذ التسلسلي المستخدم (عادة 50 مللي ثانية).

ملاحظة: إذا كنت تنوي استخدام وضع محطة VT-100 المذكور أدناه، فإن حركة البيانات الواردة لا تحتوي على مهلة محددة وتعتمد على الجهاز الرئيسي الذي تتصل به.
لهذا السبب، وللحفاظ على سلاسة العرض، من المهم تعيين "Last Byte Timeout" إلى 1 مللي ثانية. في هذه الحالة، يتم إرسال كل تدفق وارد من البايتات فوراً للتفسير بواسطة محطة VT-100.
لن يحدث شيء إذا ظلت المهلة 50 مللي ثانية، ولكن هناك خطر رؤية بعض الرسوم المتحركة بطيئة أو لا تتطابق مع التأثير الذي قصده المطور.
مثال على ذلك هو محاكاة شريط التقدم بأحرف ANSI، والذي سيتم عرضه بشكل غير صحيح على الشاشة إذا كانت المهلة عالية جداً.
هذه الأمثلة هي تعديلات صغيرة تتطلب بعض الخبرة، ولكن تم تصميم SerialTool خصيصاً لجعل كل نوع من عمليات المنفذ التسلسلي ممكناً. وبالتالي تُمنح الفرصة للذهاب بعيداً حتى تحليل البايتات الفردية وتقييم التوقيتات المختلفة التي يعمل بها المنفذ التسلسلي.

SerialTool وتصحيح الأخطاء منخفض المستوى (الموجه بالبايت)

مع SerialTool، من الممكن مراقبة، وتسجيل، وتصحيح أخطاء حركة المرور التسلسلية بمستوى منخفض باستخدام المحطة الكلاسيكية، وعرض البايتات الحقيقية العابرة. يمكن أن يكون العرض بتنسيق ASCII، أو Hexadecimal، أو مدمجاً (ASCII + HEX).

هذا الوضع أساسي عندما يكون من الضروري:

  • تحليل كل بايت مفرد (والبتات الفردية عند الضرورة)
  • التحقق من المجموع الاختباري (checksum/CRC)
  • دراسة الإطارات والحزم
  • تشخيص أخطاء الاتصال

مثال: بروتوكول Modbus

حالة نموذجية هي Modbus، حيث تتواصل أجهزة السيد (Master) و التابع (Slave) بإطارات صارمة، غالباً عبر RS-485. في هذا السيناريو، المحطة "النقية" (VT-100 فقط) ليست مثالية: تحتاج لرؤية والتحقق من البايتات الدقيقة، بما في ذلك CRC وأوقات الاستجابة.

01 03 00 00 00 02 C4 0B

في الوضع الكلاسيكي، يجعل SerialTool تحليل الإطار، والتحقق من العنوان/الوظيفة، وتحليل بايت ببايت أمراً فورياً.

محطة VT-100: تفاعل متقدم بين الإنسان والآلة (ANSI/ESC)

عندما يوفر الجهاز تفاعلاً سهل الاستخدام (قوائم، أوامر نصية، جداول، تمييز)، غالباً ما يتم استخدام محطة VT-100: تكون البيانات عادةً ASCII مقروءة، مدعومة بتسلسلات ESC. تبدأ هذه التسلسلات عادةً بحرف ESC (0x1B) وتأمر بإجراءات "رسومية".

الإجراءات النموذجية التي تتحكم بها تسلسلات ESC:

  • حركة المؤشر
  • مسح الشاشة أو الصفوف
  • تغيير لون النص / السمات (عريض، تحته خط)
  • تحديد موقع المؤشر في إحداثيات محددة

أمثلة على تسلسلات ANSI/ESC

  • \x1B[2J: مسح الشاشة بالكامل.
  • \x1B[H: نقل المؤشر إلى أعلى اليسار (Home).
  • \x1B[31m: تغيير لون النص إلى الأحمر.
  • \x1B[5;10H: نقل المؤشر إلى إحداثيات محددة (الصف 5، العمود 10).

في هذا الوضع، لا يكتفي SerialTool بعرض البايتات: بل يفسر التسلسلات ويظهر للمستخدم واجهة نظيفة، وملونة، وقابلة للتنقل، كما هو محدد بواسطة معايير VT-100/ANSI.

تحليل مقارن: Modbus (مستوى منخفض) مقابل وحدة تحكم VT-100

لفهم فائدة وجود كلا الوضعين في نفس البرنامج، لننظر في سيناريوهين متعاكسين:

مثال 1 — Modbus (مستوى منخفض)

في شبكة RS-485، يقوم السيد باستجواب التابع. يتكون الاتصال من حزم ثنائية (إطارات) مثل: 01 03 00 00 00 02 C4 0B. هنا، يلزم عرض سداسي عشري (Hexadecimal)، والتحقق من CRC، وتحليل بايت ببايت.

الحل: محطة SerialTool الكلاسيكية (موجهة بالبايت).

مثال 2 — موجه / وحدة تحكم Linux مدمجة (VT-100)

عند الاتصال بجهاز توجيه أو نظام مدمج، يرسل الجهاز جداول ASCII، وقوائم، وألواناً عبر تسلسلات ANSI/ESC. البرامج التسلسلية "الأساسية" ستعرض سلاسل مربكة مليئة بـ ^[. تقوم محطة VT-100 الصحيحة بتفسير الرموز وعرض الواجهة كما صُممت.

الحل: وضع SerialTool VT-100 (محاكاة ANSI كاملة).

البرمجيات القديمة مثل PuTTY أو Tera Term تم إنشاؤها بشكل حصري تقريباً لمحاكاة المحطة، وبالتالي فهي ليست مثالية لتصحيح الأخطاء الموجه بالبايت لبروتوكولات مثل Modbus. يجمع SerialTool بين أفضل ما في العالمين.

تصور إقلاع ESP32

لفهم كيفية عرض نفس البيانات بشكل مختلف بناءً على تكوين SerialTool الذي نختاره، دعونا نحلل إقلاع (Boot) وحدة ESP32-S3 عبر منفذ التصحيح.
في الشاشات المختلفة، يتم تكرار نفس تسلسل الإقلاع القياسي (الشائع في العديد من الأجهزة الرئيسية)، وهو مثالي للعرض باستخدام محطة VT-100.
للمقارنة، يتم عرض نفس التسلسل باستخدام المحطة الكلاسيكية لـ SerialTool وأيضاً المحطة السداسية العشرية.

أولاً، حدد وضع المحطة من القائمة الرئيسية كما هو موضح في الصورة التالية.

serial port terminal selection

تحديد وضع عرض المحطة

حدد وضع محطة VT-100 من إعدادات المحطة.

serial port terminal vt-100

تحديد وضع محطة VT-100

بمجرد تحديد وضع المحطة التسلسلية VT-100، سيتم تعطيل الخيارات المتعلقة بالمحطة الكلاسيكية لـ SerialTool.
بإعادة تعيين وحدة ESP32، نلاحظ حركة مرور محمل الإقلاع (bootloader) الواردة من الوحدة.

boot esp32 serial port

إقلاع ESP32-S3 في وضع محطة VT-100

في هذه المرحلة، دعونا نجرب نفس إجراء إقلاع وحدة ESP32 مع العرض من خلال المحطة الكلاسيكية لـ SerialTool.
أولاً، حدد وضع المحطة الكلاسيكية وحدد تمثيل البايت بتنسيق ASCII.
ستظهر الخيارات المتعلقة بالمحطة الكلاسيكية لـ SerialTool مرة أخرى.

boot esp32 serial port ascii selection

تحديد وضع محطة SerialTool الكلاسيكية - ASCII

بإعادة تعيين وحدة ESP32، نلاحظ حركة مرور محمل الإقلاع الواردة من الوحدة.

boot esp32 serial port ascii

إقلاع ESP32-S3 في وضع محطة SerialTool الكلاسيكية - ASCII

دعونا نجري نفس التجربة باستخدام عرض حركة المرور في الوضع السداسي العشري عن طريق ضبط وضع عرض البيانات على Hexadecimal.

boot esp32 serial port hex selection

تحديد وضع محطة SerialTool الكلاسيكية - Hexadecimal

بإعادة تعيين وحدة ESP32، نلاحظ حركة مرور محمل الإقلاع الواردة من الوحدة.

boot esp32 hex terminal

إقلاع ESP32-S3 في وضع محطة SerialTool الكلاسيكية - Hexadecimal

كاختبار أخير، دعونا نستخدم النوع الآخر من المحطة التسلسلية في SerialTool، وهو المحطة السداسية العشرية النقية (Pure Hexadecimal Terminal).
في هذا التمثيل، يتم عرض حركة مرور المنفذ التسلسلي على نفس الشاشة بتنسيق سداسي عشري و ASCII في قسمين مختلفين.
هذا النوع من العرض مناسب جداً عندما تحتاج لرؤية حركة المرور بالبايت (الواردة والصادرة) بوضوح وفي نفس الوقت.
عادة ما يتم توجيه خيار استخدام المحطة السداسية العشرية نحو المطورين في البيئات المدمجة.

أولاً، حدد المحطة السداسية العشرية من الشاشة الرئيسية.

serial port terminal hex selection

تحديد وضع المحطة السداسية العشرية

بإعادة تعيين وحدة ESP32، نلاحظ حركة مرور محمل الإقلاع الواردة من الوحدة عبر المحطة السداسية العشرية.

boot esp32 hex terminal

إقلاع ESP32-S3 في المحطة السداسية العشرية (HEX Terminal)

لماذا تختار SerialTool

SerialTool هو أفضل برنامج للمنفذ التسلسلي لأنه يدمج في حل واحد المحطة الكلاسيكية منخفضة المستوى ومحاكاة VT-100 الكاملة، جنباً إلى جنب مع أدوات التسجيل والتحليل المتقدمة.

  • فتح منافذ تسلسلية متعددة في وقت واحد.
  • التبديل الفوري من عرض بايت ببايت (ASCII/HEX/BIN) إلى وضع VT-100.
  • إجراء تسجيل متقدم وتحليل لسلامة البيانات (CRC/checksum، أوقات الاستجابة).
  • استخدام تطبيق واحد على Windows و macOS و Linux للأنظمة المدمجة، والصناعة، والبنية التحتية للمؤسسات.

روابط ويكيبيديا مفيدة: منفذ تسلسلي · RS-232 · RS-485 · UART · VT-100 · ANSI escape code · Modbus