总结:VDC集成—控制器故障

VDC集成—控制器故障

背景:算法模型集成导致控制器死机的主要原因

1. 资源类原因

a. CPU过载
  • 新集成的算法模型计算量巨大,导致任务执行时间超过预设的周期
  • 最终触发看门狗超时,导致控制器复位
b. 内存不足
  • RAM不足或Flash不足
c. 总线负载过高
  • 当总线负载率超过一定阈值(如CAN总线通常建议低于70%)
  • 可能导致高优先级报文延迟,低优先级报文无法发送(“饿死”)
  • 进而导致基于这些报文的功能超时或故障,连锁反应引发死机

2. 软件与集成类原因

a. 时序与并发问题
b. 通信协议或配置错误
  • 报文丢失或超时处理不当
  • 信号处理错误
c. 算法模型缺陷
  • 数值不稳定产生非法数值
  • 数组越界
d. 工具链与编译问题
  • 例如高优化等级可能对新代码产生错误的优化

3. 硬件与底层软件原因

a. 外设驱动冲突
b. ECU硬件限制
  • 例如新增算法计算强度极高,可能导致芯片温度过高,触发过热保护

概念:复位和卡死

1. 复位

a. 定义

控制器重启了。它从程序的起点(通常是main()函数的开头)重新开始执行。

b. 外部状态
  • 指示灯:会先熄灭再重新点亮
  • 通信:CAN/LIN等通信会短暂断开后又重新连接(能看到重新上线报文)
  • 执行器:可能会听到继电器、电磁阀等"咔哒"一声的重新上电动作
c. 可能原因
  • 看门狗超时
  • 软件主动调用复位函数
  • 硬件故障复位
  • 电源波动/低压

2. 卡死

a. 定义

控制器"僵住了",程序停止在某个地方,不再继续执行任何代码,但电源依然接通,没有重启。

3. 区别

程序卡死是导致看门狗被触发的原因之一,复位是看门狗被触发后产生的结果。

概念:看门狗

1. 定义

看门狗是一个监督程序运行的定时器机制,程序需要定期报告"一切正常",如果监督者没收到报告,就认定程序已崩溃,并强制重启。

概念:导致复位的常见原因

微控制器(MCU)通常都有一个复位状态寄存器。里面用不同的位(Flags)标记了上次复位究竟是由谁造成的,常见的复位源有:

复位类型可能原因
看门狗复位软件未及时响应导致的,可能原因:CPU负载、死循环、死锁(软件逻辑)
欠压复位电源供电不稳定导致的,可能原因:硬件电源电路
硬件错误复位软件有致命内存错误,可能原因:指针、数组越界、除零

概念:指针、数组越界、除零

1. 指针错误

  • 描述:程序试图访问一个它没有权限访问的内存地址。
  • 为什么会导致复位:现代MCU(如ARM Cortex-M系列)都有一个叫做内存保护单元(MPU)内存管理单元(MMU) 的硬件模块,当CPU尝试访问非法内存地址时,MPU/MMU硬件保护模块启动拦截并向CPU报告硬件错误。

2. 数组越界

  • 描述:访问了数组定义范围之外的元素
  • 为什么会导致复位
    • 访问到非法地址,同理MPU/MMU硬件保护模块启动拦截并向CPU报告硬件错误
    • 或者越界访问到了一个合法的、但属于其他变量的地址,导致连锁反应

3. 除零

  • 描述:在代码中执行了除以0的操作
  • 为什么会导致复位:在硬件层面,CPU的算术逻辑单元无法执行除以0的操作。当它遇到这个指令时,会立即产生一个"除零异常"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值