سیستم‌های توکار (تعبیه شده) Embedded Systems

Download Report

Transcript سیستم‌های توکار (تعبیه شده) Embedded Systems

‫‪y‬‬
‫محمد رضا حسینی‬
‫فهرست مطالب‬
‫• معرفی سیستم‌های توکار‬
‫• حوزه‌های کاربرد‬
‫• روند تکامل‬
‫• خصوصیات‬
‫• روند توسعه‬
‫• نرم افزار‬
‫سیستم‌های توکار ‪ -‬اردیبهشت ‪۱۳۹۱‬‬
‫‪2‬‬
‫؟؟؟‬
‫سیستم‌های توکار ‪ -‬اردیبهشت ‪۱۳۹۱‬‬
‫‪3‬‬
Raspberry Pi
Linux •
700 MHz ARM •
256MB memory •
HDMI •
USB •
25$ - 35$ •
4
۱۳۹۱ ‫ اردیبهشت‬- ‫سیستم‌های توکار‬
‫سؤال؟‬
‫سیستم‌های توکار ‪ -‬اردیبهشت ‪۱۳۹۱‬‬
‫‪5‬‬
‫سیستم توکار‬
‫ی‬
‫• یک سیستم کامپیوتر ‌‬
‫• کاربرد خاص و ویژه‬
‫• جزیی از سیستمی بزرگ‌تر‬
‫سیستم‌های توکار ‪ -‬اردیبهشت ‪۱۳۹۱‬‬
‫‪6‬‬
‫ی‬
‫سیستم کامپیوتر ‌‬
‫• سخت افزار‬
‫– پردازنده‬
‫– حافظه‬
‫• نرم افزار‬
‫– سیستم عامل‬
‫• توسعه نرم‌افزار ساده‌تر از سخت افزار است‪.‬‬
‫سیستم‌های توکار ‪ -‬اردیبهشت ‪۱۳۹۱‬‬
‫‪7‬‬
‫حوزه‌های کاربرد‬
‫• شبکه‬
‫• وسایل دیجیتال‬
‫• صنعت‬
‫– تلویزیون‌‬
‫• هوا فضا‬
‫– ‪Mp3 player‬‬
‫• نیروگاه‌های هسته‌ای‬
‫• صنایع نظامی‬
‫• پزشکی‬
‫– تجهیزات آزمایشگاهی‬
‫• رباتیک‬
‫سیستم‌های توکار ‪ -‬اردیبهشت ‪۱۳۹۱‬‬
‫‪8‬‬
‫وسایل دیجیتال‬
‫سیستم‌های توکار ‪ -‬اردیبهشت ‪۱۳۹۱‬‬
‫‪9‬‬
‫تجهیزات شبکه‬
‫سیستم‌های توکار ‪ -‬اردیبهشت ‪۱۳۹۱‬‬
‫‪10‬‬
‫رباتیک‬
‫سیستم‌های توکار ‪ -‬اردیبهشت ‪۱۳۹۱‬‬
‫‪11‬‬
‫سیستم‌های توکار ‪ -‬اردیبهشت ‪۱۳۹۱‬‬
‫‪12‬‬
‫سیستم‌های توکار ‪ -‬اردیبهشت ‪۱۳۹۱‬‬
‫‪13‬‬
‫تاریخچه‬
‫• ‪Apollo Guidance Computer‬‬
‫• ‪۱۹۶۶‬‬
‫• نا مطمئن‌ترین‬
‫قسمت آپولو!‬
‫سیستم‌های توکار ‪ -‬اردیبهشت ‪۱۳۹۱‬‬
‫‪14‬‬
‫تاریخچه ‪ -‬ادامه‬
‫• ظهور میکروپروسسور و میکرو کنترلرها‬
‫• کاهش قیمت‌ها و پیشرفت تکنولوژی‬
‫• پردازنده‌های جدید‬
‫• ‪FPGA‬‬
‫• ‪ARM‬‬
‫• ‪Linux‬‬
‫سیستم‌های توکار ‪ -‬اردیبهشت ‪۱۳۹۱‬‬
‫‪15‬‬
‫خصوصیات‬
‫• انجام یک عمل خاص‬
‫• جزیی از یک سیستم بزرگ‌تر‬
‫• بالدرنگ (‪)real time‬‬
‫• محدودیت در منابع‬
‫سیستم‌های توکار ‪ -‬اردیبهشت ‪۱۳۹۱‬‬
‫‪16‬‬
‫مالحظات و محدودیت‌ها‬
‫• قدرت پردازش ی‬
‫• حافظه‬
‫– حجم‬
‫– تکنولوژی‬
‫• فضای ذخیره سازی (حافظه جانبی)‬
‫• ابزار ذخیره سازی‌‬
‫سیستم‌های توکار ‪ -‬اردیبهشت ‪۱۳۹۱‬‬
‫‪17‬‬
‫مالحظات و محدودیت‌ها ‪ -‬ادامه‬
‫• تعامل با کاربر‬
‫– پورت‌های ارتباطی‬
‫• فرایند بوت‬
‫– بوت سریع‬
‫سیستم‌های توکار ‪ -‬اردیبهشت ‪۱۳۹۱‬‬
‫‪18‬‬
‫پردازند‌ه ها‬
‫• تنوع بسیار زیاد‬
‫– ‪ Von Neumann‬و ‪Harvard‬‬
‫– ‪RISC‬و ‪CISC‬‬
‫– خیلی ضعیف و خیلی قوی‌‬
‫• معماری‌های معمو ‌ل‪:‬‬
‫• ‪،Blackfin ،ARM ،Microblaze ،PowerPC ،MIPS ،x86‬‬
‫‪... ،Coldfire ،SPARC‬‬
‫سیستم‌های توکار ‪ -‬اردیبهشت ‪۱۳۹۱‬‬
‫‪19‬‬
‫ارتباط با کاربر‬
‫• بدون ارتباط‬
‫• ‪LED‬‬
‫• دکمه‬
‫• پورت سریال‬
‫• ‪LCD‬‬
‫• صفحه ملس ی‬
‫• موس و کیبورد‬
‫سیستم‌های توکار ‪ -‬اردیبهشت ‪۱۳۹۱‬‬
‫‪20‬‬
‫بورد‌های آماده‬
‫• برای پیاده سازی یک سیستم توکار معموال از بورد‌های آماده استفاده می‌شود‪.‬‬
‫• ویژگی‌ها و امکانات متنوع‬
‫• پردازنده ‪ +‬دستگ ‌اه‌ها و ابزار‌های جانبی‬
‫– انواع پورت‌ها‬
‫– صفحه نمایش‬
‫– ‪LED‬‬
‫– امکانات توسعه‬
‫سیستم‌های توکار ‪ -‬اردیبهشت ‪۱۳۹۱‬‬
‫‪21‬‬
‫بورد‌های آماده ـ ادامه‬
Xilinx ML505 •
Virtex5 •
Serial •
USB •
SATA •
VGA •
Flash •
Ethernet •
22
۱۳۹۱ ‫ اردیبهشت‬- ‫سیستم‌های توکار‬
‫بورد‌های آماده ـ ادامه‬
‫• ‪Inrevium‬‬
‫• فقط پورت سریال!‬
‫سیستم‌های توکار ‪ -‬اردیبهشت ‪۱۳۹۱‬‬
‫‪23‬‬
‫نرم افزار‬
‫• بدون سیستم عامل‬
‫– ‪Stand alone applications‬‬
‫– ‪Interrupt controlled‬‬
‫–…‬
‫• با سیستم عامل‬
‫– یک سیستم عامل‬
‫– بقیه‌ی نرم‌افزارها روی سیستم عامل‬
‫– انعطاف پذیری زیاد‬
‫سیستم‌های توکار ‪ -‬اردیبهشت ‪۱۳۹۱‬‬
‫‪24‬‬
‫سیستم‌عامل‌های توکار‬
‫• بالدرنگ (‪)RTOS‬‬
‫• غیر بالدرنگ‬
‫• معماری سخت‌افزار‬
‫• قابلیت‌ها‬
‫• هزینه‬
‫– رایگان ‪O(100000$) ، O(10000$) ،‬‬
‫سیستم‌های توکار ‪ -‬اردیبهشت ‪۱۳۹۱‬‬
‫‪25‬‬
‫ ادامه‬- ‫سیستم‌عامل‌های توکار‬
‫• لینوکس‬
uClinux –
Windriver vxWorks –
Montavista Mobilinux –
Windows CE •
eCos •
26
۱۳۹۱ ‫ اردیبهشت‬- ‫سیستم‌های توکار‬
‫تخصص‌های مورد نیاز‬
‫الکترونیک‬
‫• طراحی بورد ‪ ،‬استفاده از بورد‬
‫سخت افزار‬
‫• ارتباط نرم افزار و سخت افزار‬
‫• طراحی سیستم و کار با سخت افزار‬
‫نرم افزار‬
‫• توسعه نرم افزار‬
‫سیستم‌های توکار ‪ -‬اردیبهشت ‪۱۳۹۱‬‬
‫‪27‬‬
‫مراحل کار‬
‫• انتخاب بورد ‪ /‬طراحی بورد‬
‫• انتخاب سیستم عامل‬
‫• برقراری امکان استفاده از قابلیت‌ها و ابزارهای سخت افزار‬
‫– شناساندن سخت افزار به سیستم عامل‬
‫• پیاده سازی برنامه‌ها‬
‫• ریختن نرم افزار روی سخت افزار!‬
‫سیستم‌های توکار ‪ -‬اردیبهشت ‪۱۳۹۱‬‬
‫‪28‬‬
‫توسعه نرم افزار‬
‫• در کامپیوتر‌های معمولی‬
‫– توسعه نرم افزار روی همان محیطی که استفاده می‌شود‪.‬‬
‫• در سیستم های توکار‬
‫– توسعه نرم افزار روی محیطی (‪ )host‬متفاوت با محیطی که نرم افزار‬
‫استفاده می‌شود (‪.)target‬‬
‫سیستم‌های توکار ‪ -‬اردیبهشت ‪۱۳۹۱‬‬
‫‪29‬‬
‫‪Cross Compile‬‬
‫• کامپیوتر میزبان ‪x86‬‬
‫• کامپیوتر هدف ‪ARM‬‬
‫• نرم افزار‪ ،‬روی کامپیوتر ‪ x86‬برای معماری ‪ ARM‬کامپایل‬
‫می‌شود‪.‬‬
‫– روی کامپیوترمیزبان قابل اجرا نیست‬
‫– انتقال به کامپیوتر هدف‬
‫سیستم‌های توکار ‪ -‬اردیبهشت ‪۱۳۹۱‬‬
‫‪30‬‬
‫‪DEBUG‬‬
‫• ‪Instrumentation‬‬
‫– اضافه کردن کد به منظور جمع آوری اطالعات‬
‫• ‪On-Chip Debugging‬‬
‫– اجرای برنامه روی کامپیوتر هدف و دیباگ کردن برنامه روی کامپی ‌وتر‬
‫میزبان‬
‫سیستم‌های توکار ‪ -‬اردیبهشت ‪۱۳۹۱‬‬
‫‪31‬‬
‫‪On-Chip Debugging‬‬
‫• نیاز به ابزار مخصوص دارد‬
‫– ‪JTAG‬‬
‫– پورت سریال‬
‫– دیباگر‬
‫• ‪gdb‬‬
‫– سرور روی یک کامپیوتر‬
‫– کالینت روی دیگری‌‬
‫– انتقال اطالعات بین سرور و کالینت‬
‫سیستم‌های توکار ‪ -‬اردیبهشت ‪۱۳۹۱‬‬
‫‪32‬‬
‫ی‬
‫مالحظات نرم افزار ‌‬
‫• پایداری نرم افزار‬
‫• محدودیت منابع‬
‫• بهینگی‬
‫• بروزآوری‬
‫سیستم‌های توکار ‪ -‬اردیبهشت ‪۱۳۹۱‬‬
‫‪33‬‬
‫بعض ی مشکالت متداو ‌ل‬
‫• ‪Endianness‬‬
‫– ارتباط سیستم ‪ embedded‬با سیستم های دیگر‬
‫• فایل سیستم‌های نامتداو ‌ل‬
‫– ‪JFFS2‬‬
‫ت کتابخانه‌ها‬
‫• محدودی ‌‬
‫– ‪ uclibc‬به جای ‪glibc‬‬
‫– ‪Linux Threads‬‬
‫سیستم‌های توکار ‪ -‬اردیبهشت ‪۱۳۹۱‬‬
‫‪34‬‬
‫جمع بندی‬
‫• سیستم‌های کامپیوتری با کاربرد خاص‬
‫• پیچیدگی توسعه‬
‫• دانش فنی باال‬
‫• بکر‬
‫سیستم‌های توکار ‪ -‬اردیبهشت ‪۱۳۹۱‬‬
‫‪35‬‬
‫سیستم‌های توکار ‪ -‬اردیبهشت ‪۱۳۹۱‬‬
‫‪36‬‬