在半导体领域,微控制器(MCU)是一个很卷的赛道。为了能够从众多竞争者中脱颖而出,MCU产品一直在不断添加新“技能”,以适应市场环境的新要求。因此,时至今日,如果你“打开”一颗MCU,会发现其早已不再是一颗传统意义上简单的计算和控制芯片,而是集成了CPU内核以及丰富外设功能模块的SoC。
尤其是在CPU内核趋向同质化的今天,想要在产品设计上实现差异化,MCU厂商更是要在CPU内核之外的外设功能的集成上大做文章,让自己的产品具有与众不同的卖点。
“可以将哪类外设功能集成到MCU中”,对于这个问题,MCU厂商已经进行了诸多尝试:存储器、定时器、模拟外设、通信接口,甚至是射频收发器……不一而足。今天,Microchip更是脑洞大开,给出了一个新思路——将一个“微型FPGA”集成到MCU中!
在8位MCU中集成可编程逻辑
电子工程师都知道,在相当长的时间里,MCU和以FPGA为代表的可编程逻辑,是两个特性迥异的开发平台:前者是在通用CPU架构的基础上,通过软件编程去满足不同应用的设计要求,具有较高的灵活性和可扩展性,不过代价就是在性能和功耗上有所折中;而后者由于具有硬件可编程特性,开发者可以根据应用“定制”所需的硬件电路,在性能和功耗上自然更胜一筹,不过开发门槛相对较高。
之前也有⼚商将两者结合在⼀起,开发出兼具灵活性和⾼能效的异构平台,不过它们⼤都定位于中⾼端的产品。将可编程逻辑与8位MCU整合在⼀起的尝试,并不多⻅。⽽Microchip正是找到了这个独特的市场切⼊点,推出了PIC16F13145 系列MCU。
图1:PIC16F13145系列MCU
(图源:Microchip)
具体来讲,与传统的8位MCU不同,PIC16F13145系列的外设中,除了ADC、DAC、⽐较器和定时器等这些“常规”配置,还有⼀个特别的可配置逻辑块(CLB)模块。
CLB由32个基本逻辑元件(BLE)阵列(每个BLE都能够模拟AND / OR / NAND / NOR⻔)以及缓冲器/反相缓冲器、D触发器、JK触发器、多路复⽤器或四输⼊LUT构成。
这意味着,开发者可以利⽤CLB直接在MCU内创建基于硬件的定制组合逻辑功能,实现⾃⼰想要的硬件电路,⽽不受通⽤MCU固定硬件架构的限制,就好像在MCU中添加了⼀个“微型FPGA”。
图2:可配置逻辑块(CLB)架构
(图源:Microchip)
从架构上看,CLB与FPGA的可编程逻辑结构很相似。构成CLB的每个BLE由⼀个4输⼊LUT(Lookup-Table, 查找表)和⼀个D触发器组成。CLB的输入接口提供了16个输入的选择锁存器,每个选择锁存器可以选择最多40种不同的信号之一的信号来作为输入,这些信号可以是通过外部引脚输入的信号,内部外设的输出信号以及软件操作的寄存器的信号。CLB输入端都嵌入了可编程的边沿检测器,这些边沿检测器默认由上升沿触发,但可以编程为由下降沿触发或完全旁路。
另外,CLB支持8路输出可以路由到外部引脚、内部寄存器或内部外围设备的输⼊。CLB还包含⼀个3位硬件计数器,以帮助使⽤CLB构建状态机。当MCU需要执⾏简单的多任务并⾏处理,或者需要实现少量硬件级实时处理时,CLB的作⽤就会更⼤程度地显现出来。开发者可以使⽤CLB来实现状态机或“⾼速”外设,例如软件驱动的信号多路复⽤器、计数器、正交解码器、步进电机控制器或⾼速PWM(脉宽调制器)等。
全新的开发体验
实际上,对于Microchip来说,在MCU中集成可编程逻辑功能并不是⼀个全新的课题。早在⼗多年前,Microchip就曾在其MCU中引⼊了⼀种被称为可配置逻辑单元(CLC)的可编程逻辑外设,这⼀设计思路的价值已经被市场所验证。随着实际应⽤中对更复杂的可编程逻辑需求的增加,终在PIC16F13145系列中演化出了CLB这个规模更⼤、更复杂的可编程逻辑块,完成了⼀次重要的迭代升级,也使得该系列MCU能够⽤于以往属于独⽴可编程逻辑器件的应⽤领域。
PIC16F13145系列MCU这一独特的定位,可以为开发者带来诸多好处。
首先,集成到MCU的CLB,是通过硬件的方式实现逻辑功能,在性能上明显优于“通用MCU+软件”的模式,有利于优化嵌入式控制系统的速度和响应时间,提升整体的系统性能。而且由于在系统设计时,无需增加额外的外部逻辑器件,还可以降低BOM成本,可谓是一举两得。
其次,作为独立于CPU内核的外设,PIC16F13145中的CLB可以在CPU处于睡眠模式时运行,以响应和处理来自外部和内部的任务,更大限度地降低MCU的功耗。CLB还可以与其他外设(如定时器、ADC、PWM模块等)结合使用,进一步优化系统功耗性能。
此外,CLB还有助于PIC16F13145系列MCU实现更强的可扩展性。在实际工作中,随着需求的变化,设计的调整在所难免,而PIC16F13145系列MCU所具备的可编程逻辑功能,使得开发者无需“从头再来”彻底修改整个设计,就能够通过灵活的硬件编程快速完成设计迭代,简化整个设计流程。
由此可见,凭借CLB模块而带来的更高的性能、更低的功耗以及更强的可扩展性,加之其他丰富的片上资源(包括具有内置计算功能的快速10位ADC、8位DAC、快速比较器、8位和16位定时器,以及I2C和SPl等通信模块),PIC16F13145系列MCU无疑为嵌入式开发者提供了一个强大而灵活的开发利器。
完善的开发生态
当然,⼀个嵌⼊式硬件平台,加上配套的软件开发⼯具以及相关技术资源,才能够提供完整的开发体验。具体到PIC16F13145系列MCU这个创新的硬件架构,更是需要完善开发⽣态的⽀持,尽可能降低开发者上⼿“尝鲜”的⻔槛。
好消息是,这⼀点Microchip已经准备好了。PIC16F13145 系列MCU 的开发, 可以得到MPLAB® 代码配置器(MCC)的⽀持,MCC是Microchip的MPLAB X IDE中⼀个免费软件插件,为开发者提供了⼀个基于GUI的简便开发界⾯,⽤于配置器件和片上外设(包括CLB)。CLB所需的⾃定义逻辑配置可通过MCC创建原理图,因此⼤⼤减少了开发时间,⽽且⽤户可以使⽤硬件描述语⾔(Verilog)作为开发语言,增加了开发的灵活性。自定义逻辑配置的原理图也可以通过在线方式创建(logic.microchip.com)。
同时,PIC16F13145 Curiosity Nano评估套件可为使⽤PIC16F13145系列MCU进⾏设计提供全⾯⽀持,⽆需外部⼯具、编程和调试,简单易⽤,有助于开发者实现⽆缝嵌⼊式开发体验,缩短产品上市时间。
本文小结
今天,竞争激烈的MCU市场,迫切需要差异化的创新产品。Microchip的PIC16F13145系列MCU,创造性地将可编程逻辑外设功能与8位MCU架构相结合,在继承MCU固有优势特性的同时,⼜带来了更佳的性能、低功耗特性和可扩展性,在实时控制、数字传感器节点,以及⼯业和汽⻋等细分市场,为嵌⼊式开发者提供了全新的想象空间和开发体验。