隨著信息社會的到來,人們對計算機的需求越來越大,主板診斷卡——POST卡(Power on Self Test,加電自檢)就在這種情況下應(yīng)運而生,其工作原理是在PC機不能引導(dǎo)操作系統(tǒng)、黑屏、喇叭不響時,將本卡插入擴充槽內(nèi),根據(jù)卡上顯示的代碼,參照計算機所屬的BIOS種類,再通過主板診斷卡的代碼含義速查表查出該代碼所表示的故障的原因和部位。
1 PCI總線及其工作原理
PCI總線是由Intel公司1991年推出的一種高性能的32位或64位局部總線[1]。他是專為高度集成的外圍部件、擴充插板和處理器/存儲器系統(tǒng)而設(shè)計的互聯(lián)機制。PCI局部總線與處理器無關(guān),不受制于系統(tǒng)所使用的微處理器的種類,不同的總線之間可以通過相應(yīng)的橋接芯片來轉(zhuǎn)換。
根據(jù)PCI總線協(xié)議,PCI總線上所有的數(shù)據(jù)基本上是由FRMAE#,IRDY#,TRDY#三條信號線控制的。PCI總線基本寫操作時序如圖1所示,各信號遵循如下規(guī)則:
(1) FRAME#和IRDY#定義了總線的忙/閑狀態(tài)。當(dāng)其中一個有效時,總線是忙的;兩個都無效時,總線處于空閑狀態(tài)。
(2) 一旦FRAME#信號無效時,在同一傳輸期間不能重新設(shè)置。
(3) FRAME#的無效,必須以IRDY#有效為前提。
(4) 一旦主設(shè)備設(shè)置了IRDY#信號,直到當(dāng)前資料期結(jié)束為止,主設(shè)備不能改變IRDY#和FRAME#信號的狀態(tài)。
(5) 在傳輸過程中,IRDY#和TRDY#同時有效表明這是一個資料的傳輸。
(6) 一旦FRAME#有效,地址期開始有效,AD[31:0]傳輸一個有效地址,C/BE[3:0]#線上傳輸總線命令。
(7) 第二個時鐘里,AD[31:0]開始傳送數(shù)據(jù),C/BE[3:0]#上的信息是提出資料線上哪些字節(jié)是有效的,從數(shù)據(jù)的開始一直到傳輸?shù)耐瓿桑珻/BE#始終保持有效狀態(tài)。
2 主板診斷卡設(shè)計
本設(shè)計利用一塊PLD對PCL局部總線進(jìn)行控制并提取數(shù)據(jù)達(dá)到終解譯。PLD專用接口芯片選擇Xilinx公司XC9500系列CPLD中XC952288XL PQ208零件。該零件采用系統(tǒng)內(nèi)編程——ISP技術(shù),支持?jǐn)U充的IEEE1149.1邊界掃描標(biāo)準(zhǔn),著重滿足系統(tǒng)內(nèi)編程的要求,增強的引腳鎖定能力可以避免重做昂貴的印制板,擴充的JTAG指令集允許編程模式和系統(tǒng)內(nèi)診斷的各種控制。器件編程僅用一根下載電纜通過下載軟件和器件的編程接口相連即可實現(xiàn),提供10 000次以上編程/擦除周期,宏單元數(shù)有288個。
本設(shè)計主要由以下3部分組成:數(shù)據(jù)接口(金手指)部分、PLD部分和顯示(LED燈)部分
2.1 數(shù)據(jù)接口(金手指)部分
該部分的主要作用是通過PCI插槽將DUBUG卡與計算機南橋相連,通過PLD的控制,接收計算機南橋發(fā)出的偵測信息。本設(shè)計中線路比較簡單,除對應(yīng)連接相關(guān)的信號線外,還包括電源線和地線的正確連接。根據(jù)PCI協(xié)議的要求,該卡的設(shè)計中采用了5 V和3.3 V兩種電源來使線路板上各個部分正常工作。在兩種電源上都連接了幾個不同阻值的電容來濾去多余的干擾信號以及雜波。
2.2 PLD部分
該部分是整個設(shè)計的核心和靈魂,主要負(fù)責(zé)數(shù)據(jù)的采集、轉(zhuǎn)換、存儲、處理和I/O等功能,他把從金手指處得到的數(shù)據(jù)經(jīng)過接收、鎖存(分頻、選擇)、譯碼,終送至LED顯示。其程序流程圖如圖2所示。
2.3 顯示(LED燈)部分
顯示部分分為集成在PLD內(nèi)部的處理部分和外圍線路部分。
2.3.1 內(nèi)部處理部分
內(nèi)部處理結(jié)構(gòu)如圖3所示,他的輸入信號是由dl,dh以及flkhz和reset組成,輸出信號有A1~G1及ds0和dsl,用來驅(qū)動2個7段LED數(shù)碼顯示管。Flkhz是分頻后的時間頻率,他的變化控制di在0,1之間循環(huán)變化,從而經(jīng)過譯碼后產(chǎn)生一個矢量信號ds選通2位數(shù)碼管。與此同時,di還作為數(shù)據(jù)選擇電路即位選擇器digit.sel的選擇信號,選擇對應(yīng)的dl和dh,并把他經(jīng)過段譯碼器將數(shù)據(jù)送至7段數(shù)碼管的7個段上,從而顯示對應(yīng)的數(shù)據(jù)信息。在這個過程中.當(dāng)dj為0時,位選擇器digit.sel把dl的信號賦予I,同時位譯碼器使ds0為高電位;當(dāng)di為1時,位選擇器digit.sel把dh的信號賦予I,同時位譯碼器使dsl為高電位。
由上述說明可知,dl和dh對應(yīng)的信息分別經(jīng)譯碼后循環(huán)顯示在個數(shù)碼管和第二個數(shù)碼管上。
2.3.2 外圍線路部分
由圖4可知,控制信號ds通過一個NPN三極管和一個PNP三極管與數(shù)碼管顯示燈相連,而輸出信號矢量led則先連接到一個NPN三極管的基極后,再使放大信號經(jīng)過一個上位電阻連接到數(shù)碼管顯示燈上。
在這個過程中,由于對NPN管當(dāng)基極電位比發(fā)射極和集電極低時,三極管處于截止?fàn)顟B(tài)。所以只有當(dāng)ds為1時,三極管才處于激發(fā)狀態(tài),和上述內(nèi)部處理結(jié)構(gòu)部分分析一致。對于矢量信號led,同理分析可知,只有當(dāng)其為1時,才可以使數(shù)碼管的單元燈亮。
3 軟件仿真及信號測量
采用ISE4.1I和Modelsim進(jìn)行程序的輸入以及仿真,圖5為80PORT以及WRITE部分仿真結(jié)果。
對仿真結(jié)果分析可知,該板卡符合時序要求,可以下載到PLD芯片中并焊制線路板。線路板完成后,用示波器對其進(jìn)行信號測量,結(jié)果如圖6所示。
經(jīng)實際應(yīng)用,可以通過板卡上的LED顯示的代碼來迅速查出主板故障的原因和部位。
4 結(jié) 語
經(jīng)過仿真分析及實際驗證,該主板診斷卡的功能極其強大,報告錯誤的能力遠(yuǎn)遠(yuǎn)超過BIOS自身通過鈴聲報錯的能力,解決了普通雙口卡在P4主板上出現(xiàn)錯碼、假碼的現(xiàn)象,并補充了大量的POST代碼,在使用中,插錯、插反都不會損壞任何元件,既適合電腦愛好者個人使用,也適合于主板設(shè)計、維修等行業(yè)的工程師使用。