基于FPGA的PCB測試機(jī)硬件電路設(shè)計(jì)
FPGA 程序框架
本文引用地址:http://butianyuan.cn/article/83209.htmFPGA 片內(nèi)程序是整個測試系統(tǒng)正確運(yùn)行的關(guān)鍵。 由自頂向下的FPGA 設(shè)計(jì)原則,將系統(tǒng)分為5個獨(dú)立的模塊, 即通信模塊(ISA) 、測試模塊(TEST) 、AD/DA 模塊、解碼模塊(DECODER) 、RAM 控制模塊(RAMCTL)。
ISA 模塊:系統(tǒng)通信及控制模塊,完成與上位機(jī)通信、命令字解釋、控制信號的產(chǎn)生等。系統(tǒng)根據(jù)上位機(jī)傳送的導(dǎo)通電阻、絕緣電壓等參數(shù)啟動ADDA模塊完成參考電壓的輸出;根據(jù)測試命令啟動測試模塊完成測試過程。數(shù)據(jù)在多個同步運(yùn)行的同步狀態(tài)機(jī)間傳送,較難控制的是多進(jìn)程間的數(shù)據(jù)通信與數(shù)據(jù)同步。
RAM控制模塊:在測試開始前,上位機(jī)將測試點(diǎn)的信息通過總線傳送至ISA模塊, ISA 模塊再將其存放到片內(nèi)RAM中;測試完成后,將RAM中的測試結(jié)果傳送到上位機(jī)。 在測試時(shí)測試模塊通過讀RAM中測試點(diǎn)的信息來打開相應(yīng)測試開關(guān),再將測試結(jié)果保存到RAM 中。 這樣兩個模塊都要求讀寫RAM 以實(shí)現(xiàn)兩個模塊之間的數(shù)據(jù)共享,這就要求有一控制信號將兩組讀寫信號線分別與RAM模塊相連接,RAM控制模塊即完成此功能。測試模塊(TEST):雖然測試過程有多種,如開關(guān)卡自檢、導(dǎo)通測試、絕緣測試等,但測試過程卻是相同的,即測試掃描。 測試的工作過程是:加比較電路參考電壓→打開待測點(diǎn)開關(guān)→延時(shí)→讀比較器結(jié)果→測試另一組測試點(diǎn)。 本模塊是按照不同的操作碼,進(jìn)入不同的測試過程。 測試結(jié)果與測試點(diǎn)編號一起組成13 位數(shù)據(jù)保存到RAM 中,并將原來測試點(diǎn)的編號信息覆蓋。
解碼模塊(DECODER):這一模塊掛在測試模塊(TEST) 之后,它完成開關(guān)編號到實(shí)際電路的映射。 由于測試針陣形式不同、譯碼電路與控制電路的硬件設(shè)計(jì)不同,上級模塊輸出的測試開關(guān)信息并不能直接作為輸出控制測試開關(guān)電路。 解碼模塊完成這兩者間的轉(zhuǎn)換。
AD/DA 模塊(AD/DA):設(shè)計(jì)SPI 總線接口對A/D 及D/A 器件操作,模塊以允許(adenable , daenable) 信號啟動,以busy信號作為轉(zhuǎn)換完成標(biāo)志信號,將A/D及D/A操作相對其它模塊進(jìn)行封裝。系統(tǒng)的每個模塊采用Verilog硬件描述語言編寫,采用多個多層嵌套的同步狀態(tài)機(jī)(FSM)完成整個系統(tǒng)的邏輯功能;每一模塊應(yīng)用仿真工具M(jìn)odelsim完成模塊的功能仿真,系統(tǒng)完成功能測試后;利用Altera 綜合布線工具QuartusII完成系統(tǒng)后仿真及綜合、布線、下載;充分利用Altera公司免費(fèi)提供的IPcore 對程序模塊進(jìn)行優(yōu)化;頂層設(shè)計(jì)采用方框圖輸入方式,模塊間的數(shù)據(jù)流由方框圖更直觀地表現(xiàn)出來。
結(jié)束語
基于FPGA的PCB測試機(jī)的硬件控制系統(tǒng),提高了PCB測試機(jī)的測試速度、簡化電路的設(shè)計(jì)。此外由于FPGA的可重構(gòu)特性,為系統(tǒng)的軟件算法以及硬件結(jié)構(gòu)的進(jìn)一步優(yōu)化升級打下了良好的基礎(chǔ),具有良好的應(yīng)用前景。
評論