我的設計成功很大程度上歸功于我的大學。不是因為實驗室實驗我們學到了什么可能會意外炸毀電容器,而是因為我們了解到Murphy定律可以在你最不期望的時候發生。由于我花了很多時間玩魔獸并努力完成無休止的任務,我依靠我的電腦一直運行。
當時,電腦相當有限,看到的情況并不少見臭名昭著的Windows“藍屏死機”偶爾彈出。雖然從魔獸游戲中被打斷是令人沮喪的;丟失數小時未保存的系統計算機崩潰任務會讓我陷入大規模的恐慌襲擊。作為a,當您的微控制器在現場發生故障時,您可能會遇到類似的恐慌。
微控制器故障模式如何影響系統
在嵌入式系統中,微控制器故障模式(MCU)可能比錯過任務的截止日期更糟糕。 MCU通常是支付機器,醫療設備和安全系統等應用程序的核心。這些系統要求高穩定性,并且通常對系統故障率具有較低的容差。
發生故障的MCU可能導致運行完全停頓。這可能給用戶帶來不便或在關鍵應用中造成功能安全風險。對于客戶而言,不可靠的系統會影響運營能力并可能導致收入損失。對于設計師來說,他們的數百種產品在現場不斷失敗對我們的驕傲是一個巨大的打擊,并且會影響我們的聲譽。
指點手指沒有'幫助失敗的微控制器。
為什么微控制器失敗以及誰應該負責
可靠的嵌入式系統需要共同努力硬件設計師和固件程序員。在開發階段,一些設計故障可能無法檢測到,只有在部署后才會出現丑陋的頭部。在這種情況下,誰應該承擔更大的責任?
在我們開始指責之前,讓我們來看看微控制器失效的原因。
1。存儲器堆棧溢出
微控制器的存儲器堆棧是其內部RAM的指定區域,用于臨時使用。存儲器堆棧的大小是有限的,并且隨著不同的MCU而變化。當固件程序員分配大于堆棧大小的變量時,運行時可能會發生堆棧溢出并導致固件失敗。
2。非法指針
在MCU固件編程中,指針通常用于指示變量或程序函數的地址。聲明和使用指針要求固件程序員遵守編程語言定義的嚴格語法,通常在C語言中。錯誤地引入非法指針會導致MCU嘗試處理超出其有效范圍的地址中的變量或函數。這可能會導致MCU崩潰。
3。不穩定的電壓源
MCU通常是一個被忽視的因素,需要穩定的電網才能可靠運行。當電源因外部干擾而不斷中斷時,MCU可能會發生故障。工作電壓的下降可能導致MCU表現不正?;蛲耆珒鼋Y。
4。電氣干擾
未能處理電氣干擾,尤其是繼電器和電機引起的電氣干擾可能導致MCU崩潰。在我早期的一個驅動簡單直流電機的項目中,每次嘗試反向驅動電機時,我的MCU都會出現故障。通過使用運算放大器增加其電隔離來解決該問題。
5。裝配過程不良
有時,微控制器單元故障可能與硬件或固件工程師無關。 MCU引腳上的低質量焊點可能導致不可預測的MCU行為。如果只有少數嵌入式系統發生故障,您可能會開始研究制造商的工藝質量。
硬件和固件工程師都必須在設計可靠的嵌入式系統方面發揮作用,而不是玩責備游戲。預先實踐良好的編程道德規范和計劃內存分配是最佳實踐。對于程序員來說,保持簡單可以是最小化錯誤代碼的明智選擇。
硬件設計人員需要考慮硬件將被使用的環境并為所有可能性做好準備。這意味著堅持所有最好的基本設計實踐,并充分利用您的PCB軟件工具來測試設計。 Altium的CircuitStudio?采用AltiumDesigner?技術構建,為您提供設計專業PCB的工具。
-
pcb
+關注
關注
4352文章
23406瀏覽量
406641 -
電路設計
+關注
關注
6698文章
2518瀏覽量
210613 -
控制
+關注
關注
5文章
1021瀏覽量
123531 -
華強pcb線路板打樣
+關注
關注
5文章
14629瀏覽量
43732
發布評論請先 登錄
評論