近年來,我國引進(jìn)了大量先進(jìn)的儀器設(shè)備,這些設(shè)備系統(tǒng)龐大、結(jié)構(gòu)復(fù)雜、集成度高。經(jīng)過多年的使用,這些設(shè)備在維護(hù)修理、備件保障方面遇到了極大的困難。由于不是技術(shù)引進(jìn),幾乎沒有任何關(guān)于設(shè)備的技術(shù)資料,無法獲得電子備件的電路原理圖,所以對(duì)未知(無電路原理圖)電路板電路原理圖的測繪,對(duì)于電子備件尤其是軍工產(chǎn)品的反設(shè)計(jì)具有重要意義。 1 基本原理 要完成對(duì)未知電子備件的反設(shè)計(jì),必須首先獲知該備件的連線表,然后才能依據(jù)元器件數(shù)據(jù)庫的相關(guān)知識(shí)繪制出原電路原理圖,進(jìn)而通過技術(shù)分析和設(shè)計(jì)形成替代方案,實(shí)現(xiàn)反設(shè)計(jì)。對(duì)未知電路板的測繪所使用的常用辦法主要有如下兩種: (1)用萬用表的歐姆檔,對(duì)印制電路板上的各外露焊點(diǎn)和元器件管腳進(jìn)行連接測試,即首先測量第一個(gè)焊點(diǎn)(或管腳)和第二、第三個(gè)焊點(diǎn)(或管腳)之間的電阻,直至測量完所有焊點(diǎn)和管腳,從而得到第一個(gè)焊點(diǎn)或管腳在電路板上的連接圖。用同樣的方法,再測第二個(gè)焊點(diǎn)(或管腳)與第三、第四個(gè)焊點(diǎn)(或管腳)之間的電阻,直至測量完所有焊點(diǎn)管腳,得到第二個(gè)焊點(diǎn)或管腳在電路板上的連接圖。依次類推,可以得到電路板上各焊點(diǎn)和元器件管腳的連接關(guān)系(即網(wǎng)絡(luò)圖)。這種方法雖然能夠得到電路板的網(wǎng)絡(luò)圖,但十分繁瑣、效率低、差錯(cuò)率也高,因此應(yīng)開發(fā)自動(dòng)測繪設(shè)備。 (2)采用固定針床的辦法進(jìn)行測繪,對(duì)于每種電路板設(shè)計(jì)專門的測試針床,將專用針床與被測電路板的所有接點(diǎn)可靠接觸,在計(jì)算機(jī)測試軟件的控制下,通過專門的通道控制器可在較短時(shí)間內(nèi)完成測試茉莉花和,而且能完成對(duì)多層電路板的測繪。但這種方式要求為每種被測對(duì)象設(shè)計(jì)一個(gè)專門的針床和測試軟件,投放成本高、周期長。 綜合以上兩種方法的優(yōu)點(diǎn),根據(jù)常用的通路電阻測試法,設(shè)計(jì)了“柔性針床網(wǎng)絡(luò)圖測繪系統(tǒng)”,實(shí)現(xiàn)了靈活高效的測繪。連線表測試完成后,借助專建立的器件數(shù)據(jù)庫,通過人工干預(yù)的方式即可完成電路原理圖的繪制工作。 2 系統(tǒng)硬件設(shè)計(jì) 2.1 系統(tǒng)總體結(jié)構(gòu) 該系統(tǒng)由計(jì)算機(jī)、開關(guān)矩陣、柔性針床陣列和被測備件組成,其結(jié)構(gòu)見圖1。其中,柔性針床陣列通過柔性針與電路板上的所有節(jié)點(diǎn)可靠連接,開關(guān)矩陣實(shí)現(xiàn)通道的自動(dòng)切換或順序切換,柔性針床寬度僅能夠覆蓋一個(gè)電子芯片,這樣通過多個(gè)針床,即可覆蓋整個(gè)待測電路板。 測試時(shí)將電路板水平固定,在電路板上方和下方間距為2至3厘米處水平固定柔性針床,柔性針床的一面有密集分布的焊點(diǎn),這些焊點(diǎn)通過長短可變的彈性探針與被測電路板一面上的外露焊點(diǎn)或元器件管腳相連。柔性針床的另一面由連線將各焊點(diǎn)與開關(guān)矩陣相連,電路板的另一面也進(jìn)行相同的操作,從而將電路板的外露焊點(diǎn)或元器件管腳引到柔性針床上,通過計(jì)算機(jī)對(duì)開關(guān)矩陣進(jìn)行控制,實(shí)現(xiàn)柔性針床上各節(jié)點(diǎn)之間的連接關(guān)系的自動(dòng)測試。 2.2 測試電路結(jié)構(gòu)組成 本系統(tǒng)采用自定義的總線結(jié)構(gòu),各柔性針床通過總線進(jìn)行連接,由控制模塊控制相互間的通信。測試電路通過USB總線接口與主機(jī)進(jìn)行連接,如圖2所示。 其中,ADDR1和ADDR2為針床地址總線,控制模塊通過發(fā)送相應(yīng)的地址碼實(shí)現(xiàn)針床的尋址。由于在測試時(shí)需要在針床本身和兩個(gè)針床之間進(jìn)行測試,只設(shè)計(jì)一套地址總線不能同時(shí)尋址兩個(gè)針床,故設(shè)計(jì)了ADDR1和ADDR2兩套地址總線,可同時(shí)實(shí)現(xiàn)對(duì)兩個(gè)測試針床的尋址。 RD、WR為讀使能和寫使能總線,RD有效時(shí),允許測試針床向控制模塊發(fā)送數(shù)據(jù),WR有效時(shí),允許控制模塊發(fā)送指令到各個(gè)針床,實(shí)現(xiàn)控制功能。 AD1、AD2為針床控針地址總線。由于在測試時(shí),各個(gè)探針都需要和其它探針進(jìn)行遍歷測試,所以設(shè)計(jì)兩套地址總線用來同時(shí)尋址兩個(gè)不同的探針。AD1所尋址探針信號(hào)經(jīng)數(shù)據(jù)線D1引出,AD2所尋址探針信號(hào)經(jīng)數(shù)據(jù)線D2引出,通過測量D1與D2之間的電阻,就可以得到所對(duì)應(yīng)的電路板焊點(diǎn)之間的連接情況。 在本設(shè)計(jì)中,PC機(jī)通過USB接口完成對(duì)測試機(jī)的控制,而測試數(shù)據(jù)又通過USB接口送回PC機(jī)進(jìn)行分析,分析結(jié)果用于對(duì)UUT進(jìn)行故障診斷。 本系統(tǒng)采用Cypress公司的AN2131QC作為控制器芯片。圖3所示為AN2131QC的結(jié)構(gòu)簡化框圖,USB總線收發(fā)器與USB總線引腳D+、D-相連,串行接口引擎用來對(duì)串行數(shù)據(jù)進(jìn)行解碼和譯碼、錯(cuò)誤校驗(yàn)、位填充,并完成其它USB總線所需的信號(hào),最終實(shí)現(xiàn)與USB總線接口的數(shù)據(jù)傳輸。通用微處理器采用增強(qiáng)型8051,與標(biāo)準(zhǔn)8051相比較,執(zhí)行速度更快、功能更強(qiáng)大。在內(nèi)部使用RAM作為程序代碼和數(shù)據(jù)存儲(chǔ)器,因此8051序列具有“軟”特性,即:用戶可以自動(dòng)裝載代碼和數(shù)據(jù)來實(shí)現(xiàn)具體功能。 2.2.2 控制模塊 控制模塊用來完成各個(gè)針床的尋址、控制、測試以及數(shù)據(jù)的發(fā)送與接收功能。通過USB接口由主機(jī)下達(dá)控制命令及接收數(shù)據(jù)。控制模塊結(jié)構(gòu)如圖4所示。 系統(tǒng)控制芯片采用ALTERA公司的MAX7000系列可編程邏輯器件(CPLD),用來接收主機(jī)發(fā)送的控制信號(hào),對(duì)測試電路進(jìn)行控制;接收測試數(shù)據(jù)并上傳到主機(jī)。當(dāng)WR有效時(shí),接收控制指令;當(dāng)RD有效時(shí),接收測試數(shù)據(jù)。在測試電路自定義總線上共有五種測試信號(hào),所以采用三根控制信號(hào)線A、B、C,經(jīng)譯碼即可輸出不同的控制信號(hào)。電阻測試電路也位于控制模塊中,負(fù)責(zé)對(duì)經(jīng)D1和D2引出的電路板兩個(gè)焊點(diǎn)(或管腳)進(jìn)行測試,測試結(jié)果經(jīng)A/D變換后由CPLD送到主機(jī)中。 2.2.3 測試針床 測試針床用來使用探針連接電路板各個(gè)焊點(diǎn)或管腳,并使用開關(guān)矩陣進(jìn)行各個(gè)探針之間連接的自動(dòng)順序切換,從而實(shí)現(xiàn)各個(gè)焊點(diǎn)之間的互連測試。針床電路如圖5所示。 開關(guān)矩陣采用MAX7000系列可編程邏輯器件實(shí)現(xiàn),用來連接針床上所有探針,接收控制信號(hào)并將所尋址探針信號(hào)輸出。 3 系統(tǒng)軟件設(shè)計(jì) 系統(tǒng)軟件運(yùn)行于PC機(jī)平臺(tái)上,通過USB總線對(duì)測試電路進(jìn)行控制并接收測試電路測試數(shù)據(jù),根據(jù)接收到的數(shù)據(jù)形成所測電路板電路連線表。現(xiàn)主要分析與電路測繪有關(guān)的測試電路控制程序: (1)首先利用ADDR1尋址測試基準(zhǔn)針床,每個(gè)針床都有特定地址碼,如發(fā)送ADDR1=00000001,表示選中1號(hào)測試針床,以此為基準(zhǔn)測試針床來對(duì)其它針床進(jìn)行測試。 (2)號(hào)測試針床利用AD1總線對(duì)其上所有探針進(jìn)行尋址,AD1總線尋址該針床的基準(zhǔn)測試點(diǎn),如發(fā)送AD1=00000001,表示尋址到1號(hào)探針,即1號(hào)探針連接D1端。 (3)以ADDR1所尋址針床為基準(zhǔn),利用ADDR2尋址所有針床,所尋址的針床利用AD2總線對(duì)其上探針進(jìn)行尋址。 (4)以AD1總線所尋址探針為基準(zhǔn),對(duì)AD2總線所尋址探針進(jìn)行遍歷測試。 程序偽代碼如下: for(ADDR1=1 to 20) //假定共有20個(gè)測試針床,選定基準(zhǔn)測試針床 { for(AD1= 1 to 256) //假定每個(gè)針床上有256個(gè)探針和焊/點(diǎn)相連,選定基準(zhǔn)測試焊點(diǎn) { for(ADDR2=1 to 20) //依次尋址所有針床 { for(AD2= 1 to 256) //依次尋址測試針床上所有探針(焊點(diǎn)) { //測試電路測試函數(shù) … } } } } 通過以上測試程序,即可實(shí)現(xiàn)每個(gè)探針(焊點(diǎn))和其它所有探針(焊點(diǎn))的遍歷測試,從而獲取電路板上每個(gè)焊點(diǎn)的連接情況。 通過電路板上元器件型號(hào)知識(shí),利用此套測繪系統(tǒng)測繪的電路板連線表,結(jié)合相應(yīng)PCB設(shè)計(jì)軟件及人工干預(yù),在某個(gè)引進(jìn)裝備上實(shí)現(xiàn)了未知電路板的測繪工作,得到了其電路原理圖,為下一步的反設(shè)計(jì)工作奠定了基礎(chǔ)。由于涉及知道產(chǎn)權(quán)問題,該系統(tǒng)僅應(yīng)用于特殊領(lǐng)域電子設(shè)備。 |