شبکه کنترل کننده کن (CAN) یک روش ارتباطی بین دستگاه های الکترونیکی تعبیه شده در یک وسیله نقلیه است. در سال 1983 توسط Robert Bosch GmbH توسعه یافت و اولین بار در سال 1986 برای بهبود کیفیت و ایمنی خودروها، افزایش قابلیت اطمینان خودرو و بهره وری سوخت عرضه شد. CAN فرآیند ارتباط بین ماژول های الکترونیکی مختلف در یک وسیله نقلیه را با اجازه دادن به آنها برای ارتباط با یکدیگر با استفاده از یک کابل مشترک ساده کرد و اتصالات سیم کشی و پیچیدگی کلی سیستم را کاهش داد.
پروتکل CAN مجموعه ای از قوانین برای ارسال و دریافت پیام در شبکه ای از دستگاه های الکترونیکی است. نحوه انتقال داده ها از یک دستگاه به دستگاه دیگر در یک شبکه را مشخص می کند. این یک پروتکل مبتنی بر پیام است که در آن هر پیام با یک شناسه منحصر به فرد از پیش تعریف شده شناسایی می شود. بسته داده ارسال شده توسط تمام نودها در یک شبکه گذرگاه CAN دریافت می شود، اما بسته به شناسه، گره CAN تصمیم می گیرد که آیا آن را بپذیرد یا خیر. گذرگاه CAN فرآیند داوری را زمانی دنبال می کند که نودهای متعدد سعی می کنند داده ها را همزمان ارسال کنند.
این برای رفع محدودیت های سیستم های سیم کشی قبلی که از سیم کشی نقطه به نقطه بین هر Node استفاده می کردند، توسعه داده شد. با CAN، تمام Nodeها به یک Bus مشترک متصل می شوند که سیم کشی را ساده می کند و وزن خودرو را کاهش می دهد.
پیام های CAN شامل یک id شناسه، یک فیلد کنترل، یک فیلد داده و یک فیلد بررسی جک سام (CRC) می باشد. فیلد شناسه یا آی دی برای اولویت بندی پیام ها و تعیین اینکه کدام ECU یا نود باید پیام را پردازش کند استفاده می شود. فیلد کنترل حاوی اطلاعاتی در مورد پیام است، مانند طول فیلد داده. فیلد داده حاوی داده های واقعی در حال انتقال است. فیلد CRC برای تشخیص خطاها در پیام استفاده می شود.
پیام های CAN به صورت متفاوت منتقل می شوند، به این معنی که آنها به صورت یک جفت سیگنال ارسال می شوند که عکس یکدیگر هستند. این اجازه می دهد تا سیگنال ها در فواصل طولانی با حداقل تداخل منتقل شوند. گذرگاه CAN همچنین شامل مقاومت های پایان دهنده در هر انتها برای جلوگیری از بازتاب سیگنال است.
هنگامی که دو یا چند ECU سعی می کنند یک پیام را به طور همزمان ارسال کنند، یک فرآیند داوری برای تعیین اینکه کدام ECU اولویت دارد استفاده می شود. ECU با کمترین مقدار شناسه اولویت دارد و مجاز است پیام خود را ارسال کند.
CAN یک پروتکل ارتباطی قوی و قابل اعتماد است که برای کاربردهای خودرویی مناسب است. این در طیف گسترده ای از سیستم های خودرو، از جمله کنترل موتور ECU، کنترل انتقال TCU، سیستم های ترمز ABS، و تمام نود های خودرو استفاده می شود.
1- هر نود در سیستم گذرگاه CAN دارای یک شناسه CAN منحصر به فرد است که برای شناسایی منبع داده ها استفاده می شود.
2- داده ها در قالب پیام هایی که شامل شناسه پیام، داده ها و سایر اطلاعات کنترلی است، منتقل می شوند. هنگامی که یک نود می خواهد داده ها را ارسال کند، پیامی را با شناسه CAN خود به عنوان شناسه پیام به گذرگاه ارسال می کند. تمام گره های دیگر در باس پیام را دریافت می کنند و شناسه پیام را بررسی می کنند تا ببینند آیا به آنها مربوط است یا خیر.
3- اگر شناسه پیام با CAN ID یک نود مطابقت داشته باشد، نود داده ها را می پذیرد و در صورت نیاز پردازش میکند. اگر شناسه پیام با CAN ID یک نود مطابقت نداشته باشد، نود پیام را نادیده می گیرد.
4- سیستم گذرگاه CAN از یک فرآیند داوری پیروی می کند که نود های متعدد سعی می کنند داده ها را همزمان ارسال کنند.نودی که کمترین مقدار شناسه پیام را دارد دارای بالاترین اولویت است و می تواند ابتدا داده های خود را ارسال کند.
}while (1)
Check if a new message has been received //
if (bxCAN_receive(&can_msg))
}
Print out the received message data//
{
در این قطعه که با زبان سی می باشد، تابع در یک حلقه برای بررسی اینکه آیا یک پیام جدید دریافت شده است استفاده می شود. اگر پیام جدیدی دریافت شود، داده های آن در ترمینال قابل چاپ می شود.
دیدگاه خود را بنویسید