Mikrokontroller — protsessor yadrosi, xotira va periferik qurilmalarni bitta integral sxemada birlashtirgan boshqaruv kompyuteri. U maishiy texnika, avtomobil moduli, sensor qurilmasi, sanoat boshqaruvi va IoT tizimida aniq vazifani bajaradi. Umumiy maqsadli kompyuterdan farqli ravishda mikrokontroller odatda cheklangan xotira va quvvatda bitta firmware bilan ishlaydi.
Ichki tuzilishi
CPU buyruqlarni bajaradi. Flash yoki boshqa non-volatile xotira firmware kodini saqlaydi. SRAM ish vaqtidagi stack, heap va o‘zgaruvchilar uchun ishlatiladi. Ayrim mikrokontrollerlarda kichik EEPROM yoki emulyatsiya qilingan non-volatile maydon konfiguratsiya uchun mavjud.
Clock source CPU va periferik bloklar vaqtini belgilaydi. Ichki oscillator arzon va sodda, tashqi crystal esa ko‘pincha aniqroq chastota beradi. Clock tezligini oshirish hisoblash unumini, shu bilan birga quvvat sarfini ham oshirishi mumkin.
Periferik bloklar
GPIO pinlari raqamli kirish yoki chiqish sifatida sozlanadi. Timer vaqt oralig‘i, event count va PWM hosil qilishda ishlatiladi. ADC analog kuchlanishni raqamli qiymatga aylantiradi; DAC mavjud bo‘lsa raqamli qiymatdan analog chiqish hosil qiladi. UART, I2C, SPI, CAN va USB tashqi qurilmalar bilan aloqa uchun qo‘llanadi.
Pinlar ko‘pincha multiplexed bo‘lib, bitta fizik pin GPIO yoki bir nechta periferik funksiyadan faqat tanlangan birini bajaradi. Datasheetdagi pinout, elektr kuchlanish darajasi va maksimal tok chegaralari tekshiriladi. GPIO pinidan katta yukni bevosita quvvatlantirish o‘rniga transistor yoki driver ishlatiladi.
Interrupt va real vaqt
Interrupt muhim hodisa yuz berganda CPUni joriy koddan interrupt handlerga o‘tkazadi. Timer tugashi, UART bayti kelishi yoki pin holati o‘zgarishi interrupt manbasi bo‘lishi mumkin. Handler qisqa bajariladi; uzoq hisoblash asosiy loop yoki taskga qoldiriladi. Shared qiymatlar concurrency qoidalariga muvofiq himoyalanadi.
Oddiy firmware super loopda tasklarni ketma-ket bajaradi. Murakkab tizim Real-Time Operating System orqali task, priority, queue va timerlardan foydalanishi mumkin. Real-time talabi “juda tez” degani emas; belgilangan deadline ichida bashorat qilinadigan javob berishni anglatadi.
Quvvat va reset
Sleep mode CPU yoki periferik bloklarning bir qismini to‘xtatib, quvvat sarfini kamaytiradi. Wake-up timer, pin, aloqa yoki watchdog orqali bo‘lishi mumkin. Watchdog firmware belgilangan vaqtda uni yangilamasa mikrokontrollerni reset qiladi. Brown-out detector kuchlanish xavfsiz chegaradan tushganda noto‘g‘ri bajarilishning oldini olish uchun resetni ushlab turadi.
Firmware yuklash
Kod SWD, JTAG, ISP yoki bootloader orqali yoziladi. Debug interfeysi breakpoint, register va xotirani ko‘rishga yordam beradi. Production qurilmada firmware imzosi, secure boot, readout protection va yangilanishni orqaga qaytarish siyosati qo‘llanishi mumkin. Himoya bitlari noto‘g‘ri sozlansa, qurilmani qayta dasturlash ham cheklanishi mumkin.
Xotira va stack
Mikrokontroller SRAMi kichik bo‘lgani sababli katta lokal massiv va cheksiz rekursiya stack overflowga olib kelishi mumkin. Linker map fayli code, static data va bo‘sh xotira taqsimotini ko‘rsatadi. Heapdan dinamik allocation uzoq ishlaydigan embedded tizimda fragmentation va noma’lum kechikish keltirishi mumkin; ayrim firmware statik bufferlardan foydalanadi.
volatile kompilyatorga qiymat tashqi hodisa bilan o‘zgarishi mumkinligini bildiradi, lekin atomiclik yoki thread xavfsizligini ta’minlamaydi. Interrupt va asosiy kod bir xil ko‘p baytli qiymatga murojaat qilsa, critical section yoki apparatga mos atomic amal kerak bo‘lishi mumkin.