功能 #3389
由 力常 张 更新于 3 个月 之前
需求描述
本设计规则支持 RQT-003701-705442《时间确定性(Temporal Determinism)》,适用于包含以下类型软件的所有电子控制模块非AUTOSAR操作系统(Non-AUTOSAR OS),AUTOSAR Classic 平台,AUTOSAR Adaptive 平台,第三方软件并作为该RQT的合规性实施方法。
软件不得通过计算指令周期实现时间管理
支持系统计时器标记事件时间并校验耗时
示例:某任务在10毫秒循环中执行,需累计3秒耗时,则循环计数为3000次,若任务迁移至20毫秒调度周期,循环计数需全局可修改为1500次(保持3秒累计)
计数器指令仅限硬件底层接口实现,必须在代码中详细注释例外原因,设计评审中需逐项例外合理性论证,并按"分析/讨论"章节流程升级审批
需包含以下技术参数文档:时序计算(Timing calculation),微控制器型号(Microcontroller type),时钟频率(Clock speed),时钟预分频器/PLL倍频器(Clock pre-scalar/PLL multiplier),编译器配置(Compiler switches)。
技术规范
通过指令计数进行计时的做法使子系统对硬件和软件的变化很敏感。如果算法在设计中使用循环计数器而不是基于系统的计时机制,那么改变任务评估率将导致算法不正确。
最好根据使用的时钟和要达到的时间自动计算计数器值。让所有计时器以相同的方向计数是一种很好的做法。这简化了可维护性和可移植性。
分析/讨论
本设计规则支持所有带软件的电子模块的RQT-003701-705442“时间决定论”,适用于所有带软件的电子模块,是符合RQT的一种方法。
设计规则关闭机制:这些设计规则的关闭是软件技术设计的完成审查(TDR),可以通过“SWQA常见TDR检查表”问题来解决:
IMC02002
微控制器(Microcontroller)
A) 使用的微控制器型号(提供制造商及准确型号)?
B) 微控制器的架构(8、16、32、64位)?
C) 该微控制器是否为现成产品(off-the-shelf product)?
D) 您此前对该微控制器有何使用经验?
E) 该微控制器是否已认证?/若未认证,计划何时认证?备选方案是什么?
F) 该微控制器是否符合汽车级认证(如AEC Q100/Q101、Q200等)?
G) 该微控制器是否用于福特/其他OEM项目的量产?
IAS03004
操作系统与调度器设计
A) 您使用哪种操作系统(Operating System)?
B) 阐述调度器设计(寄存器刷新、任务调度、线程、空闲任务、看门狗维护、电压范围等)
C) 您的采样率(Sampling rate)和最快时钟定时中断(Fastest clock-timing interrupt)是多少?
D) 该调度器是否已在其他应用中应用?
ISR04001
中断服务程序(ISR)设计需提交所有ISR的详细设计文档,包含以下内容:
A) 列出所有微控制器中断(包括未使用的中断)及其优先级和分类(如AUTOSAR类别1(Category 1)与类别2(Category 2))
B) 各中断的中断源、预期标称输入频率(nominal input frequency)、最坏情况输入频率(worst-case input frequency)及清除(解除断言)中断源的必要操作
C) 是否在ISR内直接操作硬件?若是,具体操作哪些硬件?原因是什么?
D) 针对每个唤醒中断(wake-up interrupt),明确其触发类型(电平敏感(level sensitive)或边沿敏感(edge sensitive)
注:答案需包含通信通道(如CAN、LIN、IPC、以太网)的中断类型。
ISR04002
中断电路与ISR设计
A) 呈现中断电路的最坏情况分析(worst-case analysis),需补偿以下预期信号衰减源(signal degradation sources):
制造差异(manufacturing variations)
时间/使用损耗(time/usage)
工作温度范围(operational temperature range)
机械振动环境(mechanical vibration environment)
EMC(电磁兼容性)
线束布线(harness routing)
连接器(connectors)
子板(daughter cards)
模块内跳线(in-module jumpers)
电容失效(capacitor failure)
水/灰尘/盐雾(water, dust, salt)
B) 您的ISR执行时间(指令数 & 微秒数)是多少?
C) 基于ECU软件需求文档中的最坏情况分析场景,仅由中断导致的最坏CPU负载(worst-case CPU load)是多少?
D) 若超出预期最坏中断速率(worst-case interrupt rate),子系统的预期行为是什么?
E) 您的ISR是否调用其他软件模块?若是,该模块是否可重入(re-entrant)?若否,原因是什么?
ICO21027
当时钟监视器出现故障时,软件会执行什么操作?
返回