Arduino vs Mikroişlemci vs Mikrodenetleyici


Yanıtlar:


21

Mikroişlemci:

tipik olarak bir masaüstü bilgisayarda veya dizüstü bilgisayarda bulunur ve bir CPU ve harici bellek arabirimi ile SPI, I2C, UART, USB, LCD ve diğerleri gibi dış dünyaya bağlanmak için çeşitli G / Ç veri yolları içerir. Mikroişlemciler ayrıca bir saat sağlamak için harici bir kristale sahip olacaklardır.

Çoğu mikroişlemcinin çip üzerinde salt okunur belleği yoktur; bunun yerine anakartta ilk önyükleme kodunun bulunduğu harici bir yonga vardır. Intel tabanlı bilgisayarlarda buna Temel Giriş / Çıkış Sistemi (BIOS) adı verilir ve ayrıca ilk önyükleme koduna ek olarak G / Ç yordamları da bulunur. Önyükleme kodu, Açılış Sırasında Kendi Kendini Sınama (POST) yaparak başlar ve ardından önyükleme kodunun bir sonraki aşamasının nereye yükleneceğini görmeye çalışır - sabit diskten, CD'den (veya eski günlerde) bir disketten. Bu ikinci düzey önyükleme daha sonra işletim sistemini yükler. (Bazı sistemlerde üç düzey önyükleme kodu bile olabilir.)

Bazı mikroişlemciler (genellikle sınırlı önyükleme seçeneklerine sahip akıllı telefonlar ve tabletler için hedeflenenler), ilk önyükleme kodunu içeren az miktarda salt okunur belleğe sahiptir.

Önyükleme kodunu salt okunur olarak adlandırıyorum; aslında bazı sistemlerde güncellenebilir. Ancak bu oldukça risklidir; bir şeyler ters giderse, sistem artık önyükleme yapmayabilir.

Programlarını salt okunur bellekten yürüten mikrodenetleyicilerin aksine, mikroişlemciler önyüklendikten sonra programlarını harici RAM'e yükler ve oradan yürütür.

Mikrodenetleyici:

Öte yandan bir CPU, programı saklamak için salt okunur bellek, programın yürütülmesinde kullanılan değişkenleri depolamak için RAM ve dış dünyaya bağlanmak için çeşitli I / O otobüsleri içeren bağımsız bir tek çipli IC'dir. SPI, I2C, UART ve diğerleri. Tek başına, harici bir arayüz aracılığıyla bir PC'ye programlanmadan hiçbir programı çalıştıramaz. Mikrodenetleyici de bir saat sağlamak için harici bir kristale ihtiyaç duyabilir, ancak bazılarında dahili bir saat bulunur.

Bazı mikro denetleyiciler (Microchip'in PIC32 gibi) iki flash bellek bölümüne sahiptir; biri başlatma (önyükleme) kodunu tutmak ve diğeri uygulamayı saklamak için. Bu, uygulama kodunun yerinde güncellenmesini kolaylaştırır.

Amacınız için mikroişlemci değil, mikrodenetleyici kullanmak istersiniz. Mikrodenetleyici kullanmak için, kendi kartınızı tasarlamanız veya bir tür geliştirme kartı satın almanız gerekir.

Bir Arduino:

bu tür bir karttır ve bir mikrodenetleyici, ATmega8, ATmega168, ATmega328, ATmega1280 ve ATmega2560 gibi tipik bir 8 bit AVR ve ayrıca çeşitli çevresel kartlarla arabirim oluşturmak için güç kaynakları, kristal ve dişi başlıklar içerir.

Bu çevre kartlarına kalkan denir ve üst üste istiflenecek şekilde tasarlanmıştır (kartların altında Arduino'nun kendisine veya başka bir kalkanı bağlamak için erkek pimler ve erkek pimleri kabul etmek için üstte dişi başlıklar vardır. üstüne yığılmış bir kalkan).

Örnek kalkanlar motor kontrol kartları, genel G / Ç kartları, röle kartları, Ethernet kartları ve tipik olarak dokunmatik ekranlı LCD'lerdir. Bununla birlikte, sadece algılama için (LCD olmadan) kullanılacak herhangi bir dirençli dokunmatik ekran bilmiyorum.

Yukarıda açıklanan donanıma ek olarak Arduino, Java ile yazılmış bir çapraz platform Entegre Geliştirme Ortamı (IDE) ile birlikte gelir. BASIC dilinin 50 yıl önce yaptığı gibi, sanatçılara ve diğer yeni başlayanlara programlamayı tanıtmak için tasarlanmıştır. Arduino için bir programa eskiz denir .

Arduino programları C veya C ++ ile yazılır, ancak ayrıntıların çoğu kullanıcıdan gizlenir: sürekli olarak döngü yapan (genellikle gömülü programlar için olan) bir program yapmak için yalnızca iki fonksiyonun (sistem tarafından çağrılır) tanımlanması gerekir.

setup(): a function run once at startup that performs initialization
loop(): a function called repeatedly until the board powers off

IDE, ortak giriş / çıkış işlemleri için kullanılabilen "Kablolama" adlı bir yazılım kitaplığı ile birlikte gelir.


Artık 25 yıl sonra donanım tasarlamıyorum, ancak herhangi bir salt okunur bellek içeren masaüstü bilgisayarlar için herhangi bir işlemcinin farkında değilim, daha az bir bilgisayarı önyükleyebilen herhangi bir bellek.
Rob

@Rob farkında olduğum tüm masaüstü bilgisayarların harici bir önyükleme yongası kullanması haklı. Ancak TI'nın OMAP3 mimarisi, dahili önyükleme ROM'una sahip bir mikroişlemciye örnektir. Buradaki Linux ile ilgili açıklamadan ilk satırda "Açılışta bir OMAP3 cihazı dahili Boot ROM'dan önyüklemeye başlar. Bu kod üretim işlemi sırasında sabittir ve değiştirilemez. Boot ROM önyükleme yapılandırma pimlerini (SW4) okur OMAP3 EVM'de), Boot ROM'a ilk harici önyükleyiciyi nerede arayacağını söyler. " Cevabımı güncelledim.
tcrosley

10

Arduino

Arduino, Atmel AVR mikrodenetleyici içeren ve genellikle standart bir modelde bir dizi konektör sağlayan bir PCB'dir. Mikrodenetleyici tipik olarak bir programın ("taslak" olarak adlandırılır) bir bilgisayardan TTY seri bağlantısı (veya USB bağlantısı üzerinden sanal seri) üzerinden mikrodenetleyiciye yüklenmesine izin veren bir "önyükleyici" programı ile önceden programlanır.

mikroişlemci

Mikroişlemci, yalnızca merkezi bir işlem birimi (CPU) içeren bir IC'dir. IC, RAM, ROM veya diğer çevre birimlerini içermez. IC önbellek içerebilir ancak harici bellek olmadan kullanılabilecek şekilde tasarlanmamıştır.

Mikroişlemciler programları dahili olarak depolayamazlar ve bu nedenle açıldığında genellikle yazılım yüklerler, bu genellikle "firmware" in harici ROM'dan yüklendiği ve sonunda bir işletim sisteminin diğer depolama ortamlarından (örn. Sabit disk) yüklendiği karmaşık çok aşamalı "önyükleme" işlemini içerir ).

Genellikle kişisel bir bilgisayarda bulunur.

Mikrodenetleyici

Mikrodenetleyici, bir miktar CPU veya bir miktar RAM, ROM ve diğer çevre birimlerini içeren bir IC'dir. Mikrodenetleyiciler harici bellek veya depolama olmadan çalışabilir.

Normalde, mikrodenetleyiciler ya bir PCB'ye lehimlenmeden önce programlanır ya da kişisel bir bilgisayara bağlı özel bir "programlayıcı" cihaz aracılığıyla Sistem İçi Programlama (ISS veya ICSP) konektörleri kullanılarak programlanabilir.

Tipik mikrodenetleyiciler tipik mikroişlemcilerden çok daha basit ve yavaştır, ancak ayrımın çoğunlukla ölçek ve uygulamalardan biri olduğuna inanıyorum.

Örneğin, temel çamaşır makineleri gibi basit cihazlarda bulunur.


2

"Arduino" bir yazılım geliştirme ortamı ve yazılım ortamının program geliştirebileceği birkaç mikrodenetleyici kartıdır. Kartların çoğu Atmel AVR mikrodenetleyicileri kullanıyor.


2

Arduino mikrodenetleyici tabanlı bir platformdur (UNO için ATMEGA 328). Genel olarak bir Mikro kontrolör, girişlerin algılanmasını gerektiren her şeye mikroişlemciden daha uygundur. Bunun nedeni, ATMEGA 328 gibi mikro denetleyicilerin voltajları algılamak için dijital dönüştürücülere (ADC) analog olması ve ayrıca dijital I / O'ların yanı sıra PWM çıkışlarına da sahip olmasıdır.

Arduino ile, acemiler için programlanması daha kolay olan ve destek ve kütüphaneler için iyi bir topluluğa sahip Arduino Dev sistemine de sahipsiniz.

Dirençli bir dokunmatik ekran potansiyometre gibi davranır; biri x için ve biri y için. Böylece bunları Arduino analog girişlerine koyabilirsiniz. Ayrıntılar için buraya bakın .

Başka bir seçenek gibi bir şeyle SPI veya I2C dönüştürmek olduğunu bu ve Arduino ile okuyun.

Her iki şekilde de Arduino'nun iyi bir seçim olduğunu düşünüyorum.


@tcrosley ya da başka bir uzun süre üye .. benim gibi yeni bir katılımcıya böyle bir aşağı oytan kaçınma konusunda herhangi bir tavsiye? Yanıtlarım doğru, soruyu cevaplıyor ve dirençli bir dokunmatik ekrana arayüz için ek ayrıntılar sağlıyor. İçermesi gereken başka bir şey var mı?
akellyirl

3
Aşağı oyu çok ciddiye almayın. İlk cümlenin biraz yanlış olduğunu düşünüyorum. Arduino daha çok donanım ve yazılımdan oluşan bir platform gibidir. Ve bir Arduino kartı bir mikro denetleyici değil, bir mikro denetleyici etrafında tasarlanmış bir karttır.
Rev1.0

1
Rev1.0'ın dediği gibi: "Arduino bir mikrodenetleyicidir" doğru değildir. Arduino bir SBC'dir (Tek Kartlı Bilgisayar).
flup

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.