AutosarMCAL开发——基于EB Gpt驱动

目录

1.Gpt原理

autosar GPT模块(General Purpose Timer,通用定时器)主要用于汽车ECU中的时间测量、计数和产生定时中断。它支持单次性和周期性定时器,可以在达到预设的定时值时通过中断通知系统,从而实现对时间敏感任务的精确控制。GPT模块利用微处理器的时钟单元提供精准的定时时钟功能,通常可达到微秒级到毫秒级的精度。

注意区分GPT与GPT12关系,GPT为autosar抽象的通用定时器,Gpt12为英飞凌MCU的一个外设与GTM、CCU类似作用,GPT配置中可以选择硬件单元使用GTM还是GPT12.

硬件模块(Tc3xx GPT12)

其中该模块共有5个16bit的定时器(T2~T6)分组为GPT1(T3-T4)和GPT2(T5-T6)
GPT1与GPT2区别

GPT1架构如下

其中T3为核心定时器T2与T4为辅助定时器

GPT2架构如下

其中fgpt为Mcu输出至GPT12模块的时钟,SRx为中断指定了对应中断号,所有在Irq模块中需配置对应中断号
GPT工作方式



除上述四种模式外还有Reload模式capture模式PWM模式等应用,详情参考TC3xx用户手册,另外GPT1与GPT2关于定时器组合应用的方式也有所不同也在用户手册中有详细描述;

以下为One-Shot模式与continuous对于Gpt1与Gpt2的实现区别:

  • 使用GPT1块实现连续模式逻辑通道需要两个定时器,核心定时器T3和一个辅助定时器(T2或T4),使用GPT2块实现连续模式逻辑通道只需要T6(使用CAPREL寄存器作为重新加载寄存器),即使用Gpt1\2的reload工作方式实现GPT连续通道
  • 实现单次模式逻辑通道只需要gpt1或gpt2块中的一个定时器。

2.EB配置以及接口应用

2.1 EB配置

使用GPT12作为GPT模块的硬件单元

配置步骤:

1.时钟配置

2.GPT 通用配置

  1. GPT通道配置

  2. GPT时钟配置参考配置项

  3. Irq配置

  4. GPT12资源分配

1.时钟配置

GPT12模块时钟的配置顺序是:SPB时钟------GPT12分频------GptTimer通道分频

GPT模块并无单独设置时钟频率的选项,由于大部分外设都是挂载值SPB总线上的,故输入GPT的时钟参考SPB时钟。
AutosarMCAL开发------基于TC3x系列时钟系统浅析

这里的最大指的是分频后的时钟频率

实际上GPT12的分频系数是有一个块分频BPS1和独立分频TxI共同决定的,公式为F(BPS1)*2^TxI 其中F(BPS1)标识BPS1不同的配置代表不同块分频,x为Timer id,EB在这里的通道分频只设置了一个参数,推测底层应该是做了处理,直接按配置计算也是能得到正常结果的。

时钟计算:当前配置GPT12中T2时钟=100M/32 = 3.125M

2.GPT 通用配置

  1. GPT通道配置

  2. GPT时钟配置参考配置项

链接至MCU时钟源配置

  1. GPT12资源分配

使用GTM作为GPT模块的硬件单元

1.配置时钟

2.GPT 通用配置

3.GPT通道配置

4.GPT时钟配置参考配置项

1.配置时钟

GTM配置时钟步骤:GTM时钟------Cluster0分频------CMU分频


2.GPT 通用配置

同上

3.GPT通道配置

选取GTM作为GPT硬件实现

进行模块链接

4.GPT时钟配置参考配置项

同上

2.2 接口应用

1.IrqGpt_Init();//IrqGtm_Init(); Irq初始化

  1. Gpt_Init(&Gpt_Config);//初始化Gpt

2.SRC_GPT120T3.B.SRE = 1;// SRC_GTMTOM00.B.SRE = 1; 中断使能

  1. Gpt_EnableNotification();//开启中断通知函数

4.Gpt_StartTimer();//启动Gpt定时器

接口名 传入参数 说明 返回参数 说明 功能
IrqGpt_Init() Void - void - 初始化Gpt中断配置
IrqGtm_Init() Void - void - 初始化Gpt中断配置
Gpt_EnableNotification() uint8 Channel Gpt通道 void - 使能通知函数
Gpt_StartTimer() uint8 Channel;uint32 value Gpt通道;设定计数值 void - 设定通道计数值并启动定时器通道

3.总结

本文为博主个人学习总结记录,如有不正,欢迎指正

相关推荐
车载诊断技术18 小时前
电子电气架构 --- 基于ISO 26262的车载电子软件开发流程
网络·架构·汽车·autosar·电子电器架构
天马行空工作坊1 天前
Autosar学习----AUTOSAR_SWS_BSWGeneral(四)
学习·autosar
车载诊断技术2 天前
电子电气架构---智能汽车应该是怎么样的架构?
架构·汽车·autosar·e/e·电子电气架构
车载诊断技术9 天前
电子电气架构 --- 车身电子的未来发展
网络·数据库·架构·汽车·autosar
MasterTomato15 天前
AUTOSAR开源OS——Trampoline的编译与使用(一)
开源·操作系统·autosar·trampoline
美好生活丶19 天前
HexView 刷写文件脚本处理工具-命令行介绍(八)-文件合并(/MO /MT)
单片机·autosar·汽车电子·hexview·刷写文件
大叔带刺21 天前
打渔的寓言--汽车软件开发技术进化史
信息安全·以太网·autosar
车载诊断技术1 个月前
电子电气架构 --- 软件定义汽车需要怎么样的EE架构
网络·架构·汽车·autosar·电子电器架构
车载诊断技术1 个月前
电子电气架构---EEA的发展趋势
网络·架构·汽车·autosar·电子电器架构