Mikrodenetleyici Mimarisi -1- Mikrodenetleyicilere Giriş

Daha önce yazdığımız mikroişlemci makaleleri üzerine tamamlayıcı olarak mikrodenetleyicileri ele almak istedik. Mikrodenetleyici mimarisinden gerek AVR derslerinde gerekse STM32 derslerinde bahsetsek de bu sefer de mikroişlemci mimarisi gibi konuyu bağımsız olarak ele almak istedik.

Mikrodenetleyiciler tek çipte bilgisayar olarak nitelendirilebilir. Mikrodenetleyici adından da anlaşılacağı üzere denetleme işlerini yapan küçük bir elemandır. Mikrodenetleyiciler gömülü sistmelerin en önemli aygıtlarından biri sayılabilir. Mikroişlemci mimarisini anlattığımızda bir bilgisayar sisteminin program hafızası, veri hafızası ve CPU’dan oluştuğunu ve çeşitli saat ve besleme birimleriyle de çalıştırıldığını öğrenmiştik. Mikrodenetleyiciye de küçük bir bilgisayar dediğimize göre bütün bunları tek bir çip içerisinde bulunduracağını anlayabiliriz.

“Bilgisayar gibi bir şey” demediğimize dikkat edin. Küçük bir bilgisayar olarak tanımladık. Bir bilgisayar sistemi illa işletim sistemine sahip, monitörlü ve klavyeli bir kasa olacak değildir. Temelde bir işlemciyi program çalıştırır hale getirdiğiniz bir sistem, devre kartı bilgisayar olmaktadır. Bunlar kişisel bilgisayar, sunucu bilgisayarı veya gömülü sistem olarak kullanım alanına göre değişiklik gösterir.

Mikroişlemci üreticileri bir mikroişlemcinin her yerde kullanılmasına olanak sağlayan bir yapıda işlemciyi üretmektedir. Yani isterseniz gömülü sistemlerde, isterseniz kişisel bilgisayarlarda kullanabilirsiniz. Nitekim Z80, 6502, 8080 gibi mikroişlemciler sadece bilgisayarlarda kullanılmayıp gömülü sistemlerde de yaygın olarak kullanılmıştır. Aynı zamanda bu işlemcilerin farklı versiyonları mikrodenetleyici gibi hafıza ve giriş/çıkış birimlerini üzerinde bulundurmaktadır.

Mikroişlemcili bir sistem üretmek istediğimizde bu mikroişlemci ile uyumlu RAM, ROM, Saat, Zamanlayıcı, Sürücü ve giriş/çıkış entegrelerini almalı ve buna uygun bir kart tasarlayarak sistemi meydana getirmeliyiz. Sistem belki onlarca entegreden oluşabilir ve kart en iyi ihtimalle bir el kadar olabilir. Mikroişlemciyi alıp tek başına devreye takmak gibi bir seçeneğimiz yoktur. Bunun için önce bir anakart tasarlamak şarttır.

Mikrodenetleyicide ise bazı modellerde neredeyse hiç harici eleman gerekmeden devreye entegre edebiliriz. Genelde de 5V beslemeyi sağlayarak bir devre ile osilatör devresi bizim için yeterli olmaktadır. Tek bir çip içerisinde yukarıda sayacağımız onlarca entegre yer almaktadır. Bu entegreler çip içerisinde birbirine yakın ve bağlı olduğu için performans konusunda daha iyi ve düşük maliyetli olacaktır. O yüzden gömülü sistemlerde hem maliyet hem yer tasarrufu açısından mikrodenetleyiciler daha sık tercih edilir olmuştur. Önceden mikroişlemciler kullanılabilse de mikrodenetleyici pazarı büyüyünce mikroişlemcilerin yerini mikrodenetleyiciler almıştır. Günümüzde yüksek işlem gerektirmeyen, işletim sistemine ihtiyaç duyulmayan yerlerde mikrodenetleyiciler kullanılırken daha fazla esneklik ve işlem gücü gerektiren uygulamalarda mikroişlemciler kullanılmaktadır. Üretilen mikroişlemciler ise yüksek işlem gücü ihtiyacına cevap verir nitelikte üretilmektedir. Özellikle ARM çekirdekli mikroişlemciler gömülü sistemlerde ve mobil cihazlarda tercih edilmektedir.

Resim: En sık kullanılan mikrodenetleyicilerden biri olan PIC mikrodenetleyici. 

Gömülü Sistem Nedir?, sorusuna cevap vererek konuya devam edelim. Gömülü sistem benim tanımıma göre bizim anladığımız şekilde bilgisayar olmayan bilgisayar sistemlerine verilen addır. Yani mikroişlemci ve mikrodenetleyici ya da programlanabilir mantıksal devreleri kullandığımız, yazılım çalıştıran fakat bir bilgisayar gibi genel maksatlı olmayan, kullanıcının tam denetim sağlamadığı ve bir amaca yönelik yapılmış bilgisayar sistemidir. Gömülü sistemlere örnek vererek daha iyi anlatmış oluruz,

Görüntülü diyafon, telefon, güvenlik sistemleri, yazıcı, tarayıcı, faks makinesi, televizyon, uzaktan kumanda, el atarisi, oyuncaklar, kamera, fırın, fotokopi makinesi, araçtaki ABS sistemi, klima, çamaşır makinesi, kombi…

Bu verdiğimiz örnekler elbette dijital ve bir mikrodenetleyici ya da mikroişlemci tarafından kontrolü sağlanan teknolojide olmalıdır.

Mikrodenetleyicilerin gelişmişliğine baktığımızda gömülü sistemlere yönelik üretildikleri için bir genel maksatlı mikroişlemci sisteminden daha zayıf olmaktadır. Örneğin RAM bellekleri bayt seviyesinde, program hafızaları 1-2KB ile sınırlı olabilmektedir. Böyle bir sistemi kullanıcıya yönelik bir bilgisayar olarak üretirsek kullanımı mümkün olmaz. Fakat son zamanlarda 32-bit mikrodenetleyicilerin iyice ucuzlaması ile çok yüksek sistemli mikrodenetleyiciler de üretilmektedir. Bir mikroişlemci ve mikrodenetleyici sistemi arasındaki farklı aşağıdaki resimden daha iyi anlayabilirsiniz.

Görüldüğü gibi mikroişlemci sisteminde merkezi işlem birimi (CPU) ayrı bir entegre olarak veri ve adres yolları ile diğer entegrelere ve sistemlere bağlanmaktadır. Buradaki adres ve veri yolu anakart üzerindeki bakır yollara aktarılıp bir devre kartı haline getirilir. Mikrodenetleyicide ise bütün bu yollar çip üzerine entegre edilmiştir. Yani yine aynı devrelerden bahsedebilsek de bu sefer silikon çip üzerinde fabrikada hazır üretilmiş olarak bize gelmektedir. Mikrodenetleyicinin ayakları işlemcinin veri, kontrol ve adres yoluna bağlanmamakta ve giriş/çıkış birimlerine bağlı olmaktadır. Bu sebepten dolayı mikrodenetleyici aynı bir bilgisayar kasası gibi kapalı kutu şeklinde bize gelmektedir. Mikroişlemci sisteminde istediğimiz  gibi değişiklik yapabilir, RAM belleği söküp kapasitesini artırabilir, istersek ek bir zamanlayıcı entegre ekleyebilirsek de mikrodenetleyicinin sistemine bu şekilde müdahale etmemiz mümkün değildir.

Mikrodenetleyiciler gelişmiş sistemlerinden ziyade az yer kaplamalarından ve maliyetlerinin düşük olmasından dolayı mikroişlemci sistemlerinin giremediği yerlere girme şansı yakalamıştır. Örneğin bir kombide veya çamaşır makinesinde bilgisayar sisteminin anakartını kullanmak hiç akıllıca bir iş değildir. Fakat kontrol devresinin, beslemenin ve rölelerin olduğu karta çeşitli önlemleri alarak ve bir kaç elemandan ibaret güç birimini hazırlayarak bir mikrodenetleyiciyi eklememiz mümkündür. Böylelikle mikrodenetleyiciler motor sürücüleriyle, AC gerilimle ve analog sistemlerle beraber rahatça çalışabilir. Analog sistemleri dijitalleştirmek ve “akıllı” hale getirmek için mikrodenetleyici kullanıp günümüz teknolojisine uygun hale getirebiliriz. Üstelik analog ve mekanik sistemlerin kararlılığı düşük olup sık sık arıza vermektedir. Bu arızaları tespit etmek ve tamirini yapmak da güç olmaktadır. Bunun yerine bu sistemlerin yaptığı işi mikrodenetleyiciye kısmen de olsa yükleyebiliriz. Böylelikle bir arıza veya kararsızlık durumunda tek bir çipi değiştirmek veya yazılımı güncellemek sorunu çözecektir.

Mikrodenetleyiciler kontrol elemanları olduğu gibi hesaplama, veri depolama, veri işleme ve düzenleme ve veri gösterme elemanı olarak da iş görebilir. Mikrodenetleyiciye bağlayacağımız düğmeler ve göstergeler ile kullanıcı arayüzünü daha modern bir hale getirebiliriz. Çünkü günümüzde arayüz elemanları çoğunlukla dijital tabanlı olup yazılım ile kontrol edilmektedir. Analog skalalar, ledler yerine TFT, oled ve lcd ekranları  kullanabiliriz. Eğer bargraf ya da 7 segman led göstergeleri kullanacaksak bile bunlar için bir sürü mantıksal sürücü ve çözümleyici entegreleri kullanmak durumunda kalmayız. Mikrodenetleyiciler analog sistemlere entegre edilmekle teknolojiyi artırdığı gibi dijital sistemlere entegre edilmekle maliyetleri düşürmektedir.

Bir sonraki başlıkta mikrodenetleyicinin iç yapısından bahsederek konumuza devam edeceğiz.

Bizi Facebook grubumuzda takip etmeyi unutmayın. Bilgili ve öğrenmeye hevesli bir topluluk oluşturmak istiyoruz.

https://www.facebook.com/groups/1233336523490761/

UYARI!!

 

Gökhan Dökmetaş

"Arduino Eğitim Kitabı" ve "Arduino ve Raspberry PI ile Nesnelerin İnterneti" kitaplarının yazarı. Başkent Teknoloji ve Dedektör Merkezi'nde Ar-ge Sorumlusu. Araştırmacı-Yazar.

You may also like...

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.