- Arduino程序设计实例教程
- 芦关山 王绍锋主编
- 1304字
- 2021-04-03 11:01:06
1.2 Arduino内部结构
Arduino平台的基础就是AVR指令集的单片机,因此认清Arduino之前需要了解什么是单片机,以及它与个人计算机有什么不同。一台能够工作的计算机要有这样几个部分:中央处理单元(Central Processing Unit,CPU)(进行运算、控制)、随机存储器(Random Access Memory,RAM)(数据存储)、只读存储器(Read Only Memory Image,ROM)(程序存储)、输入/输出设备I/O(串行口、并行输出口等)。在个人计算机(Personal Computer,PC)中,这些部分被分成若干块芯片,安装在一个被称之为主板的印制线路板上。而在单片机中,这些部分全部被做到一块集成电路芯片中了,所以就称为单片(单芯片)机。有一些单片机中除了上述部分外,还集成了其他部分,如模拟量/数字量转换(A/D)和数字量/模拟量转换(D/A)等。
Arduino是一个能够用来感应和控制现实物理世界的一套工具。它由一个基于单片机并且开放源码的硬件平台和一套为Arduino板编写程序的开发环境组成。Arduino可以用来开发交互产品,例如它可以读取大量的开关和传感器信号,并且可以控制各式各样的电灯、电机和其他物理设备。Arduino项目可以是单独运行的,也可以在运行时和计算机中运行的程序(例如Flash、Processing、MaxMSP)进行通信。Arduino板可以选择自己去手动组装或是购买已经组装好的,Arduino开源的集成开发环境(Integrated Development Environment,IDE)可以免费下载得到。
1.2.1 内部机理
图1-15是Arduino Uno的内部结构图。Leonardo与Arduino Uno相似,但其USB接口均已集成到微控制器芯片中。Due也类似,而其处理器工作电压为3.3V,不是5V。
图1-15 Arduino内部结构
在许多方面,Arduino确实比带有支持组件的微控制器芯片小很多。事实上,采用微处理器和一些外设在实验板上建立一台Arduino,或者以Arduino为原型创建设计一个印制电路板(Printed Circuit Board,PCB),都很容易实现。Arduino开发板能把很多事情变得很简单,最终任何Arduino的设计均可以转换成产品,而且要使用必需的微控制器芯片或者一些外设。举例来说,如果某个设计只用于编程目的,那么它可能不需要一个USB接口。这样用户可以在Arduino上编程,然后再将已经烧录好的芯片部署到PCD板的IC插座或实验电路板上。
1.2.2 AVR微控制器
Arduino家族开发板均使用由Atmel公司生产的微控制器。它们都具有类似的硬件设计原理,除了Due上的微控制器外,其他的都采用相似的设计。
1.2.3 Atmega 328
Atmaga 328是使用在Arduino Uno上的微控制器,其之前的版本是Duemilanove。事实上,第一块Arduino开发板采用的Atmega 168是Atmega 328的简化版,Atmega 168的储存器容量只有Atmega 328的一半。下面介绍Atmega 328的主要功能。
(1)高性能、低功耗AVR 8位微控制器。
(2)先进的RISC体系结构。
(3)高耐力非易失性内存段。
(4)微控制器的特殊功能。
(5)上电复位和可编程布朗出检测。
(6)内部校准的振荡器。
(7)外部和内部中断源。
(8)6个睡眠模式:空闲、模拟数字转换器(Analog to Digital Converter,ADC)降噪、电源保存、关闭、待机状态和待机扩展。
1.2.4 Atmega 2560
Atmega 2560用在Arduino Mega 2560和Arduino Mega ADK中。它的速度并不比其他的ATmega芯片快,但却拥有更大的储存空间(256KB内存、8KB SRAM和4KB EEPROM)和更多的I/O引脚。
1.2.5 AT91SAM3X8E
AT91SAM3X8E是Arduino Due的核心芯片。到目前为止,它比之前讨论过的所有芯片的运行速度都要快,其主频为84MHz,而非ATmega的16MHz。它拥有512KB的内存和96KB的SARM,该微控制器没有EEPROM。如果要永久保存数据,则需要提供额外的硬件,例如采用SD卡插座和SD卡,或者采用闪存,或采用EEPROM存储芯片。AT91SAM3X8E芯片本身拥有许多先进的功能,其中包括两个模拟输出,这让它可以使用音频发射器。