مقاله جامع درباره CAN باس: داوری و کاربردها
شبکه CAN یا Controller Area Network یکی از فناوریهای کلیدی در حوزه کنترل و ارتباطات خودرویی و صنعتی است که به دلیل قابلیت اطمینان بالا و سرعت مناسب، در بسیاری از سیستمهای تعبیه شده استفاده میشود. در این مقاله جامع به بررسی ساختار، عملکرد، پروتکل، روشهای داوری (Arbitration) در CAN باس و کاربردهای متنوع آن میپردازیم.
مقدمهای بر CAN باس
شبکه CAN یک استاندارد ارتباطی سریال است که توسط شرکت Bosch در سال 1983 توسعه یافته و هدف اصلی آن فراهمکردن یک شبکه قابل اطمینان و مقاوم در برابر نویز برای کنترلکنندههای مختلف در خودرو است. این شبکه امکان تبادل دادهها بین چندین گره (Node) را با استفاده از یک زوج سیم پیچخورده فراهم میکند و تا به امروز به عنوان یکی از پرکاربردترین استانداردهای ارتباطی در خودروها، ماشینآلات صنعتی، پزشکی و سیستمهای هوافضا شناخته میشود.
ویژگیهای اصلی شبکه CAN
- ارتباط چندگانه (Multi-master): هر گره در شبکه میتواند پیام ارسال کند.
- پشتیبانی از تشخیص و اصلاح خطا: مکانیزمهای پیچیده برای شناسایی خطا و حذف پیامهای مخدوش.
- سرعت داده مناسب: معمولاً تا 1 مگابیت بر ثانیه.
- ساختار پیامهای کوتاه و بهینه: حداکثر 8 بایت داده در هر فریم داده CAN.
ساختار پروتکل CAN و جزئیات فنی
فریمهای CAN شامل چند نوع اصلی هستند؛ فریم داده، فریم تأیید، فریم آر بیترشن (داوری) و غیره. به تعریف دقیق هر فریم و ساختار آن میپردازیم:
5 بخش اصلی فریم داده CAN
- فیلد شروع فریم (Start of Frame): یک بیت حاکم (dominant) که شروع انتقال پیام را مشخص میکند.
- شناسه پیام (Identifier): 11 یا 29 بیت که آدرس و اولویت پیام را مشخص میکند.
- فیلد کنترلی (Control Field): شامل 6 بیت که طول داده (Data Length Code) و اطلاعات دیگر در آن میباشد.
- فیلد داده (Data Field): شامل 0 تا 8 بایت داده واقعی پیام.
- فیلد CRC: 15 بیت برای بررسی صحت پیام و تشخیص خطا.
مکانیزم داوری در CAN
در شبکههای چندگانه مانند CAN، وقتی چند گره همزمان تلاش به ارسال پیام میکنند، نیاز به روشی برای تعیین اولویت دارد. این کار با مکانیزم داوری (Arbitration) انجام میشود.
اصول داوری در CAN
کنترل اولویت توسط فیلد شناسه پیام که در ابتدای فریم قرار دارد صورت میگیرد. اهمیتی که شناسه پیام دارد دو جنبه است:
- در مقدار بیتها، بیت صفر منطقی نامیده میشود (dominant) و بیت یک بیت غیرمنطقی (recessive).
- در مقایسه بیت به بیت، اگر یک گره بیت صفر را ارسال کند و دیگری بیت یک، گره دوم تشخیص میدهد که پیامش از لحاظ اولویت پایینتر است و ارسال خود را متوقف میکند.
بنابراین، کمترین مقدار عددی شناسه دارای بیشترین اولویت بوده و اجازه عبور پیام را پیدا میکند. به این ترتیب، شبکه CAN همزمان چند سیگنالدهنده را مدیریت کرده و تنها پیام دارای بالاترین اولویت ارسال خواهد شد، بدون ایجاد برخورد داده یا نیاز به وقفه دستی.
مثال داوری در یک شبکه CAN
فرض کنید دو گره با شناسههای پیام 0x042 و 0x041 همزمان در حال ارسال هستند:
- شناسه 0x042 به باینری: 000 0000 010 00010
- شناسه 0x041 به باینری: 000 0000 010 00001
در بیتهای ابتدایی که برابرند، هر دو گره پیام را ارسال میکنند، اما به محض رسیدن به بیت متفاوت (آخرین بیت اینجا)، گره دوم که بیت صفر (dominant) ارسال میکند، اجازه ادامه را مییابد و گره اول که بیت یک ارسال کرده، ارسال را متوقف میکند.
انواع فریمها و پروتکل در CAN
فریمهای داده (Data Frame)
این فریمها حاوی پیامهای حقیقی جهت انتقال داده هستند. ساختار مذکور فوق برای فریم داده کاربرد دارد.
فریم تأیید (Acknowledgment Frame)
پس از دریافت صحیح یک فریم داده، گیرنده فریم تأیید را ارسال میکند تا فرستنده مطمئن شود که داده بدون خطا دریافت شده است.
فریم درخواست انتقال (Remote Frame)
کامیوندهنده این فریم را برای درخواست داده از یک گره دیگر ارسال میکند که پاسخ با فریم داده خواهد بود.
فریم خطا (Error Frame)
زمانی که خطا شناسایی میشود، یکی از گرهها این فریم را ارسال میکند تا فرآیند خطاگیر فعال گردد و فریم دوباره ارسال شود.
پیادهسازی و سختافزار مرتبط با CAN
کنترلر CAN
کنترلر CAN یک مدول سختافزاری است که وظیفه مدیریت پروتکل CAN، فریمبندی دادهها، تشخیص خطا و داوری را بر عهده دارد. این کنترلر معمولاً روی تراشههای میکروکنترلر قرار دارد یا به صورت تراشههای جداگانه عرضه میشود.
ترانسیور CAN
ترانسیورها وظیفه تبدیل سیگنال سطح منطقی داخلی میکروکنترلر به امواج سطح ولتاژ متناسب باس CAN و بالعکس را بر عهده دارند. آنها قابلیت تحمل نویز برق و محافظت فیزیکی شبکه را تضمین میکنند.
مثال عملی از میکروکنترلر با CAN
به عنوان نمونه، میکروکنترلر STM32F103 دارای کنترلر داخلی CAN است و میتواند با چند دستور کنترلی، پیامهای CAN را ارسال و دریافت کند. برنامهنویسی این میکروکنترلر از طریق توابع HAL یا کتابخانههای دیگر، امکان تنظیم سرعت، اولویت، فیلتر پیام و مدیریت خطا را فراهم میکند.
کاربردهای CAN در صنایع مختلف
صنعت خودروسازی
شبکه CAN امروزه ستون اصلی سیستمهای مدیریت خودرو است. سیستمهای انژکتور، کنترل ترمز ABS، کیسههای هوا، مدیریت موتور و گیربکس همگی از طریق CAN با یکدیگر ارتباط دارند.
اتومیشن صنعتی و رباتیک
در کارخانجات و سیستمهای کنترلی صنعتی، شبکه CAN برای تبادل دادههای سنسورها، موتورهای سرو و دستگاههای کنترل از راه دور استفاده میشود که نیازمند اطمینان و سرعت عملیاتی بالا است.
دستگاههای پزشکی و هوافضا
برای سیستمهای حیاتی که نیازمند ارتباط ایمن و قابل اطمینان هستند، پروتکل CAN گزینه مناسبی است. به عنوان مثال، در دستگاههای MRI و تجهیزات پروازی از این شبکه بهره گرفته میشود.
مزایا و محدودیتهای CAN باس
مزایا
- قابلیت تحمل خطای بالای شبکه و مکانیزمهای تشخیص و اصلاح خطا (Error Detection & Fault Confinement).
- امکان ارتباط Real-Time با اولویتبندی طبیعی پیامها با استفاده از داوری سختافزاری.
- کاهش تعداد سیمهای موردنیاز در سیستمهای پیچیده.
- سازگاری با محیطهای پرنویز الکترومغناطیسی با استفاده از زوج سیم پیچخورده.
محدودیتها
- طول فریم و داده محدود (حداکثر 8 بایت در فریم استاندارد).
- حداکثر سرعت معمولاً تا 1 مگابیت بر ثانیه.
- پیچیدگی در مدیریت شبکههای بسیار بزرگ یا با چندین زیرشبکه.
نسخههای پیشرفته CAN
CAN FD (Flexible Data-rate)
برای رفع محدودیت داده و سرعت، استاندارد CAN FD معرفی شده است که امکان ارسال فریمهای داده تا 64 بایت و سرعتهای بالاتر را فراهم میآورد.
CAN با ویژگیهای ایمنی افزوده (CAN Safety)
در خودروها و سیستمهای حیاتی، نسخههای توسعه یافته با مکانیزمهای ایمنی بیشتر وجود دارد که متناسب با استانداردهای ISO 26262 طراحی شدهاند.
نتیجهگیری
شبکه CAN به عنوان یک پروتکل ارتباطی قدرتمند و قابل اطمینان، جایگاه ویژهای در سامانههای خودرو و صنعتی دارد. مکانیزم داوری سختافزاری آن، امکان ارسال همزمان پیامها بدون برخورد داده را فراهم کرده و اولویتبندی طبیعی پیامها، ارتباط Real-time را تضمین میکند. با توسعه فناوریهای جدید مانند CAN FD، محدودیتهای داده و سرعت نیز تا حد زیادی رفع شده که نشاندهنده انعطافپذیری و بقای این استاندارد در آینده است.
اگر به دنبال طراحی یا بهینهسازی سیستمهای مبتنی بر CAN هستید، شناخت عمیق از نحوه داوری، ساختار فریمها و قابلیتهای سختافزاری این پروتکل کلیدی است.

