微控制器本质上是芯片上的小型计算机,就像任何计算机一样,它具有内存,通常在嵌入式系统中进行编程以接收输入,执行计算并生成输出。与处理器不同,它在单个芯片上集成了内存,CPU,I / O和其他外围设备,如下图所示。
为项目选择合适的微控制器始终是一个复杂的决定,因为这是项目的核心,系统的成败取决于它。
有上千种不同类型的微控制器,每个微控制器都具有独特的功能或竞争优势,从外形尺寸,封装尺寸到RAM和ROM的容量,使其适合于某些应用程序,而不适用于某些应用程序。因此,通常为避免选择合适的头疼,设计人员会选择熟悉的微控制器,有时甚至不能真正满足项目的要求。今天的文章将探讨选择微控制器时要考虑的一些重要因素,包括架构,存储器,接口和I / O占用空间等。
选择MCU时要考虑的重要因素
以下是选择微控制器时要考虑的一些重要因素,包括架构,存储器,接口和I / O占用空间等。
1.申请
为任何项目选择微控制器之前,要做的第一件事是加深对将要部署基于微控制器的解决方案的任务的了解。在此过程中始终会制定技术规格表,这将有助于确定将用于项目的微控制器的特定功能。当采用带有浮点单元的微控制器来设计将用于执行涉及许多十进制数的操作的设备的设计时,将展示一个很好的示例,说明设备的应用/使用方式将确定要使用的微控制器。
2.选择微控制器架构
微控制器的体系结构是指微控制器的内部结构。用于微控制器设计的主要架构有两种:
- 冯·诺依曼建筑
- 哈佛建筑
冯·诺依曼(von Neumann)架构的特点是使用相同的总线来传输数据并从内存中获取指令集。因此,数据传输和指令获取不能同时执行,通常是按计划进行的。另一方面,哈佛架构的特点是使用单独的总线来传输数据和获取指令。
这些架构中的每一种都有其自身的优点和缺点。例如,哈佛架构是RISC(精简指令集)计算机,因此与基于von Neumann架构的CISC(复杂指令集)计算机相比,它们能够以更低的周期执行更多指令。基于哈佛(RISC)的微控制器的一个重要优点是,数据和指令集的不同总线的存在使得内存访问以及算术和逻辑单元(ALU)的操作得以分离。这减少了微控制器所需的计算能力,并导致降低的成本,低功耗和散热,这使其非常适合电池供电设备的设计。许多ARMAVR和PIC微控制器基于哈佛架构。使用冯·诺依曼架构的微控制器的示例包括8051,zilog Z80等。
3.位大小
微控制器可以是8位,16位,32位和64位,这是微控制器当前拥有的最大位大小。微控制器的位大小表示在微控制器的指令集中使用的“字”的大小。这意味着在8位微控制器中,每个指令,地址,变量或寄存器的表示形式都为8位。位大小的关键含义之一是微控制器的存储容量。例如,在8位微控制器中,由位大小决定有255个唯一存储位置,而在32位微控制器中,有4,294,967,295个唯一存储位置,这意味着位大小越大,唯一数就越大。可在微控制器上使用的存储位置。如今,制造商正在开发通过分页和寻址为较小位微控制器提供对更多存储位置的访问的方法,以使8位微控制器可寻址为16位,但这会使嵌入式软件开发人员的编程复杂化。
在为微控制器开发固件时,尤其是为算术运算开发固件时,比特大小的影响可能会更显着。对于不同的微控制器位大小,各种数据类型具有不同的存储器大小。例如,使用声明为无符号整数的变量,由于数据类型的原因,该变量将需要16位内存,而在8位微控制器上执行的代码将导致数据中最高有效字节的丢失,有时这可能是对于完成要设计使用微控制器的设备的任务而言,这一点非常重要。
因此,选择位大小与要处理的数据相匹配的微控制器很重要。
可能很重要的一点是,由于这些芯片上集成的技术进步,当今大多数应用都在32位和16位微控制器之间。
4.通讯接口
微控制器与将用于该项目的某些传感器和执行器之间的通信可能需要在微控制器与传感器或执行器之间使用接口以促进通信。以将模拟传感器连接到微控制器为例,将要求微控制器具有足够的ADC(模数转换器),或者正如我之前提到的,改变直流电动机的速度可能需要在微控制器上使用PWM接口。因此,重要的是要确认要选择的微控制器具有足够的所需接口,包括UART,SPI,I2C等。
5.工作电压
工作电压是系统在设计时可以运行的电压水平。它也是与系统的某些特性相关的电压电平。在硬件设计中,工作电压有时会确定微控制器与组成系统的其他组件进行通信的逻辑电平。
5V和3.3V电压电平是微控制器最常用的工作电压,在确定器件技术规范的过程中应决定使用哪个电压电平。在设备的设计中使用工作电压为3.3V的微控制器时,大多数外部组件,传感器和执行器将在5V电压下工作,这不是一个明智的决定,因为将需要实现逻辑电平移位器或转换器来实现微控制器和其他组件之间的数据交换,这将不必要地增加制造成本和设备的整体成本。
6. I / O引脚数
微控制器拥有的通用或专用输入/输出端口和(或)引脚的数量是影响微控制器选择的最重要因素之一。
如果微控制器要具有本文中提到的所有其他功能,但没有项目要求的足够的IO引脚,则不能使用它。例如,微控制器具有足够的PWM引脚,以控制其速度将随设备而变化的直流电动机的数量,这一点很重要。尽管可以通过使用移位寄存器来扩展微控制器上I / O端口的数量,但它不能用于所有类型的应用程序,并且会增加使用I / O端口的设备的成本。因此,最好确保为设计选择的微控制器具有项目所需的通用和专用I / O端口数量。
确定项目所需的通用或专用I / O引脚数量时,要记住的另一项关键事项是将来可能对设备进行的改进以及这些改进如何影响I / O引脚的数量需要。
7.内存需求
设计人员在进行选择时应注意与微控制器相关的几种类型的存储器。最重要的是RAM,ROM和EEPROM。在使用这些存储器之前,可能很难估计每个存储器的数量,但是通过判断微控制器所需的工作量,可以做出预测。上面提到的这些存储设备构成了微控制器的数据和程序存储器。
微控制器的程序存储器存储微控制器的固件,因此当从微控制器断开电源时,固件不会丢失。所需的程序存储量取决于固件正常运行所需的数据量(如库,表,图像的二进制文件等)。
另一方面,运行期间会使用数据存储器。运行期间由于其他活动进行处理而生成的所有变量和数据都存储在此存储器中。因此,将在运行时发生的计算复杂性可用于估计微控制器所需的数据存储量。
8.包装尺寸
封装尺寸是指微控制器的外形尺寸。微控制器通常采用QFP,TSSOP,SOIC到SSOP的封装,以及常规的DIP封装,这使得安装在面包板上的原型制作变得容易。重要的是要在制造之前进行计划,并设想哪种包装最好。
9.耗电量
这是选择微控制器时要考虑的最重要因素之一,尤其是在将其部署在电池供电的应用(如IoT设备)中时,希望微控制器的功耗尽可能低。大多数微控制器的数据表都包含有关几种基于硬件和(或)软件的技术的信息,这些信息可用于最小化不同模式下微控制器的功耗。确保您选择的微控制器满足项目的电源要求。
10.对微控制器的支持
选择使用的微控制器具有足够的支持很重要,包括:代码示例,参考设计以及在线的大型社区(如果可能)。首次使用微控制器可能会遇到不同的挑战,访问这些资源将帮助您快速克服这些资源。虽然使用最新的微控制器是因为它具有一些很酷的新功能是一件好事,但建议确保微控制器已经存在至少3-4个月,以确保大多数与微控制器有关的早期问题。因为不同的客户将对具有不同应用程序的微控制器进行大量测试,因此本来可以解决。
选择具有良好评估套件的微控制器也很重要,因此您可以快速开始构建原型并轻松测试功能。评估套件是获取经验,熟悉用于开发的工具链并节省设备开发时间的好方法。
为一个项目选择正确的微控制器将仍然是一个问题,每个硬件设计人员都必须解决,虽然几乎没有其他因素可能影响微控制器的选择,但上述这些因素才是最重要的。