اینترنت اشیاءمیم تک 30

برنامه های تعبیه شده یا Embedded programming در اینترنت اشیا

برنامه های تعبیه شده یا Embedded programming در اینترنت اشیا

معرفی برنامه های تعبیه شده یا Embedded programming :

برنامه های تعبیه شده (Embedded programming) در رفع نیازهای نرم افزاری مردم ، سابقه ی زیادی دارند.

با این حال برنامه های تعبیه شده معنایی فراتر از یک برنامه و برنامه نویسی معمولی دارند:

هنگامی که برنامه نویسان برنامه های کاربردی، در حال پذیرش زبان های سطح بالای شیء گرا مانند C ++، Java یا محیط توسعه برنامه های گرافیکی مانند MATLAB بودند، برنامه نویسان نرم افزارهای تعبیه شده فقط از زبان اسمبلی به C حرکت می کردند. همیشه تعداد برنامه نویسان نسبت به تعداد برنامه نویسان نرم افزارهای تعبیه شده بیشتر بوده است. خیلی از افراد به عنوان تفریح برنامه می نویسند و در فضای ابری آپلود می کنند. در حالی که برنامه نویسان برنامه های تعبیه شده باید دانش عمیقی از بستر سخت افزاری داشته باشند.

با ظهور اینترنت اشیا (IoT) ، بالاخره می توان تعادل را تغییر داد.

امروزه با توجه به اینکه هر ترموستات ، توستر ، ساعت و لامپ به پردازنده مجهز است ، بازار برای برنامه ریزی این دستگاه ها به برنامه نویسان تعبیه شده بیشتری نیاز دارد. به طبع آن ابزارهای ساده تری آمده اند که این امکان را به برنامه نویسان می دهد تا بدون نیاز به سخت افزار کدنویسی انجام دهند.

برنامه نویسی تعبیه شده چیست؟

طبق گفته Technopedia ، برنامه نویسی تعبیه شده نوع خاصی از برنامه نویسی است که از دستگاه های مورد نیاز مصرف کنندگان و صاحبین مشاغل که در روش های سنتی روی لپ تاپ یا تلفن های همراه به طور کامل کار نمی کردند، پشتیبانی می کند. ایده برنامه نویسی تعبیه شده بخشی از چیزی است که باعث تحول وسایل و تجهیزات دیجیتالی در بازارهای فناوری اطلاعات امروزی می شود. به عبارت ساده تر، برنامه نویسی تعبیه شده برای رایانه های کوچک که دستگاه ها را هدایت می کنند ، نرم افزاری را طراحی می کند. در اصل، این روش، یک روش غالب برای برنامه ریزی میکروکنترلرها و میکرو رایانه ها است که در دستگاه های کوچک مانند ترموستات ها یا سایر دستگاه های کوچک مورد استفاده قرار می گیرد.

برنامه نویسی تعبیه شده و اینترنت اشیا:

از دیدگاه مهندسی ، اینترنت اشیاء یک سیستم کنترل ریزپردازنده های تعبیه شده است که به طور مستقیم یا غیر مستقیم به وب متصل می شوند. بنابراین برنامه نویسی ، فناوری شبکه و فناوری اطلاعات سه ستون اصلی نهفته در اینترنت اشیا می باشند. سیستم تعبیه شده در یک دستگاه، داده ها را از یک سنسور جمع می کند و با استفاده از ماژول wifi آن را به فضای ابر می فرستد. در اصل می توان گفت اگر دستگاه تعبیه شده به اینترنت دسترسی داشته باشد، به دستگاه اینترنت اشیا تبدیل شده است.

از آن جایی که اینترنت اشیا در همه جا حضور دارد، پس دستگاه های تعبیه شده هم در همه جا وجود دارند.

  • دنیای صنعتی: مانند ماشین آلات صنعتی و کنترل ، نظارت بر دما و تشخیص ناهنجاری شناختیی .چالش های اخیر سیستم های تعبیه شده آنها را به سمت اتوماسیونی شدن سوق داده است.
  • مراقبت های سلامتی: از جمله مانیتور فشار خون ، مانیتور ضربان قلب ، و ضربان ساز ها.
  • هوافضا و دفاع:  برنامه هایی مانند سیستم های کنترل پرواز ، تحریک ، مدیریت هوا و گرما ، کنترل قدرت موتور و بسیاری موارد دیگر.
  • خانه های هوشمند: سیستم امنیتی خانگی ، جعبه تنظیم ، دوربین دیجیتال ، تلویزیون ، اجاق مایکروویو ، تهویه هوا ، یخچال و بسیاری از موارد دیگر.
برنامه نویسی تعبیه شده و اینترنت اشیا

سیستم های تعبیه شده :

همه ی سیستم های پیچیده دنیا می توانند به دو دو بخش کوچک تقسیم کرد: سخت افزار و نرم افزار.

یک سیستم تعبیه شده نیز از این قاعده مستثنا نیست: برای درک چگونگی عملکرد برنامه نویسی تعبیه شده ، باید قطعات سخت افزاری و نرم افزاری آن را بفهمیم.

سخت افزار تعبیه شده یا Embedded Hardware :

صفحه توسعه تعبیه شده به پنج ماژول تقسیم می شود:

  • پردازنده
  • حافظه
  • دستگاههای ورودی
  • دستگاههای خروجی
  • کنترلرهای Bus

قطعات سخت افزاری یک سیستم تعبیه شده :

Processor

پردازنده های جاسازی شده را می توان به دو دسته تقسیم کرد:

1- ریزپردازنده های معمولی که از مدارهای مجتمع جداگانه برای حافظه و محیط استفاده می کنند.

2- میکروکنترلرهایی که دارای تراشه های جانبی هستند که باعث کاهش مصرف برق ، اندازه و هزینه می شوند.

برخی از نمونه های ریز پردازنده ها عبارتند از:

Microcontroller یا CPU : وسیله ای هوشمند است که وظایف تعیین شده توسط کاربر را محاسبه می کند و برای ساخت برنامه های کوچک با محاسبه دقیق استفاده می شود.

System on Chip یا SoC : شامل یک CPU ، دستگاه های جانبی (تایمر ، پیشخوان) ، رابط های ارتباطی (I²C ، SPI ، UART) و مدارهای مدیریت انرژی در یک IC واحد است.

ASIC processor یا Application Specific Integrated Circuit : برای استفاده یک برنامه خاص طراحی و متعلق به یک شرکت واحد می باشد.

DSP processor: نویز را حذف کرده و کیفیت سیگنال را در برنامه های صوتی و تصویری بهبود می بخشد.

Memory

ذخیره سازی داده ها و مدیریت حافظه به EEPROM احتیاج دارند.

برخی از نمونه حافظه های مورد استفاده در سیستم های تعبیه شده عبارتند از:

  • Non-Volatile RAM
  • Volatile RAM
  • DRAM (Dynamic Random Access Memory)
Input Devices

دستگاه های ورودی مانند سنسورها ، سوئیچ ها ، فتو دیود و غیره را شامل می شود. از دنیای خارج ورودی می پذیرد،ورودی کاربر را قبول می کند و به همین ترتیب پاسخ می دهد.

Output Devices

دستگاه های خروجی از جمله LCD ، LED ، نمایشگرهای هفت بخش، شاخص ها یا نتایج رویدادهای ورودی در خارج از میکروکنترلر هستند.

Bus controllers

bus controller  وسیله ارتباطی است که داده ها را بین اجزای داخل یک سیستم تعبیه شده منتقل می کند. متداول ترین serial buses ، bus controller (I2C ، SPI ، SMBus و غیره) ، RS232 ، RS485 و bus سریال جهانی (universal serial bus) هستند.

Embedded Software

نرم افزار تعبیه شده ، که گاهی اوقات firmware هم نامیده می شود ، برای درایورهای دستگاه ، سیستم عامل و برنامه های کاربردی و همچنین برای مدیریت خطا و اشکال زدایی نوشته شده است.

مؤلفه های نرم افزاری یک سیستم تعبیه شده:

Device Driver

درایور دستگاه قطعه ای از کد تعبیه شده است که برای یک سخت افزار خاص نوشته شده است.

Operating System

سیستم های تعبیه شده دارای طیف وسیعی از سیستم عامل ها از جمله RTOS (سیستم عامل های Real-Time) ، سیستم های تعبیه شده موبایل ، شبکه  مستقل و تعبیه شده هستند. بیشتر نرم افزارهای تعبیه شده به دو زبان C و C ++ نوشته شده اند. از نظر syntax تفاوت چندانی بین C و C ++ وجود ندارد. اگرچه ، C ++ دارای برخی از ویژگی های اضافی ، مانند امنیت بیشتر و نزدیکی به برنامه های دنیای واقعی است. با این حال C به عنوان یک زبان قابل اطمینان تر با نمایش عملکرد بهتر و تعامل مستقیم با سخت افزار در نظر گرفته شده است.

 

مراحل کلیدی برای ایجاد یک محصول تعبیه شده :

حالا با دانستن تئوری های بالا می توانیم خود را برای امتحان کردن برنامه نویسی تعبیه شده آماده کنیم.

احتمالاً بهترین راه برای شروع نوشتن نرم افزاری که مستقیماً روی اشیاء فیزیکی تأثیر بگذارد. همچنین آشنایی با پلتفرم های تعبیه شده و بردهایی مانند Arduino ، Raspberry Pi یا Particle لازم است.

 برای ساختن یک محصول مناسب باید مراحل زیر را انجام دهید:

مرحله 1. C یا C ++ را بیاموزید.

اگر می خواهید نرم افزار تعبیه شده بنویسید ، باید C / C ++ (و شاید در نهایت Rust و پایتون) را یاد بگیرید. این جا همان جایی است که بسیاری از افراد متوقف می شوند.

مرحله 2. برخی از موارد پایه و اساسی الکترونیک  را بیاموزید.

حداقل تا جایی که می توانید قانون ولتاژ ، جریان ، قدرت ، مقاومت و اهم را یاد بگیرید.

مرحله 3. تجهیزات اولیه را تهیه کنید.

برنامه نویسان نرم افزار های تعبیه شده در واقع با دنیای فیزیکی در ارتباط می باشند .

لذا به تجهیزاتی از قبیل موارد زیر نیاز دارید:

  • آهن لحیم کاری
  • Digital Multi-Meter (DMM)
  • اشکال زدایی سخت افزاری / آداپتور JTAG (مانند آداپتور ST-Link یا OLMEX )
  • تحلیلگرهای منطقی
مرحله 4. میکروکنترلر و ابزارآلات مورد نیاز را انتخاب کنید.

برای اجرای برنامه خود ، به یک میکروکنترلر نیاز دارید. همچنین به کامپایلری که آن را برای میکروکنترلر و سایر ابزارها بارگذاری کند تا برنامه را روی سخت افزار خود بارگذاری کند. نمونه ای از ترکیب میکروکنترلرها با یک ابزار، میکروکنترلرهای STM32 است. میکروکنترلرهای STM32 توسط arm-gcc همراه با ابزار ابزار OpenOCD پشتیبانی می شوند.

مرحله5. datasheet  را درک کنید.

قبل از شروع نوشتن اولین خط کد خود ، باید نیاز های خاص کاربر را شناسایی  کنید.

مرحله 6. مؤلفه ها را بررسی کنید.

تجزیه و تحلیل و انتخاب قطعات (نرم افزار و سخت افزار) مورد نیاز برای تهیه محصول.

مرحله 7. محصول را طراحی کنید

طراحی همیشه بحرانی ترین مرحله از هر چرخه توسعه است. خصوصیت برنامه نویسی تعبیه شده این است که شما باید قطعات سخت افزاری و نرم افزاری را بصورت جداگانه توسعه دهید و هر دو را ادغام کنید.

مرحله 8. یک نمونه اولیه تهیه کنید

نمونه اولیه نسخه نمونه ای است که برای تست مفهوم طراحی شده است که با توجه به مشخصات با استفاده از ابزار سخت افزاری و نرم افزاری انتخاب شده ساخته شده است.

مرحله 9. برنامه را تست کنید

اکنون به کمک نمونه اولیه می توان موارد مدنظر را برای بررسی پتانسیل  و اختلالات احتمالی برنامه آزمایش کرد.

مرحله 10: برنامه را مستقر کنید

پس از آزمایش برنامه ، نتیجه در یک محیط واقعی برای تحقق اثبات مفهوم بررسی می شود – روشی که برای اعتبارسنجی یک ایده استفاده می شود.

مرحله 11: پشتیبانی و به روز رسانی

در صورت نیاز ، شما باید آماده پشتیبانی و ارتقا برنامه با ویژگی های جدید باشید.

مراحل کلیدی برای ایجاد یک محصول تعبیه شده

و اکنون شما آماده هستید تا دنیا را تغییر دهید.

چطوره از ساخت یک شهر هوشمند لگویی شروع کنید!

ارسال پاسخ