Mikrodenetleyici - Microcontroller
Bir mikro denetleyici ( mikro denetleyici birimi için MCU ), tek bir metal oksit yarı iletken (MOS) tümleşik devre (IC) yongası üzerindeki küçük bir bilgisayardır . Modern terminolojide, çip üzerindeki bir sisteme (SoC) benzer, ancak daha az karmaşıktır ; bir SoC, bileşenlerinden biri olarak bir mikro denetleyici içerebilir. Bir mikro denetleyici, 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 biçiminde program belleğigenellikle çipte ve az miktarda RAM'de bulunur . Mikrodenetleyiciler, kişisel bilgisayarlarda veya çeşitli ayrık yongalardan oluşan diğer genel amaçlı uygulamalarda kullanılan mikro işlemcilerin aksine gömülü uygulamalar için tasarlanmıştır .
Mikrodenetleyiciler, otomobil motor kontrol sistemleri, implante edilebilir tıbbi cihazlar, uzaktan kumandalar, ofis makineleri, aletler, elektrikli aletler, oyuncaklar ve diğer gömülü sistemler gibi otomatik kontrollü ürün ve cihazlarda kullanılır . Mikrodenetleyiciler, ayrı bir mikroişlemci , bellek ve giriş / çıkış cihazları kullanan bir tasarıma kıyasla boyutu ve maliyeti düşürerek, daha fazla cihazı ve işlemi dijital olarak kontrol etmeyi ekonomik hale getirir. Dijital olmayan elektronik sistemleri kontrol etmek için gerekli analog bileşenleri entegre eden karışık sinyalli mikro denetleyiciler yaygındır. Bağlamında şeylerin internet , mikrodenetleyiciler bir ekonomik ve popüler araçlardır veri toplama , algılama ve harekete geçirme gibi fiziksel dünyayı modern cihazlardan .
Bazı mikro denetleyici dört bitlik kullanabilir kelime ve benzeri gibi düşük olarak frekanslarda çalışabilir , 4 kHz için düşük güç tüketimi (tek basamaklı milivat veya mikrowatt). Genellikle, bir düğmeye basma veya başka bir kesinti gibi bir olayı beklerken işlevselliği koruyabilirler ; 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 mikro denetleyiciler, daha yüksek saat hızları ve güç tüketimi ile daha çok bir dijital sinyal işlemcisi (DSP) gibi davranmaları gerekebilecek performans açısından kritik rollere hizmet edebilir .
Tarih
Arka fon
Hem mikroişlemcinin hem de mikro denetleyicinin kökenleri , MOS transistörü olarak da bilinen MOSFET'in (metal oksit-yarı iletken alan etkili transistör) icadına kadar izlenebilir . 1959'da Mohamed M. Atalla ve Dawon Kahng tarafından Bell Laboratuarlarında icat edildi ve ilk kez 1960'da gösterildi. Aynı yıl, Atalla , MOSFET'lerden üretilen entegre bir devre çipi olan MOS entegre devre konseptini önerdi . 1964'e gelindiğinde, MOS çipleri, bipolar çiplere göre daha yüksek transistör yoğunluğuna ve daha düşük üretim maliyetlerine ulaştı . MOS yongalarının karmaşıklığı, Moore yasası tarafından öngörülen oranda daha da arttı ve 1960'ların sonlarında tek bir MOS yongası üzerinde yüzlerce transistörle büyük ölçekli entegrasyona (LSI) yol açtı . Mühendisler, tek bir MOS LSI yongasında eksiksiz bir bilgisayar işlemcisinin bulunabileceğini fark etmeye başladıkça , MOS LSI yongalarının hesaplamaya uygulanması, ilk mikroişlemcilerin temelini oluşturdu .
İlk çok çipli mikroişlemciler, 1969'da Dört Fazlı Sistemler AL1 ve 1970'de Garrett AiResearch MP944 , birden fazla MOS LSI yongasıyla geliştirildi. İlk tek yongalı mikroişlemci, 1971'de tek bir MOS LSI yongası üzerinde piyasaya sürülen Intel 4004'tür . Intel mühendisleri Marcian Hoff ve Stan Mazor ve Busicom mühendisi Masatoshi ile birlikte kendi silikon kapılı MOS teknolojisi kullanılarak Federico Faggin tarafından geliştirilmiştir. Shima . Bunu 4 bit Intel 4040 , 8 bit Intel 8008 ve 8 bit Intel 8080 izledi . Bu işlemcilerin tümü, çalışan bir sistemi uygulamak için bellek ve çevresel arabirim yongaları dahil birkaç harici yongaya ihtiyaç duyuyordu. Sonuç olarak, toplam sistem maliyeti birkaç yüz (1970'ler ABD doları) dolardı ve bu da küçük aletlerin ekonomik olarak bilgisayarlaştırılmasını imkansız hale getirdi. MOS Technology, temel amacı bu ekonomik engeli ele almak amacıyla 100 $ 'ın altındaki mikroişlemcileri, 6501 ve 6502'yi tanıttı, ancak bu mikroişlemciler yine de toplam sistem maliyetini yüzlerce dolarda tutan harici destek, bellek ve çevresel yongalara ihtiyaç duyuyordu.
Geliştirme
Bir kitap, TI mühendisleri Gary Boone ve Michael Cochran'ı 1971'de ilk mikro denetleyicinin başarılı bir şekilde yaratmış olmalarına borçludur. Çalışmalarının sonucu, 1974'te ticari olarak satışa sunulan TMS 1000 oldu. Salt okunur bellek, okuma / yazma belleğini birleştirdi. işlemci ve saat tek bir yonga üzerinde ve gömülü sistemleri hedef aldı.
1970'lerin başından ortalarına kadar Japon elektronik üreticileri, araç içi eğlence için 4 bit MCU'lar , otomatik silecekler, elektronik kilitler ve gösterge paneli ve motor kontrolü için 8 bit MCU'lar dahil olmak üzere otomobiller için mikro denetleyiciler üretmeye başladı .
Kısmen tek yongalı TMS 1000'in varlığına yanıt olarak, Intel, kontrol uygulamaları için optimize edilmiş bir yonga üzerinde bir bilgisayar sistemi geliştirdi, Intel 8048 , ticari parçalar ilk kez 1977'de piyasaya çıktı. Aynı yonga üzerindeki RAM ve ROM'u bir bilgisayarla birleştirdi. mikroişlemci. Çok sayıda uygulama arasında, bu yonga 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 ve mikrodenetleyici bölümünün bütçesini% 25'in üzerinde genişlettiğini belirtti.
Şu anda çoğu mikro denetleyicinin eşzamanlı değişkenleri vardı. Bir tanesi, ultraviyole ışığa maruz bırakılarak silinmesine izin vermek için paketin kapağında şeffaf bir kuvars pencere bulunan EPROM program hafızasına sahipti . Bu silinebilir çipler genellikle prototipleme için kullanıldı. Diğer varyant, ya bir maske programlı ROM ya da yalnızca bir kez programlanabilen bir PROM varyantıydı. İkincisi için, bazen "tek seferlik programlanabilir" anlamına gelen OTP adı kullanılmıştır. Bir OTP mikro denetleyicide, PROM genellikle EPROM ile aynı tipteydi, ancak çip paketinin kuvars penceresi yoktu; EPROM'u ultraviyole ışığa maruz bırakmanın bir yolu olmadığı için silinemezdi. Silinebilir versiyonlar, kuvars pencereli seramik paketler gerektirdiğinden, düşük maliyetli opak plastik paketlerde yapılabilen OTP versiyonlarından önemli ölçüde daha pahalıydılar. Silinebilir varyantlar için, ultraviyole ışığa (camın büyük ölçüde opak olduğu) şeffaflığı nedeniyle daha ucuz cam yerine kuvars gerekliydi, ancak ana maliyet farklılaştırıcısı seramik paketin kendisiydi.
1993 yılında, EEPROM belleğinin piyasaya sürülmesi mikro denetleyicilerin (Microchip PIC16C84 ile başlayarak ) EPROM için gereken pahalı bir paket olmadan elektriksel olarak hızla silinmesine izin vererek hem hızlı prototip oluşturmaya hem de sistem içi programlamaya izin verdi . (EEPROM teknolojisi bu zamandan önce mevcuttu, ancak önceki EEPROM daha pahalı ve daha az dayanıklıydı, bu da onu düşük maliyetli seri üretilen mikro denetleyiciler için uygun hale getirmiyordu.) Aynı yıl, Atmel , özel bir Flash bellek kullanan ilk mikro denetleyiciyi tanıttı. EEPROM türü. Diğer şirketler, her iki bellek türü ile hızla aynı şeyi takip etti.
Günümüzde mikrodenetleyiciler ucuzdur ve hobiler için hazırdır ve belirli işlemciler etrafında büyük çevrimiçi topluluklar vardır.
Hacim ve maliyet
2002'de dünyada satılan tüm CPU'ların yaklaşık% 55'i 8 bit mikro denetleyiciler ve mikro işlemcilerdi.
1997'de iki milyardan fazla 8-bit mikro denetleyici satıldı ve Semico'ya göre, 2006'da dört milyardan fazla 8-bit mikro denetleyici satıldı. Yakın zamanda, Semico, MCU pazarının 2010'da% 36.5 ve 2011'de% 12 büyüdüğünü iddia etti.
Gelişmiş bir ülkedeki tipik bir evde muhtemelen yalnızca dört genel amaçlı mikroişlemci, ancak yaklaşık üç düzine mikro denetleyici bulunur. Tipik bir orta sınıf otomobil yaklaşık 30 mikro denetleyiciye sahiptir. Çamaşır makineleri, mikrodalga fırınlar ve telefonlar gibi birçok elektrikli cihazda da bulunabilirler.
Tarihsel olarak, 8 bitlik segment MCU pazarına hakim olmuştur [..] 16 bitlik mikro denetleyiciler 2011'de en büyük hacimli MCU kategorisi haline geldi ve o yıl ilk kez 8 bit cihazları geride bıraktı [..] IC Insights, MCU pazarı, önümüzdeki beş yıl içinde, 32-bit cihazların istikrarlı bir şekilde satış ve birim hacimlerinde daha büyük bir paya sahip olacağı önemli değişiklikler geçirecek. 2017'ye kadar, 32 bitlik MCU'ların mikrodenetleyici satışlarının% 55'ini oluşturması bekleniyor [..] Birim hacimleri açısından, 32 bitlik MCU'ların 2017'deki mikro denetleyici gönderilerinin% 38'ini oluşturması beklenirken, 16 bitlik cihazların temsil edeceği Toplamın% 34'ü ve 4- / 8-bit tasarımların o yıl satılan birimlerin% 28'i olacağı tahmin ediliyor. 32-bit MCU pazarının, gömülü işlem sistemlerinde daha yüksek hassasiyet seviyelerine olan talebin artması ve İnternet kullanılarak bağlanabilirliğin artması nedeniyle hızla büyümesi bekleniyor. [..] Ö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, 32-bit ve ARM tabanlı Cihazlara Geçiş Yolunda MCU Pazarı
Üretim maliyeti birim başına 0,10 doların altında olabilir.
2012 yılında, küresel bir krizin ardından - şimdiye kadarki en kötü yıllık satış düşüşü ve toparlanma ve yıllık satış fiyatlarında% 17 düşüş - 1980'lerden bu yana en büyük düşüş - bir mikro denetleyicinin ortalama fiyatı 0,88 ABD doları (4 için 0,69 ABD doları) / 8 bit, 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 bitlik mikro denetleyicilerin satışları 4 milyar dolar civarındayken, 4 bitlik mikro denetleyiciler de önemli satışlar gördü.
2015 yılında 8 bit mikro denetleyiciler 0,311 ABD Doları (1.000 birim), 16 bitlik 0,385 ABD Doları (1.000 birim) ve 32 bitlik 0,378 ABD Doları (1.000 birim, ancak 5.000 birim için 0,35 ABD doları) karşılığında satın alınabilir.
2018'de, 8 bit mikro denetleyiciler 0,03 ABD Doları, 16 bitlik 0,393 ABD Doları (1.000 birim, ancak 100 birim için 0,563 ABD Doları veya 2.000 tam makara için 0,349 ABD Doları) ve 32 bitlik 0,503 ABD Doları (1.000 birim, ancak 5.000). Daha düşük fiyatlı bir 32-bit mikrodenetleyici, tekli birimler halinde, 0.891 dolara sahip olabilir.
2018'de, 2015'ten itibaren düşük fiyatlı mikrodenetleyicilerin tümü daha pahalıdır (bu belirli birimler için 2018 ve 2015 fiyatları arasında hesaplanan enflasyon ile): 8 bitlik mikro denetleyici 0,319 $ (1000 birim) veya% 2,6 daha yüksek fiyatla satın alınabilir, 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 birim için 0.466 ABD Doları) veya% 33 daha yüksek.
En küçük bilgisayar
21 Haziran 2018'de Michigan Üniversitesi tarafından "dünyanın en küçük bilgisayarı" ilan edildi . Cihaz, "0,04 mm3 16nW kablosuz ve pilsiz sensör sistemidir, entegre Cortex-M0 + işlemci ve hücresel sıcaklık ölçümü için optik iletişim." "Bir kenarı sadece 0,3 mm ölçülerinde - bir pirinç tanesi tarafından küçültülmüş. [...] RAM ve fotovoltaiklere ek olarak , yeni bilgi işlem cihazlarında işlemciler ve kablosuz vericiler ve alıcılar var . Çünkü geleneksel cihazlar için çok küçükler. radyo antenleri, görünür ışıkla veri alır ve iletirler. Baz istasyonu, güç ve programlama için ışık sağlar ve verileri alır. " Aygıt, IBM'in daha önce Mart 2018'de iddia edilen dünya rekoru boyutundaki bilgisayarının 1 / 10'u boyutunda ve "bir tuz tanesinden daha küçük", bir milyon transistöre sahip, üretim maliyeti 0,10 dolardan az ve, Blockchain teknolojisi ile birleştirilmiş , lojistik ve "kripto-çapalar" - dijital parmak izi uygulamaları için tasarlanmıştır.
Gömülü tasarım
Bir mikro denetleyici, bir işlemci, bellek ve çevre birimlerine sahip bağımsız bir sistem olarak düşünülebilir ve gömülü bir 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 makinelerde yerleşiktir.
Bazı gömülü sistemler çok karmaşık olsa da, çoğunun bellek ve program uzunluğu için minimum gereksinimleri, işletim sistemi olmadan ve düşük yazılım karmaşıklığı vardır. Tipik giriş ve çıkış cihazları arasında anahtarlar, röleler , solenoidler , LED'ler , küçük veya özel sıvı kristal ekranlar , 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 yoktur. , kişisel bilgisayarın diskleri, yazıcıları veya diğer tanınabilir G / Ç aygıtları ve her türlü insan etkileşim aygıtından yoksun olabilir.
Kesmeler
Mikrodenetleyiciler , kontrol ettikleri gömülü sistemdeki olaylara gerçek zamanlı (öngörülebilir, ancak hızlı olmasa da) yanıt vermelidir . Belirli olaylar meydana geldiğinde, bir kesme sistemi işlemciye geçerli talimat dizisini işlemeyi askıya alması ve kesmenin kaynağına bağlı olarak gerekli herhangi bir işlemi gerçekleştirecek olan bir kesme hizmet rutini (ISR veya "kesme işleyicisi") başlatması için sinyal verebilir. orijinal talimat sırasına geri dönülüyor. Olası kesinti kaynakları cihaza bağlıdır ve genellikle dahili bir zamanlayıcı taşması, bir analogdan dijitale dönüşümün tamamlanması, basılan bir düğme gibi bir girişte mantık seviyesi değişikliği ve bir iletişim bağlantısında alınan veriler gibi olayları içerir. Pil cihazlarında olduğu gibi güç tüketiminin önemli olduğu durumlarda, kesintiler ayrıca bir mikro denetleyiciyi, bir çevresel olay tarafından bir şey yapması gerekene kadar işlemcinin durdurulduğu düşük güçlü bir uyku durumundan uyandırabilir.
Programlar
Bir sisteme harici, genişletilebilir bellek sağlamak maliyetli olacağından, tipik olarak mikro denetleyici programları mevcut yonga üstü belleğe sığmalıdır. Derleyiciler ve montajcılar hem dönüştürmek için kullanılan üst düzey ve montaj dil kompakt içine kodlarını makine koduna mikro kontrolörün hafızada saklanmak üzere. Cihaza bağlı olarak, program, bellek, kalıcı olabilir salt okunur bellek yalnızca fabrikada programlanabilir ya da saha değiştirilebilir olabilir flaş veya silinebilir salt okunur bellek.
Üreticiler , hedef sistemin donanım ve yazılım geliştirmesine yardımcı olmak için genellikle mikro denetleyicilerinin özel versiyonlarını ürettiler . Başlangıçta bunlar, program belleğinin ultraviyole ışıkla silinebildiği , bir programlama ("yanma") ve test döngüsünden sonra yeniden programlanmaya hazır olan cihazın üstünde bir "pencere" bulunan EPROM sürümlerini içeriyordu . 1998'den beri EPROM sürümleri nadirdir ve kullanımı daha kolay (elektronik olarak silinebilir) ve üretimi daha ucuz olan EEPROM ve flash ile değiştirilmiştir .
ROM'a dahili bellek yerine harici bir cihaz olarak erişildiğinde başka sürümler de mevcut olabilir, ancak bunlar, ucuz mikro denetleyici programcılarının yaygın olarak bulunmasından dolayı nadir hale gelmektedir.
Bir mikro denetleyicide sahada programlanabilir cihazların kullanılması, ürün yazılımının sahada güncellenmesine izin verebilir 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 teslim süresini de azaltır.
Yüz binlerce özdeş cihaza ihtiyaç duyulduğunda, üretim sırasında programlanmış parçaların kullanılması ekonomik olabilir. Bu " maske programlı " kısımlar, aynı zamanda çipin mantığıyla aynı şekilde yerleştirilmiş programa sahiptir.
Özelleştirilmiş bir mikro denetleyici , uygulamanın gereksinimlerine uyarlanmış ek işleme kapasitesi, çevre birimleri ve arabirimler için kişiselleştirilebilen bir dijital mantık bloğu içerir . Bir örnek AT91CAP gelen Atmel .
Diğer mikrodenetleyici özellikleri
Mikrodenetleyiciler genellikle birkaç ila düzinelerce genel amaçlı giriş / çıkış pini (GPIO) içerir. GPIO pinleri, bir giriş veya çıkış durumuna göre yapılandırılabilir yazılımlardır. 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. Analogdan dijitale dönüştürücünün (ADC) amacı budur . İşlemciler dijital verileri, yani 1'ler ve 0'lar, yorumlamak ve işlemek için oluşturulduğundan, bir cihaz tarafından kendisine 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 biçime 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 vermesine izin veren dijitalden analoğa dönüştürücüdür (DAC).
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 programlanabilir aralık zamanlayıcıdır (PIT). Bir PIT, sıfıra taşarak, bir değerden sıfıra veya sayım yazmacının kapasitesine kadar geri sayabilir. Sıfıra ulaştığında, işlemciye saymayı bitirdiğini belirten bir kesme gönderir. Bu, klimayı açmaya, ısıtıcıyı açmaya vb. İhtiyaç duyup duymadıklarını 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 güç dönüştürücülerini , dirençli yükleri, motorları , vb. Sıkı zamanlayıcı döngülerinde birçok CPU kaynağı kullanmadan kontrol etmesini mümkün kılar .
Bir üniversal asenkron alıcı / verici (UART) blok mümkün CPU üzerinde çok az bir yük ile seri bir hat üzerinden almak ve veri iletimi için yapar. Özel yonga üstü donanım, genellikle Inter-Integrated Circuit ( I²C ), Serial Peripheral Interface ( SPI ), Universal Serial Bus ( USB ) ve Ethernet gibi dijital formatlarda diğer cihazlarla (çipler) iletişim kurma yeteneklerini içerir .
Daha yüksek entegrasyon
Mikro denetleyiciler, RAM'i ve geçici olmayan belleği CPU ile aynı yongaya entegre ettiklerinden harici bir adres veya veri yolu uygulayamayabilir. Daha az pin kullanarak çip çok daha küçük ve daha ucuz bir pakete yerleştirilebilir.
Belleği ve diğer çevre birimlerini tek bir yongaya entegre etmek ve bunları bir birim olarak test etmek, o yonganın maliyetini artırır, ancak çoğu zaman bir bütün olarak gömülü sistemin 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 yongaya sahip olmak tipik olarak daha küçük ve daha ucuz bir devre kartına izin verir ve devre kartını monte etmek ve test etmek için gereken işçiliği azaltır. bitmiş montaj için kusur oranını azaltma eğilimine ek olarak.
Mikro denetleyici , genellikle aşağıdaki özelliklere sahip tek bir tümleşik 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 geçici bellek ( RAM )
- Program ve işletim parametresi saklama için ROM , EPROM , EEPROM veya Flash bellek
- Ayrı bir paket pininin mantık durumunun kontrolüne veya tespitine izin veren ayrık giriş ve çıkış bitleri
- seri bağlantı noktaları ( UART'lar ) gibi seri giriş / çıkış
- sistem bağlantısı için I²C , Seri Çevre Birimi Arabirimi ve Denetleyici Alan Ağı gibi diğer seri iletişim arabirimleri
- zamanlayıcılar , olay sayaçları, PWM üreteçleri ve bekçi uygulaması gibi çevre birimleri
- saat üreteci - genellikle bir kuvars zamanlama kristali, rezonatör veya RC devresi için bir osilatör
- ç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 ve devre içi hata ayıklama desteği
Bu entegrasyon, ayrı yongalar kullanarak eşdeğer sistemler üretmek için gerekebilecek yonga 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 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 izin verir.
Bazı mikro denetleyiciler bir Harvard mimarisi kullanı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 kayıtların uzunluğundan farklı bir bit boyutunda olabilir; örneğin: 8-bit veri kayıtlarıyla kullanılan 12-bit komutlar.
Hangi çevre biriminin entegre edileceğine karar vermek genellikle zordur. Mikrodenetleyici satıcıları, genellikle müşterilerinin pazara sunma süresi ve genel olarak daha düşük sistem maliyetine karşı işletim frekansları ve sistem tasarımı esnekliği ile ticaret yaparlar. Üreticilerin yonga boyutunu ek işlevselliğe göre en aza indirme ihtiyacını dengelemesi gerekiyor.
Mikrodenetleyici mimarileri çok çeşitlidir. Bazı tasarımlar, pakete entegre edilmiş bir veya daha fazla ROM, RAM veya G / Ç işlevine sahip genel amaçlı mikroişlemci çekirdeklerini içerir. Diğer tasarımlar, kontrol uygulamaları için özel olarak oluşturulmuştur. Bir mikro denetleyici komut seti genellikle kontrol programlarını daha kompakt hale getirmek için bit manipülasyonu (bit bazlı işlemler) için tasarlanmış birçok talimat içerir . Örneğin, genel amaçlı bir işlemci, bir kayıttaki bir biti test etmek için birkaç talimat gerektirebilir ve bit ayarlanmışsa, bir mikro denetleyicinin bu yaygın olarak gerekli işlevi sağlamak için tek bir talimatı olabilir.
Mikrodenetleyicilerin geleneksel olarak bir matematik işlemcisi yoktur , bu nedenle kayan nokta aritmetiği yazılım tarafından gerçekleştirilir. Bununla birlikte, bazı yeni tasarımlar FPU ve DSP için optimize edilmiş özellikler içerir. Microchip'in PIC32 MIPS tabanlı hattı buna bir örnek olabilir.
Programlama ortamları
Mikrodenetleyiciler başlangıçta yalnızca assembly dilinde programlanmıştı , ancak C , Python ve JavaScript gibi çeşitli üst düzey programlama dilleri de artık mikro denetleyicileri ve gömülü sistemleri hedeflemek için ortak kullanımda . Genel amaçlı diller için derleyiciler , tipik olarak mikro denetleyicilerin benzersiz özelliklerini daha iyi desteklemek için bazı kısıtlamalara ve geliştirmelere sahip olacaktır. Bazı mikro denetleyiciler, belirli türdeki uygulamaların geliştirilmesine yardımcı olacak ortamlara sahiptir. Mikrodenetleyici satıcıları, donanımlarını benimsemeyi kolaylaştırmak için genellikle araçları serbestçe kullanılabilir hale getirir.
Ö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 8051 için SDCC gibi kendi standart dışı C lehçelerini gerektirebilir . Tercümanlar ayrıca MicroPython gibi standart olmayan özellikler içerebilir , ancak bir çatal olan CircuitPython , donanım bağımlılıklarını kitaplıklara taşımaya ve dilin daha bir CPython standardına uymasına bakmış olsa da .
Bazı mikro denetleyiciler için tercüman sabit yazılımı da mevcuttur. Örneğin , ilk mikro denetleyiciler Intel 8052'de BASIC ; TEMEL ve ORTAYA üzerinde birZilog Z8 yanı sıra bazı modern cihazlarla. Tipik olarak bu tercümanlar etkileşimli programlamayı destekler .
Bazı mikrodenetleyiciler için simülatörler mevcuttur. Bunlar, bir geliştiricinin, mikro denetleyicinin davranışının ve gerçek parçayı kullanıyorlarsa programları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 pek çok donanımı simüle edememekle sınırlı olsa da, fiziksel uygulamada istenildiği zaman yeniden üretilmesi zor olabilecek koşulları uygulayabilir ve hata ayıklama ve analiz etmenin en hızlı yolu olabilir. sorunlar.
En son mikro denetleyiciler, genellikle bir devre içi emülatör (ICE) tarafından JTAG aracılığıyla erişildiğinde , bir hata ayıklayıcı ile ürün yazılımının hata ayıklamasına izin veren yonga üzerinde hata ayıklama devresiyle 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 izleme ICE, çalıştırılan programı ve bir tetikleme noktasından önce / sonra MCU durumlarını kaydedebilir.
Türler
2008 itibariyle, aşağıdakileri içeren birkaç düzine mikro denetleyici mimarisi ve satıcı bulunmaktadır:
-
ARM çekirdek işlemcileri (birçok satıcı)
- ARM Cortex-M çekirdekleri özellikle mikro denetleyici uygulamalarına yöneliktir
- Mikroçip Teknolojisi Atmel AVR (8 bit), AVR32 (32 bit) ve AT91SAM (32 bit)
- Cypress Semiconductor'ın PSoC'sinde kullanılan M8C çekirdeği (Programlanabilir Yonga Üzerinde Sistem)
- Freescale ColdFire (32 bit) ve S08 (8 bit)
- Freescale 68HC11 (8 bit) ve Motorola 6800 ailesini temel alan diğerleri
- NXP Semiconductors , Infineon ve diğerleri tarafından da üretilen Intel 8051
- Infineon : 8 bit XC800 , 16 bit XE166 , 32 bit XMC4000 (ARM tabanlı Cortex M4F), 32 bit TriCore ve 32 bit Aurix Tricore Bit mikro denetleyiciler
- Maxim Entegre MAX32600, MAX32620, MAX32625, MAX32630, MAX32650, MAX32640
- MIPS
- Mikroçip Teknolojisi PIC , (8-bit PIC16, PIC18, 16-bit dsPIC33 / PIC24), (32-bit PIC32)
- NXP Yarı İletkenler LPC1000, LPC2000, LPC3000, LPC4000 (32-bit), LPC900, LPC700 (8-bit)
- Paralaks Pervane
- PowerPC ISE
- Tavşan 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 Ardışık 8 bit 8051 mikro denetleyiciler ve karışık sinyalli ARM tabanlı 32 bit mikro denetleyiciler
- 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)
Birçoğu çok dar uygulamalarda kullanılan veya mikrodenetleyicilerden çok uygulama işlemcilerine benzeyen birçok diğerleri mevcuttur. Mikrodenetleyici pazarı, çok sayıda satıcı, teknoloji ve pazarla son derece parçalanmış durumda. Birçok satıcının birden fazla mimari sattığını veya sattığını unutmayın.
Gecikmeyi kes
Genel amaçlı bilgisayarların aksine, gömülü sistemlerde kullanılan mikro denetleyiciler, genellikle talimat verimi üzerinden kesinti gecikmesini optimize etmeye çalışır . Sorunlar, hem gecikmeyi azaltmayı hem de daha öngörülebilir hale getirmeyi (gerçek zamanlı kontrolü desteklemek için) içerir.
Elektronik bir cihaz bir kesintiye neden olduğunda, bağlam değiştirme sırasında , kesinti işlemekten sorumlu yazılımın çalışabilmesi için önce ara sonuçların (kayıtların) kaydedilmesi gerekir. Ayrıca bu kesme işleyicisi bittikten sonra geri yüklenmeleri gerekir . Daha fazla işlemci kaydı varsa , bu kaydetme ve geri yükleme işlemi daha uzun sürebilir ve gecikmeyi artırır. (Bir ISR bazı yazmaçların kullanılmasını gerektirmiyorsa, onları kaydetmek ve geri yüklemek yerine onları yalnız bırakabilir, bu durumda bu kayıtlar gecikmeyle ilgili değildir.) Bu tür bağlam / geri yükleme gecikmesini azaltmanın yolları, sahip olmayı içerir. Merkezi işlem birimlerindeki nispeten az sayıda kayıt (önemli ölçüde kesintisiz işlemlerin çoğunu yavaşlattığı için istenmeyen) veya en azından donanımın hepsini kaydetmemesi (yazılımın geri kalanını "manuel olarak" kaydederek telafi etmesi gerekiyorsa bu başarısız olur) . Diğer bir teknik, silikon geçitlerin "gölge yazmaçlara" harcanmasını içerir: Yalnızca kesme yazılımı tarafından kullanılan, belki de özel bir yığını destekleyen bir veya daha fazla çift kayıt.
Kesinti gecikmesini etkileyen diğer faktörler şunları içerir:
- Mevcut CPU etkinliklerini tamamlamak için gereken döngüler. Bu maliyetleri en aza indirmek için, mikro denetleyiciler kısa boru hatlarına (genellikle üç talimat veya daha az), küçük yazma tamponlarına 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ığının çoğuna olan ihtiyacı ortadan kaldırmaya 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, kesinti ne kadar uzun süre engellenirse kesinti gecikmesi artar. Sistem gecikmesinde sert dış kısıtlamalar olduğunda, geliştiriciler genellikle kesinti gecikmelerini ölçmek ve hangi kritik bölümlerin yavaşlamalara neden olduğunu izlemek için araçlara ihtiyaç duyar.
- Yaygın bir teknik, kritik bölüm boyunca tüm kesintileri engeller. Bunun uygulanması kolaydır, ancak bazen kritik bölümler rahatsızlık verecek kadar uzar.
- Daha karmaşık bir teknik, yalnızca bu veri yapısına erişimi tetikleyebilecek kesintileri engeller. Bu, genellikle ilgili sistem veri yapılarına iyi bir şekilde karşılık gelmeyen kesme önceliklerine dayanır. Buna göre, bu teknik çoğunlukla çok kısıtlı ortamlarda kullanılmaktadır.
- İşlemciler, bazı kritik bölümler için donanım desteğine sahip olabilir. Örnekler, bir sözcük içindeki bitlere veya baytlara atomik erişimi desteklemeyi veya
Alt uç mikro denetleyiciler, daha yüksek uçlulara göre daha az kesme gecikmesi denetimini destekleme eğilimindedir.
Bellek teknolojisi
Mikrodenetleyicilerde yaygın olarak iki farklı bellek türü kullanılır; aygıt yazılımını depolamak için geçici olmayan bellek ve geçici veriler için okuma-yazma belleği.
Veri
En eski mikro denetleyicilerden günümüze, altı transistörlü SRAM neredeyse her zaman okuma / yazma çalışma belleği olarak kullanılır ve yazmaç dosyasında bit başına birkaç transistör daha kullanılır . FRAM veya MRAM , 4 ila 10 kat daha yoğun olduğundan potansiyel olarak yerini alabilir ve bu da onu daha uygun maliyetli hale getirir.
SRAM'a ek olarak, bazı mikro denetleyicilerde ayrıca veri depolama için dahili EEPROM bulunur; ve hatta hiç olmayan (veya yeterli olmayan) olanlar bile genellikle harici seri EEPROM yongasına ( BASIC Stamp gibi ) veya harici seri flash bellek yongasına bağlanır .
2003 yılında başlayan birkaç yeni mikro denetleyicinin "kendi kendine programlanabilen" flash belleği vardır.
Firmware
En eski mikrodenetleyiciler, bellenimi depolamak için maske ROM'u kullandı. Daha sonraki mikro denetleyiciler ( Freescale 68HC11'in ilk sürümleri ve ilk PIC mikro denetleyicileri gibi ), UV ışığı yoluyla silmeye izin vermek için yarı saydam bir pencere kullanan EPROM belleğe sahipken, üretim sürümlerinde OTP (bir defalık programlanabilir) olan böyle bir pencere yoktu. . Aygıt yazılımı güncellemeleri, mikro denetleyicinin kendisini değiştirmeye eşdeğerdi, bu nedenle birçok ürün yükseltilebilir değildi.
Motorola MC68HC805 , aygıt yazılımını depolamak için EEPROM'u kullanan ilk mikro denetleyiciydi . Mikroçip kişiye zaman EEPROM mikroişlemcileri 1993'te daha popüler oldu PIC16C84 ve Atmel bir kişiye 8051 çekirdekli kullanımı ilk olarak mikro NOR Flash belleğe yazılımı saklamak için. Günümüzün mikro denetleyicileri, FRAM kullanan birkaç modelle neredeyse yalnızca flash bellek kullanıyor ve bazı ultra düşük maliyetli parçalar hala OTP veya Mask-ROM kullanıyor.
Ayrıca bakınız
- Yaygın mikrodenetleyicilerin listesi
- Wi-Fi mikro denetleyicilerinin listesi
- Açık kaynaklı donanım projelerinin listesi
- Microbotics
- Programlanabilir Mantık Denetleyici
- Tek kartlı mikro denetleyici