-
概述
- ICU 全称输入捕获单元,其驱动程序负责提供AUTOSAR指定的标准信号测量服务。ICU通道的底层捕获引擎可以是GTM单元的TIM通道、CC6比较器CCU6模块,或GPT12定时器的ERU通道。
- 依赖硬件
- 详细配置
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 中是软件自动生成的版本号默认值,用户无需修改,保持默认即可。