正文:
经过前面几篇博客的铺垫,终于要聊点不虚和实际的内容了。
如果谈失效,就不能不提到FMEA(失效模式与影响分析)。FMEA的哲学办法是归纳法,即从底至顶。
那么,要是内容不虚,就研究“系统/子系统“之下的组件---元器件。
今天,聊一聊MCU那点事。
1、MCU的电源
某公司MCU电源的拓扑如下:
Logic supply VDD,供给MCU内部Core---CPU的电源,一般电压约1.8V。当电源电压<1.8V,CPU可能会出现故障。
VDDF,供给MCU内部Flash读写,一般电压约2.8V。当电源电压<2.8V,进行读写操作可能会损坏Flash
MCU内部的LVR(low voltage reset)在电源电压<4.2V,会发生Reset,强制终止MCU工作。
那么问题来了:如果要准确地”识别低压“这个异常工况,很显然需要LVR具备在更低电压下工作的能力。
MCU内部用bandgap来实现这一要求,bandgap的工作电压一般为1.25V,即用1.25V来识别4.2V。
2、MCU的Core
CPU是大脑,负责计算和逻辑。
对于单核MCU来说,解决这个问题比较棘手,没特别好的办法。大脑往往是不知道大脑出问题了。
主/辅MCU呢,是通过分立的2个CPU,2个大脑相互比较(comparison)来纠错。 双核MCU,比较科幻了,不分立,直接在一个机体内长出2个大脑,冗余2个CPU核来降低失效率;
3、MCU的时钟
MCU一般有三路独立时钟的来源:
1)晶体振荡器或陶瓷振荡器的时钟
2)内部RC振荡的时钟,一般频率为1MHz
3)来自API(Asynchronous periodic interrupt)的时钟,一般频率为10KHz
有了三路时钟来源,还得辅以复杂的时钟拓扑,可以降低”时钟丢失而程序跑飞“的风险。
4、MCU的存储器
受电气环境和宇宙射线的影响,Flash /EPROM/RAM会发生其内存储的数据发生0<->1跳变。
存储器1bit出现错误,可能还好。但是,骨感的现实中2bit以上的跳变是存在的。
于是,出现了ECC技术(Error Correcting Code)循环冗余校验码,可以实现1bit错误能被纠正过来,2bit以上的错误能被检测。
由于ECC的原理还是挺复杂的,此处省略。ECC的实现可软件或硬件。硬件ECC的好处就是节省MCU资源。
5、指令
顺便提一下,ECC好比可以保证存储在电脑硬盘上数据是可靠的。
那问题来了,如果读取电脑硬盘的命令出错了,比如本意是读取一个文件夹的内容,结果命令被篡改成”删除这个文件夹“的命令了。
于是,发明了CRC(Cyclic Redundancy Check)循环冗余校验码。
6、MCU的外设:I/O
MCU的外设众多,此处仅展示I/O的失效问题。
整个回路每个支线都有可能失效。
比如MCU的die -> 封装pin脚 -> 外围设备等之间
那么,通过回采提高诊断覆盖率是个好办法,但是回采回路也存在支线”外围设备 -> 封装pin脚 -> MCU的die“。
结尾:
有位老师劝学生不要吸烟,因为治病的风险很大。而该名学生利用地理知识觉得地球风险本就很大:
地球自重60万亿亿吨,带着70亿地球人绕着太阳1秒疯狂转30公里,然后自己打转转又弄了460多米。风险还不大吗?
附录:
前言
1)文章题目起得吓人,但正文却“食之无味”,仅“管中规豹/盲人摸象/坐井观天”地推测汽车电子研发工作;
2)正文按照标号1/2/3/4,以符合研发工程师强迫症的习惯;
3)行文追求朴素/简洁/凌厉的大实话和心里话,以符合研发工程师“外表朴素/内心艳丽/敏于行/讷于言”的特质;
4)结尾模仿相声的结尾(称作“攒底”),戛然而止,并鞠躬下台。
zhujun74_602010376 2019-2-20 19:06