问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

AUTOSAR DCM介绍

发布网友 发布时间:2024-10-07 15:10

我来回答

1个回答

热心网友 时间:2024-10-25 06:20

AUTOSAR诊断协议栈由DCM和DEM两个模块构成,DEM负责DTC相关参数实现,而DCM模块则主要负责UDS和OBD的诊断服务。

DCM模块负责处理诊断数据流和管理诊断状态,包括诊断会话和安全状态。DCM模块能够检查诊断服务的请求是否满足条件。在AUTOSAR架构中,DCM模块的概略图如图1所示。

DCM模块由三个子模块构成,分别是DSL、DSD和DSP,其示意图如图2所示。其中DSL用于确定诊断数据请求和响应的数据流;监控和确保诊断请求和响应的时序,管理诊断状态(特别是诊断会话和安全状态)。DSD用于处理诊断数据流。DSP用于处理实际的诊断请求。

下面主要针对三个模块进行介绍。

DSL(Diagnostic Session layer)

DSL用于处理诊断数据请求和响应的数据流;监控和确保诊断请求和响应的时序。

1.处理诊断请求

当收到诊断请求时,PDUR调用Dcm_StartOfReception()和Dcm_CopyRxData()函数将收到的诊断请求数据放置在DCM模块的Buffer中,然后PDUR调用Dcm_TpTxConfirmation()函数通知Dcm模块接收到了新的诊断请求。

2. 处理诊断响应

当需要响应诊断请求时,DSL模块通过调用PduR_DcmTransimit()和Dcm_CopyTxData()将数据传递至PDUR模块,其中PduR_DcmTransimit()函数只是传递长度信息、地址信息,数据是通过Dcm_CopyTxData()函数传递至PDUR模块,当数据传输成功后,PDUR模块通过Dcm_TpTxConfirmation()函数告知DCM数据接收成功。

3. 管理安全等级

DSL提供Dcm_GetSecurityLevel()、DslInternal_SetSecurityLevel()两个函数分别用于获取当前的安全等级和设置安全等级。

对于配置层面而言,DSL菜单主要是配置诊断帧,包括物理寻址和功能寻址,单次通信的最大Buffer,以及时间参数,包括回复0x78的时间和为了防止诊断服务异常,允许0x78的最大次数等。

DSD(Diagnostic Service Dispatcher)

DSD模块负责检查诊断请求的有效性(诊断会话、安全访问级别、应用程序权限的验证),并跟踪服务请求执行的进度。

1.检查诊断服务

当DSL接收到新的诊断请求,DSL通过内部接口通知DSD,如图3所示。DSD调用Dcm_GetSesCtrlType()、Dcm_GetSecurityLevel()获取当前的Session和安全等级,DSD模块会在当前Session的“Service Identifier Table”检查诊断请求SID是否在其中,如果不在table中,DSD会发送NRC 0x7F,如果诊断服务支持,但当前Session不支持该子服务,DSD会发送NRC 0x7E;然后检查当前安全等级是否满足条件,如果当前安全等级不支持该诊断请求,DSD会发送NRC 0x33。最后检查数据的长度。

2.汇总响应数据

当DSP模块完成诊断请求处理后,DSD负责将整理响应数据。并发送至DSL。

DSD模块将服务标识符(SID)(如果是负反馈,则为0x7F)和响应的数据流添加至“Dcm_MsgContextType”。然后DSD将其传送至缓冲区,并在缓冲区的第一个字节添加SID。

对于配置而言,DSD主要是配置所需要实现的服务,以及服务所支持的session以及服执行的安全等级。

DSP(Diagnostic Service Processing)

DSP用于实现不同服务的处理,当接收到DSD请求处理诊断服务,DSP的处理过程如下:

1、分析接收的请求信息,调用不同的诊断服务实现函数;

2、检查格式以及是否支持所寻址的子功能;

3、获取数据或者调用DEM、SWC或者其他BSW模块的接口。如图4所示。比如0x22和0x2E服务需要调用SWC的数据接口进行读写;0x28需要调用BswM的逻辑实现关闭不同的CAN报文;0x19服务需要调用DEM模块获取快照数据和扩展数据。

4、汇总响应数据。

对于配置而言,DSP模块配置项比较杂,比如:

1.DID的实现,包括DcmDspData用于配置DID的数据类型,数据长度,以及接口类型;DcmDspDidInfo用于配置DID的读写功能;DcmDspDids用于汇总DcmDspDidInfo和DcmDspData,并且添加DID value。

2.安全等级的实现,包括种子和秘钥的位数、最大的错误访问次数,以及时间参数。

3.Session的配置,包括Session的等级,Session是否支持跳转至Boot,以及时间参数P2 ServeMax和P2* ServeMax。

总体来讲DCM模块主要是实现UDS和OBD诊断服务的实现,但是DCM跟其他模块的交互比较频繁,需要了解诊断服务的机制需要其他模块配合,比如BswM、DEM、EcuM以及SWC等。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
什么是诸葛亮 卧龙,凤雏,冢虎,幼麟得一可安天下,为啥刘备失败? 潮州老式粿汁的做法 求一篇六百字作文。题目大概是:找一个话题跟父母展开一次朋友式的... 老师让以某个话题,给父母进行一次朋友式的书信往来, 急急急!! 与父母进行一次朋友式的通信。 我该怎样和室友相处呢,我们宿舍很糟糕,很差? 京东商城我的用户上有钱怎么用用户上的钱买东西啊 我在我朋友那个京东账户里有钱可他没实名怎么可以用那些钱来买... 上海市护士延续注册怎么办理 Autosar Dcm配置-特定NRC实现方式-基于ETAS软件 2020年第92届奥斯卡金像奖,获得最佳动画长片提名的有哪些影片... 我的IE里的收藏夹里的地址不是按顺序排列的(按英文字母或中文拼音... 我哥的电脑给我了,收藏夹里的地址昨天被他剪切了,现在一片灰白无法添... 我电脑收藏夹里的网址莫名其妙的少了很多怎么办? 电视专用无线网卡 电视升级千兆有线网络?选好USB 3.0网卡,网速秒杀WiFi 6 我的表妹高考结束了,我这个做表哥的觉得应该买点东西给她,但是不知道要... 右键菜单里面的选项怎么去掉? 怎样去掉右键菜单里的选项啊? 星巴克回应没有拒收硬币这一规定,你最近用硬币消费过吗? 热镀锌h钢型材哪家便宜 (200)分求解,网吧限速,为什么什么下载软件都是200KB,我用暴风看电影却... ゥゥゥ200分求龙管家ooooo00000防自动关机软件ゥゥゥゥゥゥゥゥ_百度... 200分求解。。。文件安全性。 200分求如何在网吧不重启的情况下避免端口问题,进行pes6联机 急急急!200分求怎样还原网吧的系统属性“远程”项 高手进,网吧如何改防删除,格式化?(200分奉送!!) ...然后突然、头特别的晕、像脑袋里面是浆糊似的。还特别疼、发烧、_百... 梦幻西游手游对于我来说龙宫是削弱了 autosar的getevent命令 AUTOSARAUTOSAR应用 ...∠B=∠D=90°,BC=1,CD=2,则对角线AC的长为? 四边形ABCD中,∠DAB=60°,∠B=∠D=90°,BC=1,CD=2,则对角线AC的长... 四边形ABCD中,∠DAB=60° ∠B=∠D=90°,BC=1 CD=2,求对角线AC 已知,如图所示,在四边形ABCD中,∠DAB=60°,∠ABC=∠CDA=90°,CD=2... 如图,四边形ABCD中,∠DAB=60°,∠B=∠D=90°,BC=1CD=2,求AC的长 在四边形ABCD中,AB=AD,角DAB=60度,角BCD=120度,证CB+CD=AC 11月5日的天蝎座女生性格怎么样拜托各位了 3Q ...平城三大歌姬现在都发展的怎么样了拜托各位了 3Q 减免税在借方表示什么 减免税款借方代表什么 借方减免税贷方记什么 如图所示,在四边形ABCD中,∠DAB=60°,∠B=∠D=90°,BC=1,CD=2,则对... 如图,已知四边形ABCD中,AC平分∠DAB,∠DAB=60°,∠B=∠D=90度,求证AB... 如图,四边形ABCD中,∠DAB=60°,CB⊥AB于B,CD⊥AD于D,BC=2cm,DC=11cm... 已知四边形abcd中,ab=4倍根3.角dab=90度,角b=60度,ac垂直bc,求ac的长... 银行贷款申请书800字左右 如图,棱形ABCD中,角B=60度,AB=2cm,E,F分别是BC,CD的中点,连接AE,EF,A... 如图,在平行四边形ABCD中,∠DAB=60°,点E,F分别在CD,AB的延长线上,且A...