حشو البتات في CAN التقليدي
كيف يميّز المستقبل بيانات الحمولة عن بتات الحشو
داخل النطاق الخاضع للحشو، يُدرج المرسل بتًا بقيمة معاكسة بعد خمسة بتات متتالية متساوية القيمة على الناقل. يتحقق المستقبل من هذا البت ويحذفه قبل تفسير الحقول. ابدأ بتحديد حد الإطار، ثم قارن تسجيل الإشارة على الناقل بالإطار بعد فك ترميزه.
إدراج بت الحشو
يُدرج المرسل بتًا بقيمة معاكسة بعد خمسة بتات متتالية متساوية القيمة على الناقل.
تحديد الحد
يتوقف المستقبل عن تطبيق قاعدة الحشو الديناميكي بعد تسلسل CRC.
القياس عند الطرفين
قارن إطار الاختبار نفسه على المقطعين النحاسيين.
تحقق من أن التنسيق هو CAN التقليدي، وحدّد نوع الإطار ومعدل البتات الاسمي.
تحقق مما إذا كان التتابع يقع داخل النطاق الخاضع للحشو.
طابق انتقالات الإشارة الخام مع الإطار الذي يعرضه المحلل ومع أخطاء وحدة التحكم.
قائمة التحقق من تسجيل الإشارة — توسيع
| الفحص | ما يجب تأكيده | كيفية التحقق |
|---|---|---|
| البتات على الناقل | تتابع بتات بالحالة نفسها | ابدأ العد من بداية النطاق الذي تنطبق عليه القاعدة |
| حد الحقل | نهاية تسلسل CRC | حدّد الفاصل وACK وEOF |
| التمديد عبر الألياف الضوئية | موضع الرصد | حاذِ التسجيلين المأخوذين من المقطعين النحاسيين |
بعد كتابة بيانات CAN في وحدة التحكم، قد ترى على راسم الإشارة بتات أكثر مما يوحي به مجموع أطوال الحقول المنطقية للإطار. هذه البتات الإضافية ناتجة عن حشو البتات. ففي النطاق الخاضع للحشو من إطار CAN التقليدي، يُدرج المرسل بتًا بقيمة معاكسة بعد خمسة بتات متتالية بالقيمة نفسها. ويستخدم المستقبل القاعدة نفسها للتعرّف على ذلك البت وحذفه، ثم يفسّر الحقول الأصلية. تساعد هذه العملية المستقبلات على تصحيح توقيت البتات، وتفسّر لماذا قد تشغل رسائل متساوية الطول الناقل لمدد مختلفة.
حتى الإشارة ثابتة المستوى تحمل بتات
على ناقل CAN نحاسي عالي السرعة، تحوّل وحدة الإرسال والاستقبال بتات وحدة التحكم إلى حالات تفاضلية بين CAN_H وCAN_L. يمثّل البت السائد القيمة المنطقية 0، ويمثّل البت المتنحي القيمة المنطقية 1. عندما تفرض إحدى العقد الحالة السائدة، يمكنها أن تطغى على الحالات المتنحية التي ترسلها العقد الأخرى. وحتى عندما تظل الحالة الكهربائية ثابتة، تحدّد وحدة التحكم المستقبِلة قيمة البت عند نقطة أخذ العينة في كل فترة بت. وقد يحتوي المقطع المستوي في الحالة السائدة على عدة أصفار، يشغل كل منها فترة بت واحدة.
لكل عقدة مذبذبها الخاص. يمكن ضبط مدة البت الاسمية على القيمة نفسها في جميع العقد، لكن تبقى فروق طفيفة في التطبيق العملي. يضبط المستقبل توقيته عند بداية الإطار ويستخدم الحواف التي تستوفي شروط المزامنة لتصحيح الطور داخل الإطار. وإذا غابت الحافة المناسبة مدة طويلة، يزداد الانحراف بين توقيت أخذ العينات لدى المستقبل وحدود البتات لدى المرسل. يولّد الحشو انتقالات داخل التتابعات الطويلة، مما يتيح فرصًا للمزامنة. وتعتمد صحة أخذ العينات أيضًا على تأخير الانتشار وإعدادات نقطة أخذ العينة وجودة الإشارة.

يعدّ المرسل البتات التي سبق إرسالها على الناقل
لنفترض تسلسلًا مبسّطًا داخل نطاق الحشو الديناميكي يبدأ فيه عدّ البتات المتتالية من الصفر. يتألف التسلسل المنطقي من خمسة أصفار يتبعها بت بقيمة واحد. بعد إرسال الصفر الخامس، يُدرج المرسل بتًا بقيمة واحد، ثم يرسل البت الأصلي الذي قيمته واحد. وهكذا يحمل الناقل خمسة أصفار، ثم بت حشو بقيمة واحد، ثم البت الأصلي بقيمة واحد. قد يقع الإدراج داخل بايت أو مباشرة بعد نهاية حقل. تتتبّع وحدة التحكم تدفقًا متصلًا من البتات وتواصل العد عبر حدود البايتات.
البت المُدرج نفسه جزء من التسلسل المرسل، وهو يبدأ تتابعًا جديدًا. لنفترض أن التسلسل الأصلي يتضمن أربعة بتات بقيمة واحد بعد الأصفار الخمسة. تشكّل هذه البتات الأربعة مع البت المُدرج خمسة بتات متتالية بقيمة واحد، فيُدرج المرسل بعدها بتًا بقيمة صفر. لذلك لا يمكن اختزال القاعدة إلى إدراج بت واحد لكل خمسة بتات أصلية. فالحقول المتجاورة والبتات المُدرجة سابقًا تؤثر في موضع الإدراج التالي.
بعد خمسة بتات متطابقة، يتوقع المستقبل أن يكون البت التالي في الحالة المعاكسة. وعندما يقرأ القيمة المتوقعة عند أخذ العينة، يتعرّف على بت الحشو ويحدّث حالة تتبّع التتابع المستلَم، من دون تمرير ذلك البت إلى مرحلة تحليل الحقول. أما البت الأصلي التالي، الذي قيمته واحد، فيُحتفظ به. وقد يظهر البتان اللذان قيمتهما واحد كمقطع مستوٍ متصل على الناقل. ويميّز المستقبل دور كل منهما استنادًا إلى موضعه وسجلّ البتات المتتالية.

أين يتوقف عدّ البتات المتتالية؟
ينطبق الحشو الديناميكي أيضًا على الحقول الخاضعة له في إطار الطلب عن بُعد في CAN التقليدي. ويمكن أن يشير رمز DLC فيه إلى طول البيانات المطلوبة، لكن الإطار لا يحتوي على حقل بيانات. عند فحص تسجيل الإشارة يدويًا، حدّد نوع الإطار قبل تحديد موضع تسلسل CRC. فإذا اعتبرت أن DLC في إطار الطلب عن بُعد يحدّد عدد بايتات البيانات التي تليه، فستنزاح جميع الحدود اللاحقة.
في إطار بيانات CAN التقليدي، يبدأ الحشو الديناميكي عند بداية الإطار ويمتد عبر حقول التحكيم والتحكم والبيانات إلى نهاية تسلسل CRC. يتتبّع المستقبل أطوال الحقول أثناء معالجة هذا النطاق. وتزيد بتات الحشو زمن الإرسال على الناقل، لكن رمز طول البيانات (DLC) يحتفظ بمعناه الأصلي. وقد يختلف الترتيب المنطقي للحقول عن التقسيمات الزمنية الفعلية الظاهرة على راسم الإشارة.
يخضع فاصل CRC وحقل ACK ونهاية الإطار لقواعدها الخاصة بعد تسلسل CRC. ولا يعود عدّ البتات وفق قاعدة الحشو الديناميكي السابقة ساريًا. فعلى سبيل المثال، تحتوي نهاية إطار CAN التقليدي على سبعة بتات متنحية متتالية. ولا يدل هذا التتابع وحده على خطأ حشو. حدّد حد الإطار وأي أعلام خطأ قبل أن تقرر في أي نطاق يقع المقطع المستوي من الإشارة.
يحسب المرسل تسلسل CRC في CAN التقليدي من البتات المنطقية دون الحشو، من بداية الإطار إلى نهاية حقل البيانات. ثم يضمّن تسلسل CRC في النطاق الخاضع للحشو أثناء الإرسال. ويحذف المستقبل بتات الحشو الديناميكي ويجري فحص CRC المقابل. وهكذا تؤدي الزيادة الناتجة عن الترميز وفحص سلامة الحقول وظيفتين مختلفتين. ويستخدم CAN FD قواعد مختلفة في حقل CRC الخاص به. تحقّق من تنسيق الإطار وإعدادات وحدة التحكم بالرجوع إلى المواصفة المنطبقة.
قد تستغرق البيانات المتساوية الطول مددًا مختلفة على الناقل
ميّز بين زمن إرسال الإطار وزمن انتظار الرسالة قبل إرسالها. يؤثر الحشو في مدة شغل الإطار نفسه للناقل. أما تأخير التحكيم فيعتمد على ما ترسله العقد الأخرى في ذلك الوقت. بالنسبة إلى الرسائل الدورية، سجّل الفاصل بين بتَّي بداية إطارين متتاليين بصورة منفصلة عن المدة بين بداية إطار واحد ونهايته. وتشير التغيّرات في هذين القياسين إلى أسباب مختلفة.
لنفترض أن إطارَي بيانات في CAN التقليدي أُرسلا بنجاح ويحتويان على العدد نفسه من بايتات البيانات. قد تختلف معرّفات الإطارين أو أنماط بياناتهما. قد يحتوي أحدهما على تتابعات طويلة متكررة، بينما تتناوب الأصفار والآحاد كثيرًا في الآخر. وقد يحتاج الإطار الأول إلى مزيد من بتات الحشو، كما تؤثر القيم الفعلية في تسلسل CRC في عددها. وعند معدل البتات الاسمي نفسه، يضيف كل بت حشو فترة بت واحدة. ولتقدير حمل الناقل، استخدم طول الإطار كما قِيس على الناقل، أو تقديرًا محافظًا لهذا الطول.
يعرض محلل البروتوكول عادةً المعرّف ورمز DLC والبيانات المستعادة في العرض المفكوك الترميز. وللتحقق من مدة شغل الناقل، حدّد أين يبدأ القياس وأين ينتهي. فزمن إرسال الإطار، وزمن الانتظار منذ إدراج الرسالة في قائمة الانتظار حتى الفوز بالتحكيم، وزمن إعادة الإرسال بعد خطأ، كلها مقاييس مختلفة. ويساعد توثيق حدود القياس على التمييز بين زيادة طول الإطار والتأخير الناتج عن التنافس على الناقل.
حدّد النطاق الذي يظهر فيه خطأ الحشو
داخل حقل خاضع للحشو الديناميكي، يبلّغ المستقبل عن خطأ حشو إذا قرأ عند أخذ العينة بتًا سادسًا متتاليًا بالقيمة نفسها في موضع يُفترض أن يظهر فيه بت بالقيمة المعاكسة. وقد ينتج مقطع مستوٍ طويل من سلوك غير طبيعي عند طرف الإرسال، أو من إعدادات نقطة أخذ العينة المحلية أو معدل البتات أو تشوّه الإشارة. وإذا أرسلت عقدة في حالة الخطأ النشط علم خطأ نشطًا، فقد ترصد العقد الأخرى بعد ذلك تتابعًا طويلًا من البتات السائدة يخالف القاعدة. لذلك قد يكون خطأ الحشو الظاهر في أحد السجلات نتيجةً لخطأ أسبق.
سجّل أنواع الأخطاء وأول حدث وأي شكل موجي متاح. يشير خطأ CRC إلى عدم تطابق نتيجة حساب المستقبل مع تسلسل CRC المستلَم. ويتعلق خطأ الشكل بحقل له تنسيق محدد. أما خطأ ACK فيعني أن المرسل لم يرصد إقرار الاستلام السائد المتوقع في خانة ACK. وقد تتعاقب هذه الأخطاء في الحادثة نفسها. ويساعد ترتيب الأحداث زمنيًا وفحص الحقل المتأثر على تضييق نطاق التحقيق.

تحقّق من كل مقطع نحاسي ومن دور كل جهاز عند تمديد CAN عبر الألياف الضوئية
تذكر وثائق منتج FCTELE الخاص بمودم CAN للألياف الضوئية ذي القنوات الثماني والمُثبَّت على سكة DIN أنه يعمل مكرّرًا من CAN إلى الألياف الضوئية ويعمل بنمط نقطة إلى نقطة. في الاختبار الهندسي، حدّد مقاطع CAN النحاسية والألياف الضوئية والأجهزة الطرفية كنقاط رصد منفصلة. تحقّق من تنسيق الإطار ومعدل البتات وإنهاء الناقل والتوصيلات بالرجوع إلى وثائق الأجهزة المستخدمة فعليًا. ثم استخدم رسالة معروفة في إعداد اختبار معزول للتحقق من الاستقبال عند كل طرف. توضّح الأشكال نقاط الرصد. ارجع إلى وثائق الطراز المعني لمعرفة كيفية نقله الإشارات عبر الألياف الضوئية.
إذا ظلّت الإشارة والإطارات المفكوكة الترميز مستقرة على المقطع النحاسي عند طرف الإرسال، لكن ظهرت أخطاء متقطعة قرب المستقبل، فقارن حالة الإشارة والطوابع الزمنية عند الطرف الآخر. تحقّق مما إذا كان العطل يرتبط بكابل أو جهاز طرفي أو حمل معيّن. وثّق دورية الرسالة وسائر الظروف بحيث يمكن تتبّعها، وغيّر متغيرًا واحدًا في كل مرة. ينبغي أن يوضّح السجل النهائي ما إذا كانت الحقول قد استُعيدت بشكل صحيح، وما إذا تكررت الأخطاء، وما إذا استؤنفت حركة بيانات التطبيق الفعلية بعد تغيير المسار. وبهذا يمكن التمييز بين الزيادة المعتادة الناتجة عن الحشو وأعطال الإرسال الفعلية.
المصادر والنطاق
Bosch: اكتشاف الأخطاء في CAN وCAN FD · Microchip: حشو البتات وتنسيق الإطارات في CAN · وحدة FCTEL للألياف الضوئية لناقل CAN، بثماني قنوات وتثبيت على سكة DIN (بالصينية)
مترجم عن المقال التقني الصيني: اقرأ المقال الصيني الأصلي.
أسئلة شائعة
لماذا يُدرج بت بعد خمسة بتات متساوية القيمة؟
يُحدث البت ذو القيمة المعاكسة انتقالًا في الإشارة على الناقل. ويمكن استخدام الحواف التي تستوفي شروط المزامنة لضبط توقيت البتات، مما يحدّ من مدة التتابع الخالي من الانتقالات.
هل تتسبب بتات EOF المتنحية السبعة في خطأ حشو؟
لنهاية الإطار (EOF) في CAN التقليدي صيغة ثابتة. وتقع بتاتها المتنحية السبعة خارج النطاق الخاضع لحشو البتات الديناميكي.
كيف يمكنني تتبّع خطأ حشو عبر وصلة ألياف ضوئية؟
سجّل إطار الاختبار نفسه على كلا المقطعين النحاسيين، وتحقّق من معدل البتات وأخذ العينات وإنهاء الناقل، وطابق الطوابع الزمنية لأخطاء وحدة التحكم، وتحقّق من كيفية تمرير وحدات الألياف الضوئية لحركة البيانات.
قراءات إضافية
تمديد ناقل CAN باستخدام الألياف الضوئية · الواجهات الكهربائية والتحكيم في CAN


