Gömülü sistemler: cihazın içinde çalışan özel amaçlı bilgisayarlar
Gömülü sistem nedir, mikrodenetleyici, sensör ve gerçek zamanlı yazılım nasıl birlikte çalışır? Örnekler, tasarım kısıtları ve kullanım alanları.
Gömülü sistem nedir?
Gömülü sistem (embedded system), daha büyük bir cihazın ya da makinenin içine yerleştirilmiş, belirli bir işi yerine getirmek üzere tasarlanmış özel amaçlı bilgisayar sistemidir. Genel amaçlı bir bilgisayardan farkı, kullanıcının istediği her yazılımı çalıştırmak için değil, tek bir görevi güvenilir biçimde yapmak için kurulmasıdır.
Çamaşır makinesinin yıkama programını yöneten kart, otomobilin motor kontrol ünitesi, akıllı bir termostat, medikal bir cihaz ve endüstriyel bir robotun denetleyicisi birer gömülü sistemdir. Çoğunlukla kullanıcı bunların içinde bir bilgisayar olduğunu fark etmez; ekran ya da klavye bile olmayabilir.
Bu sistemlerde donanım ve yazılım birbirinden ayrılmaz biçimde tasarlanır. Yazılıma sıklıkla bellek, işlem gücü ve enerji açısından sıkı sınırlar getirir, bu da gömülü yazılımı masaüstü yazılımından farklı bir disiplin haline getirir.
Bir gömülü sistemin parçaları
Tipik bir gömülü sistem şu bileşenlerden oluşur:
- Mikrodenetleyici ya da işlemci: Hesaplamayı yapan çekirdek. Mikrodenetleyici, işlemcinin yanında bellek ve çevre birimlerini aynı yongada barındırır.
- Bellek: Programın saklandığı kalıcı bellek ile çalışma sırasında kullanılan geçici bellek.
- Girişler: Sıcaklık, ışık, hareket, basınç gibi fiziksel dünyayı ölçen sensörler ve düğmeler.
- Çıkışlar: Motor, vana, ekran, LED ya da iletişim arayüzü gibi dış dünyayı etkileyen öğeler.
- Çevre birimleri: Zamanlayıcılar, analog-dijital çevirici, seri haberleşme birimleri gibi donanım blokları.
- Gömülü yazılım: Donanımı yöneten, çoğunlukla C veya C++ ile yazılan ve firmware olarak da anılan program.
Bu parçalar bir döngü kurar: sensör ölçer, yazılım karar verir, çıkış fiziksel bir eylem üretir.
Gerçek zamanlılık ve kısıtlar
Gömülü sistemleri tanımlayan en önemli özelliklerden biri zaman kısıtıdır. Birçok uygulamada bir işlemin doğru olması kadar belirli bir süre içinde tamamlanması da şarttır. Bir araç frenleme sisteminde geç gelen doğru cevap, yanlış cevap kadar tehlikelidir. Bu tür sistemler gerçek zamanlı olarak anılır ve çoğu zaman bir gerçek zamanlı işletim sistemi (RTOS) ya da doğrudan donanıma yazılmış kesme tabanlı kod kullanır.
Kesme (interrupt), bir olay gerçekleştiğinde işlemcinin mevcut işi bırakıp ilgili işlemi hemen yürütmesini sağlayan mekanizmadır. Düğmeye basılması ya da sensör verisinin gelmesi gibi olaylar bu şekilde ele alınır.
Diğer kısıtlar şunlardır: sınırlı bellek, sınırlı işlem gücü, maliyet baskısı ve güç tüketimi. Pille çalışan bir cihazda yazılımın işlemciyi çoğu zaman uyku modunda tutması ve yalnızca gerektiğinde uyandırması beklenir. Bu nedenle enerji tüketimi, tasarımın başından itibaren düşünülmesi gereken bir parametredir.
Kurgusal bir örnek: akıllı sulama denetleyicisi
Örneğin bir bahçe sulama sistemi düşünelim. Toprak nem sensörü belirli aralıklarla ölçüm yapar. Gömülü yazılım değeri bir eşikle karşılaştırır; toprak kuruysa vanayı açan röleyi tetikler, yeterli nem varsa vanayı kapalı tutar. Ek olarak bir zamanlayıcı gün içinde sulamanın uygun saatlerini denetler.
Cihaz pille çalışıyorsa işlemci ölçümler arasında uyku modunda bekler ve zamanlayıcı kesmesiyle uyanır. Kablosuz bir haberleşme birimi, durum bilgisini uzak bir uygulamaya gönderir. Yazılımın en kritik kısmı, bir sensör arızası olduğunda vanayı sürekli açık bırakmayacak güvenli davranışı tanımlamasıdır.
Bu küçük örnek gömülü geliştirmenin ana unsurlarını gösterir: sensörle okuma, karar mantığı, kesme ve zamanlayıcı kullanımı, enerji yönetimi, hata durumunda güvenli davranış.
Kullanım alanları ve ilişkili kavramlar
Gömülü sistemler otomotivden savunmaya, tıbbi cihazlardan beyaz eşyaya, endüstriyel otomasyondan tüketici elektroniğine kadar çok geniş bir alanda bulunur. Nesnelerin interneti (IoT) cihazlarının büyük bölümü de gömülü sistemdir; fark, ağ bağlantısı ve bulutla veri alışverişinin öne çıkmasıdır.
İlişkili kavramlardan biri firmware'dir: gömülü cihazın kalıcı belleğinde çalışan yazılım. Bir diğeri uç bilişimdir; veri işlemenin merkezi bulut yerine cihazın yakınında yapılması anlamına gelir. MQTT gibi hafif mesajlaşma protokolleri cihazların birbiriyle ve bulutla konuşmasını sağlar.
Gömülü sistem ile genel amaçlı bilgisayarı ayırmak için pratik bir ölçüt: kullanıcı cihaza yeni bir program yükleyip çalıştırabiliyorsa genel amaçlıdır. Cihaz tek bir görev için tasarlanmış ve yazılımı üretici tarafından belirlenmişse gömülü sistem söz konusudur. Sınır bulanık olabilir; akıllı telefonlar bu ayrımın arasında yer alır.
Mindset programlarında nerede çalışılır?
Mindset kataloğunda bu alana yönelik programlar vardır. "Gömülü Sistem Programlama (Embedded C)" eğitimi gömülü geliştirme ortamı ve derleyici zinciri, bellek modeli ve veri tipleri, işaretçiler ve bit düzeyi işlemler, GPIO ve temel çevre birimleri, kesme yönetimi, zamanlayıcılar ve haberleşme birimleri, güvenli kodlama, test ve hata ayıklama modüllerini içerir. "Düşük Güç Tüketimli Gömülü Sistem Tasarımı" eğitimi ise enerji bütçesi ve ölçüm, uyku modları ve uyandırma tasarımı, haberleşme stratejisi ve enerji, pil ömrü modeli ve saha doğrulaması başlıklarına odaklanır.
İlgili Mindset programı
Gömülü Sistem Programlama (Embedded C)
Sık sorulan sorular
Gömülü sistemlerde işletim sistemi şart mıdır?
Hayır. Basit cihazlarda yazılım doğrudan donanım üzerinde, tek bir döngü ve kesmelerle çalışabilir. Zamanlama ve görev sayısı arttıkça gerçek zamanlı işletim sistemi ya da gömülü Linux gibi bir katman devreye girer. Seçim, cihazın zamanlama gereksinimine, bellek sınırına ve güç bütçesine bağlıdır.
Gömülü yazılım için hangi dil kullanılır?
En yaygın dil C'dir; donanıma yakın çalışma, bellek denetimi ve öngörülebilir performans sağlar. C++ nesne yönelimli yapı gereken projelerde kullanılır. Rust gibi bellek güvenliği sunan diller de ilgi görmektedir. Bazı hızlı prototiplerde MicroPython gibi yorumlanan diller tercih edilir.
Gömülü sistem ile IoT arasındaki fark nedir?
Nesnelerin interneti, cihazların ağa bağlanıp veri paylaştığı bir kullanım biçimidir. Bu cihazların çoğu gömülü sistemdir. Her gömülü sistem ağa bağlı olmak zorunda değildir; örneğin bir mikrodalga fırının denetleyicisi gömülüdür ama IoT cihazı olmayabilir.
Gerçek zamanlı sistem ne demektir?
Doğruluğu yalnızca sonuca değil, sonucun belirli bir süre içinde üretilmesine de bağlı olan sistemdir. Frenleme ya da hava yastığı denetimi gibi uygulamalarda gecikme hata sayılır. Bu sistemler öngörülebilir zamanlama için kesmeleri ve gerçek zamanlı işletim sistemlerini kullanır.
İlgili rehberler
İlgili eğitimler
Kategori: Üretim, Kalite ve Endüstri 4.0, Yazılım Geliştirme