项目

一般

简介

功能 #3395

力常 张 更新于 3 个月 之前

需求描述 
 本设计规则支持RQT-003701-705447“诊断功能”,适用于所有采用非AUTOSAR操作系统、AUTOSAR Classic或AUTOSAR Adaptive的电子模块软件,并作为该需求的符合性验证方法。 
     每次软件检测到堆栈溢出时,诊断进程标识符(PID)D701的字节1计数器必须递增。 
     若实现空闲任务,每当软件因无可用空闲时间而无法进入空闲任务(或空闲任务未进入其空闲循环)时,字节2计数器必须递增。 
     若实现空闲任务,字节3表示空闲任务进入其空闲循环前识别到的最短剩余空闲时间(按比例缩放到8位字节内)。标量值需由供应商定义并记录于版本说明中。供应商应尽量通过标量值提供适当的计时分辨率,兼顾预期空闲时间及可能的无浮点运算限制。 
     仅当空闲时间归零时,字节3使用0(此时字节2递增),255表示任何大于254所代表的值。 
     供应商需在ECU出厂时将字节3初始值设为255,该值用于验证空闲时间计算是否执行。 
     若供应商选择不自动化诊断测试,则需手动测试以下内容: 
         DTC设置/清除条件 
         DID读写值 
         I/O控制能力 
         自检功能 
         唯一执行例程功能 
         唯一安全等级/实现方式 
     供应商必须在功能DV测试前后检查所有已实现的D701数据内容,并将结果报告给福特。 
 设计规范 
     为便于模块故障诊断,福特规定需通过诊断进程标识符(PID)提供一组诊断数据,这些PID可通过传统诊断测试工具或车载互联接口读取。下文将明确这些PID的数据内容,若未支持这些PID将增加车辆诊断难度。其他附加PID列表可参考《架构与软件平台PARSED最低要求文档》。 
     车辆中部分模块在电池连接时即通电,并持续运行至电池断开/更换。这些持续供电模块(PAAT)若在车辆中发生故障或无响应,调试将尤为困难(因唯一的重置方式是断开电池)。此外,某些故障模式可能导致异常行为(如意外复位或数据损坏)。此类故障可能未被操作员察觉,但记录其发生情况有助于识别/诊断偶发异常。此信息对所有模块均需提供,但对PAAT模块尤为重要。 

 PID D701响应说明 
 PID D701的响应为四字节数据: 
     

     字节1:堆栈溢出计数器 
            堆栈溢出计数器在每次因堆栈溢出导致复位时递增。 
     字节2:空闲时间丢失计数器 
            
     空闲时间丢失计数器报告调度器无法生成空闲时间的次数。若调度器无可用时间执行空闲任务,该计数器递增,表明CPU已超过设计负载的100%且任务截止时间被错过。 
     字节3:最小空闲时间 
            
     最小空闲时间报告观测到的最短空闲时间。微控制器进入空闲任务前,必须确定剩余空闲时间的实际时长,并与该字节当前值比较;若新值更小,则字节3更新为此值。仅当ECU处于默认诊断会话时更新字节3。 
     字节4:保留字节 
            
     诊断进程标识符(PID)D701定义为4字节消息,当前该字节未定义,留作未来使用。 
  
     当计数器达到最大值(此处为255)时,ECU须停止递增。相关PID D700十六进制的定义请参考GMRDB文档。 
  
     任何含软件的ECU可能需要诊断信息用于调试。建议以自动化模式执行诊断测试,避免数据记录时的时序问题。若供应商因故无法自动化这些测试,需获得福特工程师批准。手动诊断测试方法应覆盖上述用例。 
  
     为便于问题调试,必须实现D701 PID。每次设计验证(DV)测试时,需生成针对这些PID的对比报告。 

 分析/讨论 
 本设计规则支持RQT-003701-705447“诊断功能”,适用于所有含软件的电子模块,并作为该需求的符合性验证方法。 
 设计规则闭合机制:通过完成软件技术设计评审(TDR)闭合这些设计规则,具体可通过“SWQA通用TDR检查清单”中的以下问题实现: 
 ICO21034 
 A)呈现与在中央软件解析最低要求文档(健康监视器)中定义的PID相关联的软件参数。 
 B)描述为什么选择这些参数。 
 C)提出在ECU报告问题后,使用PARSED或不使用PARSED保存数据的机制。 
 参考文献 
 PARSED文档在VSEM中: https:/www.vsemweb.ford.com/tc/launchapp?-attach=true&- s=226TCSession&-o=idVtdOx0x3NrTDAAAAAAAAAAAAA&servername=Production_Server

返回