| مدرس: دکتر محسن انصاری، دکتر سپیده صفری | پیشنیاز: برنامهسازی پایتون |
| ترم: تابستان ۱۴۰۴ | محل برگزاری: کلاس مجازی |
| زمان ارائه: یکشنبه و سهشنبه ۱۶:۳۰ تا ۱۸:۰۰ | مشاهده: دریافت لایسنس |
سیستمهای نهفته؛ از معماری میکروکنترلرها تا طراحی سامانههای هوشمند
بسیاری از دستگاهها و تجهیزاتی که هر روز با آنها سروکار داریم، از خودروها و لوازم خانگی هوشمند گرفته تا تجهیزات صنعتی و سامانههای کنترلی، برای انجام وظایف مشخص به سیستمهای رایانهای کوچکی متکی هستند که درون آنها قرار گرفتهاند. این سیستمها که «سیستمهای نهفته» (Embedded Systems) نامیده میشوند، مسئولیتهایی مانند پایش وضعیت، پردازش اطلاعات حسگرها و کنترل عملکرد دستگاه را بر عهده دارند. طراحی چنین سیستمهایی مستلزم توجه همزمان به سختافزار، نرمافزار، محدودیت منابع، زمان پاسخگویی و قابلیت اطمینان است.
درس سیستمهای نهفته با هدف آشنایی با اصول طراحی و تحلیل این سامانهها ارائه میشود. در این درس، ابتدا با ویژگیها و کاربردهای سیستمهای نهفته و نقش حسگرها و عملگرها آشنا میشوید. سپس معماری میکروکنترلرها، ورودی و خروجیها، ارتباطات سریال، حافظه و روشهای پیادهسازی و اشکالزدایی نرمافزار روی این بسترها را بررسی میکنید. همچنین با بردهای پرکاربردی مانند Arduino و Raspberry Pi و تفاوتهای آنها از نظر معماری و کاربرد آشنا خواهید شد.
یکی از بخشهای مهم درس، طراحی سیستمهای واکنشی (Reactive Systems) با استفاده از اتوماتا و زبان StateCharts است. این رویکردها به توصیف منظم رفتار سیستم در پاسخ به رویدادها کمک میکنند و برای طراحی سامانههایی که باید در زمان مناسب به ورودیهای محیط واکنش نشان دهند، اهمیت دارند. در پایان، موضوعاتی مانند زمانبندی بیدرنگ، مصرف انرژی و قابلیت اطمینان بررسی میشوند تا با برخی از چالشهای اساسی طراحی سیستمهای نهفته آشنا شوید.
در پایان این درس چه تواناییهایی کسب میکنید؟
این درس برای دانشجویان و دانشآموختگان مهندسی کامپیوتر و رشتههای مرتبط مناسب است که به طراحی سختافزار و نرمافزار، برنامهنویسی نزدیک به سختافزار، سیستمهای کنترلی و فناوریهای هوشمند علاقه دارند. همچنین برای افرادی که قصد دارند دانش خود را در زمینههایی مانند اینترنت اشیا، سیستمهای سایبرفیزیکی، اتوماسیون و طراحی تجهیزات هوشمند گسترش دهند، میتواند مبانی نظری ارزشمندی فراهم کند.
آشنایی مقدماتی با برنامهنویسی و مفاهیم پایه معماری کامپیوتر برای بهرهگیری بهتر از این درس توصیه میشود. آشنایی با مفاهیمی مانند متغیرها، توابع، ساختارهای کنترلی و نحوه عملکرد کلی پردازنده و حافظه میتواند در درک مباحث مربوط به میکروکنترلرها و پیادهسازی نرمافزار مفید باشد. میزان پیشنیاز عملی در زمینه برنامهنویسی سختافزار یا کار با بردهای توسعهدهنده باید با با توجه به نحوه ارائه درس مشخص شود.