1. 概述
    1. ICU 全称输入捕获单元,其驱动程序负责提供AUTOSAR指定的标准信号测量服务。ICU通道的底层捕获引擎可以是GTM单元的TIM通道、CC6比较器CCU6模块,或GPT12定时器的ERU通道。

 

  1. 依赖硬件

 

  1. 详细配置

container:IcuConfigSet 中包含ICU驱动程序的配置参数和子容器;

IcuMaxChannel 用于指定已配置的通道数量,不可修改;

IcuChannel 中包含用户自定义的通道,具体各通道的配置见下图;

 

IcuChannelId 通道标识号,从1计自增;

IcuDefaultStartEdge 用于指定ICU通道的默认激活边延;

IcuMeasurementMode 用于指定ICU通道的测量模式,支持边沿检测,边沿计数,时间戳测量和信号测量;

IcuWakeupCapability 用于指定ICU通道的唤醒能力,默认禁用;

IcuAssignedHwUnit 用于选择ICU通道所需的捕获引擎,支持CCU6, GTM, ERU, GPT12;

IcuSignalEdagDetection 此子容器用于对测量模式是边缘检测的配置;

IcuSignalMeasurement 此子容器用于对测量模式是信号测量的配置;

IcuTimestampMeasurement 此子容器用于对测量模式是时间戳测量的配置;

IcuWakeup 此子容器包含配置支持唤醒的通道所需的配置;

sub-container:GtmTimerInputConfiguration 如果选择的硬件单元是GTM,则此子容器包含TIM通道的配置;

GtmTimerInputConfiguration_0 用于引用在MCU中定义的外设内核时钟;

sub-container:TimChannelGeneral 中包含TIM通道特定的配置;

TimChannelInputSelect 用于指定TIM通道的输入,支持INPUT_OF_CURRENT_TIM_CHANNEL 和 INPUT_OF_PREVIOUS_TIM_CHANNEL;

TimChannelPortPinSelect 用于指定GTM定时器的输入端口和引脚,本例中使用Port34_Pin1;

TimChannelClockSelect 用于指定TIM通道的时钟源;支持

GTM_CONFIGURABLE_CLOCK_0~GTM_CONFIGURABLE_CLOCK_7

TimChannelGpr0InputSelect 用于指定TIM信道的GPR0寄存器的参考定时器,只有模式为时间戳测量模式时才可配置;

TimInterruptMode 用于指定所使用的中断模式,支持

OverflowISRThreshold 用于表示实际TIM计数器溢出中断和执行流进入ICU ISR之间的最大延迟,仅在信号测量模式下可配置;

sub-container:TimChannelFilterConfig 此子容器中包含TIM通道的筛选器配置;

TimChannelFilterEnable 用于指定是否启用通道过滤器;

TimChFilterCounterFreqSelect 用于指定TIM信道的滤波器计数器频率,支持

TimChFilterModeForRisingEdge 用于指定TIM通道输入上升沿的滤波方式,支持DEGLITCH_WITH_HOLD_COUNTER,DEGLITCH_WITH_UPDOWN_COUNTER 或 IMMEDIATE_EDGE_PROPAGATION_MODE;

TimChFilterModeForfallingEdge 用于指定TIM信道输入下降沿的滤波方式,取值同上;

TimChFilterTimeForRisingEdge 用于指定TIM通道输入上升沿的滤波时间,取默认值即可;

TimChFilterTimeForFallingEdge 用于指定TIM通道输入下降沿的滤波时间,取默认值即可;

sub-container:CCU6CC6Configuration 如果选择的硬件单元是CC6x比较器,则容器包含CC6x比较器的配置;

sub-container:ERUInputConfiguration 如果选择的硬件单元是ERU,则容器包含ERS和OGU通道的配置;

sub-container:GPT12Configuration 如果选择的硬件单元是GPT12,则容器包含GPTx计时器的配置;

 

用作icu功能的pin脚的配置:

 

在MCU中启用GTM-TIM外设内核时钟:

 

container:IcuGeneral 中包含ICU通用参数配置;

IcuDevErrorDetect 是否启用开发错误侦测api,本例中禁用;

IcuMultiCoreErrorDetect 是否启用多核错误侦测api,本例中禁用;

IcuIndex 用于指定ICU驱动的实例Id;

IcuReportWakeupSource 是否启用唤醒源上报功能,默认禁用;

IcuSafetyEnable 是否启用安全模式,本例中禁用;

IcuRuntimeApiMode 用于指定运行时api的访问级别,默认特权模式;

IcuInitDeInitApiMode 用于指定使/失能api的访问级别,默认特权模式;

 

container:IcuOptionalApis 中包含所有配置开关,用于配置ICU驱动的可选API服务;

IcuDevErrorDetect 是否启用开发错误侦测api,本例中禁用;

IcuInitCheckApi 是否启用初始化检测api,默认启用;

IcuDisableWakeupApi 是否启用关闭唤醒api,本例中启用;

IcuEdgeCountApi 是否启用边沿计数api,本例中启用;

IcuEnableWakeupApi 是否启用使能唤醒api,本例中启用;

IcuGetDutyCycleValuesApi 是否启用获取占空比周期api,本例中启用;

IcuGetInputStateApi 是否获取输入状态api,本例中启用;

IcuGetTimeElapsedApi 是否启用获取耗时api,本例中启用;

IcuGetVersionInfoApi 是否启用获取版本信息api,本例中启用;

IcuSetModeApi 是否启用设置模式api,本例中启用;

IcuSignalMeasurementApi 是否启用信号测量api,本例中启用;

IcuTimestampApi 是否启用时间戳api,本例中启用;

IcuWakeupFunctionalityApi 是否启用唤醒功能api,默认禁用;

IcuIncrementalInterfaceApi 是否启用增量模式接口api,默认禁用;

container:CommonPublishedInformatica 中是软件自动生成的版本号默认值,用户无需修改,保持默认即可。

 

posted on 2023-03-20 10:54  lance9527  阅读(1056)  评论(0编辑  收藏  举报