问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

【CP AUTOSAR】Adc(ADCDriver)分析和使用

创作时间:
作者:
@小白创作中心

【CP AUTOSAR】Adc(ADCDriver)分析和使用

引用
CSDN
1.
https://blog.csdn.net/a571338923/article/details/133852801

本文深入解析了CP AUTOSAR架构下的Adc组件,基于S32K144芯片和NXP提供的MCAL包,使用EB Tresos工具进行配置。文章详细介绍了Adc组件的基本概念、实现方式和使用方法,对于从事汽车电子和嵌入式系统开发的技术人员具有重要参考价值。

前言

本文介绍CP AUTOSAR 架构下的Adc组件,基于S32K144芯片、NXP提供的MCAL包,使用EB Tresos工具进行配置的经验,不具体介绍芯片Adc外设的功能。
Adc组件实现Adc的驱动,具有单次转换、连续转换、软件触发、硬件触发等模式,为上层组件IoHwAb提供接口。
Adc组件位于I/O Drivers层里。

一、原理解析

如上图,AUTOSAR里定义了多种ADC的实现方式,有如下几种概念:

(一)、Unit、Channel、Group

Unit:
芯片外设里实现ADC功能的单元,如ADC1、ADC2等,每个ADC单元里有若干个ADC通道,在使用前需要对ADC单元进行配置,如ADC的参考电压、分辨率、时钟源等。
Channel:
ADC通道有两个概念,一个是ADC外设上的物理通道,也就是芯片上对应的ADC通道,在使用ADC时需要选择要转换的ADC通道,如ADC1_In0、ADC1_In1等。一个是软件逻辑上的通道,每个逻辑通道映射一个物理通道,映射的物理通道没有严格的对应关系,在一个单元内可以映射任何一个通道,逻辑通道顺序序号从0开始,下面文章涉及的通道指的都是软件逻辑通道。
Group:
操作ADC进行转换的基本单位为Group,Group里至少有一个Channel,每个不同的Group可以有相同的Channel比如Group1和Group2同时有Channel1,Group里的Channel需要在同一个Unit里面比如Group1里的Channel只能是Unit1里的通道或Unit2里的通道。
当进行Group转换时,一个Unit下只能转换一组Group,其他Group想要转换时,需要停止当前Unit的转换,如Unit1的Group1和Group2不能同时转换只能转换其中一个,是否能同时转换取决于芯片的硬件能力。

(二)、SoftwareTrigger和HardwareTrigger

SoftwareTrigger:
Group的软件触发是通过调用软件触发API来实现ADC的触发。
软件触发下的One-Shot Conversion不能使用Streaming access。
HardwareTrigger:
Group的硬件触发是通过芯片外设的控制来触发ADC驱动,如PWM、GPT等来触发ADC转换。
硬件触发下不支持使用Continuous Conversion。

(三)、One-Shot Conversion和Continuous Conversion

One-Shot Conversion:
Group的单次转换是在调用软件API后执行一次Group的转换,软件触发模式只执行一次转换除非下次继续调用,硬件触发模式只需调用一次就能一直转换除非在Linear模式采样次数到了后停止转换。
单次转换在SoftwareTrigger下不支持Streaming access。
Continuous Conversion:
Group的连续转换是在软件触发或硬件触发后执行Group的持续转换,转换结束后是在中断里继续执行开始转换,除非调用软件API停止转换或者在Linear模式采样次数到了后停止转换。
连续转换下不支持HardwareTrigger。

(四)、Single access和Streaming access

Single access:
Group的单次访问是当Group转换完成后存储一次转换结果,其效果和Streaming access下的Circular模式只执行一次的效果是一样的。
Streaming access:
Group的流访问又分为Circular模式和Linear模式,可以执行多次采样。Circular模式转换完又继续转换,Linear模式转换完就停止转换了。
比如一个Group有两个Channel,设为流访问,采样次数设为2次,当执行Linear模式时,进行两次转换,转换完成后变停止转换,采样Buffer里更新为四个数据。当执行Circular模式Circular模式,进行两次转换,两次转换完后接着转换除非手动停止,采样Buffer里的四个数据不断在更新。
流访问下不支持One-Shot Conversion。

(五)、转换方式

根据上面描述的几个功能,Group有若干个转换方式,转换结果如下:
假设当前Group有Channel1、Channel2,当流访问时采样次数为2.
1、硬件触发、单次转换、单次访问
2、硬件触发、单次转换、流访问、线性模式:
3、硬件触发、单次转换、流访问、循环模式:
4、软件触发、单次转换、单次访问:
5、软件触发、连续转换、单次访问:
6、软件触发、连续转换、流访问、线性模式:
7、软件触发、连续转换

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号