侵权投诉

电子研发低成本方案导致的灾难性后果

电子工程师时间 2018-03-20 08:42 次阅读

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

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

原文标题:20年经验的电子总工程师回忆实录之低成本方案导致的灾难性后果

文章出处:【微信号:eedesigner,微信公众号:电子工程师时间】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
分享:

评论

相关推荐

51单片机概述

单片机的指令按字节可分为单字节(1个机器周期)、双字节(2个机器周期)、三字节指令(3个机器周期),....
发表于 07-10 17:44 15次 阅读
51单片机概述

基于LabVIEW和MCS-51单片机实现数据采集与信息分析系统的设计

LabVIEW提供了功能强大的VISA库。VISA(Virtual Instrument Softw....
发表于 07-10 17:31 20次 阅读
基于LabVIEW和MCS-51单片机实现数据采集与信息分析系统的设计

接口芯片Webchip PS200的结构与原理

如今,各类MCU已经广泛地应用于家用电器中。由于嵌入式微控制器MCU(或称之为单片机)都嵌入在有关的....
的头像 我快闭嘴 发表于 07-10 17:29 88次 阅读
接口芯片Webchip PS200的结构与原理

利用LabVIEW开发平台和单片机实现集成芯片测试仪的设计

根据多年数字电路教学和实验方面的经验,学生在不熟悉芯片性能,缺乏对芯片逻辑和时序关系的感性认识的前提....
发表于 07-10 16:59 16次 阅读
利用LabVIEW开发平台和单片机实现集成芯片测试仪的设计

以HT单片机为控制核心的步进电机驱动方案

  1、概述:本文描述了一种以HT单片机为控制核心的步进电机驱动方案。可以控制步进电机的转速及转向。   2、简介:   ...
发表于 07-10 16:40 59次 阅读
以HT单片机为控制核心的步进电机驱动方案

IPUS SQPI PSRAM为STM32单片机提供RAM扩展方案

IoT设备的增长引发了对内存技术的新兴趣,IPUS 自成立以来,已向市场推出了具有SPI和/或QSPI(Quad SPI)存储器...
发表于 07-10 16:11 94次 阅读
IPUS SQPI PSRAM为STM32单片机提供RAM扩展方案

关于ARM的三种中断调试方法介绍

在整个流程中,用户首先需要建立工程并对工程做初步的配置,包括配置处理器和配置调试设备。编辑工程文件,....
发表于 07-10 16:01 10次 阅读
关于ARM的三种中断调试方法介绍

基于单片机的高效率数字电源设计资料(方案、原理图)

使用RX62T单片机设计的高效率数字电源 采用瑞萨高性能32-bit MCU RX62T ( 100MHz主频,165DMIPS)实现软件PF...
发表于 07-10 15:47 110次 阅读
基于单片机的高效率数字电源设计资料(方案、原理图)

MCU单片机通过SPI可实现数据的快速存取

随着MCU单片机主频越来越高,处理能力越来越强大,需要的RAM资源相应增加,单片上SRAM采用6T结....
发表于 07-10 14:35 16次 阅读
MCU单片机通过SPI可实现数据的快速存取

单键实现单片机开关机设计案例

单片机工作后,将最先进行IO口初始化,IO1设为输入状态,启用内部上拉;IO2设为输出状态,输出高电....
发表于 07-10 11:42 73次 阅读
单键实现单片机开关机设计案例

关于单片机的复位电路方案

单片机在牢靠的复位往后,才会从0000H地址初步有序的施行运用程序。一同,复位电路也是简略遭到外部噪....
发表于 07-10 10:46 19次 阅读
关于单片机的复位电路方案

单片机的作业进程说明

单片机主动结束赋予它的使命的进程,也便是单片机施行程序的进程,即一条条施行的指令的进程,所谓指令便是....
发表于 07-10 10:37 31次 阅读
单片机的作业进程说明

如何看懂单片机的时序图

 先说“次第疑问”,这个相对简略一些。咱们在学 UART 串口通讯的时分,先 1 位开端位,再 8 ....
发表于 07-10 10:28 40次 阅读
如何看懂单片机的时序图

单片机在按键实习运用中碰到的疑问及处理

 单片机在工业操控中运用十分的广泛,如单片机化的电气传动及操控体系中,单片机恰当于体系中的一个零部件....
发表于 07-10 10:26 23次 阅读
单片机在按键实习运用中碰到的疑问及处理

单片机操控直流电流的的正回转程序

本程序能经过按键操控直流电流的的正回转,按键的端口界说直接看程序的界说有些。
发表于 07-10 10:23 13次 阅读
单片机操控直流电流的的正回转程序

STC单片机开发的注意事项

程序无法下载进MCU,或许犯错的本地有:假定预备条件充沛(驱动程序设备成功STC_ISP.EXE设备....
发表于 07-10 10:21 25次 阅读
STC单片机开发的注意事项

单片机学习笔记,三个步骤教你学

作为一名电子技术从业人员,你学过单片机吗?你会运用单片机吗?我想你一定学过,但不一定会运用。因为学习单片机比学习其他学科...
发表于 07-10 10:20 179次 阅读
单片机学习笔记,三个步骤教你学

单片机如何接收编码器发送的信号

旋转编码器是用来测量角度的装置,其分为单路输出和双路输出两种,通过这两种脉冲输出可以测量转速及判断旋....
发表于 07-10 10:19 20次 阅读
单片机如何接收编码器发送的信号

单片机部队扫描键盘程序说明

在键盘中按键数量较多时,为了削减I/O口的占用,一般将按键摆放成矩阵方法,如图1所示。在矩阵式键盘中....
发表于 07-10 10:12 16次 阅读
单片机部队扫描键盘程序说明

单片机烧录程序的方法步骤

怎么给单片机烧录程序?单片机keil程序烧录教程
发表于 07-10 10:06 14次 阅读
单片机烧录程序的方法步骤

单片机静态办法点亮数码管电路图解

电路只驱动一个数码管,该数码管为共阴管,公共端接地,段管直连到单片机的P2口,所用单片机为AT89C....
发表于 07-10 10:02 19次 阅读
单片机静态办法点亮数码管电路图解

如何构建单片机的最小体系

在了解原理之前, 首要让咱们考虑一个疑问,啥是单片机, 单片机有啥用? 这是一个有意思的疑问,因为任....
发表于 07-10 09:57 16次 阅读
如何构建单片机的最小体系

单片机串行口中止程序说明

当单片机接纳到一帧数据后,RI会置1,向CPU恳求中止,若之前有中止容许,则发作了中止,进入中止效劳....
发表于 07-10 09:51 12次 阅读
单片机串行口中止程序说明

单片机常用的调试接口有哪些

搞嵌入式开发和ARM开发搞了半辈子了,调试程序是不可避免的。接触了那么多的调试规范、调试工具、调试手....
发表于 07-10 09:12 35次 阅读
单片机常用的调试接口有哪些

怎么样才能使用单片机和NRF24L01实现多路温度检测和显示系统的设计

多路温度检测与显示系统,是实现多通道温度的检测,同时通过可视化的界面显示出目前待测物体或环境的温度。....
发表于 07-10 08:00 9次 阅读
怎么样才能使用单片机和NRF24L01实现多路温度检测和显示系统的设计

使用单片机实现篮球比赛计时计分系统的设计论文免费下载

整个篮球比赛计时计分设计系统由硬件和软件组成。其中硬件主要由最小系统、显示部分电路和按键部分电路三个....
发表于 07-10 08:00 13次 阅读
使用单片机实现篮球比赛计时计分系统的设计论文免费下载

LabVIEW编程详解PDF电子书免费下载

本书系统、全面地讲解了LabVIEW的编程技术,主要内容包括LabVIEW开发环境介绍、数据结构、程....
发表于 07-10 08:00 15次 阅读
LabVIEW编程详解PDF电子书免费下载

使用C语言写出的九九乘法表

本文档的主要内容详细介绍的是使用C语言写出的九九乘法表资料合集免费下载。
发表于 07-10 08:00 8次 阅读
使用C语言写出的九九乘法表

如何使用SPCE061A单片机实现射频读写器信号分析系统设计

射频识别RFID技术是一种基于射频原理实现的非接触式自动识别技术。它的基本原理是信号通过空间耦合(交....
发表于 07-09 18:56 14次 阅读
如何使用SPCE061A单片机实现射频读写器信号分析系统设计

FPGA是什么?FPGA与单片机有什么区别

二者最大的区别:单片机(无论哈佛总线结构或者冯诺依曼结构)均为取出指令-》执行,指令是顺序执行的(即....
发表于 07-09 18:17 58次 阅读
FPGA是什么?FPGA与单片机有什么区别

单片机的基本结构分支与循环结构程序设计教程说明

进一步学习Keil μVision程序设计平台使用,在此平台下如何新建工程,输入源程序,工程详细设置....
发表于 07-09 18:17 19次 阅读
单片机的基本结构分支与循环结构程序设计教程说明

国产MCU推出性价比王,世界第一颗32位MCU且价格低于1元RMB

通过采访得知该公司在MCU/SOC领域有很多重量级产品量产推出,相信未来在国产MCU/SOC领域中航....
发表于 07-09 17:02 373次 阅读
国产MCU推出性价比王,世界第一颗32位MCU且价格低于1元RMB

求助!求单片机循迹小车程序 和仿真图proteus

假期网上实习 两天时间老师要求做出一个简单的循迹小车 并实现转向时变速 实在不会请求帮助 ...
发表于 07-09 15:48 184次 阅读
求助!求单片机循迹小车程序 和仿真图proteus

单片机、ARM、DSP与CPU它们之间的区别是什么

你知道吗其实单片机、ARM、DSP都是属于CPU吗?它们之间到底有什么区别呢?就这个问题下面就让成都....
发表于 07-09 15:25 58次 阅读
单片机、ARM、DSP与CPU它们之间的区别是什么

了解I2C总线的功能和特点

读操作有三种基本操作:当前地址读、随机读和顺序读。三种操作方法类似,只是读的数据个数不同,可连续读8....
发表于 07-09 14:50 45次 阅读
了解I2C总线的功能和特点

单端口SRAM与双端口SRAM电路结构

SRAM是随机存取存储器的一种。所谓的静态是指这种存储器只要保持通电,里面储存的数据就可以恒常保持。SRAM不需要刷新电...
发表于 07-09 14:38 441次 阅读
单端口SRAM与双端口SRAM电路结构

ADC支持采样频率受供电电压影响

STM32 ADC:STM32 12位ADC是逐次逼近型的模数转换器。它有多达19个多路复用通道,允....
发表于 07-09 14:32 30次 阅读
ADC支持采样频率受供电电压影响

C语言之结构体的声明与定义

我们刚刚申请了一个名叫Info的结构体类型,那么理论上我们可以像声明其他变量的操作一样,去声明我们的....
的头像 玩转单片机 发表于 07-09 09:06 121次 阅读
C语言之结构体的声明与定义

如何把C++的源程序改写成C语言

由于C++解释器比C语言解释器占用的存储空间要大500k左右。为了节省有限的存储空间,降低成本,同时也为了提高效率,将用C+...
发表于 07-08 20:51 133次 阅读
如何把C++的源程序改写成C语言

单片机死机原因分析

图中P07为单片机控制mos管的io口,供电5V/2A适配器,单片机松翰570210。 单片机运行正常,但是负载电流到1.7A左右时,单片机...
发表于 07-08 15:09 165次 阅读
单片机死机原因分析

8031单片机时钟实验的设计方案

为了设计此系统,我们采用了8031单片机作为控制芯片,在前向通道中是一个非电信号的电量采集过程。它由....
发表于 07-08 11:45 31次 阅读
8031单片机时钟实验的设计方案

单片机篮球赛计时计分器的设计方案

随着微电子技术的不断发展与进步,微处理器芯片的集成程度越来越高,单片机已可以在一块芯片上同时集成CP....
发表于 07-08 11:43 41次 阅读
单片机篮球赛计时计分器的设计方案

多个单片机硬件系统的案例分析

  本章首先从单片机的概念入手,简单介绍了单片机实验系统的基本组成及功能,以最简单的信号灯控制应用实....
发表于 07-08 11:26 28次 阅读
多个单片机硬件系统的案例分析

单片机开发串口是应用最为广泛的通信接口

通用同步收发器(USART)是一种串行接口设备,可以对其进行编程以进行异步或同步通信。
发表于 07-08 11:21 76次 阅读
单片机开发串口是应用最为广泛的通信接口

概述单片机Proteus仿真及案例分析

Proteus软件是英国LCE公司研制的EDA工具软件,可实现电路原理设计,电路分析与仿真。Prot....
发表于 07-08 11:17 38次 阅读
概述单片机Proteus仿真及案例分析

数字滤波算法克服随机干扰的误差具有哪些优点?

由上式可以看出,本次滤波的输出值主要取决于上次滤波的输出值(注意不是上次的采样值,这和加权平均滤波是....
发表于 07-08 11:13 97次 阅读
数字滤波算法克服随机干扰的误差具有哪些优点?

单片机和PLC之间有什么区别?

单片机的特点是编程、维护相对复杂,编程方式常用C语言或者汇编语言,成本较低,I/O接口相对有限。
发表于 07-08 11:00 160次 阅读
单片机和PLC之间有什么区别?

关于单片机系统EMC测试

它包括电磁干扰(EMI)和电磁敏感性(EMS)两部分。由于电器产品在使用时对其它电器有电磁干扰,或受....
发表于 07-08 10:56 103次 阅读
关于单片机系统EMC测试

单片机和数字电路怎么抗干扰?

LED电源的工程师经常提及“恒流”驱动,其实,在很多电子设备中,有许多用电设备要求供给的电流(而不是....
发表于 07-08 08:43 121次 阅读
单片机和数字电路怎么抗干扰?

多个单片机用nRF24l01模块做发射,一个做接收,如何实现的?

准备做一个简易的家庭温度测量仪,每个房间都放置一个单片机加发射模块,在客厅里放置一个单片机加接收模块,不知道多个发射模块...
发表于 07-08 07:45 32次 阅读
多个单片机用nRF24l01模块做发射,一个做接收,如何实现的?

概述51单片机芯片的不同引脚

首先我们来认识一下51 单片机芯片的引脚图,具体功能在下面介绍。
发表于 07-07 15:42 59次 阅读
概述51单片机芯片的不同引脚

手把手教程:各类数字电源设计实例(程序+原理图)

本资料分享了数字电源设计实例,包含程序、原理图等资料,手把手带你独立设计属于自己的数字电源。 ...
发表于 07-07 15:13 630次 阅读
手把手教程:各类数字电源设计实例(程序+原理图)

单片机C语言程序设计的详细资料

C语言目前己成为电子工程师进行单片机系统开发时的常用编程语言。用C语言来编写目标系统软件,会大大缩短....
发表于 07-07 14:48 50次 阅读
单片机C语言程序设计的详细资料

电流互感器采样电路的工作原理

(2)采用电阻采样的电流采样单元如下图(b)所示。电阻R320是串接在IGBT管e极与电源负极之间的....
发表于 07-07 14:38 153次 阅读
电流互感器采样电路的工作原理

RISC-V单片机玩转ESP8266 WIFI模块解析

程序主要包括如下4个功能模块:ESP01S初始化、串口处理、Event回调函数、事件处理;串口处理模....
发表于 07-07 09:26 89次 阅读
RISC-V单片机玩转ESP8266 WIFI模块解析

ES7P系列单片机指令集的资料免费下载

ES7P 系列单片机采用 79 条精简指令集系统。汇编指令为了方便程序设计者使用,指令名称大多是由指....
发表于 07-07 08:00 23次 阅读
ES7P系列单片机指令集的资料免费下载

TX-1C型单片机开发板的电路原理图免费下载

本文档的主要内容详细介绍的是TX-1C型单片机开发板的电路原理图免费下载。
发表于 07-07 08:00 46次 阅读
TX-1C型单片机开发板的电路原理图免费下载

单片机AT指令测试说明详细说明

一。参照用户完全手册上的AT+指令章节 用串口调试助手完成所有指令的测试 1.连接好相关模块和接口....
发表于 07-07 08:00 38次 阅读
单片机AT指令测试说明详细说明

单片机的组成和特点详细资料概述

单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。单....
发表于 07-06 18:11 42次 阅读
单片机的组成和特点详细资料概述