首页
时事
民生
政务
教育
文化
科技
财富
体娱
健康
情感
更多
旅行
百科
职场
楼市
企业
乐活
学术
汽车
时尚
创业
美食
幽默
美体
文摘
MCU 故障模式:发生的原因以及如何预防
文摘
2024-11-06 07:00
上海
设计师的作品获得成功很大程度上要归功于大学。不是因为设计师在实验室实验中了解到什么可能会意外炸毁电容器,而是因为设计师了解到墨菲定律会在你最意想不到的时候发生。你大学的时候可能花了很多时间玩魔兽世界并努力完成无尽的作业,所以你一直依赖你的那台电脑。
可能当时的电脑功能非常有限,偶尔弹出臭名昭著的 Windows“蓝屏死机”也很正常。虽然在玩魔兽世界游戏时被打断令人沮丧;但因为系统电脑崩溃而丢失数小时未保存的作业更会让你陷入巨大的恐慌。作为一名设计师,当你的微控制器在现场导致故障时,你可能会经历类似的恐慌。
微控制器故障模式如何影响系统
在嵌入式系统中,微控制器故障模式 (MCU) 可能比错过作业截止日期产生更严重的后果。 MCU 通常是支付机、医疗设备和安全系统等应用的核心。这些系统要求高稳定性,并且通常对系统故障率的容忍度很低。
导致故障的微控制器单元可能会导致操作完全停止。这可能会给用户带来不便或在关键应用中造成功能安全风险。安全机制极其重要。对于客户来说,不可靠的系统会影响运营能力并可能导致收入损失。对于设计师来说,数百种产品在现场不断导致故障,这对我们的自尊心是一个巨大的打击,并且会影响我们的声誉。
然而,指责无助于解决发生故障的微控制器问题。
微控制器失败的原因以及谁应该负责
可靠的嵌入式系统需要硬件设计师和固件程序员的共同努力。一些设计缺陷在开发阶段可能无法检测到,只有在部署后才会出现。在这种情况下,谁应该承担大部分责任?
在我们开始指责之前,让我们先看看可能出现故障机制的原因。
1. 内存堆栈溢出
微控制器的内存堆栈是其内部 RAM 的指定区域,用于临时使用。内存堆栈的大小是有限的,并且因不同的 MCU 而异。当固件程序员分配大于堆栈大小的变量时,运行时可能会发生堆栈溢出,并导致固件导致随机硬件故障。这也恰恰是虚拟原型可以发挥作用的地方,固件程序员可以观测并提前解决这一故障。
2. 非法指针
在 MCU 固件编程中,指针通常用于指示变量或程序函数的地址。声明和使用指针要求固件程序员遵守编程语言(通常为 C 语言)定义的严格语法。错误地引入非法指针可能会导致 MCU 尝试处理其有效范围之外的地址中的变量或函数。这可能会导致 MCU 崩溃。
这也同样是虚拟原型中,固件程序员可以使用虚拟模型提前观测的事情。
3. 电压源不稳定
这是一个经常被忽视的因素,MCU 需要稳定的电源网络才能可靠运行。当 MCU 的电源不断受到外部干扰时,它可能会陷入故障模式。工作电压的下降可能会导致 MCU 行为异常或完全冻结。
这也是虚拟原型可以发挥作用的地方,通过模拟电源的故障提前分析。
4. 电气干扰
无法处理电气干扰,尤其是来自继电器和电机的干扰,可能会导致 MCU 崩溃。在我之前的一个驱动简单直流电机的项目中,每次尝试反向驱动电机时,我的 MCU 都会失败。通过使用运算放大器增加其电气隔离,解决了这个问题。
5. 装配工艺差
有时,微控制器单元故障可能与硬件或固件工程师都无关。MCU 引脚上的低质量焊点可能导致不可预测的 MCU 行为。如果只有少数嵌入式系统出现故障,您可能需要开始调查制造商的工艺质量。
微芯片生产工厂
硬件和固件工程师都必须在设计可靠的嵌入式系统方面发挥自己的作用,而不是互相指责。
践行良好的编程道德规范并提前规划内存分配是最佳实践。
对于程序员来说,保持简单是减少错误代码的明智选择。
硬件设计师需要考虑硬件的使用环境,并为所有可能性做好准备。这意味着要遵守所有最佳的基本设计实践,并充分利用 PCB 软件的工具来测试设计。
虚拟原型,可以提前帮你减少出错的风险。
http://mp.weixin.qq.com/s?__biz=MzIxODAzMDA0Mg==&mid=2650946078&idx=1&sn=b9564791e66e25d54881eb955b1af2ea
软硬件协同设计 HW-SW Co-Design
欢迎后台留言,AI 客服全天在线。脱离物理硬件,开发测试和调试软件。基于虚拟原型的软硬件协同设计,提前一年实现产品上市创收,降低一半开发时间。
最新文章
Debug 调试:SoC 计划表的杀手
调试嵌入式应用程序 Debugging
谁负责处理器验证?
如何优化处理器?
一种用于多级 IP/SOC 设计的快速 SystemC 仿真方法
使用 IP-XACT 元数据进行 TLM 建模流程
追踪并优化 SoC 性能
利用 NoC 创新加速 SoC 演进,使用 NoC 平铺实现 AI 和机器学习
BMW 和 Qualcomm 构建云端 ADAS 平台
汽车 ECU 的全面验证策略:MIL、SIL 和 HIL
调试复杂的 RISC-V 处理器
使用自定义 RISC-V ISA 指令创建领域特定处理器
开始使用 IP-XACT 进行 IP 设计
使用 IP-XACT 的 SoC 设计流程
IP-XACT 介绍
UVM 寄存器模型
成本节约和产品质量提升:软件测试的左移
左移?如何加速汽车芯片开发流程 ?
早期验证和软件启动的混合方法
汽车网络的艺术(系列 1):VC3,新 E/E 架构评估系统
汽车网络的艺术(系列 2):PCIe 走向汽车
汽车网络的艺术(系列 3):虚拟化的力量
管理现代 SoC 设计中的性能
复杂 SoC 的准确高效功率估算流程
新硬件架构软件开发面临的五大挑战
计算机模拟:基础、术语、级别
在 Simulink 中生成 SystemC TLM 虚拟原型
MCU 故障模式:发生的原因以及如何预防
汽车行业对 Chiplet 和 UCIe 的需求
虚拟平台 Virtual Platform 技术
SystemC 中的系统级建模
优化 ISA 实现软硬件的和谐:自定义指令和 RISC-V 扩展
带有 RISC 主机和可配置微处理器的 SoC 的软硬件分区方法
SoC 设计中的系统架构是什么?
CPU 是最佳 AI 推理处理器的五大理由
通过改变抽象级别, 来加速 SoC 仿真
系统仿真、架构探索、电源管理、性能分析
汽车芯片团队研发岗位招聘
使用 TLM 虚拟系统原型, 进行汽车芯片的硬件和软件验证
芯片 Bring Up 正在发生变化
虚拟平台, 让汽车软件开发和系统架构验证提前开始
自动驾驶汽车中的软件架构演进
CI/CD :汽车软件交付性能的驱动因素
测试自动化,如何改善汽车软件交付
CARIAD 和 STMicroelectronics 联合开发汽车芯片
原型车试驾:Vision EQXX 突破界限,仅用 18 个月开发
软件定义汽车,推动下一代联网电动汽车的发展
梅赛德斯奔驰的工程效率:VISION EQXX 原型开发的 18 个月历程
拥抱汽车 DevOps:DevOps 工程师的驱动力
如何利用 NVIDIA 微服务 for Jetson 进行无线 (OTA) 更新
分类
时事
民生
政务
教育
文化
科技
财富
体娱
健康
情感
旅行
百科
职场
楼市
企业
乐活
学术
汽车
时尚
创业
美食
幽默
美体
文摘
原创标签
时事
社会
财经
军事
教育
体育
科技
汽车
科学
房产
搞笑
综艺
明星
音乐
动漫
游戏
时尚
健康
旅游
美食
生活
摄影
宠物
职场
育儿
情感
小说
曲艺
文化
历史
三农
文学
娱乐
电影
视频
图片
新闻
宗教
电视剧
纪录片
广告创意
壁纸头像
心灵鸡汤
星座命理
教育培训
艺术文化
金融财经
健康医疗
美妆时尚
餐饮美食
母婴育儿
社会新闻
工业农业
时事政治
星座占卜
幽默笑话
独立短篇
连载作品
文化历史
科技互联网
发布位置
广东
北京
山东
江苏
河南
浙江
山西
福建
河北
上海
四川
陕西
湖南
安徽
湖北
内蒙古
江西
云南
广西
甘肃
辽宁
黑龙江
贵州
新疆
重庆
吉林
天津
海南
青海
宁夏
西藏
香港
澳门
台湾
美国
加拿大
澳大利亚
日本
新加坡
英国
西班牙
新西兰
韩国
泰国
法国
德国
意大利
缅甸
菲律宾
马来西亚
越南
荷兰
柬埔寨
俄罗斯
巴西
智利
卢森堡
芬兰
瑞典
比利时
瑞士
土耳其
斐济
挪威
朝鲜
尼日利亚
阿根廷
匈牙利
爱尔兰
印度
老挝
葡萄牙
乌克兰
印度尼西亚
哈萨克斯坦
塔吉克斯坦
希腊
南非
蒙古
奥地利
肯尼亚
加纳
丹麦
津巴布韦
埃及
坦桑尼亚
捷克
阿联酋
安哥拉