GTM 由很多子模块组成,形成了一个通用定时器平台,服务不同的应用程序领域,其中的子模块可以根据外部需求进行灵活配置,其架构如下图所示:
各个子模块总结如下:
从框架与可以总结如下:
ARU是GTM的核心部件,其主要功能是将数据从连接的源子模块传递到连接的目标子模块。传递的数据字节大小为52位,数据结构中最高5位为控制信息,后面的俩个24位为GTM模块的操作寄存器数据。
Broadcast Module (BRC) 能够将数据从一个源模块分发到连接在ARU上的多个目标模块。
参数存储模块包括三个子单元:FIFO,AFD和F2A,参数存储模块可以作为输入数据特征的数据存储或作为输出数据的参数存储。
具体功能细节需要查看芯片手册
TIM 模块可以过滤外部信号并附加一些信息,比如每个通道都能够测量脉冲高低电平的时间以及PWM占空比、周期等信息。
Clock Management Unit (CMU) 可以为GTM模快内部提供多达13个不同频率的时钟信号,对外部硬件可以输出最多三路时钟信号,可以作为一个系统时钟的分频器,在其他子模块内部实现的计数器通常由该子模块驱动。
**Time Base Unit (TBU)**为GTM提供了三个独立的通用时间基准,其中两个独立的时间基准来源可以配置成数字锁相环DPLL的输出sub_inc1c 和sub_inc2c.
GTM信号输出模块TOM和ARU-connected Timer Output Module (ATOM) ARU定时器输出模块,每个TOM模块都能够在其输出端产生一个PWM信号,ATOM模块可以在不需要CPU干预的情况下产生复杂的输出信号。
Output Compare Unit (CMP)和Monitor Unit (MON) 检测单元用来实现与安全相关的功能。例如,CMP能够比较ATOM和TOM的两个输出通道,并将结果发送到MON子模块,MON模块还能够检测ARU和CMU模块的运行状态。
GTM模块含有大量中断源,这些中断源可以通过Interrupt Concentrator Module (ICM) 中断聚集模块从而形成中断源组。
下面分别分析重要的几个子模块:
在GTM内部,MAP、DPLL、CMU、TBU,四个子单元都参与了整个GTM的时钟和时基管理。
功能:负责GTM的时钟生成
组成:三个子单元
功能:为TIM ATOM TBU MON 提供八个专用时钟源,如图中的clock source 0 divider - clock source 7 divider
功能:为TOM和MON生成预定义的不可配置时钟CMU_FXCLK,时钟分频因子固定为202428212216
功能:生成多达3个GTM外部时钟信号CMU_ECLK
时间基准单元为GTM模块提供时间基准,TBU模块以通道作为最小工作单位,其中通道数量与芯片型号相关TBU内部最多有四个通道,TBU0的时间基准控制器寄存器TBU_CH0_BASE为27位,可以配置低24为或者高24位作为信号TBU_TS0提供给GTM,另外两路时间基准寄存器均为24位。
四个寄存器的的使能或者禁止由全局通道控制器TBU_CHEN控制,时钟基准通道的选择是通过这个控制寄存器的CH_MODE位实现的
输入的CMU_CLK[x]可以选择来自CMU模块的八个信号之一
数字锁相环子模块主要用于信号的倍频,其输入有TRIGGER和STATE信号。
定时器输入模块(TIM)主要用于为GTM模块提供输入信号,同时具有滤波功能,TIM具有先进的数据处理功能,能够通过ARU连接到其他模块从而传递信息;同时还能在的信号的上升沿和下降沿打时间戳,测量波形的频率以及占空比,其结构框图如下:
The number of channels m inside a TIM sub-module depends on the device.
Each of the m dedicated input signals are filtered inside the FLTx sub-unit of the TIM Module. It should be noted that the incoming input signals are synchronized to the clock SYS_CLK, resulting in a delay of two SYS_CLK periods for the incoming signals.
The measurement values can be read by the CPU directly via the AEI-Bus or they can be routed through the ARU to other sub-modules of the GTM.
For the GTM TIM0 sub-module only, the dashed signal outputs TIM[i]_CHx, TIM[i]_CHx and TIM[i]_CHx come from the TIM0 sub-module channels zero (0) to five (5) and are connected to MAP submodule. There, they are used for further processing and for routing to the DPLL.
The two (three) time bases coming from the TBU are connected to the TIM channels to annotate time stamps to incoming signals. For TIM0 the extended 27 bit width time base TBU_TS0 is connected to the TIM channels, and the user has to select if the lower 24 bits (TBU_TS0(23…0)) or the higher 24 bits (TBU_TS0(26…3)) are stored inside the GPR0 and GPR1 registers.
Above figure gives an overview of the channel internal connectivity of the sub units. The sub units with the major functionality are listed next:
INPUT_SRCx: Select signal for processing by the Filter unit FLTx
FLTx: The filter unit provides different filter mechanisms
TDUx: Timeout detection unit (no subsequent edge detected during a specified duration
TIM_CHx: Measurement unit; different measurements strategies configurable on the filtered signal
IRQx: Local interrupt controller (enabling, status, …)
EXT_CAP_SRCx: Selects a local signal ext_capture(x) which is needed by certain functions
GTM模块中有多个TIM模块,每个TIM模块含有m路通道,为了实现每一路通道的独立控制,设计了通道控制寄存器:TIMi_CHx_CTRL
寄存器的不同字段的控制参数请参考芯片手册
同时TIM通道有6中不同的测量模式,可以通过寄存器TIMi_CHx_CTRL的位域TIM_MODE配置,同时寄存器TIMi_CHx_CTRL的其他位域也能配置每种测量模式的详细参数。
其中:
DSL: 控制测量模式的信号极性,定义低电平为主还是高电平为主
EGPR0_SEL,GPR0_SEL和EGPR1_SEL,GPR1_SEL:控制寄存器GPR0和GPR1储存的测量信号的参数类型
CNTS_SEL:控制寄存器CNTS的内容类型
ARU_EN:寄存器GPR0和GPR1使能发动到ARU模块
测量原理:如果寄存器中DSL的位置1,那么通道就会在检测到上升沿的时候开始测量,计数器开始计数,直到检测到下降沿停止,此时计数器的值被保存到寄存器CNTS中,计数器也继续开始计数直到下一个上升沿,CNTS的值被保存到GPR0,CNT的值被保存到GPR1,最终,GPR0中记录了占空比长度,GPR1中记录了信号周期,通过寄存器GPR0和GPR1中存储的计数器数值和时钟信息就可以计算出周期和占空比
DSL: 控制测量低电平脉冲还是高电平脉冲
计数器CNT:测量电平与配置相等时累加,计数器引用CMU的输出频率工作
寄存器CNTS,GPR0和GPR1确定最后结果
DSL&ISL: 控制测量上升沿/下降沿
计数器CNT:测量边沿检测数,检测的期望值可以写入寄存器控制
TIMi_NEWEVALx_IRQ:中断可以被触发
As described above, each ATOM channel can operate independently from each other in one of five dedicated output modes:
• ATOM Signal Output Mode Immediate (SOMI)
• ATOM Signal Output Mode Compare (SOMC)
• ATOM Signal Output Mode PWM (SOMP)
• ATOM Signal Output Mode Serial (SOMS)
• ATOM Signal Output Mode Buffered Compare (SOMB)