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