شبکه هاي سنسوري بي سيم
پيشرفتهايي که امروزه در زمينه ارتباطات بي سيم ، سخت افزار و الکترونيک انجام گرفته ، بسيار چشم گير می باشد. اين موضوع به همراه تمايل روزافزون به محصولات کم قيمت با کارايي بالا ، همگي دست به دست هم داده اند تا زمينه هاي لازم براي پيشترفت شبکه هاي سنسوري بي سيم را فراهم کنند. اين شبکه ها مجموعه اي از حسگر ها هستند که در يک محيط نزديک به هم و يا درون منطقه اي خاص قرار گرفته اند. اين حسگرها اجزاي کوچکي هستند که نيازهاي اطلاعاتي ما را با دريافت ، پردازش و انتقال آن ها برآورده مي سازند. و برای اندازه گیری گروهی برخی از کمیت های فیزیکی یا شرایط محیطی مانند دما، صدا، لرزش، فشار، حرکت یا آلاینده ها، در مکانهای مختلف یک محدوده کاربرد دارد. شبکه های حسگر با انگیزه استفاده در کاربردهای نظامی مانند نظارت بر میدان جنگ، توسعه پیدا کرد. اما ....
شبکه هاي سنسوري بي سيم
پيشرفتهايي که امروزه در زمينه ارتباطات بي سيم ، سخت افزار و الکترونيک انجام گرفته ، بسيار چشم گير می باشد. اين موضوع به همراه تمايل روزافزون به محصولات کم قيمت با کارايي بالا ، همگي دست به دست هم داده اند تا زمينه هاي لازم براي پيشترفت شبکه هاي سنسوري بي سيم را فراهم کنند. اين شبکه ها مجموعه اي از حسگر ها هستند که در يک محيط نزديک به هم و يا درون منطقه اي خاص قرار گرفته اند. اين حسگرها اجزاي کوچکي هستند که نيازهاي اطلاعاتي ما را با دريافت ، پردازش و انتقال آن ها برآورده مي سازند. و برای اندازه گیری گروهی برخی از کمیت های فیزیکی یا شرایط محیطی مانند دما، صدا، لرزش، فشار، حرکت یا آلاینده ها، در مکانهای مختلف یک محدوده کاربرد دارد. شبکه های حسگر با انگیزه استفاده در کاربردهای نظامی مانند نظارت بر میدان جنگ، توسعه پیدا کرد. اما امروزه شبکه های حسگر بی سیم در صنعت و بسیاری از مقاصد غیر نظامی استفاده میشوند، از جمله نظارت و کنترل فرآیندهای صنعتی، نظارت بر سلامت دستگاهها، نظارت بر محیط و یا خانه، کاربردهای مراقبت از سلامتی، خانههای هوشمند و کنترل ترافیک.
علاوه بر یک یا چند سنسور، هر گره از شبکه معمولا مجهز به یک فرستنده و گیرنده رادیویی (یا هر وسیله مخابراتی بی سیم دیگر)، یک میکروکنترلر کوچک، و یک منبع انرژی (معمولا یک باتری) است. اندازه یک گره سنسوری بسته به اندازه بسته بندی آن تغییر کرده و تا یک دانه شن قابل کوچک سازی است محدودیت های قیمت و اندازه در گره های حسگر منجر به محدودیت در منابعی مانند انرژی، حافظه، سرعت پردازش و پهنای باند در آنها میشود.
یک شبکه سنسور معمولا تشکیل یک شبکه (ad-hoc) را می دهد، به این معنی که هر گره از الگوریتم مسیریابی multi-hop استفاده میکند. (تعداد زیادی گره یک بسته اطلاعاتی را جلو برده و به ایستگاه مرکزی می رساند).
ساختار ارتباطي شبکههاي حسگر
گرههاي حسگر در يک منطقه پراکنده ميشوند. همانطور كه قبلاً هم اشاره كرديم گرههاي حسگري داراي توانايي خودساماندهي هستند. هر کدام از اين گرههاي پخششده داراي توانايي جمعکردن اطلاعات و ارسال آنها به پايانهاي موسوم به sink است. اين اطلاعات از يک مسير چند مرحلهاي که زيرساخت مشخصي ندارد به سينک فرستاده ميشوند و سينک ميتواند توسط لينک ماهواره يا اينترنت با گره task manager ارتباط برقرار کند.
اين سنسورها مزاياي بسيار زيادي نسبت به سنسورهاي عادي دارند. در بسياري از موارد ، به اين سنسورها با ديد گره هاي يک گراف و به خطوط ارتباطي ميان اين گره ها به چشم يالهاي گراف نگاه مي شود و در بسياري از تحليل ها و الگوريتم هاي ارايه شده از قوانين حاکم بر گرافها استفاده مي شود. با توجه بدان چه گفته شد ، شباهت هاي بسيار زيادي ميان اين نوع شبکه ها و شبکه هاي مرسوم مي توان يافت ، ولي با ذکر چندين نمونه تفاوتهاي اين دو نوع را با هم بيان مي کنيم :
· سنسورها و گره هاي اين شبکه در معرض خرابي و از کار افتادگي با ضريب بالا هستند.
· همبندي اين شبکه ها مي تواند به تناوب تغيير کند.
· در اين شبکه ها از ارتباطات همه پخشیbroadcasاستفاده مي شود ولي در شبکه هاي مرسوم عموما از ارتباطات نقطه به نقطه استفاده مي شود.
· منابع انرژي اين گره ها محدود است.
· در يک شبکه ممکن است هيچ شناسه جامعي براي گره ها وجود نداشته باشد.
اين گونه از شبکه ها علي رغم شباهت هايي که با شبکه هاي بي سيم ad-hoc دارند . تفاوتهاي فراواني نيز دارند. اين اختلافات را در جدول 1 آورده ايم.
جدول 1 : مقايسه شبکه های بی سيم و سنسوری
شبکه هاي بي سيم
شبکه هاي بي سيم سنسوري
هر گره داراي يک شناسه عمومي مي باشد
گره ها ممکن است شناسه عمومي نداشته باشند
عموما از روش Point-to-Point براي ارتباطات استفاده مي کنند
عموما از روش broadcast براي ارتباطات استفاده مي کنند
تعداد گره هاي آنها عموما کم است
تعداد گره هاي آنها عموما زياد است
از لحاظ منابع محاسباتي ، انرژي و حافظه در محدوديت نيستند
از لحاظ منابع محاسباتي ، انرژي و حافظه در محدوديت هستند
همبندي گره ها در شبکه بصورت ديناميک است
همبندي گره ها در شبکه بصورت متناوب تغيير مي کند
ارتباطات بصورت Bluetoth ، 802.11 و Ultrawideband است
ارتباطات بصورت AM/FM است
پروتکلهاي ارتباطي TCP و UDP است
روشهايFlooding و Gossiping مد نظر است
اين دسته از شبکه ها کاربردهاي فراواني دارند که به اختصار عبارتند از :
· کاربردهاي شهري و صنعتي
o ترافيک
o تشخيص هويت
o امنيت منازل و ساير اماکن
· کاربردهاي نظامي
o طراحيهاي نظامي
o کنترل مسير حرکت ارتش
o تشخيص مينهاي زير زميني
· کاربردهاي پزشکي
o بررسي علايم حياتي بيمار
در اين شبکه ها همواره امکان از کار افتادگي حسگرها بنابر عوامل متعدد همچون کمبود انرژي ، آسيب فيزيکي و ... وجود دارد ، ولي شبکه بايد توانايي ادامه فعاليت خود را داشته باشد . قابليت اطمينان يک حسگر با نرخ وقوع خطا با ميانگين و توزيع پواسن به صورت زير است :
بعد از اين آشنايي کوتاه به تحمل پذيری خطا در اين شبکه ها می پردازيم :
بررسي تحمل پذيري خطا در شبکه هاي بي سيم سنسوري
در زير ، مسئله تحمل پذيری خطای ناهمگون را به کمکی مثالی توضيح می دهيم. برای شروع ، با يک مثال شروع می کنيم .
يک شبکه سنسوري با مشخصات زير در نطر بگيريد که هدف آن تشخيص هويت است. براي نمونه فرض کنيد در شرکتي شش نفر کار مي کنند. اين سيستم از دو دسته سنسور تشکيل شده است :
• حسگرهايي که ارتفاع را تشخيص مي دهندو مجموعه اي سري از حسگرهاي نوري هستند
• حسگرهايي که صدا را تشخيص مي دهند که همان ميکروفون است
شکل زير نشان دهنده مشخصات شناسايي شده اين شش نفر را نشان مي دهد. بسادگي مشخص مي شود که سيستم توانايي تشخيص دو نفر که در دو مربع متفاوت قرار دارند را دارد. اگر تمامی سنسور ها درست کارکنند هر فرد را در يک مربع مي توان قرار داد. در اکثريت حالات حتي اگر يکي از حسگرهاي ارتفاع و يا صدا از کار بيفتد ، سيستم قادر به تشخيص افراد است. ولي حالاتي هم وجود دارد که در صورت ايجاد خطا ، تشخيص امکان پذير نخواهد بود.
شکل1 - مشخصات شناسايي شده اعضا
براي مثال افراد BوE را در نظر بگيريد که هر کدام داراي يک ارتفاع هستند. در اين حالت بدون داشتن صدا تشخيص اين دو امکانپذير نخواهد بود. اگر يکي از افراد B يا Eرا از سيستم حذف کنيم ، امکان تشخيص با يک حسگر هم مهيا خواهد بود.طراحی چنين سيستم هايي با تحمل پذيری خطای ناهمگون مقاومت سيستم را در برابر انواع مشخصی از حسگر ها بالا خواهد برد.
در اين قسمت هدف ما بررسي تحمل پذيري خطا در چهار سطح انتزاعي شبکه است که از بخش سخت افزار آغاز و به ميان افزار و برنامه هاي اجرايي ختم مي شود . در ابتدا به بحث تحمل پذيري خطا درون اجزای مختلف يک گره که شامل موارد زير است مي پردازيم :
• قسمت محاسباتي
• قسمت ارتباطات
• قسمت ذخيره سازي
• منبع تغذيه
• سنسورها
• فعال کننده ها و محرکها
در مرحله بعدي يک حسگر را به عنوان قسمتي و يا عنصري از يک شبکه مدنظر قرار داده و تحمل پذيري خطا را در آن بررسي مي کنيم و در آخر تحمل پذيري حسگر رادر شبکه توزيعی توکار بررسي مي کنيم. دليل اين امر آن است که در اين شبکه ها به دليل وجود محدوديتهاي بسيار زياد منابع ، همواره امکان ايجاد خطا در هر سطح شبکه وجود دارد . در مباحث بررسي تحمل پذيري خطا به سه مورد توجه مي شود :
• مدل سازي خطا
• تشخيص خطا و برطرف کردن آن
• ايجاد مقاومت در سيستم
تحمل پذيري خطا ی سنتي
تحمل پذيري خطا از سالها قبل وارد مباحث کامپيوتري و طراحيهاي سيستمهاي ديجيتال شده است و همواره روش هايي براي بالا بردن ميزان تحمل پذيري خطا در اين سيستمها ارائه شده است. امروزه با ظهور و پيشرفت VLSI ، اين مباحث در تمام سطوح انتزاعي گسترده شده اند. اين سطوح عبارتند از :
• سطح مداري
• سطح منطقي
• سطح رجيستر
• سطح برنامه
• سطح سيستم
بنابراين براي توليد يک سيستم تحمل پذيرخطا بايستي دقت خود را بر سه مرحله متمرکز کنيم :
• طراحي
• توليد
• استفاده
در ابتدا توضيحي مختصر در مورد مباني اوليه تحمل پذيري خطا بيان مي کنيم. اشکال[1] در حقيقت ظهور آثار يک خطا در يک برنامه و يا سيستم است.خطا [2]در حقيقت حالتي نادرست در وضعيت يک سخت افزار يا برنامه است. براي بررسي يک خطا بايستي خواص آنرا در نظر بگيريم.
زماني که ما در هر يک از سطوح انتزاعي قرار داريم ، نوع خطاهاي ما متفاوت است .براي مثال زماني که در سطح گيت هستيم ، خطاهاي زير را مي توانيم در نظر بگيريم :
• Stuck At
• Bridging
• Open Circuit
• Short Circuit
نکته جالب توجه اين است که در اکثر مدل ها ما سعي در مواجهه با خطاهاي تک بيتي يا تکي داريم. حال براي ايجاد يک سيستم تحمل پذيرخطا و قابل اطمينان اجراي مراحل زير لازم است :
• تشخيص خطا
• مکان يابي خطا
• محدود کردن خطا
• رفع خطا
تا اينجا مقدماتي را در مورد مباحث تحمل پذيري خطا بيان نموديم . براي کسب اطلاعات بيشتر در اين زمينه مي توان به کتب و مقالات متعدد در اين زمينه مراجعه نمود .
بررسی تحمل پذيري خطا در لايه های مختلف
بررسي تحمل پذيري خطا در لايه فيزيکي ارتباط
لايه فيزيکي وظيفه برقراري ارتباط در يک رسانه را بر عهده دارد. در حقيقت وظيفه برقراري ارتباط بين گره ها را بر عهده دارد .وظايف معمول اين لايه مدولاسيون و ديکدينگ و انکودينگ است. از قديم از يک ساختار کاملا سخت افزاري استفاده می شد، زيرا هزينه ها را کاهش داده وانرژی را بيشينه می کند. راديوی نرم افزاری ، وسيله ارتباطی است که پياده سازی قسمت هايي از لايه فيزيکی ، به وسيله نرم افزار ، انجام می شود.بدين وسيله وفق پذيری به تغييرات کانال را خواهيم داشت. با توجه به بررسيهاي انجام شده مشخص شده است که تکنيک های لايه پيوند وفق پذير، کارايی شبکه های بي سيم را افزايش چشم گير خواهد داد. بنابر اين در يک طراحي خوب از بخشهاي نرم افزاري هم استفاده مي شود. طراحيهاي دوگانه براي لايه فيزيکي ،تحمل پذيري خطا را افزايش مي دهند. براي مثال اگر برخي از اجزاي نرم افزاري نتوانند فعاليت خود را انجام دهند از واحدهاي سخت افزاري براي اين عمل استفاده مي کنيم .
بررسي تحمل پذيري خطا در سطح سخت افزار
بررسي سخت افزار را در سطوح مختلف مي توان بررسی کرد . گروهی واحدهاي محاسباتي ، پردازشي و منابع حافظه و سيستم تامين انرژي خواهد بود. با توجه به تکنولوژي امروزه ، تمام اين واحدها همگي از قابليت اطمينان بالايي برخوردار هستند. براي مثال پردازنده هاي عادي موجود در بازار و يا کنترلرو پردازنده هاي خاص منظوره مانند DSP ، همگي از درجه بالاي قابليت اطمينان برخوردارند. ولي با ارائه سه دليل مي توان نشان داد که علي رغم قابليت اطمينان بالا ، نمي توان بسادگي از کنار اين قسمتها گذشت .
اول آنکه به دليل بايستي گره ها از لحاظ هزينه در پايينترين سطح باشند، نمي توان از قطعات با کارايي و کيفيت عالي استفاده نمود. قطعات عادي نيز قابليت اطمينان کمتري دارند.
دوم آنکه اين سيستمها اصولا براي محيطهاي خشن و نامناسب کاربرد دارند.
سوم آنکه کمي منابع انرژي امکان استفاده از هر روش و حتي محاسبات زياد را از ما مي گيرد.
بنابراين در سيستمهاي پردازشي ، ما انتظار داريم در صورت وقوع خطا با روشهايي مانند کدينگ آنها را شناسايي کنيم که اين يک افزونگي اطلاعاتي است . به اين روش تصحيح خودکار مي گويند.علاوه اين شايد بتوان در مواردي خاص از روش افزونگي سخت افزاري براي ايجاد تحمل پذيري خطا در سيستم استفاده نمود . در اين روش علاوه بر قسمت های اصلي چندين يدکي نيز براي سيستم در نظر مي گيريم . در اين روش تا زماني که ما يدکي در سيستم داريم، مي توانيم در هنگام بروز خطا ، قسمت خراب را جايگزين کنيم . در حقيقت اين روش يک افزونگي ترکيبي است . البته بايد توجه داشت که سربارهزينه عموما سبب مي شود از اين روش استفاده نکنيم.
در مواجهه با حافظه ها چه حافظه هاي فرار و چه غير فرار ، اين گونه نشان داده شده است که به دليل قابليت اطمينان بالا ، استفاده ساده از آنها مشکلي را عموما براي سيستم ايجاد نمي کند و بندرت خطا در اين قسمت رخ مي دهد.
جزء ديگري که نياز به بحث دارد سيستم تامين انرژي است . يکي از روشهای سنتي استفاده از باطري است که بسيار معمول است . از قديم ، منبع انرژی، استفاده از باطريهاي قابل شارژ است و براي افزايش قابليت اطمينان از يک باطري ذخيره به عنوان افزونگي سخت افزاري تنها روش ممکن است. البته امروزه از سلولهاي سوختي و سيستمهاي آن نيز استفاده مي شود.اگرچه اين سيستمها بسيار قابل اطمينان بنظر مي رسند ولي اين روشها آنچنان کارايي از خود نشان نداده اند.
دسته ای ديگر امواج راديويي هستند. سيستم راديويي به محيط خارج خود بسيار وابسته است .راه استاندارد مرسوم براي ايجاد قابليت اطمينان براي اين سيستم ، بازارسال و تصحيح خطا است. هردوي اينها نمونه اي از افزونگي هستند.، اولي افزونگي زماني و دومي افزونگي اطلاعات .در برخي موارد در يک گره چندين سيستم راديويي قرار داده شده است که هدف اصلي آنها کاهش مصرف است ولي بصورت خودکار قابليت اطمينان سيستم را بالا مي برند.
دسته بعدی سنسورها و محرکها هستند.اين دو جزء بيشتر از همه در معرض خرابي قرار دارند . در مورد سنسورها سه دسته عمده خرابيها را مي توان نام برد :
• خطا در تنظيمات و دقت تشخيص
• نويزپذيري زياد
• از کار افتادگي کامل به هر دليل
که براي دو مورد اول از افزونگي زماني و براي مورد آخر از افزونگي سخت افزاري براي ايجاد تحمل پذيري خطا مي توان استفاده کرد. تا کنون جز افزونگي سخت افزاري مدلي براي افزايش و يا ايجاد تحمل پذيري خطا در محرکها تصور نشده است.
بررسي تحمل پذيري خطا در سطح نرم افزار
نرم افزار سيستم از دو قسمت تشکيل شده است ، يکي سيستم عامل و ديگري برنامه هاي کاربردي . براي ايجاد تحمل پذيري خطا در نرم افزار روشهاي مختلفي وجود دارند که مرسوم ترين آنها روش چند گونه نويسي[3] است. چند نمونه از يک برنا مه را به اميد داشتن خطا های يکسان پياده سازی می کنيم. مهمترين قسمتي که از تحمل پذيري خطا در نرم افزار سود مي برد ، قسمت مرتبط با ارسال و دريافت است. مثلا می توان پيغام ها را از مسير های مختلف در شبکه های چند پرشی ارسال کرد.از سوي ديگر يکي از مهمترين قسمتهاي نرم افزار قسمتي است که تنظيم دقت سنسورها و محرکها را بر عهده دارد که امروزه روشهاي بسياري براي انجام اين منظور ارائه شده است . يکي ديگر ازاجزاي مهم نرم افزارآن است که وظيفه انجام پردازش توزيع شده الگوريتمهاي شبکه اي را بر عهده دارد. براي مثال در زمينه کم کردن مصرف انرژي با توجه به محدوديتهاي عملياتي حسگرها ، پروتکلهاي بسياري در اين راستا طراحي و ارائه شده است . در تمام پروتکلهاي ارائه شده، ايجاد يک موازنه ميان کارايي و پيچيدگي همواره امري مهم است .