Microchip Technology公司 MCU8产品部亚太区业务拓展经理 徐进
Microchip全新8位MCU外设问世,突破嵌入式设计壁垒
Microchip Technology公司 MCU8产品部亚太区业务拓展经理徐进
Microchip最新一代的8位单片机集成了所谓的“独立于内核的外设”,将设计的灵活性提升到了一个新的水平。从简单的数字定时器到复杂的AC/DC电源,这些可配置外设与MCU集成的智能模拟相配合,可实现均衡的可定制解决方案来应对许多设计挑战。此外,新一代8位MCU突破了传统8位MCU的不足,进一步拓宽了产品的应用领域。
图1 数控振荡器应用实例
从40多年前首款带只读存储器(ROM)的MCU问世以来,单片机不断发展,从简单的逻辑控制器到带有模拟功能的完全集成式的智能IC,8位MCU的发展尤为突出。就传统的8位MCU外设而言,每个模块仅设计用于执行单一功能。而最新一代的8位MCU在设计之初即旨在创建与传统完全不同的产品,这一变化更需要采用全新的终端产品设计方法。这些新的8位MCU集成了若干个独特的外设,可以按需执行多个功能和任务。同时,设计人员可以通过配置和组合这些外设来创建新的功能,而这些新功能在其他类型的单片机上是无法或难以实现的。这些新型外设大多无需内核监管即可独立运行,因而在执行必要的任务时减少了对CPU的依赖。此外,这些外设多数也在休眠模式下使用,非常适合各类功耗敏感型应用。
新器件中最常用的外设之一就是可配置逻辑单元(CLC),它是一个非常简单但功能强大的模块,可提供标准的逻辑功能,如AND、OR、XOR、SR锁存器和J-K 触发器,用户可对这些功能进行配置以创建用于信号调理的逻辑门。CLC模块的输入、输出信号可以经由内部连接与任何一个I/O、外设或寄存器相连,它可以用作一个简单的信号路由器、粘合逻辑或控制唤醒的智能状态机。传统的单片机需要外部的可编程逻辑器件(PLD)或额外的编码来实现所需的逻辑控制功能,然而即便是这样的设置也并不能达到CLC那样的灵活性。
另一个可配置模块——数控振荡器(NCO)可用作20位定时器或具有高分辨率、可变频控制的PWM控制器,如图1所示。这和传统的PWM/定时器不同,彼此性能和特性几乎完全相反。
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。
表1就使用传统方法与采用独立于内核的外设来设计CDI系统做了一个对比。
如表1所列,运用AT方法,执行时间和CPU使用率减少了50%以上,代码空间也减少了40%,大大提升了系统性能。
有许多方式可以生成PWM信号,或通过固件或通过硬件,然而涉及到测量和从PWM输入信号中提取信息时,选择范围就比较有限了。典型的方法是使用定时器和CCP,以及大量的CPU周期来确定脉冲、周期或占空比值。将CLC和NCO模块组合起来,并进行一些额外的编码工作,也有可能完成这些任务。
然而,前文例子中提及的SMT外设是一个带有高级时钟和门控逻辑功能的24位计数器/定时器,可支持不同的采集模式。这些模式包括自动测量并存储周期和占空比值,且无需内核的监管或任何额外的计算。SMT外设对任何一个需要测量PWM信号的设计而言都是非常有用的,比如电机控制应用。
表1电容放电式点火系统实现方法对比
尽管这些高级外设具有更多的功能,设计人员的顾虑之一是:如何管理有限的I/O及可用的MCU资源以实现器件性能最优化。模块太多,引脚却不够,一直是限制传统低引脚数8位MCU功能的短板之一。而如今在增添了外设引脚选择(PPS)等功能以后,设计人员现在无需使用任何外部组件即可将任意的数字信号实时发送到任意一个I/O引脚。而需要多个UART的传统设计则需要一个具备多个UART 模块的高引脚数单片机来实现。现在有了新一代的8位MCU,任何一款单片机只需拥有一个UART和PPS或CLC来轻松发送通信信号至多个引脚,便可完成这项任务。
总之,最新一代的8位MCU比传统的8位MCU功能更多、更强大。与以软件为中心的32位MCU相比,它们往往可以借助集成的、独立于内核的硬件执行许多功能,在性能上提升至新的高度。此外,独立于内核的外设为设计人员提供了更大的灵活性,他们可以通过配置和组合若干外设来创建多种应用功能而无需牺牲CPU性能或功耗。这些新型硬件外设消除了传统设计对内核的依赖,同时增强了系统整体设计的决定性。
[1] 独立于内核的外设设计中心.
[2] DS41631B-Configurable Logic Cell Tips ‘n Tricks.
[3] AN1980-Capacitor Discharge Ignition Using the Angular Timer.
[4] AN1470-使用CLC和NCO实现曼彻斯特解码器.
[5] AN1476-结合CLC和NCO实现高分辨率PWM.
[6] AN1779-Sensored Single-Phase BLDC Motor Driver using PIC16F1613.
[7] TB3129-PIC单片机的信号测量定时器.
[8] AN1473-多种计算脉冲与占空比的方法.
[9] Lucio Di Jasio. This is (not) rocket Science.
(责任编辑:杨迪娜2016-03-11)