للمطورين والمكاملين · أداة مجانية

مستخرج إشارة CAN: بت البداية والطول والترتيب والمعامل

أدخلوا بايتات بيانات إطار CAN واحد وتعريف الإشارة كما يكتبه ملف DBC. اعرضوا البتات الخام والقيمة الفيزيائية وسطر ⁦SG_⁩، أو فكّوا مجموعة أسطر DBC كاملة، أو اكتبوا قيمة في البايتات. ويجري الفك في متصفحكم.

بايتات بيانات إطار واحد، والبايت 0 أولاً. المسافات اختيارية. حتى 64 بايتاً في CAN FD. العينة هي مثال EEC1 المنشور في شرح لإحدى شركات مسجلات CAN.

حمّلوا عينة

استخدموا الأرقام كما يكتبها ملف DBC أو وثيقة الصانع تماماً. القيم الأولية هي إشارة سرعة المحرك من مثال EEC1 المنشور.

في ملف DBC تُقبل الحروف اللاتينية والأرقام و_ فقط. يتحول أي رمز آخر إلى _.

بت

رقم البت في DBC من 0 إلى 511. البت 0 هو أدنى بت في البايت 0.

بت

من 1 إلى 64 بتاً.

الرقم بعد @ في سطر DBC. في Intel يأتي البايت الأدنى أولاً، وفي Motorola يأتي الأعلى أولاً.

لـ Motorola فقط. يحفظ ملف DBC البت الأعلى أهمية، وتعرض بعض المحررات البت الأدنى أهمية.

الرمز بعد رقم الترتيب في سطر DBC.

عدد الوحدات الفيزيائية لكل خطوة خام. استخدموا النقطة للكسور. لا يساوي صفراً.

تُضاف بعد المعامل، وقد تكون سالبة.

تظهر مع القيمة وتُكتب في سطر DBC.

اختياري. اتركوه فارغاً لاستخدام المدى الخام الكامل.

اختياري. تُعلَّم القيمة الواقعة خارج الحدين.

كيف تُحسب القيمة
البت k = البايت floor(k ÷ 8)، والبت k باقي القسمة على 8 Intel ‏⁦@1⁩: البداية = البت الأدنى، والبتات k وk+1 حتى k+الطول-1 Motorola ‏⁦@0⁩: البداية = البت الأعلى، والبت التالي k-1، وبعد البت 0 في بايت ننتقل إلى البت 7 في البايت التالي القيمة = الإزاحة + المعامل × الخام ⁦24|16@1⁩ على ⁦FF FF FF⁩ 68 13 ← 0x1368 = 4968 ← 4968 × 0.125 = 621 rpm
الإشارة المستخرجةمن بايتاتكم

احتفظوا بسجل لهذا التفكيك

تقرير فيه الحمولة والتعريفات والقيم وسطر DBC.

تقرير التفكيك

احفظوا البايتات والتعريف والقيمة معاً

  • الحمولة والتعريف والقيمة الخام بالعشري والسداسي والثنائي
  • سطر ⁦SG_⁩ جاهز لملف DBC
  • كل أسطر ⁦SG_⁩ في المجموعة مع قيمها وحالاتها
  • الحمولة بعد كتابة قيمتكم فيها

ماذا يقول سطر ⁦SG_⁩؟

يصف ملف DBC الرسائل على ناقل CAN. تبدأ كل رسالة بسطر ⁦BO_⁩، ولكل إشارة داخلها سطر ⁦SG_⁩. ويحمل سطر ⁦SG_⁩ كل ما تحتاجه الأداة لتحويل البتات إلى قيمة.

SG_ EngineSpeed : 24|16@1+ (0.125,0) [0|8031.875] "rpm" Vector__XXX

أجزاء سطر ⁦SG_⁩
الجزءفي المثالالمعنى
الاسمEngineSpeedاسم الإشارة. حروف لاتينية وأرقام وشرطة سفلية.
بت البداية24في Intel: البت الأدنى أهمية. وفي Motorola: البت الأعلى أهمية.
الطول16عدد البتات.
ترتيب البايتات@1الرقم 1 يعني Intel (الأدنى أولاً)، والرقم 0 يعني Motorola (الأعلى أولاً).
الإشارة++ بلا إشارة، و- بإشارة بالمتمم الثنائي.
المعامل والإزاحة(0.125,0)القيمة = الإزاحة + المعامل × الخام.
الحدان[0|8031.875]المدى الفيزيائي الصالح.
الوحدة والمستقبِل"rpm" Vector__XXXنص الوحدة والعقدة التي تقرأ الإشارة.

Intel أم Motorola؟

يحدد ترتيب البايتات أي بايت يحمل الجزء الأعلى من القيمة متعددة البايتات. يضع Intel البايت الأدنى أولاً، ويضع Motorola البايت الأعلى أولاً. وإذا قُرئت البايتات نفسها بترتيب خاطئ قد تبتعد القيمة بالآلاف.

Intel ⁦0|16@1⁩

B076543210
B115141312111098

Motorola ⁦7|16@0⁩

B076543210
B115141312111098
البايتان نفسهما ⁦12 34⁩. في Intel يكون البايت 1 هو الأعلى: ⁦0x3412⁩ = 13330. وفي Motorola يكون البايت 0 هو الأعلى: ⁦0x1234⁩ = 4660.

مثال محلول: سرعة المحرك

ينشر شرح لإحدى شركات مسجلات CAN هذا المثال لرسالة J1939 المسماة EEC1، وهو العينة المحمّلة في الأداة.

  • الحمولة FF FF FF 68 13 FF FF FF. والإشارة 24|16@1+: ترتيب Intel و16 بتاً بدءاً من البت 24.
  • البت 24 هو البت 0 في البايت 3، فتستخدم الإشارة البايتين 3 و4: 68 و13.
  • يضع Intel البايت الأدنى أولاً، فالقيمة الخام 0x1368 = 4968.
  • القيمة = 0 + 0.125 × 4968 = 621 دورة في الدقيقة.

لماذا يعرض محرري بت بداية مختلفاً؟

في إشارات Motorola عادتان. يحفظ ملف DBC البت الأعلى أهمية ليكون بت البداية. وتعرض بعض المحررات البت الأدنى أهمية لأنه أسهل في الرسم على الشبكة. وكلاهما يصف الإشارة نفسها. تقبل الأداة أياً منهما وتكتب دائماً صيغة DBC.

إشارة Motorola واحدة وطريقتان لكتابة بدايتها
الإشارةالبداية بالبت الأعلى، DBCالبداية بالبت الأدنى، بعض المحررات
12 بتاً من البايت 0712
16 بتاً من البايت 078
4 بتات في أعلى البايت 074

القيم السالبة والمعاملات

تستخدم الإشارة ذات الإشارة السالبة المتمم الثنائي على طولها هي، لا على بايت كامل. فالإشارة ذات الـ 12 بتاً التي بتها الأعلى 1 سالبة حتى لو بدا البايت المحيط بها موجباً. وبعد تحديد الإشارة يحوّل المعامل والإزاحة الرقم الخام إلى القيمة الفيزيائية.

الخام بإشارة = الخام - 2^الطول إذا كان البت الأعلى 1 القيمة = الإزاحة + المعامل × الخام ⁦0x7D⁩ × 1 - 40 = 85 ⁦0xFF⁩ بإشارة على 8 بتات = 255 - 256 = ⁦-1⁩حساب يدوي. لا تشمل الأداة الإشارات العشرية العائمة المعلّمة بـ ⁦SIG_VALTYPE_⁩ في ملف DBC.

ما الذي يسوء عادة؟

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

المصادر والحدود

  • صيغة ⁦SG_⁩ وترتيب البايتات ومثال EngineSpeed: شرح ملفات DBC (من شركة مسجلات CAN). وحمولة EEC1: مدخل J1939 (من المصدر نفسه).
  • تعريفات إشارات مركبتكم عليكم إدخالها. لا تتضمن الأداة أي تعريف غير المثال المنشور.
  • لم نتمكن من مراجعة ترتيب إشارة سرعة المحرك في EEC1 (البايتان 4 و5 بالعد من 1، و0.125 دورة/دقيقة لكل بت) في نص SAE J1939 الرسمي لأنه مدفوع. آخر مراجعة 2026-11-03. استخدموه للتدريب وخذوا التعريفات الحقيقية من صانع المركبة.
  • تُفك الإشارات متعددة الإرسال من الحمولة نفسها دون فحص قيمة المُبدِّل. ولا تشمل الأداة الإشارات العشرية العائمة.
  • كل شيء يعمل في متصفحكم. وإذا طلبتم التقرير أو ملف CSV بالبريد تُرسل مدخلاتكم، ونص DBC إذا كان قصيراً، إلى خادمنا مع الطلب وتُحفظ مدة تصل إلى 45 يوماً. ويحمل رابط المشاركة النص فقط إذا كان قصيراً.
  • لا تقول هذه الصفحة إن أي جهاز يقرأ إشارة CAN معينة. فهذا يتوقف على الطراز وإعداداته.
حل تراكوم المرتبط

اضبطوا الإشارة أولاً ثم مدخل الجهاز

تصمم تراكوم أجهزة تتبع تُضبط بملفات إعداد متقدمة وتُدار من بوابة SCMS. فكّوا الإشارة هنا، ثم اسألوا تراكوم عن مدخلات CAN التي يقرأها طراز جهازكم وطريقة ضبطها.

  • ملفات الإعداد المتقدمة تجعل إعداد المدخلات المجرَّب واحداً في كل المركبات.
  • بوابة SCMS تدير إعدادات الأجهزة في مكان واحد.
  • التحديث عبر الهواء (OTA) يوصل برمجيات جديدة إلى الأجهزة في الميدان.
  • بيانات لحظة بلحظة تسجّل سلوك المركبة بتفصيل دقيق.
أسئلة

أسئلة عن إشارات CAN وملفات DBC

تربطون إشارة من المركبة بمدخل جهاز؟ تواصلوا مع تراكوم.

ما ملف DBC؟

ملف نصي يصف الرسائل والإشارات على ناقل CAN: معرّف كل رسالة، ولكل إشارة بت البداية والطول وترتيب البايتات والإشارة والمعامل والإزاحة والحدان والوحدة.

كيف أعرف إن كانت الإشارة Intel أو Motorola؟

انظروا إلى الرقم بعد @ في سطر ⁦SG_⁩: الرقم 1 يعني Intel والرقم 0 يعني Motorola. وإذا لم يكن لديكم ملف DBC ففكّوا قيمة معروفة بالطريقتين واحتفظوا بالترتيب الذي يطابق لوحة العدادات.

لماذا يختلف بت البداية بين الأدوات؟

في إشارات Motorola يحفظ ملف DBC البت الأعلى أهمية، وتعرض بعض المحررات البت الأدنى أهمية. اختاروا الإعداد المطابق وستحوّله الأداة.

هل تقرأ الإشارات متعددة الإرسال أو العشرية العائمة؟

جزئياً. تُفك الإشارات متعددة الإرسال لكن الأداة لا تفحص قيمة المُبدِّل. ولا تشمل الإشارات العشرية العائمة.

هل تُرفع بايتاتي أو ملف DBC؟

ليس بالضرورة. تعمل الأداة في متصفحكم. وإذا طلبتم التقرير أو ملف CSV بالبريد تُرسل مدخلاتكم، ونص DBC إذا كان قصيراً، إلى خادمنا مع الطلب وتُحفظ مدة تصل إلى 45 يوماً.

هل يقرأ جهاز تراكوم هذه الإشارة؟

لا تدّعي هذه الصفحة شيئاً عن ذلك. فإشارات CAN التي يقرأها جهاز ما تتوقف على الطراز وإعداداته. تواصلوا مع تراكوم مع ذكر المركبة والرسالة والإشارة.

أدوات ونماذج ذات صلة

تابعوا التكامل مع ناقل CAN

احصلوا على التقرير

أدخلوا بياناتكم، ونرسل الملف إلى بريدكم الإلكتروني.

اكتبوا اسمكم الحقيقي ليصل الملف باسمكم. لا تقلقوا، لن نُكثر عليكم الرسائل أو الاتصالات.

Scroll to Top