Arduino vs微处理器vs微控制器


Answers:


21

微处理器:

通常在台式机或笔记本电脑中找到,它包含一个CPU和一个外部存储器接口以及各种I / O总线以连接到SPI,I2C,UART,USB,LCD等外部环境。微处理器还将具有一个外部晶体来提供时钟。

大多数微处理器在芯片上没有只读存储器。而是在主板上有一个外部芯片,用于放置初始启动代码。在基于Intel的PC上,这称为基本输入/输出系统(BIOS),除了初始启动代码之外,还包含I / O例程。引导代码通过执行开机自检(POST)开始,然后查看从硬盘驱动器,CD(或以前的软盘)加载引导代码下一阶段的位置。然后,此第二级引导将加载操作系统。(在某些系统中,甚至可能有三个级别的启动代码。)

一些微处理器(通常是针对智能手机和平板电脑的,具有有限的启动选项)具有少量包含初始启动代码的只读存储器。

我将引导代码称为只读;实际上在某些系统上,可以对其进行更新。但是,这是相当冒险的。如果出现问题,系统可能不再启动。

与微控制器不同,微控制器从只读存储器中执行程序,而在启动后,微处理器将其程序加载到外部RAM中并从那里执行。

微控制器:

另一方面是一个独立的单芯片IC,它包含CPU,用于存储程序的只读存储器,用于存储程序执行中使用的变量的RAM以及用于连接外部环境的各种I / O总线,例如如SPI,I2C,UART等。它本身不能执行任何程序,除非通过PC的外部接口对其进行编程。微控制器可能还需要外部晶体来提供时钟,但是有些具有内部时钟。

某些微控制器(例如Microchip的PIC32)具有两部分闪存。一个用于保存初始化(引导)代码,另一个用于存储应用程序。这样可以更轻松地就地更新应用程序代码。

为了您的目的,您将要使用微控制器,而不是微处理器。要使用微控制器,您要么必须设计自己的电路板,要么购买某种开发板。

Arduino:

这种板包含一个微控制器,一个典型的8位AVR,例如ATmega8,ATmega168,ATmega328,ATmega1280和ATmega2560,以及电源,晶体和母头,可与各种外围板接口。

这些外围板称为屏蔽板,并且设计为彼此堆叠(板的底部有公引脚可连接到Arduino本身或另一个屏蔽板,顶部的母头可容纳以下接口的公头)叠在上面的盾牌)。

屏蔽示例包括电动机控制板,通用I / O板,中继板,以太网板和LCD(通常带有触摸屏)。但是,我不知道有什么电阻式触摸屏仅用于检测(没有LCD)。

除了上述硬件之外,Arduino还附带了用Java编写的跨平台集成开发环境(IDE)。它旨在向艺术家和其他初学者介绍编程,就像50年前的BASIC语言一样。Arduino的程序称为草图

Arduino程序是用C或C ++编写的,但是许多细节对用户来说是隐藏的:只需定义两个功能(由系统调用)即可创建一个连续循环的程序(通常用于嵌入式程序)

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

IDE带有一个称为“接线”的软件库,可用于常见的输入/输出操作。


经过25年的努力,我不再设计硬件,但我不知道台式机的任何处理器都包含任何只读内存,更不用说可以启动计算机的此类内存了。
罗布

@Rob是的,我知道所有台式机都使用外部启动芯片。但是TI的OMAP3架构是带有内部启动ROM的微处理器的示例。重新启动Linux 的描述中,第一行显示为:“加电时,OMAP3设备开始从内部Boot ROM启动。此代码在制造过程中已固定,无法更改。BootROM读取启动配置引脚(SW4在OMAP3 EVM上),它告诉Boot ROM在哪里寻找第一个外部Bootloader。我已经更新了答案。
tcrosley

10

Arduino的

Arduino是包含Atmel AVR微控制器的PCB,通常以标准模式提供一组连接器。微控制器通常使用“引导加载程序”程序进行预编程,该程序允许通过PC上的TTY串行连接(或USB虚拟连接)将程序(称为“草图”)加载到微控制器中。

微处理器

微处理器是仅包含中央处理器(CPU)的IC。该IC不包含RAM,ROM或其他外围设备。该IC可能包含高速缓冲存储器,但没有任何外部存储器就无法使用。

微处理器无法在内部存储程序,因此通常在开机时会加载软件,这通常涉及复杂的多阶段“启动”过程,其中“固件”是从外部ROM加载的,最终是从其他存储介质(例如硬盘)加载的操作系统)。

它通常在个人计算机中找到。

微控制器

微控制器是一种IC,其中包含CPU以及一定数量的RAM,ROM和其他外围设备。微控制器可以在没有外部存储器或存储的情况下运行。

通常,微控制器可以在焊接到PCB之前进行编程,也可以使用系统内编程(ISP或ICSP)连接器通过连接到个人计算机的特殊“编程器”进行编程。

典型的微控制器比典型的微处理器更简单,更慢,但是我相信区别主要是规模和应用之一。

例如,可以在简单的电器中找到它,例如基本洗衣机。


2

“ Arduino”是一个软件开发环境是该软件环境可以为其开发程序的多个微控制器板中的任何一个。大多数主板使用Atmel AVR微控制器。


2

Arduino是基于微控制器的平台(UNO使用ATMEGA 328)。通常,微控制器比微处理器更适合于需要感测输入的任何事物。这是因为像ATMEGA 328这样的微控制器具有模数转换器(ADC)以感测电压,并且还具有PWM输出以及数字I / O。

使用Arduino,您还可以使用Arduino Dev系统,该系统对于新手来说更容易编程,并且拥有一个很好的社区以提供支持和库。

电阻式触摸屏的行为类似于电位计;一个代表x,另一个代表y。因此,您可以将它们放入Arduino模拟输入中。有关详细信息,请参见此处。

另一种选择是转换为SPI或I2C的东西像这样,与Arduino的阅读。

无论哪种方式,我都认为Arduino是一个不错的选择。


@tcrosley或任何其他长期会员..对像我这样的新撰稿人的建议,如何避免像这样的不赞成投票?我的答案是准确的,可以回答问题,并提供其他详细信息以连接到电阻式触摸屏。它应该包含的其他内容?
akellyirl 2014年

3
不要太低估投票权。我认为您的第一句话有些不准确。Arduino更像是一个由硬件和软件组成的平台。Arduino开发板不是微控制器,而是围绕微控制器设计的板。
Rev1.0,2014年

1
就像Rev1.0所说:“ Arduino是微控制器”不是真的。Arduino是SBC(单板计算机)。
flup 2014年

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.