讓項(xiàng)目陷入僵局的阻抗匹配bug
2005年五一期間我們解決了ADSL局端及終端設(shè)備的頻帶干擾問題,初步測試下來功能正常,性能滿足要求,終于可以交付到測試部門進(jìn)行完整的測試。不出意料的,新問題來了。
測試工程師測試下來發(fā)現(xiàn)一個(gè)問題,設(shè)備正常工作一段時(shí)間后會(huì)莫名奇妙的自動(dòng)重啟,從開機(jī)到重啟的時(shí)間每次不固定,而且手上的5臺(tái)樣機(jī)都存在同一問題。
接到測試報(bào)告后,軟硬件團(tuán)隊(duì)開始聯(lián)手進(jìn)行系統(tǒng)調(diào)試。有系統(tǒng)開發(fā)經(jīng)驗(yàn)的都知道,這個(gè)問題對(duì)工程師調(diào)試來說喜憂參半,喜的是這是一個(gè)必現(xiàn)的bug,相對(duì)來說問題比較容易復(fù)現(xiàn)和定位,問題是否得到解決比較好驗(yàn)證;憂的是這個(gè)問題出現(xiàn)的時(shí)間長短是隨機(jī)的,功能都已實(shí)現(xiàn),性能也達(dá)到要求,這種情況下的問題往往不簡單,需要調(diào)試的工作量很大。
這個(gè)問題對(duì)于硬件部分比較常見的問題一般有電源設(shè)計(jì)不良、復(fù)位電路、晶振電路、過熱保護(hù)、元器件不良、生產(chǎn)制程不良等;軟件部分可能存在的問題有系統(tǒng)配置不正確、異常流程處理不當(dāng)、內(nèi)部看門狗不正確觸發(fā)等。
硬件團(tuán)隊(duì)首先排查了可能存在制程問題,通過目視檢查和X-ray照射,未發(fā)現(xiàn)明顯異常;全面監(jiān)測復(fù)位、供電和晶振等,均未發(fā)現(xiàn)自動(dòng)重啟時(shí)存在異常狀態(tài),通過對(duì)電路板全面的熱監(jiān)測也未發(fā)現(xiàn)存在過熱區(qū)域;軟件團(tuán)隊(duì)也對(duì)可能存在的問題逐一排除,未發(fā)現(xiàn)任何異常。調(diào)試陷入僵局,項(xiàng)目一時(shí)無法進(jìn)展。
沒辦法,軟硬件團(tuán)隊(duì)再次回到對(duì)故障現(xiàn)象的分析梳理,重新擬定測試方案,尋找重啟時(shí)的共同點(diǎn)。經(jīng)常大量的測試,終于發(fā)現(xiàn)當(dāng)系統(tǒng)傳輸大容量數(shù)據(jù)時(shí)出現(xiàn)重啟概率要大很多,而那種很輕負(fù)載狀態(tài)的設(shè)備重啟幾率較小,時(shí)間間距也會(huì)拉開更大。找到規(guī)律不代表就能找到確切問題點(diǎn),甚至更加讓人迷茫。
當(dāng)所有的分析測試都沒有結(jié)果時(shí),我們重新回到對(duì)生產(chǎn)制程的分析,由于主控芯片和MAC芯片都是BGA封裝,電路板本身是10層板,大部分走線都是走在內(nèi)層,對(duì)我們的排查來說困難重重。經(jīng)過不懈努力,發(fā)現(xiàn)主控芯片到MAC的16根地址線因走線和貼裝工藝存在瑕疵而有虛短路現(xiàn)象,其中一根和地之間的阻抗由正常的10兆歐左右降為1兆歐左右,由于檢查BGA貼裝質(zhì)量的X-ray主要檢查是否存在短路或斷路問題,對(duì)于虛短是很難檢查出來的。由于該地址線并未短路,在初始化或低速率傳輸數(shù)據(jù)時(shí)問題不大,但當(dāng)大容量數(shù)據(jù)高速傳輸時(shí),地址線之間的差異就會(huì)顯現(xiàn)出來,導(dǎo)致程序運(yùn)行異常而觸發(fā)內(nèi)部看門狗,從現(xiàn)象上看就是系統(tǒng)自動(dòng)重啟。
經(jīng)驗(yàn)教訓(xùn):
1、 不是能夠正常工作了硬件就萬事大吉,還要關(guān)注壓力測試和長時(shí)間測試;
2、 阻抗匹配很重要,對(duì)于很多問題,數(shù)據(jù)線和地址線等對(duì)地阻抗測試會(huì)告訴我們很多信息;
3、 嵌入式系統(tǒng)的調(diào)試一定要有系統(tǒng)概念,軟硬件及測試團(tuán)隊(duì)的通力協(xié)作是快速發(fā)現(xiàn)問題、定位問題和解決問題的前提和保證,很多現(xiàn)象是多種因素引起的,只有經(jīng)多細(xì)致分析,大膽推測、反復(fù)驗(yàn)證才能解決問題。