پروتکل K-Line: استاندارد ارتباطی قدیمی OBDII در خودروها - قسمت دوم آموزش OBD II

blog
۱۴۰۳-۰۹-۲۷
9 دقیقه

معرفی پروتکل KLine

پروتکل K-Line یک روش استاندارد ارتباطی OBDII هست که قبل از آنکه پروتکل CAN فراگیر شود در خودروها استفاده می­شده است. K-Line فقط یک اسم فانتزی برایUART تک سیم با ارتباط نیمه دوطرفه[1] که دارای سرعت 10.4 kbps بوده و از سطوح ولتاژ 0 و 12 ولت استفاده می کند، است. سطح ولتاژ بالای آن در حقیقت همان ولتاژ باتری است که بین 12 تا 4/14 (زمان روشن بودن موتور) تغییر می کند.

بسته استاندارد داده در Kline

پروتکل KLine برای تبادل داده از استانداردهای UART پیروی می­کند. به این صورت که در حالتی که هیچ تبادل داده­ای در حال انجام نباشد خط انتقال در حالت بیکاری[2] قرار داشته و خط ارسال در سطح ولتاژ یک منطقی است. برای شروع ارسال داده خط از مقدار یک به مقدار صفر منطقی تغییر داده می­شود این صفر شدن به مدت یک بیت باید طول بکشد و به آن بیت شروع[3] گفته می شود. در ادامه یک بایت داده (معادل هشت بیت) از سمت کم ارزش­ترین بیت ارسال می­شود. در نهایت یک بیت پایان[4] که معادل یک منطقی است ارسال می­شود. طبق آنچه گرفته شد برای تبادل داده با KLine باید از استاندارد UART با 8 بیت داده، بدون بیت توازن و یک یا دو بیت پایان (اختیاری!) استفاده کرد (شکل 9).

بسته استاندارد داده در KLine

شکل 9- بسته استاندارد داده در KLine

سخت افزار لازم برای اتصال به میکروکنترلر

 لایه سطح فیزیکی KLine  بسیار ساده بوده و  برای ارتباط با این روش به یک میکروکنترلر و چند ترانزیستور نیاز هست (شکل 10).

پروتکل K-Line: استاندارد ارتباطی قدیمی OBDII در خودروها - قسمت دوم آموزش OBD II

شکل 10- مدار مبدل KLine به UART

دریافت داده از K-Line با استفاده از یک مقسم ولتاژ ساده انجام می شود که با توجه به ولتاژ کاری میکروکنترلر طراحی می­گردد. با توجه به اینکه حداکثر ولتاژ K-Line بین 12 تا 4/14 نغییر می­کند، خروجی مقسم نباید از ولتاژ کاری میکروکنترلر بیشتر شود.

ارسال داده نیز بسیار ساده هست. تنها نکته این است که سطح حالت بیکاری ولتاژ UART باید بالا باشد. بنابراین در اینجا باید از دو عدد ترانزیستور NPN سری با آرایش کلکتور باز و مقاومت بالا کشنده استفاده کرد. در صورتی که میکروکنترلر ( مانند AVR XMEGA) توانایی معکوس کردن پایه TX را  داشته باشد می توان از یک ترانزیستور هم استفاده کرد.

خط LLine فقط از میکروکنترلر ارسال شده و طریقه اتصال این پایه به میکروکنترلر در شکل 11 (الف) ترسیم شده است.

با توجه به اینکه الگوی شروع کند باید با نرخ ارسال 5 bps ارسال شود و معمولا این نرخ داده به سختی با UART در میکروکنترلرها حاصل می­شود بهتر است از یک مدار کنترلی دیگر (شکل 11 (ب) برای ارسال الگو استفاده شود.

مدار اتصال پین LLine و پین کنترل کننده KLine

شکل 11- مدار اتصال پین LLine و پین کنترل کننده KLine

 

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

قالب بندی پیام درخواست

همانطور که در شکل 12 نشان داده شده، ساختار پیام شامل سه قسمت است: هدر، داده، چک سام.  به عنوان مثال برای خوانند مقدار دمای آب خنک کننده کد {0xC2,0x33,0xF1,0x01,0x05,0xEC} ارسال میشود.

ساختار پیام در KLine

شکل 12 – ساختار پیام در KLine

بخش هدر

این بخش می تواند حداکثر شامل 4 بایت باشد. اولین بایت، بایت فرمت بوده که شامل اطلاعاتی در مورد فرمت پیام است. بایت­های دوم و سوم  که نشان دهنده­ی آدرس منبع و هدف هستند می توانند وجود داشته باشند یا نباشند. در نهایت بسته به طول داده، بایت چهارم می­تواند در هدر وجود داشته باشد یا نباشد. مثلا در برای درخواست دمای آب خنک کننده بخش هد شامل {0xC2,0x33,0xF1} است که 0xC2 بایت فرمت، 0x33 بایت آدرس هدف و 0xF1 بایت آدرس منبع بوده و بایت طول در آن وجود ندارد.

بایت فرمت

دو بیت با ارزش بایت فرمت، مد آدرس دهی را مشخص می­کند و 6 بیت دیگر طول فریم پیام را مشخص می­کند (شکل 13). حالت­های مختلف آدرس دهی در جدول 2 آورده شده است. اگر دو بیت مربوطه “00” باشند هیچ اطلاعات آدرسی ارسال نمی­شود. اگر  دو بیت مربوطه  “01” باشند آنگاه در مد CRAB است. در صورتی که دو بیت مربوطه “10” باشند آنگه آدرس دهی به صورت فیزیکی است. یعنی فقط به یک یونیت خاص درخواست داده می­شود. و در نهایت اگر “11”  باشد، درخواست به گروهی از یونیت ها داده می­شود.

بیت های L5-L0 طول داده موجود در پیام را مشخص می­کنند (بایت چک سام شامل نمی­شود). بنابراین طول داده می تواند بین 0 تا 63 بایت باشد. اگر این بیت­ها صفر باشند از بایت چهارم در هدر برای نشان دادن طول داده با حداکثر 255 استفاده می­شود. در مثال خواندن دمای آب خنک کننده، بایت فرمت 0xC2 بود. یعنی مد آدرس دهی برابر با آدرس دهی فانکشنال و تعداد بایت داده ارسالی برابر با 2 است.

ساختار بایت قالب بندی در KLine

شکل 13- ساختار بایت قالب بندی در KLine

 

مد

A0

A1

بدون اطلاعات آدرس

0

0

مد CRAB، در این مد از بایت فرمت 68 و 48 استفاده می­شود.

1

0

با آدرس دهی فیزیکی

0

1

با آدرس دهی فانکشنال

1

1

جدول 2- انواع مد آدرس دهی در KLine

بایت آدرس هدف

این بایت آدرس هدف پیام را مشخص می­کند و همیشه همراه با آدرس منبع استفاده می­شود. هم به صورت فیزیکی و هم فانکشنال می­تواند باشد. آدرس فیزیکی می­تواند بایت آدرس در شروع کند باشد یا طبق استاندارد بین الملی (شکل 14). این بایت اختیاری بوده و فقط در باس­هایی با توپولوژی چند نود ضروری است. برای ارتباطات نود به نود (تک نود) می توان از این بایت صرف نظر کرد. در مثال خواندن دمای آب خنک کننده، مقدار بایت آدرس هدف، 0x33 است.

بایت آدرس منبع

این بایت آدرس دستگاه فرستنده را مشخص می­کند. این آدرس باید یک آدرس فیزیکی باشد. و مقدار آن مشابه مقدار بایت آدرس هدف تعیین می­شود. این بایت اختیاری بوده (همیشه با آدرس هدف همراه است) و فقط در شبکه های چند نودی ضروری است. در شبکه های تک نود می توان از آن صرف نظر کرد. در مثال خواندن دمای آب خنک کننده، مقدار بایت آدرس هدف، 0xF1 است. محدود تعریف شده این آدرس در شکل 14 آورده شده است.

 

آدرس پیشرانه (قوای محرکه)

مقدار  hex

شرکت سازنده

00 – 0F

موتور

10 – 17

انتقال قدرت (گیربکس، دیفرانسیل)

18 – 1F

شاسی

 

شرکت سازنده

20 – 27

ترمز

28 -2F

فرمان

30 – 37

تعلیق

38 – 3F

بدنه

 

شرکت سازنده

40 – 57

ایمنی

58 – 5F

نمایشگر

60 – 6F

روشنایی

70 – 7F

صوت و سرگرمی

80 – 8F

ارتباط شخصی

90 – 97

سرمایش و گرمایش

98 – 9F

کنترل درب، صندلی، پنجره و …

A0 – BF

امنیت

C0 – C7

توسعه در آینده

C8 – CF

سازند

D0 – EF

دستگاه عیب یاب

F0 – FD

همه نودها

FE

هیچ نودی

FF

شکل 14- آدرس ECU و درخواست کننده برای KWP

بایت طول پیام

اگر طول پیام در بایت فرمت داده صفر باشد، از این بایت برای مشخص کردن طول پیام استفاده می­شود. این بایت امکان ارسال داده­هایی با طول بیشتر از 63 بایت ر ا فراهم می­کند. برای داده­هایی با طول­های کمتر می توان از آن صرف نظر کرد. این بایت مقدار طول پیام از ابتدای بخش داده تا چک سام (شامل چک سام نیست) را مشخص می کند. بنابراین طول داده­ می تواند بین 1 تا 255 باشد. برای طول داده­ کمتر از 64 بایت دو امکان وجود دارد. یک استفاده از بایت فرمت یا استفاده از بایت طول پیام. البته لزومی وجود ندارد که یک واحد از این هر دو روش به صورت همزمان پشتیبانی کند. در جدول 3 چونگی تعیین طول پیام به طور خلاصه آورده شده است.  در مثال خواندن دمای آب خنک کننده، بایت طول پیام وجود ندارد.

بایت طول دادهبایت فرمتطول داده
وجود داردXX00 0000کمتر از 64
وجود نداردXXLL LLLLکمتر از 64
وجود داردXX00 0000بیشتر از 64

جدول 3-  چونگی تعیین طول پیام در KLine

با توجه با آنچه در بالا بیان شد، چهار نوع متفاوت از پیام وجود دارد  

1- هدر بدون بایت­های آدرس و طول داده

چک سامدادهشناسه سرویسفرمت

شکل 15 – ساختار پیام در KLine بدون بایت های آدرس و طول

2- هدر با بایت های آدرس و بدون بایت طول داده

چک سامدادهشناسه سرویسآدرس منبعآدرس هدففرمت

شکل 16 – ساختار پیام در KLine با بایت های آدرس ولی بدون بایت طول.

3 – هدر بدون بایت های آدرس و با بایت طول داده

چک سامدادهشناسه سرویسطولفرمت

شکل 17 – ساختار پیام در KLine بدون بایت های آدرس و با بایت طول.

4 – هدر با بایت ­های آدرس و طول داده

چک سامدادهشناسه سرویسطول آدرس منبعآدرس هدففرمت

شکل 18 – ساختار پیام در KLine با بایت های آدرس و بایت طول.

بایت های داده

بخش داده می تواند بسته به استفاده از بایت طول داده حداکثر شامل 64 یا 255 بایت باشد. اولین بایت شناسه سرویس است. با توجه به سرویس انتخاب شده، بایت های بعدی می­تواند پارامتر یا داده باشند. در مثال خواندن دمای آب خنک کننده، بایت­های داده برابر با {0x01,0x05} هستند.

بایت چک سام

این بایت به انتهای پیام اضافه می شود. برای محاسبه­ی آن کافی است که همه بایت­های موجود در پیام را با هم جمع کرد. در مثال خواندن دمای آب خنک کننده، مقدار بایت چک سام برابر با 0xC2+0x33+0xF1+0x01+0x05 = 0xEC است.

[1] half-duplex

[2] Idle

[3] Start bit

[4] Stop bit

 

اولین مرجع متن باز ECU در ایرانپرونده:بنر اولین مرجع متن باز ECU در ایران.png

اطلاعات
2
0
لینک و اشتراک
profile

BlueShift

متخصص الکترونیک

مقالات بیشتر
slide

پالت | بازار خرید و فروش قطعات الکترونیک

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

آیسی | موتور جستجوی قطعات الکترونیک

سامانه آی سی سیسوگ (Isee) قابلیتی جدید و کاربردی از سیسوگ است. در این سامانه سعی شده است که جستجو، انتخاب و خرید مناسب تر قطعات برای کاربران تسهیل شود. وقتی شما در این سامانه، قطعه الکترونیکی را جستجو می‌کنید؛ آی سی به سرعت نتایج جستجوی شما در اکثر فروشگاه‌های آنلاین در حوزه قطعات الکترونیک را نمایش می‌دهد. جستجو در آیسی
family

فروشگاه سیسوگ

فروشگاه سیسوگ مجموعه ای متمرکز بر تکنولوژی های مبتنی بر IOT و ماژول های M2M نظیر GSM، GPS، LTE، NB-IOT، WiFi، BT و ... جایی که با تعامل فنی و سازنده، بهترین راهکارها انتخاب می شوند. برو به فروشگاه سیسوگ
family

سیسوگ فروم | محلی برای پاسخ پرسش‌های شما

دغدغه همیشگی فعالان تخصصی هر حوزه وجود بستری برای گفتگو و پرسش و پاسخ است. سیسوگ فروم یک انجمن آنلاین است که بصورت تخصصی امکان بحث، گفتگو و پرسش و پاسخ در حوزه الکترونیک را فراهم می‌کند. پرسش در سیسوگ فرم
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
خانواده سیسوگ

پالت | بازار خرید و فروش قطعات الکترونیک

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

آیسی | موتور جستجوی قطعات الکترونیک

سامانه آی سی سیسوگ (Isee) قابلیتی جدید و کاربردی از سیسوگ است. در این سامانه سعی شده است که جستجو، انتخاب و خرید مناسب تر قطعات برای کاربران تسهیل شود. وقتی شما در این سامانه، قطعه الکترونیکی را جستجو می‌کنید؛ آی سی به سرعت نتایج جستجوی شما در اکثر فروشگاه‌های آنلاین در حوزه قطعات الکترونیک را نمایش می‌دهد.
family

فروشگاه سیسوگ

فروشگاه سیسوگ مجموعه ای متمرکز بر تکنولوژی های مبتنی بر IOT و ماژول های M2M نظیر GSM، GPS، LTE، NB-IOT، WiFi، BT و ... جایی که با تعامل فنی و سازنده، بهترین راهکارها انتخاب می شوند.
family

سیسوگ فروم | محلی برای پاسخ پرسش‌های شما

دغدغه همیشگی فعالان تخصصی هر حوزه وجود بستری برای گفتگو و پرسش و پاسخ است. سیسوگ فروم یک انجمن آنلاین است که بصورت تخصصی امکان بحث، گفتگو و پرسش و پاسخ در حوزه الکترونیک را فراهم می‌کند.
family

دیدگاه ها

profile
موسی گفت :
۱۴۰۳-۱۰-۲۰ ۰۰:۲۶

لینک قسمت اول کجاست؟

profile
Shadow گفت :
۱۴۰۳-۱۰-۲۲ ۰۸:۵۹

سلام
خدمت شما
قسمت اول آموزش OBD II

become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله