AUTOSAR从入门到精通100讲(131)-AURIX中DMA模块对TIM的FIFO数据搬运
DMA的应用场景较为广泛, 其源地址和目的地址可以是我们的RAM, 也可以是我们的外设寄存器, 如各种FIFO寄存器或者结构寄存器。
本文主要介绍DMA的一种使用场景, 将GTM的TIM通道的FIFO数据通过DMA搬运到RAM中进行处理。
基本功能
客户在汽车软件开发过程中经常会遇到需要实时采集PWM信号(边沿时刻和个数)的情况,本文就是基于该应用场景介绍DMA在其中的实际应用。利用AURIX™强大的GTM_TIM模块可以实现对各种复杂的PWM输入信号的捕获,采集其边沿触发时刻,并对边沿个数进行计数。出于降低CPU负荷的角度考虑,采用DMA对TIM中的FIFO数据进行实时搬运, 供软件进行处理。
配置方法
利用GTM的某个TIM通道对PWM输入信号进行采集, TIM Channel工作在TPWM模块,相应的时间戳存储在GPR0和GPR1寄存器当中,边沿的Counter信息存储在GPR0和GPR1的ECNT bits当中(ECNT的数据存储范围是0-255)。
通过DMA对该通道的GPR0和GPR1中的数据进行搬运, 存储到固定的RAM空间(某个数组当中)。
开发环境
1、开发板布置
Board A用于产生PWM的输入信号。
Board B用于实际工作的ECU对PWM信号的处理, TIM0 Channel(采用P0.9), DMA通道选择DMA Channel 60, 使用的MCU为TC277TP, 黄色的导线是GND, 对两个开发板进行工地, 灰色的线是PWM的信号线。
AUTOSAR从入门到精通100讲(131)-AURIX中DMA模块对TIM的FIFO数据搬运相关推荐
- AUTOSAR从入门到精通100讲(八十一)-AUTOSAR基础篇之FiM
前言 你清楚以下几个问题吗? 当系统发生故障时,系统应该怎样做出反应呢? 如何实现当故障发生时,系统做出相应的可预知行为呢? 我们经常讲的系统降级跟FiM到底是什么关系? FiM与其他基础软件模块是如 ...
- AUTOSAR从入门到精通100讲(125)-详解车载网络 OTA系统的开发
01 系统功能设计 OTA 系统功能示意如图1示,系统包含网关. 智能天线.车用防火墙. ADAS 摄像头. ADAS 域控制器. 座舱域控制器.以及 OTA 平台. OTA 平台端具备车辆管理.车型 ...
- AUTOSAR从入门到精通100讲(三十三)-AutoSar架构中的诊断事件管理
Dem在AutoSar架构中的角色和位置 Dem(Diagnostic Event Manager)诊断事件管理,属于Autosar BSW(Basic Software)中的系统服务,在整个架构中所 ...
- AUTOSAR从入门到精通100讲(二十)-特斯拉、高通、华为AI处理器深度分析
很多人会问,为什么没有英伟达?目前所有主流深度学习运算主流框架后端都是英伟达的CUDA,包括TensorFlow.Caffe.Caffe2.PyTorch.mxnet.PaddlePaddle,CUD ...
- AUTOSAR从入门到精通100讲(二十)-AUTOSAR通信篇—CanIf模块
1 位置和作用 如图1所示,CAN接口模块(下文简"CanIf")位于底层CAN驱动(CanDrv).CAN收发器(CanTrcv)和上层通信服务层(CanSm.CanNm).C ...
- AUTOSAR从入门到精通100讲(二十一)-AUTOSAR通信篇—IpduM模块
1 位置和作用 图1 IpduM在BSW通信中的位置 从图1可以看出,在AUTOSAR分层架构中,IpduM靠近PDUR,且两者处于同一层. I-PDU多路复用意 ...
- AUTOSAR从入门到精通100讲(二十二)-AUTOSAR通信篇—CANTP模块
1 CANTP的位置和作用 CanTp是PduR和CANIf模块之间的模块,如图1所示.CANTp模块的主要作用是对CAN I-PDU进行分段和重新组装,使得I-PDU的长度不大于8个字节,对CAN ...
- AUTOSAR从入门到精通100讲(二十四)-AUTOSAR通信篇—AUTOSAR COM模块
AUTOSAR COM是AUTOSAR通讯的重要组成部分,它是从OSEK COM标准的基础上发展而来的.它提出了一个不同速率的总线网络之间进行数据交换的方法,为汽车控制单元应用软件提供了统一的通信环境 ...
- AUTOSAR从入门到精通100讲(二十三)-AUTOSAR通信篇—PduR模块
今天介绍COM的下层模块:PduR-协议数据单元路由. 1 PduR的位置和作用 PDU Router(下文简称"PduR")模块位于AUTOSAR通讯架构的中间位置,其上层主 ...
最新文章
- 【通俗理解线性代数】 -- 矩阵与空间的基和坐标
- MYSQL的初级使用
- 百度小程序--支付功能
- matlab“机器学习和深度学习”系列工具箱作用总结
- Shell脚本传递带有空格的参数
- 进度条设置_项目功能分解4:MATLAB GUI如何设计有特色的进度条。
- 系统调用回答为什么要用buffer写
- Unity使用独立配置文件的方法
- python 爬虫 音乐下载 歌手_python爬虫批量下载全民K歌音乐
- python的cmd下小白开发应用教程
- ln -s命令 linux_浅谈linux中ln命令,附带案例
- 30.磁盘 I/O 问题
- AJAX请求中payload和formdata两种方式
- postSQL hash分表
- java每日学习回忆录
- 数据库关闭的四种方式
- mysql8.0.17 汉化
- Hadoop HA 搭建
- 集合全套以及知识点整合
- backtrace和backtrace_symbols函数原理解析
热门文章
- [渝粤教育] 广东-国家-开放大学 21秋期末考试中国近现代史纲要(A)10881k1
- java 秒杀多线程_秒杀多线程系列 - 随笔分类 - Joyfulmath - 博客园
- webpack 异步加载配置文件_详解webpack异步加载业务模块
- martingale、markov chain、Monte Carlo、MCMC
- 什么是卫星的有效载荷?
- nginx请求转发被拒绝_nginx反向代理(请求转发-URL匹配规则)
- 廖雪峰讲python高阶函数求导公式_一文读懂Python 高阶函数
- Win10窗口侧边栏设置Win7模式
- workflow java_workflow java实现的activity工作流实例 Develop 238万源代码下载- www.pudn.com...
- c++ 一维数组长度_每天一点C / 一维数组和指针