← Tüm makaleler

Gömülü Sistemlere Giriş

Gömülü sistem nedir, nerede kullanılır ve nasıl çalışır

Gömülü Sistemlere Giriş

Telefon ekranına dokunduğunuzda bir şeyin olmasını beklersiniz. Araba frenine bastığınızda ABS devreye girer. Çamaşır makineniz programın kaçıncı dakikasında olduğunu bilir. Bu olayların hiçbirinin arkasında bir masaüstü bilgisayar veya sunucu yoktur — hepsinin arkasında bir gömülü sistem vardır.

Bu yazının sonunda şunları anlayacaksınız: Gömülü sistemin ne olduğunu ve genel amaçlı bilgisayardan nasıl ayrıldığını; nerede kullanıldığını; donanım ve yazılım bileşenlerini; bu alanda öğrenmeniz gereken temel kavramları.


Gömülü Sistem Nedir?

Bir gömülü sistem (embedded system), belirli bir görevi yerine getirmek üzere tasarlanmış, daha büyük bir cihazın içine entegre edilmiş bilgisayar sistemidir. "Gömülü" kelimesi buradan gelir — sistem, bir ürünün içine gömülmüştür ve kullanıcı çoğunlukla onun orada olduğunun farkında bile değildir.

Genel amaçlı bir bilgisayarla karşılaştıralım:

Özellik Genel Amaçlı Bilgisayar Gömülü Sistem
Görev sayısı Sonsuz (tarayıcı, oyun, ofis) Tek veya az sayıda
Kaynak kullanımı Yüksek (GB RAM, GHz CPU) Kısıtlı (KB–MB RAM, MHz CPU)
İşletim sistemi Windows, macOS, Linux Genellikle yok veya RTOS
Kullanıcı arayüzü Masaüstü, ekran Genellikle yok
Güç tüketimi Watt–yüzlerce Watt Mikrowatt–mW
Maliyet Yüksek Çok düşük (birkaç sent–birkaç dolar)

{anecdote:Dünyada her yıl üretilen mikrodenetleyici sayısı, kişisel bilgisayar sayısının yaklaşık 50 katıdır. Çevrenizde gördüğünüz her ekranlı cihazın içinde en az bir, çoğunlukla onlarca gömülü sistem vardır.}


Gömülü Sistemler Nerede Kullanılır?

Otomotiv

Modern bir araç 70 ila 100 arasında elektronik kontrol ünitesi (ECU) içerir. Her biri ayrı bir gömülü sistemdir:

Tıbbi Cihazlar

Bu alanda güvenilirlik hayati önemdedir:

Endüstriyel Kontrol

Tüketici Elektroniği


Bir Gömülü Sistemin Bileşenleri

Mikrodenetleyici (MCU)

Gömülü sistemlerin kalbidir. CPU, Flash bellek, SRAM ve periferalleri (GPIO, Timer, ADC, UART, SPI, I²C) tek bir silikon çip üzerinde birleştirir.

/* ATmega328P'de PA5 pinini çıkış yapıp LED yakma */
DDRA  |= (1 << PA5);   /* PA5 → çıkış */
PORTA |= (1 << PA5);   /* PA5 → HIGH  */

Bu iki satır; bir register adresine bit yazmak anlamına gelir. Arada işletim sistemi yoktur, sürücü yoktur, API yoktur — donanım anında tepki verir.

Sensörler ve Aktüatörler

Gömülü sistem, gerçek dünyayla sensörler aracılığıyla veri alır, aktüatörler aracılığıyla etki eder:

Güç Kaynağı

Tasarımın kritik parçasıdır. Pil ile çalışan cihazlarda MCU'nun uyku modları (deep sleep, standby) yıllarca pil ömrü sağlar. Bazı MCU'lar mikrowatt seviyesinde uyku akımı çeker.

İletişim Arabirimleri

Gömülü sistemler nadiren izole çalışır. Diğer sistemlerle konuşmak için:


Yazılım Katmanları

Gömülü yazılım, genel amaçlı yazılımdan farklı bir katman yapısına sahiptir:

Uygulama Kodu          ← sizin yazdığınız mantık
─────────────────────
HAL / Sürücüler        ← peripheral soyutlama (STM32 HAL, AVR libc)
─────────────────────
CMSIS / Başlangıç Kodu ← CPU başlatma, kesme vektörleri
─────────────────────
Donanım (MCU Silikon)

Başlangıç seviyesinde çoğunlukla register seviyesinde çalışırsınız — HAL'in altına inerek peripheral register'larını doğrudan yapılandırırsınız. Bu, donanımın nasıl çalıştığını anlamanın en doğrudan yoludur.


Gerçek Zamanlı Gereksinimler

Gömülü sistemlerin büyük bir kısmı gerçek zamanlı kısıtlar altında çalışır: bir görevin belirli bir süre içinde tamamlanması zorunludur.

Sert gerçek zamanlı (hard real-time): Süre aşımı kabul edilemez. Hava yastığı kontrolcüsü 30 ms içinde ateşlemelidir, bir milisaniye gecikme bile kabul edilmez.

Yumuşak gerçek zamanlı (soft real-time): Ara sıra gecikme tolere edilebilir, ama sistem kalitesini düşürür. Video akışı, ses işleme.

Bu gereksinim, gömülü sistemlerde çöp toplayıcılı diller veya öngörülemeyen gecikme kaynakları yaratabilecek her şeyin kaçınıldığı anlamına gelir.

{anecdote:İlk gerçek zamanlı gömülü sistem uygulamalarından biri Apollo Güdüm Bilgisayarı'dır (1960'lar). 4 KB RAM ve 72 KB ROM ile Ay'a iniş manevralarını yönetiyordu. Yazılımı bugün bile çalışırdı.}


Başlarken Ne Öğrenmelisiniz?

Gömülü sistemler dünyasına girmek için ihtiyacınız olan temel kavramlar şunlardır:

Konu Neden Gerekli
C programlama dili Register erişimi, bellek yönetimi, taşınabilir kod
Dijital elektronik temelleri Voltaj seviyeleri, pull-up/down, debounce
Mikrodenetleyici mimarisi CPU, bellek haritası, register yapısı
GPIO, Timer, ADC, UART En temel peripheral'lar
Veri tipleri ve bit işlemleri uint8_t, uint16_t, `

Bu yazı, o yolculuğun başlangıç noktasıdır. Sonraki makaleler ve dersler her konuyu uygulamalı olarak ele alır.

Kurslara göz at →