در دنیای امروز تقریباً میشه گفت همه چیز الکترونیکی شده. حتی موتور خودروهایی که با سوخت فسیلی کار میکند هم دارای یک کامپیوتر و کنترل کننده هوشمند هستند. شاید به ذهن شما هم رسیده باشد که آیا میشه به کامپیوتر خودرو متصل شد و به اون دستور داد؟ خبر خوش! بله، کامپیوتر خودرو هم مثل خیلی از وسایل دیگه زبان مختص به خودش رو داره و شما از این طریق می تونید با خودروی خودتون صحبت کنید! در این مقاله قصد داریم تا ابتدا با مقدماتی درباره پروتکل های موجود در درگاه OBD-II یا همان دیاگ که در خودرو و بسیاری از ماشینهای صنعتی کاربرد دارد، آشنا شویم، سپس در ادامه به یک خودرو متصل شده و اطلاعاتی را از روی ECU آن میخوانیم.
با این آموزش از سیسوگ همراه باشید.
OBD، مخفف عبارت On-Board Diagnostics و به منظور عیب یابی از خودرو، بدون باز کردن اجزای مختلف اون هست. OBD-II هم نسخه دوم ارائه شده این استاندارد هست که نسبت به نسخههای قبلی خودش خیلی بهبود پیدا کرده.
هشدار: در برخی از کشورها، دستکاری دیاگ و تغییر اطلاعات آن جرم بوده و پیگرد قانونی دارد. ما در این مقاله تنها اطلاعات عمومی در مورد دیاگ و خواندن اطلاعات از آن را به شما آموزش میدهیم.
بهطور کلی مسئولیت هرگونه استفاده از مطالب، خسارت احتمالی و… به عهدهی خواننده میباشد.
تعریف دیاگ
دیاگ چیست و چرا اهمیت دارد؟
Diagnostics On-Board یا “OBD” یک سیستم مبتنی بر رایانه است که مطابق با قانون اصلاحات هوای پاک در سال 1990 در کلیه وسایل نقلیه و کامیونهای سبک از سال 1996 به بعد الزامی شده است. سیستمهای OBD برای نظارت بر عملکرد برخی اجزای اصلی موتور از جمله آنهایی که مسئول کنترل آلایندگی هستند، ساخته شدهاند.
صرفه جویی خیلی خوبه، اما دیاگ فقط برای این کار ساخته نشده و این به این معنیه که ما می تونیم به سایر ویژگیهای خودرو هم دسترسی پیدا کرده و از اون قسمت اطلاعات جمع آوری کنیم. همینطور شما با استفاده از دیاگ می تونید بفهمید که وقتی چراغ 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 از دست ندهید.
سلام …پروتکلiso9142وiso14230شبیه هم معرفی شده اختلاف آنها در چیست ؟ ممنونم از توضیحات شما
سلام.. نقشه مدارات النود نشان میدهد که از پروتکل iso 9141-2 استفاده شده دیاگ بلوتوثی elm327 mini و نرم افزار torque این پیغام میدهد
the ecu is reporting that it does not support the reading of any pids
و پیغام میدهد که خودرو شما یا سازگار با obd2 نیست یا دسترسی خواندن دیتا از طریق دیاگ obd2 فراهم نشده.
ممنون میشوم نظر خود را بفرمائید.
سلام. صرفا پروتکل ارتباطی مهم نیست. باید دیتا های دریافتی و ارسالی متناسب باشه. اکثر خودروهای ایرانی از پروتکل استاندارد OBD پشتیبانی نمیکنند و برای همین شما یا نمیتونید هیچ پارامتری از ماشین باهاش بخونید یا تعداد کمی رو میتونید بخونید. برای اینکه بتونید اطلاعات کامل تری از خودرو دریافت کنید باید از اپلیکیشن های ایرانی استفاده کنید که رایگان هم نیستند.
سلام ، ازآمازون JDIag906S خریدم روی پژو 207 اتوماتیک مدل قدیم ارورنات کنک میده راهی داره بتونم باتعویض جای سیم های OBD2 راشن بندازم ؟
سلام ، ازآمازون JDIag906S خریدم روی پژو 207 اتوماتیک مدل قدیم ارورنات کنک میده راهی داره بتونم باتعویض جای سیم های OBD2 راشن بندازم ؟
سلام
سال تولید ماشین مهم هست
مشکل از سیم ها نیست
کانکتور های obdii استاندارد هست و اگر کانکتور ها به هم میخوره نباید مشکلی برای ارتباط باشه
احتمالا ecu ماشین رو نمیشناسه
سلام برای ماشین سنگین که obd2 دارن میشه از pgn های g1939 استفاده کرد؟
سلام، ممنون از اطلاعات مفید و بارزشتون
پژو آردی مدل 84 دارای ECU ساژم فرانسوی هست و درگاه OBD2 نداره ولی از پروتکل ISO9141 استفاده می کنه،
ممنون میشم اگه توضیح مختصری برای افزودن درگاه OBD2 به این خودرو ها هم بدید.
سلام دوست عزیز
در واقع استاندارد obd2 مجموعه ای از پروتکل های ارتباطی است که یکی از این پروتکل های این مجموعه همان iso9141 است،
برای اضافه کردن درگاه obd2 تنها نیاز است سیم های پروتکل iso9141 را در جای درست سوکت قرار دهید به همین سادگی
البته اتصال زمین و vcc رو فراموش نکنید.
ممنون به خاطر مطالب خوبتون
فدای شما ?
سلام خسته نباشید، دستوراتی هست که بشه پارامترهای ecu رو تغییر داد، الان فقط ما نمایش دهنده داریم، من میخوام هم نمایش دهنده باش که اموزش زیاد هست، و اینکه میخوام پارامتری از ecu رو هم تغییر بدم، ممنون میشم راهنمایی کنین یا بگین چی باید سرچ کنم تا پیدا کنم
سلام کامندهایی که به ECU زده میشه غالبا در دیتاشیت خود ECU هست باید بتونید دیتاشیتش را پیدا کنید و اون کامندها را پیدا کنید
سلام
مطلب عالی بود
واسه پراید ۹۸، از چه نوع پروتکلی استفاده میشه؟ آیا از پروتکل ISO 9141-۲ استفاده میشه؟! چون رابط بلوتوثی elm327 نمیتونه ارتباط بگیره
درود بر شما.
متاسفانه هیچ استاندارد و قاعده خاصی در پراید وجود نداره و هر مدل و سری که تولید شده، هر ECU که گیرشون اومده گذاشتن روی خودرو! اون مدل رو نمیدونم چی استفاده کردن.
البته بهتر میشه گفت این که از چندین مدل استفاده شده حتی در یک سال میشه گفت 4 مدل ECU استفاده شده
سلام.با تشکر از مطالب عالی
سیم های کانکتور OBD ،مستقیما به کانکتور ایسیو ارتباط دارن؟
سلام
بله باید همین طور باشه.
عالی
با سلام
ممنونم از اطلاعات عالی و مفیدی که در اختیارمون گذاشتین.
ببخشید برای من که تیبا ۲ دارم،به نظرتون چه نوع دیاگی خوبه برای وصل شدن به موبایل می خواستم.
تشکر?
فکر میکنم همین دیاگ های elm گزینه های خوبی باشن
اطلاعاتتون فوق العاده بود…. هرچند ممکنه هیچوقت به کار من نیان ولی به عنوان یک شخص فنی ازشون لذت بردم….
فقط یه سوال دارم که در واقع دنبال جوابش بودم که پیجتونو دیدم… دنبال یک دیاگ بلوتوثی ارزون میگشتم که مناسب برای سمند سورن مالتی پلکس با موتور EF7 زیمنس باشه…
سپاسگزار میشم راهنمایی کنین
درود بر شما.
دیاگ ELM327 (بلوتوثی یا سیمی) احتمال زیاد با اکثر خودرو ها کار میکنه و قیمت مناسبی هم داره.
سلام با سمند مولتی کار نمیکنه
درود. عجب…
سمند مولتی پروتکل من درآوردی ایران برای یک خودرو مولتی پلکس هست یادتون باشه elm و عیب یاب های یونیورسال اختراعات شخمی رو قرار نیست ساپورت کنه
سلام داداش دیاگ بلوتوثی گزینه های زیادی داری برای انتخاب و یا elm که چیپ شناخته شده و معتبری هست
واقعا وبسایتتون حرف نداره گاهی من توی گیتهاب یا جا هی دیگه که خیلی معروفن یه مطلبو زیرو رو کردم.ولی واقعا به شخصه دو تا از سوال های بزرگم رو این جا جواب گرفتم .دستتون درد نکنه خسته نباشید
خیلی ممنون!
با معرفی سیسوگ به دوستانتون می تونید از ما حمایت کنید.
سلام
اطلاعات فنی خیلی خوبی در مورد دیاگ دادید خیلی ممنون. منتظر قسمت بعد هستیم
درود برشما. خواهش میکنم.
سلام
خیلی خیلی عالی و در عین حال ساده توضیح دادید.
درود برشما، ممنون.
سلام خیلی عالی بود من همیشه فکر میکردم خودرو ها فقط با can وصل میشن ممنون.
درود مهرداد عزیز، قابلی نداشت.
سلام.. عالی بود
منتظر قسمت بعد هستم
ممنون
سلام. خواهش میکنم. ما هم منتظر شما هستیم.
سلام.
مقاله بسیار جالبی بود .
منتظر قسمت دوم هستم.
سپاس.
درود بر شما. ممنون.
سلام واقعا جدای از مطلب خوبتون تصویر خیلی باحالی طراحی کردید. یاد خاطرات بازی ماشیناریوم افتادم.
ممنون، نظر لطف شماست!
سلام
ممنونم بابت مقاله ی خیلی خوب شما.
اگر در رابطه با ماژول های رابط OBD-II موجود در بازار و نحوه ی ارتباط شون با spi یا uart هم بنویسید خیلی کاربردی تر میشه.
من یه مطلب انگلیسی در این رابطه خوندم خیلی بد توضیح داده بود.
Mcp2515 و tja1050 رو میگم.
درود بر شما. با سیسوگ همراه باشید، در قسمت (یا قسمت های) بعدی اطلاعات بیشتری را در این زمینه منتشر خواهم کرد.
سلام خسته نباشید
مطلب جالبی بود منتظر قسمت های بعدیش هستیم??
ممنون از شما ?
سلام خیلی خیلی عالی و خوب توضیح دادید.
درود بر شما.
سپاسگزارم.
عالی بود
لطفا راه اندازی پروتکل K-Line خودرهای ایرانی هم آموزش بدید
درود بر شما.
K line پروتکل جدایی نیست. در واقع اگر دقت کنید k line یکی از خطوط ارتباطی در پروتکل های ISO 9141-2 و KWP2000 هست. لطفا به تصاویر این دو پروتکل در آموزش دقت کنید.
متشکرم.
سلام
ممنون از پاسختون
حرف شما درسته اما نحوه راه اندازی چطور مثلا بتونیم سرعت یا دور موتور خودروی پراید رو بخونیم با این روش
درود بر شما.
در قسمت های بعدی آموزش، در مورد k line بیشتر توضیح خواهم داد.