بخشی از مقاله
چکیده - پروتکل - Controller Area Network - CAN یک استاندارد باس داده است که یه صورت گسترده در صنایع استفاده میشود. یکی از ضعفهای پروتکل CAN در سیستمهای بلادرنگ تغییر در زمان پاسخ به دلیل اعمال مکانیزم bit stuffing است. به منظور کاهش stuff bit ها روشهای مختلفی پیشنهاد شده است. مقاله حاضر به بررسی استفاده همزمان دو روش ماسک XOR و استفاده هوشمندانه شناساگر در ساختار پیام در لایه کاربرد پرداخته است. میزان تاثیر این روش با اعمال آن به دو گروه دادههای تصادفی و دادههای مربوط به سیستم واقعی مورد بررسی قرار گرفته است. در انتها نیز پتانسیل روش ترکیبی پیشنهاد شده بر کاهش بدترین زمان پاسخ یک سیستم واقعی مورد بررسی قرار گرفته است.
-1 مقدمه
در سالهای اخیر به دلیل استفاده روزافزون از سیستمهای بلادرنگ، راههای مخابره پیام که تامین کننده این نیاز باشند به سرعت در حال افزایش است. پروتکل CAN یکی از راههای ارتباط سریال است که اولین بار توسط Robert Bosch Gmbh و برای موتور خودرو پیشنهاد گردید.[1] با وجود اینکه CAN در ابتدا به منظور استفاده در خودروها طراحی گردید ولی با توجه به قیمت ارزان، قابلیت اطمینان و امکان کار در محیطهای با میزان نویز بالا به سرعت در سایر بخشهای صنعت و بخشهای کنترلی مبتنی بر سیستمهای بلادرنگ مورد استفاده قرار گرفت.[3 ,2]
قابلیت پیشبینی رفتار زمانی، یکی از مهمترین ویژگیهای سیستمهای بلادرنگ است. این در حالی است که برخی از فرایندهای مورد استفاده در پروتکل CAN برآورده شدن این خواسته را مختل میکند. یکی از این فرایندها bit stuffing است که به منظور سنکرونسازی پالس ساعت در سیستم و همچنین جلوگیری از وقوع الگوهای مشابه الگوی مربوط به وقوع خطا در سیستم بهکار میرود.
فرایند bit stuffing باعث عدم امکان پیشبینی دقیق بدترین زمان پاسخ به در پیامها است. به منظور رهایی از وقوع bit stuffing روشهای متعددی چون استفاده از ماسک XOR ، استفاده از بیت معکوس - inversion bit stuffing - mechanism، مدوله سازی 8 به eight to eleven - 11 - modulation، متمم بیت سوم - third bit complement - ، Zero Stuff-bit CRC و انتخاب هوشمندانه شناساگر - carefully - selecting priorities ارائه شده است.[10-4]
در مقاله حاضر از دو روش ماسک XOR و انتخاب هوشمندانه شناساگر، به طور همزمان استفاده شده است که در ادامه با عنوان روش ترکیبی از آن یاد میشود . روش ماسک XOR شامل انجام عملیات منطقی XOR بخش داده هر پیام با الگوی 101010… به منظور از بین بردن بیتهای یکسان پشت سر هم است. روش انتخاب هوشمندانه شناساگر شامل اجتناب از انتخاب شناساگرهایی است که به دلیل وجود بیتهای یکسان پشت سرهم مستلزم عملیات bit stuffing هستند.
روش ترکیبی یاد شده به دو دسته داده شامل دادههای تصادفی و دادههای واقعی مربوط به یک سیستم پرنده اعمال خواهد شد. همچنین بدترین زمان پاسخ برای سیستم واقعی قبل و بعد از اعمال روش ترکیبی محاسبه و میزان بهبود ناشی از اعمال روش ترکیبی ارائه میشود. که شاهد 5 تا 10 درصدی عملکرد سیستم خواهیم بود. در ادامه و در بخش 2 به معرفی اجمالی پروتکل CAN پرداخته شده است. بخش 3 توضیحاتی پیرامون فرایند bit stuffing ارائه میدهد. بخش 4 مشتمل بر روابط حاکم بر محاسبه بدترین زمان پاسخ است. بخش 5 شامل نتایج به دست آمده و در بخش 6 به نتیجهگیری میپردازیم.
-2 مروری بر پروتکل CAN
CAN یک باس داده چند اربابی است که به منظور کار در سرعتهای تا 1 Mbit/s طراحی شده است. ساختار کلی هر پیام در CAN به ترتیب شامل یک شناساگر منحصربهفرد - برای CAN 2. 0 A شناساگر 11 بیتی و برای CAN 2.0 B شناساگر 29 بیتی است - ، قسمت کنترل، دادهها، CRC و فیلد پایان فریم میباشد. شناساگر علاوه بر تعیین اولویت دستیابی به باس در هنگام درخواست همزمان گرهها، فیلتر شدن پیامهای ناخواسته در گرهها را نیز ممکن میکند.
قسمت کنترل وظیفه تعیین نوع پیام Data - یا - Remote و طول داده درون پیام که از صفر تا هشت قابل تنظیم است را به عهده دارد. فیلد داده حاوی اطلاعات درون پیام میباشد. قسمت CRC جهت صحت سنجی پیام استفاده میشود و فیلد پایان، اتمام پیام را به گیرندهها اطلاع میدهد.[6] ساختار یک پیام CAN در شکل 1 نشان داده شده است.
ارسال داده توسط هر گره زمانی میسر است که باس بیکار باشد. در صورتی که باس بیکار باشد گرههایی که قصد ارسال داده دارند، شناساگر خود را به صورت تک بیتی و پشت سر هم ارسال میکنند. در پروتکل CAN، بیت 0 را بیت غالب و بیت 1 را بیت مغلوب مینامند. باس طوری طراحی شده است که در صورتی که چند گره به طور همزمان در حال ارسال شناساگر خود بر روی باس باشند و تنها یکی از آنها 0 باشد، مقدار باس 0 خواهد شد. در واقع باس مانند یک گیت AND بزرگ عمل میکند.[11]
-3 معرفی فرایند Bit stuffing
در پروتکل CAN شش بیت پشت سر هم یکسان 000000 - یا - 111111 به منظور مخابره خطا به کار میرود. جهت جلوگیری از ایجاد این الگو در ساختار پیام و ایجاد تغییرات بیتی لازم جهت همگام سازی گذرگاه داده، پس از هر پنج بیت یکسان، یک بیت مخالف - stuff bit - اضافه میشود. در واقع گره ارسال کننده پیام پس از هر پنج بیت یکسان، یک بیت مخالف قرار میدهد و در محل گره گیرنده این stuff bit حذف میشود تا پیام اصلی استخراج شود.
-1-5 انتخاب هوشمندانه شناساگر
با توجه به اینکه سرایند پیام - شش قسمت ابتدایی ساختار پیام - تحت bit stuffing قرار میگیرد با انتخاب هوشمندانه شناساگر میتوان از وقوع در سربرگ پیام اجنتاب نمود. هر چند استفاده از این روش مانع از استفاده از مجموعه کامل شناساگرها 211 - شناساگر - میشود لیکن در عمل معمولا تعداد زیر سیستمها و پیامهای متنوع مورد نیاز در یک سیستم کمتر از این تعداد بوده و با کمبود تعداد شناساگر روبرو نمیشویم. نتایج حاصل از استفاده از این روش در جدول 1 ارائه شده است. با توجه به نتایج جدول ملاحظه میشود که با اعمال این روش میتوان stuff bitها را به کلی حذف نمود یا به مقدار حداقل 1 کاهش داد.