راهنمای کامل جهت آشنایی با سیستمهای امبدد
سیستم های امبدد به طور فزایندهای در جنبههای مختلف زندگی بشر نفوذ کردهاند؛ از ماشینها گرفته تا تلفنهای همراه، تجهیزات ویدئویی تا پخشکنندههای MP3 و ماشینهای ظرفشویی تا ترموستاتهای خانگی همگی دارای کامپیوترهای امبدد هستند که توانستند تأثیر بسزایی در کاهش مصرف انرژی و طراحی بهینه تجهیزات گذارند. اما این سیستمها دقیقا چه مشخصات و ویژگیهایی دارند که به این میزان آنها را فراگیر کرده است؟ آیا این سیستمها در پیشرفت هوش مصنوعی نیز تأثیری دارند؟ با ما همراه باشید تا به پاسخ این سؤالات بپردازیم.
سیستم های امبدد چیست؟
سیستمهای امبدد (Embedded systems) یا سیستمهای نهفته رایانهای، رایانههای کوچک با قابلیتهای محدود و منحصر به فرد هستند. در واقع مهمترین مشخصهای که سیستمهای امبدد را از سیستمهای کامپیوتری معمولی متمایز میکند؛ خاص منظوره بودن آنها است. به بیان دیگر، سیستمهای امبدد، رایانههای کم هزینه، کم مصرف و کوچکی هستند که در سیستمهای مکانیکی یا الکتریکی دیگر برای یک هدف مشخص طراحی شدند. به عنوان نمونه، واحد کنترل ماشین (ECU) یک سیستم نهفته است که با هدف کنترل قسمتهای مختلف ماشین تعبیه شده است.
در یک سیستم الکترونیکی و یا مکانیکی مجموعهی زیادی از سیستمهای امبدد وجود دارد که توسط یک شبکه ارتباطی به یکدیگر متصل میشوند. به عنوان مثال در یک خودرو یک سیستم امبدد وظیفه نمایش اطلاعات بر روی داشبورد را دارد، دیگری میزان انتشار دود خودرو را کنترل میکند و سیستم نهفتهی دیگر وظیفه کنترل سیستم ABS آن را برعهده دارد. بنابراین، هر سیستم امبدد زیر مجموعهای از یک سیستم بزرگتر است به همین دلیل میباشد که به آنها سیستمهای نهفته گفته میشود.
مشخصات سیستم های امبدد
مهمترین مشخصه سیستمهای امبدد، خاص منظوره بودن آنها است. علاوه بر این، سیستم های نهفته میتوانند شامل ویژگیهای زیر باشند:
- این سیستمها از سخت افزار، نرم افزار و سیستم عامل تشکیل شدهاند.
- این سیستمها غالبا در یک سیستم بزرگتر برای انجام یک عملکرد خاص تعبیه میشوند.
- این سیستمها میتوانند مبتنی بر ریزپردازنده یا مبتنی بر میکروکنترلر باشند؛ هر دو مدارهای مجتمعی هستند که به سیستم قدرت محاسباتی میدهند.
- این نوع از سیستمها اغلب برای سنجش و محاسباتِ در لحظه دستگاههای اینترنت اشیا (IoT) استفاده میشوند.
- سیستمهای امبدد از نظر پیچیدگی و عملکرد متفاوت هستند که این امر متأثر از نوع نرمافزار، سیستم عامل و سخت افزاری است که استفاده میکنند.
- سیستمهای نهفته اغلب لازم است، عملکرد خود را تحت یک محدودیت زمانی انجام دهند تا سیستم بزرگتر به درستی کار کند.
تاریخچه سیستم های امبدد
قدمت سیستمهای نهفته به دهه 1960 باز میگردد. استارک دریپرCharles Stark Draper در سال 1961 یک مدار مجتمع را برای کاهش اندازه و وزن سیستم هدایتکننده آپولو توسعه داد. این سیستم اولین رایانهای بود که از مدار مجتمع (IC) استفاده کرد و به فضانوردان کمک کرد تا دادههای پرواز را در زمان واقعی جمع آوری کنند.
در سال 1965، Autonetics که اکنون بخشی از بوئینگ است، کامپیوتر امبدد با نام D-17B را توسعه داد که در سیستم هدایت موشک Minuteman I استفاده میشده است. میتوان گفت این اولین سیستم نهفتهای بود که به تولید انبوه رسید. پس از آن، در سال 1968، فولکس واگن 1600 از یک ریزپردازنده برای کنترل سیستم تزریق سوخت الکترونیکی خود استفاده کرد که به نوعی اولین سامانه نهفته برای یک وسیله نقلیه به حساب میآید.
در اواخر دهه 1960 و اوایل دهه 1970، قیمت مدارهای مجتمع کاهش یافت و استفاده از آن افزایش یافت. اولین میکروکنترلر توسط Texas Instruments در سال 1971 ساخته شد. سری TMS1000 که در سال 1974 به صورت تجاری در دسترس قرار گرفت، حاوی یک پردازنده 4 بیتی، حافظه فقط خواندنی (ROM) و حافظه با دسترسی تصادفی (RAM) بود و قیمت آن در حالت عمده حدود 2 دلار بود.
همچنین، در سال 1971، اینتل با انتشار پردازنده 4004 به طور گسترده، گامی در راستای ارائه اولین پردازنده تجاری موجود در جهان گذاشت. ریزپردازنده 4 بیتی برای استفاده در ماشین حسابها و وسایل الکترونیکی کوچک طراحی شده بود، با این حال این ریزپردازنده به حافظه ابدی و تراشههای پشتیبانی نیاز داشت. اوایل دهه 1980، اجزای سیستم حافظه، ورودی و خروجی در همان تراشهای که پردازنده یک میکروکنترلر را تشکیل میداد، ادغام شد. میکروکنترلرها سعی میکردند روی کاربردهایی تمرکز کنند که یک کامپیوتر همه منظوره برای آنها بسیار پرهزینه در میآمد.
با کاهش هزینه ریزپردازندهها و میکروکنترلرها، شیوع سیستمهای تعبیه شده افزایش یافت. در سال 1987، اولین سیستمعامل جاسازی شده، VxWorks در زمان واقعی، توسط Wind River منتشر شد و به دنبال آن Windows Embedded CE مایکروسافت در سال 1996 منتشر شد. در اواخر دهه 1990، اولین محصولات جاسازی شده مبتنی بر لینوکس ظاهر شدند. امروزه لینوکس تقریباً در تمام دستگاههای تعبیه شده استفاده میشود.
در حال حاضر با ارائه پلتفرمهای توسعه سامانههای نهفته، بار کاری زیادی از دوش طراحان برداشته شده و ساخت و طراحی نمونه اولیه سیستمهای امبدد و تست آن را به مراتب راحتتر و سریعتر کرده است. همچنین، امروزه با ظهور فناوریهایی نظیر هوش مصنوعی، اینترنت اشیا و پردازش ابری، در کنار تلاش برای ساخت سیستمهای کمهزینه، سبک و توانمند سعی بر هوشمندسازی این سیستمها نیز به عمل آمده است.
طراحی سیستم های امبدد
آشنایی با روند طراحی در درک ساختار امبدد سیستمها بسیار مؤثر است. این فرایند غالبا از مجموعهای از مراحل مشخص تشکیل میشود که به شرح زیر میباشد:
1. پیش طراحی: در این مرحله به سیستم امبدد به کل یک جعبه سیاه نگاه میشود تا بتوان ورودیها، خروجیها و الگوریتمهای پردازشی آن را انتخاب نمود. بدین واسطه نیازهای کلی سختافزاری و نرمافزاری و فرایندهای لازم برای تست نیز تعیین میشود.. در نهایت، فازبندی و زمانبندی پروژه مشخص میشود. در این مرحله باید تمامی موارد توسط اعضای کل تیم طراحی مورد توافق قرار گیرد.
2. طراحی سختافزار سیستم: سختافزار سیستمهای امبدد معمولا معماری کاملی از یک کامپیوتر را شامل میشود . متخصص در زمینه طراحی سختافزار حتما باید با آن کاربردی که سیستم طراحی شده میخواهد در آن مورد استفاده قرار گیرد، آشنا باشد.
به طور کلی روشهای طراحی سختافزار سامانههای نهفته را میتوان در مراحل زیر خلاصه نمود:
الف) طراحی از پایه: در این سبک طراحی، طراحی کل معماری سیستم و پردازندهها برعهده طراح سختافزار سیستم است و از صفر طراحی میشود. طراحی با این روش معمولا پرهزینه، زمانبر و نیازمند نیروهای متخصص بیشتری است اما گاهی از منظر امنیتی قابلیت اطمینان بیشتری دارد.
ب) طراحی بر مبنای میکروکنترلرها: در این سبک طراحی پردازنده و قسمتی از معماری در یک مدار مجتمع کوچک به نام میکروکنترلرها قرار گرفته است و نیازی به طراحی پردازنده و قسمتی از معماری نیست. در این قسمت، پس از انتخاب میکروکنترلر مناسب، سایر قسمتها مانند حافظههای جانبی، ورودیها و خروجیها، تنظیمکننده فرکانس و غیره در کنار این میکروکنترلر تعبیه میشوند.
ج) طراحی بر مبنای System On Chip (SOC): طراحی در این روش دقیقا مانند روش قبل است با این تفاوت که SOC ها معمولا دارای امکانات بیشتری نسب به میکروکنترلرها بوده و معماری کاملتری دارند.
د) طراحی بر مبنای پلتفرمهای توسعه سیستمهای نهفته: پلتفرمهای توسعه معمولا یک ساختار کامل از یک سیستم نهفته هستند که با توجه به طراحی عمومی خود میتوانند در طراحی سیستمهای نهفته مختلف به کار بروند. وجود امکانات نرمافزاری فراوان بر جذابیت این روش افزوده است. در این زمینه میتوان به آردینوArduino و رزبریپایRaspberry Pi نمونهای از پلتفرمهای موجود در این زمینه اشاره کرد. طراحی سختافزاری از طریق این روش دارای حجم کاری کمتر و سادهتر است.
ه) طراحی ترکیبی: بنا به نیاز مشتریان و سیستم، میتوان از ترکیبی از روشهای فوق برای طراحی سختافزارهای امبدد استفاده کرد.
3. طراحی نرمافزار سیستم: در این مرحله نرمافزار نهفته سیستم بر مبنای سختافزار موجود و با در نظر گرفتن محدودیتهای آن طراحی میشود. طراحی نرمافزار نهفته شامل دو مرحله اصلی طراحی (یا انتخاب) سیستم عامل و طراحی نرمافزار کاربردی بر روی آن سیستمعامل میباشد. برای این منظور غالبا از زبانهای برنامهنویسی C و C++ استفاده میشود. البته در پلتفرمهای توسعه از سی شارپ و پایتون نیز استفاده میشود. روشهای طراحی نرمافزار دقیقا منظبق با روشهای طراحی سختافزار است.
4. تولید و جمعبندی سیستم: در این مرحله پس از دریافت سختافزار، نرمافزار و سیستمعامل طراحی شده، لازم است یک فرد و یا یک تیم کل ماژولهای طراحی شده را با هم ترکیب و سیستم را آماده کند. به بیانی دیگر، سیستمعامل و برنامههای نوشته شده را بر روی سختافزار تعبیه شده بالا میآورد. لازم به ذکر است، این شخص یا تیم باید به تمام ابعاد سیستم مسلط باشد.
5. تست و ارزیابی: برای هر محصول طراحی شده لازم است مجموعهای از استانداردها رعایت شود. به همین منظور با تعریف سناریوهای مختلف سختافزاری و نرمافزاری و پیادهسازی آنها بر روی سیستمِ طراحی شده، ارزیابی میگردد که آیا سیستم درست کار میکند یا خیر. معمولا متخصصین مرحله قبل نیز در این قسمت حضور دارند تا در صورت وقوع هر ایراد، تعیین کنند علت خطای بوقوع پیوسته مربوط به کدام قسمت طراحی است.
جهت دریافت اطلاعات بیشتر میتوانید به فیلم آموزشی «آموزش مبانی سیستمهای نهفته» در سایت مکتبخونه مراجعه نمایید.
ساختار سیستمهای امبدد
سیستمهای نهفته از نظر پیچیدگی متفاوت هستند اما به طور کلی از سه عنصر اصلی تشکیل شدهاند:
سختافزارهای سیستم های امبدد
از نظر سخت افزاری، یک سیستم نهفته معمولا از عناصر زیر تشکیل میشود:
1) حسگرها دادههای فیزیکی محیط اطراف را به سیگنالهای الکتریکی تبدیل میکنند.
2) مبدلهای آنالوگ به دیجیتال (A-D) سیگنال الکتریکی آنالوگ را به دیجیتال تبدیل میکنند تا پردازندهها بتوانند این سیگنالها را پردازش کرده و در حافظه ذخیره کنند.
3) پردازنده های سیستم های امبدد قلب آنها به شمار میروند. این واحد اصلی، ورودیها را دریافت میکند و پس از پردازش دادهها، خروجی تولید میکند. برای یک طراح سیستم نهفته، داشتن دانش در مورد پردازندههایی نظیر ریزپردازندهها و میکروکنترلرها ضروری است. به طور کلی میتوان پردازندهها را به دستههای زیر تقسیمبندی نمود:
- پردازشگر با هدف کلی ( GPPGeneral Purpose Processor )
– ریزپردازنده (Microprocessor)
– میکروکنترلر (Microcontroller)
– پردازنده تعبیه شده (Embedded Processor)
– پردازنده سیگنال دیجیتال (Digital Signal Processor)
– پردازشگر رسانه (Media Processor)
- تراشههای استاندارد محصول خاص ( ASSPApplication specific standard processor )
- پردازنده مجموعه دستورالعملهای خاص برنامه ( AISPApplication Specific Instruction Processors )
- هسته(های) GPP یا هسته(های) ASIP در مدارهای مجتمع ویژه برنامه ( ASICApplication Specific Integrated Circuit ) یا مدار یکپارچه سازی در مقیاس بسیار بزرگ ( VLSIVery Large Scale Integration ).
4) مبدلهای دیجیتال به آنالوگ (D-A) دادههای دیجیتال دریافتی از پردازنده را به دادههای آنالوگ تغییر میدهند.
5) عملگرها خروجی واقعی را با خروجی ذخیره شده در حافظه مقایسه و خروجی صحیح را انتخاب میکنند.
نرم افزارهای سیستم های امبدد
نرم افزارهای سیستمهای امبدد به عنوان یک ابزار برنامهنویسی تخصصی جهت مدیریت عملکرد دستگاهها و سیستمهای سختافزاری مختلف مورد استفاده قرار میگیرند. به عبارت دیگر، ایده اصلی پشت نرم افزار سیستمهای نهفته، کنترل عملکرد مجموعهای از دستگاههای سختافزاری بدون به خطر انداختن هدف یا کارایی کل سیستم است. در کنار نرمافزارهای این نوع از سیستمها اصطلاح فریمور (firmware) نیز به طور معمول به چشم میخورد. فریمورها نوعی برنامههای نرمافزاری متشکل از مجموعهای از دستورالعملهای خاص و از پیش تعیین شده هستند که بر روی حافظه ROM ذخیره میشوند. هدف اصلی این فریمورها ارائه دستورات لازم جهت برقراری ارتباط دستگاه با دیگر اجزا و سخت افزارهای کامپیوتر میباشد. تفاوت firmware ها با نرمافزارهای سیستمهای امبدد در این است که فریمورها غالبا توسط شرکت سازنده توسعه داده میشوند و غیر قابل تغییرند در حالیکه نرمافزارها به طور مستقیم توسط افراد کدگذاری میشوند و دارای انعطافپذیری بالاتری هستند.
لازم به ذکر است برخی از سیستمهای امبدد دارای سیستم عاملهای در لحظه (Real-time operating system) هستند. این نوع از سیستم عاملها همیشه در سیستمهای امبدد، بهویژه سیستمهای مقیاس کوچکتر، گنجانده نمیشوند. RTOSها نحوه عملکرد سیستم را با نظارت بر نرمافزار و تنظیم قوانین در طول اجرای برنامه تعریف میکنند.
رابط کاربری در سیستم های امبدد
رابط کاربری سامانههای نهفته به کاربر این امکان را میدهد تا با این نوع از سیستمها به تعامل بپردازد. سیستمهای امبدد از منظر رابط کاربری دارای انواع مختلفی هستند که از سیستمهای بدون رابط کاربری گرفته تا رابطهای گرافیکی پیچیده را در بر میگیرند. دستگاههای امبدد ساده از دکمهها، الایدیها، السیدیهای گرافیکی یا کاراکتری (مثلاً LCD HD44780) با یک سیستم منوی ساده استفاده میکنند. در حالت پیچیدهتر از صفحهنمایش گرافیکی با حسگر لمسی یا کلیدهای نرم لبه صفحه استفاده میشود.
برخی از سیستمها رابط کاربری را از راه دور با کمک یک اتصال سریال (به عنوان مثال RS-232) یا شبکه (مانند اترنت) ارائه می کنند. به عنوان نمونه روتر شبکه را در نظر بگیرید. در این سامانه نهفته از یک سرور HTTP جاسازی شده استفاده میشود که رابط کاربری آن در یک مرورگر وب در رایانه شخصی متصل به دستگاه نمایش داده میشود. به طور کلی، انعطافپذیری رابط کاربری سیستمهای امبدد از اهمیت بسزایی برخوردار است. منظور از انعطافپذیری این است که حتی اگر ساختار سیستم عوض شود و یا سیستم ارتقا یابد، کاربر بتواند همچنان با رابط کاربری پیشین کار کند.
بخش های جانبی سیستم های امبدد
همانطور که در بخش «سختافزارهای سیستمها امبدد» اشاره شد، سیستمهای نهفته علاوه بر پردازنده شامل تعداد انگشت شماری دستگاههای سختافزاری دیگر نظیر منبع تغذیه، حافظه، تایمر، درگاههای موازی و سریال و کنترلکننده وقفهها (interrupt controller) نیز هستند. برخی از این دستگاهها تنها برای دامنه کاربردی خاص، مورد استفاده قرار میگیرند و برخی دیگر مانند تایمرها / شمارندهها و پورتهای سریال و موازی در طیف گستردهای از سیستمها کاربرد دارند. متداولترین دستگاههای مورد استفاده اغلب در همان تراشه پردازنده قرار میگیرند و به آنها لوازم جانبی داخلی یا on-chip میگویند.
ابزارهای سیستم های امبدد
ابزارهای توسعه رایج به ویژه برای نرمافزارهای سیستمهای امبدد به دستههای زیر قابل تقسیم هستند:
ویرایشگر (Editor): ویرایشگر متن اولین ابزاری است که برای شروع ایجاد یک سیستم نهفته به آن نیاز دارید. از ویرایشگر برای نوشتن سورس کد در زبانهای برنامه نویسی C و ++C و ذخیره این کد به عنوان یک فایل متنی استفاده میشود. یک مثال خوب از یک ویرایشگر متن Geany است. این ویرایشگر یک محیط کوچک و سبک است که از جعبه ابزار + GTKاستفاده میکند. Geany از C، Java، PHP، HTML، Python، Perl، Pascal و انواع دیگر فایلها پشتیبانی میکند.
کامپایلر (Compiler): سورسکدها در یک زبان برنامهنویسی سطح بالا نوشته میشوند. کامپایلر ابزاری است برای تبدیل این کد به یک کد سطح پایین زبان ماشین، کدی که ماشین میتواند آن را بفهمد. Keil C51 یک کامپایلر محبوب است که با ترجمه سورس کد به زبان C، برنامههایی را برای میکروکنترلرهای 8051 ایجاد میکند.
مونتاژ کننده (Assembler): مونتاژکنندهها مشابه با کامپایلرها، اما سادهتر و سبکتر، دستورالعملهای اولیه رایانه (به نام زبان اسمبلی) را دریافت میکنند و آنها را به الگویی از بیتها تبدیل میکنند که پردازنده رایانه میتواند از آن برای انجام عملیات اصلی خود استفاده کند. با توجه به اینکه یک رایانه نمیتواند مستقیما زبان اسمبلی را تفسیر کند، یک مونتاژکننده با ترجمه یادداشتهای دستورالعمل اسمبلی به کدهای عملیاتی، کد شی را ایجاد میکند و نامهای نمادین را در مکانهای حافظه حل میکند. GNU Assembler (GAS) به طور گسترده برای سیستم عاملهای لینوکس استفاده میشود و میتوان آن را در بسته ابزار مکینتاش نیز یافت.
پیوند دهنده (Linker): به طور معمول، کدها به صورت ماژولی و به صورت بخش بخش نوشته میشوند. پیونددهنده ابزاری است که تمام این قطعات را با هم ترکیب و یک برنامه اجرایی واحد ایجاد میکند. GNU id یکی از ابزارهای پیوند دهنده است.
اشکال زدا (Debugger): اشکالزدایی یک فرآیند برای یافتن و کاهش تعداد خطاها در یک برنامه کامپیوتری یا یک قطعه سخت افزار الکترونیکی است، زمانیکه طبق انتظار عمل نمیکنند. اشکالزدایی زمانی که زیرسیستمها دارای وابستگی زیادی هستند، بسیار دشوار است، زیرا یک تغییر کوچک در یک زیرسیستم میتواند اشکالاتی را در زیرسیستم دیگر ایجاد کند. در مورد اشکال زدایی سیستمها امبدد به طور مفصل در ادامه توضیح داده خواهد شد.
شبیه ساز (Stimulator): جهت توسعه کد بر روی میکروکنترلها (MCU) و اشکالزدایی آن، لازم است کد مربوطه با شبیهسازی بر روی رایانه میزبان مورد ارزیابی قرار گیرد. شبیهسازها سعی میکنند، رفتار میکروکنترلر کامل را در نرم افزار مدل کنند. در این زمینه تقلیدکنندهها و یا Emulator ها نیز وجود دارند که با شبیهسازها متفاوت هستند. شبیهسازها رفتارهایی بسیار نزدیک و شبیه به سیستم واقعی دارند اما لزوما از قوانین و رفتارهای سیستم واقعی، پیروی نمیکنند و برای خودشان قوانینی دارند که ممکن است به هیچ عنوان در سیستم واقعی اتفاق نیافتد. در حالیکه Emulator ها دقیقا همان قوانینی را دارند که در سیستم واقعی وجود دارد. به عبارتی Emulator ها دقیقا نسخه کپی از سیستم و محیط واقعی هستند.
محیط توسعه یکپارچه ( IDEIntegrated Development Environment (IDE) ): وقتی صحبت از ابزارهای توسعه نرمافزار سیستمهای نهفته میشود، نمیتوانیم به محیطهای توسعه یکپارچه اشاره نکنیم. تمام ابزارهای ذکر شده در بالا برای ایجاد نرم افزار تعبیه شده مورد نیاز هستند. اما استفاده از آنها به طور جداگانه بسیار ناخوشایند خواهد بود و لایه دیگری از پیچیدگی را به پروژه اضافه میکند. از این رو، برای سادهسازی فرآیند توسعه، استفاده از محیطهای یکپارچه به شدت توصیه میشود. IDE نرمافزاری است که مجموعهای از ابزارهای لازم را در یک بسته ارائه میدهد.
6. نحوه عملکرد سیستم های امبدد
هر دستگاه محاسباتی امبدد دارای ورودیها و خروجی های مربوطه است. در این قسمت، به طور ساده، نحوه عملکرد یک سیستم تعبیه شده توضیح داده میشود.
- ورودی آنالوگ/دیجیتال را از کاربر و یا محیط اطراف میگیرد. به عنوان مثال میتوان به حسگر، سوئیچ دکمهای، صفحه کلید و صفحه لمسی در این زمینه اشاره کرد.
- سپس، مبدلها آن ورودی را برای پردازنده قابل خواندن میکنند تا توسط پردازنده پردازش شود. سیستمهای امبدد از پورتهای ارتباطی برای انتقال دادهها بین پردازنده و دستگاههای جانبی، اغلب سایر سیستمهای امبدد، استفاده میکنند. پردازنده این دادهها را با کمک نرمافزار ذخیره شده در حافظه تفسیر میکند. این نرم افزار معمولاً برای کاربردی که سیستم نهفته برای آن در نظر گرفته میشود، طراحی و توسعه شده است.
- در نهایت، اطلاعات پردازش شده به خروجی برای سیستم تبدیل میشود و پس از تبدیل مقدار آنالوگ به خروجی دیجیتال، با استفاده از دستگاههای خروجی کنترل میشود. به عنوان مثال می توان به موتور، LCD و صفحه نمایش لمسی اشاره کرد.
گونههای مختلف سیستم های امبدد
سیستمهای امبدد را از مناظر مختلفی از قبیل عملکرد و الزامات کارکردی، ملزومات جهت اجرا و عملکرد میکروکنترلرها طبقهبندی میکنند. از منظر عملکرد و الزامات کارکردی سیستمهای امبدد به چهار دسته زیر تقسیمبندی میشوند:
- سیستمهای امبدد قابل حمل (Mobile embedded systems)، سیستمهایی با اندازه کوچک هستند که برای قابل حمل بودن طراحی شدهاند. دوربینهای دیجیتال نمونهای از این نوع سیستمها هستند.
- سیستمهای امبدد تحت شبکه (Networked embedded systems)، برای ارائه خروجی به سیستمهای دیگر به یک شبکه متصل میشوند. به عنوان مثال، در این زمینه میتوان به سیستم های امنیتی خانه اشاره کرد.
- سیستم های امبدد مستقل (Standalone embedded systems)، همانطور که از نامشان نیز مشخص است، به یک سیستم میزبان متکی نیستند. مانند هر سیستم نهفته، آنها نیز یک کار تخصصی را انجام می دهند. با این حال، بر خلاف سایر سیستمهای امبدد لزوماً به یک سیستم میزبان تعلق ندارند. ماشین حساب یا پخش کننده MP3 نمونه ای از این موارد است.
- سیستمهای امبدد بلادرنگ (Real–timeembeddedsystems)، خروجی مورد نیاز را در بازه زمانی مشخصی ارائه میدهند. آنها اغلب در بخشهای پزشکی، صنعتی و نظامی استفاده میشوند، زیرا وظایف حساس زمانی را بر عهده دارند. سیستم کنترل ترافیک نمونهای از سیستمهای امبدد بلادرنگ است.
کاربردهای سیستم های امبدد در زمینههای مختلف
سیستم های امبدد در پزشکی
دسته جدیدی از دستگاههای پزشکی از سیستم های امبدد برای کمک به درمان بیمارانی استفاده میکنند که نیاز به نظارت مکرر و توجه مداوم در خانه دارند. این سیستمها با حسگرهایی تعبیه شدهاند تا دادههای مربوط به سلامتی بیماران مانند ضربان قلب یا نبض را جمعآوری میکنند و غالبا به یک ابر میفرستند که در آن پزشک میتواند دادههای بیمار را روی دستگاه خود به صورت بیسیم بررسی کند. این نوع از دستگاههای پزشکی به طور گستردهای برای تشخیص و درمان موثر بیماران مورد استفاده قرار گرفتهاند که برخی از نمونههای آنها عبارتند از:
- اسکنرهای MRI، CT و PET (برای استفاده از پالسهای فرکانس رادیویی و اشعه ایکس)
- سونوگرافی (که به آن تصویربرداری اولتراسوند نیز گفته می شود)
- دفیبریلاتور (برای تشخیص ناهنجاریهای قلبی استفاده میشود)
- دستگاه فشار خون (برای تشخیص فشار سیستولیک و دیاستولیک در بدن انسان)
- مجموعه تست گلوکز (برای آزمایش سطح قند در بدن انسان)
- دستگاه نظارت بر قلب جنین (برای استفاده در دوران بارداری و زایمان)
- دستگاههای پوشیدنی که سلامت افراد را کنترل میکنند (به کاربران اجازه میدهد ضربان قلب، فشار خون، گلوکز، وزن و بسیاری از پارامترهای دیگر را کنترل کنند)
سیستمهای امبدد در تولید
در صنایع تولیدی معمولا برای استفاده از انواع ماشین آلات، از چندین سامانه نهفته استفاده میشود که در ادامه به چند نمونه از این سیستمها اشاره میگردد:
- ربات صنعتی (برای جابجایی ابزار، قطعات، تراش دادن و سایر عملیات)
- خطوط مونتاژ
- سیستمهای بازخورد
- سیستمهای جمعآوری دادهها
سیستم های امبدد در حملو نقل
سیستمهای امبدد در خودرو برای افزایش ایمنی خودروها طراحی و نصب میشوند. به لطف سیستمهای ایمنی در وسایل نقلیه، میزان مرگ و میر در صنعت حملونقل در سالهای اخیر به شدت کاهش یافته است. در نتیجه، صنایع خودروسازی میل بیشتری برای تقویت خودروها با استفاده از حسگرها و سیستمهای فناوری پیشرفته دارند که بدون امبدد سیستمها امکانپذیر نیست. چند نمونه از سیستمهای امبدد خودرو عبارتند از:
- سیستم ناوبری خودرو
- سیستم ترمز ضد قفل
- کنترل کننده اتوماتیک دما
- سیستمهای مربوط به کیسه هوا
- سیستم سرگرمی داخل خودرو
- اکثر سیستمهای هوشمند کمک راننده ([1] ADASAdvanced driver assistance systems ) مانند کروز کنترل تطبیقی، پارک خودکار و غیره
سیستمهای امبدد در بخشهای بانکی
بخش های بانکی نیز از سامانههای نهفته در زمینههای مختلف بویژه برای اهداف امنیتی استفاده میکنند. به عنوان مثال میتوان به کارت های هوشمند، ATM، سیستم بانکی ضد قفل و موارد دیگر اشاره کرد.
سیستم های امبدد در هوشمندسازی خانهها
خانه هوشمند مکانی است که از فناوری اطلاعات برای نظارت بر محیط، کنترل لوازم الکتریکی و ارتباط با دنیای بیرون استفاده میکند. خانه هوشمند یک فناوری پیچیده و در عین حال در حال توسعه است. سیستم نظارت و کنترل محیط خانه یکی از واحدهای اصلی خانه هوشمند است که بر اساس سیستمهای نهفته طراحی شده است. این سیستم با سنسور مادون قرمز میتواند دما، رطوبت، تراکم گاز را کنترل کند. همچنین، این سیستم دارای اتصال شبکه و تلفن برای دریافت فرمان مالک و ارسال هشدار به مالک می باشد. کل سیستم شامل یک واحد کنترل اصلی و واحد ورودی/خروجی است.
اطمینان پذیری در سیستم های امبدد
معیارهای اثرگذار مختلفی نظیر هزینه توسعه، حافظه، مصرف انرژی، طول عمر و قابلیت اطمینان یا اطمینانپذیری کیفیت یک امبدد سیستم را تعیین میکند. با توجه به اینکه سیستمهای امبدد، معمولا بخشی از یک سیستم بزرگتر هستند، بنابراین احتمال بالای کارکرد درست آنها در یک دوره زمانی مشخص از اهمیت بسزایی برخوردار است زیرا در غیر اینصورت علاوه بر خرابی خود ممکن است باعث آسیبرساندن سایر قسمتهای مرتبط و یا کل سیستم شوند. بدین منظور شاخص اطمینانپذیری که احتمال بقای یک سیستم را در طول یک دوره زمانی نشان میدهد، مطرح میشود.
با توجه به حساسیت هزینه و انرژی، و همچنین محدودیتهای پاسخگویی در لحظه، لازم است از تکنیکهایی برای مدیریت خطا در صورت وقوع، استفاده شود. به عنوان نمونه، امروزه از هایپروایزر (Hypervisor) در طراحی امبدد سیستمها استفاده میشود که با ارائه یک لایه جانبی برای هر زیرسیستم باعث میگردد امکان راهاندازی مجدد آن زیر سیستم در صورت وقوع مشکل ایجاد گردد. مزیت بزرگ این روش جلوگیری از پخش خرابی در کل سیستم و مصون نگه داشتن سایر زیر سیستمها از خرابی بوقوع پیوسته است.
اشکال زدایی در سیستم های امبدد
یکی از زمینههایی که سامانههای امبدد را از سایر سیستمهای مشابه نظیر سیستمعاملها و یا محیطهای توسعه سایر رایانههای مقیاس بزرگتر جدا میکند، فرایند اشکالزدایی در آنها است. معمولاً، توسعهدهندگانی که با محیطهای رایانهای رومیزی کار میکنند، سیستمهایی دارند که میتوانند هم کد در حال توسعه را اجرا کنند و هم برنامههای اشکالزدا را جداگانه اجرا کنند. موردی که برای برنامهنویسان سیستم تعبیه شده، مقدور نمیباشد.
برخی از زبانهای برنامه نویسی روی میکروکنترلرهایی با کارایی کافی اجرا میشوند که بدین واسطه یک اشکالزدایی تعاملی ابتدایی مستقیماً روی تراشه در دسترس است. علاوه بر این، پردازندهها اغلب دارای اشکالزدایی CPU هستند که از طریق یک JTAG یا پورت اشکالزدایی مشابه میتوان اجرای برنامه را کنترل کرد.
با این حال، در بسیاری از موارد، برنامهنویسان به ابزارهایی نیاز دارند که بتوانند از طریق آن یک سیستم اشکالزدایی جداگانه را از طریق یک سریال یا پورت دیگر به سیستم هدف متصل کنند. در این سناریو، برنامهنویس میتواند مشابه با فرایند اشکالزدایی نرمافزاری که روی یک کامپیوتر رومیزی انجام میشود، سورس کد را روی صفحه یک کامپیوتر همه منظوره ببیند،. یک رویکرد جداگانه و پرکاربرد، اجرای نرمافزار بر روی رایانه شخصی است که تراشه فیزیکی موجود در نرمافزار را شبیهسازی میکند. این اساساً امکان اشکالزدایی عملکرد نرمافزار را به گونهای انجام میدهد که گویی روی یک تراشه فیزیکی واقعی اجرا میشود.
به طور کلی، سیستمهای امبدد نیاز به توجه بیشتری در زمینه آزمایش و اشکالزدایی دارند، زیرا در حال حاضر تعداد زیادی از دستگاههایی که از آنها استفاده میکنند از منظر ایمنی و قابلیت اطمینان از اهمیت بسزایی برخوردار هستند. با این وجود در انتخاب نوع اشکالزدایی باید نهایت توجه را به خرج نمود که باعث کند شدن فرایند اصلی نشود و بتوان توسط این فرایند به سرعت و راحتی رفع اشکال نمود.
ردیابی در سیستم های امبدد
ردیابی نرمافزار یک ابزار مهم در جعبه ابزار توسعهدهندگان سیستمهای امبدد است، به خصوص زمانی که با مصورسازی پیشرفته همراه است. بیشتر سیستمهای نهفته دارای الگوهای چرخهای فراوانی هستند که در آنها یک توالی بارها و بارها تکرار میشوند. در نتیجه اشکالزدایی که اغلب جهت یافتن ناهنجاریها انجام میشود، با دشواریهای زیادی انجام میشود. بدین منظور ابزارهای ردیابی نرمافزار ارائه شدهاند که برای توسعه و اشکالزدایی بویژه در دنیای رشد فناوری اینترنت اشیا و امنیت دستگاههای امبدد متصل به هم، بسیار مفید هستند.
ردیابی مبتنی بر نرمافزار به هیچ سختافزار اضافی نیاز ندارد و یک دستگاه اینترنت اشیا متصل به وضوح میتواند دادههای ردیابی تشخیصی را همانند دادههای برنامه معمولی آپلود کند. به این ترتیب، توسعهدهندگان میتوانند به سرعت از مشکلات نرمافزاری باقیمانده از فاز طراحی که ممکن است در حین کار در دنیای واقعی مشکل ایجاد کنند، آگاه شوند. در این زمینه میتوان به ابزارهایی از قبیل IAR Systems ، Percepio Tracealyzerو Lauterbach اشاره کرد.
برنامه نویسی سیستم های نهفته
زبانهای برنامهنویسی که توسعهدهندگان سیستمهای نفهته اغلب از آنها استفاده میکنند، دارای مزایای کلیدی هستند. بدون شک اشکالاتی نیز به همراه دارند. در اینجا به مزایا و محدودیتهای زبانهای برنامهنویسی رایج در سامانههای نهفته اشاره میشود:
زبان برنامهنویسی C
اصول اولیه: C که در اوایل دهه 1970 توسعه یافت، یک زبان کامپایل شده است که مشابه با بلوک ساختمان بسیاری از زبانهای دیگر عمل می کند.
مزایا: C یک زبان برنامه نویسی کارآمد و پرکاربرد است. برآورد شده است که در صنعت به طور تقریبی 80 درصد از سیستمهای امبدد از زبان برنامه نویسی C استفاده کردهاند.
معایب: توسعهدهندگان را ملزم به درک و استفاده از تکنیکهای فنی کدگذاری میکند که میتواند پیچیده باشند.
زبان برنامهنویسی C++
اصول اولیه: این زبان کامپایل شده بیشتر یا همه عناصر C را دارد، اما قابلیتهای دیگری نیز دارد. این زبان تا حدی برای برنامه نویسی سیستم و سیستمهای امبدد طراحی شده است.
مزایا: C++ میتواند به اندازه استفاده از C کارآمد باشد. یک مزیت بزرگ این زبان، مجهز به یک کتابخانه استاندارد است که میتواند در زمان برنامهنویسان در نوشتن کد صرفهجویی کند.
معایب: یک زبان پیچیده که یادگیری آن دشوار است.
زبان برنامهنویسی Python
اصول اولیه: Python که در اوایل دهه 1980 توسعه یافت، یک زبان برنامهنویسی محبوب است. در یادگیری ماشینی، هوش مصنوعی (AI) و تجزیه و تحلیل دادهها عالی است، اما میتوانید از آن در بسیاری از برنامههای کاربردی دیگر استفاده کنید.
مزایا: این زبان منبع باز، رایگان برای استفاده و آسان برای یادگیری، خواندن و نوشتن است.
معایب: این زبان به ویژه برای سیستم عامل های بلادرنگ (RTOS) قطعی نیست.
زبان برنامهنویسی MicroPython
اصول اولیه: این زبان نسخهای از پایتون است که برای میکروکنترلرها بهینه شده است.
مزایا: MicroPython نیز منبع باز، رایگان و یادگیری آن آسان است.
معایب: کد نوشته شده توسط آن آنقدر سریع نیست و ممکن است در مقایسه با C یا C++ از حافظه بیشتری استفاده کند.
مهندس سیستم های امبدد
همانطور که در بخش «طراحی سیستمهای امبدد» اشاره شد، طراحی سختافزار، طراحی نرمافزار، تست و یکپارچهسازی ماژولهای مختلف از جمله مراحل اصلی توسعه و طراحی سیستمهای امبدد است که با توجه به کسب تخصص در هر یک از مراحل، لازم است گرایشها و تخصصهای مختلفی را کسب نمایید. معمولا مهندسین الکترونیک، کنترل، مخابرات، مهندسی پزشکی، نرمافزار و سخت افزار، میتوانند در این زمینه فعالیت کنند. با این حال، افرادی که دانش و تخصصهای زیر را دارند صرفنظر از مدرک تحصیلی، میتوانند به توسعه سامانه نهفته بپردازند:
– تمرکز بر توسعه سختافزارهای امبدد
- آشنایی با مدارهای الکتریکی، الکترونیکی و منطقی
- آشنایی با مدارهای واسط کامپیوتری
- آشنایی با معماری کامپیوتر و میکروکنترلرها
- آشنایی با پلتفرمهای توسعهای
- تسلط بر زبانهای برنامهنویسی نظیر C و یا C++
– تمرکز بر توسعه نرمافزارهای امبدد
- تسلط بر حداقل یکی از زبانهای برنامهنویسی مرتبط
- آشنایی با معماری کامپیوتر و مدارهای منطقی
- آشنایی با سیستمعاملها و میکروکنترلرها
- آشنایی با مهندسی نرمافزار و روشهای تست نرمافزار
لازم به ذکر است کاربردی که قرار است سیستم امبدد برای آن طراحی شود نیز از اهمیت بسزایی برخوردار است. به عنوان مثال، اگر سیستمهای امبدد طراحی شده قرار است در صنعت خودروسازی مورد استفاده قرار گیرد، مهندسین دخیل در پروژه توسعه سیستم امبدد مربوطه، باید یک شناخت قابل قبول در مورد خودرو داشته باشند تا بتوانند ورودیها و خروجیهای سیستم امبدد را به خوبی بشناسند. همچنین افرادی که در فازهای تست و یکپارچهسازی ماژولهای مختلف درگیر هستند باید دانش کافی در مورد هر دو عامل سختافزار و نرمافزار داشته باشند.
سیستمهای امبدد و هوش مصنوعی
هوش مصنوعی (AI) نه تنها در حوزه علوم کامپیوتر، ارتباطات و فناوری اطلاعات، بلکه در کاربردهای متنوع دیگری انقلابی را به همراه داشته است. با افزایش قدرت هوش مصنوعی، پلتفرمهای محاسباتی جدید نظیر سیستمهایی برای پشتیبانی از الگوریتمها و برنامههای کاربردی هوش مصنوعی از سطح سیستم گرفته تا سطح مدار ضروری هستند. با این حال، هنگام بحث درباره هوش مصنوعی، سیستم های امبدد اغلب نادیده گرفته میشوند.
هوش مصنوعی موضوعی گسترده و به روزی است که در بسیاری از مواقع، بدون وجود امبدد سیستمها نمیتوان به درستی از مزایای آن استفاده کرد. به عنوان نمونه، داده در طراحی، توسعه، بهبود و فعال کردن سیستمهای هوشمند از اهمیت بسزایی برخوردار است. همچنین به کمک این دادهها و پردازشهای الگوریتمهای هوش مصنوعی است که سیستمهای هوشمند قادر به تعامل پویا با دنیای فیزیکی هستند که بدون شک اهمیت سیستمهای نهفته را در پیادهسازی و اجرای این امر نمیتوان نادیده گرفت.
در حالی که سیستمهای مجهز به هوش مصنوعی میتواند دادهها را دریافت کنند و خود را ارتقا دهند تا بتوانند تصمیمگیری بهتری انجام دهند، فناوریهای اینترنت اشیا (IoT) و سیستمهای امبدد، دستگاههای فیزیکی را برای این منظور مهیا میکنند تا دادههای مورد نیاز برای دستیابی به عملکرد مفید تولید شوند.
هر چه یک سیستم هوش مصنوعی داده های بیشتری داشته باشد، نتایج بهتری میتواند ایجاد کند. از آنجایی که سامانههای نهفته تقریباً در همه جا در جامعه مدرن وجود دارند، منبع ایدهآلی برای ورودی داده ها هستند. با ارائه تنها چند مثال اهمیت این موضوع به وضوح نشان داده میشود:
- تقریباً هر بزرگسال دارای یک گوشی هوشمند و یا دستگاه تلفن همراه است که به طور منظم از آنها استفاده میکند.
- خودروهای مدرن دارای سیستم GPS و دوربین داخلی هستند.
- خانههای هوشمند دارای انواع لوازم الکترونیکی مصرفی هوشمند هستند.
- حرکت به سمت شهرهای هوشمند در حال ایجاد محیطهای شهری مرتبطتر است.
- افراد آگاه به سلامت از مانیتورهای ضربان قلب هوشمند و ردیاب های تناسب اندام برای درک بهتر سلامت خود استفاده می کنند.
همه این دستگاهها قادر به جمعآوری و گزارش دادههایی هستند که میتوانند برای تجزیه و تحلیل به یک سیستم هوشمند کمک کنند. به عنوان مثال، یک برنامه هوش مصنوعی که برای کمک به کاربران در تصمیمگیری سالمتر طراحی شده است، میتواند ورودیهای ردیابهای تناسب اندام را جمعآوری و تجزیه و تحلیل کند و سپس آنچه را که در طول زمان میآموزد برای بهینهسازی توصیههایش استفاده کند. با این حال، این امر بدون دستگاه امبدد که در وهله اول دادهها را جمع آوری میکند، امکان پذیر نخواهد بود.
از طرف دیگر، به کمک هوش مصنوعی میتوان الگوریتمهای توسعه امبدد سیستمها را به میزان قابل توجهی بهینه نمود. علاوه بر این، برای فعال کردن اتوماسیون فرآیندهایی که شامل دستگاههای فیزیکی هستند (مانند کنترل چراغها در یک خانه هوشمند، راهاندازی یا توقف خط تولید در یک کارخانه و غیره) برنامههای هوش مصنوعی میتوانند امبدد سیستمها را به نحو احسن کنترل کنند.
محدودیتها و چالش های استفاده از سیستم های امبدد
سیستمهای نهفته با وجود قابلیتها و امکانات فراوانی که فراهم میکنند، محدودیتها و چالشهایی نیز به همراه دارند. از جمله محدودیتهای سیستم های امبدد، میتوان به موارد زیر اشاره کرد:
- این سیستمها پس از پیکربندی به راحتی قابل تغییر نیستند.
- نگهداری از سیستمهای امبدد بسیار دشوار است و کاربران در پشتیبانی از فایلها غالبا دچار مشکل میشوند.
- عیبیابی این نوع از سیستمها بسیار دشوار است.
- تأمین امنیت این نوع از سیستمها با توجه به اهمیتشان همچنان نیاز به جای کار بسیار دارد.
- ارتقا و یا جایگزینی سیستم در گاهی اوقات نیاز به تغییر دستگاه میزبان و برنامهریزی مجدد دارد که میتواند بسیار زمانبر و مشکلساز باشد.
آینده سیستم های امبدد
سامانههای نهفته و یا Embedded systemها از زمان پیدایش خود راه طولانی را پیمودهاند. امروزه، از این سیستمها در قسمتهای مختلف این جامعه مدرن از لباسهای هوشمند گرفته تا بانکداری هوشمند، استفاده میشود که رشد چندین برابری فناوری را به همراه داشته است.
با رشد و پیشرفت در زمینه الکترونیک، ارتباطات بیسیم، شبکه، هوش مصنوعی، محاسبات شناختی و عاطفی و رباتیک، دستگاه های اطراف شما به روش های متعددتری از آنچه تصور میکنید، ارتباط برقرار میکنند. آن زمانها خیلی دور نیستند که هر شیء اطراف ما دارای یک پردازنده/حسگر کوچک در درون خود باشد که برای ما نامرئی است، اما همچنان با سایر دستگاههای اطراف ارتباط برقرار میکند و زندگی ما را بیشتر از همیشه متصل و قابل دسترستر مینماید.
آینده سیستمهای امبدد در پیشرفت فناوریهایی نهفته است که ارتباطات سریعتر، ظرفیتهای ذخیرهسازی دادههای سنگین، کاهش مصرف انرژی و اتصالات بسیار در هم تنیده بین دستگاهها را ممکن میسازند. بنابراین انتظار میرود صنعت این سیستمها به سرعت به رشد خود ادامه دهد و با توسعه هوش مصنوعی (AI)، واقعیت مجازی (VR) و واقعیت افزوده (AR)، یادگیری ماشینی، یادگیری عمیق و اینترنت اشیا (IoT) ادغام شود.
سؤالات متداول درباره سیستم های امبدد
1. سیستم امبدد چیست؟
سیستم امبدد یک سیستم مبتنی بر میکروکنترلر یا ریزپردازنده است که برای انجام یک کار خاص طراحی شده است.
2. چرا از سیستمهای امبدد باید استفاده کرد؟
طراحی ساده، کم هزینه، کم مصرف و کوچک مزایایی هستند که توسعهدهندگان را به استفاده از امبدد سیستمها ترغیب میکند.
3. بخشهای اصلی یک امبدد سیستم را نام ببرید.
یک امبدد سیستم از سختافزار، نرمافزار، در خیلی اوقات رابط کاربری، بخشهای جانبی نظیر منبع تغذیه، حافظه، تایمر، درگاههای موازی و سریال و کنترلکننده وقفهها و ابزارهایی نظیر ویرایشگر، اشکالزدا، شبیهساز، پیونددهنده و مونتاژ کننده تشکیل شده است.
4. انواع سیستمهای امبدد را نام ببرید.
از منظر عملکرد و الزامات کارکردی سیستمهای امبدد به چهار دسته سیستمهای قابل حمل، تحت شبکه، مستقل و سیستمهای امبدد بلادرنگ تقسیم میشوند
5. اطمینانپذیری سیستمهای امبدد به چه معناست؟
اطمینانپذیری یک سیستم احتمال بقای آنرا در طول یک دوره زمانی نشان میدهد. بنابراین به منظور دستیابی به اطمینانپذیری بالای سیستمهای نهفته لازم است از تکنیکهایی برای مدیریت خطا استفاده شود تا از پخش خرابی در کل سیستم و یا از کار افتادگی سایر زیر سیستمها جلوگیری گردد.
6. سیستم های نهفته چگونه کار میکنند؟
سیستم های نهفته از یک پردازشگر با حافظه داخلی، منبع تغذیه و پورتهای ارتباطی برای انتقال دادهها به دستگاه های دیگر تشکیل شده اند. برنامههای نرمافزاری تعبیهشده به میکروکنترلر میگویند که چگونه به دادههای جمعآوریشده از محیط از طریق حسگرها و دستگاههای جانبی در زمان واقعی پاسخ دهد.
7. عناصر سختافزاری سیستمهای امبدد را نام ببرید.
حسگرها، مبدلها، پردازندههای سیستمهای امبدد و عملگرها از سختافزارهای اصلی سیستمهای امبدد هستند.
8. چه زبانهای برنامهنویسی معمولا برای امبدد سیستمها مورد استفاده قرار میگیرد؟
زبانهای برنامهنویسی C، C++، Python و MicroPython از جمله زبانهای رایج برای برنامهنویسی سیستمهای امبدد هستند.
9. چه تفاوتی بینfirmware ها با نرمافزارهای سیستمهای امبدد وجود دارد؟
تفاوت firmware ها با نرمافزارهای سیستمهای امبدد در این است که فریمورها غالبا توسط شرکت سازنده توسعه داده میشوند و غیر قابل تغییرند در حالیکه نرمافزارها به طور مستقیم توسط افراد کدگذاری میشوند و دارای انعطافپذیری بالاتری هستند.
10. چه ارتباطی بین امبدد سیستمها با هوش مصنوعی وجود دارد؟
امبدد سیستمها بستری را برای جمعآوری داده جهت ارتقای الگوریتمهای هوش مصنوعی فراهم میکنند. از طرف دیگر، هوش مصنوعی باعث بهینهسازی الگوریتمهای سیستمهای نهفته و کنترل ارتباط بین آنها میگردد.
11. سامانههای نهفته چه محدودیتهایی دارند؟
دشواری اعمال تغییر و ارتقا پس از پیکربندی، امنیت پایین و پیچیدگی ردیابی خطا از جمله چالشهای اصلی استفاده از این نوع سیستمها میباشد.