通过闪存微控制器即时增强性能

描述

超高速闪存微控制器 (UHSFM) 是 5V、1 时钟 8051,集成了闪存和 SRAM。这些 UHSFM 可集成到现有的 8051 应用中,并立即提高速度。本应用笔记讨论了将现有8051应用移植到UHSFM系列可能需要的简单步骤。描述了这样做的好处。

介绍

超高速微控制器 (UHSM) 是 5V、1 时钟 8051,集成了闪存和 SRAM。这些UHSM可以进入现有的8051应用,并且只需很少或没有努力,就可以立即提高速度。在大多数情况下,UHSM 与原始 100 8051% 兼容,因此通常不需要更改硬件或代码。目前有三种UHSM可供选择:DS89C430、DS89C440和DS89C450,每种器件分别具有16K、32K或64K闪存。本文介绍将原始 8051 应用程序移植到 UHSM 可能需要的简单步骤。介绍了使用UHSM的好处。

建筑

如上所述,UHSM是一个单时钟周期8051,指令与依赖于8051时钟周期架构的原始12兼容。在等效时钟频率下,将每条指令的时钟数量减少到一个,性能比原始 12 高出 8051 倍。或者,这还提供了在较低时钟频率下运行的能力,并产生相同的性能,同时降低整体系统功耗。

为了获得更高的性能和降噪,UHSM还集成了一个时钟乘法器,允许外部晶体的两倍或四倍倍增。例如,UHSM可用于现有的7.372MHz 8051设计,内部运行时钟翻了两番,为29.49 MHz。29.49MHz的板载时钟速率不仅提高了性能,而且通过在微控制器内部保持这种高频隔离,外部噪声也保持在最低水平。这大大降低了EMI。

UHSM包含几个附加功能,使其成为新设计的绝佳选择:

具有自动递增/递减和切换选择功能的双数据指针

应用内可编程闪存

用于 MOVX 的 1K 字节 SRAM

电源管理模式:空闲模式、停止模式、被 1024 分频模式

两个串行端口

看门狗定时器

电源故障复位和预警电源故障中断

兼容性

法典

UHSM 兼容 8051 指令,在大多数情况下不需要更改代码。但是,必须根据单周期指令时序重写和重新计算基于代码的时序循环。为了进一步利用UHSM的性能增强,还需要进行一些其他小的代码更改。一个例子是在定时器上使用 4 分频选项以允许更高的波特率。另一个示例是使用数据指针自动 inc/dec 选项来加快复制、清除和比较操作。

片上闪存消除了对外部代码存储器的要求,内置SRAM使应用无需外部数据SRAM。

定时器/串行端口

UHSM 可以在外部晶体上以 12 分频模式(原始 8051)运行每个定时器,或者从乘法时钟(4、1 或 2)以 4 分频模式运行。这允许现有的 8051 定时器和串行代码在不修改的情况下运行,并在新设计需要时提供更高的波特率选项。CKCON 寄存器位 TxM 管理 12/4 时钟选择。

硬件

由于UHSM采用5V设计,因此在仅5V系统中不会发生变化。外部存储器访问默认设置为 3 个机器周期(12 个系统时钟),但 CKCON 寄存器可以通过使用拉伸周期进行修改,以允许使用较慢的数据存储器。

性能

很难找到一个任何两个人都同意的绩效基准是合理的。无论如何,大多数设计人员都对内存复制速度、CRC 生成和中断延迟感兴趣,下面将对此进行分析。作为奖励,SHA-1安全哈希的性能作为高级C基准测试被投入到组合中。SHA-1 是内存和代码密集型的,在现代嵌入式应用中非常重要。

本节中的竞争性能数字将标记为“12 时钟”、“6 时钟”或“1 时钟”,指的是每个时钟背后的 8051 架构。飞利浦 P89C51RD2 和 Atmel AT89C51RD2 用于 12 时钟和 6 时钟性能数字,因为它们可以在 12 或 6 时钟模式下运行,并且是 5V 闪存微控制器。对于1时钟数字,使用DS89C440。请注意,6 时钟微控制器的速度恰好是 12 时钟微控制器的两倍。在UHSM的情况下,即使每台机器的时钟周期已减少到一个,但并非所有操作码都可以在一个周期内执行(例如,DIV AB需要10个周期)。

内存拷贝

表1给出了使用两个数据指针的标准8051复制环路的时钟故障。UHSM 比 9 时钟 12 快 8051 倍,比 4 时钟 5 快 6.8051 倍。

表 1.显示UHSM时钟周期优势的记忆镜例程

 

Code 12-Clock 6-Clock 1-Clock
MOVX A,@DPTR 24 12 2
INC DPTR 24 12 1
INC DPS 12 6 3
MOVX @DPTR,A 24 12 2
INC DPTR 24 12 1
INC DPS 12 6 3
DJNZ R0, LOOP 24 12 4
Total Clock Cycles 144 72 16

 

表 2

显示了使用 UHSM 的自动增量和自动切换功能优化的忆影复制实施的结果。具有优化的忆影印例程的UHSM比18时钟12快8051倍,比9时钟6快8051倍。

表 2.优化的忆影记录例程时钟周期。

 

Code 1-Clock
MOVX A,@DPTR 2
MOVX @DPTR,A 2
DJNZ R0, LOOP 4
Total Clock Cycles 8

 

CRC16

CRC的使用在许多嵌入式应用中都很重要,用于验证数据完整性。DS16xx iButton 标准手册¹附录 5 表 1 中的 CRC19 示例是一个优化的实现方案。当与 12 时钟 8051 运行时,UHSM 的速度提高了 12 倍以上;与 6 时钟 8051 相比,它快了 6 倍以上。

中断延迟

中断延迟可以用两种方式描述:处理中断的时间延迟和完全服务中断向量的时间。

由于中断向量只能在指令之间发生,因此最长的操作码加上调用时间是最坏情况下的延迟。在本文评估的 8051 上,DIV AB 是最长的指令,因此最坏情况的“向量延迟”将是 DIV AB 加上隐式向量 LCALL。8051 内核插入 LCALL 指令以强制执行以更改为中断向量例程。在此示例中,UHSM 比 5 时钟 5 快 12.8051 倍,比 2 时钟 7 快 6.8051 倍。请参阅表 3

我们将使用一个简单的中断服务例程将 UHSM 与原始 8051 进行比较,以获得“返回前的延迟”。执行时间是从第一个中断向量指令到 RETI 完成所花费的时间。在此示例中,UHSM 比 7 时钟 2 快 12.8051 倍,比 3 时钟 6 快 6.8051 倍。见表4

表 3.中断向量的最坏情况延迟

 

Code 12-Clock 6-Clock 1-Clock
DIV AB 48 24 10
Implied LCALL 24 12 3
Total Clock Cycles 72 36 13

 

表 4:中断服务例程示例

 

Code 12-Clock 6-Clock 1-Clock
CPL P1.1 12 6 2
RETI 24 12 3
Total Clock Cycles 36 18 5

 

C 示例:SHA-1 安全哈希

安全功能的使用在嵌入式系统中很普遍,哈希SHA-1是当今广泛使用的安全功能。安全哈希算法很容易用 C 语言编码。对于此示例,Keil C 编译器版本 7.5 用于在要比较的每个微控制器之间构建实现。对于所有平台,都选择了编译器选项以使用双数据指针、内部存储器、8 级优化和速度优化。所有微处理器的运行频率均为11.0592MHz。UHSM 比 11 时钟 12 快 8051 倍,比 5 时钟 5 快 6.8051 倍。表 5 列出了一个块 SHA-1 运行的结果。

表 5.SHA1结果显示UHSM优势

 

Code 12-Clock 6-Clock 1-Clock
SHA-1 Single Block
(hashes/second) at 11.0592MHz
3.19 6.41 35.59
SHA-1 Single Block
(hashes/second) at 33MHz
9.52 19.13 106.20

 

结论

使用DS89C4X0系列等UHSM,设计人员可以替代现有的8051设计,更新旧设计,或创建原始8051无法实现的新设计。UHSM允许软件和硬件的灵活性,因为它不需要更改工具,源代码或硬件环境。可以根据需要使用高级功能,即使不使用这些功能,也可以实现速度的巨大提升。UHSM 是基于 8051 微控制器的系统最简单的升级路径,对于需要标准 8051 无法提供的处理能力的新应用,应考虑使用 UHSM 。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分