HPM6000


1.jpg

本期开发笔记由费神编写主要会为大家介绍HPM6000系列的各类片上SRAM并结合Segger Embedded Studio的linker文件介绍,提供了如何使用这些SRAM的建议,赶快来了解吧~

简介

在HPM6000系列微控制器上,集成了大容量的SRAM,可供用户存放代码,数据等,满足各类应用的需要。其中片上SRAM有多种分类,包括RISC-V CPU的指令和数据本地存储器ILM,DLM,通用内存AXI SRAM,AHB SRAM等,还包括AHB SRAM,APB SRAM等。这些SRAM的最高访问频率不同,数据保持的条件也不同,恰当地使用他们,可以极大的提升用户应用的效率。

片上SRAM介绍

HPM6000系列高性能MCU均集成了大容量片上SRAM,总结如下:

2.pngHPM6000系列片上SRAM总结

2.1 RISC-V CPU的本地存储器ILM和DLM

HPM6000系列高性能微控制器的RISC-V CPU都包含有指令和本地存储器,分别称为ILM(Instruction Local Memory,指令本地存储器)和DLM(Data Local Memory,数据本地存储器)。如下图所示,RISC-V CPU的ILM和DLM各自对应了内存映射表(Memory Map)中的2块地址映射区域。

3.png

HPM6700系列ILM/DLM示意图

ILM的映射有:

ILM,以HPM6700系列为例,容量256 KB,地址范围为0x00000000 ~ 0x0003FFFF。该地址区域只有RISC-V CPU可以通过自身的ILM接口访问,RISC-V CPU从ILM取指时,可以实现零等待周期,即ILM的访问时钟频率,与RISC-V CPU主频一致,并且RISC-V CPU的一级高速指令缓存I-Cache-L1对ILM无效。

CPUx_ILM_SLV,以HPM6700系列的CPU0 ILM为例,容量256 KB,地址范围为0x01000000 ~ 0x0103FFFF。该地址区域也称为ILM0镜像,该地址区域可以供总线上所有的主设备访问,如DMA等,包括RISC-V CPU自身,也可以通过CPUx_ILM_SLV访问ILM。如图所示,CPUx_ILM_SLV是AXI系统总线的从接口,其访问时钟频率与总线时钟频率一致。RISC-V CPU访问CPUx_ILM_SLV时,一级高速指令缓存I-Cache-L1是有效的。

DLM的映射有:

DLM,以HPM6700系列为例,容量256 KB,地址范围为0x00080000 ~ 0x000BFFFF。该地址区域只有RISC-V CPU可以通过自身的DLM接口访问,RISC-V CPU从DLM读写数据时,可以实现零等待周期,即DLM的访问时钟频率,与RISC-V CPU主频一致,并且RISC-V CPU的一级高速指令缓存D-Cache-L1对DLM无效。

CPUx_DLM_SLV,以HPM6700系列的CPU0 DLM为例,容量256 KB,地址范围为0x01040000 ~ 0x0107FFFF。该地址区域也称为ILM0镜像,该地址区域可以供总线上所有的主设备访问,如DMA等,包括RISC-V CPU自身,也可以通过CPUx_DLM_SLV访问ILM。如图所示,CPUx_DLM_SLV是AXI系统总线的从接口,其访问时钟频率于总线时钟频率一致。RISC-V CPU访问CPUx_DM_SLV时,一级高速指令缓存D-Cache-L1是有效的。

2.1.1 HPM6700系列

HPM6700系列微控制器上,指令/数据本地存储器的2块地址映射xLM和CPUx_xLM_SLV虽然地址不同,但访问的是同一块物理内存,RISC-V CPU可以通过xLM访问自身的指令/数据本地存储器,而其他总线主设备,比如DMA,需要通过CPUx_xLM_SLV来访问CPUx的指令/数据本地存储器。注意,RISC-V CPU本身,也可以通过CPUx_xLM_SLV访问自己的指令/数据本地存储器。

HPM6700系列支持双核RISC-V CPU,CPU从xLM地址映射总是访问到自身指令/数据本地存储器,而从CPUx_xLM_SLV可以访问到自身或者另一个CPU的指令/数据本地存储器。

以HPM6700系列RISC-V CPU0为例,从0x00000000和0x01000000读取到的,是CPU0指令本地存储器ILM0的首地址。从0x01180000读到的,是CPU1指令本地存储器ILM1的首地址。

以RISC-V CPU1为例,从0x00000000和0x01180000读取到的,是CPU1指令本地存储器ILM1的首地址。从0x01000000读到的,是CPU0指令本地存储器ILM0的首地址。

4.png

2.1.2 HPM6300系列 

HPM6300系列为单核RISC-V CPU,RISC-V CPU和其他总线主设备都可以通过xLM地址映射访问CPU的指令/数据本地存储器,其中RISC-V CPU仍然可以通过自身的xLM接口对xLM实现零等待周期访问,即xLM的读写时钟频率与CPU的时钟同频。而其他总线主设备,需要以AXI系统总线的时钟频率访问xLM。

同时,xLM的镜像,CPUx_xLM_SLV映射仍然有效,包括RISC-V CPU在内的所有总线主设备,访问CPUx_xLM_SLV与访问xLM效果相同,访问的是同一块物理内存。注意RISC-V CPU通过CPUx_xLM_SLV访问自身的xLM时,会和其他总线主设备一样,读写时钟频率与AXI系统总线时钟频率一致,不再支持零周期等待,但是CPU的高速一级缓存会生效。

比如,RISC-V CPU和DMA,从0x00000000读取到的,是CPU0指令本地存储器ILM0的首地址。从0x01000000读取到的,也是CPU0指令本地存储器ILM0的首地址。注意RISC-V CPU从0x01000000取值后,如果高速缓存打开,其数据会被存入缓存。

2.2 AXI总线SRAM

HPM6000系列高性能MCU支持通用的片上SRAM,称为AXI SRAM,可以用来存放数据或者代码。 

5.png

HPM6700系列AXI SRAM示意图

上图以HPM6700系列MCU为例,展示了AXI SRAM在系统中的位置。顾名思义,AXI SRAM连接到AXI系统总线的从接口,它的读写时钟频率就是AXI系统总线的时钟频率。所有的AXI系统总线主设备都可以访问AXI SRAM。

注意:系统内存映射表上,AXI SRAM的地址映射与RISC-V CPU的ILM/DLM镜像映射CPUx_xLM_SLV在地址上是连续的。因此可以把AXI SRAM和RISC-V CPU的本地存储器当作一块联系的大内存使用。详情请参考后文的SRAM使用建议。

2.3 AHB总线SRAM

HPM6000系列高性能MCU包含挂载在外设总线AHB的片上SRAM,称为AHB SRAM,如下图所示,AHB SRAM连接到AHB外设总线的从设备接口。

AHB SRAM的读写时钟频率为AHB外设总线的时钟频率。注意,包括RISC-V CPU在内的总线主设备需要通过AXI系统总线,来访问AHB外设总线下的各个外设寄存器。而外设总线AHB上的主设备,比如HDMA,可以直接通过AHB总线访问外设寄存器,以及AHB SRAM。因此AHB SRAM比其他类型的片上SRAM更适合用作寄存器和SRAM之间的数据搬运。基于同样的理由,HDMA也比XDMA更适合用作AHB SRAM和寄存器之间的数据搬运。

因此,当使用HDMA用作通讯接口,如UART,SPI的数据收发时,推荐使用AHB SRAM作为数据的缓冲区。

6.png

HPM6700系列AHB SRAM和APB SRAM示意图

2.4 APB总线SRAM

HPM6000系列高性能MCU的部分型号支持APB SRAM。上图以HPM6700系列MCU为例,展示了APB SRAM在系统中的位置。

APB SRAM位于电源管理域,由VPMC引脚供电。当MCU处于低功耗模式时,有可能通过关闭系统电源域的电源,使得VDD_SOC掉电。此时,APB SRAM可以作为片上的备份SRAM,保存必要的数据。

注意,对于不支持APB SRAM的型号,可以使用电源管理域通用寄存器PGPR,保存一定的备份数据。

在电池模式(VBAT Only Mode)下,VPMC也掉电,HPM6000系列MCU仅VBAT保持供电。此时,电池备份域通用寄存器BGPR,可以用来保存一定的备份数据。

以上为本期分享内容,还有更多信息如 Segger Embedded Studio的linker文件说明,以及SRAM的使用说明和相应的linker文件修改方法,可点击文链接:https://www.hpmicro.com/resources/resources.html进行了解,感谢关注!

来源:先楫芯上人

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 75

本期介绍的是HPM6000系列中security flash方面内容。希望可以帮助用户了解先楫为了用户信息安全方面所做的设计。

Security Flash 模块概述 

首先进行一些名词解释: 在线执行 (Execution In Place):可以直接访问外部存储器,不需要把外部 存储器数据先复制到内存再执行的访问的方式,称为在线执行 (Execution In Place); 

DEK(Data Encryption Key):数据加密秘钥,用户加密存储器上数据/代 码的秘钥;

KEK(Key-Encryption Key):密钥加密密钥,加密 DEK 的秘钥。

EXIP 在线解密引擎介绍 

先楫半导体 HPM6000 系列 MCU 设计的 EXIP 在线解密引擎支持在线执 行功能,并且可以对加密的外部 NOR Flash 进行实时解密,实现在线实时解密 执行,EXIP 主要特性有: 

(1)支持 AES-128 CTR 模式解密

EXIP 支持 AES-128 CTR 模式解密,密钥长度为 128 位。密钥存放在寄存 器 RGNx_KEY0、RGNx_KEY1、 RGNx_KEY2、RGNx_KEY3 中。

AES-128 CTR 模式要求使用相同密钥加密的数据,每一个数据块对应的计数器 Counter 值不能重复,Counter 长度与 AES 数据块长度相同,也为 128 位。EXIP 对每个 128 位的数据块,其 Counter 由数据块的 32 位系统地址和 64 位的 NONCE 组成,其中 NONCE 存放在 RGNx_CTR0 和 RGNx_CTR1 中。

(2)支持 4 个区段,每个区段可以使用不同的密钥加密 

(3)支持通过 Key Blob 封装数据加密密钥等敏感信息(符合 RFC3394 标准) 

(4)支持硬件解封 Key Blob(符合 RFC3394 标准) 

(5)支持从 OTP 读取用于解封 Key Blob 的 KEK

XPI NOR 启动镜像布局介

1.png

XPI NOR 启动镜像布局 

如上图所示,完整的 XPI NOR 启动镜像有 EXIP BLOB、XPI 配置选项、 FW BLOB、固件头和固件组成,其中虚线框为可选内容,实线框为必须包含内 容。 

要实现加密镜像,则镜像头部必须包含 EXIP BLOB 内容,该部分内容使用 RFC3394 定义的密钥封装和密钥解封算法,通过 KEK 加密后以密文形式存放 在 Flash 中,以保护 EXIP 解密用的 DEK 和相关敏感数据。

Security Flash 系统流程介绍

2.png

Security Flash 原理示意框图

如上图所示,Security Flash 流程包含三个方面:
(1)用户生成加密镜像, 使能在线加密执行功能;

(2)EXIP 解密 EXIP BLOB 得到 DEK 等解密信息;

(3) EXIP 使用 AES-128 CTR 模式在线解密 Flash 密文固件。 当 OTP 中 ENCRYPT_XIP 字段置为 1,BootROM 启动加密原地执行功能, BootROM 会 在 XPI NOR 启 动 中 强 制 打 开 EXIP , 并 尝 试 用 EXIP0_KEK (XPI_INSTANCE 值为 0)或者 EXPI1_KEK(XPI_INSTANCE 值 为 1)解密 EXIP Blob。

当 EXIP BLOB 解密无误后,ROM 会根据 EXIP BLOB 中的信息配置对应 的解密信息,将恢复的 DEK、NONCE、加密区域的开始和结束地址信息载入 RGNx 对应的寄存器。当 EXIP BLOB 解密无误后,EXIP 即可根据 AES-128 CTR 模式执行原地解密执行操作。

性能对比测试

对于加密对执行环节的影响,先楫做了简单的测试对比,在明文和密文的单核测试中测试程序条件:(1)关闭所有 Cache,包括 D-Cache 和 I-Cache 

(2)循环运行 600 次特定数学计算,得出运行消耗时间 测试结果如下表:

3.png

可见,相同软硬件平台下,加密镜像执行对处理器性能并没有实质影响

注意:由于加密环节涉及到对OTP的烧写,可能一个疏失造成芯片无法正常启动。因此先楫建议开发者在有实际需要时联系先楫,这样可以得到更好的支持。

来源:先楫芯上人

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 61

不管是工业自动化领域,还是汽车领域,抑或是生活家电领域,各个终端市场对电机性能都提出了更高的要求。它们不仅需要电机能够做到高效率和多功能控制,还需要电机在追求高转速的同时实现低噪音低振动的控制效果。在与日俱增的高标准性能要求下,高性能成了电机芯片竞争的关键。

纵观整个电机控制芯片市场,从低成本通用伺服驱控到中高性能通用伺服驱控,长于控制的MCU单芯片方案都是最常见且最受欢迎的,而且现在VC/FOC功能几乎已成为电机MCU的标配,是体现控制能力的核心竞争力。虽然严格来说,VC和FOC二者概念上是有差异的,但在大多数场景里,二者指的是同一种控制方法。VC矢量控制(Vector Control)将异步电动机的定子电流矢量分解为产生磁场的电流分量(励磁电流)和产生转矩的电流分量(转矩电流)分别加以控制,并同时控制两分量间的幅值和相位,是目前无刷直流电机(BLDC)和永磁同步电机(PMSM)高效控制的最优方法之一。VC矢量控制不仅解决了自然坐标系上实现电机速度、电流闭环负反馈控制难的问题,而且保证了优良的速度、转矩输出性能,在工控、汽车、家用、3D打印等行业得到了迅速的发展,成为主流电机控制的基本架构,其控制原理如下图所示:

1.png

图1 VC原理

如上图所示,VC矢量控制的核心源自于闭环负反馈,因此其带宽是电机控制产品最重要的衡量指标之一。具体来说,高带宽能够带来更快的指令响应时间和更优异的高频扰动抑制能力,这种能力最终体现在电机层面上的是更高的控制精度、更高的控制效率、更低的噪音和电机抖动。

而代码执行时间决定了带宽,是电机控制产品不可逾越的指标之一,这也造成了目前市场上电机控制产品性能输出有差异的现象。归根结底,电机控制的差异取决于芯片性能。其限制因素特别体现在以下三个方面:

  • 主控芯片主频限制:芯片主频不够高,无法做到高速运算,以及提升带宽;

  • 外环代码执行限制:内环代码通过原厂提供的硬件化方法可以执行很快,但是外环代码执行依旧不够快;

  • 代码硬件化限制:芯片所有代码硬件化,却产生了开发难以及无法做一些常见电机控制算法等问题。

因此想要实现更优秀的控制性能,电机控制MCU的选择非常关键。上海先楫半导体已经量产的RISC-V内核HPM6700/6400系列芯片抓住了上述主要矛盾,通过提升主频来解决电机控制行业的痛点,得益于RISC-V本身的简洁性和模块化设计,CPU能运行在更高的频率,带来更高的性能。以HPM6700/6400系列芯片为例,参数如下图所示:

2.png

图2 先楫HPM6700/6400系列芯片

HPM6700/6400系列高性能MCU展示了先楫半导体高性能芯片的研发实力,HPM6700/6400系列主频高达816MHz,不仅能够解决上文提到的电机控制性能的三大限制,而且契合现在电机多核驱控一体的发展趋势。HPM6700/6400系列还为电机系统提供了精度达2.5ns的4组共32路PWM输出以及4个正交编码器接口和4个霍尔传感器接口,完美适配高性能电机控制和数字电源运动控制系统。

< 解决方案分享>

先楫HPM6000系列芯片的1us电流环 3.png

图3 案例时序

案例使用先楫HPM6000系列芯片—HPM6400系列与HPM6300系列,采用图3所示的电流环时序,分别使用HPM6400系列与HPM6300系列芯片实测VC矢量控制中的电流环执行时间。具体而言:从提升电流内环带宽的角度出发,将图1中的VC结构划分为外环(位置速度环)、内环(电流环),如图4所示:

4.png

图4 等效VC结构

在VC矢量控制中,由于采用了坐标变换,dq轴电流在稳态情况下都是直流给定,而只在加减速或者突加减负载的时候,速度环会等效输出一个阶跃指令,电流环的带宽就是电流环能够以多快的速度去响应这个指令,带宽越大响应越快。所以说电流环执行时间直接决定了电流环的带宽,是电机控制产品必须考量的指标。

结果,先楫半导体已量产系列芯片实测的电流环执行时间如下图所示: 5.png

图5 HPM6400、6300系列芯片电流环执行时间实测数据

如图5所示,HPM6300系列芯片的电流环执行时间接近1us,HPM6400系列电流环执行时间更是控制在1us以内,该优势不仅能够提升带宽,更是说明了先楫高性能芯片能够带来高速运算能力,实现复杂电机控制算法(如多电机同步、参数辨识、SVC(Senseless Vector Control)、谐波注入等)与电流环的同步,甚至是以更高的频率执行。在高性能先楫HPM6000系列芯片的加持下,电机产品能够不失精度地展现出更优异的控制性能。

高性能电机控制 

HPM6000系列芯片介绍

HPM6700/6400系列为HPM6000系列的旗舰产品,采用RISC-V内核(*67为双核,64为单核),主频达816MHz,凭借先楫半导体的创新总线架构、高效的L1缓存和本地存储器,创下了高达9220CoreMark和高达4651 DMIPS 的MCU性能新纪录。

除了高算力RISC-V CPU,HPM6700/6400系列产品还创造性地整合了一系列高性能外设,包括支持2D图形加速的显示系统、高速USB、千兆以太网、CAN FD等通讯接口,高速12位和高精度16位模数转换器,面向高性能电机控制和数字电源的运动控制系统。

HPM6300系列是HPM6000系列的另一款力作,采用单核32位RISC-V处理器,主频超过600 MHz,性能超过3390CoreMark和1710 DMIPS。同时,HPM6300系列支持双精度浮点运算,模拟模块包括16位模数转换器,12位数模转换器和模拟比较器,配以多组纳秒级高分辨率PWM,为电机控制和数字电源应用提供强大硬件支持。

来源:先楫半导体HPMicro

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 126

页面

订阅 RSS - HPM6000