<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于FPGA的PCB測試機硬件電路設計研究

基于FPGA的PCB測試機硬件電路設計研究

作者: 時(shí)間:2010-01-02 來(lái)源:網(wǎng)絡(luò ) 收藏

  由于這兩種器件都是SPI接口,可將這兩器件連接至同一SPI 總線(xiàn),通過(guò)不同的片選信號對不同的器件操作。 由于SPI接口協(xié)議復雜,而且從圖3 可以看出,這兩種器件的時(shí)序并沒(méi)有用到全部的SPI接口時(shí)序。為了實(shí)現符合以上邏輯的時(shí)序,減少標準SPI 接口IP 核對資源的浪費, 設計采用Verilog硬件描述語(yǔ)言用同步狀態(tài)機(FSM)的設計方法實(shí)現,編寫(xiě)ADC及DAC控制時(shí)序。程序實(shí)際上是一個(gè)嵌套的狀態(tài)機,由主狀態(tài)機和從狀態(tài)機通過(guò)由控制線(xiàn)啟動(dòng)的總線(xiàn)在不同的輸入信號情況下構成不同功能的有限狀態(tài)機。 則由圖3 可知,D/A操作有4 個(gè)狀態(tài),A/D操作有7個(gè)狀態(tài)。 兩種狀態(tài)中有幾個(gè)狀態(tài)是相同的,故可用一個(gè)有限狀態(tài)機完成對串行A/D及D/A的操作。 程序實(shí)際上是一個(gè)嵌套的狀態(tài)機,由主狀態(tài)機和從狀態(tài)機通過(guò)由控制總線(xiàn)啟動(dòng)的總線(xiàn)在不同的輸入信號情況下構成不同功能的較復雜的有限狀態(tài)機。 A/D及D/A操作共用唯一的驅動(dòng)時(shí)鐘(SCLK) 及數據總線(xiàn)(SI、SO)。由于操作的寫(xiě)周期有16個(gè)時(shí)鐘周期,讀周期有12個(gè)時(shí)鐘周期,模塊是在三個(gè)嵌套的有限狀態(tài)機中完成的,其主狀態(tài)機的狀態(tài)如圖4所示。

主狀態(tài)機的狀態(tài)

  系統設計中,將AD、DA操作封裝成一單獨模塊,由上層控制模塊輸出命令字及控制信號啟動(dòng)本模塊的相應操作,操作完成后(進(jìn)入idle狀態(tài)) ,本模塊發(fā)出相應狀態(tài)信號至上層模塊。

   程序框架

   片內程序是整個(gè)測試系統正確運行的關(guān)鍵。 由自頂向下的FPGA 設計原則,將系統分為5個(gè)獨立的模塊, 即通信模塊(ISA) 、測試模塊(TEST) 、AD/DA 模塊、解碼模塊(DECODER) 、RAM 控制模塊(RAMCTL)。

  ISA 模塊:系統通信及控制模塊,完成與上位機通信、命令字解釋、控制信號的產(chǎn)生等。系統根據上位機傳送的導通電阻、絕緣電壓等參數啟動(dòng)ADDA模塊完成參考電壓的輸出;根據測試命令啟動(dòng)測試模塊完成測試過(guò)程。數據在多個(gè)同步運行的同步狀態(tài)機間傳送,較難控制的是多進(jìn)程間的數據通信與數據同步。

  RAM控制模塊:在測試開(kāi)始前,上位機將測試點(diǎn)的信息通過(guò)總線(xiàn)傳送至ISA模塊, ISA 模塊再將其存放到片內RAM中;測試完成后,將RAM中的測試結果傳送到上位機。 在測試時(shí)測試模塊通過(guò)讀RAM中測試點(diǎn)的信息來(lái)打開(kāi)相應測試開(kāi)關(guān),再將測試結果保存到RAM 中。 這樣兩個(gè)模塊都要求讀寫(xiě)RAM 以實(shí)現兩個(gè)模塊之間的數據共享,這就要求有一控制信號將兩組讀寫(xiě)信號線(xiàn)分別與RAM模塊相連接,RAM控制模塊即完成此功能。測試模塊(TEST):雖然測試過(guò)程有多種,如開(kāi)關(guān)卡自檢、導通測試、絕緣測試等,但測試過(guò)程卻是相同的,即測試掃描。 測試的工作過(guò)程是:加比較電路參考電壓→打開(kāi)待測點(diǎn)開(kāi)關(guān)→延時(shí)→讀比較器結果→測試另一組測試點(diǎn)。 本模塊是按照不同的操作碼,進(jìn)入不同的測試過(guò)程。 測試結果與測試點(diǎn)編號一起組成13 位數據保存到RAM 中,并將原來(lái)測試點(diǎn)的編號信息覆蓋。

  解碼模塊(DECODER):這一模塊掛在測試模塊(TEST) 之后,它完成開(kāi)關(guān)編號到實(shí)際電路的映射。 由于測試針陣形式不同、譯碼電路與控制電路的硬件設計不同,上級模塊輸出的測試開(kāi)關(guān)信息并不能直接作為輸出控制測試開(kāi)關(guān)電路。 解碼模塊完成這兩者間的轉換。

  AD/DA 模塊(AD/DA):設計SPI 總線(xiàn)接口對A/D 及D/A 器件操作,模塊以允許(adenable , daenable) 信號啟動(dòng),以busy信號作為轉換完成標志信號,將A/D及D/A操作相對其它模塊進(jìn)行封裝。系統的每個(gè)模塊采用Verilog硬件描述語(yǔ)言編寫(xiě),采用多個(gè)多層嵌套的同步狀態(tài)機(FSM)完成整個(gè)系統的邏輯功能;每一模塊應用仿真工具M(jìn)odelsim完成模塊的功能仿真,系統完成功能測試后;利用Altera 綜合布線(xiàn)工具QuartusII完成系統后仿真及綜合、布線(xiàn)、下載;充分利用Altera公司免費提供的IPcore 對程序模塊進(jìn)行優(yōu)化;頂層設計采用方框圖輸入方式,模塊間的數據流由方框圖更直觀(guān)地表現出來(lái)。

  結束語(yǔ)

  基于FPGA的的硬件控制系統,提高了的測試速度、簡(jiǎn)化電路的設計。此外由于FPGA的可重構特性,為系統的軟件算法以及硬件結構的進(jìn)一步優(yōu)化升級打下了良好的基礎,具有良好的應用前景。


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: FPGA PCB測試機

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>