Haber - Bilgi Paylasımı

hbrf3

Gömülü Sistemler

Endüstriyel otomasyon, gömülü sistemler (embedded systems), PLC, mikrodenetleyici, ASIC ve gömülü sistemler için yazılım geliştirme teknikleri hakkında genel bilgi sahibi olabileceğiniz bir makale.

Endüstriyel otomasyon

Endüstriyel BölgeOtomasyon yada endüstriyel otomasyon ('automation' eski yunancada 'self dicated') endüstriyel makinelerde ve proseslerde insan operatorlerin yerini almasiyla bilgisayarın kullanılmasidir. Mekanikleşmede bir adımdır. Otomasyonun görünen yüzü endüstriyel robotiktir. Bazi avantajlari: tekrarlanabilirlik, daha iyi kalite kontrol, israfın engellenmesi, yeni iş sistemleri ile bütünleşme, üretimin artması ve insana dayalı iş gücünün azaltılmasıdır. Bazı dezavantajlar ise yüksek başlangıç maliyetleri ve sürekli bakım maliyetleridir.

1960'lardan itibaren bilgisayar sistemleri endüstriyel otomasyonda kullanılmaya başlanmıştır. Otomasyonda kullanılan güçlendirilmiş özel bilgisayarlara genelde PLC (Programmable Logic Controller/Programlanabilen Mantık Denetleyicisi) adı verilir. Bu bilgisayarlar sensorler ile girislerinden veri alip, cikislari ile olayları tetikler ve sistemleri harekete geçirir.

Endüstriyel Robot

İnsan-makine arayüzleri (Human-Machine Interface HMI) genelde PLC'ler ile haberleşmek için kullanılır. Ör: sıcaklık ve basınç değerlerinin görüntülenmesi ve ayarlanması gibi.

Otomasyonun önemi sosyal konular içinde büyüktür. Bunların arasında en önemlisi, otomasyonun iş ve işsizliğe olan etkisidir.

 

 

Gömülü Sistemler

Bir gömülü sistem esasında, kontrol ettiği cihazla tümleşmiş özel amaçlı bir bilgisayar sistemidir. Gömülü sistemlerin pc'lerden farklı olarak bazı özel gereksinimleri ve ön tanımlı görevleri yerine getirebilme kabiliyetleri vardır.

Gömülü sistemlere örnekler:
-atm cihazları (automatic teller machines)
-cep telefonları
-network ekipmanları (router, firewall vs.)
-bilgisayar yazıcıları
-disk sürücüleri
-motor denetleyicileri ve abs sistemleri
-ev otomasyonu ürünleri (termostat, klima, güvenlik sistemleri)
-elektronik ev eşyaları (mikrodalga fırın, çamaşır makinasi, tv, dvd player)
-savunma sistemleri, uçaklarıdaki ve füzelerdeki uçuş kontrol sistemleri
-medikal ekipmanlar
-ölçüm sistemleri (osiloskop, spektrum anizörü, enerji analizörü)
-kişisel sayısal asistanlar (pda)
-endüstriyel otomasyon ve izleme sistelmerindeki plc'ler
-playstation tarzı oyun konsolları

Üzerinde CMOS kamera bulunan bir gömülü sistemGömülü sistemlerin en önemli özellikleri düşük güç tüketimi ve düşük maliyetleridir. Çünkü pek çok gömülü sistem 10bin yada milyon adetlerde üretilir. Gömülü sistemlerde genelde yavaş bir işlemci ve küçük hafıza boyutları kullanılır. Sebep : tabiki maliyetleri düşürmek.

Yavaşlık sadece işlemci saat hızının düşmesi anlamında algılanmamalıdır. Bilgisayar sisteminin tüm mimarisi sadeleştirilerek ve basitleştirilerk maliyetleri düşürmek için gömülü sistemlerde kullanılır.

Gömülü sistemlerdeki yazılımlar, donanım kısıtlarına rağmen genelde gerçek-zamanlı (real-time) çalışırlar. Genelde işletim sistemi, disk sürücüsü, klavye yada ekranları olmaz. bir flash sürücü mekaniksel olarak dönen bir disk sürücüsünün yerini, basit bir kaypad bir klavyenin yerini, küçük bir lcd'de pcdeki ekranın yerini alabilir.

Firmware, gömülü donanımlarda çalışan yazılıma denir ve rom/flash hafıza yada IC (tümleşik devre) yongası içinde bulunabilir.

Gömülü sistemler, 100% güvenilir, hata yapmayan, yıllarla ölçülebilen uzun zaman peryodlarında çalışabilecek şekilde tasarlanır. Burda yazılımın önemli çok büyüktür. Donanımdaki hatalar kolaylıkla tespit edilirken, firmware hataları daha zor ayıklanabilir. Ayrıca yazılımın donanımı tekrar başlatma (reset/restart) özelliği mutlaka bulunmaldır çünkü gömülü sistemleri insanların ulaşamayacağı yerlerde çalışmak zorunda olabilir (petrol kuyusu içindeki bir sistem yada bir uzay aracındaki veya uydudaki bir sistem gibi). Yıkıcı bir veri bozulması durumunda firmware kırılacak ve sistem duracaktır. Bu gibi durumlarda genelde yazılımdaki önlemlerin yanı sıra yazılımı destekleyen donanımsal bazı restart sistemleri geliştirilmiştir. Bekçiköpeği zamanlayıcısı (watchdog timer) yazılımda gelen bir hata durumunda sistemi yeniden başlatarak prosesin aksamasını önlemektedir.

Gömülü sistemler pek çok CPU mimarisinde tasarlanabilir. Şu an için Intel/AMD x86 mimarisi, apple/motorola/ibm powerpc ise apple machintosh mimarisi üzerinedir.

Daha genel bir gömülü sistem konfigrasyonu ise yonga üzerinde sistemlerdir (system on chip). Bir uygulamaya özel tümleşik devre (application-specific integrated circuit/ASIC), IC tasarımna entellektüel özelliğin dahil edilerek üretilmesiyle elde edilen işlemcidir.

Tipik bilgisayar programcıları gibi gömülü sistem tasarımcıları da derleyici, assembler ve hata ayıklayıcı kullanırlar. Bu yazılım araçları pek çok kaynaktan elde edilebilir: bu pazarda özelleşmiş yazılım firmlarından, GNU yazılım geliştirme araçlarından port edilerek (cross-compiler: http://www.kegel.com/linux/embed/ ), eğer gömülü sistemdeki işlemci pc'dekinin bir türevi yada akrabasıysa geleneksel pclerdeki yazılım araçlarıda kullanılabilir.

Gömülü sistemlerin genelde işletim sistemleri yoktur yada özelleşmiş gömülü işletim sistemleri bulunabilir. Bunlara genelde gerçek-zamanlı işletim sistemleri (RTOS) adı verilir.

Hata ayıklama genelde dahili devre emulatorü (in-circuit emulator/ICE) veya mikrodenetleyicinin dahili mikrokodlarına kesme yapabilen bazı ayıklayıcılarla yapılır.

İlk kayda değer modern gömülü sistem apollo yolgösterme bilgisayarıdır (Apollo Guidance Computer). Ay uçuçlarında görev yapan CSM ve LM modüllerinde rehberlik sistemi olarak çalışmışlardır. Esasında bu sistem Apollo projesinin en riskli aldımlarından biridir. Bunun yaninda, ilk endüstriyel seri üretim (mass production) gömülü sistemler ise Minuteman misillerinde kullanılmıştır.

Apollo Guidance Computer

Gömülü sistemlerinden tasarımlarında mikroişlemci yada mikrodenetleyici kullanılır. Her gömülü sistemde bir başlangıç kodu (start-up code) bulunur. Açılış esanısında kesmeleri devre dışı bırakır, elekronik sistemi yapılandırır, bilgisayar sistemini (ram, cpu ve yazılımı) test eder ve ardından uygulama yazılımının kodlarını başlatır. Kısa zamanlı besleme hatalarından dolayı, gömülü sistem kendini tekrar başlatır. Genelde yeniden başlatma işlemi saniyenin onda biri kadar bir sürede gerçekleşmelidir.

Pek çok tasarımcı yazılım kontrolünde olan LEDleri kullanarak geliştirme esnasında hataları göstererek üretimde hata ayıklamayı kolaylaştırmışlardır. Yaygın bir kullanım, elektronik sistem reset anında tüm LEDleri kapalı duruma getirir. Uygulama her bir başarımdan sonra ilgili LEDi açar veya duruma göre yanıp sönme efekti verebilir (blink).

Gömülü yazılım mimarileri olarak pek çok farklı yöntem bulunmaktadır.

PICMicro ailesinden çeşitli MCU'lar- Kontrol döngüsü : Bu tasarım metodunda yazılımın basit bir döngüsü bulunur. Bu döngü alt rutinleri çağırır. Her bir alt prosedür yazılımın veya donanımın bir parçasını yönetir. Kesmeler (interrupt), yazılımın kalan kısmı tarafından okunan sayıcıları veya bayrak değişkenlerini değiştirirler.

Basit bir API, kesmeleri aktif veya pasif yapar. İçiçe geçmiş alt prosedürlere çağrı yapar ve dıştakine geri doner. bunlar basit bir çekirdek (kernel) oluşturmanın temel adımlarıdır.

Zamanlayıcılar da ise belli peryotlarda tetiklenen kesmeler vardır. Bir zamanlayıcının süresi dolduğu zaman ilgili alt prosedür çalıştırılır yada bir bayrak değişkeni set edilir.

Donanımların tepkilerimi mutlaka yazılımsal zamanlayıcılar ile kontrol edilmelidir. Donanım sistemleri trilyonda bir defa da olsa hata yapabilirler. ama seri üretimdeki cihazlar için, yazılım ile donanımın kontrol edilme durumu yoksa bu büyük bir sıkıntı oluşturabilir.

Pek çok tasarımcı her bir I/o birimini her döngüde bir kez okumayı ve sonucu bir mantıksal değişkende tutmayı önerir.

Bazı tasarımcılar ise kendi durum makinelerini tasarlayarak sadece bir yada iki şeyi her durum için kontrol eder.

Bu metodun en zayıf yanı, sitemin her hangi bir donanım tetiklemesine karşı ne kadar zamanda tepki verileceğinin garanti edilememesidir.

Interruptlar zorunlu kalınmadığı sürece devre dışı bırakılmamalıdır.

Bir diğer zayıf yan ise, sisteme yeni özellikler ekleneceği zaman yapının aşırı karmaşıklaşmasıyla kodlaanın zorlaşmasıdır. uzun zaman alan algoritmalar dikkatli bir biçimde parçalanarak ana döngü içinde sadece küçük bir parçanın bir miktar çalışması sağlanabilir.

Bu sistemin bir avantajı basit olması ve suçun yüklenebileceği bir işletim sistemi olmamasından dolayı yazılan yazılımın çalışacağının garanti edilmesidir.

Mikrodenetleyici kullanan bir oyuncak robot

-Nonpreemptive multitasking: Bu teknik yukardaki tekniğe çok benzemektedir. tek fark döngünün bir API içinde saklı olmasıdır. Görev dizileri tanımlanır ve her bir görev kendisine ait olan altrutin yığınını alır. sonrasında bir görev boşta durumdayken, özel bir alt prosedur olan idle rutinini çağırır (genelde pause,wait veya yield tarzı).

Bu mimaride bir olay kuyruğu bulunur, bir döngü bu olayları işi bitince kaldırır ve gerekli olan alt rutinleri çağırır.

Avantaj ve dezavantjarları kontrol döngüsü yöntemininkilere benzerdir. ancak sisteme yeni bir yazılım eklemen daha kolaydır.

-Preemptive zamanlayıcılar (timers): Yukardaki sistemlerden birini baz alırız ve bir zamanlayıcı kesmesiyle alt yordamları çalıştıran bir timer ekleriz.

-Diğer teknikler:

-Preemptive tasks
-Office-style operating systems
-Exotic custom operating systems

 

Rifat Kurban, rk {at} rifatkurban . name . tr

Kaynak: http://www.wikipedia.org

Bugün 8 ziyaretçi (25 klik) kişi burdaydı!

Bu web sitesi ücretsiz olarak Bedava-Sitem.com ile oluşturulmuştur. Siz de kendi web sitenizi kurmak ister misiniz?
Ücretsiz kaydol