آشنایی با پروتکل یا شبکه CAN در مالتی پلکس+پادکست
- نویسنده: ثمین خودرو
- ۱ دیدگاه
فهرست مطالب
پروتکل CAN که مخفف Controller Area Network بیشترین کاربرد را در شبکه مالتی پلکس دارد و بزرگترین استاندارد برای شبکههای داخلی خودرو محسوب میشود.
اگه زیاد حوصله خودن ندارید می تونید پادکست زیر رو گوش کنید!
CAN BUS چیست؟
ماشین شما شبیه بدن انسان است:
شبکه کنترل کننده (گذرگاه CAN) مانند یک سیستم عصبی است که ارتباطات در شبکه را قادر می سازد.
“گره” یا “واحدهای کنترل الکترونیکی” (ECU) مانند بخش هایی از بدن هستند که از طریق پروتکل CAN به هم متصل شده اند. اطلاعات حس شده توسط یک قسمت (سنسور) را می توان با قسمت (های) دیگر به اشتراک گذاشت.
بنابراین ECU چیست؟
در سیستم CAN باس خودرو ، ECU ها می توانند به عنوان مثال یک ایسیو موتور، کیسه هوا، سیستم صوتی و غیره باشند.
یک ماشین مدرن و امروزی ممکن است تا ۷۰ ایسیو داشته باشد! و هر یک از آنها ممکن است دارای اطلاعاتی باشند که باید با دیگر قسمت های شبکه به اشتراک گذاشته شود.
تاریخچه پروتکل CAN
در ابتدای سال ۱۹۸۰ میلادی مهندسان شرکت بوش Bosch در حال ارزیابی شبکههای باس با توجه به امکان استفاده از آنها در خودروهای سواری بودند. چون هیچکدام از پروتکلهای موجود قادر به برآورده کردن نیازمندیهای مهندسان خودرو نبودند.
در سال ۱۹۸۳ پروژهای در شرکت بوش برای توسعه یک پروتکل سریال BUS جدید تعریف شد. اگرچه در پروتکل باس جدید عمدتا فرض شده بود که قابلیتهای عملیاتی جدید به اجرا گذارده شود اما اعمال فشاری از طرف خودروسازان برای توسعه این شبکه وجود نداشت.
همزمان با این رخداد، شرکت بنز به منظور اتصال سه واحد الکترونیکی در خودرو بنز کلاس E به دنبال شبکهای مناسب برای اتصال این واحدهای الکترونیکی به یکدیگر بود. چون روشهای نقطه به نقطه موجود، توانایی کافی برای برقراری ارتباط مناسب این واحدها به یکدیگر را نداشت.
به همین دلیل در جریان این توسعهی مشخصات پروتکل جدید بوش، مهندسان شرکت بنز نیز لا آنها همکاری کردند تا در فوریه سال ۱۹۸۶ شبکه CAN متولد شد. پروتکل CAN به گونهای طراحی شد که بتواند تعداد کمی پیام (حداکثر ۸ بایت) را با قدرت بالایی از اطمینان (۱۵ بیت CRC برای هر پیام) به صورت Multi-Master (چند فرمانده) انتقال دهد.
در اواسط سال ۱۹۸۷ شرکت اینتل (Intel) اولین کنترلر پروتکل CAN را با شماره ۸۲۵۲۶ معرفی کرد و به فاصله کوتاهی پس از آن، شرکت فیلیپس نیز کنترلر دیگیری برای پروتکل CAN با نام 82C200 را به بازار عرضه کرد. در ابتدای سال ۱۹۹۰، مشخصات پروتکل قابل ارائه شرکت بوش برای معرفی به استاندارد بینالمللی پیشنهاد شد. پس از مشاجرههای حقوقی به ویژه درگیری با پروتکل VAN که از طرف بیشتر خودروسازان فرانسوی توسع داده شده بود، سرانجام در استاندارد ISO11898 در نوامبر ۱۹۹۳ منتشر شد
امروزه بالغ بر ۲۰ شرکت تولید کننده قطعات نیمه هادی قطعاتی را با واسط (Interface) پروتکل CAN تولید و عرضه می کنند. و تقریبا هر خودرو جدیدی که در اروپا تولید میشود، حداقل به یک شبکه CAN مجهز شده است. علاوه بر آن از پروتکل CAN در کنترلرهای صنعتی و سایر انواع وسایل نقلیه مانند کشتیها و قطارها نیز استفاده میشود.
پروتکل CANopen به طور وسیعی برای کاربردهای CAN در زمینه اتوماسیون صنعتی توزیع شده کاربرد دارد. قطعات مختلف تحت پروتکل CANopen میتوانند مستقل از سازنده آنها به یکدیگر متصل شوند.
مزایا پروتکل CAN
ویژگیهای مثبت و مزایا پروتکل CAN را میتوان به صورت زیر دسته بندی کرد:
- ارزان
- فوق العاده مطمعن و معتبر
- سریع تا 1Mb/s
- قابل اعتماد در شرایط مختلف به ویژه شرایط سخت محیطی مانند امواج الکترومغناطیسی، حرارت و …
- قطع خودکار گرهها در صورتی که از نظر فیزیکی در آنها خرابی مشاهده شود
- قابلیت الویت بندی
- امکان بروز خطای کشف نشده در حد بسیار کم
تاریخچه ایجاد و انتشار پروتکل CAN
رویداد | سال |
---|---|
شروع طرح ایجاد شبکه داخلی برای خودرو در شرکت بوش | ۱۹۸۳ |
معرفی رسمی پروتکل شبکه CAN | ۱۹۸۶ |
ارایه اولین تراشههای کنترل کننده شبکه CAN توسط شرکتهای اینتل و نیمه رساناهای فیلیپس | ۱۹۸۷ |
شرکت بوش خصوصیات شبکه CAN II رامنتشر کرد | ۱۹۹۱ |
گروه بین المللی کاربران و تولیدکنندگان شبکه CAN در اتوماسیون CIA تاسیس شد | ۱۹۹۲ |
پروتکل کاربرد لایه در شبکه CAN توسط CIA انتشار یافت | ۱۹۹۲ |
اولین خودرو در شرکت بنز با استفاده از پروتکل CAN تولید شد | ۱۹۹۲ |
استاندارد ISO11898 منتشر شد | ۱۹۹۳ |
اصلاح استاندارد ISO11898 منتشر شد | ۱۹۹۵ |
پروتکل CAN OPEN توسط CIA منتشر شد | ۱۹۹۵ |
روش انتقال اطلاعات در گذرگاه اطلاعات در پروتکل CAN
روش کار در این سیستم (پروتکل CAN) بسیار ساده و شبیه یک کنفرانس تلفنی بین چند مشترک است. یک مشترک (واحد کنترل کننده) صحبت میکند (اطلاعات در داخل شبکه میفرستد) و دیگر مشترکان گوش میکنند. این صحبتها مورد علاقه بعضی از مشترکها بوده پس به آن گوش کرده و به کار میبندند. اما دسته دیگر شنوندهها آن را بی ارزش شمرده و به آن اعتنا نمیکنند.
شبیه این ارتباط در خودرو و بین واحدهای کنترل کننده مختلف که از طریق باس با یکدیگر در حال تبادل اطلاعات هستند انجام میشود.
در اینجاست که پروتکل CAN مفید است:
سیستم گذرگاه CAN هر ECU را قادر می سازد تا با سایر ECU ها ارتباط برقرار کند. بدون نیاز به سیم کشی اختصاصی پیچیده.
به طور خاص، یک ECU می تواند اطلاعات (به عنوان مثال داده های سنسور) را از طریق گذرگاه CAN شامل دو سیم CAN سرعت پایین (Low Speed CAN) و CAN سرعت بالا (High Speed CAN) آماده و پخش کند. دادههای پخش شده توسط سایر ECU های شبکه CAN پذیرفته میشود، و سپس هر ECU می تواند دادهها را بررسی کرده و در مورد دریافت یا نادیده گرفتن آنها تصمیم گیری کند.
در زمینه شبکه های خودروها (شبکه مالتی پلکس)، اغلب با انواع مختلفی از انواع شبکه مواجه می شوید.
پروتکل CAN با سرعت بالا (High Speed CAN): تمرکز این مقاله بر روی پروتکل CAN با سرعت بالا (ISO 11898) است. این استاندارد محبوب ترین استاندارد CAN برای لایه فیزیکی است و از نرخ بیت از ۴۰ کیلوبیت بر ثانیه تا ۱ مگابیت بر ثانیه (CAN کلاسیک) پشتیبانی میکند. همچنین به عنوان پایه ای برای چندین پروتکل لایه بالاتر مانند OBD2 ، J1939 ، NMEA 2000 ، CANopen و غیره عمل می کند. نسل دوم CAN به عنوان CAN FD (CAN با نرخ داده انعطاف پذیر) نامیده میشود.
پروتکل CAN با سرعت پایین (Low Speed CAN): این استاندارد نرخ بیت را از ۴۰ کیلوبیت بر ثانیه تا ۱۲۵ کیلوبیت بر ثانیه فعال می کند و اجازه می دهد تا ارتباط باس CAN ادامه یابد حتی اگر خطایی در یکی از دو سیم وجود داشته باشد. بنابراین از آن به عنوان “خطا پذیری CAN” نیز یاد می شود. در این سیستم ، هر گره CAN ترمینال CAN خود را دارد.
اترنت داخلی خودرو: این امر به طور فزاینده ای در صنعت خودرو برای پشتیبانی از الزامات پهنای باند زیاد ADAS (سیستم های کمک راننده پیشرفته) ، سیستم های سرگرمی، دوربین ها و غیره در حال گسترش است، اما اترنت خودرو نسبت به CAN bus سرعت انتقال داده بسیار بالاتری را ارائه می دهد، اما فاقد برخی موارد است.
ویژگی های ایمنی/عملکرد کلاسیک CAN و CAN FD. به احتمال زیاد ، در سالهای آینده شاهد استفاده از اترنت خودرو، CAN FD و CAN XL در توسعه خودرو و صنعت جدید خواهیم بود.
روی کار آمدن پروتکل CAN FD
با گسترش عملکرد خودرو، بار روی CAN BUS نیز افزایش می یابد. برای حمایت از این، پروتکل CAN FD (با نرخ داده قابل انعطاف) به عنوان گذرگاه CAN “نسل بعدی” طراحی شده است.
به طور خاص، CAN FD سه مزیت (در مقایسه با CAN کلاسیک) ارائه می دهد:
- سرعت داده را تا ۸ مگابیت بر ثانیه (در مقابل ۱ مگابیت بر ثانیه) فعال می کند.
- این اجازه می دهد تا بارهای داده تا ۶۴ بایت (در مقابل ۸ بایت).
- این باعث افزایش امنیت از طریق احراز هویت می شود.
به طور خلاصه، CAN FD سرعت و کارایی را افزایش می دهد و بنابراین در خودروهای جدیدتر نیز در حال اجرا است. این امر همچنین نیاز فزایندهای را برای ثبت کننده داده های IoT CAN FD (اینترنت اشیا) ایجاد میکند.
“در آیندهای نزدیک CAN FD جایگزین مرحله به مرحله Classic CAN می شود”
CAN Frame چیست؟
ارتباط از طریق گذرگاه CAN از طریق فِریمهای CAN انجام می شود.
در زیر یک فریم استاندارد CAN با شناسه ۱۱ بیت (CAN 2.0A) وجود دارد که در اکثر خودروها مورد استفاده قرار میگیرد. فریم شناسه ۲۹ بیتی (CAN 2.0B) به جز شناسه طولانیتر یکسان است. به عنوان مثال، در پروتکل J1939 برای خودروهای سنگین استفاده میشود.
توجه داشته باشید که CAN ID و Data با رنگهای آبی و نارنجی برجسته شده اند. این موارد هنگام ضبط (Record) دادههای پروتکل CAN مهم هستند. همانطور که در تصویر زیر خواهیم دید.
SOF: شروع فریم یک “۰ غالب” است تا به سایر گرهها بگوید که یک گره CAN قصد صحبت دارد.
ID: شناسه مشخص کننده فریم است. مقادیر پایین ترجیح بیشتری دارند.
RTR: درخواست انتقال از راه دور نشان می دهد که آیا یک گره داده ارسال میکند یا از یک گره دیگر داده اختصاصی درخواست میکند.
Control: کنترل شامل شناسه افزونه (IDE) است که برای ۱۱ بیت ‘۰ غالب’ است. همچنین شامل کد طول داده ۴ بیتی (DLC) است که طول بایتهای دادهای را که باید منتقل شوند (۰ تا ۸ بایت) را مشخص می کند.
Data: دادهها شامل بایتهای داده با نام بارگذاری دیگر است که شامل سیگنال های CAN است که میتوان برای اطلاعات استخراج و رمزگشایی کرد.
CRC: از بررسی افزونگی چرخهای برای اطمینان از یکپارچگی دادهها استفاده میشود.
ACK: شکاف ACK نشان میدهد که آیا گره دادهها را به درستی تصدیق کرده و دریافت کرده است.
EOF: EOF پایان فریم CAN را نشان میدهد.
بررسی شبکه کن در اسیلوسکوپ
در اینجا تصویری از یک گذرگاه ISO 11898 CAN کاملاً معمولی است که با سرعت ۱ مگابیت بر ثانیه کار می کند. فرستنده/گیرنده (transceiver) 82C251 است. به عبارت دیگر، لایه فیزیکی همان لایه ای است که توسط ISO 11898 مشخص شده است.
اندازه گیری بین CAN_H و GND انجام شد. توجه داشته باشید که ولتاژهای BUS ساکن و مغلوب در حدود ۲.۵ ولت هستند. هنگامی که یک بیت غالب منتقل می شود ولتاژ به حدود ۳.۵ ولت افزایش می یابد.
اکنون اینجا همان BUS است، اما اندازهگیری بین CAN_L و GND انجام میشود.
در اینجا پیام دیگری وجود دارد که با سرعت ۱۲۵ کیلوبیت بر ثانیه ارسال شده است. شناسه پیام (۱۱ بیتی) ۳۰۰ یا 12c در هگزادسیمال است. با دقت نگاه کنید و باید بتوانید اولین بیت های پیام را شناسایی کنید.
در اینجا یک تصویر پیچیده تر است. همان پیام فوق را نشان می دهد، شناسه ثابت (۱۱ بیتی) ۳۰۰ و هنوز ۱۲۵ کیلوبیت بر ثانیه، اما بدون پایان در CAN BUS. در این بررسی، کابل CAN یک کابل نواری مسطح کوتاه بود.
بنابراین، چه اتفاقی می افتد؟ این ۱۲۵ کیلوبیت بر ثانیه است، بنابراین یک بیت ۸ میکروثانیه است.
۱- ابتدا فرستنده یک بیت شروع می فرستد. این یک ‘۰’ منطقی است، یعنی یک سطح غالب.
۲- سپس شناسه (ID) منتقل می شود. ۳۰۰ اعشاری 12c در هگزا یا ۰۰۱ ۰۰۱۰ ۱۱۰۰ در دودویی است. دو صفر اول به خوبی منتقل می شوند. این ۲۴ میکروثانیه سطح غالب را همانطور که در تصویر مشاهده می کنید توضیح می دهد.
۳- سپس یک ‘۱’ باید مخابره شود، اما از آنجایی که BUS خاتمه نمی یابد، شیب افزایشی آن چیزی نیست که باید می بود. نود فرستنده اکنون فکر می کند که یک ‘۰’ را در BUS دیده است.
۴- از آنجایی که این اتفاق در arbitration phase می افتد، فرستنده ارسال را متوقف می کند – فکر می کند که نود دیگری در حال ارسال است. اکنون BUS مغلوب خواهد ماند، زیرا هیچ کس در واقع مخابره نمی کند.
۵- پس از ۶ بیت مغلوب، فرستنده و گیرنده هر دو خطای stuff error را تشخیص می دهند و رسیدگی به خطا شروع می شود. در این مرحله، ۸۰ میکروثانیه گذشته است (یک بیت شروع، دو بیت ‘۰’، یک بیت اشتباه تفسیر شده، و شش بیت مغلوب – مجموعا ۱۰ بیت = 80 میکروثانیه).
۶- همه نودهایی که خطای مسائل را تشخیص می دهند اکنون شروع به ارسال یک فریم خطا می کنند. در این حالت فریم خطا غیرفعال است زیرا تعدادی خطا قبل از ثبت تصویر بالا ایجاد شده است، بنابراین فرستنده خطا غیرفعال است. یک فریم خطای غیرفعال درست مانند یک فریم خطای فعال است، اما با یک سطح مغلوب منتقل می شود و بنابراین در BUS قابل مشاهده نیست.
۷- فریم خطای غیرفعال برای ۶ بیت بار غالب است.
۸- سپس همه نودها منتظر یک دوره ۸ بیت مغلوب هستند که به آن جداکننده خطا (error delimiter) می گویند.
۹- سپس همه نودها منتظر یک دوره ۳ بیت مغلوب هستند که به آن وقفه (intermission) می گویند.
۱۰- با جمع بندی اعداد بالا، به ۱+۶+۶+۸+۳ = 24 بیت مغلوب = 192 میکروثانیه می رسیم (تصویر را ببینید!).
تفاوت کن پایه (Basic CAN) و فول
اصطلاحات “CAN پایه” و “CAN کامل” از دوران کودکی CAN سرچشمه می گیرند! روزی روزگاری کنترلر Intel 82526 CAN وجود داشت که یک رابط به سبک DPRAM را برای برنامه نویس فراهم می کرد. سپس فیلیپس با 82C200 همراه شد که از یک مدل برنامه نویسی گرا FIFO و توانایی های محدود فیلتر استفاده می کرد.
برای تمایز بین این دو مدل برنامه نویسی، مردم به دلایلی راه اینتل را “CAN کامل” و روش فیلیپس را “CAN پایه” نامیدند. امروزه، اکثر کنترلکنندههای CAN هر دو مدل برنامهنویسی را مجاز میدانند، بنابراین دلیلی برای استفاده از اصطلاحات “CAN کامل” و “CAN پایه” وجود ندارد – در واقع، این عبارات میتوانند باعث سردرگمی شوند و باید از آنها اجتناب شود.
البته، یک کنترل کننده “Full CAN” می تواند با یک کنترل کننده “Basic CAN” ارتباط برقرار کند و بالعکس. هیچ مشکل سازگاری وجود ندارد.
یادگیری شبکه CAN به صورت تئوری و عملی
آموزشگاه خودرویی شرکت ثمین خودرو به صورت تخصصی به آموزش مالتی پلکس خودروهای ایرانی و فرانسوی میپردازد. شما با شرکت در کلاسهای آموزش مالتی پلکس میتوانید به صورت دقیق با پروتکلها و استانداردهای مختلف شبکه مالتی پلکس آشنا شوید. ابتدا شما به صورت تئوری مباحث را فرا میگیرید، روی استند آموزشی در کلاس موارد را تست میکنید و یک روز کامل به صورت عملی بر روی خودرو با انواع تستها، پروتکل CAN، پروتکل VAN، و ایرادات شایع آشنا میشوید.
برای ثبتنام در دوره مالتی پلکس ایران و دوره مالتی پلکس فرانسه کافی است با شماره ۰۲۱۶۶۸۴۴۴۷۷ تماس بگیرید.
نظرات خود را با ما در صفحه اینستاگرام SKP به اشتراگ بگذارید؛
اگر این مقاله برای شما مفید بود، لطفا آن را از طریق شبکههای اجتماعی برای دوستان خودتان ارسال کنید.
یک ایده درمورد “آشنایی با پروتکل یا شبکه CAN در مالتی پلکس+پادکست”
مرسی از زحمتی که کشیدید به عنوان یک همکار نظرم اینه که بجای تاریخچه و بحث تخصصی فرم و بیت و… یک مثال روان و قابل فهم تر برای قشری که تحصیلات عالی ندارند رو ارائه بدید تا مطلب قابل درک و فهم باشه
مثلا در پیکربندی نودهای چه مواردی can h و can l بدون گزینه باید باشه و هرکدوم از این پروتوکل ها چه مواردی رو در بر میگیره