در دنیای امروز تقریباً میشه گفت همه چیز الکترونیکی شده. حتی موتور خودروهایی که با سوخت فسیلی کار میکند هم دارای یک کامپیوتر و کنترل کننده هوشمند هستند. شاید به ذهن شما هم رسیده باشد که آیا میشه به کامپیوتر خودرو متصل شد و به اون دستور داد؟ خبر خوش! بله، کامپیوتر خودرو هم مثل خیلی از وسایل دیگه زبان مختص به خودش رو داره و شما از این طریق می تونید با خودروی خودتون صحبت کنید! در این مقاله قصد داریم تا ابتدا با مقدماتی درباره پروتکل های موجود در درگاه OBD-II یا همان دیاگ که در خودرو و بسیاری از ماشینهای صنعتی کاربرد دارد، آشنا شویم، سپس در ادامه به یک خودرو متصل شده و اطلاعاتی را از روی ECU آن میخوانیم.
با این آموزش همراه باشید.
OBD، مخفف عبارت On-Board Diagnostics و به منظور عیب یابی از خودرو، بدون باز کردن اجزای مختلف اون هست. OBD-II هم نسخه دوم ارائه شده این استاندارد هست که نسبت به نسخههای قبلی خودش خیلی بهبود پیدا کرده.
هشدار: در برخی از کشورها، دستکاری دیاگ و تغییر اطلاعات آن جرم بوده و پیگرد قانونی دارد. ما در این مقاله تنها اطلاعات عمومی در مورد دیاگ و خواندن اطلاعات از آن را به شما آموزش میدهیم.بهطور کلی مسئولیت هرگونه استفاده از مطالب، خسارت احتمالی و… به عهدهی خواننده میباشد.
تعریف دیاگ
دیاگ چیست و چرا اهمیت دارد؟
بر اساس تعریف وب سایت سازمان حفاظت محیط زیست: Diagnostics On-Board یا “OBD” یک سیستم مبتنی بر رایانه است که مطابق با قانون اصلاحات هوای پاک در سال 1990 در کلیه وسایل نقلیه و کامیونهای سبک از سال 1996 به بعد الزامی شده است. سیستمهای OBD برای نظارت بر عملکرد برخی اجزای اصلی موتور از جمله آنهایی که مسئول کنترل آلایندگی هستند، ساخته شدهاند.
به عبارت دیگر، OBD زبان واحد کنترل موتور (ECU) است و به منظور کمک به مبارزه با تولید گازهای گلخانهای و خرابی موتور طراحی شده است.
صرفه جویی خیلی خوبه، اما دیاگ فقط برای این کار ساخته نشده و این به این معنیه که ما می تونیم به سایر ویژگیهای خودرو هم دسترسی پیدا کرده و از اون قسمت اطلاعات جمع آوری کنیم. همینطور شما با استفاده از دیاگ می تونید بفهمید که وقتی چراغ Check روشن میشه، در موتور شما چه مشکلی وجود داره.
اگه تاحالا چراغ چک ماشین تون روشن شده و شما اون رو به یک مکانیک نشون دادین و کد خطا رو برای شما گفتن، بدونید که از دستگاه دیاگ و با پروتکل های موجود در درگاه OBD-II این موضوع کشف شده.
متأسفانه، خیلی از پروتکلهای واقعی به صورت عمومی در دسترس قرار نگرفتهاند، مگه اینکه منبع باز باشند! ما سعی کردیم تا حد امکان اطلاعات کافی جمع آوری کرده و این موضوع رو برای شما شفاف سازی کنیم.
سخت افزار
هرگونه وسیله نقلیه که از سال 1996 به بعد ساخته شده باشه، طبق قانون لازمه که سیستم رایانهای OBD-II رو داشته باشه. شما میتونید از طریق اتصال داده DLC به این سیستم دسترسی پیدا کنید. DLC یک کانکتور 16 پینه، اما همه ی پین های اون توی خودرو شما استفاده نمیشه. بسته به اینکه کدوم پین ها سیم داره، میتونید به اینکه پروتکل خودروتون چیه پی ببرید.
محل کانکتور DLC در جیپ چروکی مدل 1998
معمولاً دیاگ زیر داشبورد، جایی که راننده میشینه قرار داره. توی اکثر ماشینها مثل پراید، توی جعبه فیوز هست و برای رسیدن به اون نیازی نیست پیچی باز به شه و فقط کافیه در پانل اون رو باز کنید.
واژه شناسی
قبل از اینکه وارد جزییات بشیم، لازمه تا با بعضی از اصطلاحات و کلمههای کلیدی آشنا باشیم.
موتور / واحد کنترل الکترونیکی (ECU: Engine Control Unit)
ECU میتواند تنها به یک ماژول یا مجموعهای از ماژولها متصل شود. این مجموعه، مغز وسیله نقلیه شماست. این ماژولها کارکرد بسیاری از قسمتهای خودرو را مشاهده و کنترل میکنند. برخی از آنها نیز قابلیت برنامه ریزی مجدد را دارند. ویژگیهای قابل تنظیم در ECU میتواند به کاربر اجازه دهد تا عملکرد موتور را برای کاربرد مورد نظر خود بهینه سازی کند. همچنین سطوح مختلف مختلف اقتصادی نیز ایجاد کند. برای مثال، خودروهایی که حالت “Economic” یا “اقتصادی” دارند، با انتخاب آن حالت، تغییراتی در ECU نیز اعمال میشود. در خودروهای جدید، اکثر ماژولها معمولاً میکروکنترلری هستند.
ماژول کنترل موتور (ECM: Engine Control Module)
این کنترل کننده مربوط به موتور خودرو است و مواردی مانند زمان احتراق، نسبت هوا به سوخت، دور موتور و… را اندازه گیری و تحت تأثیر قرار میدهد.
ماژول کنترل وسیله نقلیه (VCM: Vehicle Control Module)
نام دیگر همان ماژول کنترل موتور میباشد.
ماژول کنترل انتقال (TCM: Transmission Control Module)
این ماژول گیربکس را تحت تأثیر قرار میدهد. مواردی مانند دمای سیال انتقال، موقعیت دریچه گاز و سرعت چرخ.
ماژول کنترل قدرت (PCM: Powertrain Control Module)
این ماژول ترکیبی از ECM و TCM میباشد. در واقع این ماژول، قدرت موتور شما را کنترل میکند.
ماژول کنترل ترمز الکترونیکی (EBCM: Electronic Brake Control Module)
این ماژول دادهها را از سیستم ترمز ضد قفل (ABS) خوانده و کنترل میکند.
ماژول کنترل بدنه (BCM: Body Control Module)
این ماژول کنترل کننده ویژگیهای بدنه خودرو مانند شیشه بالابر برقی، صندلیهای برقی و… میباشد.
کد عیب یابی تشخیصی (DTC: Diagnostic Trouble Code)
در سیستم OBD-II از این کدها توسط استاندارد SAE تعریف و برای توصیف محل وقوع مشکل در وسیله نقلیه استفاده میشوند. برای دریافت لیست کاملی از این کدها، میبایست به سایت اصلی هزینهای پرداخت کنید و سپس آنها را دانلود کنید. اما برخی از آنها نیز در اینترنت موجود هستند. این کدها میتوانند عمومی یا منحصر به فرد برای سازنده خودرو باشند.
کدهای خطا در دیاگ معمولاً از قالب زیر استفاده میکنند:
XXXXX
اولین عدد نوع خطا را مشخص میکند:
- Pxxxx برای پیشرانه
- Bxxxx برای بدنه
- Cxxxx برای شاسی
- Uxxxx برای شبکه کلاس 2
رقم دوم نشان میدهد که کد منحصر به فرد تولید کننده است یا خیر:
- x0xxx جزء کدهای دولتی میباشد
- x1xxx کد خاص تولید کننده میباشد
سه رقم انتهایی، بسته به نوع خطا (عدد اول) متفاوت هستند. برای مثال برای پیشرانه (کد خطای شروع شده با P) به شکل زیر می باشد:
رقم سوم به ما نشان میدهد که کد به مشکل در کدام سیستم اشاره دارد:
- xx1xx / xx2xx اندازه گیری های هوا و سوخت
- xx3xx سیستم احتراق
- xx4xx سیستمهای مربوط به کنترل آلایندگی
- xx5xx کنترل سرعت/بیکاری
- xx6xx با سیستم های رایانه ای سرو کار دارد
- xx7xx / xx8xx سیستم انتقال
- xx9xx مشاهده و کنترل سیگنالهای ورودی و خروجی
رقم چهار و پنج کد مشکل یا شکست خاصی را نشان میدهد.
- xxx00 تا xxx99 – این کدها مربوط به قسمتی هستند که در رقم سوم کد خطا تعریف شدهاند.
این موضوع را بطورخلاصه میتوانید در تصویر زیر مشاهده کنید:
شناسه های پارامتر تشخیصی (PID)
کدهایی هستند که برای درخواست داده از وسیله نقلیه استفاده می شوند و به عنوان یک ابزار تشخیصی مورد استفاده قرار می گیرند. اطلاعات به درد بخوری که میتوانید از سیستم OBD-II خارج کنید اینجاست! PIDها شبیه به رقم سوم در DTCها هستند و تعاریف مختلفی برای پارامترهای مختلف دارند.
همه PIDها در همه پروتکلها پشتیبانی نمیشوند و میتوان چندین PID اختصاصی و منحصر به فرد برای هر تولید کننده در نظر گرفت. متأسفانه در این مورد اطلاعات زیادی منتشر نشده است. بنابراین ممکن است شما نیاز به انجام راهکارهایی مثل شکار، شنود و یا مهندسی معکوس داشته باشید تا مشخص کنید که هر PID به کدام سیستم مربوط میشود.
برای کسب اطلاعات بیشتر در این مورد، میتونید به صفحه ویکیپدیای PID مراجعه کنید.
لامپ نشانگر نقص – چراغ چک یا
CHECK ENGINE LIGHT (MIL: Malfunction Indicator Light/Lamp)
چراغ چک همان نور وحشتناکی است در کیلومتر نمایان میشود! معمولاً نشان دهنده مشکلی در ماشین است. تعابیر مختلفی برای آن وجود دارد، اما همه آنها نشان دهنده خطایی هستند که توسط پروتکل OBD-II پیدا شده است. در این حالت شما باید با استفاده از دستگاه دیاگ، به مشکل خودرو خود پی ببرید.
این چراغ در خودروهای مختلف اشکال مختلفی دارد.
رابط یا کانکتور DLC (DLC: The data link connector)
DLC رابط چند پایه ای است که در خودروها، کامیونها و موتورسیکلتها استفاده می شود تا از طریق آن، ابزار های اسکن با قرارداد (پروتکل) های متفاوت متصل شوند. از طریق این درگاه، میتوان به ماژول کنترل دستگاه مورد نظر دسترسی پیدا کرد تا بهصورت داخلی آن را عیب یابی کرد و یا اطلاعات را بهصورت جریانی (استریم – Stream) دریافت کرد.
پروتکلهای موجود در درگاه OBD-II
پنج پروتکل ارتباطی مختلف تحت مشخصات و درگاه OBD-II وجود دارد. مثل خیلی چیزای دیگه، تولید کنندگان تمایل دارند که ترجیحات خودشون رو داشته باشند و فکر میکنند که پروتکل اونها بهترین پروتکل دنیاست!! برای همین هم به جای یک نوع پروتکل، چند تا وجود دارد. با توجه به اینکه کانکتور 16 پین DLC در خودرو شما از کدام سیمها برای ارتباط استفاده میکند، نوع پروتکل ارتباطی خودرو شما مشخص میشود. البته در حال حاضر اکثر خودروها از CAN استفاده میکنند. در پروژه FMS Reader به همراه شماتیک، PCB و فایل برنامه از وب سایت سیسوگ، شما میتوانید از طریق پروتکل CAN به خودرو متصل شوید.
در اینجا یک بهصورت اجمالی در مورد هر یک از پروتکلها و پینهای مورد استفاده در DLC، توضیحاتی را برای شما آوردهایم.
پروتکل SAE J1850 PWM
این پروتکل اطلاعات را با سیگنال PWM(Pulse Width Modulation) ارسال میکند. سرعت انتقال اطلاعات در این روش 41.6 کیلوبیت بر ثانیه میباشد. این پروتکل معمولاً در وسایل نقلیه فورد استفاده میشود.
پروتکل SAE J1850 VPW
سیگنال اطلاعات این پروتکل، دارای عرض پالس متغیر است و با سرعت 10.4 کیلوبیت بر ثانیه اطلاعات را منتقل میکند. وسایل نقلیه GM به طور معمول از این نسخه استفاده میکنند.
پروتکل ISO 9141-2
خودروهای کرایسلر، اروپایی و آسیایی بیشتر از این پروتکل استفاده میکنند. اطلاعات در این روش با سرعت 10.4 کیلوبیت بر ثانیه انتقال مییابد و ارتباط سریال غیر همزمان است. این پروتکل از UART برای انتقال اطلاعات استفاده میکند. اما لایه فیزیکی در این انتقال متفاوت است. بنابراین، شما نمیتوانید مستقیماً (بدون استفاده از آی سی) از طریق رابط OBD-II با پورت سریال کامپیوتر به آن متصل شوید.
پروتکل ISO 14230 KWP2000
نام این پروتکل مخفف عبارت Keyword Protocol 2000 میباشد. یکی دیگر از روشهای ارتباط سریال غیر همزمان است که با سرعت 10.4 کیلوبیت بر ثانیه اطلاعات را انتقال میدهد. این پروتکل همچنین در وسایل نقلیه کرایسلر، اروپایی یا آسیایی استفاده میشود.
پروتکل ISO 15765 CAN
این پروتکل از سال 2008 به بعد در کلیه وسایل نقلیه فروخته شده در ایالات متحده اجباری شده است. با این حال، اگر از سال 2003 یا بعد از آن اتومبیل اروپایی دارید، ممکن است CAN باشد. روش ارتباطی دوسیم (two-wire) است و تا حداکثر یک مگابیت در ثانیه میتواند اطلاعات را منتقل کند.
تصویر زیر درک خوبی از پروتکل های مختلف دیاگ در رابط OBD-II به شما میدهد:
در قسمت دوم این آموزش، تلاش میکنیم تا بهوسیله رابط OBD-II به یک خودرو متصل بشیم و اطلاعاتی رو از روی اون بخونیم.
امیدوارم این آموزش برای شما مفید بوده باشه.
قسمت بعدی مقاله را در موردپروتکل K-Line از دست ندهید.
منبع :سیسوگ