سلام خدمت همه شما مایکروالکامی ها. در مطلب قبلی به بررسی پروتکل های ارتباطی صنعتی پروتکل RS-485 پرداخته شد. در این مطلب به معرفی و بررسی درگاه ارتباطی CAN Bus پرداخته خواهد شد. پس با من تا انتهای مطلب همراه باشید. همچنین شما میتونید سایر مطالب من رو از این لینک مطالعه و بررسی کنید.
مقدمه
درگاه ارتباطی CAN Bus یک بستر ارتباطی قوی با قابلیت اطیمنان بالا میباشد. با استفاده از پروتکل CAN میتوانیم انتقال دیتا بین قسمت های مختلف شبکه را بصورت real-time انجام دهیم. این درگاه یک پروتکل ارتباط سریال غیر همزمان بوده که از طرح سینگال دهی دیفرانسیلی جهت تبادل دیتا روی یک جفت سیم بهم پیچ شده استفاده میکند. همچنین مدل ارتباطی این پروتکل بصورت مبتنی بر متن است.
CAN Bus در طول تاریخ
درگاه ارتباطی CAN Bus بوسیله شرکت Bosch در اوایل دهه 1980 توسعه یافت. هدف و کارایی اصلی توسعه آن ایجاد بستر و سیستم ارتباطی موثر در وسایل نقلیه و خودرو ها بوده تا سیم کشی های پیچیده و گسترده خودرو را کاهش دهد.
در 1986 شرکت Bosch پروتکل ابتدایی CAN را معرفی نمود که به دلیل قابلیت اطمینان و قدرت و استحکام آن خیلی سریع در بین خودرو سازان آن زمان جای خود را باز کرد. در 1993 به عنوان یک پروتکل جهانی تحت استاندارد ISO-11898 قرار گرفت. بطور خلاصه میتوان روند تکامل درگاه CAN را بصورت زیر خلاصه کرد.
- سال 1991: استفاده Mercedes-Benz بعنوان یکی از اولین استفاده کنندگان درگاه CAN Bus (استفاده در خودرو مدل W140 S-class)
- سال 2004: معرفی CAN FD یا CAN با دیتا ریت منعطف (Flexible Data Rate) که باعث فراهم آوردن نرخ دیتا و payload بیشتری نسبت به CAN شد.
- سال 2015: تصویب ISO-16845 به عنوان یک طرح انطباق برای دستگاه هایی که پروتکل کلاسیک یا CAN و CAN FD را استفاده و اجرا میکنند.
استفاده CAN Bus فقط معطوف به خوردو نبوده و در طول زمان صنایع و کاربرد های زیادی نیز از آن استفاده کرده اند. بعنوان مثال امروزه در سیستم های اتوماسیون صنعتی تحت عنوان CANopen و در الکترونیک دریایی NMEA 2000 مورد استفاده قرار میگیرد. یکی از دلایل عمده استفاده از آن در این طیف گسترده، قابلیت اطمینان بالای آن حتی در محیط های صنعتی و پر نویز و در عین حال حفظ کم هزینه بودن آن است.
درگاه ارتباطی CAN Bus
CAN مخفف Control Area Network و به معنی شبکه کنترل محلی میباشد. این درگاه یک ارتباط یا پروتکل سریال بوده که قادر خواهد بود دستگاه های تحت عملکرد آن بصورت مطمئن و کارآمد تبادل دیتا نمایند. از درگاه کنترلی CAN بصورت عمده در صنایع و کاربرد هایی مانند خودرو (ECU خودرو)، صنایع پزشکی و… استفاده میشود.
این درگاه بطور ذاتی برای استفاده در خودرو ها در دهه 1980 توسط Bosch طراحی گردید. این درگاه یک پروتکل چند مستر (Multi-master)، Multi-slave، نیمه دو طرفه (half-duplex) و مقاوم در برابر خطا میباشد. این مزایا باعث شده که به خوبی با نیازمندی های ارتباط در خودرو به خوبی هماهنگ بوده و آنها را برطرف نماید. علاوه بر این استفاده از CAN Bus آسان، دارای هزینه کم، قابل اطمینان و قابل استفاده در محیط های پر نویز میباشد. درگاه ارتباطی CAN یک نقطه ورودی در ECU خودرو ها فراهم میکند که باعث کنترل و عیب یابی راحت تر خواهد شد.
مزایای اصلی درگاه ارتباطی CAN Bus
- ساده و کم هزینه: ارتباط ECU با همه بخش های مختلف فقط برروی یک بستر
- دسترسی آسان: وجود یک نقطه ورودی در CAN Bus و مناسب جهت جمع آوری دیتا و عیب یابی
- قوی: مقاومت در برابر نویز و تداخلات الکترومغناطیس
- کارآمد: اولویت بندی فریم ها و دریافت همه پیام ها بدون وقفه
نحوه عملکرد CAN Bus
CAN Bus یک پروتکل با ارتباط متمرکز است. همین امر باعث شده که برای کاربرد هایی نظیر خودرو و سیستم های صنعتی که قابلیت اطمینان بالا و عملکرد real-time بودن برای آنها مهم است مناسب باشد. در شبکه CAN همه node ها یا دستگاه ها بوسیله یک جفت سیم یا کابل فیبر نوری به هم متصل میشوند. لذا هر قسمت (node) دارای کنترلر خود بوده که دیتا های ورودی را پردازش و دیتای خروجی را ارسال مینمایند. دیتا ها توسط یک دستگاه برروی درگاه مشترک قرار گرفته و سایر دستگاه های دیگر میتوانند آن را دریافت کنند.
مراحل ارتباط
هنگامی که دستگاهی بخواهد پیامی را برروی درگاه ارسال کند، ابتدا درگاه را برای ارسال بررسی میکند. چنانچه شرایط ایده آل بود شروع به ارسال پیام میکند. طبعا پیام توسط همه دستگاه روی درگاه قابل دریافت بوده و متناسب با شناسه یا identifier آن تحلیل و بررسی میشوند. در طول انتقال هر دستگاه بیت های ارسالی خود را با بیت هایی که میشنود یا دریافت میکند مقایسه مینماید. چنانچه خطایی یا عدم تطابقی رخ دهد دستگاه ارسال را متوقف کرده و مجددا پیام را ارسال خواهد کرد. در ادامه بخشی از فرایند CAN توضیح شده است.
1- Arbitration یا داوری: هنگامی که چند node بصورت همزمان شروع به ارسال دیتا برروی درگاه کنند، CAN از قابلیت Arbitration مبنی بر اولویت پیام ها استفاده میکند. هرچه شناسه یک دیتا کمتر باشد، اولویت آن بیشتر است.
2- Error detection یا تشخیص خطا: عملکرد داخلی تشخیص خطا باعث تضمین یکپارچکی دیتا در شبکه CAN میشود. این مورد شامل بررسی های CRC (Cyclic Redundancy Checks)، بررسی FCS (Frame Check Sequence) و بررسی بیت Acknowledgment میشود.
3- Fault confinement یا حبس خطا: در صورتی که هر node در طول فرآیند ارسال خطا یا نقصی تشخیص دهد، تا زمانی که عملیات صحیح ادامه یابد، در حالت Error Passive وارد میشود. در نتیجه از انتقال ناصحیح و معیوب و تاثیر آن برروی کل سیستم جلوگیری به عمل خواهد آمد.
ترکیب این ویژگی ها باعث شده CAN Bus در سطح بالایی قرار گرفته و کارایی بالایی داشته باشد. علاوه بر این در یک سیستم پیچیده نظیر خودرو و امثال آن، ارتباط بین اجزای مختلف بصورتی باشد که قابلیت اطمینان بالایی خواهد داشت.
معماری پیام و دیتا در پروتکل CAN
معماری پیام یا دیتا در درگاه CAN جهت کارایی و عملکرد آن بسیار حائز اهمیت میباشد. در این پروتکل پیام ها از یک فریم با چند بخش تشکیل شده است. این موارد شامل نشانگر یا identifier، قسمت control field و مکانیزم تشخیص خطا میباشد.
- Identifier: یک مقدار مشخص بوده و بیانگر اولویت هر پیام در شبکه میباشد. در استاندارد 11 بیتی (CAN 2.0A) تا 2048 اولویت مختلف وجود دارد. در استاندارد 29 بیتی توسعه یافته (CAN 2.0B) دارای اولویت های بیشتر تا حدود 500 میلیون مقدار متفاوت وجود دارد.
- SOF: بیانگر بیت آغاز یا Start of Frame
- ID Standar Identifier: بیانگر اولویت پیام (نوع استاندادر CAN بصورت 11 یا 29 بیتی)
- RTR: بیانگر اینکه یک دستگاه دیتا را ارسال میکند یا درخواست دیتا از دستگاه دیگری دارد.
- Control: شامل بیت IDE (بیت پسوند شناسه) و کد طول داده 4 بیتی (DLC) است که مشخص کننده طول بایت های دیتا ارسالی (0 تا 8 بیت) میباشد.
- Data Length Code یا DLC: این پارامتر در بخش control field قرار گرفته و بیانگر تعداد بایت های موجود (از صفر تا 8 بایت) در بخش دیتا است.
- Data field: شامل اطلاعات واقعی و حقیقی است که از node ها ارسال شده است.
- CRC یا Cyclic Redundancy Check: مکانیزم داخلی تشخیص خطا بوده که باعث تضمین ارتباط با قابلیت اطمینان بوسیله تشخیص خطا های انتقال و درخواست ارسال مجدد در صورت لزوم میشود.
- Acknowledgment یا Acknowledgment Slot: از این تک بیت در گیرنده ها برای تایید ارتباط و دریافت آن یا نیاز به ارسال مجدد پیام استفاده میشود.
- Error Frame: یک بخش اختیاری بوده که باعث میشود در صورت تشخیص خطا در ارسال یا در دریافت پیام های دستگاه های دیگر در شبکه یک اعلانی قرار دهند.
- EOF: بیانگر پایان فریم یا End of Frame میباشد.
دسته بندی و انوع CAN
در دسته بندی انواع پروتکل CAN سه نوع دسته بندی تحت عناوین CAN کم سرعت، CAN پر سرعت و CAN با نرخ تبادل دیتا منعطف یا Flexible Data Rate وجود دارد. در ادامه به بررسی هر کدام پرداخت شده است.
Low-Speed CAN
CAN سرعت پایین را با نام های CAN مقاوم در مقابل خطا یا Fault-tolerant CAN یا ISO 11898-3 نیز میشناسند. سرعت عملکرد این مدل تا 125Kbps بوده و برای سیستم هایی که دارای اهمیت کمتر و سرعت تبادل دیتا آنچان مهم نباشد مانند ماژول های کنترل بدن، قفل درب، کنترل کننده پنجره و… طراحی شده است. در این مدل حتی اگر یک سیم درگاه قطع یا از کار بیفتد، باز هم عملکرد سیستم ادامه دار خواهد بود.
High-Speed CAN
CAN سرعت بالا ISO 11898-2 قابلیت دستیابی به سرعت تبادل دیتا تا 1Mbps را دارد. این حالت برای کاربرد هایی که به زمان حساس اند همانند سیستم مدیریت موتور یا سیستم ترمز الکترونیکی مناسب میباشد. اما در مقابل خطا همانند حالت Low Speed مقاوم نمیباشد.
CAN FD (Flexible Data Rate)
CAN FD توسعه ای برای شبکه های سرعت بالا با افزایش نرخ تبادل دیتا تا 5Mbps است و در عین حال قابلیت سازگاری با دستگاه های سرعت بالا موجود را نیز حفظ میکند. مزیت اصلی این سیستم توانایی ارسال دیتا حجیم بصورت کارآمد تر در مقابل CAN بوده و همین باعث میشود این سیستم برای خودرو های مدرن که دارای سیستم های الکترونیکی پیچیده تری اند مناسب باشد.
مدل و لایه بندی CAN Bus
یک شبکه CAN بصورت لایه پیوند یا Link Layer و لایه فیزیکی یا Physical Layer توصیف میشود. در CAN سرعت بالا، استاندارد ISO 1189-1 لایه پیوند داده و ISO 11898-2 لایه فیزیکی را بیان میکند. میتوان CAN را در مدل 7 لایه OSI در تصویر زیر مشاهده کرد.
لایه فیزیکی CAN Bus بیانگر مواردی مانند نوع کابل، سطح سیگنال الکتریکی، نیازمندی های node، امپدانس کابل و… میباشد. به عنوان مثال استاندادر ISO 11898-1 بیانگر لایه پیوند داده یا data link Layer بوده و مواردی همانند عناوین زیر را در بر میگیرد.
- Baude rate: دستگاه های CAN باید توسط دو سیم با باود ریت تا 1Mbps برای CAN کلاسیک و تا 5Mbps برای CAN FD به درگاه متصل شوند.
- طول کابل: حداکثر طول کابل میتواند 500 متر (با نرخ تبادل دیتا 125Kbps) و 40 متر (با نرخ تبادل دیتا 1Mbps) باشد.
- Termination: درگاه CAN باید با یک مقاومت 120 اهم در انتهای Bus خاتمه یابد.
نتیجه گیری
در این مطلب به معرفی و کاربرد شبکه CAN پرداخته شد. آنچه که مشخص است براحتی میتوان با استفاده از درگاه CAN Bus و سرعت تبادل دیتا و یا اهمیت اولویت بندی پیام ها از نوع 11 یا 29 بیتی آن استفاده نمود.
امیدوارم از این مطلب کمال بهره را برده باشید. در صورت داشتن هرگونه نظر یا سوال درباره این مطلب یا تجربه مشابه اون رو در انتهای همین صفحه در قسمت دیدگاه ها قرار بدید. در کوتاه ترین زمان ممکن به اون ها پاسخ خواهم داد. اگر این مطلب براتون مفید بود، اون رو به اشتراک بگذارید تا سایر دوستان هم بتوانند استفاده کنند. همینطور میتونید این مطلب را توی اینستاگرام با هشتگ microelecom# به اشتراک بگذارید و پیج مایکروالکام (microelecom@) رو هم منشن کنید.