شبكه كنترل كننده CAN

تاريخچه: پروتكل ارتباطي شبكه كنترل كننده CAN ابتدا در اروپا براي استفاده در ماشينهاي حمل و نقل طراحي شد. بدنبال استفاده موفقيت آميز از اين روش در صنايع اتوماسيون مانند وسايل كنترل كننده ، سنسورها و تحريك كننده ها ، استفاده از روش CAN در نقاط ديگر دنيا رواج پيدا كرد. در نهايت اين روش تحت عنوان ISO 11898 به صورت استاندارد شده مدون گرديد.

كاربردهاي CAN:
در اتومبيل ها: با توجه به نياز روز افزون صنعت اتومبيل سازي به امنيت بيشتر ، راحتي و پيروي از قراردادهاي جهاني پيرامون مسئله آلودگي محيط زيست ،‌هم چنين نياز به كاهش مفرد سوخت ، در صنايع خودروسازي سيستم هاي متنوع الكترونيكي طراحي شده و مورد استفاده قرار گرفته است. از جمله اين سيستم ها به عنون مثال مي توان به سيستم كنترل ترمز هوشمند (ABS) ، كنترل اصطكاك ، كيسه هاي هوايي ، سيستم كنترل قفل مركزي ، كمربندهاي ايمني هوشمند و … اشاره كرد.

پيچيدگي اين سيستم هاي الكترونيكي به همراه نياز به تبادل اطلاعات بين اين سيستم ها نياز به خطوط انتقال سيمي اطلاعات را بيش از پيش افزون كرد. روش CAN پاسخ كامل به اين نياز بود. با به كارگيري اين روش ، كنترل كننده ها ،‌ سنتورها و تحريك كننده ها با يكديگر اولاً به وسيله تنها دو سيم و ثانياً به صورت همزمان و تا سرعت حداكثر ۱MB/S ارتباط برقرار مي كنند.

در مصارف صنعتي: مزاياي استفاده از پروتكل CAN مانند كاهش هزينه ها و بالاتر رفتن اطمينان به سيستم كه با بكارگيري اين روش در صنايع خودروسازي بدست آمد ، سازندگي محصولات متنوع ديگر را به استفاده بيش از پيش اين روش ترغيب و تشويق نمود. مثالهايي از مصارف صنعتي اين پروتكل عبارتند از: كنترل در صنايع وابسته به كشتيراني و راهبري دريايي سيستم هاي كنترل آسانسورها ، ماشين هاي متنوع كشاورزي ، اتوماسيون كارخانجات ، دستگاههاي فتوكپي ، سيستم هاي پزشكي ، صنايع نساجي و بافندگي.

مزاياي شبكه CAN: به طور خلاصه مي تون مزاياي اين روش را به صورت زير بر شمرد.
– در جهت طراحي و پياده سازي مقرون به صرفه هستند.
– قابل اطمينان در محيط هاي پر نويزو اغتشاش مي باشند.
– به سادگي قابل پياده سازي و پيكر بندي هستند.
– به طور اتوماتيك خطاهاي احتمالي در ارتباط اطلاعات را مشخص مي كنند.
– يك محيط مركزي جهت تشخيص و خطاها در هنگام طراحي و يا زمان بهره برداري از آنها فراهم مي شود. به عبارت ديگر در زمان طراحي يا بكارگيري از اين شبكه مي توان در يك مركز مشخص خطاهاي احتمالي كاركرد آنها را پيگيري كرد.

به دنبال استفاده روزافزون از اين روش ، در جهت توسعه و تكميل آن پروتكلهاي ديگري مانند based CAL سيستم باز CAN ، شبكه وسيله , Oerice Net پادشاهي CAN J1939 , SDS , و … از بطن روش اصلي ، طراحي و پيشنهاد شده است.

مفاهيم سخت افزار و نرم افزاري CAN:
يك سيستم شبكه شده نمونه با كنترل كننده هاي مجزا در شكل(۱) نمايش داده شده است. در اين مورد از يك ميكروكنترلر براي كنترل محل سيستم كه جزئي از كل پروسه مورد نظر را كنترل مي كند استفاده گرديده است. آلگوريتم مشخصي نيز جهت بررسي و تجزيه و تحليل اطلاعات دريافتي از سنسورها – مثلاً سنسورهاي نوري – تعبيه شده است. هم چنين از تحريك كننده هاي مشخصي نيز براي اعمال فرامين و دستورات لازم – مثلاً چرخش شيء كنترل شونده به اندازه زاويه مورد نظر استفاده مي گردد.
تصوير ۱

رگولاتور محلي نيز با هر كدام از رگولاتورهاي ديگر تعبيه شده در سيستم و با كنترل كننده مركزي ارتباط برقرار مي كند. كنترل كننده مركزي نيز كه در رتبه بالاتري قرار دارد براي تنظيم كل سيستم و يا دستيابي به اطلاعات اجزاء آن و اطلاعات آماري از كل پروسه ها با اجزاء كنترل كننده مرتبط است. اين ارتباط بين سيستم ها با استفاده از گذرگاه (باس) CAN برقرار مي گردد.

اينگونه ارتباط سريال براي مواردي كه ارتباط بين اجزاء سيستم به طور تقريباً هميشگي زيست توصيه مي شود. در اين حالت ديگر نيازي به سيم كشي مخصوص بسيار قابل انعطاف يا گران قيمت نخواهد بود. بنابراين مي توان سيستم را به صورت گره هايي از شبكه بدون نياز به اعمال تغييرات در سيم كشي توسعه داد. از مزاياي ديگر استفاده از شبكه هايي با قابليت آدرس دهي منطقي يا ساختار آدرس پذيري بر اساس ظرفيت مي توان به مورد زير اشاره كرد:

اطلاعات گرفته شده از واحد كاري مرتبط به كنترل كننده شماره ۱ در شبكه مي تواند در اختيار كنترل كنده شماره ۲ يا كنترل كننده مرتبه بالاتر به طور همزمان قرار گيرد بنابراين ديگر نيازي نيست كه اين اطلاعات دو مرتبه براي رسيدن به كنترل كننده مركزي آدرس دهي شوند. اين الگوريتم به صورت زير است: پيامي كه حاوي اطلاعات واحد كاري است با يك معرفي كننده (Iden tifier) مخصوص بر روي گذرگاه (باس) منتقل مي شود. اين معرفي كننده ، كليدي است كه هركدام از گره هاي موجود در شبكه را جهت دسترسي به اطلاعات اين واحد كاري مقدور مي سازد. در نتيجه هركدام از واحدهاي موجود در شبكه كه علاقه مند به اين اطلاعات باشد مي توانند نتايج آنرا بدست آورد و مورد استفاده قرار دهند.

ويژگيهايي با گذرگاه CAN:
لايه هاي ۱و۲ انتقال اطلاعات در استاندارد بين الملي ISO 1159 – ۲ جهت ارتباطات با سرعت كم و در استاندارد و ISO 11898 براي ارتباط با سرعت بالا بيان شده اند. علاوه بر آن ، مشخصات گذرگاه CAN نيز براي استفادة سازنده ها به طور جدا گانه اي بيان شده وتشريح گرديده است . در اين استاندارد مشخصات CANبه دو قسمت CAN.2.OAوCAN Z.OBتقسيم شده است.

مهمترين تفاوت بين اين دو روش در فرمت ابتدايي يك پيام بخصوص تحت تعيين هويت (Identifier) آنست . در استاندارد CAN 2.0 A قسمت تعيين هويت هر پيام از ۱۱ بيت استاندارد تعيين شده در صورتيكه استاندارد CAN 2.0A كه به CAN توسعه يافته نيز معروف است. تحت تعيين پيام ۳۶ بيت را تشكيل مي دهد . در بخشهاي آينده انواع مختلف پيامها و خصوصيات آنها توضيح داده شده است .

هر پيام سيستم CAN در بردارنده تعداد مشخصي از بيتهاي اطلاعاتي است كه به قسمتها و ميدانهاي مختلف تقسيم مي شوند. اين قسمتها داراي مباني مختلفي مانند : انتهاي فريم ، كه تصحيح و تشخيص خطاي ارتباط ، قسمت اطلاعات و قسمت داوري مي باشد . معني قسمت داوري از يك طرف تعيين اولويت پيام و از طرف ديگر آدرس منطقي اطلاعات است .

اين آدرس منطقي در پيامهاي CAN 2.0 n شامل ۱۱ بيت و در CAN 2.0B شامل ۲۹ بيت است . همانگونه كه در استاندارد هاي ۱۱۸۹۸ و ۲- ۱۱۵۱۹ ISO آمده است ، در استاندارد CAN 2.0A تعداد ۲۰۳۲ آدرس منطقي مجاز وجود دارد . اين موضوع بدان معني است كه تعداد ۲۰۳۲ موضوع مخابراتي مختلف (پيام ) در اين استاندارد CAN تعريف شده است .اين تعداد پيام در استاندارد CAN توسعه يافته معادل ۵۳۶ , ۸۷۰ , ۹۱۲ عدد مي باشد ( ۲۲۹) چگونگي تركيب پيامها در سيستم CAN در شكل ۱ نمايش داده شده است.

تصوير ۲
توضيح اين بيتها در پيامهاي CAN به شرح زير مي باشد :
– بيت شروع (۱بيت ) : اين بيت ابتداي هر پيام را مشخص مي كند . پس از مدت رساني كه خط ارتباطي مورد استفاده قرار نگرفته و درحالت اصطلاحاً بيكار (Idle) مي باشد ، لبه پايين رونده بيت شروع جهت سنكرون كردن ( همزمان كردن ) نقطه هاي مختلف شبكه مورد استفاده قرار مي گيرد.
– بيت هاي تعيين هويت = ۱۱ بيت : آدرس منطقي و اولويت پيام را تعيين مي كند . هر چه مقدار اين پيام كمتر باشد . اولويت آن بيشتر است (عدد صفر داراي بالاي اولويت است ) .

– بيت درخواست انتقال اطلاعات از راه دور (RTR) = 1 بيت :‌اين بيت مورد استفاده گيرنده براي در خواست اطلاعات از يك فرستنده و ديگر در راه دور مورد استفاده قرار مي گيرد . اگر اين بيت معادل ۱ (گرفتن) باشد ، به معني آنست كه فريم اطلاعات صرفنظر از آنچه كه كدهاي ديگر مشخص مي كنند ، حاوي هيچ گونه اطلاعاتي نيست ، در اين حالت بقيه گره هاي شبكه چك مي كنند كه آيا اطلاعاتي جهت ارسال به نقطه اي كه تقاضاي اطلاعات دارد ، را دارند يا خير ، اين تقاضاي در سال و پاسخ احتمالي به آن و فريم متفاوت اطلاعاتي بر روي گذرگاه داده ها مي باشند . اين مسئله بدان معني است كه پاسخ اين در خواست مي تواند بدليل وجود پيامهاي ديگر با اولويت ارتباطي بالاتر به تأخير بيفتد.

– بيتهاي كنترل ( = ۶ بيت ) : اولين بيت اين فريم بيت تعيين هويت است . اگر اولين بيت صفر منطقي باشد بدان معني است كه بيتهاي تعيين هويت ديگر فرستاده نخواهند شد و فريم اطلاعاتي يك فريم استاندارد CAN مي باشد . بيتro براي استفاده هاي بعدي رزرو شده و چهار بيت بعدي كه تعيين كننده طول اطلاعات براي فريم اطلاعات همراه با اين پيام را مشخص مي كنند.
– بيتهاي اطلاعات (‌۰ تا ۶۴ بيت معادل ۵ تا ۸ بايت ) : محتويات اطلاعات پيام را منتقل مي كنند.

– كد تشخيص خطا = ۱۶ بيت : كه مشخص كننده خطا در بيت هاي قبلي ارسال شده در پيام را نشان مي دهد. اين بيتها تنها براي تشخيص خطا مورد استفاده قرار مي گيرند و نمي توان از آن براي تصحيح خطا استفاده كرد . فاصله همينك اين كدها معادل ۶ است . يعني مي توان با استفاده از اين كدها معادل ۶ بيت خطا را تشخيص داد كه در كل پيام پراكنده شده يا خطاهاي تجمعي (buist) تا ۱۵ بيت را مشخص مي كنند .

– بيت تأييد ACK = 2 بيت :‌هر نقطه از شبكه كه پيام درستي را بر روي سيم هاي انتقالي در يافت نمود در قسمت تأييد علامتي را جهت تأييد دريافت درستي پيام ارسال مي دارد . اين علامت به وسيله فرستنده پيام خوانده مي شود و اگر اين تأييد به توسط فرستنده خوانده نشد نشاندهنده بروز خطا در ارتباط مي باشد . توجه شود كه اگر فرستنده اين تأييد را در يافت كرد نمي تواند مطمئن باشد كه پيام مورد نظرش توسط گيرنده مربوط دريافت شده است . بلكه اين تأييديه تنها نشان مي دهد كه پيام به طور درستي بر روي گذرگاه CAN منتقل شده است .

– بيت هاي انتهاي فريم Eof = 7 بيت :‌در اين قسمت از روش كدنيك شكستي (violated code ) استفاده مي شود . بدين صورت كه در شرايط عادي بعد از ۵ بيت معادل يكديگر بيت بعدي به طور مخالف به جريان اطلاعات اضافه مي شود . اين بيتها هنگاميكه Eof فعال است به همين ترتيب ادامه مي يابد اين بيتها انتهاي فريم CAN را مشخص مي كنند.

– بيتهاي فاصله داخل فريم (IFS) = 7 بيت : اين بيتها زماني را براي كنترل كننده CAN جهت انتقال يك فريم اطلاعات سالم به ناحيه اي كه اطلاعات در آنجا ذخيره مي شوند تا توسط دستگاه مربوطه مورد استفاده قرار گيرند را بوجود مي آورد .
– بيت بيكار (IOLE) : در اين هنگام گذرگاه مورد استفاده هيچ دستگاهي نبوده و هر نقطه شبكه مي تواند ارتباط مورد نظر خود را شروع كند .
پيامهاي سيستم CAN توسعه يافته در موارد زير با سيستم استاندارد متفاوت است :‌
– بيت SSR = 1 بيت : اين بيت جايگزين بيت RTR شده و معني جديد ديگري ندارد .

– بيت IDE = 1 :‌اين بيت در سيستم CAN توسعه يافته همواره يك است كه مشخص مي كند بيتهاي تعيين هويت بيشتري نيز به دنبال آن خواهد آمد .
– فريم كنترل = ۶ بيت : در بيت اول اين فريم ( r1 و r0) براي استفاده هاي بعدي رزرو شده ، بقيه اين بيتها به همراه قسمتهاي ديگر پيام معني مشابه پيامهاي CAN استاندارد دارد .

طول مجاز اطلاعات در اين روش ۰ تا ۸ بايت است بنابراين اطلاعات بيش تر از ۸ بايت بنابه مشخصات تعريف شده در سيستم CAN مجازنيست . هم چنين امكان بگارگيري پيامهاي استاندارد و توسعه يافته در يك شبكه به طور همزمان وجود دارد . اين امكان با به كارگيري كنترل كننده هاي CAN با مشخصات CAN 2.0B امكان پذير ا ست . دراين صورت كه اين كنترلر ها با ارزيابي بيت IOE پيامهاي نوع توسعه يافته از استاندارد را تشخيص مي دهند. اين نوع كنترل كننده ها از دريافت پيامهاي توسعه يافته خود داري مي نمايند . كنترل كننده كه بدون اين امكان باشد نسبت به پرچمهاي خطا از خود عكس العمل نشان مي دهد .

كنترل كننده هاي CAN كه مطابق با استاندارد CAN 2.0 B طراحي شده اند ، نيز مي توانند با پروتكل استاندارد به طور همزمان كار كنند . پيامهايي كه شكل آنها در شكل (۱) آماده اند ،‌پيامهاي معمولي فرستاده شده هستند كه اطلاعات عملي را به همراه خود دارند . در شرايط معمولي ارسال اين پيامها توسط فرستنده آغاز مي شوند. در شبكه هاي CAN اين امكان وجود دارد كه عمليات انتقال و ارسال پيامها به وسيله گيرنده مربوطه با استفاده از بيت در خواست پيام از راه دور (RTR) نيز شروع شود.

هر گرهي از شبكه امكان دريافت فريم درخواست پيام (RTR) را دارد . با استفاده از قسمت تعيين هويت اين پيام ، مشخص مي شود كه آيا آن گره بايد اطلاعات مورد نياز را ارسال كند يا خير . اين ارزيابي هم به صورت كاربردي و هم توسط كنترل كننده CAN به طور اتوماتيك امكان پذيراست . همچنين پيام در خواست و جواب آن در پيام كاملاً مجزاست .

مزيت اين كار در اين است كه پيام جواب كه توسط فرستنده ارسال شده و حاوي اطلاعات كاربردي است نه تنها توسط در خواست كننده آن پيام دريافت مي شود ، بلكه توسط ديگر گيرنده هاي احتمالي كه ممكن است به اين پيام علاقمند بوده و اطلاعات موجود در آن براي آنها ارزشمند باشند نيز دريافت مي گردد. بنابراين اطلاعات در شبكه پراكنده مي گردد.