Birçok modern dijital cihaz, bir mikro denetleyici ve bir mikroişlemci içerir. Bu elektronik bileşenler nelerdir?

Mikrodenetleyici nedir?

Altında mikrodenetleyici işlevlerini yerine getirmesi için gerekli olan ana donanım modüllerini içeren bir elektronik bileşen anlaşılmaktadır. Örneğin:

  • bilgi işlem çipi;
  • rOM modülü;
  • rAM modülü;
  • zamanlayıcı;
  • köprüler;
  • voltaj regülatörü;
  • giriş ve çıkış portları.

Böylece, tüm ilgili bileşenler yerleşiktir. Bir mikrodenetleyici, bir bilgisayara kurulursa, çoğunlukla bir PC'nin diğer donanım modülleri (örneğin, bir sabit disk veya RAM) ile doğrudan etkileşime girer ve bir PC'de, cihazda yerleşik olanlara benzer şekilde gereksiz modülleri kullanmaz.

Bu nedenle, voltaj kontrolünden sorumlu yerleşik modül sayesinde mikro denetleyici, harici voltajın dahili bileşenlerin güç kaynağı özelliklerine uyarlanmasını gerektirmez ve genel olarak voltaj seviyesini kontrol etmek için harici bileşenler kullanmaz.

Mikrodenetleyiciler genellikle bilgi işlem işlemlerinin bir kısmından sorumludur. Örneğin, bir PC'deyse, veri okuyup yazabilir, bilgisayara bağlı cihazları açıp kapatabilir. Bu nedenle performansları nispeten düşüktür.

Çoğu durumda mikroişlemci, mikroişlemcinin kullanımının çoğu durumda yüksek maliyeti nedeniyle pek mantıklı olmadığı cihazlarda kullanılır. Örneğin, bu bir mikrodalga fırın, klima veya bahçedeki bitkileri otomatik olarak sulamak için tasarlanmış bir cihaz olabilir. Belirtilen cihazlar genellikle yapıdaki en basit mikro denetleyiciyi içerir.

Mikroişlemci nedir?

Altında mikroişlemci Ana bileşeni bir silikon kristali veya başka bir yarı iletken olan bir mikro devreyi anlamak gelenekseldir. Aslında, mikro denetleyicideki bilgi işlem çipindekinden birkaç kat daha güçlüdür. Ancak, dikkate alınan elektronik bileşen türleri arasındaki benzerliklerin sona erdiği yer burasıdır.

Mikroişlemciler, kural olarak, çok sayıda ek bileşenle (mikro denetleyiciler gibi) gelmezler ve işlevlerini yerine getirmek için çoğunlukla harici aygıtlar kullanırlar. Bunlar RAM modülleri, voltaj regülatörleri veya ayrı güç kaynakları, giriş ve çıkış portları olabilir. Prensip olarak, bu bileşenler amaç bakımından kontrolörlerde olduğu gibi aynıdır, ancak haricidir. Bununla birlikte, mikroişlemcinin kendisinin hesaplama çipi gibi, çoğu durumda mikro denetleyicide bulunanlardan daha verimlidir.

İşlemcinin birkaç dahili modülü vardır. Kural olarak, bu tip elektronik bileşenlerin modern modelleri, bir mikro denetleyicinin tasarımının özelliği olan bu tür bileşenlerden bir RAM mikro devresi içerir. Mikroişlemci yapısındaki ROM, voltaj regülatörü, portlar genellikle yoktur.

Bir mikroişlemcinin temel amacı karmaşık hesaplama işlemidir. Bu nedenle, bir kural olarak, harika bir performansa sahiptir ve işlevselliği gerektiren cihazlara kurulur. Örneğin oyun konsollarında, PC'lerde, mobil cihazlarda.

Karşılaştırma

Bir mikro denetleyici ile bir mikroişlemci arasındaki temel fark, birinci bileşende, işlevlerini yerine getirmek için gereken ana modüllerin yerleşik olmasıdır. Mikroişlemci ise çoğunlukla harici aygıtları kullanır. Aynı zamanda, mikro denetleyici, yerleşik olanların performansı yeterli değilse kendi kaynaklarına da erişebilir. Tabii ki, bu sadece mikro denetleyicinin kullanıldığı cihazın tasarımında karşılık gelen harici cihazların sağlanması durumunda mümkündür. Prensip olarak var olmadıkları görülür ve daha sonra cihazın verimliliği, mikro denetleyicinin performansına bağlıdır.

Dikkate alınan iki elektronik bileşen arasında, kural olarak, hesaplama hızı seviyesinde önemli bir fark vardır. Çoğu durumda bir mikro denetleyici, benzer bir amaca sahip bir mikroişlemciden daha az etkilidir (tabii ki, belirli bir cihazda değiştirilebilirlerse), çünkü hesaplama işlemlerinin yalnızca bir bölümünü veya çok basit bir yapıya sahip olanları gerçekleştirmek için tasarlanmıştır.

Bir mikro denetleyici ile bir mikroişlemci arasındaki farkın ne olduğunu belirledikten sonra, tablodaki sonuçları düzelteceğiz.

Tablo

Mikrodenetleyici Mikroişlemci
Ortak ne yanları var?
Bir mikro denetleyicinin parçası olan bir bilgi işlem çipi, bir mikroişlemcininkilere benzer işlevleri yerine getirebilir.
Onların arasındaki fark ne?
İşlevleri gerçekleştirmek için esas olarak yerleşik donanım modüllerini kullanırEsas olarak harici donanım modülleri kullanır
Nispeten düşük bir performansa sahiptir, genellikle kurulu olduğu cihazın bilgi işlem işlemlerinin bir kısmından sorumludurYüksek performans ile karakterizedir ve bu nedenle, kurulduğu cihazda genellikle ana mikro devredir.
Genellikle işlemciye göre daha karlı bir alternatif olarak hareket eder (eğer mikro denetleyiciden yüksek performans istenmiyorsa), ancak prensip olarak onun tarafından değiştirilebilir.Kontrolör için daha üretken bir alternatif olarak kabul edilir, ancak bir kural olarak, işlevlerini yerine getirirken onun tarafından değiştirilemez - çünkü ikincinin performansı yeterli olmayabilir.

Bir mikroişlemcinin genellikle RAM, ROM ve IO pinleri yoktur. RAM, ROM, seri portlar, dijital ve analog G / Ç gibi çevresel cihazlarla iletişim kurmak için genellikle pinlerini veri yolu olarak kullanır. Bu nedenle pano düzeyinde genişler.

Bir mikro denetleyici, hepsi bir arada, işlemci, RAM, G / Ç'dir, bu nedenle mevcut RAM miktarını veya G / Ç bağlantı noktalarının sayısını artıramazsınız (diyemezsiniz). Kontrol veriyolu dahilidir ve kart tasarımcısı tarafından erişilebilir değildir.

Bu, bir mikroişlemcinin genellikle bir mikro denetleyiciden daha büyük genel amaçlı uygulamalara yerleştirilebileceği anlamına gelir. Mikrodenetleyici genellikle daha özel uygulamalar için kullanılır.

Bunların hepsi çok genel ifadelerdir. Sınırları bulanıklaştıran cipsler var.

Ancak bahsettiğim gibi çizgi bulanıklaşıyor. Örneğin, yeni Intel / AMD işlemcileri, yongaya bir bellek denetleyicisi ekler (daha önce yonga setindeydi).

Mikroişlemci ve mikro denetleyici, çeşitli amaçlar için kullanılan tipik programlanabilir elektronik çiplerdir. İkisi arasındaki temel fark, bir mikroişlemcinin ALU'lar, CU'lar ve kayıtlardan oluşan programlanabilir bir hesaplama mekanizması olmasıdır ve genellikle hesaplamalar yapabilen ve kararlar alabilen bir işlem birimi (bilgisayarlardaki CPU gibi) olarak kullanılır. Öte yandan, bir mikroişlemci, mikroişlemci, bellek ve paralel dijital G / Ç gibi bileşenleri bütünleştirdiği için "çip üzerindeki bilgisayar" olarak kabul edilen özel bir mikroişlemcidir.

Bir mikro denetleyici, bir mikroişlemcinin aksine, esas olarak gerçek zamanlı görev denetimi için tasarlanmıştır.

karşılaştırma Tablosu

Karşılaştırma temeliMikroişlemcimikrodenetleyici
anaALU, CU ve yazmaçları içeren bir silikon çipten oluşur.Mikroişlemci, bellek, G / Ç bağlantı noktası, kesinti kontrol ünitesi vb. İçerir.
KarakteristikBağımlı birimOtonom birim
G / Ç bağlantı noktalarıYerleşik bir G / Ç bağlantı noktası içermezYerleşik G / Ç bağlantı noktaları mevcut
Gerçekleştirilen işlemin türüTasarım ve işletimde genel amaç.Uygulama veya alan odaklı.
HedefBirinci sınıf pazarGömülü Pazar
Güç tüketimiDaha az enerji tasarrufu seçeneği sunarDaha fazla enerji tasarrufu seçeneği içerir

Mikroişlemci tanımı

Mikroişlemci ile Bir silikon mikro devre, merkezi bir işlem birimi (CPU) gibi çalışır. Üretici tarafından belirtilen önceden tanımlanmış talimatlara göre mantık ve aritmetik dahil olmak üzere işlevleri gerçekleştirebilir. CPU, bir ALU (aritmetik ve mantık birimi), bir kayıt ve bir kontrol biriminden oluşur. Bir mikroişlemci, komut setine ve sistem mimarisine bağlı olarak farklı şekillerde tasarlanabilir.

Mikroişlemci tasarımı için iki sistem mimarisi vardır - Harvard ve Von Neumann. Programlar ve veri belleği için izolasyon veri yollarında yerleşik Harvard tipi işlemci. Tersine, bir von Neumann mimarisi işlemci, program belleği ve verileri için tek bir veri yolunu paylaşır.

Mikroişlemci bağımsız bir birim değildir, bellek, zamanlayıcı, kesinti denetleyicisi gibi diğer donanım birimlerine bağlıdır. İlk mikroişlemci, 1971'de Intel tarafından geliştirildi ve Intel 4004 olarak adlandırıldı.

Mikrodenetleyici tanımı

Mikrodenetleyici mikroişlemcinin dezavantajlarının üstesinden gelmek için mikroişlemciden sonra geliştirilen bir teknolojidir. Mikro denetleyici mikro devresi, işlemci, bellek (RAM ve ROM), kayıtlar, kesinti kontrol blokları ve özel G / Ç bağlantı noktaları ile yüksek derecede entegrasyona sahiptir. Bir mikroişlemci eklentisi gibi görünüyor. Bir mikroişlemcinin aksine, bir mikro denetleyici diğer donanım bloklarına bağlı değildir, düzgün çalışması için gerekli tüm blokları içerir.

Mikrodenetleyici, gömülü alandaki mikroişlemciden daha değerlidir çünkü daha ekonomiktir ve daha kolay bulunur. İlk TMS 1000 mikro denetleyici, 1974 yılında Texas Instruments tarafından geliştirilmiştir. TI mikro denetleyicinin temel tasarımı, geliştiricilerin RAM, ROM, I / O desteği ekledikleri Intel 4004/4040 işlemcisine (4 bit) benzer. Mikrodenetleyicinin bir diğer avantajı da işlemciye kullanıcı talimatları yazabilmemizdir.

Mikroişlemci ve mikro denetleyici arasındaki temel farklar

  1. Mikroişlemci, bir aritmetik mantık birimi (ALU), bir kontrol birimi (CU) ve yazmaçları olan bir silikon çipten oluşur. Tersine, bir mikro denetleyici, bir mikroişlemcinin özelliklerini, ayrıca RAM, ROM, sayaçlar, G / Ç bağlantı noktaları vb. İçerir.
  2. Bir mikroişlemci, zamanlayıcılar, kesme denetleyicileri ve program ve veri belleği gibi bir grup başka mikro devre gerektirir ve bu da onu bağımlı hale getirir. Buna karşılık, mikro denetleyici zaten dahil olduğu için başka herhangi bir donanım bloğu gerektirmez.
  3. Mikro denetleyici örtük G / Ç bağlantı noktaları sağlarken, mikroişlemci yerleşik G / Ç bağlantı noktalarını kullanmaz.
  4. Mikroişlemci, genel amaçlı işlemleri gerçekleştirir. Bunun aksine, mikro denetleyici uygulama işlemlerini gerçekleştirir.
  5. Mikroişlemci performansa odaklanır, bu nedenle üst düzey pazarı hedefler. Öte yandan, mikro denetleyici gömülü pazara yöneliktir.
  6. Bir mikro denetleyicide enerji kullanımı, bir mikroişlemciden daha iyidir.

Sonuç

Bir mikroişlemci, birkaç farklı görev için genel amaçlı işlemler gerçekleştirebilir. Buna karşılık, bir mikro denetleyici, tüm yaşam döngüsü boyunca aynı görevi yerine getirdiği kullanıcı tanımlı görevleri gerçekleştirebilir.

Mikroişlemciler ve mikro denetleyiciler arasındaki fark sorulduğunda biraz kafamız karıştı. Aynı görünüyorlar, ama değiller. Öyleyse onları tartışalım ve temel farklılıkları analiz edelim.

Mikrodenetleyici

Tek çipte küçük bir bilgisayar gibi. Çeşitli görevleri yerine getirmekten sorumlu olan işlemci çekirdeği, ROM, RAM ve G / Ç bağlantı noktalarını içerir. Mikrodenetleyiciler genellikle doğrudan kullanıcı kontrolü gerektiren proje ve uygulamalarda kullanılır. Tek bir çipte ihtiyaç duyulan tüm bileşenlere sahip olduğu için, mikrodenetleyiciler genellikle gömülü sistemlerde kullanıldığından ve şirket tarafından üretilen ana mikro denetleyiciler gömülü pazarda kullanıldığından, işini yapmak için herhangi bir harici devreye ihtiyaç duymaz. Mikrodenetleyici, gömülü sistemlerin kalbi olarak adlandırılabilir. Popüler mikrodenetleyicilere bazı örnekler: 8051, AVR, resim serisi.

8051 mikro denetleyicisinin mimarisinin üstünde. Ve küçük bir proje için gerekli tüm bileşenlerin tek bir çipte mevcut olduğunu görebilirsiniz.

Bir mikroişlemcinin içinde yalnızca bir veya daha fazla tümleşik devrede bir işlemci bulunur. Mikrodenetleyiciler gibi RAM, ROM ve diğer çevre birimleri yoktur. Çalışmak için çevresel cihazların harici devresine bağlıdırlar. Ancak mikroişlemciler belirli bir görev için yapılmazlar, ancak yazılım, oyunlar ve çok fazla bellek gerektiren diğer uygulamalar geliştirmek gibi ve girdi ve çıktının tanımlanmadığı görevlerin karmaşık ve zor olduğu durumlarda ihtiyaç duyulur. Bir bilgisayar sisteminin kalbi olarak adlandırılabilir. Bazı örnekler Pentium, i3 ve i5 mikroişlemci vs.'dir.

Mikroişlemci mimarisinin bu görüntüsünden, işlem cihazı olarak yazmaçları ve ALU'ları olduğunu ve içinde RAM, ROM bulunmadığını kolayca görebilirsiniz.

Peki bir mikroişlemci ile bir mikro denetleyici arasındaki fark nedir?

1. Aralarındaki temel fark, mikroişlemciler söz konusu olduğunda, mikro denetleyiciler RAM, ROM, EEPROM'da harici bir çevresel aygıtın varlığıdır, harici devreler kullanmalıyız.

2. Çevresel mikrodenetleyicinin tamamı tek bir çip üzerine monte edilmiştir, mikroişlemci hacimli iken kompakttır.

3. Mikrodenetleyiciler tamamlayıcı metal oksit yarı iletken teknolojisi kullanılarak üretilirler, bu nedenle mikro işlemcilerden çok daha ucuzdurlar. Ek olarak, mikro denetleyicilerin daha az harici bileşene ihtiyaç duydukları için daha ucuz olduğu, mikroişlemci tabanlı bir sistemin toplam maliyetinin ise bu tür cihazlar için gereken çok sayıda harici bileşen nedeniyle yüksek olduğu iddia edilmektedir.

4. Mikrodenetleyicilerin işlem hızı yaklaşık 8MHz ila 50MHz'dir, ancak mikroişlemcilerin 1GHz'in üzerindeki işlem hızlarından farklı olarak, mikrodenetleyicilerden çok daha hızlı çalışırlar.

5. Genel olarak, mikrodenetleyiciler bekleme veya güç tasarrufu modu gibi güç tasarrufu sistemlerine sahiptir, bu nedenle genel olarak daha az güç kullanır ve ayrıca harici bileşenlerde düşük genel güç tüketimi kullanır. Mikroişlemciler genellikle bir güç tasarrufu sisteminden yoksundur ve onunla birçok harici bileşen kullanılır, bu nedenle güç tüketimi mikrodenetleyicilere göre yüksektir.

6. Mikrodenetleyiciler kompakttır, bu nedenle bu parametre küçük ürünler ve uygulamalar için sistemlerde karlı ve verimli olmalarını sağlarken, mikroişlemciler hantal olduğundan büyük ürünler için tercih edilirler.

7. Mikrodenetleyici tarafından gerçekleştirilen görevler sınırlıdır ve genellikle daha az karmaşıktır. Mikroişlemciler tarafından gerçekleştirilen görevler şunlardır: Yazılım geliştirme, oyun geliştirme, web siteleri, evrak işleri vb. Genellikle daha karmaşıktır, bu nedenle daha fazla bellek ve hıza ihtiyaç duyarlar, bu nedenle harici ROM, RAM kullanılır.

8. Mikrodenetleyiciler, ayrı mikroişlemcilerin bulunduğu Harvard program belleği ve veri belleği mimarisine dayanır ve programların ve verilerin bir modül belleğinde depolandığı von Neumann modelini temel alır.

Altera-Siklon ve Arduino

Sorunun özü. FPGA ve mikro denetleyici arasındaki fark

Her bir acemi mikro işlemci, gelişiminin belirli bir aşamasında fPGA arasındaki fark (Altera veya Xilinx'ten) ve mikrodenetleyici (mikroişlemci)?

Forumları okuyorsunuz - bu alandaki uzmanlar, bunların karşılaştırılamayacak tamamen farklı şeyler olduğunu yazıyor, farklı olduklarını savunuyorlar. mimari... Verilog veya C ++ ile ilgili bir kılavuz okuduğunuzda, her ikisi de benzer işlevselliğe sahip benzer operatörler kullanır, sözdizimi benzer olsa bile, ancak neden farklılar? Geziciye gidersiniz - orada LED'lerle (veya hatta sadece ampullerle) FPGA yanıp sönüyor, Arduino'daki projelere bakıyor - orada robotları kontrol ediyorlar. Dur!

Ama şimdi duralım ve kendimize soralım: neden FPGA - aptal ampul ve Arduino - akıllı robot? Sonuçta, hem birinci hem de ikinci programlanabilir bir cihaz gibi görünüyor, gerçekten FPGA Robot İçin Fırsatlar Yeterli Değil mi?

Bir dereceye kadar, "Ne fPGA ve mikro denetleyici arasındaki fark? " böyle bir örnekle ortaya çıkar.

Hemen not edelim. İşlevsel FPGA başlangıçta aşağı değil mikrodenetleyici(ve bu arada mikroişlemci de), daha doğrusu - bir ve ikincinin ana işlevleri esasen aynıdır - belirli koşullar altında mantıksal 0 veya 1'i vermek ve hız, pim sayısı (bacaklar) ve boru hattı olasılıkları hakkında konuşursak, o zaman mikrodenetleyici önce FPGAama genellikle uzak. Ama bir "ama" var. Aynı yazılım algoritmasını iki farklı cihazda geliştirme zamanı (FPGA ve mikro denetleyici) birkaç kez, hatta onlarca kez farklılık gösterir. Kesinlikle FPGA burada vakaların% 99'unda MC'den oldukça düşüktür. Ve bu hiç de dillerin kafa karışıklığıyla ilgili değil Verilog, VHDL veya AHDLve cihazın kendisinde FPGA.

Programlama dilinin FPGA ve mikrodenetleyici mimarisi ile etkileşimi hakkında

FPGA: içinde FPGA ve karmaşık otomatik zincirler yoktur (işin bir kısmını sizin için yapar). Yalnızca demir tel yolları ve otoyollar, girişler, çıkışlar, mantık blokları ve bellek blokları vardır. İzler arasında özel bir sınıf var - bir saat izi (saat frekansını yürütmenin önerildiği belirli pimlere bağlı).

Ana oyuncu kadrosu:

Parça - mikro devrenin katmanlarına lehimlenmiş metal, bloklar arasında bir elektrik iletkenidir.

Bloklar, hücrelerden oluşan bir pano üzerindeki ayrı konumlardır. Bloklar, genel olarak sinyaller üzerinde bilgi, çarpma, toplama ve mantıksal işlemleri depolamak için kullanılır.

Hücreler, birkaç birimden onlarca transistöre kadar olan gruplardır.

Transistör, TTL mantığının ana unsurudur.

Sonuçlar (mikro devre bacakları) - onlar aracılığıyla değişim gerçekleşir FPGA dış dünya ile. Aygıt yazılımı, saat frekansı alımı, güç kaynağı için tasarlanmış özel amaçlı ayaklar ve programda amacı kullanıcı tarafından belirlenen bacaklar vardır. Ve kural olarak, bunlardan çok daha fazlası var mikrodenetleyici.

Saat üreteci - işin çoğunun dayandığı saat darbelerini üreten harici bir mikro devre FPGA.

FPGA mimarisi. Kurucu unsurların birbiriyle ilişkisi

İzler, özel CMOS transistörler kullanılarak bloklara bağlanır. Bu transistörler, durumlarını (açık veya kapalı) uzun süre koruyabilirler. Transistörün durumu, yalnızca belirli bir rota boyunca bir sinyal uygulandığında değişir; fPGA programlama... Yani, bellenim sırasında, gerçekleştirilen belirli bir CMOS transistör setine voltaj beslemesidir. Bu set, aygıt yazılımı programı tarafından belirlenir. Böylece, içinde büyük bir otoyol ve otoyol ağının karmaşık bir inşası meydana gelir. FPGAçok sayıda mantıksal bloğu karmaşık bir şekilde bağlamak. Programda, ne tür bir algoritma gerçekleştirmeniz gerektiğini açıklarsınız ve ürün yazılımı, programda tanımladığınız işlevleri gerçekleştiren öğeleri birbirine bağlar. Sinyaller, bloktan diğerine yol boyunca ilerler. Program tarafından karmaşık bir rota belirlenir.


FPGA mimarisi (FPGA)

Mikrodenetleyici mimarisi

TTL mantığının bu öğesinde, bireysel sinyalleri işlemek için tüm işlemler sizden bağımsız olarak gerçekleştirilir. Yalnızca bununla veya alınan sinyallerle ne yapılacağını ve iletilmesi gereken bu sinyallerin nereye gönderileceğini belirtirsiniz. Mimari mikrodenetleyici tamamen farklı bloklardan oluşur FPGA... Ve bloklar arasındaki bağlantılar kalıcı otoyollar aracılığıyla gerçekleştirilir (ve geri tepme değil). MK blokları arasında ana olanlar ayırt edilebilir:

Salt Okunur Bellek (ROM), programınızı depolayan bellektir. Eylemlerin ve sabitlerin algoritmalarını içerir. Komut ve algoritma kitaplıkları (setleri) kadar.

Rastgele erişim belleği (RAM) - kullanılan bellek mikrodenetleyici verilerin geçici olarak depolanması için (içindeki tetikleyiciler gibi FPGA). Örneğin, birkaç adımda hesaplarken. Diyelim ki gelen ilk sayıyı ikinciyle (1. eylem), ardından üçüncüyü dördüncü (2. eylem) ile çarpmanız ve sonucu eklemeniz (3. eylem). Bu durumda 1 eylemin sonucu saniye süresince RAM'e girilecek, ardından 2 eylemin sonucu girilecektir. Ve sonra bu sonuçların her ikisi de RAM'den 3 eylemin hesaplanmasına gidecek.

İşlemci bir hesap makinesidir mikrodenetleyici... Sabit ile olduğu kadar RAM ile de iletişim kurar. Hesaplamalar operasyonel olanla değiştirilir. Sabitten işlemci, işlemcinin girişlerdeki sinyallerle belirli algoritmaları ve eylemleri yürütmesini sağlayan talimatları alır.

G / Ç Anlamları (Bağlantı Noktaları) ve Seri G / Ç Bağlantı Noktaları - Ayaklar mikrodenetleyicidış dünya ile etkileşim için tasarlandı.

Zamanlayıcılar, algoritmaları çalıştırırken döngü sayısını saymak için tasarlanmış bloklardır.

Veriyolu denetleyicisi - içindeki tüm birimler arasındaki alışverişi kontrol eden birim mikrodenetleyici... İstekleri işler, kontrol komutları gönderir, kristal içindeki iletişimi düzenler ve sipariş eder.

Kesinti denetleyicisi - harici cihazlardan kesinti istekleri alan bir blok. Kesinti talebi, harici bir cihazdan herhangi bir bilgi alışverişi yapması gerektiğini bildiren bir sinyaldir. mikrodenetleyici.

İç otoyollar - içeriye döşenen yollar mikrodenetleyici bloklar arasında bilgi alışverişi için.

Saat üreteci, tümünün üzerinde bulunduğu saat darbelerini üreten harici bir mikro devredir. mikrodenetleyici işlemi.

Mikrodenetleyicinin kurucu bloklarının ilişkisi

İÇİNDE mikrodenetleyici, içinde farklılıklar itibaren FPGAiş, karmaşık olan yukarıdaki bloklar arasında gerçekleşir. mimariprogram geliştirme sürecini kolaylaştırmak. Yanıp sönerken, yalnızca MK'nin tüm çalışmalarının dayandığı kalıcı belleği değiştirirsiniz.


FPGA ve mikrodenetleyici arasındaki temel fark

FPGA, demir seviyesinde, pratik olarak tüm kristal alan üzerinde dikilir. Sinyaller karmaşık transistör zincirleri boyunca ilerler. Mikroişlemci, donanım için program düzeyinde yanıp söner, sinyaller bloktan bloğa - bellekten işlemciye, RAM'e, RAM'den işlemciye, işlemciden G / Ç bağlantı noktalarına, G / Ç bağlantı noktalarından RAM'e, RAM ... ve benzeri. Sonuç: ödenmesi gereken fPGA mimarisi hızda ve boru hattı işlemenin daha geniş olasılıklarında kazanır, MK algoritma yazma kolaylığında kazanır. Programları açıklamanın daha basit yolu nedeniyle geliştiricinin hayal gücü Mikrodenetleyici Hata ayıklama ve geliştirme için zamanla daha az kısıtlanır ve dolayısıyla aynı robotu MK ve FPGA olacak farklılık birçok kez. Ancak, üzerinde çalışan bir robot FPGA çok daha hızlı, daha doğru ve çevik olacak.

Donanım ve yazılım.

İÇİNDE FPGA herhangi bir programı uygulamak için tüm çalışmalar kendiniz, manuel olarak yapılmalıdır. FPGA, gelen her kablolama için her bir işaretleyiciyi izlemeniz gerekir. FPGA, bazı sinyalleşme sinyallerini hafıza hücrelerine yerleştirin, takip ettiğiniz veya hatta ürettiğiniz başka bir sinyal cihazının doğru anda bu hafıza hücrelerine döndüğünden emin olun ve sonuç olarak hafızada geciken bir dizi sinyal ihtiyacınız olan sinyalleşme sinyalini etkinleştirecektir. bu, örneğin belirli bir çıkış ayağına gidecek ve ona bağlı olan LED'i açacaktır. Bazı sinyal vericiler belleğe gitmez, örneğin algoritmanın (programın) belirli bir bölümünü başlatmak için. Yani, mikro işlemci dilini konuşan bu bacaklar adreslenebilir. Örneğin, Verilog dilinde uyguladığımız bazı ilgisiz (veya ilişkili) algoritmaları etkinleştirmek için programımızda panomuzda üç adres pinimiz var. FPGA... Ayrıca programda, üç adres ayağına ek olarak, örneğin, bir dizi giriş sinyalinin (örneğin, farklı sensörlerden) herhangi bir bilgi (örneğin, akvaryumdaki su sıcaklığı sensöründen akvaryumdaki su sıcaklığı) geldiği 20 bilgi ayağına da sahibiz. 20 bacak \u003d 20 bit. 3 bacak -3 bit. 001 adres sinyali geldiğinde (üç adres ayağından), 20 bilgi sinyalini 20 hafıza hücresine (20 tetikleyici) yazan ilk algoritmayı başlatıyoruz, ardından sonraki 20 sinyal daha önce alınan 20 sinyal ile çarpılıyor ve çarpmanın sonucu hafızaya yazılıyor ve sonra gönderiliyor. diğer ayaklarda, örneğin akvaryumdaki su termostatına. Ancak bu sonucu sadece adres bacaklarımıza 011 gibi bir kod geldiğinde ve okuma ve iletim algoritmasını başlattığında göndereceğiz. Elbette "gönderiyoruz", "okuyoruz" ve başka bir şeyi elle yazıyoruz. Her iş döngüsünde her sinyali gerçekleştiriyoruz FPGA belirli bir yol boyunca kaybetmeyiz. İşliyoruz veya yazıyoruz. Ekliyoruz veya çarpıyoruz. Yazmayı unutma. Bir sonraki sinyali almayı ve diğer tetikleyicilere yazmayı unutmayın. Ayrıca buraya saat frekansına, senkronizasyona (manuel olarak da uygulanmaktadır), geliştirme ve hata giderme aşamalarında kaçınılmaz hatalara ve bu makalede dikkate alınması anlamsız olan bir dizi başka soruna bağlı işi ekleyin. Zor. Uzun. Ancak diğer yandan, hatalar ve frenler olmadan çıktıda süper verimli çalışıyor. Demir!

Şimdi mikrodenetleyici... Bilgi almak için 20 bacak - çoğu için mikrodenetleyiciler fiziksel olarak imkansız bir görev. Ama 8 veya 16 - evet lütfen! 3 bilgilendirici - kolay! Program mı? 001 adresinde ilk alınan numarayı ikinciyle çarpın, 011 adresinde sonucu termostata gönderin. Herşey! Hızlı bir şekilde. Kolayca. Harika değil, ama hızlı. Bir programı hatasız ve frene basmadan çok ustaca yazarsanız. Programlı olarak!

Donanım ve Program! İşte ana şey fPGA ve mikro denetleyici arasındaki fark.

İÇİNDE mikrodenetleyici kafası karışık, ancak sıklıkla kullanılan algoritmaların çoğu zaten demire (kristale) gömülüdür. Sadece bu algoritmanın depolandığı gerekli kütüphaneyi programlı olarak çağırmanız, ismiyle çağırmanız yeterlidir ve tüm kirli işleri sizin için yapacaktır. Bir yandan, kullanışlıdır ve mikro devrenin iç yapısı hakkında daha az bilgi gerektirir. Mikrik, alınan, üretilen ve ortaya çıkan sinyallerin takibi, depolanması, işlenmesi ve geciktirilmesi ile ilgilenir. Her şeyi kendisi yapıyor. Çoğu mikro işlemci görevinde ihtiyacınız olan şey budur. Ancak tüm bu kolaylıklar okuma yazma bilmeden kullanılırsa, yanlış çalışma olasılığı vardır. Donanım ve Program!

Sonuç

Modern işlemci ve mikroişlemci geliştiricileri cihazlarını başlangıçta FPGA... Evet, doğru tahmin ediyorsunuz: önce yaratılanı taklit ediyorlar mikrodenetleyici mimarisi programı geliştirip yanıp sönerek FPGAve daha sonra simüle edilmiş MC bloklarının belirli bir konumunda ve her bloğun belirli bir işlevsellik setinde algoritmaların yürütme hızını ayrı ayrı ölçün.

Çıkış sinyalinin özelliklerine göre, FPGA çoğunlukla 3.3V, 20mA için tasarlanmıştır, Mikrodenetleyici 5V'de, 20mA.

Altında mikrodenetleyici AVR, Arduino platformunda başarıyla uygulanmış, çok sayıda açık program yazılmış, sensörler, motorlar, monitörler ve kalbinizin istediği her şey şeklinde çok sayıda alet geliştirilmiştir! Arduino artık daha çok çocuklar ve yetişkinler için bir inşaat seti gibidir. Ancak, bu tasarımcının özünün "akıllı evleri", modern tüketici elektroniğini, aletleri, arabaları, uçakları, silahları ve hatta uzay araçlarını kontrol ettiğini unutmayın. Kuşkusuz, böyle bir kurucu, insanlığın güçlü yarısının herhangi bir temsilcisi için en iyi armağanlardan biri olacaktır.

Prensip olarak her şey basittir!

Hala sorularınız mı var? Bir yorum Yaz. Cevaplayacağız ve çözmenize yardımcı olacağız \u003d)