Mikrodenetleyici
![](https://upload.wikimedia.org/wikipedia/commons/thumb/9/9f/SAB-C515-LN.jpg/220px-SAB-C515-LN.jpg)
![](https://upload.wikimedia.org/wikipedia/commons/thumb/6/64/Intel_8742_153056995.jpg/230px-Intel_8742_153056995.jpg)
![](https://upload.wikimedia.org/wikipedia/commons/thumb/c/c8/Microcontrollers_Atmega32_Atmega8.jpg/220px-Microcontrollers_Atmega32_Atmega8.jpg)
Mikrodenetleyici(mikrodenetleyiciye İngilizcede kısacaMCU,MC,UCveyaμCde denir) birVLSIentegre devreçipinde küçük birbilgisayar'dır. Mikrodenetleyici,bellekve programlanabilirgiriş/çıkışçevre birimleri ile birlikte bir veya daha fazlaCPU(işlemci çekirdeği'ni) kapsar.
Çipte genellikleFerroelektrik RAM,NOR flaşveyaOTP ROMbiçiminde program belleği ve ayrıca biraz daRAMbellek vardır. Mikrodenetleyicilerkişisel bilgisayarlardakullanılanmikroişlemcilerinveya çeşitli ayrı ayrı çiplerden oluşan diğer genel amaçlı uygulamaların aksinegömülüuygulamalar için tasarlanır.
Kısıtlı miktarda olmakla birlikte, yeterincehafızabirimlerine 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,LCDmonitörlerden biyomedikal cihazlara ve endüstriyel otomasyondan elektronik bilet uygulamalarına kadar pek çok elektronik uygulamada mikrodenetleyiciler kullanım alanı bulmuşlardır.
Yaygın türler
[değiştir|kaynağı değiştir]Gömülü tasarım
[değiştir|kaynağı değiştir]Mikrodenetleyici işlemci, bellek ve çevre birimleri ile bağımsız bir sistemdir vegömülü sistemolarak kullanılabilir.[1]Günümüzdeki mikrodenetleyicilerin çoğu otomobil, telefon, çeşitli cihazlar ve bilgisayar sistemleri için çevre birimleri gibi diğer makinelerde gömülüdür.
Bazı gömülü sistemler çok karmaşık olsa da birçoğunun bellek ve program uzunluğuna minimum gereksinimi vardır, işletim sistemi yoktur ve yazılımı nispeten sadedir. Tipik giriş ve çıkış cihazları arasında elektrik anahtarları,röle'ler,solenoid'ler,LED'ler, küçük veya özelsıvı kristal ekran'lar, radyo frekans cihazları ve sıcaklık, nem, ışık seviyesi vb. veri sensörleri bulunur. Gömülü sistemlerde genellikle klavye, ekran, disk, yazıcı veyakişisel bilgisayargibi diğer tanınabilir I/O cihazlar yoktur ve insanla etkileşimli her türlü cihaz da olmayabilir.
Kesintiler
[değiştir|kaynağı değiştir]Mikrodenetleyiciler, kontrol ettikleri gömülü sistemdeki olaylaragerçek zamanlı(öngörülebilir ama illa hızlı olmasa da) tepki vermelidir. Belirli olaylar olduğundakesmesistemi, işlemciye mevcut komut dizisini işlemeyi durdurmasını ve asıl komut dizisine dönmeden önce kesme kaynağındakesme hizmeti rutinini(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üştürmenin tamamlanması, bir düğmeye basılması gibi girişte mantık düzeyindeki bir değişiklik ve iletişim bağlantısında alınan veri gibi olayları içerir. Batarya cihazlarında olduğu gibi güç tüketiminin önemli olduğu yerlerde, kesintiler ayrıca bir mikro denetleyiciyi, işlemcinin çevresel bir olay tarafından bir şey yapması gerekene kadar durdurulduğu az güçlü uyku durumundan uyandırabilir.
Programlar
[değiştir|kaynağı değiştir]Harici, genişletilebilir bellekli bir sistemi sağlamak pahalı olacağından, genellikle mikrodenetleyici programları çipin belleğine sığmalıdır. Derleyiciler ve birleştiriciler, hemyüksek seviyehem deassembly dilkodlarını mikrodenetleyicinin belleğine depolamak için küçük birmakine kodu'na dönüştürmede kullanılır. Cihaza bağlı olarak, program belleği kalıcı olabilir, yalnızca fabrikada programlanabilensadece okunur bellekveya sahada değiştirilebilirflaş bellekveya silinebilir salt okunur bellek olabilir.
Üreticiler, hedef sistemin donanımına veyazılım geliştirmesineyardımcı olmak için genellikle mikro denetleyicilerinin özel çeşitlerini ürettiler. Başlangıçta bunlar cihazın üstünde program belleğininultraviyoleışıkla silinebildiği programlama ( "yakma" ) ve test döngüsünden sonra yeniden programlamaya hazır "pencere" liEPROMsürümleriydi. 1998'den beri EPROM sürümleri nadirdir ve yerini kullanımı daha kolay (elektronik olarak silinebilir) ve üretimi daha ucuz olanEEPROMve flaş ile değiştirdi.
ROM'a dahili bellek yerine harici bir cihaz olarak erişilen diğer sürümler de var olabilir ama bunlar ucuz mikrodenetleyici programcılarının yaygın bulunduğundan nadir hale gelmektedir.
Mikrodenetleyicide sahada programlanabilir cihazların kullanılması,donanım yazılımınınsahada güncellenmesine veya monte edilmiş ancak henüz sevk edilmemiş ürünlerde geç fabrika revizyonlarına imkan 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 mikrodenetleyici, uygulamanın gereksinimlerine uyarlanmışçevre birimlerivearayüzleriiçin kişiselleştirilebilen bir dijital mantık bloğu içerir. Buna bir örnek,AtmelfirmasınınAT91CAP'idir.
Diğer mikrodenetleyici özellikleri
[değiştir|kaynağı değiştir]Mikrodenetleyicilerin genellikle birkaç ila düzinelerce genel amaçlı giriş/çıkış pini (GPIO) vardır. GPIO pinleri giriş veya çıkış durumuna göre yapılandırılabilen yazılımlardır. GPIO pinleri giriş durumuna yapılandırıldığında genellikle sensörleri veya harici sinyalleri okumak için kullanılır. Çıkış durumuna göre yapılandırılan GPIO pinleri LED veya motor gibi harici cihazları harici güç elektronik devresi aracılığıyla dolaylı olarak çalıştırırır.
Birçok gömülü sistemin analog sinyal veren sensörleri okuması gerekir. Analog dijital dönüştürücü'nün (ADC) amacı budur. İşlemciler 1 ve 0 gibi dijital verileri yorumlamak ve işlemek için yapıldığından kendisine cihaz tarafından gönderilebilecek analog sinyallerle hiçbir şey yapamazlar. Böylece analog dijital dönüştürücü gelen veriyi işlemcinin tanıyabileceği şekle dönüştürmek için kullanılır. Bazı mikrodenetleyicilerde işlemcinin analog sinyal veya voltajı vermesini sağlayan Dijital Analog Dönüştürücü (DAC) vardır.
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. PIT ya bir değerden sıfıra kadar geri sayım ya da sıfıra taşarak sayım kaydının kapasitesine kadar sayım yapar. Sıfıra ulaştığında, işlemciye sayımın bittiğini belirten bir kesme gönderir. Bu özellik, klimayı, ısıtıcıyı vb. açmaları gerekip gerekmediğini görmek için çevresindeki sıcaklığı periyodik olarak kontrol eden termostat gibi cihazlar için kullanışlıdır.
Özel Darbe Genişlik Modülasyon (PWM) bloğu CPU'nun kısa zamanlayıcı döngülerinde CPU kaynağını kullanmadan CPU'nungüç dönüştürücüleri,dirençyükünü,motorlarıvb. kumanda etmesini mümkün kılar.
Evrensel Asenkron Alıcı/Verici (UART) bloğu, CPU üzerinde çok az yük ile seri hat üzerinden veri alıp iletmeyi mümkün kılar. Adanmış çip üstü donanımı, Inter-Integrated Circuit (I²C), Seri Çevre Birimi Arayüzü (SPI), Evrensel Seri Veri Yolu (USB) veEthernetgibi dijital biçimlerde diğer cihazlarla (yongalar) iletişim kurma yeteneklerini de kapsar.[2]
Daha çok entegrasyon
[değiştir|kaynağı değiştir]![](https://upload.wikimedia.org/wikipedia/commons/thumb/d/d0/PIC12C508-HD.jpg/220px-PIC12C508-HD.jpg)
![](https://upload.wikimedia.org/wikipedia/commons/thumb/6/67/STM32F100C4T6B-HD.jpg/220px-STM32F100C4T6B-HD.jpg)
Mikrodenetleyiciler, CPU ile aynı çipte RAM ve kalıcı olmayan belleği birleştikleri için harici bir adres veya veri yolu uygulayamayabilirler. Daha az pin kullanılarak çip çok daha küçük ve daha ucuz bir pakete yerleştirilebilir.
Belleği ve diğer çevre birimlerini tek bir çipde tümleştirmek ve bunları bir birim olarak denemek o çipin maliyetini artırır ama genellikle bütün olarak gömülü sistemin net maliyetinin düşmesine neden olur. Entegre çevre birimli bir CPU'nun maliyeti, bir CPU ve harici çevre birimlerinin maliyetinden biraz daha fazla olsa bile, daha az çipe sahip olmak daha küçük ve daha ucuz devre kartına yol açar ve bitmiş montaj için hata oranını düşürme eğiliminin yanı sıra devre kartını takmak ve denemek için gereken işçiliği azaltır.
Mikrodenetleyici, genellikle aşağıdaki özellikleri olan tek birentegre devre'dir:
- küçük ve basit4-bitişlemcilerden karmaşık 32-bit veya 64-bit işlemcilere kadarmerkezi işlem birimi–
- veri depolama için geçici bellek (RAM)
- programve çalışma parametresi depolaması içinROM,EPROM,EEPROMveyaflaş bellek
- bireysel bir paket piminin mantık durumunun kontrolüne veya algılanmasına izin veren ayrı giriş ve çıkış bitleri
- seri bağlantı noktaları(Üniversal Asenkron Alıcı Verici (UART)'ler) gibi serigiriş/çıkış
- sistem ara bağlantısı içinI²C,Serial Peripheral InterfaceveController Area Networkgibi diğerseri iletişimarayüzleri
- zamanlayıcılar,olay sayaçları, PWM üreteçleri ve bekçi köpeği gibiçevresel cihazlar
- saat üreteci – genellikle bir kuvars zamanlama kristali, rezonatör veyaRC devresiiçin bir osilatör
- birçoğu analogdan dijitale dönüştürücüler içerir, bazıları dijitalden analoğa dönüştürücüler içerir
- devre içi programlama vedevre içi hata ayıklamadesteği
Bu entegrasyon, ayrı çipler kullanarak eşdeğer sistemler üretmek için gerekli olacak çip sayısını ve kablolama miktarını vedevre kartalanını çok azaltır. Ayrıca, özellikle az pinli cihazlarda, her bir pin, yazılım tarafından seçilen pin işlevi ile birkaç dahili çevre birimine arayüz oluşturabilir. Bu, bir parçanın, pimlerin özel işlevlere sahip olmasına göre daha geniş bir uygulama yelpazesinde kullanılmasına imkan verir.
Mikrodenetleyiciler, 1970'lerde piyasaya sürüldüklerinden bu yanagömülü sistemlerdeoldukça popüler olduklarını kanıtladılar.
Bazı mikrodenetleyicilerHarvard mimarisikullanır: talimatlar ve veriler için ayrı bellek veri yolları, erişimlerin eşzamanlı olarak gerçekleşmesine izin verir. Harvard mimarisinin kullanıldığı durumlarda, işlemci için talimat sözcükleri, dahili bellek ve yazmaçların uzunluğundan farklı bir bit boyutunda olabilir; örneğin: 8 bitlik veri kayıtları ile kullanılan 12 bitlik komutlar.
Hangi çevre biriminin entegre edileceğine karar vermek genellikle zordur. Mikrodenetleyici satıcıları genellikle müşterilerinin pazara sunma süresi gereksinimlerine ve genel olarak daha az sistem maliyetine karşı çalışma frekanslarını ve sistem tasarım esnekliğini takas eder. Üreticiler, çip boyutunu en aza indirme ihtiyacını ek işlevsellik ile dengelemek zorundadır.
Mikrodenetleyici mimarileri çok çeşitlidir. Bazı tasarımlar, pakete entegre edilmiş bir veya daha çok ROM, RAM veya I/O işlevli genel amaçlı mikroişlemci çekirdekleri içerir. Diğer tasarımlar, kontrol uygulamaları amacına yöneliktir. Bir mikro denetleyici talimat setinde genellikle, kontrol programlarını daha küçültmek için bit manipülasyonu (bit tabanlı işlemler) için tasarlanmış birçok talimat bulunur.[3]Örneğin genel amaçlı bir işlemci, mikrodenetleyicinin yaygın olarak gerekli işlevi sağlamak için tek bir yönergeye sahip olabileceği durumda, bit ayarlanmışsa bir kayıtta ve dalda bir biti test etmek için birkaç talimat gerektirebilir.
Mikrodenetleyicilerin geleneksel olarak bir matematik yardımcı işlemcisi yoktur, bu nedenlekayan nokta aritmetiğiyazılım tarafından gerçekleştirilir. Ancak, bazı yeni tasarımlar bir FPU ve DSP için optimize edilmiş özellikler içerir. Microchip'in PIC32 MIPS tabanlı hattı buna bir örnek olabilir.
Programlama ortamları
[değiştir|kaynağı değiştir]Mikrodenetleyiciler orijinal olarak yalnızcaAssembly diliile programlanmıştır amaC,PythonveJavaScriptgibi çeşitli yüksek seviyeli programlama dilleri de şimdi mikrodenetleyicileri vegömülü sistemlerihedeflemek için yaygın kullanılmaktadır.[4]
Genel amaçlı diller içinDerleyiciler,mikrodenetleyicilerin benzersiz özelliklerini daha iyi desteklemek için bazı kısıtlamalara ve geliştirmelere sahiptir. Bazı mikrodenetleyiciler, belirli uygulama türlerinin geliştirilmesine yardımcı olacak ortamlara sahiptir. Mikrodenetleyici satıcıları, donanımlarını benimsemeyi kolaylaştırmak için bu araçları genellikle ücretsiz olarak sunar.
Özel donanıma sahip mikrodenetleyiciler, donanım özellikleriyle ilgisi olmayan kodlar için bile standart araçların (kod kitaplıkları veya statik analiz araçları gibi) kullanılmasını engelleyen Small Device C Compiler(8051 için SDCC) gibi kendi standart olmayan C lehçelerine ihtiyaç duyabilir.
CircuitPython çatalı, donanım bağımlılıklarını kitaplıklara taşımaya ve dili dahaCPythonstandardına uygun hale getirmeye çalışsa dayorumlayıcılar,MicroPython gibi standart olmayan özellikler de içerebilir.
Bazı mikrodenetleyiciler için tercüman sabit yazılımı da mevcuttur. Örneğin, ilk mikrodenetleyicilerdeIntel8051BASIC;[5]Zilog Z8'de BASIC ve FORTH[6]yanı sıra bazı modern cihazlardaki gibi. Genellikle bu tercümanlar etkileşimli programlamayı destekler.
Simülatörler, bazı mikrodenetleyiciler için mevcuttur. Bunlar, geliştiricinin, gerçek kısmı kullanıyorlarsa mikrodenetleyicinin ve programlarının davranışının ne olması gerektiğini analiz etmesine olanak tanır. Birsimülatördahili işlemci durumunu ve ayrıca çıkışların durumunu gösterecek ve ayrıca giriş sinyallerinin üretilmesine izin verir. Bir yandan çoğu simülatör, sistemdeki diğer pek çok donanımı simüle edememekle sınırlı olacak olsa da, aksi takdirde fiziksel uygulamada istendiğinde yeniden üretilmesi zor olabilecek koşulları uygulayabilir ve hata ayıklama ve problemleri analiz etmenin en hızlı yolu olabilir.
Yeni mikrodenetleyiciler genellikle, bir devre içi emulator (ICE) tarafından JTAG aracılığıyla erişildiğinde, birhata ayıklayıcıile sabit yazılımın hata ayıklamasına imkan veren çip üzerindeHata ayıklamadevresi ile entegre edilmiştir. Gerçek zamanlı bir ICE, çalışırken dahili durumların görüntülenmesine ve/veya değiştirilmesine izin verebilir. Bir izleyici ICE, bir tetikleme noktasından önce/sonra yürütülen programı ve MCU durumlarını kaydedebilir.
Kaynakça
[değiştir|kaynağı değiştir]- ^Heath, Steve (2003).Embedded systems design.EDN series for design engineers (2 bas.). Newnes. ss.11-12.ISBN9780750655460.
- ^David Harris & Sarah Harris (2012).Digital Design and Computer Architecture, Second Edition,p. 515. Morgan Kaufmann.0123944244.
- ^"Easy Way to build a microcontroller project".24 Ocak 2023 tarihinde kaynağındanarşivlendi.Erişim tarihi:24 Ocak2023.
- ^Mazzei, Daniele; Montelisciani, Gabriele; Baldi, Giacomo; Fantoni, Gualtiero (2015). "Changing the programming paradigm for the embedded in the IoT domain".2015 IEEE 2nd World Forum on Internet of Things (WF-IoT).Internet of Things (WF-IoT), 2015 IEEE 2nd World Forum on. Milan: IEEE. ss. 239-244.doi:10.1109/WF-IoT.2015.7389059.ISBN978-1-5090-0366-2.
- ^"8052-Basic Microcontrollers"9 Şubat 2014 tarihindeWayback Machinesitesindearşivlendi.by Jan Axelson 1994
- ^Edwards, Robert (1987)."Optimizing the Zilog Z8 Forth Microcontroller for Rapid Prototyping"(PDF).Martin Marietta: 3. 27 Eylül 2012 tarihinde kaynağındanarşivlendi(PDF).Erişim tarihi: 9 Aralık 2012.