全新8位MCU外设问世 突破嵌入式设计壁垒

Microchip 最新一代的 8 位单片机集成了所谓的“独立于内核的外设”,将设计的灵活性提升到了一个新的水平。从简单的数字定时器到复杂的 AC/DC 电源,这些可配置外设与 MCU 集成的智能模拟相配合,可实现均衡的可定制解决方案来应对许多设计挑战。此外,新一代 8 位单片机突破了传统 8 位 MCU 的不足,进一步拓宽了产品的应用领域。

从 40 多年前首款带只读存储器(ROM)的 MCU 问世以来,单片机不断发展。从简单的逻辑控制器到带有模拟功能的完全集成式智能 IC,8 位单片机的发展尤为突出。就传统的 8 位单片机外设而言,每个模块仅设计用于执行单一功能。而最新一代的 8 位单片机在设计之初即旨在创建与传统完全不同的产品,这一变更需要采用全新的终端产品设计方法。这些新的 8 位单片机集成了若干个独特的外设,可以按需执行多个功能和任务。同时,设计人员可以通过配置和组合这些外设来创建新的功能,而这些新功能在其他类型的单片机上是无法或难以实现的。这些新型外设大多无需内核监管即可独立运行,因而在执行必要的任务时减少了对 CPU 的依赖。此外,这些外设多数也在休眠模式下使用,非常适合各类功耗敏感型应用。

使用独立于内核的外设
新器件中最常用的外设之一就是可配置逻辑单元(CLC)。它是一个非常简单但功能强大的模块,可提供标准的逻辑功能,如 AND、OR、XOR、SR 锁存器和 J-K 触发器,用户可对这些功能进行配置以创建用于信号调理的逻辑门。CLC 模块的输入、输出信号可以经由内部连接与任何一个I/O、外设或寄存器相连。它可以用作一个简单的信号路由器、粘合逻辑或控制唤醒的智能状态机。传统的单片机需要外部的可编程逻辑器件(PLD)或额外的编码来实现所需的逻辑控制功能,然而即便是这样的设置也并不能达到 CLC 那样的灵活性。

如图 1 所示,另一个可配置模块——数控振荡器(NCO)可用作 20 位定时器或具有高分辨率、可变频控制的 PWM 控制器。这和传统的 PWM/定时器不同,彼此性能和特性几乎完全相反。

“图

图 1: 数控振荡器应用实例

NCO 具有更高的分辨率和线性频率控制功能,可通过对电路电流的高精度控制来简化广泛应用于许多电源应用中的复杂控制算法,例如带有调光功能的照明镇流器控制应用。由于 NCO 可提供变频控制来轻松改变警报声音的音高,它还可用于驱动烟雾报警器的声音警报。通过对所产生的频率实施更精细的控制,NCO 无需任何外部模拟组件即可对生成声音的音调和音高进行更好的调节。

这种集成外设可以单独使用,但是把多个模块组合在一起来创建不同的功能才是其真正的绝妙之处。例如,曼彻斯特编码广泛应用于各种电信和数据存储应用。传统的曼彻斯特算法需要大量的固件资源支持,并且要占用 CPU 资源来进行任务管理。而通过串联使用 NCO 和 CLC 模块构建出的曼彻斯特解码器,可以完全在硬件环境中运行,无需占用任何 CPU 资源。顺便提一下,曼彻斯特编码器的设计可以仅由一个 CLC 模块来实现,而无需进行任何固件位拆裂。

相比于 CLC 或 NCO 模块,诸如角度定时器(AT)、信号测量定时器(SMT)和数学加速器(MathAcc)等其他外设则较为复杂。无论电机速度还是信号频率,AT 均可用于测量电机控制和AC电源应用中任意一种周期信号——如光学编码器、过零检测器和霍尔传感器。AT 模块可在纯硬件环境中执行时间/角度域瞬间转换,且同样没有任何额外的 CPU 开销。而传统单片机处理这一任务则往往需要多个定时器来计算和测量时间单位,然后借助数学计算(通过固件)将数值转换
成相角域;如果周期已知的话,则需要存储在程序存储器中的查找表。传统方法需要进行更多的固件设置和更多的 CPU 资源来进行数学计算,还需要约束查找表的大小,这样就限制了可用数值的数量,进而导致近似值和差错。而 AT 模块可以直接根据设计人员配置的相角值自动生成中断和事件。此外,AT 模块还有三个比较/捕捉/PWM(CCP)功能供用户自行支配。

对比传统方法与独立于内核的设计另一个通过组合多个外设以简化任务的实例便是广泛应用于小型内燃机中的电容放电式点火
(CDI)控制系统,如图 2 所示。

“图

图 2: 使用集成角度定时器外设的电容放电式点火系统

在数字控制 CDI 系统中,单片机有两大主要任务:
• 基于各个传感器提供的信息确定火花塞的点火提前角
• 通过设置 PWM 信号占空比将触发脉冲传送至 DC/DC 转换器,以实现火花点火功能
由于相关外设可有效管理 RPM 计算任务和控制发动机火花塞的点火时间,而只需要极少的CPU 干预,设计人员无需掌握内燃发动机控制系统的所有设计细节,即可将 AT、CLC 及诸如 SMT和 MathACC 等其他一些外设组合起来实现基于 PIC16F161x MCU 的 CDI,大幅提升整体性能。如果想对这一设计进行更深入的分析,请参阅文末参考文献中列出的应用笔记 AN1980。

图 3 就使用传统方法与采用独立于内核的外设来设计 CDI 系统做了一个对比。

“图

图 3: 电容放电式点火系统实现方法对比

正如图 3 所示,运用 AT 方法,执行时间和 CPU 使用率减少了 50%以上,代码空间也减少了40%,大大提升了系统性能。有许多方式可以生成 PWM 信号,或通过固件或通过硬件;然而涉及到测量和从 PWM 输入信号中提取信息时,选择范围就比较有限了。典型的方法是使用定时器和 CCP,以及大量的 CPU 周期来确定脉冲、周期或占空比值。将 CLC 和 NCO 模块组合起来,并进行一些额外的编码工作,也有可能完成这些任务。然而,前文例子中提及的 SMT 外设是一个带有高级时钟和门控逻辑功能的24 位计数器/定时器,可支持不同的采集模式。这些模式包括自动测量并存储周期和占空比值,且无需内核的监管或任何额外的计算。SMT 外设对任何一个需要测量 PWM 信号的设计而言都是非常有用的,比如电机控制应用。

尽管这些高级外设具有更多的功能,设计人员的顾虑之一是:如何管理有限的 I/O 及可用的MCU 资源以实现器件性能最优化。模块太多,引脚却不够,一直是限制传统低引脚数 8 位单片机功能的短板之一。而如今在增添了外设引脚选择(PPS)等功能以后,设计人员现在无需使用任何外部组件即可将任意的数字信号实时发送到任意一个 I/O 引脚。而需要多个 UART 的传统设计则需要一个具备多个 UART 模块的高引脚数单片机来实现。现在有了新一代的 8 位 MCU,任何一款
单片机只需拥有一个 UART 和 PPS 或 CLC 来轻松发送通信信号至多个引脚,便可完成这项任务。

总之,最新一代的 8 位单片机比传统的 8 位 MCU 功能更多更强大。与以软件为中心的 32 位MCU 相比,它们往往可以借助集成的、独立于内核的硬件执行许多功能,在性能上提升至新的高度。此外,独立于内核的外设为设计人员提供了更大的灵活性,使他们可以通过配置和组合若干外设来创建多种应用功能而无需牺牲 CPU 性能或功耗。这些新型硬件外设消除了传统设计对内核的依赖,同时增强了系统整体设计的决定性。

参考文献:
• 独立于内核的外设设计中心
• DS41631B – Configurable Logic Cell Tips ‘n Tricks
• AN1980 – Capacitor Discharge Ignition Using the Angular Timer
• AN1470 – 使用 CLC 和 NCO 实现曼彻斯特解码器
• AN1476 – 结合 CLC 和 NCO 实现高分辨率 PWM
• AN1779 – Sensored Single-Phase BLDC Motor Driver using PIC16F1613
• TB3129 – PIC®单片机的信号测量定时器
• AN1473 – 多种计算脉冲与占空比的方法
• 《This is (not) rocket Science》,作者 Lucio Di Jasio

2016 ISS国际空间站设计挑战赛

最新文章