基于ARM的嵌入式系统和物联网开发
上QQ阅读APP看书,第一时间看更新

1.2 微控制器和微处理器

嵌入式系统的核心是微控制器。尽管也有建在微处理器(MPU)上的嵌入式系统,但现在的嵌入式系统大部分都是基于微控制器的。一个典型的微控制器包含一个中央处理器(CPU)、中断、计时器/计数器、存储器及其他外围设备,全部构建在单个集成电路上。微控制器是一台真正的片上计算机或片上系统。它可以完美地用于控制应用程序,因为只需极少的附加电路系统,你就可以用它构建一个嵌入式系统。

微控制器有别于微处理器。微处理器是单集成电路,只有一个中央处理器,要使它工作起来,还需外部存储器和其他外围设备。图1-2显示了微处理器和微控制器的主要区别。微处理器就是单集成电路上的一个中央处理器,而微控制器是一台有中央处理器、内存和其他外围设备的微型计算机。

图1-2 微处理器和微控制器的比较

微处理器主要用于通用系统,如个人计算机。它拥有相对较高的计算性能,可执行大量任务,还有相对较高千兆赫的时钟频率,功耗较高,常需外部冷却系统。

微控制器用于控制应用程序,常用在嵌入式系统上。它拥有相对较低的计算性能,可执行单个或少数任务;还有相对较低兆赫兹的时钟频率,功耗较低,无须冷却系统。

图1-3是微控制器的详细示意图,包含以下主要组件。

图1-3 微控制器的详细示意图

CPU

CPU常被称为处理器或中央处理器,它是微控制器的大脑。详情可参见图1-4。它包含三个主要组件:算术逻辑单元(ALU)、控制单元和寄存器。算术逻辑单元执行运算和逻辑操作,寄存器为算术逻辑单元提供运算对象并存储其操作结果,控制单元控制整体操作,并与算术逻辑单元和寄存器进行通信。CPU的操作周期分为取指、译码和执行。

图1-4 CPU的详细示意图

CPU通过系统总线与内存、输入/输出等外围设备进行通信,系统总线包括数据总线、地址总线和控制总线。数据总线的作用是传输信息,地址总线的作用是决定信息发送的目的地,控制总线的作用是决定操作程序。地址总线是单向的,从CPU到外围设备,而数据总线和控制总线是双向的。

根据所执行的指令集,CPU可分为不同的类型。指令集也被称为指令集结构(ISA),是CPU可执行的一套基本操作。主要分为复杂指令集计算机(CISC)和精简指令集计算机(RISC)。CISC CPU有大型指令集(300或更多)和更复杂的硬件,以及更紧凑的软件代码,执行每次指令需花费更多的周期,只需少量内存,无须存储中间结果。RISC CPU有较小的指令集(100或更少)和更简单的硬件,但有更复杂的软件代码,执行每次指令只需一个周期,需占用更多内存来处理中间结果。典型的CISC CPU实例有AMD和Intel x86,主要用于个人计算机、智能终端和服务器,因为它们擅长更复杂的任务。典型的RISC CPU实例有Atmel AVR、PIC和Arm®,主要用于微控制器,因为其功耗较低。

存储器

微控制器使用存储器存储程序和数据,分为内部存储器和外部存储器两种类型。内部存储器规格较小但速度很快。对于内部存储器不够用的应用程序,就需要用外部存储器。传统意义上,有两种类型的外部存储器,随机存取存储器(RAM)和只读存储器(ROM)。RAM可实现随机存取,可对RAM进行读取和写入,当电源关闭时RAM不能保留数据。ROM是只可读取的存储器,只能读取数据,不能写入数据,即使电源关闭也不会丢失数据,可永久地存储程序和数据。

但是,现在出现了一些新型存储器,如电可擦只读存储器(EEPROM)和非易失性随机存储器(NVRAM),它们既可读取也可写入,而且电源关闭时也不会丢失数据。闪存就是非易失性随机存储器的最佳实例,它具有密度高、成本低、速度快、电可编程的特点。闪存被广泛应用于包含嵌入式操作系统和应用程序的嵌入式系统。

并行输入/输出端口

并行输入/输出端口有多个引线(或管脚)并列运行,之所以称为并行是因为多个信号可同时输入。并行输入/输出端口主要用于驱动/连接LCD、LED、打印机、存储器等各种设备到微控制器。并行端口传输数据的速度比串行端口更快,但由于干扰和噪声的原因,只适用于短距离通信。

串行输入/输出端口

串行输入/输出端口使用单根数据线进行数据传输,因此串行端口比并行端口速度慢很多。但是串行端口有更高的带宽,可用于长距离通信。通用非同步收发传输器(UART)是一个在嵌入式系统中广泛应用的串行输入/输出端口,它用一根电线接收数据(Rx),用另一根电线传输数据(Tx)。

计时器/计数器

计时器和计数器都是微控制器的有效功能,有些微控制器有不止一个计时器和计数器,计时器和计数器提供微控制器内的所有计时和计数功能,包括时钟功能、调节、脉冲发生、频率测量和振荡。

模数转换器(ADC)

ADC将模拟信号转换为数字信号,主要用于读取传感器的电压输出。ADC有8位、10位、12位、16位、24位,甚至32位。位数越高,转换分辨率越高。ADC的带宽(也称可测量的频宽)由其采样率决定。根据奈奎斯特采样定理,ADC可测量的最高频率低于采样率的一半。Mbed开发板的ADC采样率通常是几百千兆级。

数模转换器(DAC)

DAC将数字信号转换为模拟信号,通常用于控制模拟设备,如扬声器、直流电机和各种驱动。

中断控制

中断是微控制器应用中最重要且最强大的特征之一,用于中止一个正在运行的程序,既可以是硬件中断(外部,由中断引脚引起),也可以是软件中断(内部,编程时使用中断指令)。

重启

重启是所有微控制器都具备的一项重要功能,它能确保微控制器回到原始状态,这在程序运行出错时尤其重要。

监视器

监视器(Watchdog)是一个电子硬件,被广泛用于嵌入式系统,自动检测软件故障并重启处理器。监视器一般从某个初始值倒数到零,嵌入式软件选择计数器的初始值并周期性地重启,如果计数器在软件重启前已到达零,即认为该软件存在故障,处理器将被重启。