英飞凌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 来使能。