سیستم های امبدد چیست؟
امبدد سیستم، ترکیبی از سختافزار و نرمافزار کامپیوتر است که برای یک عملکرد خاص طراحی شده و ممکن است در یک سیستم بزرگتر مورد استفاده قرار گیرد.
سیستمها میتوانند قابل برنامهریزی یا دارای عملکرد ثابت باشند. ماشینهای صنعتی، لوازم الکترونیکی مصرفی، دستگاههای کشاورزی و صنایع فرآوری، خودروها، تجهیزات پزشکی، دوربینها، ساعتهای دیجیتال، لوازم خانگی، هواپیما، اسباببازیها و همچنین دستگاههای موبایل، مواردی است که میتوان در آنها از امبدد سیستم بهره برد.
با اینکه امبدد سیستمها، سیستمهای محاسباتی هستند، میتوانند از نداشتن رابط کاربر (UI) ـ بهطور مثال در دستگاههایی که برای انجام یک کار طراحی شدهاند – تا رابطهای گرافیکی پیچیده کاربر (GUI) مانند دستگاههای تلفن همراه متغیر باشند.
رابط کاربری میتواند شامل دکمهها، LED (دیودهای ساطعکننده نور) و حسگر صفحه لمسی باشد. برخی سیستمها از رابطهای کاربری راه دور نیز استفاده میکنند.
MarketsandMarkets، یک شرکت تحقیقاتی تجاری از نوع business-to-business (B2B)، پیشبینی کرد که ارزش بازار امبدد تا سال ۲۰۲۵ به ۱۱۶.۲ میلیارد دلار خواهد رسید.
تولیدکنندگان تراشه برای سیستم های امبدد شامل بسیاری از شرکتهای فناوری معروف مانند اپل، آیبیام، اینتل و تگزاس اینسترومنت میشود. تولیدکنندگان به دلیل ادامه سرمایه گذاری در هوش مصنوعی (AI)، محاسبات تلفن همراه و نیاز به تراشه های طراحی شده برای پردازش، رشد مورد انتظار آنها در سطح بالایی قرار گرفته است.
نمونههایی از سیستم های امبدد
سیستم های امبدد در طیف گستردهای از صنایع استفاده میشوند. برخی از این نمونهها عبارتند از:
- اتومبیل: ماشینهای مدرن معمولاً از تعداد زیادی کامپیوتر (گاهی ۱۰۰ عدد) یا سیستمهای تعبیهشده تشکیل شدهاند که برای انجام وظایف مختلف در خودرو مورد استفاده قرار میگیرند. برخی از این سیستمها عملکردهای پایه را انجام داده و برخی دیگر رابط کاربری را ارائه میدهند. برخی از سیستم های امبدد در خودروهای مصرفی شامل کروز کنترل، سنسورهای پشتیبان، کنترل تعلیق، سیستمهای ناوبری و سیستمهای کیسه هوا هستند.
- تلفنهای همراه: شامل بسیاری از سیستم های امبدد، از جمله نرمافزار و سختافزار رابط کاربری گرافیکی، سیستمعاملها (OS)، دوربینها، میکروفونها ، ماژولهای ورودی/خروجی و USB هستند.
- ماشینآلات صنعتی: میتوانند شامل سیستمهای تعبیهشده مانند حسگرها و یا خود سیستم های امبدد باشند. ماشینهای صنعتی اغلب دارای سیستمهای اتوماسیون تعبیهشده هستند که عملکرد نظارت و کنترل را انجام میدهند.
- تجهیزات پزشکی: ممکن است شامل سیستم های امبدد مانند سنسورها و مکانیسمهای کنترلی شوند. تجهیزات پزشکی مانند ماشینهای صنعتی نیز باید بسیار کاربرپسند باشند تا سلامت انسان در اثر اشتباهات قابل پیشگیری دستگاه به خطر نیفتد. این بدان معنی است که آنها اغلب شامل سیستم عامل و رابط کاربری گرافیکی پیچیدهتری هستند که برای یک رابط کاربری مناسب طراحی شدهاند.
یک سیستم امبدد چگونه کار میکند؟
سیستمهای تعبیهشده همیشه بهعنوان بخشی از یک دستگاه کامل عمل میکنند؛ منظور از اصطلاح ”تعبیهشده“ همین است.
این سیستمها کامپیوترهایی کمهزینه، کممصرف و کوچکند که در سیستمهای مکانیکی یا الکتریکی دیگر تعبیه شدهاند و شامل یک پردازنده، منبع تغذیه، و درگاههای حافظه و ارتباط هستند. سیستمهای تعبیهشده از پورتهای ارتباطی برای انتقال دادهها بین پردازنده و دستگاههای جانبی – اغلب، سایر سیستمهای تعبیهشده – با استفاده از یک پروتکل ارتباطی استفاده میکنند. پردازنده این داده ها را با کمک حداقل نرم افزار ذخیره شده در حافظه تفسیر می کند.
پردازنده ممکن است یک ریزپردازنده یا میکروکنترلر باشد.
میکروکنترلرها بهسادگی ریزپردازندههایی هستند که دارای رابطهای جانبی و حافظه یکپارچه هستند.
ریزپردازندهها از مدارهای مجتمع مجزا برای حافظه و لوازم جانبی بهجای قرار دادن آنها بر روی تراشه استفاده میکنند. هر دو را میتوان استفاده کرد، اما ریزپردازندهها معمولاً به مدارهای پشتیبانی بیشتری نسبت به میکروکنترلرها نیاز دارند. زیرا تعداد کمتری در ریزپردازنده مدار ادغام شده است.
اصطلاح (SoC) اغلب در این موارد استفاده میشود. SoCها شامل چندین پردازنده و رابط روی یک تراشه واحد هستند که اغلب برای سیستم های امبدد با حجم بالا استفاده میشوند.
چند نمونه از انواع SoC عبارتند از: مدار مجتمع مخصوص برنامه (ASIC) و FPGA.
بیشتر سیستم های امبدد در محیطهای عملیاتی بلادرنگ استفاده شده و از یک سیستم عامل بلادرنگ (RTOS) برای برقراری ارتباط با سختافزار استفاده میکنند.
رویکردهای بلادرنگ در سطوح بالاتری از قابلیت تراشه مناسب هستند که توسط طراحانی تعریف شده باشد.
سیستمها عموماً به اندازه کافی سریع هستند و میتوانند وظایف را در برابر تغییرات جزئی تحمل کنند.
در این موارد، نسخههای حذفشده سیستم عامل لینوکس معمولاً استفاده میشوند، اگرچه سایر سیستمعاملها برای اجرا بر روی سیستمهای جاسازیشده، ازجمله امبدد جاوا و Windows IoT کاهش یافتهاند.
ویژگیهای سیستم های امبدد
ویژگی اصلی سیستم های امبدد task-specific بودن آنهاست.
علاوه بر این، سیستمهای تعبیهشده میتوانند شامل ویژگیهای زیر نیز باشند:
- معمولاً از سختافزار، نرمافزار و سیستم عامل تشکیل شدهاند.
- میتوانند در یک سیستم بزرگتر برای انجام یک عملکرد خاص جازسازی شوند، زیرا برای کارهای تخصصی در سیستم ساخته شدهاند، نه وظایف مختلف.
- میتوانند مبتنی بر ریزپردازنده یا مبتنی بر میکروکنترلر باشند؛ هر دو، مدار مجتمعی هستند که به سیستم، قدرت محاسباتی میدهند.
- بیشتر برای سنجش و محاسبه بیدرنگ در دستگاههای اینترنت اشیا (IoT) استفاده میشوند، دستگاههایی که به اینترنت متصل هستند و برای کار کردن نیازی به کاربر ندارند.
- میتوانند از نظر پیچیدگی و عملکرد متفاوت باشند که بر نوع نرمافزار، سیستم عامل و سختافزار مورد استفاده تأثیر میگذارد.
- اغلب لازم است که عملکرد خود را تحت یک محدودیت زمانی انجام دهند تا سیستم بزرگتر بهدرستی کار کند.
ساختار سیستم های امبدد
سیستم های امبدد از نظر پیچیدگی متفاوتند اما بهطور کلی از سه عنصر اصلی تشکیل شدهاند:
- سختافزار: سختافزار سیستم های امبدد حول محور ریزپردازندهها و میکروکنترلرها میچرخد. ریزپردازندهها بسیار شبیه به میکروکنترلرها هستند و معمولاً به یک CPU (واحد پردازش مرکزی) اشاره میکنند که با سایر اجزای محاسباتی مانند تراشههای حافظه و پردازندههای سیگنال دیجیتال (DSP) یکپارچه شده است.
- نرمافزار و سیستم عامل: نرمافزار برای سیستمهای تعبیهشده میتواند از نظر پیچیدگی متفاوت باشد. با این حال، میکروکنترلرهای صنعتی و سیستم های امبدد IoT معمولاً نرمافزار بسیار سادهای را اجرا میکنند که به حافظه کمی نیاز دارد.
- سیستم عامل بلادرنگ: این سیستم عامل همیشه در سیستم های امبدد، بهویژه در سیستمهای با مقیاس کوچکتر گنجانده نمیشوند. RTOSها با نظارت بر نرمافزار و تنظیم قوانین در طول اجرای برنامه، نحوه عملکرد سیستم را تعریف میکنند.
از نظر سختافزاری، یک سیستم امبدد از قسمتهای زیر تشکیل میشود:
- حسگرها: دادههای فیزیکی را به سیگنال الکتریکی تبدیل میکنند.
- مبدلهای آنالوگ به دیجیتال: سیگنال الکتریکی آنالوگ را به دیجیتال تبدیل میکنند.
- پردازندهها: سیگنالهای دیجیتال را پردازش کرده و در حافظه ذخیره میکنند.
- مبدلهای دیجیتال به آنالوگ: دادههای دیجیتال را از پردازنده به دادههای آنالوگ تغییر میدهند.
- عملگرها خروجی واقعی را با خروجی ذخیره شده در حافظه مقایسه کرده و خروجی صحیح را انتخاب میکنند.
سنسور ورودیهای خروجی را میخواند، مبدلها آن ورودی را برای پردازنده قابل خواندن کرده و پردازنده آن اطلاعات را به خروجی مفید برای سیستم تعبیهشده تبدیل میکند.
-
بیشتر بخوانید: ۷ نکته تخصصی برای نوشتن برنامه های امبدد با ChatGPT
انواع سیستم های امبدد
چند نوع سیستم امبدد پایه وجود دارد که در عملکرد متفاوت هستند:
- سیستمهای امبدد موبایل: سیستمهایی با اندازه کوچکیاند که بهصورت قابل حمل طراحی شدهاند. دوربینهای دیجیتال نمونهای از این سیستم است.
- سیستمهای امبدد تحت شبکه: برای ارائه خروجی به سیستمهای دیگر به یک شبکه متصل میشوند. بهعنوان مثال میتوان به سیستمهای امنیتی خانه و سیستمهای پایانه فروش (POS) اشاره کرد.
- سیستمهای امبدد مستقل: به سیستم میزبان متکی نیستند و مانند هر سیستم تعبیهشده، یک کار تخصصی را انجام میدهند. با این حال، برخلاف سایر سیستمهای تعبیهشده لزوماً به یک سیستم میزبان تعلق ندارند. ماشین حساب یا پخشکننده MP3 نمونهای از این موارد است.
- سیستمهای امبدد بلادرنگ: خروجی مورد نیاز را در بازه زمانی مشخصی ارائه میدهند و اغلب در بخشهای پزشکی، صنعتی و نظامی استفاده میشوند، زیرا وظایف حساس زمانی را برعهده دارند. سیستم کنترل ترافیک نمونهای از این موارد است.
سیستم های امبدد را میتوان بر اساس عملکرد پردازشی آنها نیز دستهبندی کرد:
- سیستمهای امبدد در مقیاس کوچک: اغلب بیشتر از یک میکروکنترلر ۸بیتی در این سیستم استفاده نمیکنند.
- سیستمهای امبدد در مقیاس متوسط: از یک میکروکنترلر بزرگتر (۱۶-۳۲ بیت) استفاده کرده و اغلب میکروکنترلرها را به یکدیگر متصل میکنند.
- سیستمهای امبدد در مقیاس پیچیده: در این نوع از چندین الگوریتم استفاده میکنند که منجر به پیچیدگیهای نرمافزاری و سختافزاری میشوند و ممکن است به نرمافزار پیچیدهتر، یک پردازنده قابل تنظیم و یا یک آرایه منطقی قابل برنامهریزی نیاز داشته باشند.
در سیستمهای امبدد چندین معماری نرمافزار رایج وجود دارد که با رشد سیستمهای امبدد در مقیاس پیچیدهتر، ضروری میشوند و موارد زیر را میشوند:
- حلقههای کنترل ساده، subroutines را فراخوانی میکنند که بخش خاصی از سختافزار یا برنامهنویسی امبدد را مدیریت میکنند.
- سیستمهای کنترل وقفه دارای دو حلقه هستند: اصلی و دیگری ثانویه. وقفهها در حلقهها، وظایف را آغاز میکنند.
- Cooperative multitasking اساساً یک حلقه کنترل ساده است که در یک رابط برنامه نویسی برنامه (API) قرار دارد.
- چندوظیفهای پیشگیرانه یا چندرشتهای اغلب با RTOS استفاده میشود و دارای استراتژیهای همگامسازی و سوئیچینگ وظایف است.
یکپارچهسازی در مقیاس بسیار بزرگ یا VLSI، اصطلاحی است که پیچیدگی یک مدار مجتمع (IC) را توصیف میکند.
LSI فرآیند جاسازی صدها هزار ترانزیستور در یک تراشه است، در حالی که ریزتراشههای LSI (ادغام در مقیاس بزرگ) حاوی هزاران ترانزیستور، MSI (ادغام در مقیاس متوسط) شامل صدها ترانزیستور و SSI (ادغام در مقیاس کوچک) شامل ۱۰ها ترانزیستور هستند.
LSI یا ادغام در مقیاس فوقالعاده بزرگ به قرار دادن میلیونها ترانزیستور بر روی یک تراشه اشاره دارد.
مدارهای VLSI از ویژگیهای مشترک سیستم های امبدد برخوردارند. بسیاری از آیسیها در سیستمهای تعبیهشده از VLSI هستند.
دیباگ کردن سیستمهای امبدد
یکی از حوزههایی که سیستم های امبدد با سیستمهای عامل و محیطهای توسعه سایر رایانههای مقیاس بزرگتر جدا میشوند، حوزه دیباگ کردن است.
معمولاً، توسعهدهندگانی که با محیطهای رایانه رومیزی کار میکنند، سیستمهایی دارند که میتوانند هم کد در حال توسعه و هم برنامههای دیباگ جداگانه را اجرا کنند که همزمان سیستم تعبیهشده را نظارت کند. اما برنامهنویسان سیستمهای تعبیهشده بهطور عمومی نمیتوانند این کار را انجام دهند.
برخی از زبانهای برنامهنویسی روی میکروکنترلرها اجرا میشوند که دارای دیباگ تعاملی ابتدایی مستقیماً روی تراشه است. علاوه بر این، پردازندهها اغلب دارای دیباگر هستند که میتوان آنها ــ و بنابراین، اجرای برنامه ــ را از طریق یک JTAG یا پورت debugging مشابه کنترل کرد.
با این حال، در بسیاری از موارد، برنامهنویسان به ابزارهایی نیاز دارند که یک سیستم دیباگ را جداگانه از طریق یک سریال یا پورت دیگر به سیستم مورد نظر متصل کنند.
در این سناریو، برنامهنویسان میتواند سورسکد را روی صفحه یک کامپیوتر همهمنظوره ببیند، درست همانطور که در دیباگ کردن نرمافزار روی یک کامپیوتر رومیزی انجام میدهند.
یک رویکرد جداگانه و پرکاربرد، اجرای نرمافزار بر روی رایانه شخصی که تراشه فیزیکی موجود در نرمافزار را شبیهسازی میکند و دیباگ کردن عملکرد نرمافزار را بهگونهای انجام میدهد که گویی روی یک تراشه فیزیکی واقعی اجرا میشود.
بهطور کلی، سیستم های امبدد توجه بیشتری به آزمایش و دیباگ داشتهاند، زیرا تعداد زیادی دستگاه با کنترلهای تعبیهشده برای استفاده طراحی شدهاند، بهویژه در زمینههایی که ایمنی و قابل اعتماد بودن جزو اولویتهای اصلی است.
تاریخچه سیستم های امبدد
قدمت سیستم های امبدد به دهه ۱۹۶۰ بازمیگردد. چارلز استارک دریپر در سال ۱۹۶۱ یک مدار مجتمع را برای کاهش اندازه و وزن کامپیوتر هدایت آپولو، سیستم دیجیتالی نصبشده بر روی ماژول فرماندهی آپولو و ماژول قمری، توسعه داد. اولین کامپیوتری که از آیسی استفاده کرد، به فضانوردان کمک کرد تا دادههای پرواز را در زمان واقعی جمعآوری کنند.
در سال ۱۹۶۵، Autonetics که اکنون بخشی از بوئینگ است، D-17B را توسعه داد؛ رایانهای که در سیستم هدایت موشک Minuteman I استفاده میشد، بهطور گستردهای بهعنوان اولین سیستم امبدد که به تولید انبوه رسیده، شناخته شد.
هنگامی که Minuteman II در سال ۱۹۶۶ به تولید رسید، D-17B با سیستم هدایت موشک NS-17 که بهدلیل استفاده زیاد از مدارهای مجتمع معروف بود، جایگزین شد.
در سال ۱۹۶۸، اولین سیستم امبدد برای یک وسیله نقلیه منتشر شد: فولکس واگن ۱۶۰۰ از یک ریزپردازنده برای کنترل سیستم تزریق سوخت الکترونیکی خود استفاده میکرد.
در اواخر دهه ۱۹۶۰ و اوایل دهه ۱۹۷۰، قیمت مدارهای مجتمع کاهش و استفاده از آن افزایش یافت.
اولین میکروکنترلر توسط Texas Instruments در سال ۱۹۷۱ ساخته شد.
سری TMS1000 که در سال ۱۹۷۴ بهصورت تجاری در دسترس قرار گرفت، شامل یک پردازنده ۴ بیتی، حافظه خواندنی (ROM) و حافظه تصادفی (RAM) با قیمت حدود ۲ دلار بود.
همچنین، در سال ۱۹۷۱، اینتل چیزی را منتشر کرد که بهطور گسترده بهعنوان اولین پردازنده تجاری موجود شناخته میشود؛ اینتل ۴۰۰۴.
ریزپردازنده ۴ بیتی برای استفاده در ماشینحسابها و وسایل الکترونیکی کوچک طراحی شده بود، اگرچه به حافظه ابدی و تراشههای پشتیبانی نیاز داشت.
اینتل ۸۰۰۸، ۸بیتی که در سال ۱۹۷۲ عرضه شد، ۱۶ کیلوبایت حافظه داشت.
اینتل ۸۰۸۰ را در سال ۱۹۷۴ با ۶۴ کیلوبایت حافظه معرفی کرد. جانشین ۸۰۸۰، سری x86 بود که سال ۱۹۷۸ عرضه شد و هنوز هم تا حد زیادی مورد استفاده قرار میگیرد.
در سال ۱۹۸۷، اولین سیستم عامل امبدد، بلادرنگ VxWorks، توسط Wind River و بهدنبال آن Windows Embedded CE مایکروسافت در سال ۱۹۹۶ منتشر شد.
در اواخر دهه ۱۹۹۰، اولین محصولات لینوکس تعبیهشده ظاهر شدند. امروزه لینوکس تقریباً در تمام دستگاههای امبدد استفاده میشود.
روندهای سیستم های امبدد
درحالیکه برخی از سیستم های امبدد میتوانند نسبتاً ساده باشند، در عین حال میتوانند پیچیده نیز شوند و تعداد زیادی از آنها اکنون میتوانند جایگزین تصمیمگیری انسان شده یا تواناییهایی فراتر از آنچه که یک انسان میتواند ارائه دهد، انجام دهند.
بهعنوان مثال، برخی از سیستمهای هوانوردی، ازجمله آنهایی که در هواپیماهای بدون سرنشین استفاده میشوند، میتوانند دادههای حسگر را ادغام کرده و سریعتر از یک انسان بر روی آن اطلاعات عمل کنند.
انتظار میرود سیستم های امبدد بهسرعت به رشد خود که تا حد زیادی توسط اینترنت اشیا هدایت میشود، ادامه دهد.
انتظار میرود گسترش برنامههای اینترنت اشیا، مانند ابزارهای پوشیدنی، هواپیماهای بدون سرنشین، خانههای هوشمند، ساختمانهای هوشمند، نظارت تصویری، چاپگرهای سهبعدی و حملونقل هوشمند، به رشد سیستم امبدد کمک کند.
دورههای آموزشی مرتبط با سیستم های امبدد
اگر علاقمند به یادگیری و افزایش مهارت در زمینه سیستمهای نهفته هستید، دورههای آموزشی زیر را به شما پیشنهاد میکنیم: