【導讀】什么原因會導致MCU失效?有程序原因、硬件連接原因,也有芯片的原因,文章從6個方面解析導致MCU失效的原因。
1.MCU 的電源
某公司 MCU電源的拓撲如下:
Logic supply VDD ,供給 MCU內(nèi)部 Core---CPU 的電源,一般電壓約 1.8V。當電源電壓 《1.8V ,CPU 可能會出現(xiàn)故障。
VDDF ,供給 MCU內(nèi)部 Flash 讀寫,一般電壓約 2.8V。當電源電壓 《2.8V ,進行讀寫操作可能會損壞 Flash
MCU 內(nèi)部的 LVR( low voltage reset )在電源電壓 《4.2V,會發(fā)生 Reset ,強制終止MCU 工作。
那么問題來了:如果要準確地 ” 識別低壓“ 這個異常工況,很顯然需要 LVR 具備在更低電壓下工作的能力。
MCU 內(nèi)部用 bandgap來實現(xiàn)這一要求, bandgap 的工作電壓一般為 1.25V,即用 1.25V 來識別4.2V 。
2.MCU 的運算核心 Core
CPU 是大腦,負責計算和邏輯。
對于單核 MCU來說,解決這個問題比較棘手,沒特別好的辦法。大腦往往是不知道大腦出問題了。
主 /輔 MCU 呢,是通過分立的 2個 CPU ,2 個大腦相互比較( comparison )來糾錯。
雙核MCU ,比較科幻了,不分立,直接在一個機體內(nèi)長出 2 個大腦,冗余 2個 CPU 核來降低失效率;
3.MCU 的時鐘
MCU 一般有三路獨立時鐘的來源:
1 )晶體振蕩器或陶瓷振蕩器的時鐘
2 )內(nèi)部 RC振蕩的時鐘,一般頻率為 1MHz
3 )來自 API(Asynchronous periodic interrupt)的時鐘,一般頻率為 10KHz
有了三路時鐘來源,還得輔以復雜的時鐘拓撲,可以降低 ” 時鐘丟失而程序跑飛 “的風險。
4.MCU 的存儲器
受電氣環(huán)境和宇宙射線的影響, Flash /EPROM/RAM 會發(fā)生其內(nèi)存儲的數(shù)據(jù)發(fā)生 0《-》1 跳變。
存儲器1bit 出現(xiàn)錯誤,可能還好。但是,骨感的現(xiàn)實中 2bit 以上的跳變是存在的。
于是,出現(xiàn)了 ECC技術(shù)( Error CorrecTIng Code )循環(huán)冗余校驗碼,可以實現(xiàn) 1bit 錯誤能被糾正過來, 2bit以上的錯誤能被檢測。
由于ECC 的原理還是挺復雜的,此處省略。 ECC 的實現(xiàn)可軟件或硬件。硬件 ECC 的好處就是節(jié)省 MCU資源。
5.指令
順便提一下, ECC好比可以保證存儲在電腦硬盤上數(shù)據(jù)是可靠的。
那問題來了,如果讀取電腦硬盤的命令出錯了,比如本意是讀取一個文件夾的內(nèi)容,結(jié)果命令被篡改成 ” 刪除這個文件夾 “的命令了。
于是,發(fā)明了 CRC( Cyclic Redundancy Check )循環(huán)冗余校驗碼。
6.MCU 的外設(shè): I/O
MCU 的外設(shè)眾多,此處僅展示 I/O 的失效問題。
整個回路每個支線都有可能失效。
比如MCU 的 die -》 封裝 pin 腳 -》 外圍設(shè)備等之間
那么,通過回采提高診斷覆蓋率是個好辦法,但是回采回路也存在支線 ” 外圍設(shè)備 -》 封裝 pin腳 -》 MCU 的die“ 。