当前位置:首页 > > 充电吧
[导读]作为电子研发的老兵,面对各种纷繁复杂的问题,加班加点是家常便饭,绞尽脑汁甚至抓狂是常态。经常发现当项目进展到你想砸掉设备的时候,再坚持一步你就成功了。但是有一个项目却因为坚持,到现在每每想起我都心痛郁闷不已。

作为电子研发的老兵,面对各种纷繁复杂的问题,加班加点是家常便饭,绞尽脑汁甚至抓狂是常态。经常发现当项目进展到你想砸掉设备的时候,再坚持一步你就成功了。但是有一个项目却因为坚持,到现在每每想起我都心痛郁闷不已。

2006年,我在上海中磐信息科技有限公司从事动态令牌的研发生产工作。公司是一家纯软件公司,在我入职前没有硬件部门。作为硬件部经理,负责创建团队、样机研发和后续大规模生产。工作压力很大,但是工作氛围很好,同事们相处很愉快。

当时这个动态令牌的技术正在快速在各行业推广应用,开始主要是用于保障跨国企业的网络登陆安全,2002年就是通过NS的FAE首次接触到这个东西,该技术的先行者是RSA,当时NS就是RSA定制的。后来随着银行的账户密码经常被盗,各大银行也开始推广动态密码器;那几年网络游戏超级火爆,随之而来的是游戏账号安全问题,并因盗号而发生过几起比较轰动的诉讼,网游公司开始陆续采用动态令牌来保障游戏账号的安全。

当时国内从事动态密码器研发生产的公司并不多,而能拥有自主知识产权的公司更少。公司创始人是剑桥大学毕业归国的海归,拥有基于SHA256算法的动态密码的核心专利技术,而SHA256在当时比其他的公司的技术整整领先一代;公司的投资人是美国IDG和5173。

我当时的主要工作就是采用合适的单片机,实现基于SHA256算法的动态密码器。SHA256算法相当复杂,有大量的矩阵和回归迭代运算,对于单片机实现基于时间的动态令牌来说存在以下难点:

1、 较大RAM空间;

2、 高速计算能力;

3、 超低功耗;

4、 超高可靠性;

5、 超低价格;

由于以上各项之间存在冲突,同时满足这些相互矛盾的需求其实非常困难。

我先在PC机上用C语言编程实现算法,仿真后发现RAM的需求最精简最少也超过2KB,如果移植到单片机上加上各种初始化和控制代码,RAM的需求接近3KB,2006年的时候能有3KB的RAM的单片机极为稀少而且价格极高。不得已,我选择用汇编语言编程,综合运用很多编程技巧,如采用程序空间换RAM空间,多次迭代的RAM动态分配回收等,最终花费了一周时间,将RAM需求降到409Byte,因当时已经有不少单片机的RAM空间达到512Byte,彻底解决了RAM空间不足的问题。

硬件上采用激光焊接锂电池以及晶振匹配和整体固定,软件上由于采用的是汇编语言,计算效率和可靠性远超C语言编程;采用了深度睡眠等技术平均功耗降到3.4uA,一块CR2032的电池可以工作超过3年,达到了超低功耗的要求。

当时有三款满足技术要求的单片机,分别是TI和台湾某公司的8位机、富士通的16位机,由于超低价格的要求,我们选择了台湾的单片机。

很快样机出来了,功能和性能测试OK,1K的样品生产出来了功能和性能都OK,但是经过一段时间后发现存在一定比例的样机功耗很大,电池很快就没有电了。拆开测试,未见异常,换装电池后功能正常;期间怀疑过晶振停振、电池松动、静电干扰、电路板异常、软件跑飞、芯片不良等;多次请供应商及代理商的技术人员一起分析,甚至寄实物到台湾请原厂分析,结论均是未见异常。

在测试分析和不懈坚持中,我又分别将代码成功移植到TI和富士通的单片机,但是这时国内做动态密码器的厂商开始多起来,他们采用的都是上一代简单的加密算法,虽然安全性不够,但对单片机要求很低,而且外观上看不出任何差异。在成本的压力之下,新的单片机导入工作在公司层面一直未能真正进行,生产订单开始源源不断,又掩膜定制50K的Dice片。

坚持了很久,通过对500套样品的排查,终于发现是因为该单片机的内在BUG,P64管脚IO口寄存器配置会在休眠期间发生反转,高低电平一旦反转后就开始快速放电。

问题查清了,但是对公司来说损失已经非常巨大,包括客户流失和口碑等。这是我工作以来遇到的最难复现、最难模拟、最难分析的问题,也是对公司造成影响最巨大的问题。

教训主要有以下几点:

1、样机开发阶段过于考虑低成本方案往往会导致灾难性后果,优先选择口碑好的大品牌产品完成技术验证和生产销售,然后逐步降本;

2、如果硬件问题没有得到解决,一段时间后还没有进展需要及时止损,切换不同方案,这时一味的坚持往往付出更加惨痛的代价;

3、表面上的硬件问题有时其实是软件配置导致,但深层次原因可能还是硬件不良,遇到这种极难复现的问题尤其要当心;

4、不要迷信芯片公司,所谓原厂的技术支持其实是有限的,所谓的分析报告有时无非是一个免责的托词,而且这种深层次的问题很难追责。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭