Mikrodenetleyici - Microcontroller
Bir mikro-kontrolör ( MCU için mikro ünitesi ), küçük bir bilgisayar tek üzerine bir metal oksit yarı iletken (MOS) entegre devre (IC) çip. 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çimindeki program belleği de genellikle ç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 mikroişlemcilerin aksine gömülü uygulamalar için tasarlanmıştır .
Modern terminolojide, bir mikrodenetleyici, çip üzerindeki bir sisteme (SoC) benzer, ancak ondan daha az karmaşıktır . SoC, bileşenlerinden biri olarak bir mikro denetleyici içerebilir, ancak genellikle onu grafik işleme birimi (GPU), Wi-Fi modülü veya bir veya daha fazla yardımcı işlemci gibi gelişmiş çevre birimleriyle bütünleştirir .
Mikrodenetleyiciler, otomobil motor kontrol sistemleri, vücuda yerleştirilebilir tıbbi cihazlar, uzaktan kumandalar, ofis makineleri, ev aletleri, elektrikli aletler, oyuncaklar ve diğer gömülü sistemler gibi otomatik olarak kontrol edilen ü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 azaltarak, daha da fazla cihazı ve işlemi 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. 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ı mikrodenetleyiciler, dört bit 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 kesinti gibi bir olayı beklerken işlevselliği koruma yeteneğine sahiptirler ; uyurken (CPU saati ve çoğu çevre birimi kapalı) güç tüketimi yalnızca nanowatt olabilir ve 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 mikrodenetleyicinin kökenleri , MOS transistörü olarak da bilinen MOSFET'in (metal oksit-yarı iletken alan etkili transistör) icadına kadar uzanabilir . 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 üretilmiş bir entegre devre çipi olan MOS entegre devre kavramını önerdi . 1964 yılına gelindiğinde, MOS çipleri bipolar çiplerden daha yüksek transistör yoğunluğuna ve daha düşük üretim maliyetlerine ulaşmıştı . MOS çiplerinin karmaşıklığı Moore yasasının öngördüğü bir oranda daha da arttı ve 1960'ların sonlarında tek bir MOS çipinde yüzlerce transistörle büyük ölçekli entegrasyona (LSI) yol açtı . Mühendisler, eksiksiz bir bilgisayar işlemcisinin tek bir MOS LSI yongasında bulunabileceğini fark etmeye başladığından , MOS LSI yongalarının bilgi işlem için 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 , çoklu MOS LSI çipleriyle geliştirildi. İlk tek çipli mikroişlemci, 1971'de tek bir MOS LSI çipi üzerinde piyasaya sürülen Intel 4004'tü . Bu, Federico Faggin tarafından , onun silikon kapılı MOS teknolojisi kullanılarak, Intel mühendisleri Marcian Hoff ve Stan Mazor ve Busicom mühendisi Masatoshi ile birlikte geliştirildi. Şima . Bunu 4 bit Intel 4040 , 8 bit Intel 8008 ve 8 bit Intel 8080 izledi . Bu işlemcilerin tümü, bir çalışma sistemini uygulamak için bellek ve çevresel arabirim yongaları dahil olmak üzere birkaç harici yonga gerektiriyordu. Sonuç olarak, toplam sistem maliyeti birkaç yüz (1970'lerde ABD) dolardı, bu da küçük cihazların ekonomik olarak bilgisayarlaştırılmasını imkansız hale getirdi. MOS Technology , bu ekonomik engeli ele almak amacıyla 100 doların altındaki mikroişlemcileri, 6501 ve 6502'yi tanıttı , ancak bu mikroişlemciler, toplam sistem maliyetini yüzlerce dolarda tutan harici desteğe, belleğe ve çevresel yongalara ihtiyaç duyuyordu.
geliştirme
Bir kitap, TI mühendisleri Gary Boone ve Michael Cochran'ın 1971'de ilk mikrodenetleyicinin başarılı bir şekilde yaratılmasına atıfta bulunuyor. Çalışmalarının sonucu, 1974'te ticari olarak piyasaya sürülen TMS 1000 oldu. Salt okunur bellek, okuma/yazma belleği, işlemci ve saat tek bir çip üzerindeydi ve gömülü sistemlere yönelikti.
1970'lerin başları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 çipli TMS 1000'in varlığına yanıt olarak Intel, kontrol uygulamaları için optimize edilmiş bir çip olan Intel 8048 üzerinde bir bilgisayar sistemi geliştirdi ve ticari parçalar ilk kez 1977'de sevk edildi. Aynı çip üzerinde RAM ve ROM'u birleştirdi. mikroişlemci. Çok sayıda uygulama arasında, bu çip sonunda bir milyardan fazla PC klavyesine girecek. O dönemde Intel'in Başkanı Luke J. Valenter, mikrodenetleyicinin şirket tarihindeki en başarılı ürünlerden biri olduğunu belirtti ve mikrodenetleyici bölümünün bütçesini %25'in üzerinde genişletti.
Şu anda çoğu mikrodenetleyicinin eşzamanlı varyantları vardı. Birinde EPROM program hafızası vardı ve paketin kapağında ultraviyole ışığa maruz bırakılarak silinmesine izin veren şeffaf bir kuvars pencere vardı . Bu silinebilir çipler genellikle prototipleme için kullanılıyordu. 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ıldı. Bir OTP mikro denetleyicide, PROM genellikle EPROM ile aynı tipteydi, ancak çip paketinde kuvars penceresi yoktu; EPROM'u ultraviyole ışığa maruz bırakmanın bir yolu olmadığı için silinemedi. Silinebilir versiyonlar kuvars pencereli seramik paketler gerektirdiğinden, daha düşük maliyetli opak plastik paketlerde yapılabilecek OTP versiyonlarından önemli ölçüde daha pahalıydı. Silinebilir varyantlar için, camın büyük ölçüde opak olduğu ultraviyole ışığa şeffaflığı için 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, mikrodenetleyicilerin (Microchip PIC16C84 ile başlayarak ) EPROM için gerekli olduğu gibi pahalı bir paket olmaksızın elektriksel olarak hızlı bir şekilde silinmesine izin vererek hem hızlı prototiplemeye hem de sistem içi programlamaya izin verdi . (EEPROM teknolojisi bu andan önce mevcut olmuştu, ancak daha erken EEPROM düşük maliyetli seri üretilen mikro denetleyiciler için uygun olmayan hale., Daha pahalı ve daha az dayanıklı olduğu) Aynı yıl Atmel kullanarak ilk mikro denetleyici tanıtıldı Flaş bellek , bir special EEPROM'un türü. Diğer şirketler, her iki bellek türüyle de hızla izledi.
Günümüzde mikrodenetleyiciler ucuzdur ve belirli işlemciler etrafında büyük çevrimiçi topluluklarla hobiler için hazırdır.
Hacim ve maliyet
2002'de dünyada satılan tüm CPU'ların yaklaşık %55'i 8-bit mikrodenetleyiciler ve mikroişlemcilerdi.
1997'de iki milyardan fazla 8-bit mikrodenetleyici satıldı ve Semico'ya göre 2006'da dört milyardan fazla 8-bit mikrodenetleyici satıldı. Daha yakın zamanlarda 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 menzilli otomobilde yaklaşık 30 mikrodenetleyici 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'de en büyük hacimli MCU kategorisi haline geldi ve o yıl ilk kez 8-bit cihazları solladı [..] IC Insights, MCU pazarı, 32-bit cihazların sürekli olarak satışlardan ve birim hacimlerden daha fazla pay almasıyla önümüzdeki beş yıl içinde önemli değişiklikler geçirecek. 2017 yılına kadar, 32-bit MCU'ların mikrodenetleyici satışlarının %55'ini oluşturması bekleniyor [..] Birim hacimler açısından, 32-bit MCU'ların 2017'deki mikrodenetleyici gönderilerinin %38'ini oluşturması beklenirken, 16-bit cihazlar temsil edilecek Toplamın %34'ü ve 4/8-bit tasarımların o yıl satılan birimlerin %28'i olduğu tahmin edilmektedir. 32-bit MCU pazarının, gömülü işleme sistemlerinde daha yüksek hassasiyet seviyelerine yönelik artan talep ve İnternet kullanan bağlantıdaki büyüme 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 Market
Üretim maliyeti birim başına 0.10 doların altında olabilir.
2012'de, küresel bir krizin ardından -şimdiye kadarki en kötü yıllık satış düşüşü ve toparlanma ve yıllık ortalama satış fiyatındaki %17'lik düşüş - 1980'lerden bu yana en büyük düşüş- bir mikrodenetleyici için ortalama fiyat 0,88 ABD Dolarıydı (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-bit mikrodenetleyici satışları 4 milyar dolar civarındayken, 4-bit mikrodenetleyiciler de önemli satışlar gördü.
2015 yılında, 8-bit mikrodenetleyiciler 0,311 $ (1,000 adet), 16-bit 0,385 $ (1,000 adet) ve 32-bit 0,378 $ (1,000 adet, ancak 5,000 için 0,35 $) karşılığında satın alınabilir.
2018'de, 8 bit mikro denetleyiciler 0,03 ABD Doları, 16 bit 0,393 ABD Doları (1.000 birim, ancak 100 için 0,563 ABD Doları veya 2.000 tam makara için 0,349 ABD Doları) ve 32 bit 0,503 ABD Doları (1.000 birim, ancak 0,466 ABD Doları) karşılığında satın alınabilir. 5.000). Bir birim halinde daha düşük fiyatlı bir 32-bit mikrodenetleyici 0,891 dolara satın alınabilir.
2018'de, 2015'in üzerindeki 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 (1.000 birim) veya %2,6 daha yüksek fiyattan 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 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ı" açıklandı . Cihaz, "entegre Cortex-M0+ işlemcili ve hücresel sıcaklık ölçümü için optik iletişimli 0.04mm3 16nW kablosuz ve pilsiz sensör sistemidir ." "Bir kenarı sadece 0,3 mm'dir - bir pirinç tanesi tarafından cücedir. [...] RAM ve fotovoltaiklere ek olarak , yeni bilgi işlem cihazlarının işlemcileri ve kablosuz vericileri ve alıcıları vardır . Çünkü bunlar geleneksel olarak kullanılamayacak kadar küçüktürler. radyo antenleri, verileri görünür ışıkla alır ve iletir. Bir baz istasyonu, güç ve programlama için ışık sağlar ve verileri alır." Cihaz, IBM'in daha önce iddia edilen, Mart 2018'deki aylar öncesinden dünya rekoru büyüklüğündeki bilgisayarının 1/10'u büyüklüğünde, "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-ankrajlar" - dijital parmak izi uygulamaları için tasarlanmıştır.
Gömülü tasarım
Bir mikro denetleyici, bir işlemci, bellek ve çevre birimleri ile bağımsız bir sistem olarak kabul edilebilir ve gömülü bir sistem olarak kullanılabilir . Günümüzde kullanılan mikrodenetleyicilerin çoğu, otomobiller, telefonlar, ev aletleri 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 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. veriler için sensörler bulunur. Gömülü sistemlerde genellikle klavye, ekran yoktur. , diskler, yazıcılar veya bir kişisel bilgisayarın diğer tanınabilir G/Ç aygıtları ve her türlü insan etkileşim aygıtından yoksun olabilir.
kesintiler
Mikrodenetleyiciler , kontrol ettikleri gömülü sistemdeki olaylara gerçek zamanlı (öngörülebilir, ancak mutlaka hızlı olmasa da) yanıt vermelidir . Belirli olaylar meydana geldiğinde, bir kesme sistemi işlemciye mevcut talimat dizisini işlemeyi askıya alması ve kesintinin kaynağına bağlı olarak gereken herhangi bir işlemi gerçekleştirecek bir kesme hizmeti rutini (ISR veya "kesme işleyicisi") başlatması için sinyal verebilir. orijinal talimat dizisine geri döner. 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 bir girişte mantık düzeyi 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 yerlerde, kesintiler ayrıca bir mikro denetleyiciyi, işlemcinin çevresel bir olay tarafından bir şey yapması gerekene kadar durdurulduğu düşük güçlü uyku durumundan 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 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 belleği kalıcı, yalnızca fabrikada programlanabilen salt okunur bellek olabilir veya sahada değiştirilebilir flash veya silinebilir salt okunur bellek olabilir.
Üreticiler , hedef sistemin donanım ve yazılım geliştirilmesine yardımcı olmak için genellikle mikro denetleyicilerinin özel versiyonlarını üretmiştir . 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 bir "pencere" bulunan 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ı, bellenimin 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 programlı " parçalar, aynı zamanda çipin mantığıyla aynı şekilde ortaya konan programa sahiptir.
Özelleştirilmiş bir mikro denetleyici , uygulamanın gereksinimlerine uyarlanmış ek işleme yeteneği, ç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ı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ünün (ADC) amacı budur . İşlemciler 1'ler ve 0'lar gibi dijital verileri yorumlamak ve işlemek için tasarlandıkları için 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 forma dönüştürmek için kullanılır. Bazı mikrodenetleyicilerde daha az yaygın olan bir özellik , işlemcinin analog sinyaller veya voltaj seviyeleri çıkarmasına izin veren bir dijital-analog 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ıklı zamanlayıcıdır (PIT). Bir PIT, ya bir değerden sıfıra kadar geri sayabilir 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ülerinde birçok CPU kaynağı kullanmadan güç dönüştürücülerini , dirençli yükleri, motorları vb . 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. Adanmış çip üstü donanım ayrıca genellikle, Inter-Integrated Circuit ( I²C ), Serial Peripheral Interface ( SPI ), Universal Serial Bus ( USB ) ve Ethernet gibi dijital formatlarda diğer cihazlarla (yongalar) iletişim kurma yeteneklerini de içerir .
Daha yüksek entegrasyon
Mikro denetleyiciler, RAM ve kalıcı belleği CPU ile aynı çip üzerinde entegre ettikleri için harici bir adres veya veri yolu uygulayamazlar . Daha az pin kullanarak çip çok daha küçük, daha ucuz bir pakete yerleştirilebilir.
Belleği ve diğer çevre birimlerini tek bir yonga üzerinde entegre etmek ve bunları bir birim olarak test etmek, bu 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 çipe sahip olmak tipik olarak daha küçük ve daha ucuz bir devre kartı sağlar ve devre kartını monte etmek ve test etmek için gereken emeği azaltır. bitmiş montaj için kusur oranını düşürme eğilimine ek olarak.
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 geçici bellek ( RAM )
- Program ve işletim parametrelerinin saklanması için ROM , EPROM , EEPROM veya Flash bellek
- Ayrık giriş ve çıkış bitleri, tek bir paket pininin mantık durumunun kontrolüne veya algılanmasına izin verir
- seri portlar ( UART'lar ) gibi seri giriş/çıkış
- sistem ara bağlantısı için I²C , Seri Çevre Birimi Arayüzü ve Denetleyici Alan Ağı gibi diğer seri iletişim arayüzleri
- zamanlayıcılar , olay sayaçları, PWM jeneratörleri ve bekçi köpeği gibi çevre birimleri
- saat üreteci - genellikle bir kuvars zamanlama kristali, rezonatör veya RC devresi için bir osilatör
- birçoğu analogdan dijitale dönüştürücüler içerir, bazıları dijitalden analoga 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 ihtiyaç duyulacak 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 pin, yazılım tarafından seçilen pin fonksiyonu ile birkaç dahili çevre birimine arayüz oluşturabilir. Bu, bir parçanın, pimlerin özel işlevlere sahip olması durumundan 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 veriyolları, erişimlerin aynı anda 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 boyutu 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 müşterilerinden gelen pazara sunma süresi gereksinimlerine ve genel olarak daha düşük sistem maliyetine karşı çalışma frekansları ve sistem tasarımı esnekliği ticareti yapar. Ü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 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 yapılmıştır. Bir mikro denetleyici komut seti, genellikle, kontrol programlarını daha kompakt hale getirmek için bit manipülasyonu (bit bazında işlemler) için tasarlanmış birçok talimata sahiptir . Örneğin, genel amaçlı bir işlemci, bir kayıtta bir biti test etmek için birkaç talimat gerektirebilir ve eğer 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 yardımcı işlemcisi yoktur , bu nedenle kayan nokta aritmetiği yazılım tarafından gerçekleştirilir. Ancak, bazı yeni tasarımlar bir FPU ve DSP için optimize edilmiş özellikler içerir. Bir örnek, Microchip'in PIC32 MIPS tabanlı hattı olabilir.
Programlama ortamları
Mikrodenetleyiciler başlangıçta yalnızca Assembly dilinde programlandı , 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 yaygın olarak kullanılıyor . Genel amaçlı diller için derleyiciler , tipik olarak, mikro denetleyicilerin benzersiz özelliklerini daha iyi desteklemek için geliştirmelerin yanı sıra bazı kısıtlamalara da sahip olacaktır. Bazı mikro denetleyiciler, belirli uygulama türlerinin geliştirilmesine yardımcı olacak ortamlara sahiptir. Mikrodenetleyici satıcıları, donanımlarını benimsemeyi kolaylaştırmak için araçları genellikle ücretsiz olarak sunar.
Özel donanıma sahip mikro denetleyiciler, 8051 için SDCC gibi kendi standart olmayan C lehçelerini gerektirebilir, bu da 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ı engeller. Tercümanlar , MicroPython gibi standart olmayan özellikler de içerebilir , ancak bir çatal olan CircuitPython , donanım bağımlılıklarını kitaplıklara taşımayı ve dilin daha fazla CPython standardına uymasını sağlamayı amaçlamıştır .
Bazı mikrodenetleyiciler için yorumlayıcı bellenimi de mevcuttur. Örneğin , ilk mikrodenetleyiciler Intel 8052 üzerinde 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, gerçek parçayı kullanıyorlarsa mikrodenetleyicinin ve programlarının davranışının ne olması gerektiğini analiz etmesine izin verir. Bir simülatör , dahili işlemci durumunu ve ayrıca çıkışların durumunu gösterecek ve ayrıca giriş sinyallerinin üretilmesine izin verecektir. Bir yandan çoğu simülatör, bir sistemdeki diğer donanımların çoğunu simüle edememekten sınırlı olacak olsa da, aksi takdirde fiziksel uygulamada yeniden üretilmesi zor olabilecek koşulları uygulayabilirler ve hata ayıklama ve analiz etmenin en hızlı yolu olabilirler. sorunlar.
En son mikrodenetleyiciler genellikle , JTAG aracılığıyla bir devre içi öykünücü (ICE) tarafından erişildiğinde , bir hata ayıklayıcı ile bellenimin 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 değiştirilmesine izin verebilir. Bir izleme ICE, bir tetik noktasından önce/sonra yürütülen programı ve MCU durumlarını kaydedebilir.
Türler
2008 itibariyle, aşağıdakileri içeren birkaç düzine mikrodenetleyici mimarisi ve satıcısı vardır:
-
ARM çekirdek işlemcileri (birçok satıcı)
- ARM Cortex-M çekirdekleri özellikle mikrodenetleyici uygulamalarına yöneliktir
- Mikroçip Teknolojisi Atmel AVR (8-bit), AVR32 (32-bit) ve AT91SAM (32-bit)
- Cypress Semiconductor'ın PSoC'lerinde kullanılan M8C çekirdeği (Programmable System-on-Chip)
- 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 mikrodenetleyiciler
- 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 Elektronik : RL78 16-bit MCU ; RX 32 bit MCU ; süperH ; 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 yelpazesinde kullanılan veya mikrodenetleyicilerden çok uygulama işlemcileri gibi olan pek çok başkası mevcuttur. Mikrodenetleyici pazarı, çok sayıda satıcı, teknoloji ve pazarla son derece parçalıdır. Birçok satıcının birden fazla mimari sattığını veya sattığını unutmayın.
Kesinti gecikmesi
Genel amaçlı bilgisayarların aksine, gömülü sistemlerde kullanılan mikrodenetleyiciler genellikle talimat çıktısı ü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.
Bir elektronik cihaz bir kesintiye neden olduğunda, bağlam değiştirme sırasında ara sonuçların (kayıtlar) kesintiyi işlemekten sorumlu yazılımın çalışabilmesi için kaydedilmesi gerekir. Bu kesme işleyicisi 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 gecikmeyi artırabilir. (Eğer bir ISR, bazı kayıtların kullanılmasını gerektirmiyorsa, onları kaydetmek ve geri yüklemek yerine onları kendi haline bırakabilir, bu durumda bu kayıtlar gecikmeyle ilgili değildir.) Bu tür bağlam/geri yükleme gecikmesini azaltmanın yolları arasında şunlar yer alır: merkezi işlem birimlerinde nispeten az sayıda kayıt (kesintisiz işlemenin çoğunu önemli ölçüde 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) . Başka bir teknik, silikon kapıları "gölge kayıtlar" üzerinde harcamayı içerir: Yalnızca kesme yazılımı tarafından kullanılan, belki de özel bir yığını destekleyen bir veya daha fazla yinelenen kayıt.
Kesinti gecikmesini etkileyen diğer faktörler şunlardır:
- Mevcut CPU etkinliklerini tamamlamak için gereken döngüler. Bu maliyetleri en aza indirmek için, mikro denetleyiciler kısa işlem hatlarına (genellikle üç veya daha az komut), 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 çoğu devam etme/yeniden başlatma mantığına duyulan ihtiyacın önlenmesine 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, kesmenin engellendiği süre kadar artar. Sistem gecikmesinde katı harici kısıtlamalar olduğunda, geliştiriciler genellikle kesinti gecikmelerini ölçmek ve hangi kritik bölümlerin yavaşlamaya neden olduğunu izlemek için araçlara ihtiyaç duyar.
- Ortak bir teknik, kritik bölüm süresince tüm kesmeleri engeller. Bunu uygulamak kolaydır, ancak bazen kritik bölümler rahatsız edici derecede uzar.
- Daha karmaşık bir teknik, bu veri yapısına erişimi tetikleyebilecek kesintileri engeller. Bu genellikle ilgili sistem veri yapılarına iyi uymayan kesme önceliklerine dayanır. Buna göre, bu teknik çoğunlukla çok kısıtlı ortamlarda kullanılır.
- İşlemcilerin bazı kritik bölümler için donanım desteği olabilir. Örnekler, bir sözcük içindeki bitlere veya baytlara atomik erişimin desteklenmesini veya
Alt uç mikrodenetleyiciler, üst uçtakilere göre daha az kesinti gecikmesi denetimini destekleme eğilimindedir.
Bellek teknolojisi
Mikrodenetleyicilerde yaygın olarak iki farklı bellek türü kullanılır; bellenimi depolamak için kalıcı bellek ve geçici veriler için okuma-yazma belleği.
Veri
En eski mikro denetleyicilerden günümüze, altı transistörlü SRAM hemen hemen 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ı mikro denetleyicilerde ayrıca veri depolama için dahili EEPROM bulunur; ve hatta hiç (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'te başlayan birkaç mikrodenetleyici, "kendinden programlanabilir" flash belleğe sahiptir.
bellenim
En eski mikrodenetleyiciler, bellenimi depolamak için maske ROM'u kullandı. Daha sonraki mikrodenetleyiciler ( Freescale 68HC11'in ilk sürümleri ve erken PIC mikro denetleyicileri gibi ), UV ışığı yoluyla silmeye izin vermek için yarı saydam bir pencere kullanan EPROM belleğe sahipken, üretim sürümlerinde böyle bir pencere yoktu, OTP (tek seferlik programlanabilir) . Bellenim güncellemeleri, mikrodenetleyicinin kendisini değiştirmeye eşdeğerdi, bu nedenle birçok ürün yükseltilemezdi.
Motorola MC68HC805 , bellenimi depolamak için EEPROM 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 neredeyse yalnızca flash bellek kullanır, birkaç model FRAM kullanır ve bazı ultra düşük maliyetli parçalar hala OTP veya Mask-ROM kullanır.
Ayrıca bakınız
- Ortak mikrodenetleyicilerin listesi
- Wi-Fi mikro denetleyicilerinin listesi
- Açık kaynaklı donanım projelerinin listesi
- mikrobotik
- Programlanabilir Mantık Denetleyici
- Tek kartlı mikrodenetleyici