Mikrodenetleyici Nedir? Nasıl Çalışır?

mikrodenetleyici

         Mikrodenetleyiciler hayatımızın büyük bir kısmında kullandığımız fakat fark edemediğimiz mikro bilgisayarlardır. Yolda yürürken bile etrafımızda olurlar. Örneğin cep telefonlarında, arabaların kontrol sistemlerinde, kameralarda, trafik lambalarında, led reklam tabelalarında ve hatta dünya dışından bizi izleyen gps uydularında bile bu küçük yardımcılar kullanılır. Peki bu küçük cihazlar nedir ve nasıl çalışır.

          Bu küçük cihazlar adından da anlaşılabileceği gibi mikro teknoloji ile üretilmektedir. Bir elektronikçiden aldığınız örneğin 18f4520 kod isimli bir mikrodenetleyicinin, siyah sert plastik dış kılıfının bulunduğunu ve 40 adet bacağının olduğunu görürsünüz. Bacakları o kadar büyüktür ki denetleyicinin kendisi iki-üç bacak kadar büyüktür.

Mikrodenetleyici içerisinde bir mikroişlemci bulunur. Bu iki kavram çok karıştırılır. Mikroişlemci, mikrodenetleyicinin işlem birimidir. Mikrodenetleyici içerisinde mikroişlemciye ek olarak ram, rom, harddisk, dönüştürücüler v.b bir çok birimin birleşiminden oluşur. Mikrodenetleyici sistemlerinde en önemli olan noktalar, bu ekstra bilimlerin sayısı ve işlem özellikleri yanı sıra mikroişlemcinin (yani cpu’nun) kaç bitlik olduğu ve çalışma hızı da çok önemlidir.

Şimdi biraz teknik detaya inerek neden mikroişlemcinin bit ve hızının önemli olduğunu açıklayacağım. Mikrodenetleyicileri çalıştırırken bir osilatör kullanırız. Bu osilatör mikrodenetleyicinin içerisinde dahili olarak bulanabileceği gibi siz dışarıdan harici olarak da bağlayabiliyorsunuz. Örneğin biz 8Mhz hızındaki bir osilatörü ele alalım. 8Mhz(megahertz)   hızında çalışan bir mikrodenetleyicinin işlemcisi saniyede 8.000.000 işlem yapabilme yeteneğine sahip olur. Siz osilatörü değiştirdikçe işlemcinin çalışma hızıda bu frekansa göre değişmektedir.

         Mikrodenetleyici içerisinde bulunan CPU’lar aslında birer ALU birimidir. ALU’nun açılımı Arithmetic Logic Unit, yani aritmetik mantıksal birimin kısaltmasıdır. Bu birimin görevi toplama, çıkartma, çarpma, bölme işlemlerini yapmaktadır. Bu düzeyde işlemler tamamen logic yani var(1) veya yok (0) olarak işlenir. Bu sayı sistemine ikilik sayı sistemi denir. ALU biriminin bir defada işleyeceği bir bit sayısı vardır. Bu sayı 8, 16, 32 veya 64bit olarak işlemcinin mimarisine göre değişiklik gösterir. Bir bilgisayar alırken sürekli duyduğunuz o 32bit, 64bit kavramı buradan gelmektedir. Peki aralarında nasıl bir fark vardır? 8 bitlik bir mikrodenetleyici bir defada iki adet 255 sayısını çarpabilir, toplayabilir, çıkartabilir veya bölebilir. 16 bitlik bir mikrodenetleyici iste bir defada iki adet 65535 sayıyı toplayıp, çarpıp, çıkartıp, bölebilir. Eğer elinizde bir adet 64bitlik bir işlemci varsa bir defada iki adet “9223372036854775807” sayısından daha büyük bir sayıyı işleyebilir. Daha da ilginç bir nokta ise bir önceki satırda 8Mhz (megahertz)  hızında çalışan bir mikrodenetleyiciden bahsetmiştim. Saniyede 8 milyon işlem yapan bu mikrodenetleyicinin 16 bitlik olduğunu düşünürsek, bir saniyede 8 milyon kere iki adet 65535 sayısını çarpabiliyor, bölebiliyor, toplayabiliyor ve çıkartabiliyor.  Birde kendi bilgisayarınıza bakın. Genel olarak 64bitlik, çift veya dört çekirdekli, 2.0 ile 4ghz (gigahertz) hızları arasında çalışan işlemcilerin ne kadar hızlı olduklarını siz hesaplayın artık. Ghz’ in, Mhz’ den bin kat fazla olduğunu da belirtelim.

         Mikrodenetleyicilerin diğer birimlerine bakacak olursak içerisinde usb2.0, Ethernet, CAN2.0, Lcd, adc, karşılaştırıcılar, yakalayıcılar, pwm, Eusart, Spi-I2c, parallel port, ram, flash, eeprom v.b bir çok modül bulundurur. Bu modüller her microdenetleyici modelinde değişiklik gösterir. Mikrodenetleyiciler kendi aralarında bağlantı kurabildikleri gibi, tuş takımı, lcd ekran, sensör ve diğer entegreler gibi birimlerle de değişik protokollerde iletişim sağlayabilirler. O kadar üst düzey bir güce sahiptirler ki kendi kendilerini programlamak için bile kullanılabilirler.

         Bu küçük cihazlara program yazarken, programcı farkında olmadan beyninden bir algoritma yaparak yazılımın nasıl işleyeceğini belirtmektedir. Bir mikrodenetleyiciyi programlama işlemi onaltılık sayı sistemi ile yapılır. Fakat bu çok üst düzey bir yazılımdır. Programlayıcıya daha basit ve anlaşılır bir programlama yapabilmesi için birden fazla derleyici ve yazılım dili geliştirilmiştir. Bunlar arasında CCS C, Hi-Tech C, Keil, Mplab gibi birçok derleyici ve dil vardır. Programlayıcı bu diller arasından birini seçerek mikrodenetleyici için bir yazılım hazırlar ve debuger/programmer ile yazılımı denetleyiciye gönderebilir.


Bir programlayıcı hayal gücü sayesinde bir mikrodenetleyici ile sınırsız sayıda uygulama yapabilmektedir. Yani sokak lambaları, cep telefonları, yazıcılar, tvler ve bir çok elektronik cihaz içerisinde bulunan bu küçük cihazlar ile hayatımız gün geçtikçe kolaylaşmakta ve teknolojimiz gelişmektedir.

Video: http://www.youtube.com/watch?v=QN0ZnoMoLNI

Not: Mikrodenetleyici konusu çok geniş bir kavramdır. Bu nedenle yazımızda mümkün oldukça ilginç noktalara değinerek elimden geldiğince genel bir yazı hazırlamaya çalıştım. Umarım azda olsa bu konu hakkında bilgi verebilmişimdir. Yazı hakkında yorum yazarak bize düşüncelerinizi anlatabilirsiniz.

0 Yorum

Kimliğiniz ile giriş yapın

veya    

Ayrıntılarınızı unuttunuz mu?

Create Account