当前位置: 首页 > news >正文

AUTOSAR Mcal Gpt - 模块介绍

文章目录

  • 1. 模块简介
  • 3. API接口
  • 4. 功能介绍
    • 4.1. 驱动状态机
    • 4.2. Normal定时器
      • 4.2.1. Channel状态机
      • 4.2.2. 定时模式
      • 4.2.3. 已启动时间和待溢出时间获取
    • 4.3. 预定义定时器
  • 5. 序列图
    • 5.1. Continues Mode
    • 5.2. One-Shot Mode
    • 5.3. Disable/Enable Notifications
    • 5.4. Wakeup

1. 模块简介

GPT驱动位于微控制器抽象层(MCAL)。该驱动负责初始化和控制微控制器内部的通用定时器(GTM的TOM/ATOM 或GTP12)。
在这里插入图片描述
3.2.主要功能

  • 支持启动/停止硬件定时器,支持单次(One-Shot)和连续(Continuous)两种模式
  • 支持使能/禁止通道中断通知;
  • 支持使能/禁止唤醒中断
  • 支持1us和100us预定义定时器,用于时间服务模块,也可用于时间测量、超时检测等
  • 支持获取定时器启动时间(Gpt_GetTimeElapsed)和待溢出时间(Gpt_GetTimeRemaining)
  • 支持中断通知,定时器溢出后触发回调函数
  • 支持定时器唤醒功能,用于ECU从低功耗模式恢复

3. API接口

在这里插入图片描述

4. 功能介绍

4.1. 驱动状态机

主要关注Normal和Sleep两个核心状态,Gpt模块的基本功能,比如单次 or 连续触发定时中断,预定义定时器等功能均需要在Normal模式下才能使用。Sleep模式需配合EcuM模块进行使用,实现最终系统级的唤醒功能。
在这里插入图片描述

4.2. Normal定时器

4.2.1. Channel状态机

在这里插入图片描述

4.2.2. 定时模式

对于Normal类型的定时器支持One-Shot或Continue两种模式。可通过Gpt_StartTimer和Gpt_StopTimer启动或停止定时器。
One-Shot模式下,计数到溢出值后,自动停止定时器,并保持计数值不变,通过Gpt_StartTimer启动定时器,定时器切换到running状态,并从0开始计数,溢出后,切换到expired状态,若使能通知,则触发中断函数并调用对应定时器的回调函数。
在这里插入图片描述
Continue模式下,启动后,定时器按Gpt_StartTimer设置的溢出值周期计数, 直到调用Gpt_StopTimer停止计数器或GTP切换到SLEEP模式。
在这里插入图片描述

4.2.3. 已启动时间和待溢出时间获取

GTP提供Gpt_GetTimeElapsed、Gpt_GetTimeRemaining两个接口用于Normal定时器指定时间和待溢出时间。
在这里插入图片描述
Gpt_GetTimeElapsed在不同通道状态下的返回值和开发错误如下:
在这里插入图片描述
Gpt_GetTimeRemaining在不同通道状态下的返回值和开发错误如下:
在这里插入图片描述

4.3. 预定义定时器

Gpt支持根据分辨率和定时器宽度分为四类预定义定时器,具体如下:
在这里插入图片描述

5. 序列图

Normal定时器具体模式、相应接口(不含预定义定时器)具体使用示例如下:

5.1. Continues Mode

在这里插入图片描述

5.2. One-Shot Mode

在这里插入图片描述

5.3. Disable/Enable Notifications

在这里插入图片描述

5.4. Wakeup

实际配合EcuM模块进行使用,在EcuM中提供中断和轮询两种方式进行处理,中断方式如下:
在这里插入图片描述
轮询流程如下:
在这里插入图片描述

http://www.dtcms.com/a/304563.html

相关文章:

  • 能源高效利用如何实现?楼宇自控系统智能化监管建筑设备
  • 电池充放电测试仪:解锁能源存储性能的关键工具|鑫达能
  • 【LeetCode 热题 100】34. 在排序数组中查找元素的第一个和最后一个位置——二分查找
  • 文件操作与IO流
  • 【Pycharm】Python最好的工具
  • pycharm中安装pythonocc
  • 【22】C# 窗体应用WinForm ——定时器Timer属性、方法、实例应用,定时切换画面
  • Android开发中compose ui深度分析
  • Qt Quick 与 QML 移动应用开发
  • 再谈亚马逊云科技(AWS)上海AI研究院7月22日关闭事件
  • Android 解决键盘遮挡输入框
  • 2.2.23-2.2.24规划采购管理-定制项目管理计划
  • C++算法学习专题:哈希算法
  • 预装Windows 11系统的新电脑怎么跳过联网验机
  • AI峰-关于AI的意识-AI浪潮下
  • 【高等数学】第七章 微分方程——第三节 齐次方程
  • 代码随想录——数组——移除元素——双指针
  • openeuler24.03部署k8s1.32.7高可用集群(三主三从)
  • 《Spring Cloud Config配置中心核心原理与动态刷新方案》
  • Singapore
  • 聚观早报 | 三星获特斯拉AI芯片订单;小米16首发成安卓最强SOC;iPhone 17 Pro支持8倍光学变焦
  • Kubernetes 核心准备:从 Pod 本质到网络模型全解析
  • 作物生长模型Oryza V3实战16:气象数据集
  • 个人健康管理小程序(消息订阅、Echarts图形化分析)
  • 如何调整服务器的内核参数?-哈尔滨云前沿
  • 随着人工智能技术的飞速发展,大语言模型(Large Language Models, LLMs)已经成为当前AI领域最引人注目的技术突破。
  • Apache Ignite Cluster Groups的介绍
  • 多目标粒子群优化(MOPSO)解决ZDT1问题
  • 嵌入式系统分层开发:架构模式与工程实践(一)
  • Spring Boot 2整合MyBatis Plus详细指南