Haz 10

Onlar Her Yerde :Gömülü Sistemler II


Önceki yazımda gömülü sistemlere kullanıcı gözüyle bakmıştık . Bu sefer işin teknik boyutuna biraz daha eğileceğiz. Gömülü sistemlerin tanımını yapmakla işe başlayalım.Genel olarak gömülü sistemler:

“belirli bir fonksiyonu yerine getirmek için tasarlanmış yazılım ve donanım kombinasyonudur” şeklinde tanımlanabilir.

Gömülü sistemleri diğer genel amaçlı bilgisayar sistemlerinden ayıran özelliklerin başında, bu sistemlerin belirli bir amaç için tasarlanmış olmaları gelir. Bir video cihazını kontrol eden gömülü sistem bütün kullanım ömrü boyunca bu işi gerçekleştirecektir. Ancak ev ve işyerlerimizde kullandığımız PC’lerde birçok farklı işlemi gerçekleştirmekteyiz. PC’lerde bu değişik işleri değişik yazılımlarla yapmaktayız. Ancak gömülü sistemlerin içinde çalışan yazılım genellikle “tektir”.

Gömülü sistemler adlarından da anlaşılabileceği gibi genellikle daha büyük bir sistemin içinde “gömülü” olarak çalışırlar. Örneğin bir çamaşır makinesinde birçok mekanik kısım bulunmakla birlikte, bütün bunları kontrol eden bir veya birden fazla mikrodenetleyici tabanlı sistem bulunur. Bu sistemler kullandığımız cihazların “akıllı olmasını” sağlayan, beyin vazifesi gören birimlerdir

Her gömülü sistemin başlangıçta tanımlanan tasarım kriterleri farklı olduğundan, tasarımı da kendine özgüdür. Bir oyun konsolunun içerdiği birimlerle, bir mikrodalga fırının içerdiği gömülü sistemler birimleri birbirinden farklıdır. Ancak genel olarak her gömülü sistem şekildeki birimlere sahiptir:

Gömülü sistemlerin tasarım gereksinimleri şunlardır:

  • İşlem Gücü
  • Bellek
  • Geliştirme Maliyeti
  • Birim Üretim hacmi
  • Beklenilen yaşam süresi
  • Güvenilirlik

Bunlar dışında her sistemin kendine has başka gereksinimleri de olabilir. Örneğin pille çalışacak bir sistemde güç tüketimi de önemli bir kriterdir.

Tasarımlardaki kriterlere göre bu gereksinimlerinden bazıları arasında tercih yapmak gerekebilir. Örneğin karmaşık hesaplamaların gerekli olabileceği sistemlerde yüksek işlem gücü ihtiyacı ön planda olurken, çok büyük miktarlarda üretilecek sistemlerde düşük maliyet daha önemli olabilir.

Gömülü sistemler kullanım alanlarına göre zaman zaman oldukça kritik görevleri yerine getirebilirler. Burada oluşabilecek hatalar büyük mal ve can kayıplarıyla sonuçlanabilir. Bu açıdan bakıldığında bu sistemlerin “güvenilir” ve “hataları tolere edebilir” özellikte olmaları çok önemlidir. Bir mikrodalga fırının ya da bir oyuncağın içindeki sistemin zaman zaman hatalı çalışması çok büyük sorun oluşturmaz; ancak bir uçağın otomatik pilot sistemindeki hata birçok insanın hayatını tehlikeye atabilir.

Bugün dünyada üretilen mikroişlemcilerin / mikrodenetleyicilerin büyük çoğunluğu gömülü sistemlerde kullanılmaktadır. Genellikle 8 bit mikrodenetleyiciler yoğun olmakla beraber, 32 bitlik mikrodenetleyiciler de düşen maliyetleri sonucu artık geniş kullanım alanı bulmaktadır.
Gömülü sistemlerde tasarımcıların kullandığı temel araçlar:

  • Programlayıcılar
  • Hata Ayıklayıcılar (Debuggers)
  • Derleyiciler
  • Emülatörler
  • Tümleşik Geliştirme Ortamları

Gömülü sistemlerin donanım ve yazılım olarak iki ana bölümden oluştuğunu söylemiştik. Burada donanım ve yazılım bileşenleri birbirleriyle sıkı sıkıya bağlı olduğundan tasarım ekibinde bulunan yazılımcı ve donanımcıların bir arada çalışmaları gerekmektedir. Bu anlamda gömülü sistemler için “multi-disipliner” bir alan diyebiliriz. Bu alandaki mühendislerin donanım, yazılım, kontrol sistemleri vs.. gibi birçok alanda bilgi sahibi olmaları gerekmektedir.

Gömülü yazılımların karmaşıklığı artıkça ve aynı anda yapılacak işlemlerin sayısı arttığında değişik yapılara ihtiyaç duyulur. Aslında bir mikrodenetleyici aynı anda sadece bir tek işi yapabilir. Ancak işlemleri mili, mikro hatta nanosaniyeler mertebesinde gerçekleştirdiğinden, birçok işi aynı anda yapıyormuş gibi görünebilir. Genel olarak mikrodenetleyicili sistemlerde bu tür işlemler kesmeler ve zamanlayıcılar sayesinde periyodik olarak gerçekleştirilir. Bu anlamda kesmeler yazılımlarda önemli bir rol oynar.

Gömülü sistemler de ayrıca gerçek zamanlı işletim sistemleri de kullanılır (RTOS – Real Time Operating Systems). Böylelikle tasarımcı donanım ayrıntılarıyla çok uğraşmadan ana işlemleri gerçekleştirmeye odaklanabilir. Arka plandaki görevlerin senkronizasyonu işletim sistemi tarafından gerçekleştirilir.

Çok geniş bir alanı kapsayan gömülü sistemlerin bütün özelliklerini ele almak çok zor olsa da bu yazıda genel özellikleri tanımış olduk. Bundan sonra değişik özellikleriyle gömülü sistemleri tanımaya devam edeceğiz.