بخشی از مقاله
ارتباطات تحريکپذير زماني در پروتکل شبکهCANا
چکيده :
شبکههاي صنعتي يکي از مباحث بسيار مهم در اتوماسيون ميباشد. شبکهي CAN به عنوان يکي از شبکههاي صنعتي ، رشد بسيار روز افزوني را تجربه کرده است. در اين ميان ، عدم قطعيت زمان ارسال پيامها در اين پروتکل شبکه ، باعث ميشود که کاربرد اين شبکه در کاربردهاي حياتي با اشکال مواجه شود. يکي از راهحلهاي برطرف کردن اين مشکل ، استفاده از تکنيک تحريک زماني است که در ايت مقاله مورد بررسي قرار ميگيرد.
کليد واژهها : شبکه صنعتي ، تحريک زماني ، CAN ارتباطات تحريکپذير زماني در پروتکل شبکهي CAN
1) مقدمه
در محيطهاي صنعتي ، کارخانجات ، خطوط توليد و امثالهم ، اتصال ميکروکنترلرها ، سنسورها (Sensor) و محرکها (Actuator) با چندين نوع سيستم ارتباطي متفاوت به يکديگر ، نوعي هنر معماري در الکترونيک و کامپيوتر است. امروزه ارتباطات از نوع تحريکپذير زماني بهطور گستردهاي در پروتکل ارتباطات برپايه شبکه با پروتکل CAN (Controller Area Network) استفاده ميشود. مکانيسم داوري (Arbitrating) در اين پروتکل اطمينان ميدهد که تمام پيامها بر اساس اولويت شناسه (Identifier) منتقل ميشوند و پيامي با بالاترين اولويت به
هيچ عنوان دچار آشفتگي نخواهد شد. در آينده ، بسياري از زيرشبکههاي (SubNet) مورد استفاده در کاربردهاي حياتي ، بهعنوان مثال در بخشهايي مثل سيستمهاي کنترل الکترونيکي خودرو (X-By-Wire) ، به سيستم ارتباطي جامعي نياز دارند که داراي قطعيت ارسال و دريافت در هنگام سرويسدهي باشد. به عبارتي ، در ماکزيمم استفاده از باس که به عنوان محيط انتقال اين نوع شبکه بهکار ميرود ، بايد اين تضمين وجود داشته باشد که پيامهايي که به ايمني (Safety) سيستم وابسته هستند ، به موقع و به درستي منتقل ميشوند. علاوه بر اين بايد اين امکان وجود داشته باشد که بتوان لحظهي ارسال و زماني را که پيام ارسال خواهد شد را با دقت بالايي تخمين زد.
در سيستم با پروتکل CAN استاندارد ، تکنيک بدست آوردن باس توسط گرههاي شبکه بسيار ساده و البته کارآمد است. همانگونه که در قبل توضيح دادهشده است ، الگوريتم مورد استفاده براي بدست آوردن تسلط بر محيط انتقال ، از نوع داوري بر اساس بيتهاي شناسه است. اين تکنيک تضمين ميکند که گرهاي که اولويت بالايي دارد ، حتي در حالتيکه گرههاي با اولويت پايينتر نيز قصد ارسال دارند ، هيچگاه براي بدست آوردن باس منتظر نميماند. و با وجود اين رقابت بر سر باس ، پيام ارسالي نيز مختل نشده و منتقل ميشود. در
همين جا نکتهي مشخص و قابل توجهي وجود دارد. اگر يک گرهي با اولويت پايين بخواهد پيامي را ارسال کند بايد منتظر پايان ارسال گرهي با اولويت بالاتر باشد و سپس کنترل باس را در اختيار گيرد. اين موضوع يعني تاخير ارسال براي گرهي با اولويت پايينتر ، ضمن اين که مدت زمان اين تاخير نيز قابل پيشبيني و محاسبه نخواهد بود و کاملا به ترافيک ارسال گرههاي با اولويت بالاتر وابسته است. به عبارت سادهتر :
● گره يا پيام با اولويت بالاتر ، تاخير کمتري را براي تصاحب محيط انتقال در هنگام ارسال پيشرو خواهد داشت.
● گره يا پيام با اولويت پايينتر ، تاخير بيشتري را براي بدستگرفتن محيط انتقال در هنگام ارسال ، تجربه خواهد کرد.
يک راه حل برطرف کردن نيازهاي ذکرشده در بالا ، استفاده از شبکهي استاندارد CAN با اضافهکردن تکنيک تحريک زماني (Time Trigger) به آن ميباشد. استفاده از تکنيک تحريک زماني در CAN ، طبق توضيحاتي که داده خواهد شد ، باعث اجتناب از اين تاخير ميشود و باعث استفادهي مفيدتر و کارآمدتر از پهناي باند شبکه ، به کمک ايجاد قطعيت در زمانهاي انتظار و ارسال ، ميشود. به عبارت ديگر ، مزاياي اين شبکه با استفاده از تکنيک تحريک زماني عبارت خواهد بود از :
● کاهش تاخيرهاي غير قابل پيشبيني در حين ارسال
● تضمين ارتباط قطعي و تاخيرهاي قابل پيشبيني
● استفادهي مفيدتر و کارآمد از پهناي باند شبکه
با توجه به مکانيسمهاي پيشبيني شده در TTCAN ، اين پروتکل زمانبندي پيامهايي با تحريک زماني (TT) را به خوبي پيامهايي با تحريک رويداد (Event Trigger) را که قبلا در اين پروتکل قرار داشت ، مديريت ميکند. اين تکنيک اجازه ميدهد که سيستمهايي که داراي عملگرهاي بلادرنگ هستند نيز بتوانند از اين شبکه استفاده کنند. همچنين اين تکنيک انعطاف بيشتري را براي شبکههايي که قبلا از CAN استفاده ميکردند ، ايجاد ميکند. اين پروتکل براي استفاده در سيستمهايي که ترافيک ديتا بصورت مرتب و متناوب در شبکه رخ ميدهد ، بسيار مناسب و کارآمد ميباشد.
در اين تکنيک ، ارتباطات بر پايهي يک زمان محلي بنا شده است. زمان محلي توسط پيامهاي متناوب يک گره که بهعنوان گرهي مدير زمان (Time Master) تعيين شده است ، هماهنگ و تنظيم ميشود. اين تکنيک اجازهي معرفي يک زمان سراسري و با دقت بالا را بصورت يکپارچه (Global) را ، در کل سيستم فراهم ميکند. بر پايهي اين زمان ، پيامهاي متفاوت توسط يک سيکل ساده ، در پنجرههايي قرار ميگيرند که متناسب با زمان پيام چيده شده است. يکي از مزاياي بزرگ اين تکنيک در مقايسه با شبکهي CAN با روش زمانبندي کلاسيک ، امکان ارسال پيغامهاي تحريک شوندهي زماني با قطعيت و در پنجرههاي زماني است.
اگر فرستندهي فريم مرجع دچار خرابي شود (Fail) ، يک گرهي از پيش تعريف شدهي ديگر بهطور اتوماتيک وظيفهي گرهي مرجع را انجام ميدهد. در اينحالت ، گرهي با درجهي پايينتر جايگزين گرهي با درجهي بالاتر که دچار خرابي شده است ، ميشود. حال اگر گرهي با درجهي بالاتر ، تعمير شده و دوباره به سيستم باز گردد ، بهصورت اتوماتيک تلاش ميکند تا بهعنوان گرهي مرجع انتخاب شود. توابعي بهصورت پيشفرض در تعاريف و خصوصيات TTCAN قرار داده شده است تا سيستم از اين تکنيک خروج و بازگشت خودکار ، پشتيباني کند. در ادامهي اين مقاله ، جزييات اين پروتکل مورد بررسي دقيقتر قرار ميگيرد.
2) پيادهسازي TTCAN :
پروتکل TTCAN بر اساس تحريک بر مبناي زمان و ارتباط پريوديک ، که توسط مدير زمان هماهنگ ميشود ، بنا شده است. در اين پروتکل ، پيام مرجع (Reference Message) پيامي است که توسط مدير زمان در شبکه انتشار پيدا ميکند و حاوي اطلاعات زمانبندي پنجرههاي زماني و اطلاعات انحصار پنجرهها به گرههاي مشخصي ميباشد. پيام مرجع ، بهسادگي از طريق بيتهاي شناسهاش قابل شناسايي است.
اين پروتکل در دو سطح ايجاد شده است. در سطح اول پروتکل ، پيام مرجع ، فقط حاوي تعداد کمي از پيغامهاي کنترلي در حد يک بايت است و الباقي بيتها نيز ميتوانند براي انتقال ديتا بهکار روند. در سطح دوم پروتکل ، پيام مرجع ، اطلاعات و پيغامهاي کنترلي اضافيتر را حمل ميکند. به عنوان مثال ، اطلاعات فعلي در مورد ساعت سراسري گرهي مدير زمان فعلي را شامل ميشود. پيام مرجع در اين حالت محتوي چهار بايت اطلاعات است ضمن اينکه قابليت کار با سيستمهاي ردهي پايينتر از نوع CAN (Downward Compatible) نيز حفظ شده است. چهار بايت باقيمانده در فريم نيز براي انتقال ديتا ميتواند استفاده گردد.
مدت زمان بين دو پيام مرجع متوالي ، سيکل پايه (Basic Cycle) ناميده ميشود. يک سيکل پايه از چندين پنجرهي زماني (Time Windows) با اندازههاي متفاوت ، تشکيل شده است که فضاي کافي را براي فريمهايي که بايد منتقل شوند فراهم ميکند. اين اين موضوع در شکل زير نمايش داده شده است.
شکل شماره 1 : سيکل پايه
پنجرههاي زماني تعريف شده در يک سيکل پايه ميتواند يکي از حالات زير باشد و براي انتقال فريم پيامهاي پريوديک حالت و يا پيامهاي فوري و پيامهاي حاوي رخداد ، استفاده ميشود :
● پنجرهي زماني انحصاري (Exclusive Window)
● پنجرهي زماني داوري (Arbitrating Window)
● پنجرهي زماني آزاد (Free Window)
هر فريم پيام که در هريک از اين پنجرهها ارسال ميشود ، بايد از استاندارد فريم CAN پيروي کند. پنجرههاي زماني که براي ارسال پيامهاي پريوديک استفاده ميشود ، پنجرهي زماني انحصاري (Exclusive) ناميده ميشوند. ابتداي يک پنجرهي زماني انحصاري ، لحظهي شروع يک ارسال را براي يک فرستندهي خاص و از پيش تعيين شده ، مشخص ميکند. اگر سيستم به درستي تعريف شده باشد و روشي که توسط آن ارتباطات را از پيش تعريف کردهاند ، سيستم را درست تحليل کرده باشد ، هيچ تداخلي (Conflict) در اين لحظه پيش نخواهد آمد. هرچند حتي اگر تداخلي نيز پيش آيد ، سيستم داوري پيشبيني شده در CAN استاندارد ، يا همان داوري بر اساس بيت شناسه ، برقرار بوده و تعيين کننده و برطرف
کنندهي تداخل پيش آمده خواهد بود. مشخص است که طراح سيستم قبل از آغاز بهکار سيستم بايد تصميم بگيرد که کدام گره کدام پيام را در کدام پنجرهي زماني ارسال کند. براي ايجاد انعطاف و کارايي بيشتر ، يک پنجرهي انحصاري ميتواند در طول يک سيکل پايه ، بيش از يک بار تکرار شود. در پنجرههاي انحصاري ، اجازهي ارسال مجدد يک پيام بهصورت اتوماتيک ، وجود ندارد.
شکل شماره 2 : انواع پنجرههاي زماني
در پاراگراف گذشته اشاره شد که در اين پنجرههاي زماني انحصاري ممکن است فريم پيامهاي فوري ارسال شود. اين پنجرهها را پنجرههاي زماني داوري (Arbitrating Time Window) نامگذاري کردهاند. به اين دليل که با توجه به فوري و ناگهاني و نامشخص بودن فرستندهي اين پيامها قبل از فرارسيدن پنجرهي مشخص شده ، با مکانيسم داوري بر اساس اولويت ، اين پنجرهي زماني به گرهي واجد شرايط اختصاص پيدا ميکند. در هنگام طراحي سيستم ، اين امکان وجود دارد که بيش از يک پيام در هر پنجره براي ارسال پيامهاي فوري ، ارسال
شود. سپس در هنگام کارکرد سيستم ، طبق کاربرد سيستم و گرهها ، تصميم گرفته خواهد شد که از پنجرهي داوري براي ارسال پيام و البته چه پيامي استفاده شود. اين حالت دقيقا مانند حالت استاندارد ارسال و دريافت در سيستم CAN بدون تحريک زماني است که در تمام زمانها ، محيط انتقال توسط مکانيسم داوري بر اساس اولويت گره و بيت شناسه به گرهي مناسب اختصاص پيدا ميکرد. در اينجا نيز همانند پنجرههاي انحصاري ، اجازهي دوباره ارسال شدن اتوماتيک يک پيام در يک پنجره وجود ندارد.
در هنگام طراحي و زمانبندي ، اين امکان وجود دارد که پنجرههاي خالي (Free Time Win.) براي کاربردهاي آينده ، رزرو شود. اين پنجرههاي آزاد در آينده قابليت تبديل شدن به پنجرههاي زماني انحصاري يا داوري را خواهند داشت و براي گرههايي که در آينده به سيستم اضافه ميشود ، درنظر گرفته شدهاند. همچنين اين پنجرههاي آزاد را ميتوان در صورت نياز ، در شبکهي حاضر و براي بهبود ارتباطات همان تعداد گرهي اوليه نيز مورد استفاده قرار داد.
3) دانستههاي و روش ارسال و دريافت گرههاي TTCAN :
در شبکهي TTCAN نيازي نيست که کنترلرهاي شبکه ، از همهي پيامها که در شبکه منتقل ميشود آگاه باشند. هر کنترلر فقط اطلاعاتي را که براي ارسال و دريافت تحريکشونده بر اساس زمان و باي ارسال پيامهاي فوري نياز دارد از شبکه دريافت ميکند. در ادامهي اين مقاله براي درک بيشتر پروتکل ، يک مثال ارتباط بيان شده است. آنگونه که در شکل نشان داده شده است :
شکل شماره 3 : يک مثال از تخصيص زمانها
ميبينيد ، در اين شبکه براي هر سيکل پايه ، شش پنجره درنظر گرفته شده است. از اين شش پنجره ، يک پنجره شمارهي 4 بهعنوان پنجرهي آزاد و براي کاربرد آينده درنظر گرفته شده است. وضعيت ارسال و دريافت کنترلر شمارهي 4 را بررسي ميکنيم. اين کنترلر ، پيام C را بايد در پنجرههاي زماني انحصاري شمارهي 2 و 6 ارسال کند. همچنين پيام فوري F را نيز در پنجرهي داوري شماره3 ارسال ميکند. همچنين براي اين گره مهم است که پيغام A را نيز از پنجرهي زماني انحصاري شماره1 دريافت کند. اصول بهکار رفته در اين تکنيک اجازهي بيشترين بهبود (Optimization) و بهترين استفاده را از حافظهي سختافزار کنترلر بهکار رفته به ما ميدهد ضمن اينکه تمامي اطلاعات مورد نياز از شبکه دريافت و از طريق آن منتقل ميشود. علاوه بر اين ، انعطاف زيادي نيز در هنگام توسعه و تغييرات در برنامهي زمانبندي گرهها و پنجرهها وجود دارد. در اين حالت ، حجم بسيار کمي از اطلاعات که مربوط به برنامهي زمانبندي جديد است به کنترلرهايي که در اين تغيير وجود دارند ، دانلود ميشود.
4) مشخصات فني پروتکل :
پروتکل TTCAN در لايهي بالاي لايهي لينک داده (DataLink) قرار ميگيرد. اين پروتکل بر اساس استانداردهاي لايهي فيزيکي CAN با مشخصات ISO11898/1 تا ISO11898/3 تعريف و سازگار شدهاست. موسسهي CiA نيز با استاندارد شمارهي CC170 از اين طرح پشتيباني کرده است.
پس از ارايهي طرح اوليهي TTCAN توسط موسسهي ISO براي بينالمللي ساختن اين طرح ، تعدادي از کارخانجات اين پروتکل را پيادهسازي کردند. کارخانجات بوش آلمان هماکنون اين طرح را بهصورت موفقيت آميز در چيپهاي FPGA (Field Programmable Gate Array) و براي کاربرد وسيع ، پيادهسازي و فراهم کردهاند. با پشتيباني چيپهاي اينتل سري 82527 از اين پروتکل ، عملا اين طرح بهطور موفقيت آميز به مرحلهي کاربرد رسيده است. اين چيپها از اواخر سال 2003 ميلادي در بازار فروش قرار گرفتهاند.
5) نتيجهگيري :
در انتها يادآوري ميشود که در آينده ، شبکههاي انتقال پيام بهصورت قطعي و همچنين سيستمهايي که با ايمني در عملکرد ارتباط دارند ، براي انتقال انواع پيامهاي مبتني بر رخداد و مبتني بر زمان ، بصورت کاملا دقيقي با شبکههاي TTCAN طرحريزي و پيادهسازي ميشوند. نياز به اين نوع انتقال ، کاملا توسط تکنيک پنجرههاي زماني انحصاري ، پوشش داده شدهاست. قابليت چينش انواع متنوعي از سيکلهاي پايه بصورت يک ماتريس دلخواه ، امکان ارسال شيوههاي متنوعي از پيام را در بستههايي با طولهاي زماني متفاوت و در
نگاشتهاي متفاوت در سيستم ميدهد. همچنين وجود سرويس زمان سراسري از نوع تحملپذير خطا و پيادهسازي قابليت تصحيح خطاهاي انحراف زمان توسط اصليت مدير زمان ، نيازمنديهاي سيستمهاي پهناور زماني و توزيعشدهي بلادرنگ را فراهم ميسازد. مشخصات تکميلي و اضافهشدهي اين پروتکل نيز بر استانداردهاي ماجولهاي CAN کاملا منطبق است. استفادهي هوشمندانه از تکنيک انتخاب بر اساس اولويت بيتهاي شناسه که در پروتکل CAN استاندارد وجود دارد در پروتکل TTCAN ، باعث ايجاد انعطاف بيشتري در در کنار
ساختار قطعيت ميشود. پروتکل TTCAN امکان تعريف پنجرههاي زماني داوري را نيز براي پيامهاي فوري و پيشبيني نشده ، فراهم کردهاست. قطعيت در اجازه و امکان ارسال پيام متناوب بعدي براي يک گره ، توسط مشخصههاي از پيش تعريفشدهي پروتکل و مکانيسمهاي نظارتي قراردهده شده در آن ، تضمين شدهاست. پروتکل TTCAN براي پيادهسازي سيستمهايي که به کانال ارتباطي داراي افزونگي از نوع مديريت توسط پروتکل و سيستمهايي که نرخ ارسال و دريافت و نيازهاي افزونگي از محدوديتهاي CAN تجاوز نميکند ، مناسبترين راه حل به شمار ميآيد.
منابع :
1. CiA (CAN in Automation) website, http://www.can-cia.org
2. Thomas Fuhrer , “Time Triggered Communication on CAN” , CAN in Automation Official WebSite , 2006.
3. Etschberger, K., “Controller Area Network:Basics, Protocols, Chips and Application”, IXXAT Press, 2001.