新聞中心

EEPW首頁(yè) > 測(cè)試測(cè)量 > 設(shè)計(jì)應(yīng)用 > 基于PCI總線的任意波形發(fā)生器的設(shè)計(jì)

基于PCI總線的任意波形發(fā)生器的設(shè)計(jì)

作者: 時(shí)間:2008-02-18 來(lái)源:網(wǎng)絡(luò) 收藏
摘要:是信號(hào)處理領(lǐng)域中必不可少的儀器設(shè)備,而很多不能產(chǎn)生快速、有效、連續(xù)而且易于定制的信號(hào)波形。本文提出了一種利用緩沖區(qū)快速交換數(shù)據(jù)、基于的設(shè)計(jì)構(gòu)想,依據(jù)該構(gòu)想設(shè)計(jì)的任意波形發(fā)生器可以快速進(jìn)行數(shù)據(jù)更換,有效地保證了空間信號(hào)的連續(xù)性和多信號(hào)的快速切換。
關(guān)鍵詞:;任意波形發(fā)生器;連續(xù)


1 介紹
PCI是一種不依附于某個(gè)具體處理器的局部總線。從結(jié)構(gòu)上看,PCI是在CPU和原來(lái)的系統(tǒng)總線之間插入的一級(jí)總線,具體由一個(gè)橋接電路實(shí)現(xiàn)對(duì)這一層的管理,并實(shí)現(xiàn)上下之間的接口以協(xié)調(diào)數(shù)據(jù)的傳送。管理器提供了信號(hào)緩沖,使之能支持10種外設(shè),并在高時(shí)鐘頻率下保持高性能。

與其它總線相比,PCI總線標(biāo)準(zhǔn)具有多方面的優(yōu)點(diǎn)。表1為幾種總線性能的比較。PCI局部總線的性能特點(diǎn)如下:
(1)傳輸速度快。最高工作頻率33 MHz,峰值吞吐率在32位時(shí)為132 Mb/s,64位時(shí)為264 Mb/s。
(2)支持無(wú)限猝發(fā)讀寫(xiě)方式。讀寫(xiě)時(shí)后面可跟無(wú)數(shù)個(gè)數(shù)據(jù)周期,具有強(qiáng)大的數(shù)據(jù)猝發(fā)傳輸能力。
(3)支持并行工作方式。PCI控制器具有多級(jí)緩沖,利用它可使PCI總線上外設(shè)與CPU并行工作。例如CPU輸出數(shù)據(jù)時(shí),先將數(shù)據(jù)快速送到緩沖器中,當(dāng)這些數(shù)據(jù)不斷送往設(shè)備時(shí),CPU就可轉(zhuǎn)而執(zhí)行其他工作了。
(4)獨(dú)立于處理器。PCI在CPU和外設(shè)間插人一個(gè)復(fù)雜的管理層,用以協(xié)調(diào)數(shù)據(jù)傳輸,通常稱之為橋。橋的主要功能是在兩種不同的信號(hào)環(huán)境之間進(jìn)行轉(zhuǎn)換,并向系統(tǒng)中所有的主控制器提供一致的總線接口。因此PCI總線可支持多種系列的處理器,
并為處理器升級(jí)創(chuàng)造了條件。
(5)提供4種規(guī)格,可定義32位/64位以及5 V/3.3 V電壓信號(hào)。3.3 V電壓信號(hào)環(huán)境的定義為PCI總線進(jìn)入便攜機(jī)領(lǐng)域提供了便利。
(6)數(shù)據(jù)線和地址線采用了多路復(fù)用結(jié)構(gòu),減少了針腳數(shù)。一般而言.32位字長(zhǎng)、僅作目標(biāo)設(shè)備的接口只需47條引腳,作為總線控制者的設(shè)備接口再加2條引腳,并可有選擇地增加信號(hào)線擴(kuò)展功能,如64位字長(zhǎng)的接口卡需加39條引腳,資源鎖定加l條引腳,等等。
(7)支持即插即用功能,能實(shí)現(xiàn)自動(dòng)配置。在PCI器件上包含有寄存器,上面帶有配置所需的器件信息,使外設(shè)適配器在和系統(tǒng)連接時(shí)能自動(dòng)進(jìn)行配置,無(wú)須人工干預(yù)。

2 設(shè)計(jì)流程
本設(shè)計(jì)的主要流程是將應(yīng)用層程序產(chǎn)生的數(shù)據(jù)送入底層驅(qū)動(dòng),然后由底層驅(qū)動(dòng)軟件將數(shù)據(jù)分發(fā)到硬件的存儲(chǔ)空間中。這一過(guò)程由軟件和硬件兩部分完成。系統(tǒng)框圖如圖l所示。

2.1 軟件設(shè)計(jì)
在本設(shè)計(jì)中,先通過(guò)高端數(shù)據(jù)處理軟件進(jìn)行信號(hào)的仿真處理,然后將仿真數(shù)據(jù)直接放入應(yīng)用層緩沖區(qū)。由于本系統(tǒng)考慮到適應(yīng)一定的快速數(shù)據(jù)交換,理想狀況下不允許出現(xiàn)空間信號(hào)的間斷現(xiàn)象,因此在應(yīng)用層開(kāi)辟兩塊數(shù)據(jù)緩沖區(qū),如圖2所示,分別標(biāo)號(hào)BUFFERl和BUFFER2,在裝完BUFFERl以后,再使用數(shù)據(jù)填充BUFFER2。只要軟件設(shè)計(jì)的合理,就可以在應(yīng)用層連續(xù)地將交換數(shù)據(jù)。

底層軟件設(shè)計(jì)的驅(qū)動(dòng)中,可以開(kāi)多個(gè)分塊緩沖,分別對(duì)應(yīng)用層進(jìn)行相應(yīng)的數(shù)據(jù)緩沖映射,由于底層驅(qū)動(dòng)直接與硬件相關(guān),因此需要盡可能設(shè)計(jì)出與硬件十分匹配的緩沖區(qū)分塊,以達(dá)到最佳的硬件數(shù)據(jù)傳輸效果。
2.2 硬件設(shè)計(jì)
數(shù)據(jù)的傳輸過(guò)程由應(yīng)用層程序發(fā)起,但由PCI橋接口芯片PLX9054執(zhí)行。PLX9054工作于主模式。在該模式下,軟件應(yīng)用層完全不需要耗費(fèi)資源便能完成數(shù)據(jù)的傳輸。而應(yīng)用層軟件可以在這個(gè)過(guò)程中進(jìn)行數(shù)據(jù)的產(chǎn)生和調(diào)配。整個(gè)傳輸過(guò)程通過(guò)DMA和中斷完成。
當(dāng)DMA傳輸開(kāi)始后,首先對(duì)靜態(tài)RAMl中數(shù)據(jù)進(jìn)行傳輸,然后通知可編程邏輯器件CPLD,啟動(dòng)地址計(jì)數(shù)器,將SRAMl中的數(shù)據(jù)送向D/A,通過(guò)數(shù)模轉(zhuǎn)換產(chǎn)生模擬信號(hào)波形。在SRAMl向D/A送數(shù)據(jù)期間,PLX9054開(kāi)始向第二塊靜態(tài)RAM中傳送數(shù)據(jù),同時(shí),應(yīng)用層軟件又可以為第一塊數(shù)據(jù)區(qū)準(zhǔn)備數(shù)據(jù),當(dāng)向第二塊靜態(tài)RAM傳送完數(shù)據(jù)后,檢測(cè)第一塊靜態(tài)RAM,如果此時(shí)第一塊RAM中的數(shù)據(jù)已經(jīng)發(fā)完,那么就啟動(dòng)第二塊RAM,向D/A發(fā)送數(shù)據(jù),與此同時(shí),又開(kāi)始向第一塊靜態(tài)RAM中傳送數(shù)據(jù),而應(yīng)用層軟件則開(kāi)始為第二塊RAM準(zhǔn)備數(shù)據(jù)。如此周而復(fù)始。如果工作條件設(shè)計(jì)的較為理想,那么就可以得到連續(xù)、不間斷、形式不同的模擬信號(hào)。
設(shè)計(jì)中注意以下三個(gè)要點(diǎn):
(1)應(yīng)用層軟件的核心工作是數(shù)據(jù)的產(chǎn)生和數(shù)據(jù)的調(diào)配。
(2)驅(qū)動(dòng)層軟件的設(shè)計(jì)是為了在數(shù)據(jù)傳輸過(guò)程中最有效地配合硬件,和最有效的響應(yīng)硬件的中斷。
(3)本地可編程邏輯器件PLD的使用要最大限度的進(jìn)行本地時(shí)序的調(diào)用,以達(dá)到最優(yōu)的數(shù)據(jù)傳輸。
可以產(chǎn)生連續(xù)、不間斷、樣式不同的模擬信號(hào),是本系統(tǒng)設(shè)計(jì)的優(yōu)勢(shì)和關(guān)鍵所在。如果只考慮普通任意波形發(fā)生器的做法,那么并不需要對(duì)應(yīng)用層、驅(qū)動(dòng)層以及硬件緩沖區(qū)的設(shè)計(jì)進(jìn)行過(guò)多的考慮,只要開(kāi)一個(gè)足夠大的數(shù)據(jù)緩沖區(qū),放一個(gè)足夠容量的靜態(tài)RAM,然后將需要的數(shù)據(jù)灌入靜態(tài)RAM,就可以完成一個(gè)高性能任意波形發(fā)生器的功能。

3 器件和工具介紹
應(yīng)用層軟件的編制采用美國(guó)微軟公司的VC++編譯器環(huán)境。VC是Windows系統(tǒng)下的主要編程語(yǔ)言之一,用它開(kāi)發(fā)的系統(tǒng)具有容易維護(hù)升級(jí)、界面友好、代碼效率高,執(zhí)行速度快等一系列優(yōu)點(diǎn),并且能夠直接與系統(tǒng)及底層硬件交換數(shù)據(jù)。
驅(qū)動(dòng)程序的設(shè)計(jì)和制作采用NuMega公司的DriverWorks驅(qū)動(dòng)開(kāi)發(fā)工具包。DriverWorks以面向?qū)ο?OOP)的方式,將編寫(xiě)WDM及WINNT驅(qū)動(dòng)程序所需的對(duì)內(nèi)核模式訪問(wèn)及硬件的訪問(wèn)封裝成類。這樣只要在其向?qū)С绦虻闹敢?,根?jù)硬件的具體參數(shù)填寫(xiě)必要步驟,就可以很方便地完成所需驅(qū)動(dòng)程序的框架。最后根據(jù)具體的要求添加新的類對(duì)象和所需的代碼就可以成功地完成自己的驅(qū)動(dòng)程序。DriverWorks是基于VC++的,它生成的是標(biāo)準(zhǔn)的VC工程,只要將所建的工程在VC下編譯,就可以生成最終的設(shè)備驅(qū)動(dòng)程序。
PCI接口電路采用PCI專用接口芯片PLX9-054。PLX9054是由美國(guó)PIX公司生產(chǎn)的先進(jìn)的PCI I/O Accelerator,符合PCI V2.2規(guī)范,采用176引腳PQFP和225引腳PBGA兩種封裝形式。PLX9054提供了PCI總線、EEPROM、LOCAL總線三個(gè)接口。PLX9054作為一種橋接芯片,在PCI總線和LOCAL總線之間傳遞信息,既可以作為兩個(gè)總線的主控設(shè)備去控制總線,也可以作為兩個(gè)總線的目標(biāo)設(shè)備去響應(yīng)總線。PLX9054采用了先進(jìn)的PLX數(shù)據(jù)管道結(jié)構(gòu)技術(shù),是32位、33MHz的通用PCI總線控制器專用芯片,功能強(qiáng)大、使用靈活。PLX9054的靜態(tài)RAM采用Cypress公司的CY7C1041靜態(tài)RAM。PLX9054的D/A轉(zhuǎn)換電路采用Analog Device公司的AD768高速16位D/A數(shù)模轉(zhuǎn)換器,數(shù)據(jù)轉(zhuǎn)換速度達(dá)到30MSPS,是一種高速,穩(wěn)定的電流型D/A轉(zhuǎn)換器。

4 數(shù)據(jù)的產(chǎn)生
本系統(tǒng)采用Matlab仿真軟件對(duì)信號(hào)的數(shù)據(jù)產(chǎn)生文件進(jìn)行仿真,仿真的條件完全設(shè)置為真實(shí)的數(shù)據(jù)模擬信號(hào)輸出條件,仿真效果如圖3所示。舉例如下:若產(chǎn)生一個(gè)中心頻率為5 MHz,調(diào)頻寬度為2MHz的Chip信號(hào),使用30MHz的信號(hào)恢復(fù)采樣時(shí)鐘,嚴(yán)格符合采樣定理。仿真程序如下:

通過(guò)以上程序產(chǎn)生了一個(gè)16K的數(shù)據(jù)文件,只要將這個(gè)文件裝入緩沖區(qū),就可以得到輸出的模擬波形。然后將D/A輸出波形用示波器采集,就可以得到清晰的、與圖4所示的D/A輸出仿真圖中臺(tái)階式一模一樣的輸出圖形。

5 結(jié)束語(yǔ)
基于PCI總線的任意波形發(fā)生器具有靈活、快速、可變、可控,精度高等多方面的優(yōu)勢(shì),由于其可編程性能優(yōu)越,因此只要能夠保證準(zhǔn)確建立信號(hào)的數(shù)學(xué)模型,就可以得到相應(yīng)準(zhǔn)確的模擬輸出結(jié)果,從而為提供復(fù)雜的信號(hào)產(chǎn)生環(huán)境和高質(zhì)量的信號(hào)波形樣式提供了有力的保證。
基于PCI總線的任意波形發(fā)生器的研制,能夠滿足各種高質(zhì)量、復(fù)雜信號(hào)的需求,從而減輕了由于環(huán)境因素和波形質(zhì)量而影響到的研究精度。



評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉