编辑:CrazyRabbit
日期:2022年7月27日

本文是英飞凌官方培训的笔记摘录,入门篇第一节课。

1. 总述

1.1 功能框图

TriCore架构什么时候开发的 tricore架构详解_英飞凌


首先看功能框图:

  • Security & Safety :信息/功能安全,包含有SMU(Safety Manage Unit)模块、HSM(Hardware Security Module)模块
  • Memories:存储模块包括片上RAM(分为DSPR、PSPR、Cache等)、内嵌式FLASH(分为DFLASH和PFLASH)

以TC275为例,3个核CPU0/1/2有各自的RAM,分为程序RAM和数据RAM,即PSPR和DSPR。PSPR(或者叫做PRAM)主要用于放置静态函数,提高函数执行效率,或放置Fash驱动函数以擦写Flash(可参考官方Flash Demo);DSPR主要用于全局变量、现场保护的上下文管理和堆栈等数据。

  • Tricores:从最低端的1核,到最高端的TC39x,拥有6个核
  • Timers:定时器,分为STM(系统定时器)和GPT(通用定时器)
  • Peripherals:外设,有DMA(Direct Memory Access,直接存储器访问))、ADC(模数转化器,Analog To Digital Converter)、GTM(源于博世的通用定时器单元)、CCU6(捕获/比较单元 ,Capture Compare Unit 6)
  • Communication Interfaces:通讯接口,MCMCAN、Gigabit Ethernet MAC(以太网)、SPI、UART、I2C

1.2 亮点

TriCore架构什么时候开发的 tricore架构详解_框图_02

1.3 关键特性

TriCore架构什么时候开发的 tricore架构详解_英飞凌_03


接下来,围绕这三个关键特性做讲解

2. Embedded FLASH

内嵌式FLASH的框图如下:

TriCore架构什么时候开发的 tricore架构详解_英飞凌_04


TriCore架构什么时候开发的 tricore架构详解_AURIX_05


AURIX的FLASH分为多个模块,如上图的PF0~PFx(最多PF5)以及DF0和DF1,PF是存储代码,DF是存储数据。

PF0~PF5是每个CPU的Local Flash,CPU访问Local PFlash是不需要访问系统总线的,只需要访问自己的Local总线即可。每个CPU也可以访问其他核的PFLASH,但需要跨总线访问,速度会慢。正式这个特性,我们最好把需要在本地直行的代码放到对应的CPU的Local PFLASH中。

DFLASH主要是存放数据,具有UCB功能(User Configure Block,用户配置模块),UCB中可以配置启动方式、启动地址,也可以设置FLASH访问权限,设置DEBUG保护口等功能。

由于有分块的概念,TC3xx系列支持云端刷写

每个模块有自己的SRI(Shared Resource Interconnnect)、ECC解码和预取指功能。用户可以配置SMU(Safety Management Unit)和IR(Interrupt Router)单元配置相应的中断报错来调用服务函数。

总结:正因为有内嵌式FLASH和Local的分块概念,使得我们的代码存储更加高效,也具有更高等级的安全机制。

3. TriCore

TriCore架构什么时候开发的 tricore架构详解_英飞凌_06


TriCore集成了以下三种功能于一身:

  • 实时微控制器
  • 精简指令集
  • 协处理器DSP,具有乘累加指令

另外,以TC 1.6.2P核(视频制作时)为例:

  • 超标量的哈佛架构,支持6级流水线300MHz的时钟
  • 算力最高是2.3 DMIPS/MHz

每个CPU都有一个32位的浮点数计算单元。

4. 外设

支持的外设有:

TriCore架构什么时候开发的 tricore架构详解_TriCore架构什么时候开发的_07

TriCore架构什么时候开发的 tricore架构详解_框图_08