امبدد سیستم یا سامانه نهفته چیست و چه کاربردی دارد؟
یکی از پیشرفتهای شگفتآور چند دهه اخیر ورود حیرتآور رایانه در امورات کاری و زندگی روزمره انسانها بوده است. امروزه تعداد رایانهها در خانهها و دفاتر ما بیشتر از افرادی است که در آنها زندگی و کار میکنند. بااینحال بسیاری از این رایانهها توسط کاربرانشان بهاینترتیب شناخته نمیشوند. در این مقاله، ما توضیح خواهیم داد که سیستمهای امبدد یا Embedded Systems چیست و کجا یافت میشوند. همچنین موضوع برنامهنویسی امبدد را معرفی خواهیم کرد و بحث خواهیم کرد که چه چیزی آن را به شکل منحصربهفردی از برنامهنویسی تبدیل میکند.
سیستم امبدد چیست؟
سیستم امبدد ترکیبی از سختافزار و نرمافزار است – و شاید قطعات اضافی، چه مکانیکی و چه الکترونیکی – که برای انجام عملکرد اختصاصی طراحی شده است. یک مثال خوب مایکروویو است. تقریباً در هر خانوار یک مایکروویو وجود دارد و دهها میلیون از آنها هر روز مورداستفاده قرار میگیرند، اما تعداد بسیار کمی از افراد متوجه میشوند که یک پردازنده و نرمافزار در تهیه ناهار یا شام آنها نقش دارد.
طراحی یک سیستم امبدد برای انجام یک عملکرد اختصاصی در تقابل مستقیم با رایانه شخصی است. همچنین از سختافزار و نرمافزار و اجزای مکانیکی (بهعنوانمثال درایوهای دیسک) تشکیل شده است. بااینحال، یک کامپیوتر شخصی برای انجام عملکرد خاصی طراحی نشده است، بلکه قادر به انجام کارهای مختلف است. بسیاری از افراد برای روشن ساختن این تمایز از اصطلاح رایانه عمومی استفاده میکنند. یک رایانه با کاربرد عمومی یک صفحه خالی است. تولیدکننده نمیداند مشتری با آن چه خواهد کرد. یک مشتری ممکن است از آن برای کارهای شبکهای خود استفاده کند، دیگری ممکن است از آن به طور انحصاری برای انجام بازیها استفاده کند، و مشتری سوم ممکن است از آن برای نوشتن رمان بزرگ خود استفاده کند.غالباً، یک سیستم امبدد جزئی از برخی سیستمهای بزرگتر است. بهعنوانمثال، اتومبیلها و کامیونهای مدرن حاوی بسیاری از سیستمهای امبدد هستند. یک سیستم امبدد، میتواند ترمزهای ضد انفجار را کنترل کند، دیگری میزان انتشار دود خودرو را کنترل میکند، و دیگری اطلاعات را روی داشبورد نمایش میدهد. برخی از تولیدکنندگان اتومبیلهای لوکس حتی تعداد پردازندهها (اغلب بیش از 60 دستگاه، از جمله در هر چراغ جلو) را در تبلیغات تبلیغ کردهاند. در بیشتر موارد، سیستمهای امبدد خودرو توسط یک شبکه ارتباطی متصل میشوند.
درک بیشتر در خصوص سیستم امبدد
ذکر این نکته مهم است که یک رایانه عمومی، با کمک سیستمهای امبدد متعددی در ارتباط با هم کار میکند. بهعنوانمثال، یک رایانه معمولی دارای صفحهکلید و ماوس است که هر یک از آنها یک سیستم امبدد است. این تجهیزات جانبی هرکدام شامل پردازنده و نرمافزاری هستند و برای انجام عملکرد خاصی طراحی شدهاند. مثال دیگر یک مودم است که برای ارسال و دریافت دادههای دیجیتالی از طریق یک خط تلفن آنالوگ طراحی شده است. اینهمه کاری است که مودم انجام میدهد و عملکرد خاص سایر لوازم جانبی را میتوان در یک جمله واحد خلاصه کرد.
وجود پردازنده و نرمافزار در سیستم امبدد ممکن است توسط کاربر دستگاه موردتوجه قرار نگیرد. این مورد در مورد مایکروویو، دستگاه پخش MP3 یا ساعت زنگدار وجود دارد. در بعضی موارد، حتی میتوان دستگاهی معادل ساخت که شامل پردازنده و نرمافزار نباشد. این امر میتواند با جایگزینی ترکیب پردازنده و نرمافزار با یک مدار مجتمع سفارشی موسوم به IC انجام شود که همان عملکردها را در سختافزار انجام دهد. بااینحال، ترکیب پردازنده و نرمافزار به طور معمول انعطافپذیری بیشتری نسبت به طراحی با سیم سخت ارائه میدهد. بهطورکلی استفاده از پردازنده و نرمافزار در سیستم امبدد بسیار آسانتر، ارزانتر و کممصرف است.
تعریف و کاربرد سیستم های نهفته یا امبدد
تاریخ و آینده امبدد سیستم ها
باتوجهبه تعریفی که از سیستمهای امبدد در اوایل این مقاله ارائه شد، اولین سیستمهای اینچنینی احتمالاً قبل از سال 1971 نمیتوانستند ظاهر شوند. این همان سالی بود که اینتل اولین ریزپردازنده تک تراشهای جهان را معرفی کرد. این
تراشه، 4004 ، برای استفاده در یک سری از ماشینحسابهای تجاری تولید شده توسط شرکت ژاپنی Busicom طراحی شده است. در سال 1969 ، Busicom از اینتل خواست که مجموعهای از مدارهای مجتمع سفارشی را برای هر مدل ماشینحساب جدید خود طراحی کند. 4004 پاسخ اینتل بود. اینتل بهجای طراحی سختافزار سفارشی برای هر ماشینحساب، یک مدار عمومی را پیشنهاد داده است که میتواند در کل خط ماشینحسابها مورداستفاده قرار گیرد. این پردازنده هدف عمومی برای خواندن و اجرای مجموعهای از دستورالعملها – نرمافزار – ذخیره شده در تراشه حافظه خارجی طراحی شده است. ایده اینتل این بود که این نرمافزار به هر ماشینحساب مجموعهای از ویژگیهای منحصربهفرد خود را بدهد و این سبک طراحی تقاضای تجارت اصلی خود را در تراشههای حافظه ایجاد کند.
موفقیت اینتل در سیستم های نهفته
ریزپردازنده یک شبه، موفقیت کسب کرد و استفاده از آن طی دهه آینده به طور پیوسته افزایش یافت. برنامههای اولیه امبدد شامل کاوشگرهای فضایی بدون سرنشین، چراغ راهنمایی رانندگی رایانهای و سیستمهای کنترل پرواز هواپیما بود. در دهه 1980 و 1990 ، سیستمهای امبدد بیسروصدا بر امواج عصر ریز رایانه سوار میشدند و ریزپردازندهها را وارد هر قسمت از زندگی شخصی و حرفهای ما میکردند. اکثر دستگاههای الکترونیکی آشپزخانههای ما (دستگاههای تهیه نان، غذاساز و مایکروویو) ، اتاق نشیمن (تلویزیون، استریو و کنترل از راه دور) و محل کار (دستگاه فکس، پیجر، چاپگر لیزری، صندوق پول و کارتخوان اعتباری) سیستمهای امبدد هستند. بیش از 6 میلیارد ریزپردازنده جدید هرساله استفاده میشود. کمتر از 2 درصد (یا حدود 100 میلیون در سال) از این ریزپردازندهها در رایانههای عمومی استفاده میشود.
الزامات تأثیرگذار بر روی گزینههای طراحی سیستمهای نهفته
هر سیستم امبدد باید مجموعهای کاملاً متفاوت از الزامات را داشته باشد، هر یک یا همه اینها میتواند بر مصالحه و معاملات حاصل از توسعه محصول تأثیر بگذارد. بهعنوانمثال، اگر سیستم باید هزینه تولید کمتر از 10 دلار داشته باشد، برای رسیدن به این هدف، سایر صفات مطلوب مانند قدرت پردازش و قابلیت اطمینان سیستم باید فدا شوند.
البته، هزینه تولید تنها یکی از محدودیتهای احتمالی است که طراحان سختافزار امبدد تحت آن کار میکنند. سایر الزامات معمول طراحی عبارتاند از:
- قدرت تحلیل
- حافظه
- تعداد واحدها
- مصرف انرژی
- هزینه توسعه
- طول عمر
- قابلیت اطمینان
الزامات معمول طراحی برای سیستمهای امبدد
عنوان | کم | متوسط | زیاد |
پردازنده | 4 یا 8 بیت | 16 بیت | 32 یا 64 بیت |
حافظه | کمتر از 64 کیلوبایت | 64 کیلوبایت تا 1 مگابایت | بیشتر از 1 مگابایت |
هزینه توسعه | کمتر از 100 هزار دلار | بین 100 هزار تا 1 میلیون دلار | بیشتر از 1 میلیون دلار |
هزینه تولید | کمتر از 10 دلار | بین 10 تا 1000 دلار | بیشتر از 1000 دلار |
تعداد واحدها | کمتر از 100 | بین 100 تا 10000 | بیشتر از 10000 |
مصرف انرژی | بیشتر از 10mW/MIPS | 1 تا 10mW/MIPS | کمتر از 10mW/MIPS |
طول عمر | روزها، هفتهها یا ماهها | سالها | دههها |
قابلیت اطمینان | ممکن است بر اساس موقعیت شکست بخورد | ممکن است دارای قابلیت اطمینان باشد | باید ضد خطا باشد |
زندگی بهعنوان یک توسعهدهنده نرمافزار امبدد
حال بیایید نگاهی کوتاه به برخی از ویژگیهای نرمافزارهای امبدد بیندازیم که توسعه دهندگان امبدد را از سایر انواع توسعه دهندگان نرمافزار جدا میکند.
توسعه نرمافزار امبدد، در بیشتر موارد، نیاز به تعامل نزدیک با دنیای فیزیکی و بستر سختافزاری دارد. ما میگوییم “در اکثر موارد” زیرا سیستمهای امبدد بسیار بزرگی وجود دارد که افراد را ملزم میکند فقط بر روی نرمافزار لایه برنامه برای سیستم کار کنند. این توسعه دهندگان برنامه معمولاً هیچ تعاملی با سختافزار ندارند. در صورت طراحی صحیح، درایورهای دستگاه سختافزاری بهدوراز سختافزار واقعی انتزاع میشوند، بهطوریکه یک توسعهدهنده نرمافزار که وظیفه نوشتن کد در سطح برنامه را دارد نمیداند که چگونه یکرشته به صفحه نمایش خروجی میدهد.