实现定时中断_资深工程师分享 基于AUTOSAR的ECU开发 使用CDD实现MCU个性化控制

继续分享基于AUTOSAR的ECU开发经验,欢迎大家留言讨论。

#AUTOSAR##嵌入式开发##车载电子#

假设有这样一个需求,在PWM上升1ms后,采集AD值。

对于上述需求,我们分析单片机功能,单片机支持PWM输出定时中断功能,所以决定采用PWM输出1ms后产生中断,在中断服务函数中采集AD值。

实现定时中断_资深工程师分享 基于AUTOSAR的ECU开发 使用CDD实现MCU个性化控制_第1张图片

阿尔卑斯系统集成(大连)有限公司版权所有

打算尝试使用AUTOSAR工具配置MCAL,实现PWM定时中断。不过,经过调查,发现MCAL未提供PWM输出定时中断配置接口,因此无法使用AUTOSAR工具配置。最终,此方式尝试失败。

实现定时中断_资深工程师分享 基于AUTOSAR的ECU开发 使用CDD实现MCU个性化控制_第2张图片

阿尔卑斯系统集成(大连)有限公司版权所有

这时,就使用CDD直接设置MCU寄存器的方式来解决这个问题。

首先,我们创建一个CDD1,依据需要完成的功能,需要对外提供PWM定时中断使能接口以及AD采样值,因为使能PWM定时中断接口不需要数据传递,所以接口类型设定为Client/Server,方向为Server。AD采样值需要有数据传递,所以接口设定为Sender/Receiver,其方向为Sender。

考虑完接口,接下来分析CDD1的功能:

  • 需要初始化AUTOSAR工具配置的配置项。
  • 需要设置MCU寄存器,使能PWM定时中断功能。
  • PWM定时中断中采集AD数据,并将其输送出去。

根据功能以及触发时机,我们设计3个Runable。接下来分别讲述一下3个Runable实现的功能以及触发条件。

Runable1 主要是调用MCAL中的PWM、AD初始化API,其初始化设定是由AUTOSAR工具配置的。触发条件是在初始化时。

Runable2 主要是设置MCU寄存器,使能PWM定时中断。触发条件是收到Port1的Client请求。

Runable3 主要是采集AD值,通过调用Port2传送出去。触发条件是产生PWM定时中断时。

CDD设计完后,SWC会通过RTE与CDD1进行交互。

实现定时中断_资深工程师分享 基于AUTOSAR的ECU开发 使用CDD实现MCU个性化控制_第3张图片

阿尔卑斯系统集成(大连)有限公司版权所有

举例,我们有两个SWC,SWC1通过访问Port1 Client接口,发送使能PWM定时中断请求,由于RTE实现Port1 Client与Port1 Server的连接,从而触发Runable2,使能PWM定时中断。SWC2通过访问Port2 Receiver接口,获取采样的AD值。

根据我们的经验是提倡在符合AUTOSAR接口标准的前提下,灵活使用CDD实现个性化需求。

实现定时中断_资深工程师分享 基于AUTOSAR的ECU开发 使用CDD实现MCU个性化控制_第4张图片

阿尔卑斯系统集成(大连)有限公司是日本阿尔卑斯阿尔派集团旗下的独资子公司,简称ALSI大连。ALSI大连嵌入式系统开发部主要从事ALPSALPINE集团汽车电子软件开发和功能测试,汽车电子仿真工具开发、销售以及IoT 产品开发、销售相关业务。

你可能感兴趣的:(实现定时中断)