CAN bus
🟦 مطلب آموزشی
CAN Bus (Controller Area Network)
خلاصه: CAN Bus یا Controller Area Network یک پروتکل ارتباطی سریال چندگرهای (Multi‑master) و مبتنی بر پیام است که برای ارتباط قابلاعتماد میان میکروکنترلرها و تجهیزات الکترونیکی در محیطهای صنعتی و خودرویی طراحی شده است. این فناوری در دهه ۱۹۸۰ توسط شرکت Bosch معرفی شد و به دلیل مقاومت بالا در برابر نویز الکترومغناطیسی، مکانیزم داوری بدون تخریب (Non‑destructive Arbitration) و قابلیت تشخیص خطا، به یکی از مهمترین استانداردهای ارتباطی در سیستمهای تعبیهشده، خودروها و شبکههای صنعتی تبدیل شده است. CAN Bus پایه بسیاری از پروتکلهای صنعتی مانند DeviceNet و CANopen نیز محسوب میشود.
موضوعات مرتبط: مهندسی برق، شبکه صنعتی، پروتکل ارتباطی، DeviceNet، CANopen، اتوماسیون صنعتی
سطح مطلب: تخصصی
نویسنده: تیم تحریریه لاله زار آنلاین
CAN Bus (Controller Area Network)
CAN Bus مخفف Controller Area Network یک پروتکل ارتباطی سریال مقاوم در برابر نویز است که برای ارتباط میان کنترلرها، حسگرها و عملگرها در سیستمهای توزیعشده طراحی شده است. این پروتکل از مدل ارتباطی مبتنی بر پیام (Message-based Communication) استفاده میکند و به گرههای مختلف شبکه اجازه میدهد بدون نیاز به یک کنترلر مرکزی با یکدیگر تبادل داده داشته باشند.
CAN Bus در ابتدا برای کاهش پیچیدگی سیمکشی در خودروها توسعه یافت، اما به دلیل قابلیت اطمینان بالا و هزینه کم، به سرعت در صنایع مختلف از جمله اتوماسیون صنعتی، تجهیزات پزشکی، ماشینآلات صنعتی و سیستمهای رباتیک مورد استفاده قرار گرفت.
تاریخچه
پروتکل CAN در سال ۱۹۸۳ توسط شرکت آلمانی Bosch توسعه داده شد. هدف اصلی این فناوری ایجاد یک شبکه ارتباطی سریع و قابلاعتماد برای سیستمهای الکترونیکی خودرو بود تا جایگزین سیمکشیهای پیچیده و سنگین در خودروها شود.
در سال ۱۹۸۶ این پروتکل به طور رسمی معرفی شد و در سال ۱۹۹۳ استاندارد بینالمللی ISO 11898 برای آن منتشر گردید. این استاندارد ساختار لایه فیزیکی و لایه پیوند داده CAN را تعریف میکند.
امروزه CAN یکی از پرکاربردترین پروتکلهای ارتباطی در سیستمهای تعبیهشده و صنعتی محسوب میشود.
معماری شبکه
شبکه CAN یک ساختار چندمستر (Multi‑Master) دارد؛ به این معنا که هر گره در شبکه میتواند در صورت آزاد بودن باس اقدام به ارسال پیام کند.
در این معماری:
- هیچ کنترلر مرکزی وجود ندارد.
- همه گرهها پیامهای شبکه را دریافت میکنند.
- هر پیام دارای یک شناسه (Identifier) است که نوع داده و اولویت آن را مشخص میکند.
گرههای شبکه معمولاً شامل اجزای زیر هستند:
- میکروکنترلر یا پردازنده
- کنترلر CAN
- ترنسیور CAN برای اتصال به باس فیزیکی
لایه فیزیکی
در لایه فیزیکی، CAN از انتقال داده به صورت سیگنال تفاضلی استفاده میکند. این روش باعث افزایش مقاومت در برابر نویز الکترومغناطیسی در محیطهای صنعتی میشود.
دو سیم اصلی در شبکه CAN عبارتند از:
- CAN_H (High)
- CAN_L (Low)
در حالت عادی، اختلاف ولتاژ بین این دو سیم بسیار کم است. هنگام ارسال بیت غالب (Dominant)، اختلاف ولتاژ افزایش یافته و داده منتقل میشود.
در دو انتهای شبکه باید از مقاومتهای ترمیناتور (Termination Resistor) با مقدار ۱۲۰ اهم استفاده شود تا از انعکاس سیگنال جلوگیری شود.
روش دسترسی به رسانه
CAN از مکانیزم دسترسی CSMA/CR (Carrier Sense Multiple Access with Collision Resolution) استفاده میکند.
در این روش:
- هر گره قبل از ارسال پیام وضعیت باس را بررسی میکند.
- اگر باس آزاد باشد، ارسال پیام آغاز میشود.
- در صورت ارسال همزمان چند پیام، مکانیزم داوری (Arbitration) فعال میشود.
داوری بدون تخریب
یکی از مهمترین ویژگیهای CAN، Non‑destructive Arbitration است. در این مکانیزم، پیامهایی که شناسه با اولویت بالاتر دارند (عدد کوچکتر)، بدون ایجاد اختلال در شبکه ارسال میشوند.
در نتیجه پیامهای مهمتر همیشه زودتر منتقل میشوند و هیچ دادهای از بین نمیرود.
ساختار فریم در CAN
پیامها در CAN به صورت فریم (Frame) منتقل میشوند. ساختار اصلی یک فریم داده شامل بخشهای زیر است:
- Start of Frame (SOF) – شروع فریم
- Arbitration Field – شامل شناسه پیام
- Control Field – مشخصات طول داده
- Data Field – داده واقعی (تا ۸ بایت در CAN کلاسیک)
- CRC Field – بررسی صحت داده
- ACK Field – تایید دریافت پیام
- End of Frame (EOF) – پایان فریم
انواع فریم در CAN
در پروتکل CAN چهار نوع فریم اصلی وجود دارد:
- Data Frame – برای انتقال داده
- Remote Frame – برای درخواست داده از یک گره دیگر
- Error Frame – برای اعلام خطا در شبکه
- Overload Frame – برای ایجاد تاخیر در پردازش پیام
مکانیزمهای تشخیص خطا
یکی از نقاط قوت CAN Bus، قابلیتهای پیشرفته تشخیص خطا است. این پروتکل چندین مکانیزم برای شناسایی خطا دارد:
- بررسی CRC
- بررسی بیتهای قالب فریم
- تشخیص خطای بیت (Bit Monitoring)
- بررسی بیتهای افزوده (Stuff Bit)
در صورت بروز خطا، گرهها یک Error Frame ارسال میکنند تا پیام مجدداً منتقل شود.
سرعت انتقال داده
سرعت انتقال داده در CAN به طول شبکه وابسته است. در استاندارد CAN کلاسیک، حداکثر سرعت انتقال به صورت زیر است:
| سرعت انتقال | حداکثر طول باس | 1 Mbps | حدود 40 متر |
|---|---|---|---|
| 500 Kbps | حدود 100 متر | ||
| 125 Kbps | حدود 500 متر |
نسخههای جدیدتر مانند CAN FD امکان انتقال داده با سرعت و حجم بیشتر را فراهم میکنند.
کاربردها
CAN Bus در حوزههای مختلف مهندسی برق و الکترونیک کاربرد دارد، از جمله:
- صنعت خودرو
ارتباط میان ECUها، سیستم ترمز ABS، موتور، گیربکس و سیستمهای ایمنی.
- اتوماسیون صنعتی
استفاده در پروتکلهایی مانند DeviceNet و CANopen برای ارتباط میان تجهیزات سطح میدان.
- ماشینآلات صنعتی
کنترل موتور، درایوها و سیستمهای هیدرولیک.
- رباتیک و سیستمهای تعبیهشده
ارتباط میان ماژولهای کنترل در رباتها و تجهیزات هوشمند.
مزایا
مهمترین مزایای CAN Bus عبارتند از:
- مقاومت بالا در برابر نویز الکترومغناطیسی
- قابلیت اطمینان بالا در محیطهای صنعتی
- ساختار ساده و کمهزینه
- مکانیزم داوری بدون تخریب
- تشخیص و مدیریت خطا در سطح شبکه
محدودیتها
با وجود مزایای فراوان، CAN محدودیتهایی نیز دارد:
- محدودیت در حجم داده (۸ بایت در CAN کلاسیک)
- سرعت کمتر نسبت به شبکههای مبتنی بر اترنت صنعتی
- محدودیت تعداد گرهها در برخی پیادهسازیها
به همین دلیل در سیستمهای مدرن، گاهی از فناوریهای مکمل مانند Ethernet صنعتی استفاده میشود.
جمعبندی
CAN Bus یکی از مهمترین فناوریهای ارتباطی در سیستمهای الکترونیکی و صنعتی است که با فراهم کردن ارتباط قابلاعتماد، مقاوم در برابر نویز و کمهزینه میان تجهیزات، نقش مهمی در توسعه سیستمهای کنترلی مدرن ایفا کرده است. این پروتکل به عنوان پایه بسیاری از شبکههای صنعتی و خودرویی، همچنان یکی از استانداردهای کلیدی در مهندسی برق و سیستمهای تعبیهشده محسوب میشود.
جستارهای وابسته
منابع
- Bosch, "CAN Specification Version 2.0".
- ISO 11898 – Road Vehicles Communication Standard.
- Wilfried Voss, "A Comprehensive Guide to Controller Area Network".
