Gömülü Sistemler - Nüve Forum
Nüve Forum > akademik > Mühendislik Fakültesi > Mühendislik Bilimleri Bölümü > Gömülü Sistemler
Mühendislik Bilimleri Bölümü hakkinda Gömülü Sistemler ile ilgili bilgiler
Gömülü sistem örneği bir yönlendirici. İşaretli parçalar; mikroişlemci- 4, RAM- 6 ve flash bellek- 7 Gömülü sistem, bilgisayarın kendisini kontrol eden cihaz tarafından içerildiği özel amaçlı bir sistemdir. Genel maksatlı,
Gömülü sistem örneği bir yönlendirici.
İşaretli parçalar; mikroişlemci- 4, RAM- 6 ve flash bellek- 7
Banka ATM***8217; leri
Eylemsiz rehber sistemleri, uçuş kontrol donanım/yazılımı ve uçak ve füzelerdeki diğer tümleşik sistemlerden oluşan havacılık elektroniği modulleri
Router (yönlendirici), timeserver ve firewall (güvenlik duvarı) gibi bilgisayar ağ ekipmanları
Disket sürücüler (floppy diket sürücüler ve har disk sürücüler)
Çok fonksiyonlu kol saatleri
İnternet radyo alıcıları, TV set top box, ve dijital uydu alıcılar gibi multimedya uygulamaları
PDA***8217;ler gibi küçük avuç içi bilgisayarlar
Endüstriyel otomasyon ve izleme için PLC***8217; ler
İlk kayda değer modern gömülü sistem, Apollo Rehber Bilgisayarı, Bilgisayar Tarih Müzesi
Kayda değer ilk gömülü sistem MIT Instrumentation Laboratory ***8216;da Charles Stark Draper tarafından geliştirilen Apollo Guidance Computer olmuştur. Aya yapılan yolculuklarda iki tane kullanılırdı ve komuta modülü ve LEM***8217; in eylemsiz rehber sistemlerini çalıştırıyordu.
İlk kitlesel gömülü sistem üretimi 1961 yılında Minuteman füzesi için yapılan Autonetics D-17 rehber bilgisayarı oldu. Ayrık tranzistör lojiğinden yapıldı ve ana bellek için bir hard diski vardı. 1966 yılında Minuteman II üretime girdiğinde, D-17 ilk defa yüksek hacimli tümleşik devrelerin kullanıldığı yeni bir bilgisayara yerini bıraktı. Bu program dörtlü nand kapılı IC***8217; lerin birim fiyatını 1000$***8217; dan 3$***8217;a çekti ve ticari kullanımlarının yolunu açtı.
Maliyetin dikkate alınmadığı 1960***8217; lardaki bu ilk uygulamalardan itbaren gömülü sistemlerin fiyatları düşmeye başladı. Bunlarla birlikte işlem gücü ve fonksiyonellikte***8217;de yükseliş oldu.
İlk mikro işlemci hesap makineleri ve diğer ufak sistemlerde kullanılan intel 4004 oldu. Çalışabilmesi için harici bellek çipleri ve harici destek lojiklerine ihtiyaç duyuyordu. Intel 8080 gibi daha güçlü mikroişlemciler askeri projelerde geliştirildi ama diğer kullanıcılara da satıldı.
1970***8217; lerin sonunda 8-bit mikroişlemciler standart olmakla birlikte çözümleme ve giriş/çıkış işlemleri için genellikle harici bellek çipleri ve lojiklere ihtiyaç duyuyorlardı. Öte taraftan, fiyatlar hızla düşüyor ve uygulamalar küçük gömülü sistemleri lojik tasarımların içine sokuyordu. Görünebilir uygulamaların bir kısmı enstrümantasyon ve pahalı aygıtlardı.
1980***8217; lerin ortalarında harici olarak kullanılan sistem parçaları, işlemci ile beraber aynı ç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 devrelere mikroişlemci yerine mikrokontrolör dendi ve gömülü sistemlerin yaygın bir şekilde kullanımı mümkün oldu.
Mikrokontrolör maliyeti bir mühendisin 1 saatlik maaşının altına indi ve bu gömülü sistemlerin sayısını ve gömülü sistemlerde kullanılmak üzere farklı firmalar tarafından üretilen parçaların sayısının patlamasına neden oldu. Örneğin, pek çok yeni özelliğe sahip IC***8217; ler, geleneksel paralel programlama arayüzleri yerine mikrokontrolörlere daha az sayıda arabağlantı sağlayan seri programlama arayüzleri ile beraber gelmeye başladı. I2C ***8216; nin çıkış zamanı da bu döneme rastlamaktadır. Mikrokontrolörler 1$***8217; ın altına düştüğünde, voltmetre ve değişken kapasitör gibi pahalı analog elemanların yerlerini küçük bir mikrokontrolör ile kontrol edilen dijital elektronik elemanlara bırakması mümkün oldu.
80***8217;lerin sonundan itibaren, tüm elektronik cihazlar için gömülü sistemler bir istisna değil bir standart haline geldi ve bu trend halen devam etmektedir.
Gömülü sistemler en geniş manasıyla bilgisayar sistemidir. Gömülü sistemlerin örnekleri taşınabilir müzik çalıcılardan uzay araçlarındaki altsistemler için kullanılan gerçek zamanlı kontrol sistemlerine kadar uzanır. En ticari gömülü sistemler, düşük maliyette bir takım işleri gerçekleştirmek için tasarlanıyor. Hepsi olmamakla birlikte büyük çoğunluğunun gerçek zamanlı sistem kısıtlamalarını karşılaması gerekir. Bazı fonksiyonlarının çok hızlı olması gerekebilirken, diğer pek çok fonksiyonunun kesin zamanlama gereksinimi olması gerekmemektedir. Bu tip sistemler, gerçek zaman kısıtlarını sistem gereksinimlerine bağlanmış özel amaçlı yazılım ve donanım kombinasyonları ile karşılarlar.
Gömülü sistemleri hız ve maliyet ile karakterize etmek zor olmakla beraber, maliyeti azaltan yüksek hacimli sistemler öncelikli tasarım hedefidir. Genellikle gömülü sistemlerin düşük performans gereksinimleri olur. Bu sistem donanımını, maliyeti düşürmek için basitleştirme olanağı tanır. Mühendisler gerekli fonksiyonları sağlayan ***8220;yeteri kadar iyi***8221; olan donanımları seçerler.
Örneğin, uydu televizyon için dijital bir set-top box***8217; ın saniyede onlarca megabit veri işlemesi gerekir ama bu işlemlerin büyük bölümü çok kanallı dijital videoyu ayrıştıran, yönlendiren ve çözen özel tümleşik devreler tarafından gerçekleştirilir. Gömülü CPU bu işlemi kurar ve set box***8217;ın kullanıcı ara yüzü gibi görsel öğelerini ekrana basar. Gömülü işlemcilerin hızları artıp, fiyatları ucuzlarken, yüksek hızlı veri işlemede öncülüğü daha fazla ele almaktadırlar.
Düşük hacimli gömülü sistemler için kişisel bilgisayarlar, programları sınırlayarak ya da işletim sistemini gerçek zamanlı işletim sistemiyle değiştirerek kullanılabilir. Bu durumda özel amaçlı donanım bir ya da daha fazla yüksek performanslı CPU ile değiştirilebilir. Bazı gömülü sistemler istenen görevleri yerine getirmek için, yüksek performanslı CPU, özel donanım ya da büyük belleklere ihtiyaç duyabilir.
Gömüllü sistemler, yıllarca hatasız bir şekilde çalışacağı varsayılan donanımların içinde bulunur. Bu yüzden gömülü sistem içindeki yazılımlar, kişisel bilgisayar içinde olanlardan daha dikkatli bir şekilde geliştirilip test edilir. Pek çok gömülü sistemde, disket sürücü, anahtar ya da düğme gibi mekanik parçaların kullanımından sakınılır çünkü bu tip parçalar flash bellekler gibi statik parçalara kıyasla daha az güvenilirdir.
Gömülü Sistemlerin Tasarımı
PARC, Apple Computer, Boeing ve HP***8217; de bulunan arayüz tasarımcıları, kullanıcı eylemlerininin tipinin sayısının azaltılması gerektiği prensibini keşfettiler. Gömülü sistemlerde bu prensip daha düşük maliyetlere yönelik çalışmalarla birleştirilmektedir .
Kullanılan bir başka yöntem mode***8217; ların kullanıcı ekranında açıkça görünür hale getirilmesidir. Eğer bir arayüzün modları varsa, her zaman bir yöntemle ya da arayüzün kendisi tarafından otomatik olarak tersine çevrilir. Örneğin, Boeing***8217;in standart test arayüzü bir düğme ve birkaç ışıktan oluşur. Düğmeye basıldığı zaman ışıklar yanar ve bırakılması ile birlikte hata mesajı veren ışıklar yanar. Kullanılan etiketler yalın bir İngilizce ile hazırlanmıştır.
Gömülü tasarımlarda kullanılabilecek ARM, MIPS, Coldfire/68k, PowerPC, X86, PIC, 8051, Atmel AVR, Renesas H8, SH, V850, FR-V, M32R vb. gibi pek çok işlemci mimarisi bulumaktadır.
Büyük hacimli gömülü sistem tasarımlarında ise genellikle tek bir çip üzerinde toplanmış sistemler tercih edilir ve bunun içinde uygulamaya yönelik tümleşik devre tasarımları kullanılır. Bu tasarımlar genelde CPU dahil tüm lojik tasarımlar FPGA kullanarak gerçeklenebilir.
Gömülü pazarda uzmanlaşmış yazılım şirketleri
GNU yazılım geliştirme araçlarından çalışılacak ortama taşınarak (bkz. çapraz derleme)
Bazen de işlemci mimarisi kullanılacak gömülü işlemci mimarisine yakın olan kişisel bilgisayarlarda kullanılan yazılımlardan faydalanılabilir.
Sıklıkla kullanılan bir araç ***8220;in-circuit emulator***8221; (ICE) daha modern tasarımlarda ise gömülü bir hata ayıklayıcı. Bu hata ayıklama aracı gömülü kod geliştirmede kullanılan temel yapılardan biridir. Mikroişlemci***8217; ye yapılan bağlantı ile sistemde geliştirilen kodların çabuk ve hzılı bir şekilde yüklenmesini ve ayıklanmasını sağlar.
Gömülü bağlayıcılar***8217; ın (linker) kodun boyutunu ufaltmak ve çalışma zamanını azaltmak için pek çok optimizasyon özellikleri vardır. Bunlara ek olarak data overlays, ve bank switching gibi optimizasyon teknikleri de sağlayabilmektedirler.
Kullanılan bir diğer araç ise gömülü uygulamaya bir CRC programı eklenmesi böylece gömülü sistem program verisini çalıştırmadan önce kontrol edebilir.
İsimlendirilmiş adres alanları
İsimlendirilmiş depolama sınıfları
Temel I/O donanım adresleme
Hata ayıklama genellikle bir devre emülatör ya da mikrokontrolör tarafından çalışan mikrokodu kesebilecek bir çeşit hata ayıklayıcı tarafından gerçekleştirilebilir. Mikrokod kesme hata ayıklayıcıya üzerinde sadece CPU***8217;nun çalıştığı donanım üzerinde çalışma imkanı verir. CPU tabanlı hata ayıklayıcılar bilgisayar donanımlarını CPU açısından test etmek ya da hata ayıklamak amacı ile kullanılabilir. Bunun yanında geliştiriciler, yüksek seviyeli dillerle kesme noktası ve tek adımlama kullanarak hata ayıklamalıdır çünkü bu özellikler oldukça yaygın olarak kullanılmaktadır. Bunlara ek olarak basit log kayıtlarının tutulması gerçek zamanlı eylemlerin hata ayıklamasında faydalı olur.
Gömülü sistemin karmaşıklığı arttıkça üst seviye araçlar ve işletim sistemleri tasarımların içine girmeye başlar. Cep telefonları, pda***8217; ler ve diğer tüketici bilgisayarları ileri düzey yazılım ve işletim sistemleri gerektirir. Bu tip sistemlerde, Linux, NetBSD, OSGi ya da Embedded Java gibi açık programlama ortamları, geniş bir markete satış yapabilmek amacı ile kullanılmalıdır.
Gömülü sistemlerin genellikle bir işletim sistemleri yoktur ya da özelleştirilmiş gömülü işletim sistemleri kullanılmaktadır.
Tüm gömülü sistemlerin bir başlangıç kodu vardır. Kesmeleri iptal eder, aygıtları ayağa kaldırır, bilgisayarı test eder (RAM,CPU, ve yazılım) ve ardından uygulama kodunu başlatır. Pek çok gömülü sistem kısa süreli güç kayıplarından, en son yapılan testler tekrarlanmadan kurtarılabilir.
Tasarımcılar hataları işaret etmesi açısından genellikle LED kullanımını tercih ederler. Genel bir tasarım olarak tekrar başlatma sırasında tüm cihazlara bağlı LED***8217; ler yanmaya başlayacaktır. Daha sonra açılış testi sırasında yazılım, LED***8217; lerin durumunu hata ya da normal haller için değiştirir.
CPU, RAM ve program belleğinin test edilmesi. Bu genelikle sisteme enerji verildiğinde bir kereliğine gerçekleştirilir. Güvenliğin kritik olduğu sistemlerde peryodik olarak ya da belli zaman aşımlarında gerçekleştirilir.
Giriş, çıkış ve çevre aygıtlarının test edilmesi. Komünikasyon, analog ve kontrol sistemleri bu tip testler gerçekleştirebilir.
Batarya ya da ona karşılık gelen enerji kaynağının test edilmesi.
Bağlantı üniteleri arasında gerçekleştirilen iletişim testleri. Üniteler arasında yollanan ve alınan basit mesajlarla sağlanır.
Kablo testleri. Bağlantı pinlerinin doğruluğunu test etmek için yapılır ve özellikle senkronize iletişim sistemlerinde ön plandadır.
Donanım arama testi. Eklenen bir donanım ile ilgili bilgiler kullanıcıya döndürülerek sistem yükleme işlemine yönelik yol gösterme sağlanır.
Tüketilebilinenlerin testi. Sistemde kullanılanların miktarı seviyesi ve pozisyonu hakkında bilgiler döndürür. Yakıt, ya da çeşitli kimyasal maddelerin kontrolü buna örnek verilebilir.
Operasyonel testler. Bu testler sistemin çalışması esnasında yürütülen fonksiyonlara yönelik bir testir ve sistem ayakta iken gerçekleştirilir.
Güvenlik testi. Sistem güvenliği belli bir aralık değerine göre test edilir.
Sistem oldukça güvensiz ya da onarım maksadı ile ulaşılması imkansız. (Uzay sistemleri, denizaltı kabloları,..).
Sistem güvenli bir şekilde kapatılamaz.
Sistem güvensiz durumdayken çalışamaz.