英飞凌TC3xx之一起认识GTM系列(一)先来认识GTM架构

  • 1 先来认识GTM的通用架构
  • 2 概览
    • 2.1 架构的简要说明
    • 2.2 架构概述

1 先来认识GTM的通用架构

GTM系统使用GTM全局时钟fGTM 运行(本文称为SYS_CLK)。

特点如下

GTM模块由两个主要部分组成:

  • 由博世设计的GTM IP v3.1.5.1
    • GTM IP 由许多不同的子模块组成,提供多种功能来解决所有问题
    • 与定时器模块相关的最常见应用
  • 由英飞凌设计的GTM Wrapper

以下是子模块中一些最重要的 GTM IP 功能的列表:

  • 中央/边缘对齐 PWM 生成 (TOM/ATOM)
  • 用于不对称死区时间生成 (DTM) 的专用模块
  • 专门支持 DC-DC 相移操作 (DTM)
  • 数字信号的逻辑组合 (DTM)
  • 为系统提供通用时基(TBU)
  • 外部信号的多重捕获/比较以及与时间戳的组合 (TIM/ATOM/TBU)
  • 复杂数字信号生成(PSM、ATOM、MCS)
  • 数字信号滤波和表征 (TIM)
  • 输入信号测量和超时检测 (TIM)
  • 使用块换向模式(SPE、TIM、TOM)的 BLDC 电机控制
  • 用于发动机管理应用的发动机角度时钟(DPLL、TIM、MAP、TBU)
  • 通过专用硬件支持(DPLL、ATOM、MCS)生成喷射/点火脉冲
  • 类似 RISC 的可编程内核可减轻 CPU (MCS) 的负担
  • GTM 模块之间自动数据共享,无需 CPU/DMA (ARU、BRC)
  • 可配置工作频率高达 200MHz(CCM、CMU)

相比AURIX的差异

向后兼容性

  • GTM IP v3.1.5.1 完全向后兼容前几代产品
  • GTM 包装器不完全向后兼容
    • 包装器的某些部分已更改,以提高 GTM 灵活性,并满足 AURIX 第二代所需的更多连接数量

GTM IP差异
GTM2.x和GTM3.1.x之间的主要区别如下:

  • 最大工作频率扩展至 200MHz2)
  • GTM 架构分为集群
  • 增强了使用新指令(即 MUL、DIV)增强的 MCS RISC 类处理器
  • 每个 MCS 都可以访问同一集群内所有其他 GTM 模块的寄存器
  • 每个 MCS 都可以从同一集群内的所有其他 GTM 模块获得中断
  • MCS 内存写保护,防止 CPU/DMA 访问和其他 MCS
  • 向 ARU 添加了新的可配置调度方案
  • 为 DTM 模块添加了紧急关闭功能
  • 改进了 DPLL 刻度生成和双向传感器支持
  • 向 MCS 添加了新的 ADC 接口
  • 添加了新的 TBU 模计数器(发动机角度时钟)
  • 为 (A)TOM 模块添加了新的可逆计数器模式
  • 向 MCS 添加了新的调度方案

GTM Wrapper 的差异

对于 TC3xx 器件,Wrapper 发生了重大变化:

  • 增加了连接到每个端口的可选 GTM 输出资源的数量(从 4 个增加到 12 个)
  • 为 ADC 添加了另外 3 个触发器(从 2 个增加到 5 个)
  • 实施了新的多路复用器以将端口和 ADC 信号连接到 DTM
  • 创建了一个新接口,将所有 EVADC 和 EDSADC 结果寄存器连接到 MCS

2 概览

GTM内核架构:

本系列所讲述的GTM内核基于Robert Bosch GmbH的以下版本:

• Version: release-v3.1.5.1-2016.03.24
• Date: 24 March 2016

2.1 架构的简要说明

  • GTM是通用定时器模块的简称,包含具有不同功能的子模块,这些子模块可以以可配置的方式组合,以形成复杂的计时器模块,具备可扩展性和可配置性。通过将专用硬件子模块位于中央路由单元(称为高级路由单元(ARU))周围的架构实现,其中ARU可以灵活地连接各子模块,并且该连接可通过软件运行时配置。

  • GTM 的设计目的是减轻 CPU 或外围核心的高中断负载。 GTM 内的大多数任务可由外部 CPU 设置一次即可独立运行,并且与软件并行。可能存在特殊情况需要CPU立即处理,但 GTM 设计的目标是将这些情况减少到最低限度。

  • 硬件子模块具备一些特定功能,例如定时器输入模块,可以捕获输入信号,也可以表征该信号的时间特性。通过ARU将多个子模块组合起来也可以构建复杂的功能,例如在输入模块处表征的信号可以被路由到信号处理单元,可以在信号处理单元中计算关于输入信号频率的中间值。辅助实现如此复杂功能的模块被称为基础设施组件,这些组件在所有GTM variants中都有,但组件件的数量会因型号而异。

  • 其他子模块具备更通用的架构,可以实现典型的定时器功能,例如PWM 生成单元。

  • 第三类子模块是那些实现特定应用领域的专用功能的子模块,例如 DPLL 服务于发动机管理应用。

  • 第四组子模块是负责支持安全功能的实施,以达到规定的安全水平。

  • 模块ICM负责中断服务,定义了第五组。

可见,每个 GTM 都是由来自四个组的子模块构建的。

2.2 架构概述

通用计时器GTM根据应用领域的多种要求,提供了不同数量子模块(即 ATOM、BRC、MCS、PSM、SPE、TIM、TOM、DTM),并且每个子模块有不同数量的通道。

  • 参数存储模块 (PSM) 只是一个虚拟层次结构,由子模块 F2A、FIFO 和 AFD 组成。集群死区时间模块 (CDTM) 也是一个虚拟层次结构,由最多 6 个 DTM 模块组成。 六个 DTM 实例中哪一个可用,取决于 GTM 设备配置,请参阅设备特定附录以获取可用 DTM 实例的列表。一般来说,CDTM[n] 层次结构内的前四个 DTM 模块连接到集群 [n] 的 TOM 实例 [n] 的输出,另外两个 DTM 实例连接到 ATOM 实例 [n] 的输出 ] 该簇 [n]。

  • GTM_IP 架构的集群视图如上图 所示。这是一个通用图,显示了可能的 GTM-IP 设备配置。设备相关配置(即子模块和每个子模块的通道数)在设备特定附录中列出。

  • GTM 分为多个簇 0…n,每个集群中存在一定数量的模块。集群的工作频率可以配置为OFF、aei_sys_clk或aei_sys_clk/2。时钟使能生成可以在 GTM_IP 内部或外部实现;在外部使能生成的情况下,aei_sys_clk_en 用于生成内部时钟。 此外,还实现了使能看门狗来监控外部施加的使能信号 aei_sys_clk_en 的正确性的功能。

  • GTM 的核心组件是高级路由单元 (ARU),大多数子模块位于其周围并与其连接。 该 ARU 与广播 (BRC) 和参数存储模块 (PSM) 一起构成 GTM 的基础设施部分。 ARU能够将数据从连接的源子模块路由到连接的目的地子模块,路由是通过连接通道的循环调度方案以确定的方式完成的,这些通道从 ARU 接收数据并具有最坏情况的往返时间。

  • ARU 的路由数据字的大小为 53 位。数据字在逻辑上可以分为三个部分:位 0 至 23 以及位 24 至 47 通常保存 GTM 操作寄存器的数据,例如测量的 PWM 输入信号或输出的占空比和周期持续时间,或者是要生成的输出 PWM 的输出特性;Data0和Data1的也可以是GTM时基TBU_TS0、TBU_TS1和TBU_TS2的两个24位值;位 48 至 52 可以包含用于将控制信息从一个子模块发送到另一子模块的控制位,这些 ARU 控制位 (ACB) 对于不同的子模块可以具有不同的含义。
    数据可以从源地址路由到目的地址,目的地址再充当另一个目的地的源地址,这些通过 GTM的路由进一步被称为数据流。

  • BRC 能够将数据从一个源模块分发到多个连接到 ARU 的目标模块。

  • PSM 子模块由三个子单元组成:AEI 到 FIFO 数据接口 (AFD)、FIFO 到 ARU 接口 (F2A) 和 FIFO 本身。 PSM 可以用作输入数据特征的数据存储或输出数据的参数存储,该数据存储在逻辑上位于 FIFO 子单元内部的 RAM 中,但物理上 RAM 是由芯片供应商利用其 RAM 实现技术来实现和集成的。因此,GTM 在其模块边界提供 RAM 接口。 AFD 子单元是 FIFO 和 GTM SoC 系统总线接口 AEI 之间的接口(详细讨论请参见第 26.4.2.1 节)。 F2A子单元是FIFO子单元和ARU之间的接口。

  • 信号通过定时器输入模块 (TIM) 传输至 GTM,这些模块能够过滤输入信号并填入额外的信息。 例如,每个通道都能够并行测量脉冲高电平或低电平时间,以及 PWM 信号的周期,并将这些值发送到 ARU 进行进一步处理。TIM子模块的内部操作寄存器为24位宽。

  • 时钟管理单元 (CMU) 为 GTM 提供多达 13 个不同的时钟以及多达三个外部时钟引脚 GTM_ECLK0…2,它充当系统时钟的时钟分频器,其他子模块内部实现的计数器通常由该子模块驱动。 请注意,CMU 时钟被作为计数器的使能信号,而整个系统使用 GTM 全局时钟 SYS_CLK 运行。该全局时钟通常对应于 GTM-IP 连接到的微控制器总线时钟,由于实现 GTM 时使用的晶体管的功耗,频率不会超过 100MHz。

    • SYS_CLK = fGTM clock,由GTM wrapper提供.
    • fGTM max value is 2xfSPB = 200MHz
  • TBU 为 GTM 提供多达三个独立的公共时基,时基的数量取决于型号。如果实现了三个时基,则还可以使用数字 PLL (DPLL) sub_inc1c 和 sub_inc2c 的输出对其中两个时基进行计时,DPLL 生成代表最多两个输入信号频率的较高频率时钟信号,这里的两个输入信号可以从来自 TIM0 子模块的六个输入信号中选择。在这个子模块中,输入信号经过过滤并传输到 MAP 子模块,其中从这六个信号中选择两个的操作在 DPLL 内部进行进一步处理。

  • 信号输出由死区时间模块 (DTM)、定时器输出模块 (TOM) 和 ARU 连接的 TOM (ATOM) 生成。每个 TOM 通道都能够在其输出处生成 PWM 信号。由于集成了影子寄存器,甚至可以通过 CPU 提供参数,使用 TOM 通道生成复杂的 PWM 输出。 可以通过 TOM(x)_CH(15) 和 TOM(x+1)_CH(0) 之间的触发线触发后续 TOM 子模块的 TOM 通道。 但为了避免长触发路径,GTM 集成器可以配置在哪个 TOM 子模块实例之后将寄存器放置到触发信号链中。每个寄存器都会导致触发信号延迟一个 SYS_CLK 周期

  • 此外,每个TOM子模块都可以集成驱动一台BLDC发动机的功能,此 BLDC 支持与 TIM 和传感器模式评估 (SPE) 子模块一起构建。

  • ATOM 提供附加功能,无需 CPU 交互即可生成复杂的输出信号,通过连接到 ARU 的其他子模块(如 PSM 或多通道定序器 (MCS))提供这些复杂的波形特征。 TOM 通道的内部操作和影子寄存器为 16 位宽,而 ATOM 通道的操作和影子寄存器为 24 位宽,以具有更高的分辨率,并有机会与来自 TBU 的时基值进行比较。

    可以通过 ATOM(x)_CH(7) 和 ATOM(x+1)_CH(0) 之间的触发线触发后续 ATOM 子模块的 ATOM 通道。 但为了避免长触发路径,GTM 集成器可以配置在哪个 ATOM 子模块实例之后将寄存器放置到触发信号链中。 每个寄存器都会导致触发信号延迟一个 SYS_CLK 周期

  • ATOM 与 MCS 一起能够在 GTM 输出引脚上生成任意预定义的输出序列。 输出序列由位于连接到 MCS 子模块的 RAM 中的指令定义,这些指令定义了输出信号应该改变或对其他信号输入做出反应的点。输出点可以是 TBU 提供的一个或两个时间戳(或者甚至是发动机管理系统中的角戳)。由于 MCS 能够从 ARU 读取数据,因此它还能够对从 TIM 路由的传入数据进行操作。此外,MCS 可以处理位于其连接的 RAM 中的数据。 MCS RAM 逻辑上位于 MCS 内部,而芯片供应商必须在此实施自己的 RAM 技术。

  • 比较模块 (CMP) 和监控模块 (MON) 两个模块实现安全相关功能。 CMP 比较 DTM 的两个输出通道,并将结果发送到 MON 子模块,并将错误信号发送给 CPU;MON 模块还能够监视 ARU 和 CMU 活动。

  • GTM 的子模块具有大量不同的中断源。这些中断源由中断集中器模块 (ICM) 进行分组和集中,以形成一组更易于管理的中断,这些中断在 GTM 外部可见。

  • 在 GTM 顶层,有一些从 DTM 模块的信号输出到 TIM 模块的输入信号的可配置信号连接。下图概述了寄存器 GTM_CFG 的 GTM 全局位 SRC_IN_MUX 和集群配置寄存器 CCM[y]_TIM_AUX_IN_SRC 的不同配置的连接性。 每个通道的源地址选择由寄存器 CCM[y]_TIM_AUX_IN_SRC 中的位 SRC_CH[x] 和 SEL_OUT_N_CH[x] 定义。


    TIM 的触发(即每个 TIM 实例 i 的信号 TIM[i]_EXT_CAPTURE(7:0))被路由到 ATOM 实例 [i] 和 TOM 实例 [i],其中 i=0…cITIM-1(cITIM 定义 可用 TIM 实例的数量)。该 TIM 触发器可用于在 ATOM 或 TOM 实例内部触发 AGC 或 TGC0/TGC1 单元的通道或全局控制寄存器


    TIM 的触发输出(即每个 TIM 实例 i 的信号 TIM[i]_EXT_CAPTURE(7:0))另外路由到 MCS 实例 [i]。 该触发转发可以通过寄存器 CCM[i]_EXT_CAP_EN 来使能。