16 位微控制器的架构

发布时间:2022-05-16 阅读量:1279 来源: 我爱方案网整理 发布人: Aurora

较长的电池续航时间,对提高消费类设备的用户满意度至关重要。对于电池供电的物联网 (IoT) 端点,延长电池续航时间可降低维护成本,提高可靠性。由于这些设备所使用的微控制器功耗相对较大,因此设计人员需要选择并应用合适的架构以满足这些应用的需求。事实证明,多数情况下 16 位微控制器正是最佳选择。

 

虽然 8 位微控制器的功能逐渐强大,但是鉴于处理能力和可寻址存储器有限,性能上存在固有限制,以致于高性能应用通常不会选用 8 位微控制器。另一方面,基于 32 位内核的系统对于这些应用往往又稍显过火,尤其是导致不必要的功耗过大时。

 

解决方案恰恰位于 8 位和 32 位内核中间的平衡点——16 位微控制器。这类器件既像简单的单电源 8 位微控制器一样功耗较低,又 具有 32 位内核的部分性能和存储器优势。如果应用不要求很多线程同时处理,存储器要求也不太高,那么 16 位微控制器可以提供适 当的性能水平并能显著节能。

 

本文介绍了 16 位微控制器的架构及其如何成为许多电池供电的消费类设备和物联网端点应用的最佳选择。此外,还介绍了 Microchip Technology 和 Texas Instruments 推出的几款 16 位微控制器,并说明如何使用 16 位内核着手设计。

 

微控制器选型  

 

在设计过程中,定义项目要求后的第一步就是为应用选择合适的微控制器。三种主流选项分别是 8 位、16 位和 32 位微控制器。

 

不夸张地说,8 位微控制器应用极为普遍,堪称设计人员的主力器件。低成本、低功耗的 8 位微控制器几乎适用于任何小功率应用:主流微控制器中功耗最低的器件,某些器件待机电流低于 100 nA。

 

使用也相对简单,8 位微控制器大多基于累加器,尽管一些较新的架构具有寄存器组,因而编程模型简单且有限:累加器或带单个状态寄存器的小寄存器组、堆栈指针,以及一个或多个变址寄存器。堆栈往往都是硬件堆栈,并且固件无法访问程序计数器 (PC)。

 

尽管 8 位架构广受青睐,可一旦涉及网络和通信就遇到了瓶颈。几乎所有通信堆栈和网络协议都采用 16 位或 32 位,因此不必考虑 8 位架构。此外,即便是高端 8 位微控制器也往往局限于 16 位寻址,不具备分页机制,限制了固件的大小和复杂性。

 

另一方面,32 位微控制器在所有高性能应用中广泛应用。基于寄存器的架构可轻松支持网络和通信;通常使用 32 位寻址,支持浮点运算和高等代数运算,并且时钟速率可达千兆赫级。32 位内核具有更复杂的编程模型,包括多个状态寄存器、固件可访问的 PC、复杂的中断管理以及两层或多层固件执行权限。

 

16 位微控制器虽都基于寄存器,但架构同 8 位内核一样简单。因此,16 位内核往往都具有良好的低功耗性能,电流消耗明显低于 32 位架构,功耗则几乎与 8 位内核一样低。如果应用需要进行高等数学运算,一些 16 位微控制器具有数学协处理器,在相同的内部时钟速度下其数学性能可与 32 位内核媲美。

 

此外,许多通信协议栈都支持 16 位微控制器联网。对于以太网、CAN、USB 和 Zigbee 等协议栈,只要应用程序代码的性能足以支持堆栈,那么使用 16 位微控制器的运行速度可与 32 位微控制器一样快。

 

使用 16 位微控制器进行大型闪存阵列寻址  

 

32 位与 16 位架构的一大差异在于存储器寻址范围。32 位微控制器具有 32 位地址总线,可以访问高达 4 GB 的存储器。传统 16 位  微控制器使用 16 位寻址,只能访问 64 KB 的存储器。不过,如今许多 16 位架构都使用高达 24 位的扩展寻址,相当于扩充了 16 MB 的地址空间。  

 

Microchip Technology 的低功耗 PIC24F 微控制器系列是扩展寻址方式的典型范例。其中一款微控制器 PIC24FJ1024GA,32 MHz 的 16 位微控制器具有 1 MB 的板载闪存和 32 KB 的板载 SRAM,使用类似于许多 8 位微控制器的简单编程模型(图 1)。

 

Microchip 的 PIC24F 编程模型示意图 


Microchip 的 PIC24F 编程模型示意图


图 1:Microchip 的 PIC24F 编程模型类似于高端 8 位微控制器,采用基于寄存器的架构,具有 16 个通用 16 位寄存器、堆栈指针、PC 和 5 个辅助寄存器。(图片:Microchip Technology)

 

PIC24 具有 23 位程序计数器,可以访问高达 8 MB 的程序闪存。16 个 16 位寄存器,称为工作寄存器 (WREG),记作 W0 至 W15:W0 至 W13 寄存器是通用寄存器 (GP),可在固件控制下用于存储数据;W15 是专用堆栈指针 (SP),除了可以通过函数和子例程调用、编程异常处理和调用返回使其自动递增和递减外,SP 也可如 W0 至 W13 寄存器一样通过固件修改。

 

使用 LINK 和 UNLINK 汇编指令可将 W14 用作堆栈帧指针 (FP)。堆栈指针限制寄存器 (SPLIM) 是一个独立寄存器,可与 SP 配合使用以防止堆栈溢出。

 

PIC24 采用具有独立地址和数据空间的哈佛架构。与特殊指令配合使用,数据表页地址 (TBLPAG) 寄存器和程序空间可视性页地址 (PSVPAG) 寄存器可用于访问并在地址和数据空间之间传输数据。这是 32 位架构的常用功能,但 8 位内核却鲜少具备。

 

16 位重复循环计数器 (RCOUNT) 寄存器包含循环计数器,可用于 REPEAT 汇编指令。

 

16 位 CPU 内核控制 (CORCON) 寄存器用于配置 PIC24 内核的内部操作模式。

 

最后,16 位状态寄存器包含 PIC24 内核状态的工作状态位,包括上次执行汇编指令所产生的结果状态。


220x90
相关资讯
时钟芯片的作用:统筹时钟生成与同步!

在任何数字电子系统中,时钟信号都扮演着“心脏起搏器”的角色。

RTC晶振PCB设计的核心要点

RTC晶振与普通32.768kHz晶振的PCB设计要点基本一致,其核心均在于通过优化布线以降低杂散电容、确保频率精度,并依托合理的布局规划最大限度屏蔽来自板上其他信号源的电磁干扰。

不同应用场景中的晶振分类知识合集1

按晶振的功能和实现技术的不同,分为温度补偿晶振(TCXO)、压控晶振(VCXO)、恒温晶振(OCXO)。

晶振分频原理:数字电路的周期性计数实现频率转换!

为了在性能与功耗之间取得最佳平衡,需要根据具体应用场景,对基准时钟进行相应的分频、倍频或转换处理,从而为各模块提供适宜的时钟信号。此时,分频技术就成为连接晶振基准频率与系统需求的关键,通过数字电路将晶振原始频率按固定比例降低,输出符合要求的低频时钟信号。

RTC时钟芯片的电路工作原理与解析

RTC芯片是一种专门用于精准计时、掉电续时的专用集成电路,其核心功能是提供精准、稳定的时间信息(包括秒、分、时、日、月、周、年),并能在主电源断电后依靠备用电池继续保持计时,从而确保时间持续不间断。