سیستم های نهفته – Embedded Systems

سیستم های نهفته امروزه کاربرد گسترده ای در تمام زمینه ها دارند. احتمالا شما در مورد سیستم های نهفته شنیده اید اما ممکن است ایده دقیقی از مفهوم آن نداشته باشید. اما براستی چرا برای اشاره به این نوع از سیستم ها به سیستم های الکترونیک بسنده نمی شود ؟ این سیستم ها چه خصوصیتی دارند که آنها را اینگونه نام گذاری کرده اند. به طور خلاصه علم الکترونیک به دو شاخه کلی آنالوگ و دیجیتال دسته بندی شود. شاخه الکترونیک آنالوگ شامل مطالعه و بررسی عناصر نیمه هادی مثل دیود و ترانزیستور و کاربردهای آنهاست و شاخه دیجیتال یک کاربرد خاص این عناصر در حالت کلید زنی(روشن و خاموش) است. در قرن بیستم توسعه سیستم های دیجیتال به ساخت کامپیوتردیجیتال منجر شد و مزیت های کامپیوتر دیجیتال روز به روز بر کاربردهای آن افزود. اما وقتی در مورد کامپیوتر صحبت می شود اغلب صفحه کلید و نمایشگر یک کامپیوتر شخصی را در ذهن مردم تداعی می کند. اما کاربرد و حوزه کاری سیستم های کامپیوتری از این بسیار گسترده تر است و کامپیوترهای شخصی به دلیل اندازه بزرگ و قیمت بالا و همینطور مصرف بالای انرژی گزینه مناسبی برای سیستم های نهفته نیستند.
در تعریف کلی، سیستم نهفته نوعی سیستم کامپیوتری است که در درون یک سیستم بزرگتر جاسازی یا نهفته شده است و جزیی از آن سیستم است[۲]. بر اساس مطالعات انجام شده بیش از ۹۸% میکروپروسورهای تولیدی در دنیا در سیستم های نهفته به کار می روند[۲]. به نظر می رسد این روند با همه گیر شدن اینترنت اشیاء به اوج خود برسد.

کاربرد خاص
به عنوان مثال یک دستگاه آب سردکن صنعتی را در نظر بگیرید. این سیستم را می توان به کمک یک میکروکنترلر ۱۰ مگاهرتز و چند کیلوبایت حافظه و مدارات واسط مناسب هم کنترل کرد. استفاده از یک کامپیوتر شخصی در این کاربرد نه تنها سخت و کاملاْ بی صرفه و پر هزینه است بلکه در بسیاری کاربردها توان پاسخ گویی به الزامات بلادرنگ سیستم های نهفته را ندارد. درادامه بیشتر در مورد الزامات بلادرنگ صحبت می کنیم. بنابراین سیستم های نهفته عموما کاربرد خاص دارند و برای یک کاربرد منحصر به فرد طراحی و ساخته می شود و قرار بر این نیست همه فن حریف باشد. البته امروزه با توجه به توسعه تکنولوژی کامپیوتر و میکروالکترونیک مرز بین سیستم های نفهته و سیستم های کاربرد عمومی کوچک و کم رنگ تر شده است. اگر به محیط اطراف خود دقت کنید سیستم های بسیار زیادی می بینید که کاربرد خاص دارند. آسانسور- سیستم اتفاع حریق ساختمان – پرینتر – اسکنر- ECU خودرو – ضبط خودرو – ماشین قهوه ساز – لوازم خانگی هوشمند – کنترلرهای برنامه پذیر- و مثال های بسیار دیگر همه نمونه سیستم های نهفته هستند که کاربرد خاصی دارند و برخی از آنها در تصویر ۱ نشان داده شده اند.
پنهان از دید کاربر
همانطور که ذکر شد سیستم های نهفته کاربرد خاص دارند. اما علاوه بر کاربرد خاص در بسیاری موارد سیستم های نفهته از دید کاربر پنهان هستند. به عبارتی دیگر شما نیاز به یک ماوس و کیبرد و نمایشگر 4K ندارید تا با یک ماشین لباسشویی هوشمند کار کنید. احتمالا چندین کلید لمسی خازنی و و یک نمایشگر monochrome ساده به عنوان واسط کاربری برای این سیستم کفایت می کند. به همین دلیل نیز این سیستم ها به عنوان سیستم نهفته (Embedded System) شناخته می شوند چرا در داخل یک سیستم بزرگتر نهفته و جای گرفته اند و از این روی از دید کاربر پنهان هستند. به دستگاه قهوه ساز ساخت شرکت زیمنس در تصویر ۲ توجه کنید. بجز واسط کاربری مابقی قسمت های سیستم کنترل این دستکاه از دید کاربر پنهان است.

منابع محدود
همانطور که ذکر شد سیستم های نهفته عمدتا نیاز به منابع زیادی ندارند. این منابع شامل پالس ساعت ، انواع حافظه ها ، واحد های محاسباتی و پردازشی ، انواع ورودی و خروجی های دیجیتال و آنالوگ و خلاصه هر آنچه که یک سیستم برای انجام کار خود به آن نیاز دارد. به همین دلیل داشتن تمامی این منابع به صورت یکجا و مجتمع بسیار به صرفه و اقتصادی است و برای دستیابی به آن نوع خاصی از پدازنده ها توسعه یافته اند که میکروکنترلر نام دارند. دلیل این نام گذاری این است که میکروکنترل به میزان کافی از تمامی منابع مذکور برخوردار است تا یکی سیستم را کنترل و مدیریت کند. این اسم همینطور نشان می دهد میکروکنترلر برای کاربردهای کنترلی مناسب است. در کاربردهای کنترلی اغلب الزامات بلادرنگ وجود دارد و این الزامات به وسیله سیستم عامل بلادرنگ قابل اجراست. از این رو زمانی کاربرد سیستم های کنترل در میان باشد سیستم های میکروکنترلی ترجیح کاربردی و اقتصادی دارند. البته می توان این سیستم ها را به کمک سخت افزارهای قابل برنامه ریزی (FPGA و PLD ) نیز پیاده سازی کرد و حتی سیستم هایی که شامل ترکیبی از میکروکنترلر ها و FPGA باشد هم وجود دارد اما اغلب در بحث سیستم های نهفته صحبت از میکروکنترلرها است. سیستم های بلادرنگ بحث بسیار جالب و کاربردی است که در سری مقالات جداگانه ای به آن خواهیم پرداخت.

کاربرد به عنوان سیستم کنترل
سیستم های نهفته اغلب کاربرد کنترلی دارند. به عبارت دیگر از آنها در ساخت سیستم های کنترل دیجیتال استفاده می شود. به همین دلیل سیستم های نهفته نیاز به ارتباط با دنیای بیرون از خود دارند. برای این منظور یک سیستم نهفته از درگاه های ورودی خروجی عمومی (GPIO) بهره می گیرد. ارتباط بین سیستم کنترل و محیط یا به اصطلاح علم کنترل فرایند تحت کنترل از طریق سنسورها و عملگرها صورت می گیرد. سنسورها از فرایند تحت کنترل اطلاعات مورد نیاز محیطی یا فرایندی مانند دما، رطوبت، موقعیت، سرعت (خطی یا زاویه ای)، شتاب، ولتاژ، جریان و … را دریافت می کند. سپس بر اساس برنامه کنترلی این اطلاعات را پردازش کرده و نتیجه محاسبات را به کمک عملگرهایی(Actuators) مانند موتورها،رله ها، شیرهای برقی، جک های هیدرولیک یا پنوماتیک ، المنت حرارتی و … در متغیرهای تحت کنترل اعمال می کند تا تنظیم و کنترل مورد نظر در فرایند صورت پذیرد. تمامی این کارها توسط یک سیستم نهفته صورت می گیرد که در درون آن اغلب یک یا چند میکروکنترلر یا پردازنده نهفته وجود دارد.
الزامات بلادرنگ
آیا تا به حال در مورد سیستم های بلادرنگ شنیده اید؟ سیستم های نهفته اغلب الزامات بلادرنگ دارند. برای درک این مطلب لازم است کمی این موضوع را باز کنیم. سیستم بلادرنگ مفهومی در علم رایانه است و به دسته ای از سیستم های کامپیوتری اشاره دارد که در آنها نه تنها باید محاسبات درست باشد بلکه باید در مدت زمانی معینی انجام شود. در سیستم های کامپیوتری معمولی که الزامات بلادرنگ ندارند سرعت و بازدهی اجرای برنامه و دسترسی عادلانه و برابر به منابع سیستم برای برنامه ها اهمیت دارد. بنابراین اغلب اولویتی در اجرای برنامه ها وجود ندارد و درنتیجه زمان اجرای برنامه ها نیز تا اندازه ای که کاربر را ناراحت نکند و سیستم به درستی کار کند کافی است. به عبارت دیگر مهلتی برای اجرای برنامه ها وجود ندارد. اما در سیستم های بلادرنگ همیشه نوعی اولویت بندی و زمان بندی اجرا برنامه ها وجود دارد. به همین دلیل سیستم های بلادرنگ بر اساس عواقب از دست دادن مهلت اجرای برنامه های خود به سه دسته سخت(Hard) ، محکم(Firm) و نرم(Soft) تقسیم بندی می شوند. سیستم های بلادرنگ نرم آن دسته از سیستم هایی هستند که در صورت از دست دادن مهلت اجرای برنامه عواقب خواصی ندارد و تنها کیفیت سرویس دهی سیستم کاهش می یابد. نمونه سیستم نرم سرویس های پخش آنلاین ویدیو و موسیقی است. اگر در زمان پخش ویدیو سرعت کم باشد یا اینترنت قطع و وصل شود قطعا کاربر را ناراحت می کند ولی خطری متوجه وی یا سیستم نمی شود. در سیستم های بلادرنگ محکم اگر مهلت اجرای برنامه از دست برود خروجی ارزش خود را از دست داده است و خروجی صفر یا سیستم خاموش می شود. مثال این سیستم بازوی های ربات در خطوط تولید است. اگر بازو به درستی قطعه را برندارد و یا به موقع در جای درستی قرار ندهد عملا کارایی خود را از دست می دهد. در این حالت ممکن است خط تولید دچارمشکل شود. اما سیستم های بلادرنگ سخت در کاربردهای ایمنی-بحرانی(Safety Critical) استفاده می شوند. اگر برنامه به درستی در زمان خود اجرا نشود سیستم دچار آسیب می شود یا موجب بروز آسیب به افراد و تجهیزات می گردد. سیستم ایربگ خودرو و یا ترمز ABS یک مثال از چنین سیستمی است که در صورت خطا موجب خسارات جانی و مالی می شود.
همانطور که ذکر شد سیستم های نهفته اغلب الزامات بلادرنگ دارند و برای مدیریت آنها از سیستم عامل بلادرنگ(Real-time OS) استفاده می کنند. سیستم عامل های بلادرنگ انواع مختلفی دارند و از نوع ساده میکروکنترلری مانند FreeRTOS تا انواع پیچیده مبتنی سیستم عامل لینوکس بلادرنگ مانند WxWorks را شامل می شود. سیستم عامل بلادرنگ بستر مناسب اولویت بندی و اجرای به موقع برنامه های بلادرنگ را فراهم می کند. نکته ای که بسیار از طراحان سیستم های نهفته از آن قافل اند اهمیت RTOS در سیستم های نهفته است. به صورت سنتی اغلب برنامه سیستم های نهفته به زبان C و به صورت حلقه نامحدود(Super loop) نوشته می شود. این روش ساده است اما پیاده سازی برنامه های پیچیده که نیاز به زیر برنامه های بسیار با زمان بندی دقیق باشد بسیار مشکل است اگر ناممکن نباشد. برخی طراحان از وقفه ها برای رفع این مشکل بهره می گیرند در حالی که در عمل وقفه ها خطرات بلادرنگ در اجرای برنامه ایجاد می کنند و درRTOS از مکانیزم دیگری برای زمان بندی استفاده می شود. این مکانیزم ها امکان زمان بندی دقیق برای برنامه های مبتنی بر RTOS فراهم می کند و چندین برنامه بر اساس اولویت و سیاست زمانبندی می توانند همزمان اجرا می شوند.
اینترنت اشیا
اینترنت در دنیای امروز یک تکنولوژی فراگیر است و کمتر کار و دستگاهی را می توان یافت که به نحوی با اینترنت در ارتباط نباشد. این موضوع در مورد سیستم های نهفته نیز صادق است. با توسعه تکنولوژی چیپ های واسط شبکه اینترنت که از طریق Ethernet یا WiFi به اینترنت وصل می شوند شما امروز به راحتی می توانید قدیمی ترین پردازنده ها و میکروکنترلرهایی که از پروتکل هایی مانند SPI و UART پشتیبانی می کنند را به اینترنت متصل کنید. این موضوع منجر به انقلابی موسوم به اینترنت آشیا (IoT) شده است.

دیدگاهتان را بنویسید