首页 理论教育Arduino单片机的结构及特点

Arduino单片机的结构及特点

【摘要】:Arduino控制器是由DFRobot出品的Arduino click,如图4-15所示。它继承了Arduino328控制器所有的特性而且集成了电机驱动、键盘、IO扩展板、无线数据串行通信等接口。它不仅可以兼容几乎所有Arduino系列的传感器和扩展板,而且可以直接驱动12个舵机。图4-15Arduino控制板AVR内核具有丰富的指令集和32个通用工作寄存器。ATmega48、ATmega88与ATmega168这三个型号只是在存储器大小、boot loader支持及中断向量长度上存在差别。芯片具有独立的BootLoader区,SPM指令只能在这个Flash区里得到执行。

Arduino控制器是由DFRobot出品的Arduino click,如图4-15所示。该控制器采用的是最基础且应用最广泛的UNO板卡。它继承了Arduino328控制器所有的特性而且集成了电机驱动、键盘、IO扩展板、无线数据串行通信接口。它不仅可以兼容几乎所有Arduino系列的传感器和扩展板,而且可以直接驱动12个舵机。除此之外,它还提供了更多人性化设计,采用了3P彩色排针,能够对应传感器连接线,防止插错。其中红色对应电源,黑色对应GND,蓝色对应模拟口,绿色对应数字口。

处理器:ATmega328;

输出电源:5V(2A)/3.3 V;

数字IO脚:(其中,3、5、6、9、10和11路作为PWM输出),数字口的值为0或1;

模拟输入值:A0~A7,模拟口的值为0~1 023之间的任意值;

EEPROM:1 KB;

I2 C:3个(其中有两个是90度针脚接头);

测试按钮:5个(S0~S4);

复位按钮:1个(RST);

工作时钟:16 MHz。

单片机ATmega48/88/168为例详解其内部构造(图4-16),ATmega48/88/168是基于AVR增强型RISC结构的低功耗8位CMOS微控制器。由于其先进的指令集以及单时钟周期指令执行时间,ATmega48/88/168的数据吞吐率高达1 MIPS/MHz,从而可以缓减系统在功耗和处理速度之间的矛盾。

图4-15 Arduino控制板

AVR内核具有丰富的指令集和32个通用工作寄存器。所有的寄存器都直接与算术逻辑单元(ALU)相连接,每一条指令在一个时钟周期内可以同时访问两个独立的寄存器。这种结构大大提高了代码效率,并具有比普通的CISC微控制器高至10倍的数据吞吐率。

ATmega48/88/168有如下特点:

(1)4 KB/8 KB/16 KB的系统内可编程Flash(具有在编程过程中还可以读的能力,即RWW),256/512/512 B EEPROM,512/1 K/1 KB SRAM;

(2)23个通用I/O接口线,32个通用工作寄存器,三个具有比较模式的灵活的定时器/计数器(T/C);

图4-16 内部结构图

(3)可编程串行USART,面向字节的两线串行接口,一个SPI串行端口,一个6路10位ADC(TQFP与MLF封装的器件具有8路10位ADC);

(4)具有片内振荡器的可编程看门狗定时器,以及五种可以通过软件选择的省电模式;

(5)拥有5种工作模式:空闲模式时CPU停止工作,而SRAM、T/C、USART、两线串行接口、SPI端口以及中断系统继续工作;掉电模式时晶体振荡器停止振荡,除了中断和硬件复位之外所有功能都停止工作,而寄存器的内容则一直保持;省电模式时异步定时器继续运行,以允许用户维持时间基准,器件的其他部分则处于睡眠状态;ADC噪声抑制模式时CPU和所有的I/O模块停止运行,而异步定时器和ADC继续工作,以减少ADC转换时的开关噪声;Standby模式时振荡器工作而其他部分睡眠,使得器件只消耗极少的电流,并同时具有快速启动能力。

ATmega48/88/168是以Atmel的高密度非易失性内存技术为基础而生产的。片内ISP Flash可以通过通用编程器、SPI接口或引导程序进行多次编程。引导程序可以使用任意接口将应用程序下载到应用Flash存储区。在更新应用Flash存储区时引导程序区的代码继续运行,从而实现了Flash的RWW操作。

ATmega48/88/168 AVR用整套的开发工具,包括C编译器、宏汇编、程序调试器/仿真器和评估板等。

ATmega48、ATmega88与ATmega168这三个型号只是在存储器大小、boot loader支持及中断向量长度上存在差别。表4-8所示为三种器件在存储器与中断向量长度方面的差别。

表4-8 三种器件在存储器与中断向量长度方面的差别

ATmega88与ATmega168支持真正的同时读写自编程操作。芯片具有独立的BootLoader区,SPM指令只能在这个Flash区里得到执行。而ATmega48不支持同时读写操作,它没有独立的Boot Loader区,SPM指令可以访问整个Flash区。

引脚说明:

V CC——数字电路的电源。

GND——地。

端口B(PB7~PB0)XTAL1/XTAL2/TOSC1/TOSC2——端口B为8位双向I/O接口,并具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,端口被外部电路拉低时将输出电流。在复位过程中,即使系统时钟还未起振,端口B保持为高阻态。通过对系统时钟选择位的设定,PB6可作为反向振荡放大器与内部时钟操作电路的输入。通过对系统时钟选择位的设定,PB7可作为反向振荡放大器的输出。

系统使用内部RC振荡器时,通过设置ASSR寄存器的AS2位,可以将PB7~PB6作为异步定时器/计数器2的输入口TOSC2~TOSC1使用。

端口C(PC5.0)——端口C为7位双向I/O接口,并具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,端口被外部电路拉低时将输出电流。在复位过程中,即使系统时钟还未起振,端口C保持为高阻态。

位被编程时,可将PC6作为一个I/O接口使用。因此,PC6引脚与端口C其他引脚的电特性是有区别的。

RSTDISBL位未编程时,PC6将作为复位输入引脚RESET。此时,即使系统时钟没有运行,该引脚上出现的持续时间超过最小脉冲宽度的低电平将产生复位信号。最小脉冲宽度在P38Table 20中给出。持续时间不到最小脉冲宽度的低电平不会产生复位信号。

端口D(PD7~PD0)——端口D为8位双向I/O接口,并具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,端口被外部电路拉低时将输出电流。在复位过程中,即使系统时钟还未起振,端口D呈现为三态。

AVCC——AVCC为A/D转换器的电源。当引脚PC3~PC0与PC7~PC6用于ADC时,AVCC应通过一个低通滤波器与V CC连接。不使用ADC时该引脚应直接与V CC连接。PC6~PC4的电源则是由V CC提供的。

AREF—ADC的模拟基准输入引脚。

ADC7、ADC6(TQFP与MLF封装)——TQFP与MLF封装芯片的ADC7、ADC6引脚为两个10位A/D转换器的输入接口,它们的电压由AVCC提供。