بيت > رؤى الصناعة >محرك الجير
الدعم الفني

بروتوكول الاتصالات المؤازرة للحافلة التسلسلية: دليل فني كامل

تم النشر 2026-04-05

الحافلة التسلسليةمضاعفاتتمكن بروتوكولات الاتصال متعددةمضاعفاتسيتم ربطها بسلسلة ديزي والتحكم فيها من خلال خط بيانات واحد، مما يبسط بشكل كبير الأسلاك في الأنظمة الآلية المعقدة. على عكس PWM التقليديةمضاعفاتنظرًا لأنها تتطلب سلك إشارة واحدًا لكل جهاز، تستخدم أجهزة الناقل التسلسلي اتصالاً رقميًا ثنائي الاتجاه لإرسال بيانات الموقع والسرعة والتعليقات. تشرح هذه المقالة بنية الإطار القياسي وأنواع الأوامر وطرق التحقق من الأخطاء وخطوات التنفيذ العملية المستندة إلى ممارسات الصناعة المعتمدة على نطاق واسع. جميع الأمثلة مستمدة من سيناريوهات شائعة غير خاصة بالعلامة التجارية والتي تمت ملاحظتها في مشاريع الروبوتات النموذجية.

01نظرة عامة على البروتوكول الأساسي

يعمل بروتوكول سيرفو الناقل التسلسلي الأكثر شيوعًا على الاتصال التسلسلي غير المتزامن أحادي الاتجاه (UART) مع معلمات ثابتة: معدل باود 115200، و8 بتات بيانات، وبتة توقف واحدة، وبدون تكافؤ. يتبع الاتصال بنية رئيسية-تابعة حيث يرسل المتحكم الدقيق (الرئيسي) الأوامر إلى الماكينات الفردية (العبيد) باستخدام أرقام معرفات فريدة تتراوح من 1 إلى 254 (غالبًا ما يستخدم المعرف 0 للبث). يقوم كل جهاز مؤازر بإرجاع حزم الحالة لكل أمر، مما يسمح بمراقبة الموقع والحمل ودرجة الحرارة والجهد في الوقت الفعلي.

الميزة الرئيسية:يمكن لما يصل إلى 254 جهازًا مشاركة ناقل واحد، مما يقلل تعقيد الأسلاك من 254 سلكًا إلى 3 أسلاك فقط (الطاقة والأرض والإشارة).

02هيكل إطار البيانات القياسي

تتبع كل حزمة أوامر واستجابة تنسيقًا ثابتًا لضمان الاتصال الموثوق. يوضح الجدول أدناه تسلسل البايت النموذجي:

مؤشر البايت اسم الحقل الحجم (بايت) وصف
0 رأس 2 القيم الثابتة (على سبيل المثال، 0x55 0x55) تشير إلى بداية الإطار
2 بطاقة تعريف 1 معرف سيرفو الهدف (1-254) أو البث (0)
3 طول البيانات 1 عدد البايتات في حقل المعلمة/البيانات (ن)
4 تعليمات/العلم 1 نوع الأمر (انظر القسم 3) أو حالة الاستجابة
5 حدود ن البيانات الخاصة بالأوامر (الموقع، السرعة، إلخ.)
5+ن المجموع الاختباري 1 XOR أو بايت اكتشاف الأخطاء المستند إلى المجموع

مثال من العالم الحقيقي:الرأس الشائع ذو 2 بايت هو0x55 0x55. تستخدم بعض التطبيقات0xFA 0xAF. تحقق دائمًا من نمط الرأس في ورقة بيانات المؤازرة الخاصة بك.

03مجموعة الأوامر والتعليمات

تدعم ماكينات الناقل التسلسلي مجموعة تعليمات بسيطة ولكنها كاملة. فيما يلي الأوامر الأكثر استخدامًا مع قيم بايت التعليمات الخاصة بها (العشرية).

تعليمات قيمة البايت غاية المعلمات النموذجية (بايت)
بينغ 1 تحقق من وجود أجهزة في المعرف المحدد لا أحد
قراءة_البيانات 2 قراءة واحد أو أكثر من السجلات من المؤازرة عنوان البداية، الطول
WRITE_DATA 3 كتابة البيانات إلى واحد أو أكثر من السجلات العنوان، القيم
REG_WRITE 4 تسجيل أمر كتابة (يتم تنفيذه لاحقًا بواسطة أمر ACTION) العنوان، القيم
فعل 5 تنفيذ جميع أوامر الكتابة المسجلة مسبقًا لا أحد
إعادة ضبط 6 إعادة تعيين المؤازرة إلى إعدادات المصنع لا أحد
SYNC_WRITE 7 اكتب نفس البيانات إلى ماكينات متعددة في وقت واحد قائمة المعرفات والعنوان وقيم البيانات المشتركة

السيناريو الشائع:في الذراع الآلية ذات 6-DOF، يمكنك استخدامWRITE_DATAلتعيين المواضع المستهدفة لكل مفصل بالتسلسل، ثمفعللجعل جميع المفاصل تتحرك في وقت واحد، وتجنب الحركة المتشنجة.

04سجلات المعلمات (خريطة الذاكرة)

يحتفظ كل جهاز بمجموعة من السجلات التي تخزن المعلمات التشغيلية. العناوين والمعاني تتبع معيارًا معتمدًا على نطاق واسع. الوصول إلى هذه باستخدامقراءة_البياناتوWRITE_DATA.

العنوان (ست عشري) المعلمة وصول الحجم (بايت) النطاق / الوصف
0x00 رقم الموديل ر 2 معرف مؤازرة للقراءة فقط
0x02 إصدار البرامج الثابتة ر 1 رقم الإصدار
0x03 بطاقة تعريف رو 1 معرف المؤازرة (1-254، الافتراضي غالبًا 1)
0x04 معدل الباود رو 1 0=9600, 1=19200, 2=38400, 3=57600, 4=115200
0x05 وقت تأخير العودة رو 1 التأخير (ميكروثانية) قبل الاستجابة
0x06 الحد الأدنى للزاوية رو 2 الحد الأدنى للموضع (0‑4095 لـ 12 بت)
0x08 الحد الأقصى للزاوية رو 2 الحد الأقصى للموقف
0x0أ حد درجة الحرارة رو 1 عتبة إيقاف الحرارة الزائدة (درجة مئوية)
0x0B الحد الأدنى لجهد الإدخال رو 2 عتبة تحذير الجهد المنخفض (بالسيارات)
0x0د ماكس جهد الإدخال رو 2 عتبة تحذير الجهد العالي (بالسيارات)
0x0E موقف P الربح رو 2 الربح النسبي لموضع PID
0x10 الموقف الذي أكسبه رو 2 مكاسب متكاملة
0x12 كسب المركز D رو 2 مكاسب مشتقة
0x18 موقف الهدف رو 2 موضع الهدف (0‑4095)
0x1A سرعة التحرك رو 2 الحد الأقصى للسرعة (0‑1023 = 0‑100% من الحد الأقصى)
0x1C حد عزم الدوران رو 2 الحد الأقصى لعزم الدوران الناتج (0-1023)
0x1E الموقف الحالي ر 2 الوضع الحالي (ردود الفعل)
0x20 السرعة الحالية ر 2 السرعة الحالية (0‑2047، الإشارة تشير إلى الاتجاه)
0x22 التحميل الحالي ر 2 حمل عزم الدوران الحالي (0‑2047، الإشارة تشير إلى الاتجاه)
0x24 الجهد الحالي ر 2 جهد الإمداد (بالسيارات)
0x26 درجة الحرارة الحالية ر 1 درجة الحرارة الداخلية (درجة مئوية)
0x28 تعليمات مسجلة ر 1 ما إذا كان REG_WRITE معلقًا أم لا
0x29 حالة النقل ر 1 0 = توقف، 1 = يتحرك
0x2A خطأ في الأجهزة ر 1 Bitfield: التحميل الزائد، الحرارة الزائدة، إلخ.
0x2B لكمة رو 2 التعزيز الحالي أثناء بدء التشغيل

التحقق من صحة العالم الحقيقي:تظهر عناوين التسجيل هذه في أوراق البيانات من العديد من الشركات المصنعة والمكتبات مفتوحة المصدر مثل Dynamixel SDK (باستثناء أسماء العلامات التجارية). قم دائمًا بتأكيد تعيين العنوان باستخدام وثائق المؤازرة الخاصة بك.

05حساب المجموع الاختباري (اكتشاف الأخطاء)

لضمان سلامة البيانات، تنتهي كل حزمة ببايت المجموع الاختباري. الطريقة الأكثر شيوعًا هيالمجموع الاختباري XOR:

الخوارزمية:

1. ابدأ بقيمة أولية قدرها 0.

2. XOR جميع البايتات من الرأس (باستثناء المجموع الاختباري نفسه) واحدة تلو الأخرى.

3. نتيجة XOR النهائية هي المجموع الاختباري.

حساب المثاللأمر PING إلى معرف المؤازرة 5:

الحزمة بدون المجموع الاختباري:0x55 0x55 0x05 0x00 0x01

XOR كافة البايتات:

0x55 ^ 0x55 = 0x00

0x00 ^ 0x05 = 0x05

0x05 ^ 0x00 = 0x05

0x05 ^ 0x01 = 0x04

المجموع الاختباري =0x04

الحزمة الكاملة:0x55 0x55 0x05 0x00 0x01 0x04

الطريقة البديلة - مجموع المجموع الاختباري:أضف كل البايتات (باستثناء المجموع الاختباري) modulo 256، ثم خذ تكملة الاثنين (أي،المجموع الاختباري = ~(المجموع % 256) & 0xFF). تحقق من مواصفات بروتوكول سيرفو الخاص بك.

06مثال على التنفيذ خطوة بخطوة

سيناريو:تحكم في مؤازرة واحدة بمعرف = 1 للانتقال إلى الموضع 2048 (النطاق المتوسط ​​من 0‑4095) بسرعة 100 (مقياس 0‑1023).

الخطوة 1 – إنشاء حزمة WRITE_DATA:

عنوان الهدف: موضع الهدف =0x18(2 بايت)

البيانات المطلوب كتابتها:0x800(2048 عشري) =0x08 0x00(النهاية الصغيرة: البايت المنخفض أولاً)

طول البيانات = بايتات العنوان (2) + بايتات القيمة (2) = 4 بايت

بايت الحزمة:

الرأس: 0x55 0x55 المعرف: 0x01 خط البيانات: 0x04 Instr: 0x03 (WRITE_DATA) المعلمات: 0x18 (البايت المنخفض للعنوان)، 0x00 (البايت العالي للعنوان)، 0x00 (القيمة المنخفضة)، 0x08 (القيمة العالية)

الخطوة 2 - حساب المجموع الاختباري:

XOR جميع البايتات من الرأس إلى المعلمة الأخيرة:

0x55^0x55=0x00; ^0x01=0x01; ^0x04=0x05; ^0x03=0x06; ^0x18=0x1E; ^0x00=0x1E; ^0x00=0x1E; ^0x08=0x16

المجموع الاختباري =0x16

الخطوة 3 – إرسال الحزمة الكاملة:

55 55 01 04 03 18 00 00 08 16

الخطوة 4 – قراءة حزمة الاستجابة:

يقوم كل أمر كتابة عادةً بإرجاع حزمة حالة (نفس الرأس والمعرف وطول البيانات = 2 وعلامة الحالة والمجموع الاختباري). على سبيل المثال، استجابة النجاح:

55 55 01 02 00 00 01(الحالة 0x00 = النجاح، المجموع الاختباري 0x01)

07المزالق المشتركة والحلول

مشكلة السبب النموذجي حل
لا يوجد رد من السيرفر معدل الباود خاطئ أو عدم تطابق المعرف إرسال أمر PING للبحث عن المعرفات المتاحة؛ تحقق من إعداد معدل الباود (الافتراضي غالبًا 115200 أو 57600)
بيانات تالفة عشوائية المجموع الاختباري أو التوقيت غير صحيح إعادة حساب المجموع الاختباري؛ إضافة تأخير 5-10 مللي ثانية بين الأوامر
يتحرك المؤازرة بشكل متقطع أمر ACTION مفقود بعد REG_WRITE يستخدمWRITE_DATAمباشرة أو إرسالفعل(0x05) بعد كل شيءREG_WRITE
ارتفاع درجة الحرارة أثناء الاستخدام المستمر حد عزم الدوران مرتفع للغاية أو مكاسب PID شديدة تقليل تسجيل حد عزم الدوران (0x1C) وانخفاض كسب P (0x0E)
الموقف يقفز إلى أقصى الحدود لم يتم تكوين حدود الزاوية اكتب تسجيلات الحد الأدنى (0x06) والحد الأقصى (0x08) أولاً

حالة العالم الحقيقي:اكتشف أحد الهواة الذي قام ببناء روبوت سداسي الأرجل أن الماكينات تتجاهل أحيانًا أوامر الموضع. بعد إضافة تأخير قدره 5 مللي ثانية بين الحزم والتحقق من المجموع الاختباري، زادت الموثوقية من 85% إلى 99.9%.

08تقنيات متقدمة للتحكم الموثوق في أجهزة متعددة

أوامر البث (المعرف=0):إرسال أمر إلى جميع الماكينات في وقت واحد. مفيد للتوقف في حالات الطوارئ أو إعادة ضبط جميع الماكينات. مثال: البثإعادة ضبط(0x06) الحزمة ذات المعرف = 0 - تعود جميع الماكينات الموجودة على الناقل إلى إعدادات المصنع.

مزامنة الكتابة:عند التحكم في العديد من الماكينات، يتم إرسال فردWRITE_DATAتؤدي الأوامر إلى حدوث تأخيرات لأن كل مؤازرة تستجيب قبل الأمر التالي.SYNC_WRITE(0x07) يحل هذا. هيكل الحزمة:

الرأس، المعرف = 0xFE (غالبًا ما يستخدم للكتابة المتزامنة)، طول البيانات، التعليمات = 0x07

يليه: العنوان (2 بايت)، طول البيانات لكل سيرفو (1 بايت)، ثم أزواج من (معرف السيرفو، بايتات البيانات)

مثال:مزامنة الكتابة لتعيين موضع الهدف (0x18) للمؤازرة 1 (القيمة 1000) والمؤازرة 2 (القيمة 2000):

الحزمة:55 55 FE 0B 07 18 00 02 01 00 03 E8 02 00 07 D0(تم حذف المجموع الاختباري للإيجاز). يؤدي هذا إلى تحديث كلا المخدمين في عملية إرسال واحدة، مما يزيل تأخيرات الاستجابة.

التحكم في عودة الحالة:تسمح بعض الماكينات بتعطيل إرجاع الحالة لأوامر الكتابة (عبر التسجيل 0x05 أو ما شابه)، مما يقلل من حركة مرور الحافلات. قم بتمكين إرجاع الحالة فقط لتصحيح الأخطاء أو الملاحظات النقدية.

09قائمة التحقق والاختبار

للتأكد من أن تنفيذ البروتوكول الخاص بك يعمل بشكل صحيح، قم بإجراء هذه الاختبارات بالترتيب:

1. اختبار بينغ:يرسلبينغإلى معرف معروف. الاستجابة المتوقعة: حزمة الحالة بنفس المعرف وعلامة الخطأ = 0.

2. قراءة إصدار البرنامج الثابت:يرسلقراءة_البياناتلمعالجة 0x02، الطول 1. الإرجاع المتوقع: رقم الإصدار (على سبيل المثال، 0x0C للإصدار 12).

3. اكتب واقرأ مرة أخرى:اكتب قيمة في سجل قابل للكتابة (على سبيل المثال، سجل المعرف 0x03)، ثم قم بقراءتها مرة أخرى. يجب أن تتطابق القيم.

4. ردود الفعل الموقف:قم بتدوير البوق المؤازر يدويًا أثناء القراءةالموقف الحالي(0x1E) - يجب أن تتغير القيمة بسلاسة.

5. اختبار الحمل:تطبيق عزم الدوران الخارجي والقراءةالتحميل الحالي(0x22) - علامة تشير إلى الاتجاه.

6. فحص تنافس الحافلة:قم بتوصيل جهازين بمعرفات مختلفة. إرسال الأوامر بالتناوب؛ يجب ألا يحدث أي تصادم للحزم.

الممارسة المثبتة:استخدم محللًا منطقيًا لالتقاط حركة مرور UART. قارن وحدات البايت المرسلة ببنية الحزمة المتوقعة. هذه هي أسرع طريقة لتحديد أخطاء الإطارات أو المجموع الاختباري.

10توصيات قابلة للتنفيذ للمطورين

استنادًا إلى الخبرة الميدانية مع المئات من تطبيقات أجهزة الناقل التسلسلي، اتبع هذه الإرشادات لضمان التشغيل القوي:

قم دائمًا بحساب المجاميع الاختبارية– لا تقم أبدًا بترميزها أو تخطيها. قم بتنفيذ وظيفة مخصصة تقوم XORs بالحزمة قبل إرسالها.

قم بتعيين حدود الزاوية أولاً- قبل التحكم في أي موضع، اكتب الحدود الدنيا/القصوى الآمنة (على سبيل المثال، من 200 إلى 3800 للنطاق من 0 إلى 4095) لمنع حدوث أضرار ميكانيكية.

استخدم آلة الدولة- بالنسبة للأنظمة متعددة المعززات، قم بتنفيذ قائمة انتظار أوامر مع إعادة المحاولة (3 محاولات لكل أمر) واكتشاف المهلة (على سبيل المثال، 100 مللي ثانية).

مراقبة تسجيل أخطاء الأجهزة– قراءة العنوان 0x2A بانتظام. تشير القيمة غير الصفرية إلى مشاكل في التحميل الزائد أو الحرارة الزائدة أو الجهد الكهربي. قم بإيقاف تشغيل عزم الدوران على الفور إذا تم ضبط البتة 2 (ارتفاع درجة الحرارة).

أضف مقاومة سحب- على خط الإشارة (عادةً ما يكون TX/RX مدمجًا)، أضف مقاومة 4.7 كيلو أوم إلى 3.3 فولت أو 5 فولت (مطابقة المستوى المنطقي) لمنع الحالات العائمة.

أسباب منفصلة للطاقة والإشارة- استخدم التأريض النجمي لتجنب التكرارات الأرضية التي تؤدي إلى إتلاف البيانات. يجب أن يكون لمصدر الطاقة المؤازر (عادة 5-7.4 فولت) مسار عودة منفصل عن الأرض المنطقية.

اختبار مع أجهزة واحدة أولا– التحقق دائمًا من صحة توقيت البروتوكول والمجاميع الاختبارية باستخدام جهاز واحد قبل التوسع إلى وحدات متعددة.

تم إعادة صياغة الاستنتاج الأساسي:يعتمد الاتصال المؤازر للحافلة التسلسلية على إطار منظم يحتوي على الرأس والمعرف والطول والتعليمات والمعلمات والمجموع الاختباري. إن إتقان أوامر المجموع الاختباري XOR وتسجيل الخريطة وأوامر الكتابة المتزامنة يسمح لك بالتحكم في مئات الماكينات بشكل موثوق عبر ناقل بسيط مكون من ثلاثة أسلاك. يعد تجاهل المجموع الاختباري أو قيود التوقيت هو السبب الرئيسي للفشل المتقطع.

خطوة العمل النهائية:قم بتنزيل ورقة البيانات المرجعية لنموذج المؤازرة الخاص بك. قارن عناوين التسجيل الخاصة بها بالخريطة المشتركة أعلاه. ثم اكتب نصًا اختباريًا قصيرًا (Python مع pyserial أو Arduino مع SoftwareSerial) الذي ينفذ أمر PING. بمجرد حصولك على الرد الصحيح، تكون قد أنشأت أساسًا لبروتوكول العمل. لا تنتقل إلى التحكم متعدد المؤازرة حتى يتم التحقق من المجموع الاختباري وتحليل الاستجابة باستخدام محلل منطقي.

وقت التحديث:2026-04-05

تمكين المستقبل

اتصل بمتخصص منتج Kpower للتوصية بالمحرك أو علبة التروس المناسبة لمنتجك.

البريد إلى Kpower
إرسال الاستفسار
+86 0769 8399 3238
 
kpowerMap