基于PCI總線集成電路測試儀接口設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:為實(shí)現(xiàn)集成電路測試儀的軟硬件通信功能,通過比較通用的PCI通信接口的實(shí)現(xiàn)方法,為了簡化邏輯電路設(shè)計(jì),使其更具通用性,采用了PCI專用接口芯片PCI9030,并使用可編程邏輯器件FPGA完成復(fù)雜的時(shí)序邏輯控制和地址譯碼,利用PCI驅(qū)動開發(fā)工具SDK提供的API函數(shù),在VC6.0軟件開發(fā)平臺上設(shè)計(jì)專用的驅(qū)動程序。
關(guān)鍵詞:PCI總線;PCI9030;FPGA;SDK;驅(qū)動程序
0 引言
如今社會的正常運(yùn)行已離不開集成電路產(chǎn)品,集成電路技術(shù)在社會各行各業(yè),諸如,交通運(yùn)輸、工業(yè)生產(chǎn)、農(nóng)林自動化、電力等等都有著廣泛的應(yīng)用,集成電路技術(shù)與社會的發(fā)展密切相關(guān)。集成電路行業(yè)的發(fā)展日趨專業(yè)化,逐漸形成設(shè)計(jì)、制造、封裝、測試獨(dú)立并舉、相互依持、共同發(fā)展的新局面。其中集成電路測試作為芯片設(shè)計(jì)、芯片制造和芯片封裝的有力補(bǔ)充,推動了集成電路產(chǎn)業(yè)的迅速發(fā)展。集成電路測試的能力和水平的提高是保證集成電路性能、質(zhì)量的關(guān)鍵手段之一。
目前廣泛用于集成電路封裝測試的設(shè)備是由計(jì)算機(jī)軟件控制,通過接口總線與硬件設(shè)備通信,能夠代替測試人員的大部分勞動,也稱為自動化測試系統(tǒng)(ATE)。其工作原理是:在計(jì)算機(jī)中使用測試軟件編寫待測芯片的測試程序,編寫測試程序的過程就是利用程序語言實(shí)現(xiàn)對測試系統(tǒng)硬件資源的調(diào)度,將測試圖形應(yīng)用于被測集成電路的管腳;使用測試軟件執(zhí)行測試程序,這個(gè)過程需要計(jì)算機(jī)與測試系統(tǒng)進(jìn)行通信,調(diào)用測試系統(tǒng)硬件電路的驅(qū)動函數(shù),將控制命令經(jīng)計(jì)算機(jī)的I/O接口發(fā)送至測試硬件相應(yīng)的端口;測試儀硬件接口經(jīng)過譯碼電路譯碼之后驅(qū)動硬件動作實(shí)現(xiàn)既定的測試功能;測試的數(shù)據(jù)結(jié)果通過計(jì)算機(jī)的I/O接口返回;計(jì)算機(jī)對結(jié)果數(shù)據(jù)進(jìn)行分析處理、按一定的標(biāo)準(zhǔn)進(jìn)行判別,將測試結(jié)果進(jìn)行顯示、控制分選機(jī)對被測器件進(jìn)行分選。
1 PCI總線及其接口的實(shí)現(xiàn)
自動化集成電路測試系統(tǒng)(ATE)的結(jié)構(gòu)圖如圖1所示。
本設(shè)計(jì)的接口總線選用的是PCI總線。PCI(Peripheral Component Interconnect)是一種由NI公司于1997年發(fā)布的基于計(jì)算機(jī)測量和自動化平臺的一種全新的開放性、模塊化儀器總線規(guī)范。PCI總線采用32位突發(fā)方式傳輸?shù)木植靠偩€,工作頻率可達(dá)33 MHz,支持32 b/64 b的數(shù)據(jù)傳輸,并支持多總線主控和線性突發(fā)(Burst)模式傳送,在理論上數(shù)據(jù)傳輸速率可以達(dá)到132 Mb/s。
目前國內(nèi)外PCI總線接口實(shí)現(xiàn)方案主要有:采用專用的PCI接口芯片。采用專用芯片只需考慮用它來實(shí)現(xiàn)自己要求的功能,而不用考慮PCI芯片的內(nèi)部結(jié)構(gòu),這樣就縮短了設(shè)計(jì)時(shí)間,但靈活性較差,會造成一定的資源浪費(fèi)。利用IP核來實(shí)現(xiàn)PCI接口,利用基于PCI協(xié)議的IP核來實(shí)現(xiàn)PCI接口,這種設(shè)計(jì)開發(fā)速度較快,靈活性較好,但是IP核價(jià)格昂貴。采用FPGA實(shí)現(xiàn)PCI總線協(xié)議。采用CPLD/FPGA等可編程邏輯器件實(shí)現(xiàn)PCI接口,最大的優(yōu)點(diǎn)在于靈活的可編程性,可以節(jié)約系統(tǒng)的邏輯資源,系統(tǒng)設(shè)計(jì)緊湊,方便系統(tǒng)更新,缺點(diǎn)是開發(fā)難度大,周期長,系統(tǒng)檢驗(yàn)困難,且不具備通用性。本文設(shè)計(jì)了一種采用PCI專用接口芯片PCI9030實(shí)現(xiàn)PCI總線接口,并利用可編程邏輯器件FPGA完成復(fù)雜的時(shí)序邏輯控制和地址譯碼。該設(shè)計(jì)的特點(diǎn)是簡化了硬件電路的復(fù)雜性,縮短了開發(fā)周期,通用性較好。其硬件連接框圖如圖2所示。
2 PCI總線的信號定義
PCI總線的信號主要包括PCI總線信號、E2PROM接口信號和局部總線信號。主要信號的電路連接圖如圖3所示。
2.1 PCI總線信號
PCI總線信號包括CLK(時(shí)鐘信號)、(復(fù)位信號)、(幀周期信號)、C/BE[3..0](總線命令/字節(jié)使能信號)、(主設(shè)備準(zhǔn)備好信號)、(目標(biāo)設(shè)備準(zhǔn)備好信號)、AD[31..00](地址/數(shù)據(jù)信號)、PAR(奇偶校驗(yàn)信號)、(停止信號)、IDSEL(初始化設(shè)備選信號)、(設(shè)備選擇信號)、(數(shù)據(jù)奇偶校驗(yàn)錯(cuò)誤報(bào)告信號)、(系統(tǒng)錯(cuò)誤報(bào)告信號)、(中斷信號)等。這些信號由PCI9030芯片上的各管腳直接與PC機(jī)的PCI插槽對應(yīng)的端口相連。其中MODE信號是多路復(fù)用信號,這里使用多路復(fù)用功能,需要上拉10kΩ的電阻至3.3 V電源,邊界掃描功能不使用,引腳TRST應(yīng)該接地。
2.2 E2PROM的控制信號
PCI總線接口芯片的配置信息需要通過E2PROM存儲并在沒備復(fù)位時(shí)加載。PCI9030的信號線EECS,EESK,EEDI和EEDO是專門用于E2PROM的連接,本沒計(jì)選用的E2PROM是NM93CS66L,該芯片擁有一個(gè)4 KB容量的低電平串行存儲器,在對芯片PCI9030執(zhí)行復(fù)佗操作時(shí)加載存儲信息,從而使PCI接口卡實(shí)現(xiàn)即插即用的功能。PCI9030與NM93CS66L的電路連接如圖4所示。
2.3 PCI局部總線信號
PCI局部總線信號是指接口芯片對PCI總線信號進(jìn)行轉(zhuǎn)換后可以被外設(shè)設(shè)備使用的信號。通常,所需要設(shè)計(jì)的功能電路都會需要一定的邏輯控制,所以PCI9030提供的局部總線接口信號通常會引入FPGACPLD中實(shí)現(xiàn)時(shí)序邏輯的控制以簡化電路。比較重要的信號有:LINTi1和LINTi2(本地中斷信號)、(本地總線等待信號)、(地址選通信號)、[3..0](字節(jié)使能信號)、LD[31..00](本地?cái)?shù)據(jù)總線信號)LA[23.,0](本地地址總線信號)、LCLK(本地總線時(shí)鐘信號)、(讀/寫控制信號)、(讀選通信號)、(寫選通信號)、(傳輸準(zhǔn)備好信號)等。其中,[3..0j信號根據(jù)設(shè)置的數(shù)據(jù)總線寬度的不同而表示了不同的含義:
(1)設(shè)置本地?cái)?shù)據(jù)總線的寬度是32位時(shí),[3..0]用來指示數(shù)據(jù)的有效位::使能字節(jié)0,LD[31..24]有效;:使能字節(jié)1,LD[23..16]有效;:使能字節(jié)2,LD[15..08]有效;:使能字節(jié)3,LD[07..00]有效;
(2)設(shè)置本地?cái)?shù)據(jù)總線的寬度是16位時(shí),分別表示(高字節(jié)有效)、(低字節(jié)有效)、LA1(地址位1)信號::,LD[07..00]有效;:LA1;:沒有使用;:,LD[15..08]有效;
(3)設(shè)置本地?cái)?shù)據(jù)總線的寬度是8位時(shí),表示LA1(地址位1)和LA0(地址位0)信號::LA0;:LA1;:沒有使用;:沒有使用。
3 驅(qū)動程序的設(shè)計(jì)
PCI驅(qū)動程序是實(shí)現(xiàn)PCI板卡與PC機(jī)應(yīng)用軟件間的接口控制與數(shù)據(jù)傳遞的專用軟件,它可提供PCI板卡與PC機(jī)各類消息數(shù)據(jù)的讀、寫支持,以及對PCI板卡內(nèi)部程序的調(diào)度。在Windows XP操作系統(tǒng)上可以使用PLX公司提供的軟件工具開發(fā)包SDK來完成PCI9030驅(qū)動程序的設(shè)計(jì)。SDK包含了用于開發(fā)PCI驅(qū)動的軟件工具和函數(shù)庫,主要有PLXMON軟件工具、API函數(shù)庫以及用于和操作系統(tǒng)兼容的設(shè)驅(qū)動程序。PLXMON是一個(gè)Wind ows圖形窗口的調(diào)試軟件。利用該工具可以對PCI設(shè)備進(jìn)行配置和更改,也可以將本地軟件下載到ROM或RAM中,用戶還可以通過它設(shè)置E2PROM來實(shí)現(xiàn)對PLX公司的PCI芯片的配置和調(diào)試。API函數(shù)庫是以DLL(動態(tài)連接庫)的形式提供的,被包裝在PlxApi.dll中。利用軟件開發(fā)工具VC 6.0設(shè)計(jì)PCI驅(qū)動程序時(shí),需要將SDK中的PlxApi.dll、PlxApi.lib和PlxApi.h三個(gè)文件拷貝到所建VC工程的目錄下。在頭文件(.h)中添加語句include“PlxApi.h”包含API函數(shù)的頭文件,在調(diào)用API函數(shù)之前添加語句LoadLibrary(“PlxApi.lib”)加載API函數(shù)庫,之后就可以調(diào)用API函數(shù)設(shè)計(jì)需要的PCI驅(qū)動程序。通過PCI接口卡完成一次電參數(shù)測試過程的程序主要代碼如下:
4 結(jié)語
利用PCI專用接口芯片與FPGA結(jié)合可以實(shí)現(xiàn)PCI接口電路的簡化設(shè)計(jì),縮短開發(fā)周期;通過PLX公司的SDK軟件開發(fā)包可以很輕松地完成PCI芯片的配置和調(diào)試,在Windows XP操作系統(tǒng)中利用VC6.0軟件開發(fā)工具加載SDK中的API函數(shù)庫可以實(shí)現(xiàn)用于集成電路測試的PCI驅(qū)動程序的設(shè)計(jì)。通過該接口電路實(shí)現(xiàn)了利用PC軟件控制硬件電路完成IC測試的功能。