• 回复
  • 收藏
  • 点赞
  • 分享
  • 发新帖

【我是工程师第四季】老板说,你去跳槽,我去跳楼,sd卡引发的灾难

老板,楼不用跳了,SD卡问题我们解决了

SD存储卡(包括Micro SD卡)是一种基于半导体快闪记忆器的新一代记忆设备,由于它体积小、数据传输速度快、价格低廉等众多优势,被广泛地于便携式装置上使用,例如数码相机、个人数码助理(外语缩写PDA)和多媒体播放器等。在十几年的发展史上,秒杀众SM卡、CF卡、XD卡、MMC等存储卡,但是,万物有利必有弊,今天,小编要为大家分享一个由SD引发的灾难,以及该灾难被我们项目组攻克的技术案例。

去年上半年,我们公司承接了某大型广告公司的电梯广告显示屏的项目,该产品使用了飞思卡尔的IMX6系列芯片作为主控CPU,具备媒体人机触摸互动、媒体投放、远程升级、录像监控等功能。其中很重要的一项功能就是监控和保存功能,因客户的报价较低 ,我们理所当然的选择了SD卡作为录像数据的保存介质。没想到,灾难半年后就降临了,半年前发货的10K机器,每个月都有10%的损坏率,损坏的机器90%都是SD卡损坏了。关键的监控视频信息全部丢失,客户不但要求我们赔偿SD卡的损失,延长质保期,而且威胁一个月内不解决将终止合作,客户是老板的唯一大客户,丢失这个客户我们离解散就不远。老板甚至放下狠话:一个月内不解决,你们跳槽,我跳楼。

项目组首先从客户的使用的电梯的场景入手,场景的特点如下:

1、电梯内部布满各种通信线、音视频线、电力线,互相之间的干扰非常严重

2、电梯内的广告机每天晚上12点至早上6点回自动断电,白天自动上电

3、广告机只要开机就需要一直录像,保存到本地的SD卡中。

于是我们首先模拟现场的应用场景,第一个场景公司内部无法模拟,于是先模拟第二和第三个场景,事设备上电10分钟,掉电5分钟,只要一上电就开始录像,提高上下电的频率。样本数量使用了50台。

实验第一天,SD卡损坏0张;

实验第二天,SD卡损坏1张;

实验第三天SD卡损坏3张,一直到实验到第6天,SD卡一共损坏8张。

我们基本找到SD卡损坏的原因:就是设备上下电导致的。于是大家分头行动,从硬件和软件、驱动着手,分析掉电可能引起的原因。

首先是驱动工程师查阅MMC的规范“JESD84-B45”时有发现,如下图1所示,

文中大概的意思就是,主机在掉电关闭设备前,应该通知SD卡控制,由控制判断掉电的紧迫性,从而进入对本身设备的保护模式,并且在这之前,应该保持设备的电源处于工作范围之内。




1 JESD84-B45规范中掉电的要求。

继续查阅SD2.0规范中,SD卡的标准只保证在读数据过程中,意外断电和移除可以对数据进行保护,对写和擦除过程中的掉电的,完全没有把握保护数据,也就是SD卡内部的本身固件、用户数据都是有可能丢失的。



2SD 2.0标准中对SD卡的保护阐述

 

通过查阅相关的规范,我们知道了原因的所在,就是我们的设备在断电的时候,还在录像保存数据,进行不断的写和擦除SD卡的操作。经过讨论,我们采用了如下的方案。.其中,方案的核心主要有3个,第一:掉电检测电路;第二:超级电容继续供电电路,第三:掉电后软件处理机制。



3SD卡掉电保护的处理过程

下图4是掉电检测电路,可以精准的检测一旦电压跌落至10V(电源为12V供电),马上送掉电信号给CPU



4:掉电检测电路

 

下图5是超级电容的充放电电路,增加该电路可以使掉电后继续维持2秒钟的时间,使CPU完成掉电后的保护处理工作。



5:超级电容充放电电路

 

经过了上述的整改,我们生产了50台设备,进行连续724小时,10分钟一个循环的上下电测试,没有一台设备的SD卡损坏,证明了上述方案可行。老板的楼,终于不用跳了。

经验总结,其实CPU原厂提供的DEMO参考设计,基本都是处在能用的状态,离真正的高可靠应用,还有很大的距离,需要我们工程人员的不断挖掘和积累。才能设计出高可靠性的产品。

 

 

 

 

 

 

 

 

 

全部回复(9)
正序查看
倒序查看
ggx1014
LV.1
2
2017-12-04 18:40
提供了一个新的思路。不错。
0
回复
x_xxxx
LV.1
3
2017-12-05 07:59
学习了经验,谢谢
0
回复
2017-12-05 15:03
@x_xxxx
学习了经验,谢谢
学习学习
0
回复
H_K_T
LV.3
5
2017-12-07 17:41
非常好的经验,多谢分享!
0
回复
ruohan
LV.9
6
2017-12-15 08:15
@H_K_T
非常好的经验,多谢分享!

做产品,不做产品验证吗

开关机实验是一项必作项目啊.

1
回复
mars5514
LV.1
7
2018-01-02 10:27
这个方法不错,可以试验一下。
0
回复
jag6510
LV.3
8
2018-05-29 11:06
@mars5514
这个方法不错,可以试验一下。
多谢分享
0
回复
2018-10-07 08:08
@jag6510
多谢分享
解决问题的方法值得学习
0
回复
yanhaibie
LV.2
10
2018-10-22 10:12
多谢分享
0
回复