前言
工程師面對電路故障時如同醫師面對病患問診,醫師會先觀察病患的症狀進而判斷可能造成症狀的種種可能因素,最後是針對最可能引發症狀的病因對症下藥。例如感冒與腸病毒的初期症狀幾乎一樣,如果醫師誤將腸病毒以一般的小感冒處置則後果便可想而知了。同樣地工程師是否累積足夠的知識進行電路故障診斷,與上述的例子有異曲同工之處。了解電路故障的因果關係,方能與「頭痛醫腳」的嘗試錯誤(Try & Error)除錯法Say Good Bye!本文將探討數位電路故障的因果關係,並就電路除錯的步驟進行邏輯性的探討,以及有效地應用數位示波器進行除錯。
數位電路故障的因果關係[1]
數位電路故障的原因不外乎是來自雜訊的干擾或是時序出了問題(Timing issues)。我們以數位電路最常發生的突刺(Glitch)及矮波(Runt)現象來做分析。
@中標造成電路的誤動作或錯誤資料的突刺(Glitch)現象
造成突刺((Glitch)現象的雜訊種類如下:
串音(Crosstalk)
串音的主因來自於耦合容抗這個看不見的路徑所造成的雜訊干擾,小反射則是加重串音干擾的次因。耦合容抗的大小則視工作頻率及印刷電路板佈局(PCB Layout)而定。由於耦合電容是物理現象無法完全避免,唯一可降低耦合電容所造成的串音,是盡可能使用串列匯流排來取代並列匯流排,這也是目前不管高速(例如SATA、PCIe)或低速(例如I2C、SPI)的應用都使用串列匯流排的原因之一。
運用串列匯流排可降低串音的雜訊、縮小印刷電路板的使用面積、縮小連接器進而降低成本。小反射會造成波形前緣的振鈴現象,由於振鈴現象會導致信號高頻成分的振幅加大,進而使串音的現象更嚴重,避免反射的現象必須確保電路的阻抗是匹配的,阻抗方面的除錯則必須使用時域反射器(TDR)來除錯。
大的反射(Reflection)
大的反射能量則會直接造成突刺現象[2]。
另外造成突刺(Glitch)現象的時序問題則包括:
競態條件(Race Condition)的問題
我們常直覺地認為突刺現象的發生應該都是硬體的錯,其實不然。競態條件造成的突刺現象,可能是軟體或硬體時序的問題。硬體的時序問題通常來自傳導延遲(Propagation Delay),我們在數位邏輯設計所學的時序,通常先將傳導延遲視為理想(零)的情形下進行分析。實際上,電路行為會因為有閘間傳導延遲與時脈傳導延遲等情形,一旦忽略此時序問題,便可能直接造成突刺現象。
數位/類比轉換器的錯誤數位值
數位/類比轉換器的錯誤數位值也會直接造成突刺現象,圖一的波形可清楚看到這個現象。
《圖一 數位/類比轉換器的錯誤造成的突刺波形(Measured by Tektronix MSO4104)》 |
|
造成數位電路無法判斷的資料進而影響效能的矮波(Runt)現象
造成矮波(Runt)現象的雜訊種類僅有串音,先前已討論過串音的原因在此不加贅述。
至於造成矮波現象的時序問題則包括:
因設定/保持時間違規(Setup/Hold time violation)所造成的介穩態(Meta-stability)現象
D型正反器是所有暫存器的基本單元,任何數位電路都會應用暫存器,一旦量測工程師忽略此一關鍵的時序問題,便可能造成矮波的現象。如果是因為傳導延遲造成的設定/保持時間違規,量測時脈的數量不夠是不可靠的驗證方法,必須至少驗證4000~10000個時脈或應用示波器的觸發功能來檢查是否有此現象。
《圖三(a) 設定/保持時間的定義;(b)因設定/保持時間違規的介穩態現象[3]》 |
|
《圖四 運用矮波觸發(Runt Trigger)捕捉的介穩態波形(Measured by Tektronix MSO2024)》 |
|
因上升/下上時間(Rise/Fall time)過慢造成的非法位準(illegal level)
以圖五為例,在虛線的時序上原本應到1的位準(綠色的上升時間),因為上升時間過慢後(紅色)導致處於非0非1的非法位準,這種現象如果發生在由同一時脈驅動的同步數位電路,因為時脈上升時間變慢所造成的時序問題子稱為Clock Skew。
因果關係歸納
從上述的因果關係歸納出數位示波器必須具備的能力:
- ●雜訊的觀察必須仰賴示波器有足夠的系統頻寬,並做出正確的設定。
- ●脈波寬度觸發功能(Pulse width Trigger):觸發突刺現象,多半的示波器具有此觸發功能,但是這只是發現到問題,無法找到原因。
- ●矮波觸發功能(Runt Trigger):觸發矮波現象,一般的示波器不具備此觸發功能,就算具備此功能也只是發現到問題,無法找到原因。
- ●設定/保持時間違規觸發功能(Setup/Hold Time Trigger):此觸發功能才能快速發現矮波的原因。
- ●上升/下降時間或迴轉率觸發功能(Rise/Fall Time or Slew Rate Trigger):此觸發功能才能快速發現非法位準的原因。
- ●可能造成突刺或矮波的傳導延遲問題,必須應用高取樣率(如圖六所示的範例,此時序分析儀具有60.6ps的時序解析度)、多通道的時序分析儀(Timing Analyzer)進行除錯。數位電路的除錯單靠示波器無法完全發現問題原因,還必須搭配解析度夠高的時序分析儀方能直指問題的核心。
《圖六 時序分析儀的量測結果範例(Measured by Tektronix MSO4104)》 |
|
除錯三大步驟[4] —認知、發現、解決電路
認知問題(Aware)
電路故障現象是連續發生還是間歇發生?
一般電路除錯如果遇到功能性故障通常是顯而易見的,但是如果是性能上的問題(Performance Issues)或間歇性問題(Random Anomaly)就比較難以認知問題的存在,此時必須仰賴示波器具有適切的波形更新率。何謂適切的波形更新率?一般而言頻寬越高的示波器因觀察的信號速度不同,波形更新率應隨示波器頻寬越高而必須更快。
表一 波形更新率參照表
頻寬 |
應用 |
適切的波形更新率 |
100MHz-200MHz |
類比、嵌入式系統 |
3,500次/秒 以上 |
100MHz-300MHz |
數位 |
50,000次/秒 以上 |
350MHz-1GHz |
數位 |
50,000次/秒 以上 |
1GHz-3.5GHz |
數位 |
250,000次/秒 以上 |
4GHz-20GHz |
數位 |
300,000次/秒 以上 |
釐清軟體或硬體問題是嵌入式系統除錯首要關鍵!
釐清問題才能避免影響除錯的方向,文中提到造成突刺現象的競態條件,也可能是軟體的問題,此時示波器可以觀察實體層的信號完整性。而資料鏈路層(Data Link Layer)的解碼以往都必須仰賴人工解碼,運用新式示波器便能同時觀察這兩者的對應關係,並透過對於串列匯流排或並列匯流排的觸發便可迅速釐清。圖七則為示波器觸發I2C遺失確認(Missing Ack.)的除錯範例。
《圖七 因突刺引起的I2C遺失確認波形(Measured by Tektronix DPO4104)》 |
|
發現問題(Finding)
如何運用儀器直接且立即地發現問題?
透過更新率快速的數位示波器觀察到現象後,從波形樣貌的觀察選擇觸發條件直接觸發到問題的核心。看不到問題便無從選擇觸發條件,這是更新率的重要性,有足夠的更新率來認知問題卻不具備發現問題的觸發能力,兩者都讓除錯變成勞神費時的工作。應有的觸發能力可參考文中因果關係分析後的歸納結果。
是否能提供更有用的資訊以協助電路改善的決策?
除了觸發之外數位示波器還提供搜尋的功能來解決困難的時序量測。目前的搜尋技術有兩種:
這是依據搜尋的條件從量測值中標記符合條件的事件,此方式的優點是有多少種量測參數便有多少種搜尋條件;缺點是量測不準時便找不到。許多時序上的參數本身就有互斥性存在,例如上升時間量得準時頻率就量不到,頻率量測準確時上升時間便量不準,這種搜尋技術難以應付困難的時序問題(諸如上升/下降時間、設定/保持時間違規等)。
這種搜尋技術因為是硬體線路,所以不會因為垂直或水平檔位設定的問題造成搜尋不到的現象,基本上是觸發得到就找得到。圖八是以設定時間0ns、保持時間4ns的規格,針對1M記憶體中的4000個時脈與資料,搜尋出設定/保持時間違規的應用範例。以往驗證4000個時脈的違規現象必須花冗長的時間量測,如果使用量測作為搜尋技術的示波器,找不出這個問題。運用以觸發作為搜尋技術的示波器,此一範例的量測時間含儀器設定則僅需不到5分鐘的時間。
《圖八 運用搜尋功能在3999個時脈中找出52筆設定/保持時間違規之波形(Measured by Tektronix DPO4104)》 |
|
解決問題(Solving)
在執行改善後為確認問題消失,此階段會反覆進行幾次量測,以確認問題消失並儲存波形以便製作報告。在此階段示波器的操作介面是否簡易、以及是否具備在示波器上便可快速編寫長註解的功能,可加速工作的完成,以Linux或Windows為作業系統的示波器,因支援鍵盤等週邊,在這方面的效能都較私有專屬(Proprietary OS)的作業系統優異。在除錯三步驟中示波器所需具備的能力猶如鼎之三足,三足方能鼎立,不可偏廢。
結語:準確為量測之本
量測的誤差包含三種來源:分別是人為誤差、系統誤差及隨機誤差。隨機誤差為扣除人為誤差及系統誤差後不明原因的誤差故有其不可控制性,本文最後我們將重心放在可控制的人為誤差及系統誤差上。
人為誤差通常是三種誤差來源中影響最大的,所有儀器的規格都是在正確的設定下才能發揮出此儀器的最佳系統規格,我們在多年的教育訓練中發現,有65%以上的工程師是以不正確的方法進行量測。以示波器為例,用正確與不正確的方法量測同一待測物,量測值的差異可能超過20%,要消弭人為誤差最重要的還是要懂得正確量測的技術。
系統誤差在購買儀器做出抉擇的當下便決定了,同樣100MHz頻寬的示波器,垂直準確度有1.5%、3% 或5%誤差,當工程師選擇3%誤差的示波器後,本身系統誤差便決定了。系統誤差在購買儀器後,僅能從定期的校正來確認是否合乎出廠的標定規格,所以在選擇儀器時,必須仔細評估量測系統的誤差是否足以驗證工程師的待測物,畢竟準確為量測之本,功能性的設計及操作介面的難易都還在其次,切勿本末倒置。
君子務本,本立而道生,工程師的本便是準確量測,因為測試與量測涵蓋電子產品完整的生命週期,從先期設計驗證到售後維修除錯,無一不靠量測結果作為判斷準則,適切的系統以及正確的操作可讓量測結果更具可靠性;靠得住的量測結果才能為產品品質把關,畢竟量測是門嚴肅的科學,過程與結果都應錙銖必較且不容妥協。
(本文作者為Tektronix太克科技資深經銷業務經理)
<參考書目:
[1]嵌入式系統設計驗証與除錯測試認證課程講稿 [書籍]/作者:吳俊賢。台北市:太克科技股份有限公司,2008。
[2]微電子電路(下)Microelectronic Circuits Third edition [書籍]/作者:SedraS.Adel和SmithC.Kenneth,譯者:曹恆偉和林浩雄。台北市:台北圖書有限公司,1993,第十四章雙載子數位電路/訊號傳輸冊,頁1313。
[3]本圖出處為On Semiconductor安森美半導體。
[4]數位示波器原理與準確量測技巧技術研討會講稿 [書籍] /作者:吳俊賢。台北市:太克科技股份有限公司,2007。>