Gömülü sistemler, özel amaçlar için kullanılmak üzere tasarlanmış, sadece beklenilen görevleri yerine getirmeye programlanmış aygıtlardır. Belirli bir amaca yönelik olarak tasarlandıkları için, boyutları ve maliyetleri küçüktür. Taşınabilir müzik çalarlardan uzay araçlarına kadar hemen hemen her yerde gömülü sistem örnekleri bulabiliriz.
Kısaca tarihine göz atalım: MIT Instrumentation Laboratory‘da Charles Stark Draper tarafından geliştirilen “Apollo Guidance Computer”, ilk kayda değer örnektir. Bu araç, aya yapılan yolculuklar için kullanıldı. 1960’lı yıllarda, bütünleşik devrelerde (IC-integrated circuits) yapılan yenilikler ve kolaylıklar sayesinde, gömülü sistemlerin maliyetinde büyük düşüş oldu. Ayrıca, 1980’lerin ortalarında harici olarak kullanılan sistem parçaları, işlemci ile beraber aynı yonganın (çipin) içine girmeye başladı. Bunun sonucu olarak boyutta ve gömülü sistemlerin maliyetinde çok büyük düşüşler oldu. Bu tip tümleşik
Gömülü sistemlerin kullanıldığı yerlerden PDA
devrelere mikroişlemci yerine mikrokontrolör dendi ve gömülü sistemlerin yaygın bir şekilde kullanımı mümkün oldu. Günümüzde kullanılan gömülü sistemlerden birkaçı şöyle:
Günümüzde, gömülü sistemlerden daha akıllı olması gerekenleri mikroişlemciler ile kontrol etme eğilimi çok yaygındır ve büyük bir hızla da yayılmaktadır (Buradan da mikroişlemcilerin sadece bilgisayarlarda kullanılmadığını anlıyoruz). Bilgisayarlardan farklı olarak, gömülü sistemlerde yarı kalıcı yazılımlar kullanılır. Cihazın içinde gömülü bulunan bu yazılımlara “Firmware” denir. Bu yazılımlar kişisel bilgisayarlardakilere oranla daha dikkatli geliştirilir.
Bir ATM makinası
Çünkü daha belirgin bir amaca hitap eden yazılımlardır ve çalıştırdıkları donanım, bu yazılımları uzun süre hatasız çalışacak varsayımıyla üretilir. Bunun yanında, gömülü sistem her an ulaşabileceğimiz bir yerde olmayabilir (bir uzay aracında ya da petrol kuyusunun dibinde). Bu yazılım, sistemin hafızasında saklanır. Mikroişlemciler ve onun bağlı olduğu bütün elektrik, elektronik, mekanik, vs. alt sistemler ise donanımı oluştururlar. Mikroişlemci hafızadan yazılımı okur, ne demek istediğini anlar ve çalıştırır. Bir gömülü sistemin kullandığı mikroişlemcilerin sayısı genelde bu sistemin karmaşıklığı ya da sahip olduğu alt sistemlerin sayısı ile doğru orantılı olarak artar.
Gömülü sistemlerin genelde işletim sistemleri yoktur ya da özelleşmiş gömülü işletim sistemleri bulunabilir. Bunlara genelde gerçek-zamanlı işletim sistemleri (RTOS: real-time operating system) adı verilir.
Biraz da gömülü sistemlerin nasıl tasarlandığına değinelim. Öncelikle belirtmek gerekir ki, yukarıda da bahsettiğimiz gibi, mikroişlemci bulunduran gömülü sistemler hem yazılım hem donanım içerirler ki bu da işleri iyice zorlaştırır. Yazılım grubu ile donanım grubunun hem bireysel olarak, hem de sistem bakımından iletişim içinde olmaları gerekir. Bu da grupların bir arada çalışabilmeleri ve kullandıkları programlama dillerinin birbirlerininkini anlaması gerekiyor demektir. Bunun için özellikle C++ ve özel kütüphaneler kullanılmaktadır. Bilgisayar programcıları gibi, gömülü sistem tasarımcıları da derleyici, hata ayıklayıcı ve çevirici kullanırlar. Bunun yanında bazı hazır araçlar da kullanılır. Gömülü sistem tasarımlarında biri başlangıç kodu bulunur. Bu kod başlangıçta bütün kesmeleri (interrupt) devre dışı bırakır, sistemi kontrol eder ve uygulama yazılımını başlatır. Yazılım sürecinde çeşitli denetlemeler kullanılabilir. En yaygınlarından biri LED’leri kullanmaktır. Hata ayıklama işi ise genellikle bir devre emülatör ya da mikrokontrolör tarafından çalışan mikrokodu kesebilecek bir çeşit hata ayıklayıcı yardımıyla yapılır. Sistem çok kapsamlıysa daha farklı araçlar kullanılabilir.
Bunların yanında kendi kendini test edebilen gömülü sistemler vardır. Bunlar; CPU, RAM ve program belleğinin test edilmesi, batarya, giriş–çıkış ve çevre aygıtlarının testi, kablo, güvenlik, kimyasalların kontrolü gibi testleri kendi kendine yapabilen sistemlerdir.
Gömülü sistemler çok farklı mimarilerle karşımıza çıkabilir:
Yeni nesil bir cep telefonuBu tekniklerin dışında başka teknikler de kullanılmaktadır (Preemptive tasks, Office-style operating systems... gibi).
Sonuç olarak, gömülü sistemlerle her yerde karşılaşabiliriz.Masamızın üzerindeki küçük bir mp3 çalardan otomobillere, uydulardan yerin derinliklerindeki aletlere kadar her yerde gömülü sistemler kullanılmaktadir. Hem yazılım hem de donanım barındıran -genellikle- küçük ama önemli işler yapan, gün geçtikçe teknolojiyle karşılıklı olarak birbirlerini geliştiren sistemlerdir.
| Yazarın Üslubunu Beğendiniz mi?: | ||
| Yazının İçeriği Yeterli mi?: | ||
| Konu İlginizi Çekti mi?: |
Bu derginin içeriği, Creative Commons lisansı ile korunmaktadır.
Kaynak göstermek ve link vermek şartıyla ticari olmayan amaçlarla yazılarımızı kullanabilirsiniz.
©2007-2008 ODTÜ Bilgisayar Topluluğu