LIN دارای 6 نوع فریم مختلف است که تفاوت آنها در زمانبندی و محتویات داده است. در میان 6 فریم، فریم بی قید و شرط بیشترین کاربرد را دارد. در ادامه به طور خلاصه طرح کلی هر فریم شرح داده شده است:
این فریم متعارفترین فریم پیام LIN برای ارتباط داده است. در این روش Master یک هدر برای درخواست اطلاعات از یک Slave خاص ارسال میکند و Slave در واکنش به آن پاسخ میدهد. این فریم شامل شناسههای تعریف شده را از 0-59 (0x00 تا 0x3B) است.
هدف از این فریم حفظ پهنای باند باس LIN است. به ایم منظور Master چندین Slave را به صورت یک یه یک صدا میزند. اما Slaveها فقط زمانی پاسخ میدهند که اطلاعاتشون بروز شده باشد. اگر بیش از یک Slave بخواهند به طور همزمان پاسخ دهند تصادم رخ می دهد. در این حالت Master باید فریمها را به صورت فریم بدون قید و شرط برای هر یک از Slave ارسال کند که از فریمهایی که بالاترین اولویت را دارند شروع کنند.
در این حالت تنها Master ارسال کننده است و اگر متوجه بشود که Slave خاصی دارای دادههای جدیدی است، خود Master همانند Slave رفتار کرده و اطلاعات پاسخ را در جواب هدر خود ارسال میکند. این کار به گرههای Slave اجازه میدهد تا دادههای دینامیک خود را ارسال کنند.
از نسخه LIN 2.0 به بعد شناسه 60 (0x3C) برای فریم درخواست Master و فریم شناسه 61 (0x3D) برای فریم پاسخ Slave برای خواندن اطلاعات خطایابی از گرههای Master یا Slave بکار میرود.
شناسه 62 یک فریم تعریف شده توسط کاربر است که ممکن است هر نوع دادهای را شامل شود.
شناسه 63 به صورت رزرو برای توسعه پروتکل در نظر گرفته شده است و قابل استفاده از نسخه LIN 2.0 به بعد است.!
مقدار متعارف و حداکثر زمان تخصیص داده شده به هر بخش در پروتکل LIN به شرح زیر است:
- THeader_Nominal = 34 * Tbit.
- THeader_Maximum = 14 * THHeader_Nominal.
- TResponse_Maximum = 1.4 * TResponse_Nominal.
نسخه LIN 2.0 بیان می کند که تشخیص خطا باید توسط Slave انجام شود و نظارت بر خطا توسط Master لازم نیست این امر کارایی Master را بهبود میبخشد. در نسخه LIN 2.0 نیازی به رسیدگی به چندین خطا در یک فریم LIN یا استفاده از شمارشگر خطا نیست. پس از مواجهه با اولین خطا در فریم، slave پردازش فریم فعلی را خاتمه و منتظر دریافت فریم جدید میماند.
پروتکل LIN همچنین قابلیت گزارش خطا را فراهم می کند. در نسخه LIN 2.0 یک بیت وضعیت پاسخ خطا تعریف شده که Slave باید آن را در یکی از فریم های ارسالی خود به master گزارش دهد. این بیت زمانی تنظیم می شود که فریم دریافت یا ارسال شده توسط یک گره Slave دارای خطا در قسمت پاسخ باشد. این بیت پس از ارسال آن در یکی از پاسخ های منتشر شده پاک می شود.
حالت خواب برای کاهش مصرف توان استفاده میشود. در حالت خواب، دستگاه در وضعیت عملکردی کمتری قرار دارد به این معنی که توان بسیار کمی مصرف میکند، اما همچنان میتواند گذرگاه LIN را برای هرگونه سیگنال بیداری نظارت کند. در حالت Sleep، درایور LIN غیرفعال می شود و پایانه باس LIN داخلی خاموش می شود تا در صورتی که گذرگاه LIN به هر دلیلی به زمین متصل شود، جریان جریان را به حداقل برساند. بنابراین در آن زمان یک گیرنده کم مصرف فعال می شود و عملکرد گیرنده عادی غیرفعال می شود و ورودی EN هنوز فعال است.
طبق LIN-2.0 با استفاده از فریم دستور برو به خواب (Go-to-sleep command) همه Slaveهای یک شبکه LIN توسط Master در حالت خواب میگیرند. این فریم همان فریم درخواست خطایابی (ID=60) است که اولین بایت داده آن برابر با صفر است. اگر LIN بیش از چهار ثانیه غیر فعال باشد، Slave ها نیز به طور خودکار وارد حالت خواب می شوند.
حالت Standby نیز یک حالت کم مصرف است. تفاوت اصلی حالت Standby و Sleep این است که در حالت Standby خروجی RDX کم است در حالی که در حالت Sleep خروجی RDX شناور است. این به کنترل کننده سیگنال می دهد که دستگاه پس از درخواست بیدار شدن (Wakeup) در حالت آماده به کار است و می تواند از طریق کنترل پین EN به حالت عادی منتقل شود. اگر پین EN در هنگام روشن شدن بالا نگه نداشته شود، فرستنده گیرنده LIN به طور پیش فرض در حالت آماده به کار روشن می شود.
پروتکل LIN مکانیسم دیگری برای بیدار کردن ECU ها / Noces / دستگاه ها در باس دارد. بیدار کردن یکی ممکن است توسط هر گره ای در باس توسط یک Slave یا Master انجام شود. همه فرستندههای LIN دارای پینهایی هستند که دستگاه را از حالت خواب بیدار میکنند (اگر حالت خواب دارند)، و میتوان از آنها به جای درخواست بیدار کردن باس LIN استفاده کرد. پایه WAKE در فرستندههای LIN معمولاً یک پایه ولتاژ بالا است و به یک انتقال منفی (سطح ولتاژ بالا به پایین)، انتقال مثبت (سطح ولتاژ پایین به بالا) یا هر دو پاسخ میدهد. پایه EN یک پایه سطح I/O در فرستنده گیرنده LIN است که توسط کنترلر LIN از تراشه میکروکنترلر کنترل می شود و همچنین می تواند برای انتقال به داخل و خارج از حالت Sleep استفاده شود، اگرچه قطبیت انتقال مهم است. انتقال منفی در این پین EN دستگاه را به حالت Sleep قرار می دهد، در حالی که انتقال مثبت دستگاه را به حالت عادی برمی گرداند.
شکل 4- الگوی بیدار سازی در LIN
مطابق با نسخه LIN-2.0، برای درخواست بیدار شدن هر ECUیا گره باید یک الگوی بیدار سازی ارسال شود. همانطور که در شکل 4 نشان داده شده است برای این کار باس به مدت 250µs تا 5ms صفر شده و سپس بعد از حداکثر 150ms باید پاسخی دریافت شود در غیر این صورت اگر بعد از 150ms پاسخی دریافت نشود، دوباره عمل بیدار سازی را انجام میدهد و اگر مجدد پاسخی دریافت نشد برای بار سوم عمل بیدار شدن را انجام میدهد. اگر بازهم پاسخی دریافت نشد، باید 1.5s صبر کرد و سپس دوباره تلاش کرد.
نویسنده شو !
سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.