系統組成和診斷模式
為實現故障自動診斷,通常需要兩個系統:一是數據生成系統,即預先在宿主機上按被診斷的數字網路建立故障模型,計算測試數據,編制故障字典;二是診斷控制系統,又稱測試系統,由掃入掃出部件、診斷計算機或診斷處理部件和診斷程式組成。掃入部件用於向被測網路載入測試碼,掃出部件用於回收被測網路的輸出回響;診斷計算機或處理部件存放診斷數據和診斷程式,並通過執行診斷程式控制數據的掃入掃出,按故障字典分析和定位故障,最後給出診斷報告。
用一台計算機(一般是高可靠的小型機或微型機)作為診斷機對另一台計算機實施故障診斷,稱作他診斷。套用通信技術,從一地對另一地的計算機實施他診斷稱為遠程診斷。在被診斷的計算機內設定叫作“硬核”的相當獨立的診斷處理部件實施故障診斷,稱為自診斷。診斷處理部件一般有較強的容錯能力。在微程式控制的計算機中,以原有的微指令和微操作為基礎,添加少量硬體,使用特殊的微程式來實施故障診斷,稱為微診斷。在多機系統的系統級診斷中。多台計算機(好機和壞機)之間用互診斷模式實施診斷。
數據生成技術 計算機診斷離不開測試數據和故障定位數據。隨著數字網路的規模越來越大,要求數據生成技術既能使診斷數據有較高的測試效率,又能儘量減少生成方法的計算複雜性。
測試生成算法

按故障模型對給定網路生成測試碼的方法。布爾差分法和D算法是最著名的方法,它們都屬確定性算法,即針對固定型故障模型中某一特定故障產生測試碼。


布爾差分法是一種代數方法。實現布爾函式 f( X)= f( x1,…, xn)的數字網路,記為(圖1) 為檢測 xi固定0的故障,網路的正常輸出值應與相應故障下的輸出值存在差異,即布爾式(圖2)應取值1。式中嘰表示邏輯異或。展開 f( X),得(圖3)因子 fi(1)嘰 fi(0)稱為 f關於 xi的布爾差分,記作d f/d xi,它是 xi的變化傳播到網路輸出的布爾表示。於是, xi固定0的測試集是如下方程的解(圖4)

同樣可導出 xi固定 1的測試方程。這一原理可以推廣到時序電路和多故障模型。
D算法是一種試探法。網路的引線值除0,1和表示任意值的 x 外,還引進 d 和 d 兩個出錯信號值。 d表示引線在正常網路中取1,故障網路中取0,而 d 反之。D算法的實質是從故障引線出發,先沿著能反映出錯情況的各條單通路或多通路途徑試探,把出錯信號值逐級傳播到網路的某一輸出線(稱為D驅趕);再從網路輸出向輸入逐級檢驗D驅趕時所確定的值能否與元件功能一致(稱為一致性操作),直到最終得到一組與D驅趕時的賦值相容的網路輸入值。D算法採用“立方”運算,特別適用於計算機,是套用最廣泛的測試生成算法,並被推廣到時序電路和多故障模型。
在D算法基礎上發展起來的九值算法,是把引線值擴充到九個值,每個值都包含正常網路和故障網路的引線狀態(0,1或 x),它更適於時序電路的測試生成。當扇出線數為 n時,向前驅趕的最大試探次數由D算法的2n-1次減少到n次。為提高試探的成功率,還有許多改進的D算法,如加權法、代價分析法和智慧型試探法等。 除確定性算法外,還有覆蓋全部故障的全電路測試生成法和選用某些隨機數作測試碼的蒙特卡洛法。 在整機和部件的測試生成中,除改進確定性算法以適應元件高級化的網路模型外,還有基於硬體描述語言,藉助圖論工具的功能性測試生成法。在系統級診斷中,用好機和壞機之間互診斷的測試回響模型來代替故障模型,從系統圖生成測試。
故障模擬技術
故障模擬的主要作用是按給定的測試碼對給定的網路模型計算各種故障的輸出回響,以生成故障定位用的故障字典。 平行故障模擬是套用較廣泛的一種門級故障模擬方法。若故障模型含m種故障,則對每個測試碼需要模擬的網路有正常網路和各種故障網路共m+1個。針對各網路的不同點僅在故障元件,且引線值通常只用計算機的1~2位表示的特點,平行法以計算機單元的某一位對應一個網路,在字長為w的計算機上,一次便可平行地模擬w個網路。 演繹模擬一遍可以模擬全部故障。基本思想是先算出各引線的正常值,再從網路輸入開始,根據各元件的功能和正常的輸入輸出值,逐級遞推出各元件的故障表。通常,演繹模擬速度很快,但容量較大。 同時模擬是從演繹模擬發展而來的。元件故障表加進故障回響等內容而成為超級故障表,使多個測試碼模擬節省很多重複操作。這種方法還適用於功能級故障模擬。 可測性設計 從易於測試出發,增設必要的控制點(輸入)和觀察點(輸出),把大型系統的診斷化為若干小系統的診斷;把時序網路的診斷化為若干組合網路的診斷。 增加最少的控制點和觀察點,使網路分成k個同規模的子網路,這屬於測試點布局問題,是可測性設計的重要研究課題。 在時序網路的診斷中,對存儲元件進行控制和觀察具有重要意義,但不能為此而增加大量外部引線。較為通用的重要設計方法是使用附加的移位暫存器,即把所有按規則設計的存儲元件連成移位暫存器鏈,只需兩條外部引線就能實現鏈中所有內部狀態的控制和觀察。