در قسمت قبل، با مقدماتی درباره پروتکلهای مختلف در رابط OBD-II آشنا شدیم. همچنین آموختیم که OBD2 صرفاً یک درگاه نیست، در واقع یک interface یا رابط 16 پین است که همهی پینهای آن همزمان استفاده نمیشود و در خودروهای مختلف با توجه به نوع پروتکل، سیمهای مورد استفاده مشخص میشود. مشخصات پنج پروتکلی که تحت OBD2 بودند را نیز بررسی کردیم. حال در این مقاله قصد داریم تا با جزئیات بیشتری از پروتکل K-Line آشنا شده و نحوه برقراری ارتباط، ارسال و دریافت اطلاعات در این پروتکل را بررسی کنیم.
با این آموزش از سیسوگ همراه باشید.
هشدار: در برخی از کشورها، دستکاری دیاگ و تغییر اطلاعات آن جرم بوده و پیگرد قانونی دارد. ما در این مقاله تنها اطلاعات عمومی در مورد دیاگ و خواندن اطلاعات از آن را به شما آموزش میدهیم.
شاید برای شما مفید باشد: پروتکل 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 تفاضلی است، این تراشهها ولتاژ را به جریان تبدیل میکنند.
منظور از 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 دارد. به پینها و ویژگیهای این دو پروتکل دقت کنید:
KWP2000
ISO 9141-2
در هر دو پروتکل، K-Line پین شماره 7 میباشد و استفاده از L-line نیز در اکثر وسایل اختیاری میباشد. تراشههایی مثل L9637D، MC33660، MC33199، MC33290 و … به راحتی خطوط K-Line را در مدار شما به Tx و Rx تبدیل میکنند:
شروع ارتباط با ECU
حال که مسیر ارتباط را کامل کردیم، نوبت به نحوه برقراری ارتباط با K-LINE میرسد. برای برقراری ارتباط اولیه یا initialize، دو راه وجود دارد: شروع سریع و شروع کند.
شروع سریع
برای شروع سریع یا Fast init، شما ابتدا باید ECU را از خواب بیدار کنید و به او بگویید که با آن کار دارید! برای این کار شما میبایست یک سیگنال Wake up مربعی به فرم زیر روی خط Tx ارسال کنید:
300 میلی ثانیه سیگنال یک منطقی (High)
25 میلی ثانیه سیگنال صفر منطقی (Low)
مجدداً 25 میلی ثانیه یک منطقی (High)
حال، تنظیمات پورت سریال خود را به این صورت تغییر دهید:
1 | 10400 Baud, 8 Bit, No parity, 1 Stop |
سپس بایت های زیر را روی خط Tx ارسال کنید:
1 | {0xc1, 0x33, 0xf1, 0x81, 0x66} |
0xc1 : آدرس ECU
0xf1 : آی دی وسیله ی ما
0x81 : شروع ارتباط
0x66: چک سام
سپس منتظر پاسخ ECU به فرم زیر بمانید:
1 | {0x83, 0xf1, 0x01, 0xc1, 0xe9, 0x8f} |
بایت چهارم: 0xC1
نتیجه ارتباط است که شامل دو حالت دارد:
0x7f : شکست یا fail
0xc1: موفقیت یا response ok
بایت پنجم: 0xe9 نشانگر kb1
بایت ششم: 0x8f نشانگر kb2
شروع کند
نحوه ارسال دیتا در شروع کند یا Slowinit در k Line بهصورت زیر است:
به مدت 300 میلی ثانیه Tx را یک کنید.
از طریق پورت سریال (Tx) و سرعت بسیار پایین 5 بادریت، بایت 0x33 را ارسال نمایید.
بهتر است بایت 0x33 را بدون استفاده از توابع کتابخانهای و به صورت دستی (صفر و یکی) را ارسال کنید، پس به شکل زیر عمل کنید:
بادریت 5، یعنی در هر ثانیه 5 بیت ارسال شود، پس هر بیت در 200 میلی ثانیه ارسال میشود. در ارتباط سریال، ابتدا بیت با ارزش کمتر ارسال میشود. همچنین در ارتباط سریال، شما یک استارت بیت، دیتا، بیت پریتی (در صورت لزوم) و یک بیت پایان ارسال میکنید. بنابراین:
ابتدا یک استارت بیت (Start Bit) با سطح منطقی 0 و به مدت 200 میلی ثانیه ارسال کنید.
سپس 0x33 را از کم ارزشترین بیت شروع به ارسال کنید. (0x33 = 0b00110011)
در انتها یک بیت پایان (Stop Bit) با سطح منطقی 1 و به مدت 200 میلی ثانیه ارسال کنید.
1 2 3 4 5 6 | startbit: 200ms low databit0,1: 400ms high databit2,3: 400ms low databit4,5: 400ms high databit6,7: 400ms low stopbit+pause: 250ms high |
حال، همانند شروع سریع، پورت سریال خود را پیکر بندی کرده و مابقی مراحل را انجام دهید. برخی خودروها از شروع سریع پشتیبانی نمیکنند، ولی همگی شروع کند را پشتیبانی میکنند. پس بهتر است همیشه از شروع کند استفاده کنید. پس از شروع اولیه، هیچ تفاوتی در دیگر مراحل وجود ندارد.
قالب بندی داده ها در 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
این شبیه ساز 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 استفاده میکنیم. کافیست همانند تصویر زیر، در محیط ترمینال دستور را وارد کنیم:
این نشان میدهد که این شبیه ساز در حال حاضر بر روی پروتکل 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 خودرو بخوانیم. امیدوارم این آموزش برای شما مفید بوده باشد.
منابع
سلام جناب خسته نباشید مقاله هاتون عالیه
من براب جشنواره خوارزمی یه طرحی در رابطه با دیاگ خودرو دارم.
امکانش هست لطفا شماره یا ایدی بدین چنتا سوال بپرسم ازتون؟
سلام دوست عزیز
سوالات مرتبط با پست های سایت را در کامنت ها بپرسید.
سوالات دیگر را می توانید از ایدی ادمین موجود در کانال تلگرام بپرسید.
سلام. وقتتون بخیر
بابت مقاله فوق العاده تون سپاسگزارم.
من تقریبا اینترنت رو زیر و رو کردم ولی در آخر متوجه نشدم چطور باید یک مدار با آیسی mc33290/mcz33290 ببندم که بتونم به آردوینو وصلش کنم؟
سلام وقت بخیر
مقاله ی فوق العاده نوشتید
من چند تا سوال دارم و ازتون راه کار می خوام
چطور می تونیم اطلاعات k-line با آردینو دریافت کنم از طریق کابل و یکسری اطلاعات و پارامتر بهش اضافه کنم و به اندروید ارسال که برنامه real dash بتونه بخونه
سلام دوست عزیز سوالات شما کلی هست و نمیشه جواب سریعی داد
خب روش خوندن K-line با آردوینو که مشخصه و میشه به راحتی با یک سخت افزار این کار را انجام داد
بقیه موارد مثل ارتباط یک برد آردوینو توسط بلوتوث به گوشی و نوشتنش هم مورد فنی پیچیده ای نداره و شدنی هست
سلام
ممنون از راهنمایی
پارامتر های ارسالی تز دیاگ کجا میشه پیدا کرد من خیلی گستم چیزی پیدا نکردم
امکانش هست راهنمایی بفرمایید
متاسفانه اطلاعات درستی از دیاگ در دسترس نیست
و شرکت ها اطلاعاتش رو حتی نمی فروشند
سلام قسمت سوم رو چرا حذف کردید
اگر امکانش لینکش روارسال کنیدممنون
درود بر شما، متاسفانه قسمت سوم، بنابه دلایلی هنوز آماده نشده.
سلام و درود،
اول از همه سپاس برای مطالب آموزشی بسیار و مفیدتون. یه کمکی هم نیاز دارم اگه محبت بفرمایید یکی دو نمونه از اپلیکشنهای رایگان مناسب برای امکان تغییر بعضی از پارامترهای ECU (مثل سایز لاستیک) معرفی بفرمایید. برای خودرو کیا پیکانتو با توجه تغییر سایز فاق لاستیک و برای اصلاح عملکرد کیلومترشمار و سرعت نیاز به اصلاح آن دارم. رابط سخت افزاری OBD2 را دارم و با نرم افزار تورک هم بدون مشکل به ECU متصل میشم.
با سپاس مجدد از شما.
درود بر شما
متأسفانه مشکلی که وجود داره اینه که یک استاندارد واحد وجود نداره و هر خودرویی داره ساز خودش رو میزنه! حتی شما اگر پراید رو هم در نظر بگیرید، توی هر مدلش از یک نوع دیاگ متفاوت استفاده شده. اگر داخل مارکت OBD جستجو کنید، نرم افزارهای رایگان زیادی هست، اما یک سریش روی یه سری خودرو کار میکنه، یک سریش روی یه سری دیگه! اون رو باید خودتون هم تست کنید. با نرم افزارEOBD Facile هم جوابهای خوبی گرفتم.
سلام و سپاس فراوان بابت پاسخ مفید شما.
حقیقتا اکثر برنامههای مشابه که من دیدم برای عیب یابی و کدهای خطا کمک میکنند. من در واقع در جستجوی ابزاری هستم که بتوانم مثلا سایز قطر لاستیک ماشین رو ویرایش کنم. سپاسگزار میشوم اگر مورد مناسبی برای این منظور به نظرتون میرسه بفرمایید.
مجددا بابت سایت خوبتون ممنون.
خواهش میکنم، تجربه مشابهش رو ندارم، نرمافزار DashCommand رو هم تستی بکنید. این نکته رو هم مد نظر داشته باشید که خیلی از این نرمافزارها، نسخه پولی هم دارند که توی اون امکانات خیلی بیشتری دارید. شاید این قابلیتی که شما دنبالش هستید، توی نسخههای رایگان نباشه. ویژگیهای اپلیکیشن پولی رو هم نگاهی بکنید. اگر موفق شدید، اطلاع بدید که بقیه هم استفاده کنن ?
باو خییییییییلی خفنید دمتون گرم واقعا خدا قوت. هم عالی بود هم ساده توضیح دادید بهتر از این نمیشه
ممنونم دوست عزیز. امیدوارم براتون مفید بوده باشه.
ممنون از اطلاعات خوبی که در اختیارمون میزارید
قابلتونو نداره ❤
سلام.اگر با دست زدن به دسته سیم ها ارتباط دیاگ با ECU قطع بشه .بیشتر به کدوم سیم مربوط میشه؟آیا همه سیم های پشت کانکتور به ECu رفتن؟ میخام با بیزر اهمتر تست کنم
بستگی داره که رابط دیاگ شما از چه ارتباطی استفاده میکنه !!
سلام. خیلی ممنون از آموزش های خوبتون. من میخوام یک میکرو stm32 رو به دیاگ وصل کنم و فقط اطلاعاتش رو بخونم نیازی به نوشتن ندارم.یک آی سی mcp2551 هم دارم.تو یکی از آموزش های همین سایت خونده بودم که با وجود ۳.۳ ولتی بودن اس تی این کار ممکنه.من از سمت نرم افزار اومدم و اطلاعات الکترونیکم خیلی خوب نیست می خواستم بدونم چه طوری ۱۶ پین دیاگ رو با دو تا سیم به CAN RX و CAN TX تبدیل می کنین?
ممنون
سلام
دوست عزیز درگاه OBD یا همون دیاگ شامل چندین پروتکل سخت افزاری و هر کدام در برگیرنده چندین لایه نرم افزاری هستند
یکی از اونها CAN هستند که اکثر خودروهای ایرانی البته CAN نیستند
پس نیاز هست سخت افزاری طراحی کنید که چند لاسه سخت افزاری را هم داشته باشه و اون موقع تازه درگیر موارد نرم افزاری خواهید شد
خیلی ممنون بابت توضیحاتتون. سه تا سوال دیگه هم دارم، ممنون می شم اگر جوب بدید. یکی اینکه این پروتوکل ها رو می شه نام ببرید؟ آیا طراحی گیرنده برای این پروتوکل ها از نظر شما توسط یک نفر قابل انجام است؟ و سوما در اینترنت من یک سری دستگاه دیدم به نام ELM 327 که اطلاعات دیاگ رو با بلوتوث پخش می کنه(نوع یو اس بی هم داره) به نظرتون اگر اون رو من با بلوتوث یا کابل به میکرو وصل کنم شدنیه؟
خیلی ممنون
سلام دوست عزیز
در مورد سوال اول باید رفرنس بدم به ویکی پدیا
diagnostics
در مورد سوال دوم باید بگم بله میشه ولی نیازه که اطلاعات زیادی در خصوص این رابط ها داشته باشید که بتونید پیاده سازیش کنید
در مورد سوال سوم بله کاملا میشه من قبلا چنین کردم – elm در واقع یک میکروکنترلر pic است که برای برقرار کردن ارتباط با ecu برنامه ریزی شده و از طریق پورت سریال تبادل دیتا میکنه و داکیومنت دستوراتش توی سایت خودش هست و به سادگی میتونید باهاش ارتباط برقرار کنید.
یه سوال دیگه هم داشتم. این شبیه سازی که معرفی کردین رو تو هیچکدوم از فروشگاه های آنلاین ایران نمی تونم پیدا کنم. شما آیا جایی رو می شناسید که همچین چیزی بفروشه؟ من تو این سایت یه چیز شبیهش رو پیدا کردم:
https://www.eforosh.com/arminsanat/23959/37585
ولی شماره ای که برای تماس گذاشته همیشه خاموشه.
تماس بگیرید با شماره های شرکتی اونها انشاله که مشکل حل بشه
با سلام خدمت اقا سعید
می خواستم بدانم ایا پیشرفتی داشته اید یا نه اگر نه چرا واگر داشته اید چی بود با تشکر
سلام
واقعا مطالب مفیدی بود
من شنیدم خودروهای ایرانی از استانداردها خیلی پیروی نمیکنند و این باعث میشه دستگاه های دیاگی که میسازیم روی اکثر خودروها کارایی نداشته باشه
آیا این مطلب درست هست؟
الان با مطالب داخل سایت چه خودروهایی رو میشه دیاگ کرد و محدودیتهای این مدار چه هستند؟
سلام دوست عزیز
خودروهای ایرانی هم از ECU های استاندارد استفاده میکنند ولی چون تنوع اونها بالا هست شاید نیاز باشه که همه اونها ساپورت بشند
مثلا یک خودرو پراید چندین مدل ECU داره
خیلی از خودروهای ایرانی همون اینترفیس K line و استانداردهای اون را دارند که نیاز هست همونها اضافه بشند
همه موارد دیگه یه جورایی برمیگرده به مباحث نرم افزاری و همین سخت افزار کفایت میکنه
سلام مهندس جان
قسمت سوم هنوز آماده نشده؟؟؟
سلام نه متاسفانه دوست عزیز
عرض سلام خدمت شما دوست عزیز وممنون بابت مطالبتون.اگه یک ایسیو ایسی کانکت به دیاگش معیوب باشه مثلا ایسیو والئو با ایسی jci.امکانش هست که از ایسی l9637d برای کانکت شدن بهش استفاده کرد؟
درود بر شما.
در این زمینه اطلاعی ندارم.
سلام،
بسیار عالی بود، دست مریزاد!
یک سؤال: ماشین من، برلیانس ۲۳۰ هست. یکی از این دانگل های بلوتوثی
(ELM327 V2.1 (OBD2 تهیه کردم ولی موفق نشدم با نرم افزارهای معمول OBD car scanner به ECU ماشین متصل بشم. ممنون میشم بتونم از راهنمایی تون بهره مند بشم
سلام.
ممنون.
شما میتونید با استفاده از کابل OTG دانگل بلوتوث رو به گوشی اندرویدیتون متصل کنید. نرم افزار های زیادی هم برای اندروید وجود دارد که به شما کمک می کند به ECU متصل شوید.
سلام
خود گوشی بلوتوث داره دانگل بلوتوث برای چی لازمه که با otg به گوشی وصل کنیم؟
درود بر شما دوست عزیز!
بله، اگر دیاگ شما بلوتوثیه که با بلوتوث باید متصلش کنید، این رو واسه دوستانی گفتم که میخوان ELM327 معمولی رو به گوشی متصل کنند.
سلام مهندس جان بابا ما منتظر قسمت سوم هستیم چی شد پس 🙂
ممنون از زحماتتون
سلام انشاله بگذارید ببنیم از این کرونا جون سالم به در میبریم و تست ها را انجام بدیم
حتما
خیلی ممنون ولی الان تو خونه ایم میتونیم کار کنیم روش
راستی اگر خودرو خواستید برای تست بنده در خدمتم یه پیام بدید ایمیلم
ممنون از شما حتما
با عرض سلام و تشکر به خاطر مطلب مفیدتون.
من با راهنمایی شما با استفاده از برد آردینو و آی سی 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
سلام دوست عزیز
همونطور که متوجه شدید هر شرکتی میتونه استاندارد خودش رو داشته باشه و تنها با در دست داشتن اون استاندارد هاست که میتونید داده های دریافتی رو باز کنید.
بهترین راه اینه که برید یه ایکو دیاگ بگیرید دستوراتو حین ارسال انالیز کنید
یا از این دیاگ داخلی خوبا بگیرید و انالیز کنید
سلام
دیاگ داخلی خوب میتونید معرفی کنید؟
شرکت نگار خودرو صنعت یکی از شرکتهایی هست که فکر کنم تو این موضوع در ایران تخصص خوبی داره
با سلام می خواستم بدانم ایا .پیشرفتی داشتید تا حالا یا نه با تشکر
در حد چاپ برد و چند تا تست اولیه که جواب مثبت شد بله
با سلام اقا سعید نقل قول از شما “سوال اول: همانطور که در فریم زیر میبینید کد Service Identifier برای خطا یابی 0x18 میباشد و از پاسخ متوجه میشویم 2 خطا موجود است ولی نمیتوان تحلیل کرد که خطا مربوط به کجاست؟
Troubleshooting requset(hex): 84 11 F1 18 00 FF 00 9D”
من فکر نمی کنم که در پراید این کد جواب بده
سلام دوست عزیز من هم درباره این موضوع کارمی کنم مشکل من این استاندار هست که شما میگید این پورتکل که دارید استفاده می کنید چی هستش اگر کی لاین هستش چرا با کد 0X81 شروع میش وکلی چیز دیگه ممنون میش با هم یه ارتباط بگیریم ایمیل بنده akbarmoazmi@gmail.comیا تلفن 09334992734
سلام و عرض ادب
بی صبرانه منتظر قسمت بعدی هستیم
?????????????
خیلی ممنون از شما. ?
سلام وخدا قوت تشکر از اموزش واقعا عالی شما
درود بر شما. پاینده باشید!
سلام
از مطالعه و توقف در سایت شما بهره بردم.
از زحمات شما بابت ارائه اطلاعات که مبتنی بر تخصص و تجربه است، صمیمانه سپاسگزارم.
موفق و پیروز باشید.
سلام و عرض خسته نباشید، باید این رو بدون تعارف بگم که حقیقتا اطلاعات ناب و کم پیدایی رو قرار دادین، امیدوارم با همین قدرت ادامه بدین، مطالب مربوط به برقراری ارتباط با ecu خودرو و دریافت و پردازش داده ها بسیار کم یابن. اگر امکانش باشه بهتره در بخش هایی از این اموزش ها کلیپ هایی تهیه بشه که در این صورت ساز و کار پروژه روشن تر خواهد بود.
در نهایت اگر یک چنل در قالب تلگرام و دیگر نرم افزارهای ارتباطی بخواد معرفی بشه، خیلی سریع تر به نتیجه میرسیم.
با تشکر
سلام.
خیلی ممنون از نظرتون. باید ببینیم چی پیش میاد.
انشاالله سعی میکنیم این مطلب را به جای مناسبی برسونیم.
با سلام .
بسیار عالی بود .
سپاس فراوان .
منتظر قسمت بعدی هستم .
درود بر شما.
سپاس گزارم.
خیلی عالی بود فقط قسمت بعدی آموزش رو بی زحمت سریع تر بگذارید ممنون
سپاس از شما. ما تلاشمون رو میکنیم، اما فکر میکنم قسمت بعدی با کمی تأخیر منتشر بشه، چون قراره روی خودروهای ایرانی بیازماییم تا عملی و کاربردی باشه، نه صرفاً حرف و تئوری!
سلام…خیلی ممنون
منتظر قسمت بعد هستم که بتونم با میکرو به ecu فرمان بدم
خدا خیرتون بده
درود بر شما. پیروز باشید!
خیییلی ممنوووووووووووون عاالی بووووود. واقعا خسته نباشید و دمتونم گرم
ممنون