作為電子研發(fā)的老兵,面對各種紛繁復(fù)雜的問題,加班加點是家常便飯,絞盡腦汁甚至抓狂是常態(tài)。經(jīng)常發(fā)現(xiàn)當(dāng)項目進展到你想砸掉設(shè)備的時候,再堅持一步你就成功了。但是有一個項目卻因為堅持,到現(xiàn)在每每想起我都心痛郁悶不已。
2006年,我在上海中磐信息科技有限公司從事動態(tài)令牌的研發(fā)生產(chǎn)工作。公司是一家純軟件公司,在我入職前沒有硬件部門。作為硬件部經(jīng)理,負責(zé)創(chuàng)建團隊、樣機研發(fā)和后續(xù)大規(guī)模生產(chǎn)。工作壓力很大,但是工作氛圍很好,同事們相處很愉快。
當(dāng)時這個動態(tài)令牌的技術(shù)正在快速在各行業(yè)推廣應(yīng)用,開始主要是用于保障跨國企業(yè)的網(wǎng)絡(luò)登陸安全,2002年就是通過NS的FAE首次接觸到這個東西,該技術(shù)的先行者是RSA,當(dāng)時NS就是RSA定制的。后來隨著銀行的賬戶密碼經(jīng)常被盜,各大銀行也開始推廣動態(tài)密碼器;那幾年網(wǎng)絡(luò)游戲超級火爆,隨之而來的是游戲賬號安全問題,并因盜號而發(fā)生過幾起比較轟動的訴訟,網(wǎng)游公司開始陸續(xù)采用動態(tài)令牌來保障游戲賬號的安全。
當(dāng)時國內(nèi)從事動態(tài)密碼器研發(fā)生產(chǎn)的公司并不多,而能擁有自主知識產(chǎn)權(quán)的公司更少。公司創(chuàng)始人是劍橋大學(xué)畢業(yè)歸國的海歸,擁有基于SHA256算法的動態(tài)密碼的核心專利技術(shù),而SHA256在當(dāng)時比其他的公司的技術(shù)整整領(lǐng)先一代;公司的投資人是美國IDG和5173。
我當(dāng)時的主要工作就是采用合適的單片機,實現(xiàn)基于SHA256算法的動態(tài)密碼器。SHA256算法相當(dāng)復(fù)雜,有大量的矩陣和回歸迭代運算,對于單片機實現(xiàn)基于時間的動態(tài)令牌來說存在以下難點:
1、 較大RAM空間;
2、 高速計算能力;
3、 超低功耗;
4、 超高可靠性;
5、 超低價格;
由于以上各項之間存在沖突,同時滿足這些相互矛盾的需求其實非常困難。
我先在PC機上用C語言編程實現(xiàn)算法,仿真后發(fā)現(xiàn)RAM的需求最精簡最少也超過2KB,如果移植到單片機上加上各種初始化和控制代碼,RAM的需求接近3KB,2006年的時候能有3KB的RAM的單片機極為稀少而且價格極高。不得已,我選擇用匯編語言編程,綜合運用很多編程技巧,如采用程序空間換RAM空間,多次迭代的RAM動態(tài)分配回收等,最終花費了一周時間,將RAM需求降到409Byte,因當(dāng)時已經(jīng)有不少單片機的RAM空間達到512Byte,徹底解決了RAM空間不足的問題。
硬件上采用激光焊接鋰電池以及晶振匹配和整體固定,軟件上由于采用的是匯編語言,計算效率和可靠性遠超C語言編程;采用了深度睡眠等技術(shù)平均功耗降到3.4uA,一塊CR2032的電池可以工作超過3年,達到了超低功耗的要求。
當(dāng)時有三款滿足技術(shù)要求的單片機,分別是TI和***某公司的8位機、富士通的16位機,由于超低價格的要求,我們選擇了***的單片機。
很快樣機出來了,功能和性能測試OK,1K的樣品生產(chǎn)出來了功能和性能都OK,但是經(jīng)過一段時間后發(fā)現(xiàn)存在一定比例的樣機功耗很大,電池很快就沒有電了。拆開測試,未見異常,換裝電池后功能正常;期間懷疑過晶振停振、電池松動、靜電干擾、電路板異常、軟件跑飛、芯片不良等;多次請供應(yīng)商及代理商的技術(shù)人員一起分析,甚至寄實物到***請原廠分析,結(jié)論均是未見異常。
在測試分析和不懈堅持中,我又分別將代碼成功移植到TI和富士通的單片機,但是這時國內(nèi)做動態(tài)密碼器的廠商開始多起來,他們采用的都是上一代簡單的加密算法,雖然安全性不夠,但對單片機要求很低,而且外觀上看不出任何差異。在成本的壓力之下,新的單片機導(dǎo)入工作在公司層面一直未能真正進行,生產(chǎn)訂單開始源源不斷,又掩膜定制50K的Dice片。
堅持了很久,通過對500套樣品的排查,終于發(fā)現(xiàn)是因為該單片機的內(nèi)在BUG,P64管腳IO口寄存器配置會在休眠期間發(fā)生反轉(zhuǎn),高低電平一旦反轉(zhuǎn)后就開始快速放電。
問題查清了,但是對公司來說損失已經(jīng)非常巨大,包括客戶流失和口碑等。這是我工作以來遇到的最難復(fù)現(xiàn)、最難模擬、最難分析的問題,也是對公司造成影響最巨大的問題。
教訓(xùn)主要有以下幾點:
1、樣機開發(fā)階段過于考慮低成本方案往往會導(dǎo)致災(zāi)難性后果,優(yōu)先選擇口碑好的大品牌產(chǎn)品完成技術(shù)驗證和生產(chǎn)銷售,然后逐步降本;
2、如果硬件問題沒有得到解決,一段時間后還沒有進展需要及時止損,切換不同方案,這時一味的堅持往往付出更加慘痛的代價;
3、表面上的硬件問題有時其實是軟件配置導(dǎo)致,但深層次原因可能還是硬件不良,遇到這種極難復(fù)現(xiàn)的問題尤其要當(dāng)心;
4、不要迷信芯片公司,所謂原廠的技術(shù)支持其實是有限的,所謂的分析報告有時無非是一個免責(zé)的托詞,而且這種深層次的問題很難追責(zé)。
-
單片機
+關(guān)注
關(guān)注
6026文章
44456瀏覽量
631027 -
C語言
+關(guān)注
關(guān)注
180文章
7581瀏覽量
135603
原文標(biāo)題:20年經(jīng)驗的電子總工程師回憶實錄之低成本方案導(dǎo)致的災(zāi)難性后果
文章出處:【微信號:eedesigner,微信公眾號:eeDesigner】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論