Merhaba BilişimDergi okurları. Bu yazı, sizlere birtakım özel görevler için tasarlanmış bir sistemden bahsedecek. Her bilgisayar kavramının yolu, aslında gözümüzde canlanan bilgisayara mı ulaşır? Bir klavye, bir mouse, işlemci vs. Bunun için "Bilgisayar nedir?" diye sormak bile gerekebilir. Mikroişlemcisi olan her şey bilgisayar mıdır? Bu sorunun cevabını bize gömülü sistemler verecek.
Bir mühendislik probleminin çözümüne yönelik tasarlanmış veya programlanmış bir bilgisayarın ve çevre birimlerinin oluşturduğu bu sistemler, bu tanıma göre de yazılım ve donanımın entegresi sonucu ortaya çıkarlar. Öyle ki, sistemin amacına yönelik olarak donanımlar farklı olup donanımları denetleyen yazılımlar aynı olabilir ya da benzer donanımlara farklı işlevler kazandırmak için yazılım denetimi farklı olabilir.
Belirli bir amaç için, tasarım mühendislerine de büyük iş düşerek minimize edilen bu sistemler, belirli bir görevi yerine getirmek için mikroişlemci ya da mikrodenetleyici gibi programlanabilen devre elemanlarıyla tasarlanırlar. Bunlar, bir bilgisayar sistemi oluyor haliyle. Şöyle de diyebiliriz: Kontrol edilmesi gereken bir mühendislik ürünümüz varsa ve bu kontrol altındaki ürüne bir de bilgisayar katılıyorsa bu bir gömülü sistemdir. Yani bu sistemin esas özelliği, ona gömülü olarak kullanılan bilgisayarın hesaplayabilen değil de kontrol eden nitelikte olmasıdır.
İlk örnek, aya yolculuk sırasında rehber olarak kullanılan bilgisayar Apollo Guidance Computer idi. 1961'lerdeki örneğini, Minuteman füzesinin hedefi daha hassas bulması için yeniden programlanabilir olmasını ve bilgisayarın kablo ve bağlantılardan tasarruf sağlaması amacıyla verdi. 70'lerde sistemin mikroişlemcisi harici bellek ve küçük lojik tasarımlara ihtiyaç duysa da fiyatları düşmeye başlamıştı. 80'lerde ise bu harici parçalar da bir entegre devrenin içine girdi, mikrodenetleyici adını alarak fiyatların daha da düşmesini sağladı.
Firmware
Programlanabilen bu "mikro" elemanların yazılımları, disk sürücüleri yoksa firmware denilen, sayısal veri işleme eğilimli her tür donanımsal parçanın, belirlenen işlevleri yerine getirmesi için oluşturulur. Firmware aygıt yazılımları, salt okunur belleklere (ROM) veya flash bellek yongalarına gömülüdür. İşlemler, değişken hafızaya depolanır. Endüstride gömülü yazılım ya da düşük seviyeli yazılım da denmektedir. Bilgisayarın donanım bileşenlerinin, değişebilen ya da değişemeyen firmware'ları da bulunur.
Bu durumda, firmware ile donanımı ayrı düşünmek pek mümkün olmuyor. Üretim için, firmware ile donanım arasında bir arayüz oluşturmak gerekir. Bir donanım mühendisi, temel dijital lojikle alakadar olmalı ve chip tasarımı konusunda pratiği olmalıdır. Bununla birlikte firmware mühendisi chip geliştirme işlemlerine ve C koduna aşina olmalı; VHDL, Verilog gibi donanım dillerini okuyabilmelidir. Donanım mühendislerinin ürettiklerini kullananlar da firmware mühendisleridir. Bu şekilde ortaklaşa çalışılarak bu sistemler elde edilir. Bu şekilde elde edilen sistemler, uzun zamanlar hatasız şekilde çalışacağı varsayılan donanımın içinde bulunurlar. Kendini yeniden başlatabilmesi, yazılımının yenilenmesi gereklidir. Bu da "watchdog timer" , ilginç Türkçe çevirisi "bekçi köpeği zamanlayıcısı" sayesinde sağlanıyor.
"Çoğu insan, bir bilgisayarı, klavyesi, monitörü, disk sürücüleri vb. ile tanır" demiştik fakat gömülü bilgisayarlar bunların hiçbirine sahip olmayabiliyor. Evlerimizde, iş yerlerimizde bunun pek çok örneğini de verebiliriz: Mikrodalga, buzdolabı, hırsız alarmları, çamaşır makinesi, oyuncaklar, yazıcılar, tarayıcılar, fotokopi makineleri, endüstriyel robotlar vs.
Sıradan bir buzdolabını düşünelim. Buzdolabının sıcaklığının belli bir dereceye kadar stabilitesini sürdürmeye ihtiyacı vardır. Bunun için, öncelikle kendi iç sıcaklığına olan duyarlılığının olması gerekir. İç sıcaklığını ulaşılması gereken sıcaklıkla karşılaştırır. Sıcaklık ölçümü için bir ya da daha fazla alıcıya, veri edinmek için devre parçalarından oluşmuş bir sisteme ihtiyaç duyar. Ayrıca yüksek basınç sağlamak, soğuk hava üflemek için kompresör de gerekiyor. Bazı veri işlemlerine de, ölçülen sıcaklığın sinyalini ve gerekli sıcaklığı gösteren çıktı olarak elde etmek için ihtiyaç duyulur. Kompresör kontrolü, düşük seviyeli bir girdiyi alan ve geçerli elektriksel sürücüye dönüştürmek için elektronik arayüz gerektirir. Bu kontrol işlemi, bilindik bir elektronik devreyle veya küçük bir gömülü bilgisayarla yapılabilir. Böyle bir bilgisayar, şekildeki gibi minimal bir kontrol işlemiyle yapılabilir. Şekilde değer okumakla ve sistemin performansını kontrol etmek amacıyla çıktı üreten bir "embedded computer" bulunuyor. Akıllı ekranla, dijital formdaki bir sinyal de eklenebilir ve daha gelişmiş bir kontrol sistemi elde edilebilir. Bu şekilde bile, kullanıcının buzdolabının içinde bir bilgisayar olduğu hakkında pek bir fikri yoktur.
Şimdi de bir otomobil kapısını inceleyelim. Yine burada da, sistemin gereksinimlerini yanıtlayabilmek için pencere ve kilitle ilgili iki erişim düzeneği ve kapı, pencere kilitleriyle ilişkili bazı alıcılar bulunur. Şimdi bir kapımız ve elektronik kontrole tabi tutulan bir erişim sistemimiz var. Sürücü araç kalkışını denerken kapı kilitli değilse merkezi kilitleme kendini gösterir ve alarm duyulur. Böylece otomobilin diğer önemli fonksiyonlarıyla kapı kontrolünün bağlantısını sağlayan azımsanamayacak bir ağ etkileşimiyle karşı karşıya kalmış oluruz.
Rezistansıyla, termistörüyle, alıcısıyla, kondansatörüyle, diyoduyla, transistörüyle, en önemlisi mikroişlemcisiyle ve acı tatlı hikayeleriyle hakkında özet bilgileri ve örnekleri bulunan gömülü sistemler maceramızın sonuna gelmiş bulunuyoruz. Yeni sayıda görüşmek üzere.
Kaynaklar:
- Designing Embedded Systems with PIC Microcontrollers - Tim Wilmshurts.