<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è) > 測試測量 > 設計應用 > 基于PCI總線(xiàn)的任意波形發(fā)生器的設計

基于PCI總線(xiàn)的任意波形發(fā)生器的設計

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


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

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

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

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

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

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

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

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

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



評論


相關(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>