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.总结

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

相关推荐
wechat_Neal16 小时前
AUTOSAR标准体系与域控制器开发流程简述
车载系统·autosar
linweidong16 小时前
AUTOSAR中的软件更新(OTA)机制如何实现容错恢复?
autosar·ota
wechat_Neal16 小时前
Autosar多核部署全面解析:从架构原则到部署策略
车载系统·autosar
linweidong19 小时前
多个供应商模块如何集成到统一的AUTOSAR架构中?
架构·autosar
小丑小丑小丑1 天前
【AP AUTOSAR】COM通信模块api详解
中间件·汽车·autosar·autosar ap
wechat_Neal1 天前
SOA汽车架构进阶:复杂服务接口设计与实时性、安全性保障万字解析
车载系统·autosar
linweidong11 天前
AUTOSAR各ECU之间的跨总线通信(CAN、LIN、FlexRay、Ethernet)如何建模?
autosar·ecu·嵌入式面试
linweidong11 天前
AUTOSAR配置文件(ARXML)版本不一致时如何管理?
嵌入式·autosar
龙智DevSecOps解决方案1 个月前
汽车网络安全开发语言选型指南:C/C++/Rust/Java等主流语言对比+Perforce QAC/Klocwork工具支持
开发语言·autosar·嵌入式开发·perforce·代码安全·汽车网络安全
NewCarRen1 个月前
符合AUTOSAR标准的汽车SoC软件架构及其漏洞
autosar