پروتکل CAN مجموعه ای از قوانین برای انتقال و دریافت پیام در شبکه ای از دستگاه های الکترونیکی است که
کمک می کند تا با یک کابل مشترک ماژول های الکترونیکی متفاوت با هم در ارتباط باشند.
این پروتکل به کمک مهندسین و متخصصان آمده تا پیچیدگی کنترل سیستم های الکترونیکی امروزه را بکاهد و
قابلیت و کارایی سیستم ها را افزایش دهد.
با ما همراه باشید تا به بررسی مسائل و نکات مهم و قابل توجه درباره این پروتکل بپردازیم.
1# پروتکل CAN چیست؟
پروتکل CAN یا شبکه کنترل کننده (Controller Area Network) روشی برای ارتباط بین دستگاه های الکترونیکی تعبیه شده در خودرو است.
مانند سیستم های مدیریت موتور، سیستم تعلیق فعال، قفل مرکزی، تهویه مطبوع، کیسه هوا و غیره.
این ایده توسط Robert Bosch GmbH در سال 1983 برای بهبود کیفیت و ایمنی خودروها، افزایش قابلیت اطمینان خودرو و بهره وری سوخت ارائه شد.
پیشرفت در صنایع الکترونیک و نیمه هادی منجر به فناوری های جدید اما چالش هایی برای مهندسان در صنعت خودرو شد.
به عنوان مثال، لوازم الکترونیکی ویژگی ها و پیچیدگی های بیشتری را ارائه می دهند، از جمله توانایی “ارتباط” بین دستگاه ها.
مهندسان خودرو اغلب وظیفه دارند که چنین دستگاه هایی را با یکدیگر ترکیب کنند و
اطمینان حاصل کنند که آن ها بدون خطا کار می کنند.
CAN این فرآیند را ساده می کند.
به این ترتیب ماژول های الکترونیکی مختلف می توانند با استفاده از یک کابل مشترک با یکدیگر ارتباط برقرار کنند.
2# الزام وجود CAN
هر دستگاه الکترونیکی دارای ECU/MCU (واحد کنترل الکترونیکی/میکروکنترلر) با قوانین خاص خود برای به اشتراک گذاری و انتقال اطلاعات است.
با این حال، برای تعامل دو یا چند دستگاه، تمام دستگاه ها باید به سخت افزار و نرم افزار مجهز شوند تا
بتوانند به درستی ارتباط برقرار کنند.
قبل از استفاده از CAN در وسایل نقلیه، هر وسیله الکترونیکی از طریق سیم (به طور خاص سیم کشی نقطه به نقطه) به دستگاه دیگر متصل می شد.
هنگامی که عملکردهای مورد استفاده فقط عملکردهای پایه ای بودند،
این امر به اندازه کافی موثر عمل می کرد؛
اما یکی از مشکلات عمده مهندسان خودرو با پیشرفت تجهیزات الکترونیکی، اتصال ECU های دستگاه های مختلف بود تا
بتوان اطلاعات زمان واقعی را رد و بدل کرد.
این پروتکل برای حل این مشکل طراحی شده است.
این پروتکل قوانینی را تعیین می کند که بر اساس آن ها دستگاه های الکترونیکی می توانند،
اطلاعات را از طریق یک گذرگاه سریال معمولی با یکدیگر تبادل کنند.
این موضوع باعث کاهش اتصالات سیم کشی و پیچیدگی کلی سیستم شد.
دستگاه های الکترونیکی در یک خودرو را می توان در حوزه های مختلف طبقه بندی کرد و
CAN ارتباط چند حوزه ای را تسهیل می کند که این امر کمک بزرگی به مهندسان خودرو است.
3# پروتکل CAN چگونه اجرا می شود؟
این پروتکل مجموعه ای از قوانین برای انتقال و دریافت پیام در شبکه ای از دستگاه های الکترونیکی است که
تحت این قوانین تعیین شده، پیام ها از یک دستگاه به دستگاهی دیگر منتقل می شوند.
جالب این جاست که CAN با تمرکز خاصی بر صنعت خودرو توسعه یافته است؛
اما معماری و مزایای آن باعث شده است که
چندین صنعت دیگر (مانند راه آهن، هواپیما و بخش های پزشکی) نیز از این پروتکل استفاده کنند.
وسیله های الکترونیکی که از طریق پروتکل CAN ارتباط برقرار می کنند،
به وسیله یک گذرگاه سریال معمولی به یکدیگر متصل می شوند که امکان انتقال پیام بین آن ها را فراهم می کند.
برای وقوع این تبادل داده، گره ها ابتدا به سخت افزار و نرم افزار لازم نیاز دارند.
یک شبکه معمولی CAN از چندین گره تشکیل شده است.
هر دستگاه دارای کنترل کننده، فرستنده، گیرنده CAN و کنترل کننده میزبان (ECU/MCU) است که
وظیفه عملکرد یک گره خاص را بر عهده دارد.
CAN از معماری master-slave پیروی نمی کند.
بدین معنا که هر گره به خواندن و نوشتن داده ها در گذرگاه CAN دسترسی دارد.
هنگامی که گره برای ارسال داده آماده است، در دسترس بودن گذرگاه را بررسی می کند و
یک فریم CAN را روی شبکه می نویسد.
فریم ساختاری است که دنباله معنی داری از بیت یا بایت داده را در شبکه حمل می کند.
4# انواع پروتکل CAN
دو نوع پروتکل وجود دارد: آدرس یا پیام.
در پروتکل مبتنی بر آدرس، بسته های داده حاوی آدرس دستگاهی هستند که
پیامی برای آن در نظر گرفته شده است.
در پروتکل مبتنی بر پیام، هر پیام به جای یک آدرس توسط یک شناسه از پیش تعیین شده مشخص می شود.
فریم CAN منتقل شده معمولاً یک پروتکل مبتنی بر پیام است.
پیام یک بسته داده است که اطلاعات را حمل می کند.
یک پیام CAN از 0 تا 8 بایت داده تشکیل شده است که در یک ساختار خاص (به نام فریم) سازماندهی شده اند.
داده های حمل شده در هر بایت در پروتکل CAN تعریف شده است.
همه گره هایی که از پروتکل CAN استفاده می کنند یک فریم دریافت می کنند و
بسته به شناسه گره، CAN تصمیم گیری می کند که آن را بپذیرد یا نه.
اگر چندین گره پیام را همزمان ارسال کنند، گره با بیشترین اولویت دسترسی به گذرگاه را دریافت می کند.
گره های با اولویت پایین باید منتظر بمانند تا گذرگاه در دسترس باشد.
5# معماری پروتکل CAN
این پروتکل از مدل مرجع OSI موجود برای انتقال داده ها بین گره های متصل به شبکه استفاده می کند.
مدل مرجع OSI مجموعه ای از 7 لایه را نشان می دهد و هر لایه عملکرد خاص خود را دارد که به شرح زیر است:
- لایه کاربردی: این لایه به عنوان یک پنجره برای دسترسی کاربران و فرآیندهای برنامه به خدمات شبکه است.
- لایه نمایشی: به عنوان یک مترجم برای داده ها در قالب استفاده شده توسط لایه برنامه در انتهای دریافت کننده ایستگاه عمل می کند.
- لایه جلسه: این لایه امکان ایجاد، برقراری ارتباط و خاتمه جلسات بین فرآیندهای اجرا شده بر
روی دو دستگاه مختلف را فراهم می کند که برقراری امنیت، شناسایی نام و ورود به سیستم را انجام می دهد. - لایه انتقال: لایه انتقال اطمینان می دهد که پیام ها بدون خطا، به ترتیب و بدون از دست دادن یا تکراری ارسال می شوند.
- لایه شبکه: این لایه یک سیستم آدرس دهی منطقی را به انتها ارائه می دهد تا
بسته ای از داده ها در چندین لایه هدایت شوند و اتصالات شبکه را ایجاد، متصل و خاتمه دهند. - لایه پیوند داده: این لایه داده های خام را به فریم های منتقل شده از لایه فیزیکی بسته بندی می کند.
این لایه وظیفه انتقال فریم ها از یک دستگاه به دستگاه دیگر بدون خطا را بر عهده دارد.
پس از ارسال فریم، منتظر تأیید دستگاه دریافت کننده است. - لایه فیزیکی: لایه فیزیکی بیت را از یک دستگاه به دستگاه دیگر منتقل می کند و
انتقال جریان بیت را تنظیم می کند.
پروتکل CAN از دو لایه پایین تر OSI یعنی لایه فیزیکی و لایه پیوند داده استفاده می کند.
5 لایه باقیمانده که لایه های ارتباطی هستند برای طراحان سیستم بهینه سازی شده و
با توجه به نیازهای خود سازگار می شوند.
6# مزایای CAN
- هزینه پایین: از آن جا که یک گذرگاه سریال CAN از دو سیم (با حجم بالا و هزینه کم) استفاده می کند،
با قیمت مناسب عملکرد خوبی را ارائه می دهد. - قابل اعتماد بودن: CAN مکانیزم های مناسبی را برای تشخیص و مدیریت خطا ارائه می دهد که
به کمک این مکانیزم ها می توانیم انتقال داده قابل اطمینانی را داشته باشیم.
همچنین این پروتکل تا حد زیادی از تداخل الکترومغناطیسی مصون است. - انعطاف پذیر بودن: گره های CAN توسط پروتکل محدود نمی شوند و می توانند به راحتی متصل یا قطع شوند.
- سریع بودن: CAN سرعت داده 1 مگابیت بر ثانیه در طول 40 متر گذرگاه را پشتیبانی می کند.
- محدودیت خطا: گره های معیوب ارتباط را مختل نمی کنند.
- قابلیت پخش: پیام ها را می توان به یک/چند/همه گره ها ارسال کرد.
- استاندارد: ISO پروتکل CAN را از طریق ISO-DIS 11898 (برای برنامه های با سرعت بالا) و ISO-DIS 11519-2 (برای برنامه های با سرعت پایین) استاندارد کرده است.
پروتکل CAN همچنین توسط سازمان های صنعتی مانند SAE استاندارد شده است.
نظرتون درباره این مقاله چیه؟
ما رو راهنمایی کنید تا اون رو کامل تر کنیم و نواقصش رو رفع کنیم.
توی بخش دیدگاه ها منتظر پیشنهادهای فوق العاده شما هستیم.
سپاس از این مطلب مفید.
تفاوت پیام در حالت data , remote چی هست؟
سلام و درود خدمت شما همراه گرامی
ممنون از اینکه همراه ما هستید و خرسندیم که مطالب برای شما مفید بودند.
با توجه به اینکه ما پاسخگوی پشتیبان سایت هستیم و اطلاعات فنی تکمیلی درمورد مطالب نداریم، از شما درخواست میکنم که سوالتون رو در تالار گفتگوی نماتک به آدرس زیر مطرح بفرمایید تا عزیزانی که در این حوزه تجربه و سابقه کاری دارند پاسخگوی شما باشند.
موفق باشید.
آدرس تالار گفتگو: https://katibeha.com/
با سلام
اگر بحث هزینه ها رو کنار بگذاریم بهترین پروتکل ارتباطی که از نظر ایمنی بالاترین سطح را داشته باشد و کاربرد آن مثل can قابلیت عیب یابی تجهیزات را داشته باشد و از طرفی بین دیواس ها اطلاعات رد و بد شود چی رو پیشنهاد می دید.
سلام خدمت شما دوست عزیز
لطفا سوالات تخصصی خودتان را در قسمت فروم سایت به ادرس لینک زیر مطرح بفرمایید تا عزیزان راهنمایی کنند
https://katibeha.com
از همراهی شما با تیم نماتک سپاسگزار هستیم.
سلام
پروتکل CAN در بیشترین حال می تونه ۸ بایت دیتا رو منتقل کنه نه ۱۰ بایت !
احتمالا اشتباه تایپی بوده.
سلام خدمت شما جناب مهندس شوقی بزرگوار
ممنون از توجه و دقت نظر شما حق کاملا با شماست و هر فریم دیتا در این پروتکل نهایتا امکان انتقال ۸ بایت داده را داشته و این اشتباه در زمان نوشتن متن اتفاق افتاده که ۱۰ مورد نوشته شده
این بخش متن در سایت ادیت شد
از همراهی شما و تذکر به موقع تون صمیمانه سپاسگزاریم
موفق و پیروز باشید