توصیه شده, مقاله های سیسوگ, هوش مصنوعی

آشنایی با رابط OBD2 یا دیاگ در خودرو – قسمت دوم – آشنایی با پروتکل K-Line

سیسوگ و ماشیناریوم در حال دیاگ کردن خودرو

در قسمت قبل، با مقدماتی درباره پروتکل‌های مختلف در رابط OBD-II آشنا شدیم. همچنین آموختیم که OBD2 صرفاً یک درگاه نیست، در واقع یک interface یا رابط 16 پین است که همه‌ی پین‌های آن همزمان استفاده نمی‌شود و در خودروهای مختلف با توجه به نوع پروتکل، سیم‌های مورد استفاده مشخص می‌شود. مشخصات پنج پروتکلی که تحت OBD2 بودند را نیز بررسی کردیم. حال در این مقاله قصد داریم تا با جزئیات بیشتری از پروتکل K-Line آشنا شده و نحوه برقراری ارتباط، ارسال و دریافت اطلاعات در این پروتکل را بررسی کنیم.

سامانه ECU سیسوگ

با این آموزش از سیسوگ همراه باشید.

 

هشدار: در برخی از کشورها، دست‌کاری دیاگ و تغییر اطلاعات آن جرم بوده و پیگرد قانونی دارد. ما در این مقاله تنها اطلاعات عمومی در مورد دیاگ و خواندن اطلاعات از آن را به شما آموزش می‌دهیم.

شاید برای شما مفید باشد: پروتکل Matter

هشدار: از آنجایی که قسمت‌های زیادی از این مطلب به‌صورت متن باز در دسترس عموم قرار نداشت، اطلاعات زیر از طریق منابع مختلف و تست‌های مکرر جمع آوری شده‌اند. با وجود اینکه عملکرد کدها تست شده‌اند، اما سیسوگ هیچ‌گونه مسئولیتی در قبال صحت، عملکرد و… مطالب زیر ندارد. به‌طور کلی مسئولیت هرگونه استفاده از مطالب، خسارت احتمالی و… به عهده‌ی خواننده می‌باشد.

 

CAN

در ایران، خودروهایی که مالتی پلکس شده‌اند، مثل 206 و L90 از این نوع پروتکل استفاده می‌کنند. در مورد این پروتکل، قبلاً در سیسوگ به طور مفصل توضیح داده شده است، بنابراین توصیه می‌کنم برای مطالعه این پروتکل از مقاله آشنایی و راه‌اندازی پروتکل CAN با استفاده از STM32 استفاده کنید. در این مقاله، به بررسی پروتکل ارتباطی CAN، مختصری از نحوه‌ی پیکربندی (کانفیگ) اولیه آن، فریم‌های ارسالی، نحوه اولویت بندی پیام‌ها، سیم‌کشی شبکه‌ی CAN و… به زبان ساده توضیح داده شده است. سخت افزار مورد استفاده در این آموزش STM32 است. اما توضیحات پروتکل CAN در ابتدای مقاله، ارتباطی با این موضوع ندارد و شما بر روی هر نوع میکروکنترلری که کار می‌کنید، می‌توانید این مقاله را مطالعه کنید.

پس از مطالعه اصول اولیه پروتکل CAN، مقاله آموزشی که در مورد توضیحات مربوط به حکمیت و خطاهای ارسال و دریافت در ارتباط CAN_BUS می‌باشد نیز می‌تواند به شما در درک بهتر لایه CAN کمک کند. حال با انجام پروژه عملی FMS READER شما تقریباً می‌توانید یک دیاگ اختصاصی خودتان را برای این پروتکل بسازید! با خواندن اطلاعات ECU خودرو از درگاه CAN می‌توانید به اطلاعات حیاتی خودرو مثل: وزن محور (کیلوگرم)، میزان کل مصرف سوخت (لیتر)، میزان سطح سوخت (درصد)، سرعت موتور، سرعت خودرو (مطابق با لاستیک خودرو) و… دست پیدا کنید.

 

نکته ای در مورد تراشه MCP2551 و tja1050

تراشه MCP2551 و tja1050 از معروف‌ترین تراشه‌ها برای استفاده در پروتکل CAN هستند. اما نکته‌ای که برای استفاده از این تراشه‌ها وجود دارد و شاید ندانستن آن وقت و انرژی بسیاری را از شما بگیرد، این است که این تراشه‌ها مبدل CAN BUS به UART نیستند! اگر به pinout این تراشه دقت کنید، یک طرف CAN H و CAN L است و طرف دیگر Tx و Rx. این موضوع باعث می‌شود که شما اشتباهاً فکر کنید این تراشه رابط سریال است! اما هر گردی گردو نیست! از آنجایی که لایه فیزیکی CAN BUS تفاضلی است، این تراشه‌ها ولتاژ را به جریان تبدیل می‌کنند.

تراشه MCP2551 در CAN

 

آشنایی با رابط OBD2 یا دیاگ در خودرو - قسمت دوم - آشنایی با پروتکل K-Line

منظور از Tx و Rx در واقع CAN_TX و CAN_RX بوده است. بنابراین این تراشه فقط هنگامی در مدار استفاده می‌شود که خود میکرو شما نیز از CAN پشتیبانی کند. چون این قسمت از مدار به جریان بیشتری لازم داشته، به همین خاطر آن را در داخل خود میکرو جاسازی نکرده‌اند. البته ماژول‌هایی وجود دارند که کار تبدیل CAN به UART را انجام می‌دهند، اما بهتر است از میکرویی استفاده کنید که خود دارای CAN باشد.

 

K-Line

K-Line معمولاً در اکثر خودروهای ایرانی مثل پراید مورد استفاده قرار می‌گیرد. K-Line خود پروتکل مجزایی نیست، بلکه نام یکی از خطوط ارتباطی در دو پروتکل ISO 9141-2 و ISO 14230 KWP2000 می‌باشد. ارتباط این دو سیم، بسیار شبیه به Tx و Rx در انتقال سریال غیر همزمان است، اما تفاوت‌هایی نیز در سطح ولتاژ و دیگر ویژگی‌ها با UART دارد. به پین‌ها و ویژگی‌های این دو پروتکل دقت کنید:

 

ویژگی های پروتکل ISO-14230-KWP2000

KWP2000

 

ویژگی های پروتکل ISO-9141-2

ISO 9141-2

 

در هر دو پروتکل، K-Line پین شماره 7 می‌باشد و استفاده از L-line نیز در اکثر وسایل اختیاری می‌باشد. تراشه‌هایی مثل L9637D، MC33660، MC33199، MC33290 و … به راحتی خطوط K-Line را در مدار شما به Tx و Rx تبدیل می‌کنند:

تبدیل k line به سریال

 

تبدیل k line به سریال با تراشه L9637

 

شروع ارتباط با ECU

حال که مسیر ارتباط را کامل کردیم، نوبت به نحوه برقراری ارتباط با K-LINE می‌رسد. برای برقراری ارتباط اولیه یا initialize، دو راه وجود دارد: شروع سریع و شروع کند.

 

شروع سریع

برای شروع سریع یا Fast init، شما ابتدا باید ECU را از خواب بیدار کنید و به او بگویید که با آن کار دارید! برای این کار شما می‌بایست یک سیگنال Wake up مربعی به فرم زیر روی خط Tx ارسال کنید:

initialize یا راه اندازی اولیه K line

300 میلی ثانیه سیگنال یک منطقی (High)

25 میلی ثانیه سیگنال صفر منطقی (Low)

مجدداً 25 میلی ثانیه یک منطقی (High)

 

حال، تنظیمات پورت سریال خود را به این صورت تغییر دهید:

سپس بایت های زیر را روی خط Tx ارسال کنید:

0xc1 : آدرس ECU
0xf1 : آی دی وسیله ی ما
0x81 : شروع ارتباط
0x66: چک سام

سپس منتظر پاسخ ECU به فرم زیر بمانید:

بایت سوم: 0x01 : آدرس لایه فیزیکی
بایت چهارم: 0xC1
نتیجه ارتباط است که شامل دو حالت دارد:
0x7f : شکست یا fail
0xc1: موفقیت یا response ok
بایت پنجم: 0xe9 نشانگر kb1
بایت ششم: 0x8f نشانگر kb2

 

شروع کند

نحوه ارسال دیتا در شروع کند یا Slowinit در k Line به‌صورت زیر است:

راه اندازی کند ECU در k line

به مدت 300 میلی ثانیه Tx را یک کنید.

از طریق پورت سریال (Tx) و سرعت بسیار پایین 5 بادریت، بایت 0x33 را ارسال نمایید.

بهتر است بایت 0x33 را بدون استفاده از توابع کتابخانه‌ای و به صورت دستی (صفر و یکی) را ارسال کنید، پس به شکل زیر عمل کنید:

بادریت 5، یعنی در هر ثانیه 5 بیت ارسال شود، پس هر بیت در 200 میلی ثانیه ارسال می‌شود. در ارتباط سریال، ابتدا بیت با ارزش کمتر ارسال می‌شود. همچنین در ارتباط سریال، شما یک استارت بیت، دیتا، بیت پریتی (در صورت لزوم) و یک بیت پایان ارسال می‌کنید. بنابراین:

ابتدا یک استارت بیت (Start Bit) با سطح منطقی 0 و به مدت 200 میلی ثانیه ارسال کنید.

سپس 0x33 را از کم ارزش‌ترین بیت شروع به ارسال کنید. (0x33 = 0b00110011)

در انتها یک بیت پایان (Stop Bit) با سطح منطقی 1 و به مدت 200 میلی ثانیه ارسال کنید.

حال، همانند شروع سریع، پورت سریال خود را پیکر بندی کرده و مابقی مراحل را انجام دهید. برخی خودروها از شروع سریع پشتیبانی نمی‌کنند، ولی همگی شروع کند را پشتیبانی می‌کنند. پس بهتر است همیشه از شروع کند استفاده کنید. پس از شروع اولیه، هیچ تفاوتی در دیگر مراحل وجود ندارد.

 

قالب بندی داده ها در K-Line

packet یا قالب داده‌ها برای ارسال به ECU از طریق پروتکل K-Line به شرح زیر است:

header: [0xc0+cmdlen] [destination=0x33] [source=0xf1] data: [cmd0] [cmd1] … [cmd(cmdlen-1)] checksum: [sum(header)+sum(data)]

cmd0 = service ID
cmd1 = PID

قالب دریافت داده‌ها از ECU (در صورتی که ارتباط موفقیت آمیز باشد):

header: [80+datalen] [destination=f1] [source=01] data: [40+cmd0] [cmd1] … [cmd(cmdlen-1)] [result0] [result1] … [result(datalen-cmdlen-1)] checksum: [sum(header)+sum(data)]

قالب دریافت داده ها از ECU (در صورتی که ارتباط با شکست مواجه شود) :

Received response packet on failure:
header: [80+datalen] [destination=f1] [source=01] data: [errorcode=7f] [cmd0] [Response Failure Code, see below] checksum: [sum(header)+sum(data)]

در اطلاعاتی که شامل چند بایت هستند، بایت های پر ارزش ابتدا ارسال می شوند. (دقت کنید: بایت، نه بیت!)

 

استفاده از شبیه ساز OBD2

قبل از اینکه به جان خودرو خود بیفتید و آزمایش‌هایتان را روی ECU بیچاره آن انجام دهید، بهتر است از یک شبیه ساز برای آزمایشات خود استفاده کنید تا به خودرو آسیبی نرسانید! به یاد داشته باشید آسیب زدن به ECU ممکن است برای شما خیلی گران تمام شود!! شبیه سازها در واقع یک درگاه DLC در اختیار شما قرار می‌دهند تا شما بتوانید همانند یک خودروی واقعی از طریق رابط OBD2 به آن متصل شوید. برخی از این شبیه سازها تنها برای یک پروتکل طراحی شده‌اند، در حالی که برخی دیگر توانایی شبیه سازی چند پروتکل را دارند. شبیه سازهای زیادی وجود دارد. ما سعی می‌کنیم تعدادی از آن‌ها معرفی کنیم.

 

شبیه ساز ECUsim 2000

آشنایی با رابط OBD2 یا دیاگ در خودرو - قسمت دوم - آشنایی با پروتکل K-Line

این شبیه ساز ECU توسط شرکت ScanTool طراحی و ساخته شده است.
برای شروع کار با استفاده از این شبیه ساز، باید کارهای زیر را انجام دهید:

1- یک کابل USB را به شبیه ساز و رایانه وصل کنید. درایورهای لازم را نصب کنید.

2- کابل OBD-II را به شبیه ساز وصل کنید.

3- شبیه ساز خود را از منبع تغذیه 12 ولت قطع کنید.

4- شبیه ساز را به‌وسیله کابل RS232 به پورت سریال کامپیوتر متصل کنید و در پنجره سریال تنظیمات را برروی (115200 bps, 8 bits, N, 1 stop) قرار بدهید.

5- شبیه ساز را در پروتکل مورد نظر برای آزمایش پیکربندی کنید.

6- به دستگاه ECU خود متصل شوید ( می‌توانید از OBD-II board, CAN-Bus Shield, Raspberry Pi و… هم استفاده کنید.).

حالا ما یک ECU شبیه سازی شده داریم که به کامپیوتر متصل است.
دفترچه راهنمای برنامه نویسان که همراه با این محصول است، شامل کلیه دستوراتی است که می‌توانید برای شبیه ساز استفاده کنید.
به عنوان مثال، اگر بخواهیم تعیین کنیم که شبیه ساز ما در حال حاضر برروی کدام پروتکل تنظیم شده است، از دستور SPI استفاده می‌کنیم. کافی‌ست همانند تصویر زیر، در محیط ترمینال دستور را وارد کنیم:

خواندن تنظیمات پروتکل از ECUsim 2000

این نشان می‌دهد که این شبیه ساز در حال حاضر بر روی پروتکل ISO 15765-4 یا همان CAN تنظیم شده است و با یک نوع شناسه 11 بیتی و با سرعت 500 کیلوبیت در ثانیه در حال کار است.
حالا فرض کنید می‌خواهید به دستگاه دیاگی که به وسیله رابط OBD-II به دستگاه متصل است، پیامی را ارسال کنید. در این حالت فرم دستوری به شکل زیر است:

SOMT <header>, <data>

به عنوان مثال، می‌خواهیم برای دیاگ فشار سوخت موتور 100kPa را ارسال کنیم. ما باید عبارت SOMT را به همراه شناسه پارامتر (PID) فشار سوخت که 0A است و مقدار هگز عدد 100 که 64 است، ارسال کنیم:

somt 0a, 64

ارسال پارامتر برای دیاگ

دقت داشته باشید که اگر ارتباط بین دیاگ و شبیه ساز، از طریق کابل DLC محکم نکنید، ممکن است با پیام CAN ERROR مواجه شوید.

 

شبیه ساز OBD2 نرم افزاری

سورس های زیادی در اینترنت موجود هستند که شما به وسیله آن‌ها می‌توانید OBD2 را شبیه سازی کنید. به عنوان مثال، برای شبیه سازی CAN در آردوینو، سورس پروژه ECU CAN BUS SIMULATOR در گیت هاب و شبیه ساز K-Line بر روی آردوینو نیز وجود دارد. همچنین اگر در اینترنت جستجو کنید، نمونه‌های زیاد دیگری را نیز خواهید یافت. اما هر کدام از این شبیه سازها ممکن است ایرادات خاص خود را داشته باشد و نمی‌توان روی آن‌ها به عنوان یک تقلید کننده واقعی تکیه کرد. در واقع اکثر آن‌ها به جای امولاتور (تقلیدکننده)، سمیلاتور (شبیه ساز) هستند.

در قسمت‌های بعدی این مقاله قصد داریم تا با ساخت مدارهایی واسط، از طریق میکرو کنترلر به برخی از پروتکل‌های OBD2 به‌صورت مستقیم یا غیر مستقیم متصل شویم و اطلاعاتی را از ECU خودرو بخوانیم. امیدوارم این آموزش برای شما مفید بوده باشد.

منابع

SparkFun

blog.perquin.com

انتشار مطالب با ذکر نام و آدرس وب سایت سیسوگ، بلامانع است.

شما نیز میتوانید یکی از نویسندگان سیسوگ باشید.   همکاری با سیسوگ

67 دیدگاه در “آشنایی با رابط OBD2 یا دیاگ در خودرو – قسمت دوم – آشنایی با پروتکل K-Line

  1. Avatar for محمد مهدی محمد مهدی گفت:

    سلام سیسوگیهای عزیز خدا قوت
    پروژه جدیدتون به نام سیکار رو که برای ecu خودرو های ایرانی ساختید رو دیدمو خیلی لذت بردم سنگ تموم گذاشتید. خواستم از همه کسایی که برای این پروژه متن باز زحمت کشیدن تشکر کنم و اینکه یاد این مقاله افتادم که بیشتر از ۵ ساله منتظر قسمت سومش هستم!!!! از دیجی بوی عزیز صمیمانه تشکر میکنم چون بدون این دو قسمت به هیچ وجه نمیتونستم ارتباط با ecu رو درک کنم.
    پروژه سیکار در کنار این دو پست واقعا راهگشای جعبه سیاه خودرو برای هر کسی هستش …بی صبرانه منتظر قسمت سومشم
    دیجی بوی، سیسوگ عاشقتونم ♡♡♡

  2. Avatar for حامد حامد گفت:

    سلام
    در مورد نحوه ارتباط یک اینترفیس و یا کابل obd2 با میکرو لطفا مقاله قسمت سوم را نشر دهید .
    یا درصورت امکان بفرممایید برای ارتباط ایمن بین میکرو و بخش RX,TX اینترفیس obd که میتونه مثلا آی سی l9632d باشه به لحاظ اینکه اگر گایه های میکرو فقط با 3.3 ولت کارکنه چطور باید ارتباط رو برقرار کرد آیا نیاز به همسطح کننده ولتاژ داره ؟ اگر بله از چه نوعی مناسبه این کار است که از آسیب به میکرو جلوگیری بشه ؟

    1. Avatar for Zeus ‌ Zeus ‌ گفت:

      سلام دوست عزیز
      مقاله بعدی به همین موضوع اشاره می کند. و به زودی منتشر می شود.

  3. Avatar for Amirali Amirali گفت:

    سلام جناب خسته نباشید مقاله هاتون عالیه
    من براب جشنواره خوارزمی یه طرحی در رابطه با دیاگ خودرو دارم.
    امکانش هست لطفا شماره یا ایدی بدین چنتا سوال بپرسم ازتون؟

    1. Avatar for Shadow Shadow گفت:

      سلام دوست عزیز
      سوالات مرتبط با پست های سایت را در کامنت ها بپرسید.
      سوالات دیگر را می توانید از ایدی ادمین موجود در کانال تلگرام بپرسید.

  4. Avatar for LUCIFER LUCIFER گفت:

    سلام. وقتتون بخیر
    بابت مقاله فوق العاده تون سپاسگزارم.
    من تقریبا اینترنت رو زیر و رو کردم ولی در آخر متوجه نشدم چطور باید یک مدار با آیسی mc33290/mcz33290 ببندم که بتونم به آردوینو وصلش کنم؟

  5. Avatar for یونس کبیری یونس کبیری گفت:

    سلام وقت بخیر
    مقاله ی فوق العاده نوشتید
    من چند تا سوال دارم و ازتون راه کار می خوام
    چطور می تونیم اطلاعات k-line با آردینو دریافت کنم از طریق کابل و یکسری اطلاعات و پارامتر بهش اضافه کنم و به اندروید ارسال که برنامه real dash بتونه بخونه

    1. Avatar for Sisoog Os Sisoog Os گفت:

      سلام دوست عزیز سوالات شما کلی هست و نمیشه جواب سریعی داد
      خب روش خوندن K-line با آردوینو که مشخصه و میشه به راحتی با یک سخت افزار این کار را انجام داد
      K Line
      بقیه موارد مثل ارتباط یک برد آردوینو توسط بلوتوث به گوشی و نوشتنش هم مورد فنی پیچیده ای نداره و شدنی هست

      1. Avatar for یونس کبیری یونس کبیری گفت:

        سلام
        ممنون از راهنمایی
        پارامتر های ارسالی تز دیاگ کجا میشه پیدا کرد من خیلی گستم چیزی پیدا نکردم
        امکانش هست راهنمایی بفرمایید

        1. Avatar for Zeus ‌ Zeus ‌ گفت:

          متاسفانه اطلاعات درستی از دیاگ در دسترس نیست
          و شرکت ها اطلاعاتش رو حتی نمی فروشند

  6. Avatar for امیررضا امیررضا گفت:

    سلام قسمت سوم رو چرا حذف کردید
    اگر امکانش لینکش روارسال کنیدممنون

    1. Avatar photo Digi Boy گفت:

      درود بر شما، متاسفانه قسمت سوم، بنابه دلایلی هنوز آماده نشده.

  7. Avatar for کیارش کیارش گفت:

    سلام و درود،
    اول از همه سپاس برای مطالب آموزشی بسیار و مفیدتون. یه کمکی هم نیاز دارم اگه محبت بفرمایید یکی دو نمونه از اپلیکشنهای رایگان مناسب برای امکان تغییر بعضی از پارامترهای ECU (مثل سایز لاستیک) معرفی بفرمایید. برای خودرو کیا پیکانتو با توجه تغییر سایز فاق لاستیک و برای اصلاح عملکرد کیلومترشمار و سرعت نیاز به اصلاح آن دارم. رابط سخت افزاری OBD2 را دارم و با نرم افزار تورک هم بدون مشکل به ECU متصل میشم.
    با سپاس مجدد از شما.

    1. Avatar photo Digi Boy گفت:

      درود بر شما
      متأسفانه مشکلی که وجود داره اینه که یک استاندارد واحد وجود نداره و هر خودرویی داره ساز خودش رو میزنه! حتی شما اگر پراید رو هم در نظر بگیرید، توی هر مدلش از یک نوع دیاگ متفاوت استفاده شده. اگر داخل مارکت OBD جستجو کنید، نرم افزارهای رایگان زیادی هست، اما یک سریش روی یه سری خودرو کار می‌کنه، یک سریش روی یه سری دیگه! اون رو باید خودتون هم تست کنید. با نرم افزارEOBD Facile هم جواب‌های خوبی گرفتم.

      1. Avatar for کیارش کیارش گفت:

        سلام و سپاس فراوان بابت پاسخ مفید شما.
        حقیقتا اکثر برنامه‌های مشابه که من دیدم برای عیب یابی و کدهای خطا کمک میکنند. من در واقع در جستجوی ابزاری هستم که بتوانم مثلا سایز قطر لاستیک ماشین رو ویرایش کنم. سپاسگزار می‌شوم اگر مورد مناسبی برای این منظور به نظرتون میرسه بفرمایید.
        مجددا بابت سایت خوبتون ممنون.

        1. Avatar photo Digi Boy گفت:

          خواهش می‌کنم، تجربه مشابهش رو ندارم، نرم‌افزار DashCommand رو هم تستی بکنید. این نکته رو هم مد نظر داشته باشید که خیلی از این نرم‌افزارها، نسخه پولی هم دارند که توی اون امکانات خیلی بیشتری دارید. شاید این قابلیتی که شما دنبالش هستید، توی نسخه‌های رایگان نباشه. ویژگی‌های اپلیکیشن پولی رو هم نگاهی بکنید. اگر موفق شدید، اطلاع بدید که بقیه هم استفاده کنن ?

  8. Avatar for K1 K1 گفت:

    باو خییییییییلی خفنید دمتون گرم واقعا خدا قوت. هم عالی بود هم ساده توضیح دادید بهتر از این نمیشه

    1. Avatar photo Digi Boy گفت:

      ممنونم دوست عزیز. امیدوارم براتون مفید بوده باشه.

  9. Avatar for امیر امیر گفت:

    ممنون از اطلاعات خوبی که در اختیارمون میزارید

    1. Avatar photo Digi Boy گفت:

      قابلتونو نداره ❤

  10. Avatar for علی علی گفت:

    سلام.اگر با دست زدن به دسته سیم ها ارتباط دیاگ با ECU قطع بشه .بیشتر به کدوم سیم مربوط میشه؟آیا همه سیم های پشت کانکتور به ECu رفتن؟ میخام با بیزر اهمتر تست کنم

    1. Avatar for zeus zeus گفت:

      بستگی داره که رابط دیاگ شما از چه ارتباطی استفاده میکنه !!

  11. Avatar for آرمین آرمین گفت:

    سلام. خیلی ممنون از آموزش های خوبتون. من میخوام یک میکرو stm32 رو به دیاگ وصل کنم و فقط اطلاعاتش رو بخونم نیازی به نوشتن ندارم.یک آی سی mcp2551 هم دارم.تو یکی از آموزش های همین سایت خونده بودم که با وجود ۳.۳ ولتی بودن اس تی این کار ممکنه.من از سمت نرم افزار اومدم و اطلاعات الکترونیکم خیلی خوب نیست می خواستم بدونم چه طوری ۱۶ پین دیاگ رو با دو تا سیم به CAN RX و CAN TX تبدیل می کنین?
    ممنون

    1. Avatar for Sisoog Os Sisoog Os گفت:

      سلام
      دوست عزیز درگاه OBD یا همون دیاگ شامل چندین پروتکل سخت افزاری و هر کدام در برگیرنده چندین لایه نرم افزاری هستند
      یکی از اونها CAN هستند که اکثر خودروهای ایرانی البته CAN نیستند
      پس نیاز هست سخت افزاری طراحی کنید که چند لاسه سخت افزاری را هم داشته باشه و اون موقع تازه درگیر موارد نرم افزاری خواهید شد

      1. Avatar for آرمین آرمین گفت:

        خیلی ممنون بابت توضیحاتتون. سه تا سوال دیگه هم دارم، ممنون می شم اگر جوب بدید. یکی اینکه این پروتوکل ها رو می شه نام ببرید؟ آیا طراحی گیرنده برای این پروتوکل ها از نظر شما توسط یک نفر قابل انجام است؟ و سوما در اینترنت من یک سری دستگاه دیدم به نام ELM 327 که اطلاعات دیاگ رو با بلوتوث پخش می کنه(نوع یو اس بی هم داره) به نظرتون اگر اون رو من با بلوتوث یا کابل به میکرو وصل کنم شدنیه؟
        خیلی ممنون

        1. Avatar for zeus zeus گفت:

          سلام دوست عزیز
          در مورد سوال اول باید رفرنس بدم به ویکی پدیا
          diagnostics
          در مورد سوال دوم باید بگم بله میشه ولی نیازه که اطلاعات زیادی در خصوص این رابط ها داشته باشید که بتونید پیاده سازیش کنید
          در مورد سوال سوم بله کاملا میشه من قبلا چنین کردم – elm در واقع یک میکروکنترلر pic است که برای برقرار کردن ارتباط با ecu برنامه ریزی شده و از طریق پورت سریال تبادل دیتا میکنه و داکیومنت دستوراتش توی سایت خودش هست و به سادگی میتونید باهاش ارتباط برقرار کنید.

      2. Avatar for آرمین آرمین گفت:

        یه سوال دیگه هم داشتم. این شبیه سازی که معرفی کردین رو تو هیچکدوم از فروشگاه های آنلاین ایران نمی تونم پیدا کنم. شما آیا جایی رو می شناسید که همچین چیزی بفروشه؟ من تو این سایت یه چیز شبیهش رو پیدا کردم:
        https://www.eforosh.com/arminsanat/23959/37585
        ولی شماره ای که برای تماس گذاشته همیشه خاموشه.

        1. Avatar for Sisoog Os Sisoog Os گفت:

          تماس بگیرید با شماره های شرکتی اونها انشاله که مشکل حل بشه

  12. Avatar for مهران مهران گفت:

    با سلام خدمت اقا سعید
    می خواستم بدانم ایا پیشرفتی داشته اید یا نه اگر نه چرا واگر داشته اید چی بود با تشکر

  13. Avatar for احمد احمد گفت:

    سلام
    واقعا مطالب مفیدی بود
    من شنیدم خودروهای ایرانی از استانداردها خیلی پیروی نمی‌کنند و این باعث میشه دستگاه های دیاگی که می‌سازیم روی اکثر خودروها کارایی نداشته باشه
    آیا این مطلب درست هست؟
    الان با مطالب داخل سایت چه خودروهایی رو میشه دیاگ کرد و محدودیتهای این مدار چه هستند؟

    1. Avatar for Sisoog Os Sisoog Os گفت:

      سلام دوست عزیز
      خودروهای ایرانی هم از ECU های استاندارد استفاده میکنند ولی چون تنوع اونها بالا هست شاید نیاز باشه که همه اونها ساپورت بشند
      مثلا یک خودرو پراید چندین مدل ECU داره
      خیلی از خودروهای ایرانی همون اینترفیس K line و استانداردهای اون را دارند که نیاز هست همونها اضافه بشند
      همه موارد دیگه یه جورایی برمیگرده به مباحث نرم افزاری و همین سخت افزار کفایت میکنه

  14. Avatar for سهیل سهیل گفت:

    سلام مهندس جان
    قسمت سوم هنوز آماده نشده؟؟؟

    1. Avatar for Sisoog Os Sisoog Os گفت:

      سلام نه متاسفانه دوست عزیز

  15. Avatar for javad javad گفت:

    عرض سلام خدمت شما دوست عزیز وممنون بابت مطالبتون.اگه یک ایسیو ایسی کانکت به دیاگش معیوب باشه مثلا ایسیو والئو با ایسی jci.امکانش هست که از ایسی l9637d برای کانکت شدن بهش استفاده کرد؟

    1. Avatar photo Digi Boy گفت:

      درود بر شما.
      در این زمینه اطلاعی ندارم.

  16. Avatar for جواد جواد گفت:

    سلام،
    بسیار عالی بود، دست مریزاد!
    یک سؤال: ماشین من، برلیانس ۲۳۰ هست. یکی از این دانگل های بلوتوثی
    (ELM327 V2.1 (OBD2 تهیه کردم ولی موفق نشدم با نرم افزارهای معمول OBD car scanner به ECU ماشین متصل بشم. ممنون میشم بتونم از راهنمایی تون بهره مند بشم

    1. Avatar photo Digi Boy گفت:

      سلام.
      ممنون.
      شما میتونید با استفاده از کابل OTG دانگل بلوتوث رو به گوشی اندرویدیتون متصل کنید. نرم افزار های زیادی هم برای اندروید وجود دارد که به شما کمک می کند به ECU متصل شوید.

      1. Avatar for محمد محمد گفت:

        سلام
        خود گوشی بلوتوث داره دانگل بلوتوث برای چی لازمه که با otg به گوشی وصل کنیم؟

        1. Avatar photo Digi Boy گفت:

          درود بر شما دوست عزیز!
          بله، اگر دیاگ شما بلوتوثیه که با بلوتوث باید متصلش کنید، این رو واسه دوستانی گفتم که می‌خوان ELM327 معمولی رو به گوشی متصل کنند.

  17. Avatar for سهیل مرادی سهیل مرادی گفت:

    سلام مهندس جان بابا ما منتظر قسمت سوم هستیم چی شد پس 🙂
    ممنون از زحماتتون

    1. Avatar for Sisoog Os Sisoog Os گفت:

      سلام انشاله بگذارید ببنیم از این کرونا جون سالم به در میبریم و تست ها را انجام بدیم
      حتما

      1. Avatar for سهیل سهیل گفت:

        خیلی ممنون ولی الان تو خونه ایم میتونیم کار کنیم روش
        راستی اگر خودرو خواستید برای تست بنده در خدمتم یه پیام بدید ایمیلم

        1. Avatar for Sisoog Os Sisoog Os گفت:

          ممنون از شما حتما

  18. Avatar for سعید سعید گفت:

    با عرض سلام و تشکر به خاطر مطلب مفیدتون.
    من با راهنمایی شما با استفاده از برد آردینو و آی سی L9637 تونستم با ECU پراید از شرکت زیمنس ارتباط بگیرم فقط مشکلی که هست 10 سرویسی(Service Identifier) که در https://en.wikipedia.org/wiki/OBD-II_PIDs ذکر شده برای همه ECU ها جواب نمیده و هر شرکتی میتونه برای خودش یه سری فریم اختصاصی داشته باشه که این مطالب با جزئیات در سند iso 14230-3 آمده است اما مشکی که هست در این سند فقط ساختار کلی فریم توضیح داده شده است و تحلیل داده ها که مربوط به نوع کد خطا و همچنین خواندن مقادیر سنسورهاست برای هر شرکت مخصوص خودش هست و من هر چی سرچ کردم نتونستم پیدا کنم ممنون میشم در این زمینه کمک کنید
    فریم های ارسالی:
    Start communication request(hex): 81 11 F1 81 04
    Positive Response Start ok(hex): 83 F1 11 C1 EF 8F C4
    سوال اول: همانطور که در فریم زیر میبینید کد Service Identifier برای خطا یابی 0x18 میباشد و از پاسخ متوجه میشویم 2 خطا موجود است ولی نمیتوان تحلیل کرد که خطا مربوط به کجاست؟
    Troubleshooting requset(hex): 84 11 F1 18 00 FF 00 9D
    Positive Responce Troubleshooting(hex): 88 F1 11 58 02 00 16 AC 16 12 AC 7A
    سوال دوم:در فریم زیر برای خواندن سنسورها از Service Identifier شماره 0x21 با عنوان readDataByLocalIdentifier استفاده می شود ولی داده دریافتی که را نمی توان تحلیل کرد(در داده دریافتی اطلاعاتی نظیر دمای موتور، سرعت ماشین، دور موتور، کارکرد ماشین و .. وجود دارد)
    ReadDataByLocalIdentifier request (hex): 82 11 F1 21 01 A6
    Positive Response LocalIdentifier(hex): 80 F1 11 5F 61 01 77 3D B8 60 CB 52 17 00 00 17 C3 00 00 F0 29 00 00 70 00 00 00 07 04 02 00 57 00 57 00 B0 B0 B0 B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 D9 FF 6E F7 00 00 3B 7A AC 11 02 0F 55 00 00 00 00 9A 09 00 55 01 73 04 00 94 9B 06 00 00 00 00 00 00 00 00 00 A8 A8 00 00 25 01 51

    1. Avatar for زئوس Zeus زئوس Zeus گفت:

      سلام دوست عزیز
      همونطور که متوجه شدید هر شرکتی میتونه استاندارد خودش رو داشته باشه و تنها با در دست داشتن اون استاندارد هاست که میتونید داده های دریافتی رو باز کنید.

    2. Avatar for anony anony گفت:

      بهترین راه اینه که برید یه ایکو دیاگ بگیرید دستوراتو حین ارسال انالیز کنید
      یا از این دیاگ داخلی خوبا بگیرید و انالیز کنید

      1. Avatar for احمد احمد گفت:

        سلام
        دیاگ داخلی خوب میتونید معرفی کنید؟

        1. Avatar for Sisoog Os Sisoog Os گفت:

          شرکت نگار خودرو صنعت یکی از شرکتهایی هست که فکر کنم تو این موضوع در ایران تخصص خوبی داره

    3. Avatar for مهران مهران گفت:

      با سلام می خواستم بدانم ایا .پیشرفتی داشتید تا حالا یا نه با تشکر

      1. Avatar for zeus zeus گفت:

        در حد چاپ برد و چند تا تست اولیه که جواب مثبت شد بله

    4. Avatar for مهران مهران گفت:

      با سلام اقا سعید نقل قول از شما “سوال اول: همانطور که در فریم زیر میبینید کد Service Identifier برای خطا یابی 0x18 میباشد و از پاسخ متوجه میشویم 2 خطا موجود است ولی نمیتوان تحلیل کرد که خطا مربوط به کجاست؟
      Troubleshooting requset(hex): 84 11 F1 18 00 FF 00 9D”
      من فکر نمی کنم که در پراید این کد جواب بده

    5. Avatar for اکبر اکبر گفت:

      سلام دوست عزیز من هم درباره این موضوع کارمی کنم مشکل من این استاندار هست که شما میگید این پورتکل که دارید استفاده می کنید چی هستش اگر کی لاین هستش چرا با کد 0X81 شروع میش وکلی چیز دیگه ممنون میش با هم یه ارتباط بگیریم ایمیل بنده akbarmoazmi@gmail.comیا تلفن 09334992734

  19. Avatar for امیر امیر گفت:

    سلام و عرض ادب
    بی صبرانه منتظر قسمت بعدی هستیم
    ?????????????

    1. Avatar photo Digi Boy گفت:

      خیلی ممنون از شما. ?

  20. Avatar for کیان کیان گفت:

    سلام وخدا قوت تشکر از اموزش واقعا عالی شما

    1. Avatar photo Digi Boy گفت:

      درود بر شما. پاینده باشید!

    2. Avatar for سالاری سالاری گفت:

      سلام
      از مطالعه و توقف در سایت شما بهره بردم.
      از زحمات شما بابت ارائه اطلاعات که مبتنی بر تخصص و تجربه است، صمیمانه سپاسگزارم.
      موفق و پیروز باشید.

  21. Avatar for شاهین شاهین گفت:

    سلام و عرض خسته نباشید، باید این رو بدون تعارف بگم که حقیقتا اطلاعات ناب و کم پیدایی رو قرار دادین، امیدوارم با همین قدرت ادامه بدین، مطالب مربوط به برقراری ارتباط با ecu خودرو و دریافت و پردازش داده ها بسیار کم یابن. اگر امکانش باشه بهتره در بخش هایی از این اموزش ها کلیپ هایی تهیه بشه که در این صورت ساز و کار پروژه روشن تر خواهد بود.
    در نهایت اگر یک چنل در قالب تلگرام و دیگر نرم افزارهای ارتباطی بخواد معرفی بشه، خیلی سریع تر به نتیجه میرسیم.
    با تشکر

    1. Avatar photo Digi Boy گفت:

      سلام.
      خیلی ممنون از نظرتون. باید ببینیم چی پیش میاد.
      انشاالله سعی می‌کنیم این مطلب را به جای مناسبی برسونیم.

  22. Avatar for حسین حسین گفت:

    با سلام .
    بسیار عالی بود .
    سپاس فراوان .
    منتظر قسمت بعدی هستم .

    1. Avatar photo Digi Boy گفت:

      درود بر شما.
      سپاس گزارم.

  23. Avatar for سهیل سهیل گفت:

    خیلی عالی بود فقط قسمت بعدی آموزش رو بی زحمت سریع تر بگذارید ممنون

    1. Avatar photo Digi Boy گفت:

      سپاس از شما. ما تلاشمون رو می‌کنیم، اما فکر می‌کنم قسمت بعدی با کمی تأخیر منتشر بشه، چون قراره روی خودروهای ایرانی بیازماییم تا عملی و کاربردی باشه، نه صرفاً حرف و تئوری!

  24. Avatar for فرهاد فرهاد گفت:

    سلام…خیلی ممنون
    منتظر قسمت بعد هستم که بتونم با میکرو به ecu فرمان بدم
    خدا خیرتون بده

    1. Avatar photo Digi Boy گفت:

      درود بر شما. پیروز باشید!

  25. Avatar for علی علی گفت:

    خیییلی ممنوووووووووووون عاالی بووووود. واقعا خسته نباشید و دمتونم گرم

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *