我是一個國防產業製造部門的電子工程師,我們為軍方打造通常被稱為「黑盒子」的裝置。在十五年前,我們曾為一家客戶生產了10個黑盒子,那家客戶在五年前又請我們幫忙再生產兩個,儘管已經過去十年了,我們還是得再次啟動該產品生產線。不過,第二批產品有些不同,而且無法通過測試過程;為了解開謎團,得由電路圖抽絲剝繭並追蹤訊號路徑。

我被分配到的任務就是為那兩個新生產的盒子進行合格測試。我們還留著第一批10個盒子專門打造的測試站,配備能檢查黑盒子所有功能的儀器;所需的測試包括初始測試(initial test)、老化測試(burn-in test),如果一切順利,就是最後的驗收測試(acceptance test)。只要那兩個新生產的黑盒子通過所有程序,就可以出貨給客戶。

在初始測試程序,那兩個盒子並沒有遭遇太多麻煩就通過了;老化測試則是要在一個有電熱器也有冷凍設備的測試艙進行溫度測試。客製化的測試站有長電纜透過測試艙牆上的舷窗與黑盒子連結,老化測試是由環境中的基準測試(baseline test)開始,然後將溫度降到-54°C,冷浸在那裡幾個小時,確保整個盒子都冷透了,然後測試站就會檢查盒子的所有功能。

接著我們將溫度提高到55°C,熱浸幾個小時確保整個盒子已經溫暖,然後測試站在對盒子的所有功能進行測試。做完熱測試,再把溫度降低到-55°C進行冷測試,反覆四次溫度循環,測試過程約需要花32個小時。

就在我試著為第一個盒子做老化測時時,它通過了熱測試基準線,但四次溫度循環的冷測試中,某塊板卡上的一顆MIL-STD-1553通訊標準晶片的內建自我測試(built-in self-test,BIST)功能都沒有通過冷測試。

MIL-STD-1553是軍用通訊標準,用以連結飛行器內的設備進行通訊,我們的測試站有一套設備,專門透過MIL-STD-1553線路測試盒子裡的相關功能電路板,以驗證系統是否正常運作;通訊的部份通過了冷測試,但通訊晶片本身的內建自我測試功能卻在冷測試中失效,這意味著該1553控制器晶片內部有故障。

我用另一個盒子中的相同板卡替換了那塊故障的,然後重新進行老化測試;但在四次溫度循環中,1553的BIST功能還是在冷測試中失效。我打電話問我們負責BIST設計的一位工程師,他告訴我,1553 BIST完全是晶片內部功能,只需要外部的一個乾淨時脈訊號──在此應用案例中為24MHz,來自位於盒子內另一塊板卡上的中央處理器;於是我又從另一個盒子取得處理器板卡替換、再次進行老化測試,結果還是一樣,1553 BIST功能在冷測試中失效。

這次我直接打電話給我老闆叫他來看看情況,我們決定在1553板卡的時脈目的地上加一條線拉到測試艙外,這樣就可以在冷測試時用示波器來監測。當線路配置好,我們在溫度基準線上擷取了時脈訊號的圖形,然後降低測試艙溫度、冷浸一段時間;幾個小時後我們開啟黑盒子執行1553 BIST功能──還是失效──並擷取時脈訊號圖形。

但比較前後兩個時脈訊號圖形,我們並沒有發現明顯的差異之處。於是我們又檢查了CPU板卡、主機板、1553板卡的電路圖,還畫了一個完整的24MHz時脈電路鏈簡圖,這時我老闆注意到有地方不太對勁。

我們的工程師原本做的設計,是當CPU板卡插到主機板時,主機板會把源自同一時脈訊號的兩個單獨緩衝輸出並聯;當一個緩衝訊號源不足以驅動支援多目的地電路之功能時,並聯的緩衝器晶片是可接受的作法,這在訊號移動緩慢環境中也許沒問題,但當時脈訊號達24MHz就可能會出狀況。每個並聯的緩衝器可能得同時開關,而可能一個突波(glitch)就會導致不良後果;不過我們的時脈訊號圖形並沒有看到任何突波就是了。

不過我們發現的,是(據推測)並聯的緩衝器只有驅動主機板上的一個緩衝器,於是我們決定從並聯電路暫時移除其中一個緩衝器;因為該板卡是用表面黏著技術,我們只需要將該緩衝器晶片的輸出導線解焊、將之從走線上移開,就能有效解除並聯的緩衝器配置。之後我們在示波器上檢查訊號並沒有發現任何異常,於是又進行了一次冷測試──嘿嘿,1553 BIST功能這次正常了!我們再次擷取時脈訊號圖形,同樣沒有發現跟以前有什麼不一樣。

顯然,原始板卡上的並聯時脈緩衝器晶片,在十年前第一批生產的十個黑盒子上並沒有造成問題,但不知道為何新板卡不喜歡這樣;我們從示波器的時脈訊號圖形找不到任何錯誤,不過只要讓緩衝器不再並聯,就能順利通過冷測試。確認了是並聯時脈訊號緩衝器晶片的問題之後,我們修改了黑盒子內的板卡,最終它們以出色表現通過了四次溫度循環的冷熱測試,問題順利解決!

編譯:Judith Cheng

(參考原文: It was a clock problem,by Mike Kornacker;本文作者是擁有超過三十年國防產業資歷的電子工程師)