首页 > 其他分享 >第七章 功能规范

第七章 功能规范

时间:2024-12-17 18:11:09浏览次数:7  
标签:功能 Diag 规范 DEM 监视器 事件 第七章 SWS Dem


诊断事件管理模块(DEM)处理和储存诊断监视器在软件组件(SW-Cs)和基础软件(BSW)模块中监测到的事件。这些储存的事件可以通过其他BSW或SWC的接口获得。
DEM包含DemGeneral和DemConfigSet两个部分,其中DemGeneral用于配置的所有诊断事件通用的部分,DemConfigSet则用于配置各个具体的诊断事件。

7.1 启动


[SWS_Dem_00169]DEM模块应分为预初始化和完全初始化两种操作模式。

[SWS_Dem_00180]Dem_PreInit函数应该使用Dem_SetEventStatus 和 Dem_ResetEventDebounceStatus初始化DEM模块处理事件和重置SWC和BSW模块反馈的防抖计时器所需内部状态。
Dem_PreInit在ECU启动过程中的NVM管理器初始化之前被ECU状态管理器调用。此时BSW可以通过Dem_SetEventStatus函数报告相关的诊断事件。
Dem_Init函数在启动过程中NVM管理器恢复数据之后被调用,然后初始化包括诊断监视器在内的SWCs。Dem_Init函数也在 Dem_Shutdown函数被调用之后用来重新初始化DEM。
Dem_Init使用注意事项:在DEM模块完成Dem_Init调用之前DEM模块是不起作用的。

7.2 监视器(Monitor)重新初始化


应用程序中的监视器的主要初始化是通过Rte_Start完成的。一些特定事件的部分可以由DEM触发。
[SWS_Dem_00003]DEM模块应该提供InitMonitorForEvent接口来触发诊断监视器的初始化。InitMonitorReason参数用于从监视器评估特定(重新)初始化原因,以确定要执行的初始化类型(SRS_BSW_00457)


提示: 配置器DemCallbackInitMForE用于指定每个事件相关的port(P/R中的P)或c-callback(这里指的应该是C/S接口中的C 以下称C口)。
[SWS_Dem_00679] Dem_RestartOperationCycle应该通过调用所有相关事件各自的C口InitMonitorForEvent,并将参数 InitMonitorReason 设置为 DEM_INIT_MONITOR_RESTART,以此来重新初始化诊断所有相关事件的监视器。(RS_Diag_04117)

[SWS_Dem_00680]应用程序接口Dem_ClearDTC在清除时间的情况下应触发相关事件的C口函数InitMonitorForEvent,InitMonitorReason 参数应设置为 DEM_INIT_MONITOR_CLEAR(RS_Diag_04117)

[SWS_Dem_00681]应用程序接口Dem_SetEnableCondition应触发相关事件的C口函数InitMonitorForEvent,当事件的使能条件被改为满足,从而满足事件的所有使能条件。 InitMonitorReason参数应设置为DEM_INIT_MONITOR_REENABLED。(RS_Diag_04125)

[SWS_Dem_00682]应用程序接口Dem_EnableDTCSetting在ControlDTC事件重新使能时应触发相关事件的C口函数InitMonitorForEvent。InitMonitorReason参数应设置为DEM_INIT_MONITOR_REENABLED。(RS_Diag_04125)

[SWS_Dem_01113]应用程序接口Dem_SetStorageCondition应触发相关事件的C口函数InitMonitorForEvent,当事件的存储条件被改为满足,从而满足时间的所有存储条件。当事件报告FAILED 或 PASSED但是存储条件被禁能时InitMonitorForEvent只是被回调。InitMonitorReason参数应该被是置为DEM_INIT_MONITOR_REENABLED。(RS_Diag_04219)


上面是两个例子
Use case1:在诊断事件监测器在运行过程中,$85服务触发或者是清除故障触发后,只要是诊断前置条件满足,那么监视器应该从头开始运行,并在运行结束时评估事件的状态,如passed 或者 failed。

Use case2:ECU 在运行4小时后重启,那么监视器应该从头开始运行,并在运行结束时评估事件的状态,如passed 或者 failed。
任何函数的初始化(那些可能和监视器相关的)也可以由Dem触发。
提示:Dem模块不评估回调函数的返回值(像E_OK等)。


[SWS_Dem_01046]如果InitMonitorForEvent 的多个触发器同时发生,InitMforE只能被调用一次。应按照以下优先级选择原因:DEM_INIT_MONITOR_CLEAR(最高优先级)、DEM_INIT_MONITOR_RESTART、DEM_INIT_MONITOR_REENABLED(最低优先级)(参见Dem_
InitMonitorReasonType)。

7.3 诊断事件定义


一个‘诊断事件’由一些可以被诊断模块处理的最小单元定义。‘诊断事件’的状态就是监视器的结果(参见7.3.5章)。Dem通过RTE或者其他BSW从SWC接收监视器的结果。
Dem模块使用EventId来管理一个系统的‘诊断事件’状态并且对单个测试结果执行所需的操作。例如,存储冻结帧。

[SWS_Dem_00153] Dem模块应该通过EventId和相近的EventName来表示每个诊断事件。(RS_Diag_04063)所有的监视器和BSW模块使用EventId作为诊断事件名称的代号。Dem配置工具用数字来代替符号名称。

[SWS_Dem_00154] EventId 和相关的 EventName 应该是唯一的。[SWS_Dem_00126](RS_- Diag_04063)
Dem无法处理多个监视器共享单个EventId的情况。
Dem用一个内部的监视器状态存储所要报告事件的状态。
Dem支持下图展示的多个特定事件配置参数。有关详细说明,请参阅第 10 章 配置规范。


7.3.1 事件优先级

事件优先级定义为事件的重要程度排名。当事件内存满了的时候用来决定哪些错误项可以被从事件内存。
[SWS_Dem_00382] 每个事件都应该有一个优先级(请参阅 DemDTCAttributes中的参数 DemDTCPriority)。(RS_Diag_04118, RS_Diag_04071)

[SWS_Dem_00383]优先级值 1 应为最高优先级。优先级值越大,重要性越低。(RS_Diag_04118, RS_Diag_04071)

7.3.2 事件触发

[SWS_Dem_00011]Dem模块应该为内个事件内存项(event memory entry)提供一个触发计时器。(RS_Diag_04067)

[SWS_Dem_00523]如果相关事件在响应的时间内存中被触发,Dem应该初始化触发计时器值为1。(RS_Diag_04067)

[SWS_Dem_00524]如果参数DemOccurrenceCounterProcessing被设置为DEM_PROCESS_OCCCTR_TF,则在相关事件已经被存储在事件内存中时,Dem应在每个UDS 状态位(bit 0)(TestFailed)从0转变为1时,将触发计时器增加1。(RS_Diag_04067)

[SWS_Dem_00580]如果配置参数DemOccurrenceCounterProcessing设置为DEM_PROCESS_OCCCTR_CDTC(参考DemPrimaryMemory或DemUserDefinedMemory),则在相关事件已经存储在事件内存中且UDS状态位3等于1时,Dem模块应在每个UDS状态位0从0转变为1时,将发生计数器增加1(参考第0章)。(RS_Diag_04105)

[SWS_Dem_00625]如果事件特定的发生计数器已达到最大值(255),则Dem不应该增加对应事件的触发计时器。(RS_Diag_04125)


7.3.3 事件类型

共有两种不同的事件类型:

  1. BSW相关事件(通过应用程序接口Dem_SetEventStatus上报)
  2. SW-C相关事件(通过RTE操作SetEventStatus上报)
    这些类型是每个事件可配置的(参见DemEventParameter中的DemEventKind)。配置时间类型是必要的,因为bsw事件可能在完整的Dem初始化之前报告并且需要缓冲(参见7.8章)。

7.3.4 事件目标

配置参数DemMemoryDestinationRef(参考DemDTCAttributes)定义了事件及其相关数据的专用存储位置(参考第7.7.7章)。
“永久事件内存”的分配是从相关Dtc类型隐式推到来的(参考第7.4.1章)。排放相关的时间自动分配为永久事件内存,因为将事件存储为“永久DTC”的过程是根据其当前状态动态推导的(处理方法在第7.9.5.8章中描述)。

上下文中“永久”一词与排放相关事件的属性有关,并不仅仅与是否通过Nvm实现永久存储相关,这对任何时间内存类型都适用。不同时间类型的定义和使用是OEM特定的。
对于DCM-DEM接口,参数DTCOrigin用来区分不同的内存区域。目的是在不同的内存区域(主内存、用户定义内存、永久内存和镜像内存)进行特定的操作。

[SWS_Dem_CONSTR_6104]对DemMemoryDestinationRef的限制。【如果DemMirrorMemory被配置为DemMemoryDestinationRef,则必须在同一事件的DemPrimaryMemory或DemUserDefinedMemory上再配置另一个DemMemoryDestinationRef作为前提。如果一个目标不是DemMirrorMemory,则同一事件不能配置两个目标】

7.3.5 诊断监视器定义


诊断监视器是用来确定组件的功能是否正常。该监控功能可以识别监控对象的特定错误类型(例如短路接地、开路负载等等)。一个监视对象标识一个正在被检测的物理系统或电路,每个监控对象都与一个确切的争端事件相关联。


如果监视器自己消抖,只有在获得一个合格的结果(通过或失败)后上报故障的API才会被调用。如果结果发生变化,必须要上报。然而,对于监视器而言调用Dem通常总是在计算上更高效的,所以应优先选择。因此Dem去处理结果未发生改变的报告是特定的选择。

如果监视器用Dem内部的消抖机制 (参考 7.7.3),则只要执行带有功能检查的代码就会调用上报故障的API。

7.3.6 事件依赖关系


DemComponent中配置的事件的优先级和依赖关系被用于将错误报告过滤存储到故障内存中。

[SWS_Dem_01126]如果同一个DemComponent中有任一个高优先级的事件被报告为FAILED,则后面上报FAILED的事件都应被视为CONSECUTIVE FAULT(连续故障)。

[SWS_Dem_01126]如果同一个DemComponent中有任一个父组件被报告为FAILED,则后面上报FAILED的事件都应被视为CONSECUTIVE FAULT(连续故障)。


[SWS_Dem_01128]Dem应该允许忽略DemComponentIgnoresPriority事件的优先级。在这种情况下,只有存在父组件被报告未FAILED时该事件才被视为CONSECUTIVE FAULT(连续故障)(同一组件内的其他事件状态为FAILED时应该被忽略)。

[SWS_Dem_01129]如果报告的故障不是连续故障,则应被视为CAUSAL FAULT(因果故障),应被正常处理。

[SWS_Dem_01218]如果报告的故障不是连续故障,并且被配置为DemCausalityDelayTime则应被视为PRELIMINARY-CAUSAL FAULT(初步因果故障)。从事件上报发生的时间点开始,直到DemCausalityDelayTime时间结束,可以将该事件重新视为连续故障。如果在这个时间内有同一组件中更高优先级的故障或者父组件上报故障,那该事件应视为连续故障,这段事件外都不成立。

[SWS_Dem_01130]连续故障不应该被储存在故障内存中。(处理方式应同未满足存储条件)。

[SWS_Dem_01211]被视为故障连续上报的DEM_EVENT_STATUS_FDC_THRESHOLD_REACHED(例如通过接口调用或达到消算法中配置的阈值时)不应被储存到故障内存中。(处理方式应同未满足存储条件)。注意:DEM_EVENT_STATUS_FDC_THRESHOLD_REACHED 的其他报告不应被视为因果关系

[SWS_Dem_01131] Dem应该提供Dem_GetComponentFailed接口,用于查询DemComponents FAILED 状态。

[SWS_Dem_01132]如果启用了DemTriggerFiMReports,Dem在每次DemComponent状态改变时应通过调用DemTriggerOnComponentStatus函数通知FiM模块。

[SWS_Dem_01133]如果组件状态正在改变并且配置了DemComponentFailedCallbackFnc 或者DemComponentFailedCallbackUsePort 设置为 TRUE则Dem应该触发回调DemTriggerOnComponentStatus。

[SWS_Dem_CONSTR_06157]仅当未配置 DemComponentFailedCallbackFnc 时,才允许将 DemComponentFailedCallbackUsePort 设置为 TRUE。

参考文章:https://blog.csdn.net/weixin_43722921/article/details/140886074

标签:功能,Diag,规范,DEM,监视器,事件,第七章,SWS,Dem
From: https://www.cnblogs.com/youngcccc/p/18613157

相关文章

  • 斗音全功能全自动拓客引流脚本,一个脚本包含所有解放双手
    抖音超级获客83款工具就是模拟人工操作,在相应的APP里进行关注、私信、评论,利用这些操作,来吸引别人来看你,别人如对你有兴趣就会加你,这就是引流的本质。就是模拟人工操作,在相应的APP里进行关注、私信、评论,利用这些操作,来吸引别人来看你,别人如对你有兴趣就会加你,这就是引流......
  • 全新4.2版本多功能社交圈子系统前期准备有哪些?技术选型分析流程
    圈子系统圈子系统是一种社交网络平台,允许用户根据共同的兴趣、职业、地理位置或其他标准创建或加入不同的“圈子”。每个圈子可以有自己的主题和规则,成员可以在圈子里发布内容、进行讨论、分享资源等,旨在促进成员之间的交流和互动,形成紧密的社群关系‌。圈子系统的功能特点......
  • 测试工程师要遵守的用例编写规范
    前言在软件开发的快速迭代和不断更新的背景下,测试用例规范的重要性愈发凸显。它不仅帮助测试人员明确测试的目标和方法,还确保测试过程的一致性和可重复性。通过遵循统一的规范,我们可以减少人为错误,提高测试覆盖率,从而确保软件的质量。01什么是测试用例测试用例是测试过程中......
  • 基于 SSM 电脑配件销售系统的功能设计与 JSP 实现路径
    摘要随着科学技术的飞速发展,各行各业都在努力与现代先进技术接轨,通过科技手段提高自身的优势;对于电脑配件销售系统当然也不能排除在外,随着网络技术的不断成熟,带动了电脑配件销售系统,它彻底改变了过去传统的管理方式,不仅使服务管理难度变低了,还提升了管理的灵活性。这种个......
  • AI大模型加持,免费多功能,一站式增强/转档!
    随着摄影技术的提升,越来越多的人们开始热衷于使用设备来记录生活中的点滴。从手机到专业相机,都能轻松捕捉到美好的瞬间。但由于不同设备和画质的差异,这些影像资料的质量和效果常常参差不齐。在日常生活中,难免会遇到一些需要进行二次处理的情况,例如将老旧的照片、影像,进行画......
  • F5的WAF产品具有丰富的功能:攻击防护功能、智能检测与分析功能、安全管理与配置功能、A
    攻击防护功能防范常见Web攻击:能有效检测和阻止如SQL注入、跨站脚本攻击(XSS)、文件上传漏洞、命令注入等各类常见的Web应用攻击。通过对HTTP/HTTPS请求的深度分析,包括请求头、请求体、URL参数等,与预定义的攻击签名和规则进行精准匹配,及时发现并阻断恶意请求。抵御应用层DDoS攻击:......
  • 一些主要云WAF产品的功能对比
    防护能力阿里云Web应用防火墙WAF:Web攻击防护全面:有效抵御SQL注入、跨站脚本攻击(XSS)、文件包含漏洞等常见Web攻击,通过对HTTP/HTTPS流量深度分析实时检测和拦截恶意请求。CC攻击防护强大:能识别和过滤恶意请求流量,防范分布式拒绝服务(DDoS)中的CC攻击,确保高并发下网站稳定性和可用......
  • 海螺多功能苹果CMSv10自适应全屏高端模板修复版
    多功能苹果CMSv10自适应全屏高端模板这是一款带“主题管理系统”的模板。这是一款好模板。后台点开自定义菜单配置在最下方添加:首涂主题设置,/admin.php/admin/conch/theme其中admin.php如更名同上菜单配置也要更换安装完成后删除服务器上的压缩包按照步骤都操作完......
  • # 【鸿蒙开发】如何生成二维码截图保存到相册##实现分享功能
    【鸿蒙开发】如何生成二维码截图保存到相册##实现分享功能文章目录【鸿蒙开发】如何生成二维码截图保存到相册##实现分享功能前言一、业务流程梳理二、效果展示三、实现代码1.静态布局2.实现截图保存相册功能3.调用保存方法四、实现扫码功能1.效果展示2.实现代码......
  • HTML开发 - head 标签中 meta 标签功能解析
    什么是meta标签<meta>标签是HTML中用于定义网页的元数据(metadata)的元素,它并不会直接在浏览器中显示出来。<meta>标签通常位于<head>标签内,主要用来提供网页的一些信息或说明,这些信息有助于搜索引擎优化(SEO)、页面内容设置、字符编码等meta标签的常见用途1.定义字符......