新闻中心

EEPW首页 > 牛人业话 > 数据存储很重要,这块把钱省不掉?

数据存储很重要,这块把钱省不掉?

作者:天雷君时间:2019-04-16来源:电子产品世界收藏

艳阳高照,微风阵阵,测试车辆内热气腾腾。我打开车门,斜躺在驾驶座上,把浑然天成的两个大脚丫子翘到方向盘上,百无聊赖地拿着遥控钥匙解锁、闭锁、解锁、闭锁、咦?怎么没反应了?遥控钥匙没电了?

本文引用地址:http://www.eepw.com.cn/article/201904/399524.htm

我盯着手中的钥匙看了看,每按一下,钥匙上面那个小小的指示灯就按部就班地闪一下。甩锅失败,一阵凉意从我心底泛起,明儿个就要回程,千万别出啥岔子呀!一个哆嗦,洒家从方向盘和驾驶座上滚了下来。

问题来得无声无息,bug原因半抱琵琶、朦朦胧胧,于是我架上仿真器,挥舞三板斧,一路跟着遥控接收、解码代码探下究竟。

先确认能否正常接收到遥控信号,很正常;再看看可否收到完整遥控报文,能收到;能不能解析出来遥控命令,可以;判断是不是有效的钥匙,不是!

纳尼,居然不是有效的钥匙?奇了个怪了个了哉!

3.jpg

不知为何,就那么一瞬间,火光电闪,李工那肥油油的嘴唇、猥琐的小眼睛突然浮现在我面前。于是,我马上看了看存放钥匙ID的地址,果不其然,数据丢了!

数据怎么丢的?

我怔怔地看了看仪表盘,旋即陷入了苦苦的思索:数据怎么就丢了呢?究竟发生什么了?

存放钥匙的这个扇区可以存放128次钥匙数据,更新一次数据,地址就向前累加,扇区用完后,需要先擦一遍再写新数据,然后还能再接着用127次。显然,这次要么是跑飞了直接跳入了擦除程序,要么是用完128次,擦掉后再写时没写上。

看了看仪表盘上醒目地显示着的低电量提示灯,我本能地认定了是第二种情况,肯定是电池快没电了,电压本来很不稳定,再加上程序里是在执行闭锁解锁动作(附带着还会展开或收起后视镜、闪烁转向灯进行提示)期间更新钥匙数据的,那么多负载一起动作,肯定会在电池母线电压时造成很大的波动,于是要么擦除了一半就出错了,要么擦除掉之后没有写成功。

我不禁又想起了采用外置的方案。如果使用外置的话,首先根本就不用擦除,其次即便这次没有写成功,车身控制器中没有存储上钥匙最新的滚动码信息,但是,根据钥匙和车身控制器的交互机制,这一点都不影响钥匙的下次使用,下次使用时再多按一次钥匙,车身控制器就能和钥匙匹配起来。

于是,我又想起李工来了!

很重要

我左思右想,似乎很难避免因为电压不稳定导致数据擦除一半就出错的情形,而且即便擦除成功了,倘若这时因为电压不稳定MCU复位了,还是会造成擦除成功但是写失败的问题。

兹事体大,不敢擅专,于是我向经理汇报了这个故障以及对这个问题的分析。

好在还处在产品的开发阶段,一切修改都还来得及。经理沉吟片刻,思索再三,就把我招了回去。

回到公司,经理召集项目组开会。洒家上下嘴皮子一碰,简要介绍了故障和原因分析。然后,盯着李工,悠悠地说到:“李工,我早说内部数据不靠谱吧,你看,马上得让车厂技术确认了,现在还得改板子,多耽误事啊!”

说这话时,我仔细地看着他的脸,看着那裹在衬衣硬领里的紧绷绷、红通通的脖子,看着那宽宽的肩膀和重重地放在桌上的两条胳膊,等待着他的回应。

李工脸上红一阵白一阵,突然把眼皮一抬,对着经理说:“以前我在X公司时,做的那款产品就没用外部EEPROM,只要编程时加些限制和保护,内部数据完全没问题!”

面对这种无法求证的说辞,我带着戏虐的笑容说不可能。谁知,李工却突然爆发了。他涨红了脸,眼睛瞪得溜圆,带节奏地拍了拍桌子,大声地说:“我说的是实话,我可以把那款产品的原理图调出来!”

经理又被说动了,便说起能否通过软件的方式避免数据被误擦除或写错的情况。

我拿出早已准备好的说辞,带着科普的口吻跟大家讲了一通:“代码可能跑飞到任何一个位置,一旦跑飞到擦除代码,数据肯定就被擦除了。当然了,代码跑飞的几率很小,跑飞到擦除代码的位置就更小了。但是,遥控数据更新的代码运行到需要先擦除扇区再写新数据的那个分支时,现在发生的情况是电压不稳定确确实实会导致写入失败。”

看了看大家认真听讲的样子,我清了清嗓子,继续说了下去:“貌似可以在执行擦除和写入之前检测电池母线电压,电压不稳定时就不执行这些操作,好像这样就能解决这个问题了。可是从理论上分析,从电池电压到MCU供电电压之间的电源转换芯片可以在电池电压下探到5.5v时还能稳定地提供5V输出,而电池电压又确实不会下探到那么低,所以理论上分析,这种电压不稳定本该不会导致数据误擦除或写错,这就说明不是单单电压不稳定这一个因素导致的。再说了,如果擦除和写入之前检测的电压稳定,在擦除或写入期间不稳定了,还是避免不了这个问题!”

紧接着,我又给出了貌似反方向的判断:“不过,现在的程序中,是得操作128次钥匙才会触发一次擦除扇区的操作,只有这第128次才会面临这种风险。平时的操作只有写入数据,写入时间远远小于擦除时间,写入失败的几率应该很小很小的。”

经理皱着眉头,向我投来询问的目光,我目光坚定地点了点头,最终,经理拍板,还是决定外加一块EEPROM。

洒家向不发一言的李工投去安慰的目光,悠悠地对他说:

很重要,看来这块把钱省不掉啊!


*本文为电子产品世界原创文章,转载请注明来源


上一页 1 2 下一页

关键词: 数据存储 EEPROM Flash

评论


相关推荐

技术专区

关闭