AUTOSAR 通信服务-Dcm实例应用

汽车安全 2年前 (2021) admin
1,340 0 0


前言

AUTOSAR Dcm模块的分享分为Dcm模块概念详解和Dcm模块配置及代码分析,具体的项目实战请关注本号的后续文章,本篇为Dcm实例应用分析篇

AUTOSAR 通信服务-Dcm概念及DSL详解

AUTOSAR 通信服务-Dcm子模块DSD详解

AUTOSAR 通信服务-Dcm子模块DSP详解

AUTOSAR 通信服务-Dcm配置分析

AUTOSAR 通信服务-Dcm实例应用

正文

7.1 DCM诊断处理流程示例

为了获得安全访问,DSD子模块必须调用DSP子模块来从应用程序获得种子值。如果没有检测到错误,则以积极响应的方式发送种子值。

 

在第二步中,DSP子模块得到测试器计算的密钥,并请求应用程序将该密钥与内部计算的密钥进行比较。如果没有发生错误,则在DSL子模块中设置新的访问类型,并发送一个正响应。

AUTOSAR 通信服务-Dcm实例应用

从上诉过程可以看出,我们在实际开发过程中需要做的是根据实际需求配置DCM模块(DSL, DSD, DSP),同时还需要设计一个Dcm_User模块来真正处理(processor)诊断请求。

 

下面我们就以最常用的诊断服务读取软件版本号为例来说过整个开发流程。

 

7.2 开发案例分析

7.2.1 需求

服务:0x22

DID0xF189读取ECU软件版本号

数据长度:17个字节

DID服务只有读的功能

AUTOSAR 通信服务-Dcm实例应用

也就是上位机机发送:22 F1 89(省略诊断ID和长度信息)

ECU需要回:52 F1 89 +17字节的软件版本号(14字节的零件号 + 3字节的软件版本号)

 

7.2.2 模块接口设计

Dcm模块AUTOSAR静态模块,需要配置支持0x22服务下的0xF189服务

Dcm_User模块:所有Dcm服务的一个中转模块,Dcm模块通过Dcm_User模块提供的服务来完成诊断响应,Dcm_User模块和其他各个应用模块连接,使用各个APP模块提供的服务。

Vers模块:提供读取软件版本号的服务,Vers里面需要实现真正的软件版本记录。

InterfacesR/P-Port设计:如下图所示。


AUTOSAR 通信服务-Dcm实例应用 

7.2.3配置DCM模块

配置0x22服务

AUTOSAR 通信服务-Dcm实例应用

配置0xF189服务的数据信息

AUTOSAR 通信服务-Dcm实例应用

配置DidInfo,配置完之后,有这种读写属性的DID都可以引用这个DidInfo

AUTOSAR 通信服务-Dcm实例应用

F189这个DID的信息

AUTOSAR 通信服务-Dcm实例应用

7.2.4配置Interface

配置DcmDcm_User之间数据访问的Interface

AUTOSAR 通信服务-Dcm实例应用

配置Dcm_UserVer模块之间的Interface

AUTOSAR 通信服务-Dcm实例应用 

7.2.5配置Dcm模块的Port信息

Dcm模块相对Dcm_User模块是Client端,需要使用Dcm_User提供的服务(Server端),所以需要给Dcm配置数据访问的R-Port

AUTOSAR 通信服务-Dcm实例应用

7.2.6配置Dcm_User模块的Port信息

Dcm_User模块相对Dcm模块是Server端,需要提供服务(Server端),所以需要给Dcm_User配置数据访问的P-Port

AUTOSAR 通信服务-Dcm实例应用

Dcm_User模块相对Vers模块是Client端,需要使用Ver模块提供服务(Server端),所以需要给Dcm_User配置数据访问的R-Port

AUTOSAR 通信服务-Dcm实例应用 

7.2.7配置Vers模块的Port信息

Vers模块相对Dcm_User模块是Server端,需要提供服务(Server端),所以需要给Dcm_User配置数据访问的P-Port

AUTOSAR 通信服务-Dcm实例应用


7.2.8生成的代码分析

AUTOSAR 通信服务-Dcm实例应用


AUTOSAR 通信服务-Dcm实例应用

AUTOSAR 通信服务-Dcm实例应用

AUTOSAR 通信服务-Dcm实例应用

7.2.9 小结

实际应用中,对DCM模块内部的机制不会太关注,一般是根据实际需求配置DCM模块,然后设计DCM_User等实现模块。而DCM_User等实现模块的设计包括端口Port设计,端口接口Interface的设计,已经具体功能的算法逻辑实现。


推荐阅读

Autosar架构下的模块详细设计及代码实现–基于配置的编程方法

AUTOSAR 通信服务-CanSM概念详解

AUTOSAR BswM(3)代码分析

AUTOSAR 通信服务-ComM配置及代码分析

AUTOSAR 通信服务-PDU Router

AUTOSAR CAN通信协议栈分析(2)-CanIf

Can通信协议栈分析(1)-Can Driver

Lin通信协议栈分析(2)-LIN Driver

C语言编程技巧(1)-表驱动法

CANoe工具使用(1)-实现CAN通道的收、发、录、回放报文

S32K平台学习(1)-S32K144启动流程分析

End




欢迎点赞,关注,转发,在看,您的每一次鼓励,都是我最大的动力!

汽车电子嵌入式

微信扫描二维码,关注我的公众号

原文始发于微信公众号(汽车电子嵌入式):AUTOSAR 通信服务-Dcm实例应用

版权声明:admin 发表于 2021年12月19日 下午11:15。
转载请注明:AUTOSAR 通信服务-Dcm实例应用 | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...