搜索
 找回密码
 立即注册

简单一步 , 微信登陆

不老神话仍在延续:8051必将驰骋IOT时代

作者:liugewill | 时间:2016-7-21 09:39:22 | 阅读:4225| 只看该作者
当8051内核架构在1998年失去专利保护后,备受肯定的8051内核再次受到热捧,当时多种新型的8051 MCU不断涌入市场,一些厂家继续采用原始的架构,而另外一些厂家对它进行了不同程度的改进。Silicon Labs 8051架构正是这些更高性能优化架构之一。它保持与原始内核代码兼容,同时对8051架构进行了现代化和“类RISC化”,从而获得了巨大的性能提升。图1显示了在Silicon Labs 8051内核中实现的经典3J流水线架构。

  典型流水线示例

  图1 - 典型流水线示例

  原始的Intel 8051内核执行一条指令需要花费12个时钟周期;因此,在12MHz时钟频率下,它的运行速率可达1MIPS(每秒百万指令)。相比之下,100MHz时钟频率的Silicon Labs 8051内核可达到100MIPS,或者可以说是——在大约8倍于传统8051的时钟频率下,100MHz时钟频率的Silicon Labs 8051内核比传统8051内核运行速率快了100倍。

  Silicon Labs以3级流水线冯·诺依曼(Von-Neuman)架构来实现它的8051先进内核。3级流水线整合8位机明确的指令解码逻辑的简易性使得这个芯片能够在0.35微米工艺下运行在100MHz时钟频率。由于与经典的8051代码兼容至关重要,该架构保留一个带有4个区域的32字节的寄存器文件,从而能够更容易的进行上下文切换。经典8051的所有其他硬件方面也由于上面提及的原因而得到保留。图2显示了新一代Silicon Labs芯片中实现的8051内核。

  最先进技术的8051 MCU示例

  图2 - 最先进技术的8051 MCU示例

  为了充分利用这些新型8051芯片的功能,需要创建一个系统定义识别并利用这种架构所提供特性的系统定义。例如,8051内核实现了可在某些寄存器或存储位置直接执行逻辑运算操作的能力。这在几乎任何控制应用中都是一项非常有用的特性,无论是工业还是其他领域。凭借Silicon Labs 8位芯片的运行频率,这些操作能够在单个时钟周期内完成执行。这种方法带来极佳的控制响应时间,这意味着当与相同配置的硬件实现相比时,bit-banged的总线定义能够以一种相当合理的速率运行。例如,bit-banged的全双工SPI能够被实现为每位12个系统时钟周期,在100MHz系统时钟频率下支持大于8MHz的位传输频率。

  另一项8051创新是为带有嵌入闪存的闪存存储器管理增加控制器,这为8051带来快速启动和执行代码的能力。当然,指令取出路径也要满足速度需求,因此诸如预取指缓冲器、缓存和分支目标缓冲器这些高级特性也要被实现。Silicon Labs最新的8位MCU,例如EFM8UBx系列产品,实现了传统的16位宽预取指缓冲器以支持50MHz操作。

  鉴于这些系统的性能特点,新颖的I/O架构必须支持多种外设才能够同时(或者分时共享)运行。为此目的,开发一个基于优先级的Crossbar架构才能允许任意外设以确定的方式,访问几乎任意端口。因此,在带有大量I/O引脚的相同系统中实现多种高速外设成为可能,并且所有引脚都可以通过高性能CPU控制。

  8051内核是8位机器,这意味着寄存器空间被限制仅仅能支持256个寄存器。仅具有高性能CPU和众多外设,这是远远不够的。为了克服寄存器空间的限制,存储页的概念被用于实现多个256字节地址空间定义,并且页切换的机制也被实现。此外,某些系统寄存器以及关键外设寄存器在每一个页中都是可访问的。
原始8051内核的另一个缺点是它的中断延迟。由于它固有的12时钟周期执行延迟,中断延迟可能需要数百个时钟周期,这使得它仅适用于慢速控制。更高性能的芯片显而易见有更短的中断延迟,因此缩短了对控制/传感器中断的整体系统响应时间。有些新晋的Silicon Labs 8051 MCU也在他们的中断级中实现了4个中断优先级状态。这种技术使得中断处理更加精确,这在一个拥有大量外设的系统中是必须的。

  就新近系统存储器的固有特性而言,实际上存储访问需要占用2个时钟周期。因此,每一次存储器访问之后能够跟随任意其他动作,并且不会导致流水线溢出。在存储器位置上执行逻辑操作的能力也得到保留,它们也作为2个时钟周期操作,因为它们采用“读取-修改-写回”的操作方式。

  尽管有相对高的时钟速率,但是高性能8051 MCU并非为执行高速高阶算法而设计。例如,16位的乘法在Silicon Labs 8051 MCU上将需要占用143个时钟周期。Silicon Labs的一些高速8051 MCU也实现了一个带有40位累加器的16位MAC。这种技术完成了单时钟周期的16位MAC操作或者乘法运算。当然,它仍然需要几个时钟周期去装载和卸载数据。由于MAC采用流水线设计,因此当MAC正在操作上一个数据时,新数据能够被移入输入寄存器。图3显示了在C8051F120 MCU中实现的MAC框图。

  MAC实现

  图3 - MAC实现

  高性能8051内核在外设组合中支持一些并非常见的外设,例如低速和全速USB。在运行于50MHz时钟频率时,Silicon Labs 8051 MCU有足够的能力去运行USB协议栈,同时保持它的外设组合能够全速运行。自然的,即使在同时使能2个1M采样率ADC存取和运行以及常见的UART、SPI和DAC组合,这种级别的性能水平也能够获得一个合理的响应时间。

  传统的8051 MCU通常不支持通过系统电路仿真功能进行调试。Silicon Labs 8051内核在设计之初就把ICE作为一项必要需求。这促生了C2调试接口的开发,它是在大部分Silicon Labs 8051 MCU中实现的一个超小尺寸但功能强大的2线调试接口。

  一些高引脚数量的8051芯片实现了外部存储器接口(EMIF),它有能力连接到任何可存储器映射的设备(例如,RAM或者其他控制器)。在一些应用中,以太网控制器能够完全的由一个50MHz时钟频率的Silicon Labs 8051 MCU存取和控制,同时也具有充足额外能力去运行其他外设。

  Silicon Labs的8位产品系列也包括基于8051内核和低功耗sub-GHz收发器的无线MCU。使用在这些8位sub-GHz无线MCU芯片上的CPU有足够的能力运行整个无线电协议栈,同时也拥有在上传数据之前进行数据处理的能力。这些小封装、超低功耗的无线MCU当在休眠模式(保存所有状态)时消耗非常少的功耗,他们是功耗敏感型无线传感器节点应用的理想选择。

  Silicon Labs的8位产品系列还包括汽车级别的微控制器,实现了0.5%精度的振荡器和CAN接口。这种组合使得CAN可以在没有片外晶体的条件下正常运行,减少了物料清单(BOM)成本,同时增加了制造和系统的可靠性。这个无晶体设计的另一优点是振荡器可以30ps步长调节,一些复杂的脉宽调制(PWM)控制能够通过非常精确的控制PWM边沿而实现。这种技术是可行的,因为处理器内核能够足够快的执行这个功能的软件控制。

  8051内核超过许多32位内核的一个优势是具有以总线速度访问I/O的能力。例如,如果一个引脚需要检测,并且基于这个引脚的值,是否去改变这个引脚输出必须做出判断。运行在100MHz时钟频率的Silicon Labs 8051 MCU在50ns内处理这个操作。运行在100MHz时钟频率的32位处理器将连接GPIO到APB总线。这意味着它将运行在一个比总线速度更慢的频率上(可能是总线速率的一半),100MHz时钟频率的处理器将仅仅能够以50MHz时钟频率访问它的GPIO,并且以那个速度做出判断。因此,32位MCU执行端口引脚读取、比较、端口模式改变指令和写驱动数值指令所需要的时间将达到140ns。相比较,这个操作在运行于100MHz时钟频率的8051内核上仅花费50ns。当然,如果8051设备正运行在50MHz时钟频率,端口操作处理时间可能是100ns。

  因为总线层级在8051 MCU中是简单的,因此分支能够比带有总线分层的32位机器执行的更快。这种能力是8051架构固有的,并且存在于Silicon Labs的所有基于8051的产品之中,也包括新型的EFM8系列产品。

  8051 MCU无疑将继续驰骋IoT时代

  多年以来,备受肯定的8051内核已经得到显著升级和现代化,拥有巨大的安装量和为之编写的数以百万计的代码。当开发基于8051内核的8位应用时,嵌入式开发人员能够继续利用这些丰富的知识宝库。

  新兴物联网(IoT)应用,例如可连接设备和传感器网络,能够在端节点中广泛使用8051 MCU。这些物联网应用通常是传感器密集型或者控制密集型的,并且也有严格的功耗、占用空间和预算限制。

  广泛部署并经过时间考验的8051指令集仍然是许多既需要功效又需要性价比的应用的最佳选择。当提到8051内核的长盛不衰,俗话说的好:“万变不离其宗。”

  以下我们用一个实例来说明Silicon Labs基于8051的新型EFM8 MCU的应用

  比如,Silicon Labs的EFM8SB1系列MCU 可以成功应用在智能水杯的方案中。智能水杯主要用来测量液位或者液量,并累计计算一定时间内用户的饮水量,提醒用户适时饮水。传统的智能水杯使用压力传感器测量液位,有的还要加入重力或者加速度传感器检测杯体的倾斜。EFM8SB1的电容感应测量模块可以实现同样的功能。该系列MCU具有多个通道的12位精度高速电容数字转换测量能力,无需外围附加器件,并为用户提供了一系列用户友好的软件库和调式工具。

  除了液量测量,EFM8SB1中的其他功能模块也可以实现智能水杯的其他功能。12位的ADC可以测量水温,PCA可以驱动LED或者蜂鸣器提供简单的用户显示界面,而UART或者SPI可以用来连接无线模块,和其他智能设备比如手机交换数据,在功能更强大的设备上提供更丰富的应用和客户体验。
收藏
收藏0
分享
分享
点赞
点赞0
反对
反对0
回复

使用道具 举报

大神点评1

沙发#
liugewill 发表于:2017-3-9 18:12:52
主要是便宜,性能也还行
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册
手机版