BG MVC Model View Controller eğitim serisi yayında...

Ana sayfa > Programlama > C Gömülü Programlama > Mikrodenetleyiciler

Mikrodenetleyiciler

Mikrodenetleyici tanımı

Mikrodenetleyici, günlük olarak kullandığımız elektronik aletlerin çoğunu kontrol eden gömülü bir bilgisayar çipidir. Gömülü bir sistemdeki belirli bir işlemi yönetmek için tasarlanmış kompakt bir entegre devredir.

Mikrodenetleyici, elektronik cihazları kontrol etmek için tasarlanmış bir çiptir. Belirli bir görevi yerine getirmek ve belirli bir uygulamayı çalıştırmak için ayrılmış tek bir entegre devreye yüklenir.

Mikrodenetleyici, tek bir metal oksit yarı iletken (MOS) entegre devre (IC) yongası üzerinde bulunan küçük bir bilgisayardır. Mikrodenetleyici içinde CPU, bellek ve programlanabilir giriş/çıkış çevre birimleri yer alır. Mikrodenetleyiciler, gömülü uygulamalar için tasarlanmıştır.

Gömülü uygulamalar için özel olarak tasarlanmış devrelerdir. Otomatik olarak kontrol edilen elektronik cihazlarda yaygın olarak kullanılmaktadır. Bellek, işlemci ve programlanabilir giriş/çıkış birimleri içerir.

Mikrodenetleyiciler

  • Gömülü sistemlerin temelini oluşturur.
  • Tek bir çip üzerinde yer alan bir bilgisayardır.
  • Çok ucuz, küçük ve düşük güç tüketen yapıdadır.
  • Seri veya paralel port’lar üzerinden beslenen veri üzerinde işlem yapar ve çip belleğinde yüklü yazılım tarafından kontrol edilir.

Mikrodenetleyici yapısı

Bir mikrodenetleyici, tek bir çip üzerinde bir işlemci, bellek ve Giriş/Çıkış (G/Ç) çevre birimleri içerir. Bileşenleri şunları içerecek şekilde genişletilebilir: Dijital G/Ç, Analog G/Ç, Zamanlayıcılar, İletişim arayüzleri...

Mikrodenetleyici, işlemci, bellek ve çevre birimlerinden oluşan ve gömülü bir sistem olarak kullanılabilen bağımsız bir sistemdir.

Mikrodenetleyiciler genellikle, minimum ölçüde bellek ve program büyüklüklerine ihtiyaç duyarlar. Anahtar, röle, LED, kristal ekranlar, radyo frekans cihazları ve sıcaklık, nem, ışık sensörleri gibi giriş ve çıkış cihazları kullanırlar. Gömülü sistemlerde genellikle klavye, ekran, disk vb. birimler kullanılmaz.

Mikrodenetleyici, genellikle aşağıdaki özelliklere sahip tek bir tümleşik devredir:

  • CPU (Merkezi İşlem Birimi): 4, 8, 16, 32 ve 64 bit işlemciler
  • RAM (Random Access Memory): Veri depolama için geçici bellek
  • ROM (Random Access Memory), EPROM, EEPROM veya Flash Bellek: Program ve çalışma değerleri yüklemek için
  • Giriş ve çıkış bitleri: Bir pin'in aktif durumunu (0 veya 1) belirlemek için kullanılır.
  • Seri giriş/çıkış port'ları: Seri port'lar gibi.
  • Diğer seri iletişim arayüzleri
  • Çevre birimleri: Zamanlayıcılar, eylem sayaçları, PWM jeneratörleri gibi.
  • Saat (clock) jeneratörü: Genellikle bir quartz zamanlama kristali, rezonatör veya RC devresi için bir osilatör
  • Analogdan-Dijital dönüştürücü: Mikrodenetleyicilerin çoğunda bulunur.
  • Dijital-Analog dönüştürücü: Mikrodenetleyicilerin bazılarında bulunur.
  • Devre içi programlama

Mikrodenetleyici çalışma prensipleri

Mikrodenetleyiciler bir çok sayıda genel amaçlı giriş/çıkış pini (GPIO) içerir. GPIO pinleri, bir giriş veya çıkış durumuna göre yazılımlarla yapılandırılabilir. GPIO pinleri bir giriş durumuna göre yapılandırıldığında, genellikle sensörleri veya harici sinyalleri okumak için kullanılırlar. Çıkış durumuna göre yapılandırılan GPIO pinleri, LED'ler veya motorlar gibi harici cihazları, harici güç elektroniği yoluyla, genellikle dolaylı olarak çalıştırabilir.

Birçok gömülü sistemin analog sinyaller üreten sensörleri okuması gerekir. İşlemciler 0 ve 1'lerden oluşan dijital verilere işlem yapabildiğinden, okunan analog sinyallere işlem yapabilmek için Analog-Dijital dönüştürücüye (ADC) ihtiyaç duyulur. Analog-Dijital dönüştürücü, gelen analog verileri işlemcinin tanıyabileceği dijital bir biçime dönüştürürü. Bazı mikrodenetleyicilerde daha az yaygın olarak, işlemcinin analog sinyaller veya voltaj seviyeleri vermesini sağlayan Dijital-Analoğ dönüştürücü (DAC) kullanılır.

Mikrodenetleyicilerde, çeşitli zamanlayıcılar içerir. En yaygın zamanlayıcı türlerinden biri programlanabilir aralık zamanlayıcıdır (PIT). Bir PIT, bir değerden sıfıra veya sayım yazmacının kapasitesine kadar sayabilir. Sıfıra ulaştığında, işlemciye saymayı bitirdiğini belirten bir kesme gönderir. Bu özellik, bir ortamda bulunan klima veya ısıtıcıyı açmaya gerek olup olmadığını görmek için çevre sıcaklığını periyodik olarak kontrol eden termostat gibi cihazlarda kullanılır.

Mikrodenetleyicilerin kişisel bilgisayarlarlardan farkları

Kişisel bilgisayar bir programı çalıştırdığında, program önce diskten tahsis edilmiş bellek bölgesine yüklenir.

  • Bellek kullanımını kısıtlamak için program parça parça yüklenir.
  • Çeşitli aygıtlarla arayüz sağlamak için gerekli kodlar da dahil olmak üzere tüm düşük seviye işlemleri gerçekleştiren bir işletim sistemi vardır.

Mikrodenetleyici içinde okuma için herhangi bir disk bulunmaz.

  • Çalıştırılacak program çip üzerindeki ROM’a yüklenir.
  • ROM boyutu çalıştırılacak olan programın boyutunu belirler.
  • İşletim sistemi mevcut değildir.
  • Sistemde çalışacak tek program ROM üzerinde bulunur.

Mikrodenetleyiciler, hızlı ve etkin, düşük maliyetli ve düşük güç tüketimli elemanlardır.

Mikrodenetleyici kullanım yerleri

Mikrodenetleyiciler, otomobil motor kontrol sistemleri, tıbbi cihazlar, uzaktan kumandalar, ofis makineleri, cihazlar, elektrikli aletler, oyuncaklar ve diğer gömülü sistemler gibi otomatik kontrollü cihazlarda kullanılır. Cihazları kontrol etmek için, ayrı bir mikroişlemci, bellek ve giriş/çıkış aygıtları yerine, mikrodenetleyicileri kullanarak, boyutu ve maliyeti düşürebiliriz.

Mikrodenetleyici türleri

Mikrodenetleyici türleri aşağıda gösterilmektedir:

  • 8 bit mikrodenetleyici
  • 16 bit mikrodenetleyici
  • 32 bit mikrodenetleyici
  • Gömülü mikrodenetleyici
  • Harici bellek mikrodenetleyicisi

Mikrodenetleyici programlama

Mikrodenetleyiciler, Assembly, C, Python ve Javascript programlama dilleri ile programlanabilir.

Mikroişlemci ve mikrodenetleyici karşılaştırma

Mikroişlemci ve Mikrodenetleyici karşılaştırma
Mikroişlemci Mikrodenetleyici
Kişisel bilgisayarlarda kullanılır. Gömülü sistemlerde kullanılır.
Sadece bir CPU(Merkezi İşlem Birimi)'dan oluşur. Tamamı tek çipe entegre edilmiş bir CPU, Bellek ve G/Ç portlarından oluşur.
Von Neumann modeline göre imal edilir. Harvard mimarisine göre imal edilir.
Karmaşık ve pahalıdır. İşlenecek çok sayıda talimat vardır. Daha ucuz ve basittir. Daha az talimat içerir.
Aynı anda birden fazla görevi gerçekleştirebilir. Aynı anda sadece tek bir görevi gerçekleştirebilir.
RAM, ROM, G/Ç portları ve zamanlayıcılar haricen eklenebilir ve sayı olarak değişebilir. RAM, ROM, G/Ç portları ve zamanlayıcılar harici olarak eklenemez. Bu bileşenler bir çip üzerinde birlikte yer alır ve sayısı sabittir.
RAM, ROM ve diğer çevre birimlerine arabirim oluşturmak için harici bir veri yolu kullanır. RAM, ROM ve diğer çevre birimlerine arabirim oluşturmak için dahili bir kontrol veriyolu kullanır.
Gereken bellek miktarına veya G/Ç port sayısına tasarımcılar karar verebilir. Bellek miktarı veya G/Ç port sayısı için kullanılan değerler, bir mikrodenetleyiciyi için sınırlı ancak belirli bir görev için uygun bir sistem oluşturur.
Program ve veri depolama sağlamak için harici bellek kullandığından, bellek kısıtlaması yoktur. Programı depolamak ve yürütmek için çip üzerinde gömülü Flash bellek kullanıldığıdan, daha kısa bir başlatma süresi ve kodu hızlı bir şekilde yürütme olanağı sağlar. Bellek alanı sınırlıdır.
Harici bellek ve G/Ç port için harici destek, mikroişlemci tabanlı bir sistemi daha ağır ve daha maliyetli hale getirir. Mikrodenetleyiciler, mikroişlemcilerden daha hafif ve ucuzdur.
Harici cihazlar daha fazla alan gerektirir ve güç tüketimleri daha yüksektir. Mikrodenetleyici tabanlı bir sistem daha az güç tüketir ve daha az yer kaplar.