ليه 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 الحالي.
____________________________________________________
- UDS - Unified Diagnostic Services - ISO 14229 | Vector
- A Brief Introduction to the Diagnostic Protocol UDS - Vector Informatik GmbH WebEx Enterprise Site
- Overview of Unified Diagnostic Services Protocol (nvdungx.github.io)
- Unified Diagnostic Services - Wikipedia
- ISO 14229 – automotive wiki
- WP1903_UDS_V01.pdf (dgtech.com)
- UDS Explained - A Simple Intro (Unified Diagnostic Services) – CSS Electronics
- UDS Protocol - PiEmbSysTech