فك تشفير البيانات في حافلة CAN VW Polo سيدان

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

تصف المقالة طرق العثور على البيانات اللازمة في حافلة CAN للسيارة ، وأمثلة على تطبيق هذه التقنيات على فولكس فاجن بولو سيدان. تستخدم Vega MTX كمعدات للاتصال بناقل CAN. لنتحدث أكثر عن تقنيات المعلومات. تحت قطع الكثير من الصور حول هذا الموضوع ، العديد من صور متحركة ومقاطع فيديو.

بضع كلمات عن نفسك.

اسمي أليكسي فوكين ، في الوقت الحالي أعمل لدى Vega Absolutevega_absolute. المكتب المركزي في نوفوسيبيرسك ، لكني أعمل في موسكو. أحد تقنياتنا هو علم المعلومات. نصنع معدات لتتبع المركبات التجارية ومشاركة السيارات وسيارات الأجرة ، إلخ. وظيفتي هي جمع البيانات من السيارات وتحويلها إلى إعدادات لمعداتنا.

الآن إلى السيارة.

تم الاتصال بناقل CAN في مكانين: خلف لوحة أجهزة القياس (ناقل 500 Kbit / s) وخلف الراديو (100 Kbit / s). يوجد أيضًا اتصال فائض واحد - الاتصال بموصل OBDII مباشرة على الموصل (500 كيلوبت / ثانية).

من الأدوات المستخدمة: وحدة مراقبة المركبات Vega MTX مجهزة بماسحة ضوئية CAN. لتكوينه على جهاز الكمبيوتر ، برنامج Configurator 1.27.14.

يمكن العثور على مزيد من المعلومات حول الاتصال بسيارة و MTX في الفيديو في نهاية المقالة.

عند الاتصال بجميع حافلات CAN ، سنرى الصورة التالية:



في دفق البيانات هذا ، تحتاج إلى العثور على وحدات البت والبايت المسؤولة عن المعلمات التي نحتاجها.

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

تقنيات المعلومات هي موضوع لمقال منفصل ، لذلك لن نتحدث عن هذا بالتفصيل هنا.



يطرح السؤال على الفور - لماذا أحتاج إلى البحث عن البيانات في دفق إذا كان بإمكاني رؤيتها من خلال ELM327 أو أجهزة التشخيص الأخرى؟

السؤال هنا هو لماذا نحتاج إلى هذه البيانات. في حالتنا ، نحتاج إلى البيانات الخاصة بالتليماتية ، ومن أجل عدم التدخل في ناقل CAN وعدم إرسال أي بيانات إليه ، فإننا نبحث عنها في الدفق. يحتوي Vega MTX على وضع خاص للعمل مع ناقل CAN - وضع "الاستماع". الوضع يتحدث عن نفسه ، المعدات تستمع فقط إلى الحافلة ولا ترسل أي شيء إليها ، وبالتالي تقليل أي تأثير على نظام السيارة العادي.

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

يجب أن يُفهم أيضًا أن جميع الأمثلة الواردة أدناه ذات صلة فقط بـ Polo Sedan Connect. في حالات أخرى ، قد لا تحتوي المعدات على أي من أجهزة الاستشعار المدرجة ، ولكن بالنسبة للماركات والموديلات الأخرى من السيارات ، ستكون البيانات في معرفات مختلفة تمامًا.

أود أن ألفت انتباهك إلى حقيقة أنه يتم عرض القيم افتراضيًا في Configurator في تنسيق HEX. في المستقبل ، سيتعين علينا ترجمة البيانات من تنسيق HEX إلى القيم العشرية أكثر من مرة. أسهل طريقة للقيام بذلك هي استخدام تطبيق الآلة الحاسبة المضمّن في Windows 10. نترجمها إلى وضع "المبرمج" ولدينا خيار في أي نظام أرقام لإدخال البيانات ، ويتم نسخها في أنظمة أرقام أخرى.

من خلال طريقة البحث ، أقسم جميع أجهزة الاستشعار في السيارة إلى عدة أنواع:

  1. أجهزة استشعار ثنائية.
  2. تغيير أجهزة الاستشعار بسرعة.
  3. أجهزة استشعار درجة الحرارة.
  4. عدد الكيلومترات السيارة.
  5. أجهزة استشعار المستوى.
  6. أجهزة استشعار الإشارة
  7. أجهزة الاستشعار مع الطلبات.

الآن دعنا ننتقل إلى الطرق التي يمكنك من خلالها العثور على كل نوع من أجهزة الاستشعار.

1. أجهزة الاستشعار الثنائية


لنبدأ بأبسط أجهزة الاستشعار الثنائية.

تتضمن هذه المستشعرات مستشعرات الباب ، وأحزمة الأمان ، والفرامل (سواء كانت أضواء الفرامل قيد التشغيل) ، أو فرامل اليد ، أو الأزرار ، وما إلى ذلك. يتم وضع قيمتها في 1 بت ، أي يمكن أن تكون 0 (الباب مغلق) أو 1 (الباب مفتوح).

العثور عليها بسيط ، لكنه يتطلب رعاية. للبحث عن باب السائق ، افتح / أغلق الباب وشاهد التغييرات في ناقل CAN.

يبرز المكوّن باللون الأحمر تلك البيانات التي حدثت فيها تغييرات في الثواني القليلة الماضية.



في حالتنا ، يكون باب السائق مسؤولاً عن البتة الصفرية للبايت الأول للرسالة ذات المعرف 470.
وفي البايت نفسه توجد مستشعرات جميع الأبواب الأخرى + مستشعر الجذع.

2. تغيير أجهزة الاستشعار بسرعة


تتشابه المستشعرات المتغيرة بسرعة مع المستشعرات الثنائية ، إلا أن قيمتها تزيد عن 1 بت. يمكننا العمل على هذه المستشعرات ورؤية التغييرات على الفور في ناقل CAN.
تتضمن هذه المستشعرات معظم مستشعرات الموضع: موضع دواسة الغاز ، موضع الزجاج ، موضع ناقل الحركة الأوتوماتيكي ، موضع مفتاح الإشعال. بالإضافة إلى ذلك ، هذه هي أجهزة استشعار السرعة ، والثورات ، وأجهزة استشعار تسارع عجلة القيادة ، وتسارع دواسة الغاز ، وما إلى ذلك.

بادئ ذي بدء ، سنتعامل مع أجهزة استشعار الموضع باستخدام مثال مستشعر موضع دواسة الغاز.

للقيام بذلك ، نقوم بإيقاف تشغيل السيارة ، وتشغيل الإشعال ، ودون تشغيل المحرك ، اضغط على دواسة الغاز ونراقب التغيير في ناقل CAN.

كقاعدة ، عندما يتم تحرير دواسة الغاز ، تكون قيمة هذا المستشعر صفرًا ، وكلما ضغطت على دواسة الوقود ، تزداد إلى بعض القيمة. نرى مثل هذه المعلمة في CAN الأولى في معرف 280. البايت الخامس يتغير من 0 (يتم تحرير الدواسة) إلى FA (يتم الضغط على الدواسة "إلى الأرض").



إذا ترجمنا FA من HEX إلى DEC ، نحصل على الرقم 250. لذلك ، للحصول على ضغط دواسة الوقود في المائة (من 0 إلى 100) ، نحتاج إلى ضرب قيمتنا في 0.4.

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



بعد العمل مع دواسة الغاز ، يمكنك أن تفهم أن البيانات هنا بترتيب عكسي. هذا هو ، الجزء الأقدم في البايت الثالث (عدد البايتات من الصفر) ، والأصغر في البايت الثاني.

بعد ذلك ، تحتاج إلى نقل البيانات من HEX إلى DEC.



بعد ذلك ، نحتاج إلى تقييم الثورات الحقيقية بواسطة مقياس سرعة الدوران ، أو بواسطة أدوات التشخيص. في حالتي ، كانت الإبرة عند حوالي 1600 دورة في الدقيقة على مقياس سرعة الدوران.

بعد ذلك ، نقسم البيانات من CAN بالتنسيق العشري (6508) على سرعة المحرك من مقياس سرعة الدوران (1600) ، نحصل على 4.0675. نظرًا للخطأ في تحديد الثورات بالعين ، قم بتقريب المقسم إلى 4. بعد ذلك ، تحتاج إلى التحقق من القراءات في عدة نقاط. للقيام بذلك ، قم بتعيين سرعة المحرك بسرعات مختلفة وتحقق منها مع البيانات من ناقل CAN.

في أداة التهيئة ، يمكنك استبدال جميع المعاملات في إعدادات المستشعر ومشاهدة التغييرات في السرعة في الوقت الفعلي.

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

3. أجهزة استشعار درجة الحرارة


كان من الصعب للغاية العثور على درجة الحرارة في بولو سيدان. بادئ ذي بدء ، تم العثور على بايت ، والذي تغير ببطء إلى أعلى عندما تم تسخين السيارة. بعد ذلك ، بدأ البحث عن المعاملات الضرورية.

نقوم بتوصيل التشخيص وتحديد درجة حرارة المحرك ومقارنة قراءات ناقل CAN والبيانات من التشخيص. نحن نبني جدول المراسلات ونختار المعاملات.
نتيجة لاختيار المعاملات ، ظهرت صيغة لحساب درجة الحرارة.

XX * 0.75 - 48
حيث XX هي قيمة 1 بايت من المعرّف 288 في DEC.



وفقًا للصيغة ، يمكن حساب أن درجة حرارة لقطة الشاشة

179 * 0.75 - 48 = 86.25 درجة مئوية.

حيث 179 هو الرقم العشري B3 من البايت الأول للمعرف 288.

لكن هذه حالة صعبة ، حيث يسهل العثور على درجة الحرارة في العديد من السيارات.

نظرًا لأنه من الصعب إرسال رقم سالب في الحافلة ، يقبل المصنعون القيمة -40 درجة مئوية ، -48 درجة مئوية أو -58 درجة مئوية كقياسات 0. لذلك ، نقوم بتوصيل التشخيص ونرى ما هي درجة الحرارة الآن. أضف 40 (48 أو 58) إلى هذا ، وقم بترجمته إلى HEX. نحن نبحث عن الرقم الناتج في الدفق. نحن ننتظر تغير درجة حرارة الماكينة بدرجة واحدة والتحقق من القيمة الموجودة. إذا زادت قيمته أيضًا بمقدار 1 ، فهذا هو المستشعر الذي نحتاجه.

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

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

يمكنك استخدام طريقة أخرى للبحث عن درجة الحرارة: نجد ماديًا مستشعر درجة حرارة سائل التبريد (DTOZH) على المحرك ، وقم بإيقافه وربط المقاوم المتغير بأسلاك السيارة. بعد ذلك ، قم بتدوير المقاوم واتباع ناقل CAN وفقًا لطريقة البحث عن البيانات المتغيرة بسرعة ، يمكنك العثور على قراءات درجة حرارة المحرك.

عمليًا ، لم أستخدم هذه الطريقة ، لأن ALT كان دائمًا في الدفق ، أو طلبوا من الجهاز طلبًا.

4. عدد الكيلومترات السيارة


واحدة من أهم المعلمات للتليماتية.

تحتاج أولاً إلى تقييم الحجم الذي نبحث عنه لرقمًا. إذا كنت تأخذ 2 بايت (16 بت) من البيانات ، فإن الحد الأقصى لعدد FF FF = 65535 سيكون مناسبًا لها ، ويمكن للسيارة أن تسافر بوضوح أكثر من 65 ألفًا ، مما يعني أن السيارة يجب أن يكون لها 24 بت على الأقل. سيكون هناك بالفعل 16 مليون كيلومتر ، وهو ما يكفي للركض.

ولكن مرة أخرى ، في سيارات مختلفة بطرق مختلفة. في بولو سيدان ، يتم كتابة الأميال بالكيلومتر ، في بعض الفرنسية يتم نقلها بدقة 100 متر. ثم يمكن أن يشغل الرقم 32 بت وأكثر.

لمزيد من البحث ، يجب أن تأخذ المسافة المقطوعة من لوحة العدادات للسيارة وتحويلها إلى HEX.



في حالتنا ، إنها 5732 كم. نترجمها إلى HEX ونحصل على 16 64. بعد ذلك ، ابحث في البحث عن الخط الذي سيحدث فيه هذا المزيج. تحتاج إلى البحث عن طريق بايت واحد ، أي البحث أولاً عن 16 ، ثم في الخيارات الموجودة ، انظر ما إذا كان هناك أيضًا الرقم 64 بجانب الرقم 16. يمكن أن يكون الرقم 64 إما إلى اليسار أو إلى يمين الرقم 16. نظرًا لأن المسافة المقطوعة في هذه السيارة ليست كبير ، على الأرجح ، بجوار الرقم 64 سيكون هناك أيضًا 00. في Configurator هناك بحث مناسب (CTRL + F) ، إذا كنت تستخدم أداة أخرى ، فسيتعين عليك البحث يدويًا عن هذه البيانات.

في حالتنا ، تم العثور على المسافة المقطوعة في 520 ID



00 16 64 = 5732 كم.

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

بنفس الطريقة يتم البحث عن الأميال قبل التزود بالوقود. في هذه السيارة ، لا تنقل لوحة العدادات المسافة المقطوعة إلى محطة الوقود إلى الإطار ، لذلك يتم إجراؤها حسب الطلب.

6. أجهزة استشعار المستوى


ثاني أهم مستشعر للتليماتية هو مستشعر مستوى الوقود. يمكنك العثور عليه إما في الدفق ، وهو الأفضل ، أو حسب الطلب (أقل تفضيلاً ، ولكن في بعض السيارات لن يعمل بشكل مختلف).

تحتاج أولاً إلى العثور على قراءات مستوى الوقود في أداة التشخيص. تم العثور على مستوى الوقود الخاص بي في مجموعة العدادات (17 كتلة). في مجموعة العدادات ، تكون القراءات من مستشعر المستوى باللتر.

الآن تحتوي السيارة على 21 لترًا من الوقود.



نترجم 21 من DEC إلى HEX ونحصل على الرقم 15. من خلال البحث ، نحاول العثور عليه. يحتوي الدفق على الرقم المحدد في المعرف 320. إذا لم يتم العثور على الرقم ، فيجب محاولة البحث عن القيم واحدة أو أكثر. في بعض السيارات ، يأتي الوقود بدقة نصف لتر ، لذلك تحتاج إلى البحث عن قيمة أكبر مرتين.



بمجرد العثور على مستوى الوقود ، من الضروري صب بضعة لترات من الوقود في السيارة وإلقاء نظرة على النتيجة.

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

أيضًا ، عند البحث ، لا ينبغي أن تؤخذ البيانات ذات المعرّفات التي تزيد عن 700 في الاعتبار. هذه استعلامات تشخيصية. بعد فصل جهاز التشخيص ، ستختفي هذه البيانات. سنتعامل مع الطلبات بمزيد من التفصيل أدناه.

على سبيل المثال ، يبدو الجواب على استفسارات المعدات التشخيصية لمستوى الوقود من لوحة القيادة على هذا النحو.



أيضًا ، يمكن العثور على مستوى الوقود (بالنسبة المئوية) في استعلامات OBDII القياسية ، ولكن في مجموعة VAG لا يعرضون البيانات الصحيحة دائمًا. على سكودا رابيد وسكودا أوكتافيا مع خزان ممتلئ ، تظهر التشخيصات مستوى وقود 85 ٪.



6. أجهزة استشعار إشارة


تتشابه مستشعرات الإشارة إلى حد كبير مع المستشعرات الثنائية ، ويجب البحث عنها بنفس الطريقة. تتضمن هذه المستشعرات مجموعة متنوعة من الرموز على لوحة العدادات. على سبيل المثال ، تكون حالة رمز Check Engine في البايت الأول للمعرف 480. عند تشغيل الإشعال في هذا المستشعر 2C.



بعد البدء ، عند خروج رمز Check Engine (CE) ، سيكون هناك 00 في هذا المستشعر.



يبقى السؤال الآن ، أي البت هو المسؤول عن رمز CE. نترجم 2C إلى BIN ونحصل على الرقم 0010 1100.

بعد ذلك ، انسخ 480 ID بالكامل ، وقم بتغيير البايت الأول إلى 2C (0010 1100) وحاول إرسال هذه الحزمة إلى السيارة.

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

في حالتي ، أرسلت إلى سيارة موصولة (وهو أمر غير موصى به) ويومض رمز CE و EPC على مرتب.



ثم نرسل بدلاً من 2C (0010 1100) 08 (0000 1000). يومض مرتبة CE. لذلك ، 3 بتات مسؤولة عن هذا الرمز.



إذا قمت بإرسال 04 (0000 0100) ، يومض رمز EPC.

7. أجهزة الاستشعار مع الطلبات


لا يمكن العثور على جميع البيانات في الدفق. على سبيل المثال ، في محرك الديزل VW Transporter T4 ، لا توجد درجة حرارة المحرك في التيار. انها ليست على مرتبة. لذلك ، عليك أن تسأل السيارة عن هذه المعلمات. الأمر نفسه ينطبق على مستوى الوقود في ريو \ سولاريس.

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



واستجابة لها:



بعد ذلك ، انسخ الرقم التعريفي 714 وأوقف تشغيل أداة التشخيص وحاول إرسال طلب إلى السيارة. إذا جاءت نفس الإجابة في ID 77E كما كانت عندما تم ربط التشخيصات ، فقد تلقينا حزمة بمستوى وقود (4 بايت. HEX 15 = DEC 21) 21 لترًا.

يحتوي Vega MTX على أدوات مدمجة للعمل مع أجهزة الاستشعار ذات الاستعلامات. هناك يمكنك تكوين أن الطلبات سيتم إرسالها بعد تشغيل الإشعال في فاصل زمني معين أو في ظل ظروف معينة.

يختتم هذا بمنهجية البحث عن البيانات في ناقل CAN. إذا كان أي شخص آخر يعرف ما هي الأساليب للعثور على البيانات الضرورية في ناقل CAN أو مشاركة تجربته ، فسأستمع إليه بسرور.

قبل كتابة هذا المقال ، قمت بعمل فيديو حول هذا الموضوع. يحتوي الفيديو على مزيد من المعلومات حول الاتصال بناقل CAN بالسيارة ، والعمل مع Configurator وخادم الملفات


ارتباط بالمكون

يحتوي الخادم على إعدادات لبعض السيارات والشاحنات والآلات الزراعية. جميع الملفات مشفرة ، يمكنك رؤية أي أجهزة استشعار مرئية في علبة السيارة. عند الاتصال ، ستكون قيم المستشعر مرئية ، لكنها لن تعمل لرؤية العناوين.

يتبع.

All Articles