Mikrodenetleyici
Bir mikrodenetleyici (mikrodenetleyici birimi için MCU), tek bir VLSI entegre devre (IC) çipi üzerindeki küçük bir bilgisayardır. Bir mikrodenetleyici, bellek ve programlanabilir giriş/çıkış çevre birimleri ile birlikte bir veya daha fazla CPU (işlemci çekirdeği) içerir. Ferroelektrik RAM, NOR flash veya OTP ROM şeklindeki program belleği de genellikle az miktarda RAM'in yanı sıra çip üzerinde bulunur. Mikrodenetleyiciler, kişisel bilgisayarlarda veya çeşitli ayrık çiplerden oluşan diğer genel amaçlı uygulamalarda kullanılan mikroişlemcilerin aksine gömülü uygulamalar için tasarlanmıştır. ⓘ
Modern terminolojide, bir mikrodenetleyici bir çip üzerindeki sisteme (SoC) benzer, ancak ondan daha az karmaşıktır. Bir SoC, harici mikrodenetleyici yongalarını anakart bileşenleri olarak bağlayabilir, ancak bir SoC genellikle grafik işlem birimi (GPU) ve Wi-Fi arabirim denetleyicisi gibi gelişmiş çevre birimlerini dahili mikrodenetleyici birim devreleri olarak entegre eder. ⓘ
Mikrodenetleyiciler, otomobil motor kontrol sistemleri, vücuda yerleştirilebilir tıbbi cihazlar, uzaktan kumandalar, ofis makineleri, aletler, elektrikli aletler, oyuncaklar ve diğer gömülü sistemler gibi otomatik olarak kontrol edilen ürün ve cihazlarda kullanılmaktadır. Mikrodenetleyiciler, ayrı bir mikroişlemci, bellek ve giriş/çıkış aygıtları kullanan bir tasarıma kıyasla boyut ve maliyeti azaltarak daha fazla aygıt ve süreci dijital olarak kontrol etmeyi ekonomik hale getirir. Dijital olmayan elektronik sistemleri kontrol etmek için gereken analog bileşenleri entegre eden karışık sinyal mikro denetleyicileri yaygındır. Nesnelerin interneti bağlamında, mikrodenetleyiciler veri toplama, fiziksel dünyayı uç cihazlar olarak algılama ve harekete geçirmenin ekonomik ve popüler bir yoludur. ⓘ
Bazı mikrodenetleyiciler dört bitlik sözcükler kullanabilir ve düşük güç tüketimi (tek haneli miliwatt veya mikrowatt) için 4 kHz kadar düşük frekanslarda çalışabilir. Genellikle bir düğmeye basma veya başka bir kesme gibi bir olayı beklerken işlevselliği koruma yeteneğine sahiptirler; uyurken güç tüketimi (CPU saati ve çoğu çevre birimi kapalı) sadece nanowatt olabilir, bu da birçoğunu uzun ömürlü pil uygulamaları için çok uygun hale getirir. Diğer mikrodenetleyiciler, daha yüksek saat hızları ve güç tüketimi ile daha çok dijital sinyal işlemcisi (DSP) gibi davranmaları gerekebilecek performans açısından kritik rollere hizmet edebilir. ⓘ
Bir mikrodenetleyici (MCU ve µC olarak da adlandırılır), bir mikroişlemcinin, MİB, hafıza ve giriş - çıkışlar, kristal osilatör, zamanlayıcılar (timers), seri ve analog giriş çıkışlar, programlanabilir hafıza (NOR Flash, OTP ROM) gibi bileşenlerle tek bir tümleşik devre üzerinde üretilmiş halidir. ⓘ
Kısıtlı miktarda olmakla birlikte, yeterince hafıza birimlerine ve giriş – çıkış uçlarına sahip olmaları sayesinde tek başlarına çalışabildikleri gibi, donanımı oluşturan diğer elektronik devrelerle irtibat kurabilir, uygulamanın gerektirdiği fonksiyonları gerçekleştirebilirler. Üzerlerinde analog-dijital çevirici gibi tümleşik devreler barındırmaları sayesinde algılayıcılardan her türlü verinin toplanması ve işlenmesinde kullanılabilmektedirler. Ufak ve düşük maliyetli olmaları gömülü uygulamalarda tercih edilmelerini sağlamaktadır. Mikrodenetleyiciler sıradan mikroişlemcilere nazaran aşağıda listelenen 4 temel avantajları sayesinde elektronik sanayinde günümüzde oldukça büyük bir uygulama alanına sahiptirler:
- oldukça küçük boyutludurlar,
- çok düşük güç tüketimine sahiptirler,
- düşük maliyetlidirler,
- yüksek performansa sahiptirler. ⓘ
Örneğin en basit elektronik saatlerden otomatik çamaşır makinelerine, robotlardan fotoğraf makinelerine, LCD monitörlerden biyomedikal cihazlara ve endüstriyel otomasyondan elektronik bilet uygulamalarına kadar pek çok elektronik uygulamada mikrodenetleyiciler kullanım alanı bulmuşlardır. ⓘ
Tarihçe
Arka plan
İlk çok çipli mikroişlemciler, 1969'da Four-Phase Systems AL1 ve 1970'te Garrett AiResearch MP944, birden fazla MOS LSI çipi ile geliştirilmiştir. İlk tek çipli mikroişlemci, 1971 yılında tek bir MOS LSI çipi üzerinde piyasaya sürülen Intel 4004 idi. Intel mühendisleri Marcian Hoff ve Stan Mazor ve Busicom mühendisi Masatoshi Shima ile birlikte Federico Faggin tarafından silikon kapılı MOS teknolojisi kullanılarak geliştirilmiştir. Bunu 4-bit Intel 4040, 8-bit Intel 8008 ve 8-bit Intel 8080 izledi. Tüm bu işlemciler, bellek ve çevresel arabirim yongaları da dahil olmak üzere çalışan bir sistemi uygulamak için birkaç harici yonga gerektiriyordu. Sonuç olarak, toplam sistem maliyeti birkaç yüz (1970'ler ABD) dolardı ve bu da küçük cihazların ekonomik olarak bilgisayarlaştırılmasını imkansız hale getiriyordu. ⓘ
MOS Technology 1975 yılında 100 doların altındaki mikroişlemcileri olan 6501 ve 6502'yi tanıttı. Başlıca amaçları bu maliyet engelini azaltmaktı, ancak bu mikroişlemciler hala toplam sistem maliyetini yüzlerce dolarda tutan harici destek, bellek ve çevresel yongalara ihtiyaç duyuyordu. ⓘ
Gelişim
Bir kitapta TI mühendisleri Gary Boone ve Michael Cochran'ın 1971 yılında ilk mikro denetleyiciyi başarıyla yarattıkları belirtilmektedir. Çalışmalarının sonucu, 1974 yılında ticari olarak satışa sunulan TMS 1000 oldu. Salt okunur bellek, okuma/yazma belleği, işlemci ve saati tek bir çip üzerinde birleştiren bu cihaz gömülü sistemleri hedefliyordu. ⓘ
1970'lerin başlarından ortalarına kadar, Japon elektronik üreticileri otomobiller için mikro denetleyiciler üretmeye başladı; bunlar arasında araç içi eğlence, otomatik silecekler, elektronik kilitler ve gösterge paneli için 4 bit MCU'lar ve motor kontrolü için 8 bit MCU'lar bulunuyordu. ⓘ
Kısmen tek çipli TMS 1000'in varlığına yanıt olarak Intel, kontrol uygulamaları için optimize edilmiş bir çip üzerinde bilgisayar sistemi olan Intel 8048'i geliştirdi ve ticari parçalar ilk olarak 1977'de piyasaya sürüldü. Bu çip RAM ve ROM'u bir mikroişlemci ile aynı çip üzerinde birleştiriyordu. Çok sayıda uygulama arasında, bu çip sonunda bir milyardan fazla PC klavyesine girecekti. O dönemde Intel'in Başkanı Luke J. Valenter, mikrodenetleyicinin şirket tarihindeki en başarılı ürünlerden biri olduğunu belirtmiş ve mikrodenetleyici bölümünün bütçesini %25'in üzerinde artırmıştır. ⓘ
Bu dönemde çoğu mikro denetleyicinin eşzamanlı varyantları vardı. Bir tanesinde EPROM program belleği vardı ve paketin kapağında ultraviyole ışığa maruz bırakılarak silinmesini sağlayan şeffaf bir kuvars pencere bulunuyordu. Bu silinebilir çipler genellikle prototipleme için kullanılıyordu. Diğer varyant ya maske programlı ROM ya da sadece bir kez programlanabilen PROM varyantıydı. İkincisi için bazen "tek seferlik programlanabilir" anlamına gelen OTP tanımı kullanılırdı. Bir OTP mikrodenetleyicide PROM genellikle EPROM ile aynı tipteydi, ancak çip paketinde kuvars pencere yoktu; EPROM'u ultraviyole ışığa maruz bırakmanın bir yolu olmadığı için silinemezdi. Silinebilir versiyonlar kuvars pencereli seramik paketler gerektirdiğinden, daha düşük maliyetli opak plastik paketlerde üretilebilen OTP versiyonlarından önemli ölçüde daha pahalıydılar. Silinebilir versiyonlar için, camın büyük ölçüde opak olduğu ultraviyole ışığa karşı şeffaflığı nedeniyle daha ucuz olan cam yerine kuvars gerekliydi, ancak ana maliyet farklılaştırıcısı seramik paketin kendisiydi. ⓘ
1993 yılında EEPROM belleğin piyasaya sürülmesi, mikro denetleyicilerin (Microchip PIC16C84 ile başlayarak) EPROM için gerekli olan pahalı bir paket olmadan elektriksel olarak hızlı bir şekilde silinmesine ve hem hızlı prototip oluşturmaya hem de sistem içi programlamaya olanak sağladı. (EEPROM teknolojisi bu zamandan önce de mevcuttu, ancak önceki EEPROM daha pahalı ve daha az dayanıklıydı, bu da onu düşük maliyetli seri üretim mikrodenetleyiciler için uygun hale getirmiyordu). Aynı yıl Atmel, özel bir EEPROM türü olan Flash belleği kullanan ilk mikro denetleyiciyi tanıttı. Diğer şirketler de hızla her iki bellek türünü de kullanmaya başladı. ⓘ
Günümüzde mikrodenetleyiciler ucuzdur ve belirli işlemciler etrafında büyük çevrimiçi topluluklar ile hobiciler için kolayca temin edilebilir. ⓘ
Hacim ve maliyet
2002 yılında dünyada satılan tüm CPU'ların yaklaşık %55'i 8-bit mikrodenetleyiciler ve mikroişlemcilerdi. ⓘ
Semico'ya göre 1997 yılında iki milyardan fazla 8-bit mikrodenetleyici satılırken 2006 yılında dört milyardan fazla 8-bit mikrodenetleyici satılmıştır. Yakın zamanda Semico, MCU pazarının 2010 yılında %36,5 ve 2011 yılında %12 büyüdüğünü iddia etmiştir. ⓘ
Gelişmiş bir ülkedeki tipik bir evde muhtemelen sadece dört genel amaçlı mikroişlemci, ancak yaklaşık üç düzine mikrodenetleyici bulunur. Tipik bir orta sınıf otomobilde yaklaşık 30 mikro denetleyici bulunur. Ayrıca çamaşır makineleri, mikrodalga fırınlar ve telefonlar gibi birçok elektrikli cihazda da bulunabilirler. ⓘ
Tarihsel olarak, 8-bit segmenti MCU pazarına hakim olmuştur [...] 16-bit mikrodenetleyiciler 2011 yılında en büyük hacimli MCU kategorisi haline gelmiş ve o yıl ilk kez 8-bit cihazları geride bırakmıştır [...] IC Insights, MCU pazarının yapısının önümüzdeki beş yıl içinde önemli değişikliklere uğrayacağına ve 32-bit cihazların satış ve birim hacimlerinde istikrarlı bir şekilde daha büyük bir pay alacağına inanmaktadır. 2017 yılına kadar 32-bit MCU'ların mikrodenetleyici satışlarının %55'ini oluşturması beklenmektedir [...] Birim hacimleri açısından, 32-bit MCU'ların 2017 yılında mikrodenetleyici sevkiyatlarının %38'ini oluşturması beklenirken, 16-bit cihazların toplamın %34'ünü temsil edeceği ve 4-/8-bit tasarımların o yıl satılan birimlerin %28'ini oluşturacağı tahmin edilmektedir. ⓘ 32-bit MCU pazarının, gömülü işlem sistemlerinde daha yüksek hassasiyet seviyelerine olan talebin artması ve internet üzerinden bağlantı olanaklarının artması nedeniyle hızla büyümesi beklenmektedir. [Önümüzdeki birkaç yıl içinde, karmaşık 32-bit MCU'ların araçlardaki işlem gücünün %25'inden fazlasını oluşturması bekleniyor.
- IC Insights, MCU Pazarı 32-bit ve ARM tabanlı Cihazlara Geçiş Yolunda
Üretim maliyeti birim başına 0,10 ABD Dolarının altında olabilir. ⓘ
Maliyet zaman içinde düşmüş, en ucuz 8-bit mikrodenetleyiciler 2018'de 0,03 ABD Dolarının altında, bazı 32-bit mikrodenetleyiciler ise benzer miktarlar için 1 ABD Doları civarında satışa sunulmuştur. ⓘ
2012 yılında, küresel krizin ardından -yıllık satışlardaki en kötü düşüş ve toparlanma ve ortalama satış fiyatının yıldan yıla %17 düşmesi - 1980'lerden bu yana en büyük düşüş- bir mikrodenetleyicinin ortalama fiyatı 0,88 ABD dolarıydı (4/8 bit için 0,69 ABD doları, 16 bit için 0,59 ABD doları, 32 bit için 1,76 ABD doları). ⓘ
2012 yılında dünya çapında 8-bit mikrodenetleyici satışları 4 milyar ABD$ civarındayken, 4-bit mikrodenetleyiciler de önemli satışlar gerçekleştirmiştir. ⓘ
2015 yılında 8-bit mikrodenetleyiciler 0,311 ABD dolarına (1.000 adet), 16-bit 0,385 ABD dolarına (1.000 adet) ve 32-bit 0,378 ABD dolarına (1.000 adet, ancak 5.000 adet için 0,35 ABD doları) satın alınabiliyordu. ⓘ
2018 yılında, 8-bit mikrodenetleyiciler 0,03 ABD$, 16-bit 0,393 ABD$ (1.000 birim, ancak 100 birim için 0,563 ABD$ veya 2.000 tam makara için 0,349 ABD$) ve 32-bit 0,503 ABD$ (1.000 birim, ancak 5.000 için 0,466 ABD$) karşılığında satın alınabilir. ⓘ
2018 yılında, 2015 yılına ait yukarıdaki düşük fiyatlı mikrodenetleyicilerin hepsi daha pahalıydı (bu belirli birimler için 2018 ve 2015 fiyatları arasında hesaplanan enflasyonla): 8 bit mikrodenetleyici 0,319 ABD Doları (1.000 birim) veya %2,6 daha yüksek, 16 bit olanı 0,464 ABD Doları (1.000 birim) veya %21 daha yüksek ve 32 bit olanı 0,503 ABD Doları (1.000 birim, ancak 5.000 için 0,466 ABD Doları) veya %33 daha yüksek bir fiyata satın alınabilirdi. ⓘ
En küçük bilgisayar
21 Haziran 2018 tarihinde Michigan Üniversitesi tarafından "dünyanın en küçük bilgisayarı" duyuruldu. Cihaz "0,04 mm3 16 nW kablosuz ve pilsiz sensör sistemi, entegre Cortex-M0+ işlemci ve hücresel sıcaklık ölçümü için optik iletişim" özelliğine sahip. "Bir pirinç tanesinin kenarından sadece 0,3 mm ölçülerindedir. [...] RAM ve fotovoltaiklere ek olarak, yeni bilgi işlem cihazları işlemcilere ve kablosuz verici ve alıcılara sahiptir. Geleneksel radyo antenlerine sahip olamayacak kadar küçük olduklarından, verileri görünür ışıkla alır ve iletirler. Bir baz istasyonu güç ve programlama için ışık sağlıyor ve verileri alıyor." Cihaz, IBM'in Mart 2018'de aylar öncesinden iddia ettiği dünya rekoru büyüklüğündeki bilgisayarının 10'da 1'i büyüklüğünde olup "bir tuz tanesinden daha küçüktür", bir milyon transistöre sahiptir, üretimi 0,10 dolardan daha az maliyetlidir ve blok zinciri teknolojisiyle birlikte lojistik ve "kripto çapalar" -dijital parmak izi uygulamaları- için tasarlanmıştır. ⓘ
Gömülü tasarım
Mikro denetleyici, işlemci, bellek ve çevre birimleri ile bağımsız bir sistem olarak kabul edilebilir ve bir gömülü sistem olarak kullanılabilir. Günümüzde kullanılan mikrodenetleyicilerin çoğu otomobiller, telefonlar, cihazlar ve bilgisayar sistemleri için çevre birimleri gibi diğer makinelere gömülüdür. ⓘ
Bazı gömülü sistemler çok karmaşık olsa da, birçoğunun bellek ve program uzunluğu için minimum gereksinimleri vardır, işletim sistemi yoktur ve yazılım karmaşıklığı düşüktür. Tipik giriş ve çıkış cihazları arasında elektrik anahtarları (ingilizce: switch), röle'ler, solenoid'ler, LED'ler, küçük veya özel sıvı kristal ekran'lar, radyo frekansı cihazları ve sıcaklık, nem, ışık seviyesi vb. gibi veriler için sensörler bulunur. Gömülü sistemlerde genellikle klavye, ekran, disk, yazıcı veya kişisel bilgisayar gibi diğer tanınabilir I/O cihazlar yoktur ve her türlü insan etkileşimli cihaz da olmayabilir. ⓘ
Kesintiler
Mikrodenetleyiciler, kontrol ettikleri gömülü sistemdeki olaylara gerçek zamanlı (tahmin edilebilir, ancak hızlı olması gerekmez) yanıt vermelidir. Belirli olaylar meydana geldiğinde, bir kesme sistemi işlemciye mevcut komut dizisini işlemeyi askıya alması ve orijinal komut dizisine dönmeden önce kesme kaynağına bağlı olarak gereken herhangi bir işlemi gerçekleştirecek bir kesme hizmet rutini (ISR veya "kesme işleyicisi") başlatması için sinyal verebilir. Olası kesme kaynakları cihaza bağlıdır ve genellikle dahili zamanlayıcı taşması, analogdan dijitale dönüşümün tamamlanması, bir düğmeye basılması gibi bir girişteki mantık seviyesi değişikliği ve bir iletişim bağlantısından alınan veriler gibi olayları içerir. Bataryalı cihazlarda olduğu gibi güç tüketiminin önemli olduğu durumlarda, kesmeler bir mikrodenetleyiciyi, işlemcinin çevresel bir olay tarafından bir şey yapması gerekene kadar durdurulduğu düşük güç uyku durumundan da uyandırabilir. ⓘ
Programlar
Harici, genişletilebilir belleğe sahip bir sistem sağlamak maliyetli olacağından, tipik olarak mikro denetleyici programları mevcut çip üzerindeki belleğe sığmalıdır. Derleyiciler ve birleştiriciler, hem yüksek seviye hem de assembly dili kodlarını mikro denetleyicinin belleğinde depolamak için kompakt bir makine kodu'na dönüştürmek için kullanılır. Cihaza bağlı olarak, program belleği kalıcı olabilir, yalnızca fabrikada programlanabilen salt okunur bellek veya sahada değiştirilebilir flaş veya silinebilir salt okunur bellek olabilir . ⓘ
Üreticiler, hedef sistemin donanımına ve yazılım geliştirmesine yardımcı olmak için genellikle mikro denetleyicilerinin özel versiyonlarını ürettiler. Başlangıçta bunlar, cihazın üstünde program belleğinin ultraviyole ışıkla silinebildiği, bir programlama ("yakma") ve test döngüsünden sonra yeniden programlamaya hazır "pencereye" sahip EPROM sürümlerini içeriyordu. 1998'den beri, EPROM sürümleri nadirdir ve yerini, kullanımı daha kolay (elektronik olarak silinebilir) ve üretimi daha ucuz olan EEPROM ve flash ile değiştirmiştir. ⓘ
ROM'a dahili bellek yerine harici bir cihaz olarak erişilen diğer sürümler mevcut olabilir, ancak bunlar ucuz mikrodenetleyici programcılarının yaygın olarak bulunması nedeniyle nadir hale gelmektedir. ⓘ
Bir mikro denetleyicide sahada programlanabilir cihazların kullanılması, firmware'in sahada güncellenmesine veya monte edilmiş ancak henüz sevk edilmemiş ürünlerde geç fabrika revizyonlarına izin verebilir. Programlanabilir bellek, yeni bir ürünün devreye alınması için gereken hazırlık süresini de azaltır. ⓘ
Yüzbinlerce aynı cihazın gerekli olduğu durumlarda, üretim sırasında programlanmış parçaların kullanılması ekonomik olabilir. Bu "maske programlanmış" parçaları, aynı zamanda çipin mantığıyla aynı şekilde ortaya konan programa sahiptir. ⓘ
Özelleştirilmiş bir mikro denetleyici, uygulamanın gereksinimlerine uyarlanmış çevre birimleri ve arayüzleri için kişiselleştirilebilen bir dijital mantık bloğu içerir. Bir örnek, Atmel'den AT91CAP'dir. Cihaza bağlı olarak, program belleği kalıcı olabilir, yalnızca fabrikada programlanabilen salt okunur bellek veya sahada değiştirilebilir flaş veya silinebilir salt okunur bellek olabilir . ⓘ
Diğer mikrodenetleyici özellikleri
Mikrodenetleyicilerin genellikle birkaç ila düzinelerce genel amaçlı giriş/çıkış pini (GPIO) vardır. GPIO pinleri, bir giriş veya çıkış durumuna göre yapılandırılabilen yazılımlardır. GPIO pinleri bir giriş durumuna 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ı, genellikle harici güç elektroniği aracılığıyla dolaylı olarak çalıştırabilir. ⓘ
Birçok gömülü sistemin analog sinyaller üreten sensörleri okuması gerekir. analogdan dijitale dönüştürücü (ADC)'nin amacı budur. İşlemciler, 1'ler ve 0'lar gibi dijital verileri yorumlamak ve işlemek için üretildiğinden, kendisine bir cihaz tarafından gönderilebilecek analog sinyallerle hiçbir şey yapamazlar. Böylece analogdan dijitale dönüştürücü, gelen verileri işlemcinin tanıyabileceği bir forma dönüştürmek için kullanılır. Bazı mikro denetleyicilerde daha az yaygın olan bir özellik, işlemcinin analog sinyaller veya voltaj seviyeleri çıkarmasını sağlayan bir dijitalden analoğa dönüştürücü (DAC) özelliğidir. ⓘ
Dönüştürücülere ek olarak, birçok gömülü mikroişlemci, çeşitli zamanlayıcıları da içerir. En yaygın zamanlayıcı türlerinden biri (PIT) programlanabilir aralıklı zamanlayıcı'dır . Bir PIT, ya bir değerden sıfıra kadar geri sayım yapabilir ya da sayım kaydının kapasitesine kadar, sıfıra taşabilir. Sıfıra ulaştığında, işlemciye sayımın bittiğini belirten bir kesme gönderir. Bu, klimayı, ısıtıcıyı vb. açmaları gerekip gerekmediğini görmek için çevrelerindeki sıcaklığı periyodik olarak test eden termostatlar gibi cihazlar için kullanışlıdır. ⓘ
Özel bir darbe genişliği modülasyonu (PWM) bloğu, CPU'nun sıkı zamanlayıcı döngüler'nde birçok CPU kaynağı kullanmadan CPU'nun güç dönüştürücüleri, direnç yükleri, motorları vb. kontrol etmesini mümkün kılar. ⓘ
Bir evrensel asenkron alıcı/verici (UART) (ingilizce: A universal asynchronous receiver/transmitter) bloğu, CPU üzerinde çok az yük ile bir seri hat üzerinden veri almayı ve iletmeyi mümkün kılar. Adanmış çip üstü donanım, genellikle, Inter-Integrated Circuit (I²C), Seri Çevre Birimi Arayüzü (SPI), Seri Veri Yolu (USB)(ingilizce: Universal Serial Bus) ve Ethernet gibi dijital biçimlerde diğer cihazlarla (yongalar) iletişim kurma yeteneklerini de içerir. ⓘ
Daha yüksek entegrasyon
Mikro denetleyiciler, RAM ve uçucu olmayan belleği CPU ile aynı yongaya entegre ettikleri için harici bir adres veya veri yolu uygulamayabilir. Daha az pin kullanarak çip çok daha küçük ve ucuz bir pakete yerleştirilebilir. ⓘ
Bellek ve diğer çevre birimlerinin tek bir çip üzerine entegre edilmesi ve bir birim olarak test edilmesi, bu çipin maliyetini artırır, ancak genellikle gömülü sistemin bir bütün olarak net maliyetinin düşmesine neden olur. Entegre çevre birimlerine sahip bir CPU'nun maliyeti, bir CPU ve harici çevre birimlerinin maliyetinden biraz daha fazla olsa bile, daha az çipe sahip olmak tipik olarak daha küçük ve daha ucuz bir devre kartı sağlar ve bitmiş montaj için kusur oranını azaltma eğilimine ek olarak devre kartını monte etmek ve test etmek için gereken işçiliği azaltır. ⓘ
Bir mikro denetleyici, genellikle aşağıdaki özelliklere sahip tek bir entegre devredir:
- merkezi işlem birimi - küçük ve basit 4-bit işlemcilerden karmaşık 32-bit veya 64-bit işlemcilere kadar
- veri depolama için uçucu bellek (RAM)
- Program ve işletim parametrelerinin saklanması için ROM, EPROM, EEPROM veya Flash bellek
- ayrı bir paket piminin mantık durumunun kontrolüne veya tespitine izin veren ayrık giriş ve çıkış bitleri
- seri portlar (UART'lar) gibi seri giriş/çıkış
- Sistem ara bağlantısı için I²C, Seri Çevresel Arayüz ve Denetleyici Alan Ağı gibi diğer seri iletişim arayüzleri
- zamanlayıcılar, olay sayaçları, PWM jeneratörleri ve watchdog gibi çevre birimleri
- saat üreteci - genellikle bir kuvars zamanlama kristali, rezonatör veya RC devresi için bir osilatör
- birçoğu analog-dijital dönüştürücüler, bazıları dijital-analog dönüştürücüler içerir
- devre içi programlama ve devre içi hata ayıklama desteği ⓘ
Bu entegrasyon, ayrı çipler kullanarak eşdeğer sistemler üretmek için gerekli olan çip sayısını ve kablolama ve devre kartı alanını büyük ölçüde azaltır. Ayrıca, özellikle düşük pin sayılı cihazlarda, her pin yazılım tarafından seçilen pin fonksiyonu ile birkaç dahili çevre birimine arayüz oluşturabilir. Bu, bir parçanın, pinlerin özel işlevlere sahip olmasından daha geniş bir uygulama yelpazesinde kullanılmasına olanak tanır. ⓘ
Mikro denetleyiciler, 1970'lerde piyasaya sürüldüklerinden beri gömülü sistemlerde oldukça popüler olduklarını kanıtlamışlardır. ⓘ
Bazı mikro denetleyiciler Harvard mimarisi kullanır: talimatlar ve veriler için ayrı bellek veri yolları, erişimlerin eşzamanlı olarak gerçekleşmesini sağlar. Harvard mimarisinin kullanıldığı yerlerde, işlemci için komut kelimeleri dahili bellek ve kayıtların uzunluğundan farklı bir bit boyutunda olabilir; örneğin: 8 bitlik veri kayıtlarıyla kullanılan 12 bitlik talimatlar. ⓘ
Hangi çevre biriminin entegre edileceğine karar vermek genellikle zordur. Mikrodenetleyici satıcıları genellikle çalışma frekanslarını ve sistem tasarım esnekliğini, müşterilerinin pazara sunma süresi gereksinimlerine ve genel olarak daha düşük sistem maliyetine karşı takas ederler. Üreticiler, ek işlevselliğe karşı çip boyutunu en aza indirme ihtiyacını dengelemek zorundadır. ⓘ
Mikrodenetleyici mimarileri büyük çeşitlilik gösterir. Bazı tasarımlar, pakete entegre edilmiş bir veya daha fazla ROM, RAM veya I/O işlevine sahip genel amaçlı mikroişlemci çekirdekleri içerir. Diğer tasarımlar kontrol uygulamaları için özel olarak üretilmiştir. Bir mikro denetleyici komut seti genellikle kontrol programlarını daha kompakt hale getirmek için bit manipülasyonuna (bit-wise işlemleri) yönelik birçok talimat içerir. Örneğin, genel amaçlı bir işlemci, bir kayıttaki bir biti test etmek ve bit ayarlanmışsa dallanmak için birkaç talimat gerektirebilir, oysa bir mikro denetleyici, genellikle gerekli olan bu işlevi sağlamak için tek bir talimata sahip olabilir. ⓘ
Mikro denetleyiciler geleneksel olarak bir matematik yardımcı işlemcisine sahip değildir, bu nedenle kayan noktalı aritmetik yazılım tarafından gerçekleştirilir. Bununla birlikte, bazı yeni tasarımlar bir FPU ve DSP optimize edilmiş özellikler içerir. Microchip'in PIC32 MIPS tabanlı serisi buna bir örnektir. ⓘ
Programlama ortamları
Mikrodenetleyiciler başlangıçta yalnızca assembly dilinde programlanıyordu, ancak C, Python ve JavaScript gibi çeşitli üst düzey programlama dilleri de artık mikrodenetleyicileri ve gömülü sistemleri hedeflemek için yaygın olarak kullanılmaktadır. Genel amaçlı diller için derleyiciler tipik olarak bazı kısıtlamaların yanı sıra mikrodenetleyicilerin benzersiz özelliklerini daha iyi desteklemek için geliştirmelere de sahip olacaktır. Bazı mikrodenetleyiciler, belirli türde uygulamaların geliştirilmesine yardımcı olacak ortamlara sahiptir. Mikrodenetleyici satıcıları, donanımlarının benimsenmesini kolaylaştırmak için genellikle araçları ücretsiz olarak kullanıma sunar. ⓘ
Özel donanıma sahip mikrodenetleyiciler, donanım özellikleriyle ilgisi olmayan kodlar için bile standart araçların (kod kütüphaneleri veya statik analiz araçları gibi) kullanılmasını engelleyen 8051 için SDCC gibi kendi standart olmayan C lehçelerini gerektirebilir. Yorumlayıcılar ayrıca MicroPython gibi standart olmayan özellikler de içerebilir, ancak bir çatal olan CircuitPython, donanım bağımlılıklarını kütüphanelere taşımaya ve dilin daha CPython standardına uymasını sağlamaya çalışmıştır. ⓘ
Bazı mikrodenetleyiciler için yorumlayıcı aygıt yazılımı da mevcuttur. Örneğin, ilk mikrodenetleyiciler Intel 8052 üzerinde BASIC; Zilog Z8 üzerinde BASIC ve FORTH ve bazı modern cihazlar. Tipik olarak bu yorumlayıcılar etkileşimli programlamayı destekler. ⓘ
Bazı mikrodenetleyiciler için simülatörler mevcuttur. Bunlar, bir geliştiricinin gerçek parçayı kullanıyor olsalardı mikrodenetleyicinin ve programlarının davranışının ne olması gerektiğini analiz etmesine olanak tanır. Bir simülatör, dahili işlemci durumunu ve ayrıca çıkışların durumunu gösterecek ve giriş sinyallerinin üretilmesine izin verecektir. Bir yandan çoğu simülatör bir sistemdeki diğer donanımları simüle edemediği için sınırlı olsa da, fiziksel uygulamada istenildiği zaman yeniden üretilmesi zor olabilecek koşulları uygulayabilir ve sorunları ayıklamak ve analiz etmek için en hızlı yol olabilir. ⓘ
Yeni mikrodenetleyiciler genellikle JTAG aracılığıyla bir devre içi emülatör (ICE) tarafından erişildiğinde, bir hata ayıklayıcı ile ürün yazılımının hatalarının ayıklanmasına izin veren çip üzerinde hata ayıklama devresi ile entegre edilmiştir. Gerçek zamanlı bir ICE, çalışırken dahili durumların görüntülenmesine ve/veya manipüle edilmesine izin verebilir. Bir izleme ICE'si, yürütülen programı ve MCU durumlarını bir tetikleme noktasından önce/sonra kaydedebilir. ⓘ
Türler
2008 yılı itibariyle, aşağıdakileri de içeren birkaç düzine mikrodenetleyici mimarisi ve satıcısı bulunmaktadır:
- ARM çekirdek işlemcileri (birçok satıcı)
- ARM Cortex-M çekirdekleri özellikle mikrodenetleyici uygulamalarına yöneliktir
- Microchip Technology Atmel AVR (8-bit), AVR32 (32-bit) ve AT91SAM (32-bit)
- Cypress Semiconductor'ın PSoC (Programlanabilir Çip Üzerinde Sistem) ürünlerinde kullanılan M8C çekirdeği
- Freescale ColdFire (32 bit) ve S08 (8 bit)
- Freescale 68HC11 (8-bit) ve Motorola 6800 ailesini temel alan diğerleri
- Intel 8051, ayrıca NXP Semiconductors, Infineon ve diğerleri tarafından da üretilmektedir
- Infineon: 8-bit XC800, 16-bit XE166, 32-bit XMC4000 (ARM tabanlı Cortex M4F), 32-bit TriCore ve, 32-bit Aurix Tricore Bit mikrodenetleyiciler
- Maxim Integrated MAX32600, MAX32620, MAX32625, MAX32630, MAX32650, MAX32640
- MIPS
- Microchip Technology PIC, (8-bit PIC16, PIC18, 16-bit dsPIC33 / PIC24), (32-bit PIC32)
- NXP Semiconductors LPC1000, LPC2000, LPC3000, LPC4000 (32 bit), LPC900, LPC700 (8 bit)
- Paralaks Pervane
- PowerPC ISE
- Rabbit 2000 (8-bit)
- Renesas Electronics: RL78 16-bit MCU; RX 32-bit MCU; SuperH; V850 32-bit MCU; H8; R8C 16-bit MCU
- Silicon Laboratories Pipelined 8-bit 8051 mikrodenetleyiciler ve karışık sinyalli ARM tabanlı 32-bit mikrodenetleyiciler
- STMicroelectronics STM8 (8-bit), ST10 (16-bit), STM32 (32-bit), SPC5 (otomotiv 32-bit)
- Texas Instruments TI MSP430 (16-bit), MSP432 (32-bit), C2000 (32-bit)
- Toshiba TLCS-870 (8-bit/16-bit) ⓘ
Bazıları çok dar uygulama alanlarında kullanılan ya da mikrodenetleyicilerden çok uygulama işlemcilerine benzeyen çok sayıda başka mikrodenetleyici de mevcuttur. Mikrodenetleyici pazarı çok sayıda satıcı, teknoloji ve pazar ile son derece parçalıdır. Birçok satıcının birden fazla mimariyi sattığını veya satmış olduğunu unutmayın. ⓘ
Kesme gecikmesi
Genel amaçlı bilgisayarların aksine, gömülü sistemlerde kullanılan mikrodenetleyiciler genellikle kesme gecikmesini komut verimine göre optimize etmeye çalışır. Sorunlar arasında hem gecikmenin azaltılması hem de daha öngörülebilir hale getirilmesi (gerçek zamanlı kontrolü desteklemek için) yer alır. ⓘ
Bir elektronik cihaz bir kesmeye neden olduğunda, kesmeyi işlemekten sorumlu yazılımın çalışabilmesi için bağlam geçişi sırasında ara sonuçların (kayıtların) kaydedilmesi gerekir. Ayrıca, bu kesme işleyicisinin işi bittikten sonra da geri yüklenmeleri gerekir. Daha fazla işlemci kaydı varsa, bu kaydetme ve geri yükleme işlemi daha fazla zaman alabilir ve gecikme süresini artırabilir. (Bir ISR bazı yazmaçların kullanılmasını gerektirmiyorsa, bunları kaydetmek ve geri yüklemek yerine kendi hallerine bırakabilir, bu durumda bu yazmaçlar gecikmeye dahil olmaz). Bu tür bağlam/geri yükleme gecikmelerini azaltmanın yolları arasında merkezi işlem birimlerinde nispeten az sayıda yazmaç bulunması (istenmeyen bir durumdur çünkü çoğu kesme dışı işlemi önemli ölçüde yavaşlatır) ya da en azından donanımın hepsini kaydetmemesi (yazılımın geri kalanı "manuel" olarak kaydederek telafi etmesi gerekiyorsa bu başarısız olur) sayılabilir. Bir başka teknik de silikon kapıların "gölge kayıtlara" harcanmasıdır: Sadece kesme yazılımı tarafından kullanılan ve belki de özel bir yığını destekleyen bir veya daha fazla yinelenen kayıt. ⓘ
Kesme gecikmesini etkileyen diğer faktörler şunlardır:
- Mevcut CPU faaliyetlerini tamamlamak için gereken döngüler. Bu maliyetleri en aza indirmek için, mikrodenetleyiciler kısa boru hatlarına (genellikle üç talimat veya daha az), küçük yazma arabelleklerine sahip olma eğilimindedir ve daha uzun talimatların devam ettirilebilir veya yeniden başlatılabilir olmasını sağlar. RISC tasarım ilkeleri çoğu talimatın aynı sayıda döngü almasını sağlayarak bu tür devam etme/yeniden başlatma mantığına ihtiyaç duyulmamasına yardımcı olur.
- Kesilmesi gereken herhangi bir kritik bölümün uzunluğu. Kritik bir bölüme giriş, eş zamanlı veri yapısı erişimini kısıtlar. Bir veri yapısına bir kesme işleyicisi tarafından erişilmesi gerektiğinde, kritik bölüm bu kesmeyi engellemelidir. Buna göre, kesme gecikmesi, kesme ne kadar uzun süre engellenirse o kadar artar. Sistem gecikmesi üzerinde katı dış kısıtlamalar olduğunda, geliştiriciler genellikle kesme gecikmelerini ölçmek ve hangi kritik bölümlerin yavaşlamaya neden olduğunu izlemek için araçlara ihtiyaç duyarlar.
- Yaygın tekniklerden biri, kritik bölümün süresi boyunca tüm kesmeleri engellemektir. Bunu uygulamak kolaydır, ancak bazen kritik bölümler rahatsız edici derecede uzun olabilir.
- Daha karmaşık bir teknik ise sadece o veri yapısına erişimi tetikleyebilecek kesmeleri engeller. Bu genellikle ilgili sistem veri yapılarına pek uymayan kesme önceliklerine dayanır. Buna göre, bu teknik çoğunlukla çok kısıtlı ortamlarda kullanılır.
- İşlemciler bazı kritik bölümler için donanım desteğine sahip olabilir. Örnekler arasında bir kelime içindeki bitlere veya baytlara atomik erişimin desteklenmesi veya ARMv6 mimarisinde tanıtılan LDREX/STREX özel erişim ilkelleri gibi diğer atomik erişim ilkelleri yer alır.
- Kesme yuvalama. Bazı mikrodenetleyiciler daha yüksek öncelikli kesmelerin daha düşük öncelikli olanları kesmesine izin verir. Bu, yazılımın zaman açısından kritik kesmelere daha az kritik olanlardan daha yüksek öncelik (ve dolayısıyla daha düşük ve daha öngörülebilir gecikme) vererek gecikmeyi yönetmesine olanak tanır.
- Tetikleme oranı. Kesmeler arka arkaya gerçekleştiğinde, mikrodenetleyiciler bir tür kuyruk çağrısı optimizasyonu ile ekstra bir bağlam kaydetme/geri yükleme döngüsünden kaçınabilir. ⓘ
Alt uç mikro denetleyiciler, üst uçlara göre daha az kesme gecikme kontrolünü destekleme eğilimindedir. ⓘ
Bellek teknolojisi
Mikrodenetleyicilerde genellikle iki farklı bellek türü kullanılır: bellenimi depolamak için uçucu olmayan bellek ve geçici veriler için okuma-yazma belleği. ⓘ
Veri
En eski mikrodenetleyicilerden günümüze kadar, altı transistörlü SRAM neredeyse her zaman okuma/yazma çalışma belleği olarak kullanılır ve kayıt dosyasında bit başına birkaç transistör daha kullanılır. ⓘ
SRAM'a ek olarak, bazı mikrodenetleyiciler veri depolama için dahili EEPROM'a da sahiptir; ve hiç olmayanlar (veya yeterli olmayanlar) bile genellikle harici seri EEPROM çipine (BASIC Stamp gibi) veya harici seri flash bellek çipine bağlanır. ⓘ
2003'ten itibaren birkaç mikrodenetleyici "kendi kendine programlanabilir" flash belleğe sahiptir. ⓘ
Firmware
En eski mikro denetleyiciler aygıt yazılımını saklamak için maske ROM kullanmıştır. Daha sonraki mikrodenetleyiciler (Freescale 68HC11'in ilk sürümleri ve PIC mikrodenetleyicilerin ilk sürümleri gibi), UV ışığı yoluyla silinmeye izin vermek için yarı saydam bir pencere kullanan EPROM belleğe sahipken, üretim sürümlerinde böyle bir pencere yoktu ve OTP (tek seferlik programlanabilir) idi. Firmware güncellemeleri mikrodenetleyicinin kendisini değiştirmeye eşdeğerdi, bu nedenle birçok ürün yükseltilemezdi. ⓘ
Motorola MC68HC805, ürün yazılımını depolamak için EEPROM kullanan ilk mikrodenetleyiciydi. EEPROM mikrodenetleyicileri 1993 yılında Microchip'in PIC16C84'ü ve Atmel'in ürün yazılımını depolamak için NOR Flash belleği kullanan ilk mikrodenetleyici olan 8051 çekirdekli mikrodenetleyiciyi tanıtmasıyla daha popüler hale geldi. Günümüzün mikrodenetleyicilerinin neredeyse tamamı flash bellek kullanmaktadır, FRAM kullanan birkaç model ve hala OTP veya Maske ROM kullanan bazı ultra düşük maliyetli parçalar bulunmaktadır. ⓘ
Yaygın türler
- 6800
- 8051
- PSoC
- PIC
- AVR ⓘ