مقدمة فى UDS: Unified Diagnostic Services

Oct 27, 2023 0 comments

 


 

ليه UDS؟

زي ما الإنسان محتاج دكتور علشان يشخص حالته، الـECUs اللي جوه العربية محتاجة بروتوكول تشخيص علشان نعرف إيه المشاكل اللي عندها.



الـUDS هو البروتوكول ده.

  • UDS = Unified Diagnostic Services.

  • بروتوكول تشخيص سيارات.

  • بيُستخدم عالميًا لتشخيص العربيات.

  • متعرف في المعيار ISO-14229.

  • كلمة "Unified" معناها إنه مش خاص بشركة معينة.

  • بيسمح لأي جهاز تشخيص إنه يتواصل مع أي ECU في العربية (طالما الـECU بيدعم UDS) تحت ظروف معينة وسماحيات مختلفة.



الفرق بين Communication Protocol و Diagnostic Protocol

Communication Protocol:

  • ده اللي بيخلي الـECUs تتكلم مع بعض علشان العربية تشتغل بشكل طبيعي.

  • بيُستخدم لتبادل المعلومات بين الوحدات.

Image Credit: rapidrepairautocenter.com

Diagnostic Protocol:

  • هنا ييجي دور UDS.

  • الهدف الأساسي هو التشخيص، مش التشغيل.

  • يعني نقدر نقرأ أخطاء، نعمل Reset، نعمل Flashing… إلخ.

  • وكمان بيفيد فى مراحل اختبار السيارات ومعايرة حاجات كتيرة فيها قبل خروجها من المصنع للسوق.



جوهر UDS

  • الـECU بيقدر يبلغ عن مشاكل في الميموري أو الـPeripherals أو أعطال زي Short Circuit أو Sensor Failure.

  • فيه برامج تشخيص بتشتغل بشكل دوري علشان تكتشف الأعطال.

  • الأعطال دي بتتسجل كـDTCs (Diagnostic Trouble Codes) في الميموري.

  • وإحنا كبشر بنقدر نقرأ الأكواد دي ونصلح العربية بسهولة وطبعا بيكون فيه حاجات كتيرة خاصة لكل شركة مبنية على الUDS.



 فوائد التشخيص

  • نقدر نشوف بيانات متخزنة.

  • نراقب بيانات Live (زي سرعة العربية أو قراءات Sensors).

  • نعمل Data Transfer (زي Flashing للـECU).

  • نتحكم في I/O (مثلاً نفصل Feature علشان نحدد العطل).

  • نشغل Routines معينة (Self-Calibration أو Testing).

  • نطبق Locks أمنية.



شكل الفريم (Frame Format)

 

  • Request Frame: ممكن يكون فيه Sub-function ID أو لأ.

  • Response Frame: يا إما Positive Response أو Negative Response.

     



Request Frame Format (على CAN كمثال)

  • PCI: Protocol Control Information → خاص بالـCAN مش UDS.

  • SID: Service ID → زي Diagnostic Session Control أو Routine Control.

  • Sub Function Byte → زي نوع الـSession أو نوع الـRoutine.

  • Request Data Parameters → زي الرقم التسلسلي للـECU او بيانات خاصة بالعربية او الECU اللى بتكلمها.




Positive Response

  • Response SID = SID الخاص بالطلب + 0x40.

  • بيحتوي على DID (Data Identifier).

  • البيانات المطلوبة (Payload).



Negative Response

  • بيحتوي على:

  • PCI.

  • 0x7F (Negative Response Code SID).

  • SID اللي اترفض.

  • NRC (Negative Response Code).



أمثلة على Service IDs


Diagnostic & Communication Management


  • 0x10: Diagnostic Session Control

    • Default Session (01): الجلسة الأساسية.

    • Programming Session (02): لرفع السوفت وير.

    • Extended Session (03): لفتح وظائف إضافية.

  • 0x11: ECU Reset

    • Hard Reset: زي فصل الكهرباء.

    • Soft Reset: إعادة تهيئة جزئية.

  • 0x27: Security Access

    • للتحقق الأمني قبل الخدمات الحساسة.

    • بيشتغل بنظام Seed & Key.

  • 0x3E: Tester Present

  • علشان الـECU ما يرجعش Default Session أو يدخل Sleep.

Data Transmission

  • 0x22: Read Data By Identifier → قراءة بيانات (Part Number، Software Version، Sensor Values).

  • 0x2E: Write Data By Identifier → تعديل باراميترز مرتبطة بـDID.

Stored Data Transmission

  • 0x19: Read DTC Information → قراءة أكواد الأعطال.

  • 0x14: Clear Diagnostic Information → مسح الأكواد.

Input / Output Control

  • 0x2F: IO Control By Identifier

  • نقدر نتحكم في Signals.

  • Modes: ReturnControlToECU / ResetToDefault / Freeze / Short-Term Adjustment.

Routine Control

  • 0x31: Routine Control

  • Start / Stop / Query لروتين معين.

Upload / Download

  • 0x34: Request Download → تنزيل سوفت وير جديد.

  • 0x36: Transfer Data → إرسال البيانات على Packets متعددة.

  • 0x37: Request Transfer Exit → إنهاء عملية النقل.



أمثلة على Negative Responses

  • 0x10: generalReject → رفض عام.

  • 0x11: serviceNotSupported → الخدمة مش مدعومة.

  • 0x12: subFunctionNotSupported → Subfunction مش مدعوم.

  • 0x13: incorrectMessageLengthOrInvalidFormat → طول الرسالة أو الفورمات غلط.

  • 0x14: responseTooLong → الرد أطول من المسموح.

  • 0x22: conditionsNotCorrect → الشروط مش متحققة.

  • 0x24: requestSequenceError → الترتيب غلط (زي Security Access).

  • 0x31: requestOutOfRange → القيمة برّه الرينج.

  • 0x33: securityAccessDenied → فشل في شروط الأمان.

  • 0x7E: subFunctionNotSupportedInActiveSession → Subfunction مش مدعوم في الـSession الحالي.

  • 0x7F: serviceNotSupportedInActiveSession → الخدمة مش مدعومة في الـSession الحالي.


____________________________________________________

References:

 

 

Related Posts

{{posts[0].title}}

{{posts[0].date}} {{posts[0].commentsNum}} {{messages_comments}}

{{posts[1].title}}

{{posts[1].date}} {{posts[1].commentsNum}} {{messages_comments}}

{{posts[2].title}}

{{posts[2].date}} {{posts[2].commentsNum}} {{messages_comments}}

{{posts[3].title}}

{{posts[3].date}} {{posts[3].commentsNum}} {{messages_comments}}

Search

Contact Form