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