一站式晶振解决方案提供商为数字电路的“心脏”保驾护航

深圳市晶光华电子有限公司

聚焦晶光华,实时掌握晶振技术动态
企业动态
如何选择微控制器(MCU)?
来源: 时间:2022-06-30

如何选择微控制器(MCU)? 

定义微控制器(MCU)

MUC

       微控制器MCU就像是大脑,每秒执行数千个任务。选择熟悉的微控制器或以前有效的微控制器可以在此过程中有所帮助,但不一定适合每个项目。

       首先,让我们看看微处理器和微控制器之间的区别。这些经常相互混淆。微处理器通常仅由中央处理单元 (CPU) 组成,它执行计算机程序中的所有指令,包括算术、逻辑、控制和输入/输出操作。微控制器包含一个或多个带有 RAM、ROM 和可编程输入/输出外设的 CPU。微处理器在一般应用任务(如游戏、照片编辑和软件开发)中往往以更高的时钟速度运行,而微控制器则专为键盘、鼠标、电子玩具和自动售货机等小型嵌入式系统中的更具体任务而设计。

 简而言之,使用微控制器更容易打开和关闭 LED,因为它可以直接访问输出引脚,而微处理器必须与外部外围设备 (IC) 通信以控制 LED。

拆解

为了帮助选择正确的微控制器,有必要分解应用程序以更好地了解项目需要什么。在讨论这些个人需求时,应该清楚哪些有效,哪些无效。

在开始之前有几个关键问题要问:

1、应用程序是什么?

2、8 位、16 位还是 32 位?

3、什么处理器?8051、ARM、PIC 还是 AVR?

4、工作电压是多少?

5、 需要什么包装尺寸?

6、需要哪些通信接口,需要多少个?

7、需要多少内存?(包括程序存储器和数据存储器)

这些开放式问题需要进一步调查应用程序的功能。有这么多可用的选项,重要的是从一开始就开始排除尽可能多的可能性,重点关注关键规格。

应用程序是什么?

申请是否需要大量处理?这个处理可以在 8 位微控制器中完成吗?设计有多复杂?

如果设计需要执行大量计算,则可能需要更多内存。对音频信号执行 FFT 将需要更多 RAM、更高的采样率和高分辨率 ADC 以及其他功能。通过 UART 读取温度和发送命令的重量相对较轻,并且可以使用更小的微控制器和更少的内存。该应用程序决定了哪种类型的微控制器和功能。一些常见的应用包括可穿戴设备、汽车、工业、智能家居/能源和物联网。

8 位、16 位还是 32 位?

位大小实际上是指处理器内部使用的“字”的大小。这个“字”是由微控制器的指令集处理的一段数据。每个微控制器中字的大小在 8 位、16 位、32 位甚至 64 位之间有所不同。一个字可以用作地址、变量、寄存器或指令。在 8 位处理器中,每条指令使用 8 位。16 位和 32 位处理器可以处理大量数据。更大的寄存器或总线宽度意味着对资源的限制更少。这到底是什么意思?处理器内的每条指令都由字长决定。在汇编语言中,一条指令后跟一个变量、地址或寄存器。例如,“MOV AL, 61h;” 将十六进制值 0x61 移入 AL 寄存器。编译时,

这也会影响内部 ROM 和 RAM 存储器的大小。在 8 位处理器中,内存大小由 8 位决定,这提供了 255 个唯一的内存位置。而 16 位微控制器可以处理多达 65,535 个内存位置,而 32 位微控制器可以处理多达 4,294,967,295 个内存位置。话虽如此,制造商已经开发出允许较小位大小的微控制器通过地址组和分页访问更多内存的方法。这会使软件稍微复杂化。通常 8 位微控制器往往成本更低、功耗更低、控制更快,但技术进步意味着 16 位和 32 位微控制器现在可以相互竞争。

虽然用汇编语言编写时位大小非常清楚,但在用 C 或 C++ 编写时,它在代码中通常并不明显,因此要记住这一点很重要。使用 C 或 C++ 时,各种数据类型在不同的微控制器之间具有不同的大小。尝试在 8 位微控制器中使用 16 位无符号整数最终会丢失最高有效字节。但是,在 16 位或 32 位微控制器中使用 8 位整数不会导致任何问题。考虑位大小时,最重要的是要处理的数据量。在与低速总线通信、进行传感器测量甚至控制蜂鸣器时,一个 8 位微控制器就足够了。但是,尝试控制 LCD 触摸屏或以太网接口会遇到很多麻烦。

了解不同的架构及其含义(ARM/AVR/PIC/8051)

市场上有几种不同的微控制器架构,包括 8051、ARM、AVR 和 PIC。Microchip 的 PIC 已经存在很长时间了。Atmel 的 AVR 微控制器已通过 Arduino 开发平台得到普及。ARM 处理器更新、速度更快,已被 NXP Semiconductors、Texas Instruments 和 STMicroelectronics 采用。

主要差异集中在它们在较低级别的操作方式上。虽然 8051、AVR 和 PIC 都有 8 位、16 位和 32 位的产品,但 ARM 通常有 32 位甚至 64 位。8051、AVR 和 PIC 与 I/O 外设的工作更紧密,因此功耗更低、速度更快。话虽如此,持续发展提供了一个竞争非常激烈的市场,在这个市场中很难确认一个优于另一个的优势。

RISC 和 CISC 架构

为了比较 ARM、AVR 和 PIC,有必要查看基本架构。RISC 是一种精简指令集计算机,与 CISC 架构(复杂指令集计算机)相比,它能够以更少的周期执行更多指令。CISC 处理器包括 Intel x86 和 8051、Motorola 68000 和 Zilog Z80 系列。RISC 处理器在使用一小组简单通用指令的嵌入式或更小的系统中很常见。RISC 的主要优势之一是加载/存储架构,它将内存访问和 ALU 操作(算术逻辑单元)分开。这提高了成本、功耗和散热,使其成为轻型电池供电设备的理想之选。RISC 处理器可以在 ARM、AVR 和 PIC 微控制器中找到

ARM

ARM 代表高级 RISC 机器。从技术上讲,ARM 是一种处理器,内置于嵌入式微控制器中。它们通常为 32 位或 64 位,通常用于 PDA 和智能手机。ARM Cortex 是一组由 ARM Holdings 授权的处理器。它们有三种变体;A、R 和 M。Cortex-A 系列是“应用程序”配置文件,它是唯一包含 MMU(内存管理单元)的变体。许多现代操作系统都需要这个 MMU 才能运行。Cortex-R 系列是“实时”配置文件,针对高性能、硬实时和安全关键应用进行了优化。它类似于 Cortex-A 配置文件,但具有更高的容错性。

ARM

最常见的设置是 Cortex-M“微控制器”配置文件。该组由 Cortex-M0、Cortex-M0+、Cortex-M1、Cortex-M3、Cortex-M4(F)、Cortex-M23 和 Cortex-M33(F) 组成。“F”表示内核内部的可选浮点单元 (FPU)。通常,微控制器不能使用浮点。Cortex-M0 以最低的价格代表具有小硅片尺寸的优化内核。Cortex-M0+ 是 M0 的优化版本,其中包括 M3 和 M4 内核的一些功能。Cortex-M1 专门设计用于作为软核加载到 Altera、Xilinx 和 Microsemi FPGA 产品中。Cortex-M3 用于高度确定性、低成本的实时应用。Cortex-M4 是带有附加 DSP 指令和可选 FPU 的 Cortex M3。Cortex-M7 是一个高性能内核,与 M4 相比具有更高的能效。Cortex-M23 与 M0+ 类似,但具有额外的 Trustzone 安全功能。Cortex-M33 与 Cortex-M4 类似,但也具有额外的 Trustzone 安全功能。

AVR

AVR 是 Atmel 开发的使用 RISC 处理器的微控制器系列。AVR 最常用于 Arduino 开源板设计系列。这些在 8 位 tinyAVR、megaAVR 和 XMEGA 中可用。

AVR32 是 32 位产品,旨在与 ARM 处理器竞争。这些与原始 ARM 不兼容,并包含额外的 SIMD 和 DSP 指令以及音频和视频处理功能。

大多数 AVR 模型的优点之一是它们可以保留引导加载程序区域来存储重新编程代码。然后代码可以通过任何可用的接口重新编程。

PIC

PIC 代表外围接口控制器。它是由 Microchip 开发的一系列微控制器,提供多种选择。它们不是严格意义上的 RISC 处理器,因为它们的操作略有不同。产品范围包括 8 位 PIC10、PIC12、PIC 16 和 PIC18、16 位 PIC24 和 dsPIC 以及 32 位 PIC32MX、PIC32MZ、PIC32MM 和 PIC32MK。8 位范围侧重于降低成本,dsPIC 侧重于数字信号处理。

PIC32 系列微控制器采用 MIPS32-M4K 核心技术,是一种 32 位 RISC 架构。MIPS 是 ARM 处理器的直接竞争对手,涵盖家庭娱乐、嵌入式和网络产品、移动、可穿戴和物联网设备中的所有类型的应用。

8051

英特尔 MCS-51(也称为 8051)是一种 CISC 架构。这些可用于 8 位、16 位和 32 位微控制器。与 ARM Cortex-M 和 MIPS 处理器相比,8051 硅 IP 内核通常尺寸更小、功耗更低。它们被用于从 USB 闪存驱动器到洗衣机和复杂的无线片上通信系统的所有领域。8051 处理器被 Nordic Semiconductors 无线片上系统解决方案广泛使用。

工作电压

这通常是两个选项之一,但仍然需要注意。微控制器通常在 3.3V 或 5V 下工作。如果微控制器由 3.3V 供电,而系统中与微控制器通信的其他设备在 5V 下运行,则可能需要电平转换,这会使电路复杂化并增加额外成本。尝试将所有内容保持在一个电压域中是一种很好的做法。

需要哪些通信接口?

这又回到了应用程序和添加到电路中的设备。串行 EEPROM 可能需要 I2C 或 SPI 接口。其他设备可能需要 UART/USART/EUSART 进行串行通信。一些显示器需要并行接口,这些接口可能很重。最好首先确定电路中的各种设备以衡量需要什么。

需要多少内存?

同样,这取决于应用程序。该项目是否需要大量本地处理,还是会执行非常基本的任务?每个微控制器中都有不同的内存类型可用。这些通常是易失性存储器;内存和只读存储器。有一些微控制器也具有非易失性存储器 EEPROM。一开始可能很难衡量每种方法需要多少,并且需要一些经验才能掌握它。这也是由前面提到的位大小决定的。

重要的是要注意程序存储器和数据存储器之间的区别。程序存储器是存储和运行已编译代码的地方,并且在运行期间使用数据存储器。如果需要大量处理,则需要更多的数据存储器。如果项目需要使用查找表或存储大量预定义值,则需要更大的程序内存。

比较微控制器

看看顶级微控制器制造商,他们的能力有很多重叠之处。让我们考虑一下该系列中四种流行的微控制器:德州仪器的 MSP430、意法半导体的 STM32F401、Microchip 的 PIC16F1619 和赛普拉斯半导体的 CY7C68013A。

MSP430 和 PIC16F1619 都专注于低成本。16 位 MSP430是具有众多可配置接口的低功耗、电池供电设备的更好选择,例如室内/室外运动传感器。PIC16F1619

是一个 8 位微控制器,功能类似于 MSP430。它没有那么低的功率,但将专注于家用电器和白色家电中的安全关键应用。这些类型的设备需要能够安全地处理所有类型的场景,并在出现问题时以干净的方式重置。例如,当洗碗机的门打开时,洗涤循环将停止。然后当门关闭时它会再次恢复。STM32F401

是带有 FPU 处理器的 32 位 ARM Cortex M4。32 位内核和 FPU 使这款微控制器成为医疗设备、视频和音频设备、扫描仪以及任何需要尽可能快地执行大量浮点计算的设备的理想选择。它还有一个直接连接到微控制器的 USB 接口,增加了一个有用的外部接口。PIC16F1619 和 MSP430 无法处理这些应用程序,因为它们无法同时处理正在处理的数据量。另一方面,ARM Cortex M4 可以轻松执行 MSP430 和 PIC16F1619 的大部分任务,同时牺牲了功耗和成本。

挑选微控制器

虽然考虑所有提供的微控制器是个好主意,但这通常不是做出选择的最快途径。这是一个快速的经验法则派上用场的地方:

1、它们是否有库存并且容易获得?通常情况下,完美的微控制器并不容易获得,或者只能批量购买。

2、他们使用什么工具链?是否有在线示例可供参考?

3、是新的吗?虽然没有什么比使用最新最好的更好的了,但这也意味着找到所有添加到第一个应用说明中的早期问题。任何超过 3-4 个月的东西都应该在不同的应用程序中由不同的消费者进行大量测试。

4、检查引脚排列。没有什么比搜索具有 2 个 UART 和一个 I2C 总线的微控制器发现它们共享相同的引脚更烦人的了。

5、不确定需要多少内存?选择具有比所需更多内存的微控制器。未来的设计迭代可以选择同一系列中更小的微控制器,内存更少,以节省成本。

6、需要多少个通用输入/输出 (GPIO) 引脚?总是得到比需要的更多的东西。额外的 GPIO 可以满足额外的调试点。在同一个系列中获得更小的微控制器来尝试降低成本总是很容易的。变得更大更难。

7、如果使用不同于您习惯的微控制器,请购买和使用评估板和开发套件。评估板往往更贵一些,但从长远来看可以节省时间和金钱。

8、如果创建多个类似的项目,考虑使用相同的微控制器(或足够相似的微控制器)以节省硬件和软件设计时间。

  深圳市晶光华电子有限公司  26年专注提供一站式晶振产品解决方案,产品主要有SMD石英晶振、  车规晶振  SMD振荡器等。晶光华始终坚持以品质为基石,品质符合国际IEC和美国ANSI标准。为了满足客户的高标准需求,我司积极整合供应链,真正服务每一位品质客户。

差分振荡器













































本文标签: 如何选择微控制器(MCU) 差分输出 谐振频率 差分振荡器 晶光华晶振 振荡器 车规级晶振

相关资讯