16位MCU是“鸡肋”?别忙下结论
发布时间:2020-12-24 13:18:43 点击次数:587
延长电池寿命对于提高消费类设备的用户满意度至关重要。对于电池供电的物联网(IoT)端点,延长电池寿命可以缩减维护成本并提高可靠性。因为这些设备使用的微控制器功耗为相对较大的设计人员需要选择并应用合适的体系构造来满足这些应用程序的需要。实情验证,在大多数状况下,都是选择16位微控制器。
尽管8位微控制器的功能越发强劲,但由于处理能力和可寻址存储器的局限性,其性能存在固有的局限性,因此高性能应用程序通常不选择8位微控制器。一方面,对于这些应用程序而言,基于32位内核的系统往往有些过大,特别是当它们致使不必需的功耗时。
该解决方案正好在8位和32位内核-16位微控制器之间的平衡点上。这种类别的设备不仅具有低功耗(如简单的单电源8位微控制器),而且还具有具有32位内核的一些性能和内存优势,如果应用程序不需要同时处理多个线程,并且内存要求不是很高,则16位微控制器可以提供一个合适的性能程度,可以大大节约能源。
本文介绍了16位微控制器架构,以及如何将其作为许多电池供电的消费类设备和物联网endpoint应用程序的完美选择,此外,还介绍了Microchip推出的几种16位Technology。Texas和Instruments微控制器,并解释如何使用16位内核开始设计。
单片机选择
在设计过程中,概念项目需要后的第一步是为应用程序选择合适的微控制器。三个主流选择是8位,16位和32位微控制器。
绝不夸张地说8位微控制器应用非常广泛,可以被叫作设计人员的主要设备。低成本,低功耗8位微控制器适用于几乎所有低功耗应用:主流微控制器中的低功耗设备,某些设备的待机电流低于100na。
使用起来也比起简单。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位微控制器一样快。
支持大闪存阵列寻址
32位和16位体系构造之间的最大差异在于内存的寻址范围.32位微控制器具有32位地址总线,可以访问多达4gb的内存。传统的16位微控制器使用16-位位寻址,只能访问64kb的内存。但是,现在许多16位体系构造都使用扩展寻址,最高可达24位,这相当于扩展16mb的地址空间。
Microchip Technology的低功耗PIC24F微控制器系列是扩展寻址的典型示例。使用简单的编程,微控制器PIC24FJ1024GA中的一种,32mhz16位微控制器具有1mb板载闪存和32kb板载SRAM模型类似于许多8位微控制器(图1)。
图1:Microchip的PIC24F编程模型类似于高端8位微控制器,使用基于寄存器的体系结构,具有16个通用16位寄存器,堆栈指针,pc和5个辅助寄存器(图表来源:MicrochipTechnology)
PIC24具有23位程序计数器,最多可以访问8mb的程序闪存。16个16位寄存器称作工作寄存器(wreg),表示为w0至W15:w0至W13寄存器是通用寄存器(GP),可用于在固件控制下存储数据;W15是专用的堆栈指针(sp)。除了通过函数和子例程调用自动递增和递减,编程异常处理和调用返回之外,还可以通过固件(如w0到W13寄存器)来改动sp。
使用LINK和UNLINK汇编指令将W14当做堆栈帧指针(FP)。堆栈指针限制寄存器(SPLIM)是独立的寄存器,可以与sp一齐使用以防范堆栈溢出。
PIC24使用哈佛架构,具有独立的地址和数据空间,结合特别解释使用,数据表页面地址(TBLPAG)寄存器和程序空间可视性页address(PSVPAG)寄存器可以是用于在地址和数据空间之间访问和传输数据。这是32位体系构造的常见功能,但8位内核很少使用它。
16位重复循环计数器(RCOUNT)寄存器包含循环计数器,可用于REPEAT汇编指令。
16位CPUkernel控制(CORCON)寄存器用于配备PIC24kernel的内部操作模式。
16位状态寄存器包含PIC24kernel状态的工作状态位,包括最后一次执行汇编指令所生成的结果状态。
根据Microchip Technology对PIC24FJ1024GA606T的性能评估,工作频率为32mhz时可以达到16mips,对于16位内核,这个指标确实令人印象深深,该内核具有32位微控制器的许多功能,例如同时支持小数运算的17位×17位硬件乘法器和32位/16位硬件除法器。对于需要测算传感器数据的物联网端点,这些功能非常有用。此外,该架构还可以同时读写数据存储器,而不会影响性能。
尽管PIC24FJ1024GA606T具有多种基准外围设备,例如USBOTG,但是在电池供电的应用中其功耗非常低,所需的电源电压仅为2.0v至3.6v。微控制器以32mhz全速运行时,电流消耗高达7.7ma。如果将其替换为32位内核是非常不便的。内核和外设时钟可以通过固件控制。目前有两条汇编指令使设备进入低功耗模式:idle指令终止PIC24内核,但是外围设备可以继续工作;SLEEP指令将终止运行,除了看门狗(可选)和外部中断检测所有外部设备的操作。在闲暇模式下,大电流只有2.8ma,而在睡眠模式下,大电流范围是10到45?a。在低功耗模式(即睡眠模式)下,仍存储随机存取存储器(RAM)的内容,PIC24F的电流消耗低至190na。
为了赢得更高的性能,Microchip Technology在dsPIC?中推出了高端16位微控制器。series。Microchip的dsPIC33ep512gp506t是16位70mips微处理器之一,闪存。dsPIC的512kb基本寄存器与PIC24大体上相同,除了支持数字信号处理的寄存器(@添加了nz@)指令,包括两个40位累加器并支持32位乘法。如果需要在系统中升级DSP,则大多数PIC24微控制器都可以使用引脚兼容的dspic开展升级,因此使用同样的PIC24也可以提高性能。
当然,性能越高,功率越大。此dsPIC33的电源电压为3.0至3.6v,当工作速度达到70mips时,大电流为60ma。
减低功耗并提高性能
TexasInstruments的MSP430FR599x微控制器系列使用该公司的铁电随机存取存储器(FRAM)程序存储器,以实现比闪存微控制器更高的读/写性能和更低的功耗。
MSP430FR5994IPNR16位微控制器是该系列的产品之一,时钟频率为16mhz,fram为256kb。
MSP430FR微控制器内核的性能加强包括双向关联缓存(由四个高速缓存块构成,行宽为64字节),以实现更高的FRAM性能;32位硬件乘法器可提高数学密集型运算的性能;和MSP430(低能耗加速器)LEA独立于协处理器main基本。LEA可以迅速执行256点复数傅立叶变换(FFT),有限冲激响应(FIR)滤波器和矩阵乘法。根据TI,矩阵乘法的计算速度比Arm快40倍?Cortex?-M0+。LEA可以提高传感器融为一体操作,图像加强和超声波传感器数据处理的性能。面对这些应用程序时,开发人员通常优先考虑32位内核而不是超低内核。电源16位微控制器。
MSP430R的编程模型非常简单(图2)。有16个16位寄存器r0到R15:r0是程序计数器,R1是堆栈指针,R2是状态寄存器,R3是一个常量生成器(用于立刻操作数),R4到R15是通用寄存器。其他寄存器配备使用内存映射,类似于大多数32位内核。

