我的设计成功很大程度上归功于我的大学。不是因为实验室实验我们学到了什么可能会意外炸毁电容器,而是因为我们了解到Murphy定律可以在你最不期望的时候发生。由于我花了很多时间玩魔兽并努力完成无休止的任务,我依靠我的电脑一直运行。
当时,电脑相当有限,看到的情况并不少见臭名昭着的Windows“蓝屏死机”偶尔弹出。虽然从魔兽游戏中被打断是令人沮丧的;丢失数小时未保存的系统计算机崩溃任务会让我陷入大规模的恐慌袭击。作为a,当您的微控制器在现场发生故障时,您可能会遇到类似的恐慌。
微控制器故障模式如何影响系统
在嵌入式系统中,微控制器故障模式(MCU)可能比错过任务的截止日期更糟糕。 MCU通常是支付机器,医疗设备和安全系统等应用程序的核心。这些系统要求高稳定性,并且通常对系统故障率具有较低的容差。
发生故障的MCU可能导致运行完全停顿。这可能给用户带来不便或在关键应用中造成功能安全风险。对于客户而言,不可靠的系统会影响运营能力并可能导致收入损失。对于设计师来说,他们的数百种产品在现场不断失败对我们的骄傲是一个巨大的打击,并且会影响我们的声誉。
指点手指没有'帮助失败的微控制器。
为什么微控制器失败以及谁应该负责
可靠的嵌入式系统需要共同努力硬件设计师和固件程序员。在开发阶段,一些设计故障可能无法检测到,只有在部署后才会出现丑陋的头部。在这种情况下,谁应该承担更大的责任?
在我们开始指责之前,让我们来看看微控制器失效的原因。
1。存储器堆栈溢出
微控制器的存储器堆栈是其内部RAM的指定区域,用于临时使用。存储器堆栈的大小是有限的,并且随着不同的MCU而变化。当固件程序员分配大于堆栈大小的变量时,运行时可能会发生堆栈溢出并导致固件失败。
2。非法指针
在MCU固件编程中,指针通常用于指示变量或程序函数的地址。声明和使用指针要求固件程序员遵守编程语言定义的严格语法,通常在C语言中。错误地引入非法指针会导致MCU尝试处理超出其有效范围的地址中的变量或函数。这可能会导致MCU崩溃。
3。不稳定的电压源
MCU通常是一个被忽视的因素,需要稳定的电网才能可靠运行。当电源因外部干扰而不断中断时,MCU可能会发生故障。工作电压的下降可能导致MCU表现不正常或完全冻结。
4。电气干扰
未能处理电气干扰,尤其是继电器和电机引起的电气干扰可能导致MCU崩溃。在我早期的一个驱动简单直流电机的项目中,每次尝试反向驱动电机时,我的MCU都会出现故障。通过使用运算放大器增加其电隔离来解决该问题。
5。装配过程不良
有时,微控制器单元故障可能与硬件或固件工程师无关。 MCU引脚上的低质量焊点可能导致不可预测的MCU行为。如果只有少数嵌入式系统发生故障,您可能会开始研究制造商的工艺质量。
硬件和固件工程师都必须在设计可靠的嵌入式系统方面发挥作用,而不是玩责备游戏。预先实践良好的编程道德规范和计划内存分配是最佳实践。对于程序员来说,保持简单可以是最小化错误代码的明智选择。
硬件设计人员需要考虑硬件将被使用的环境并为所有可能性做好准备。这意味着坚持所有最好的基本设计实践,并充分利用您的PCB软件工具来测试设计。 Altium的CircuitStudio®采用AltiumDesigner®技术构建,为您提供设计专业PCB的工具。
-
pcb
+关注
关注
4320文章
23113浏览量
398403 -
电路设计
+关注
关注
6677文章
2455浏览量
204605 -
控制
+关注
关注
4文章
1011浏览量
122682 -
华强pcb线路板打样
+关注
关注
5文章
14629浏览量
43081
发布评论请先 登录
相关推荐
评论