摘 要:設(shè)計(jì)并實(shí)現(xiàn)了基于PCI總線和CPLD技術(shù),通過(guò)用戶軟件控制多種類型、參數(shù)信號(hào)生成的信號(hào)發(fā)生器,詳細(xì)介紹了設(shè)計(jì)中主要軟、硬件的設(shè)計(jì)實(shí)現(xiàn)方法。本系統(tǒng)可以方便地實(shí)現(xiàn)各種常見(jiàn)的電磁信號(hào)的生成,并可以在本系統(tǒng)的基礎(chǔ)上,通過(guò)軟件的完善,實(shí)現(xiàn)復(fù)雜的非常規(guī)信號(hào)的生成,提高了信號(hào)發(fā)生裝置的適應(yīng)性和靈活性,具有良好的應(yīng)用前景。
關(guān)鍵詞:PCI總線;CPLD;DDS;WDM驅(qū)動(dòng)
中圖分類號(hào):TN911 文獻(xiàn)標(biāo)識(shí)碼:B
文章編號(hào):1004-373X(2008)11-105-03
Design of Arbitrary Signal Generator Based on PCI Bus and CPLD
JIAO Junjun1,2,HU Yihua1,2
(1.Staff Room 506,Electronic Engineering Institute of PLA,Hefei,230037,China;
2.Key Laboratory of Electronic Restricting Technique in Anhui Province,Hefei,230037,China)
Abstract:An arbitrary signal generator based on PCI bus and CPLD is designed.The generating of multi-type signal is controlled by customer software.This paper presents the design method about the significant part of hardware circuit and the main software.Using this system,many kinds of common electromagnetic signal can be created.Meanwhile,based on the system,generating more complexable signals can be achieved through the well established software.Using this method will enhance the signal generator′s flexibility and adaptability which has wide application in the future.
Keywords:PCI bus;CPLD;DDS;WDM driver
隨著通信、雷達(dá)技術(shù)的高速發(fā)展,穩(wěn)定度高、信號(hào)種類多樣、多種調(diào)制方式的高質(zhì)量信號(hào)源的需求也越來(lái)越廣。在電子設(shè)備的測(cè)量、電磁環(huán)境的模擬等應(yīng)用中,需要能夠方便快速地產(chǎn)生各種類型、參數(shù)的信號(hào)。所以,研究開(kāi)發(fā)了這種基于計(jì)算機(jī)PCI總線和CPLD控制的任意信號(hào)發(fā)生器,在PC端對(duì)信號(hào)的各種參數(shù)進(jìn)行設(shè)置,實(shí)時(shí)產(chǎn)生所需要的各種信號(hào)。實(shí)現(xiàn)了多種類型、參數(shù)信號(hào)之間方便快速的切換。
1 基本原理和系統(tǒng)主要框圖
基于PCI總線和CPLD的任意信號(hào)發(fā)生器如圖1所示, PC端的控制程序?qū)π盘?hào)的頻率、相位等各種參數(shù)以及調(diào)制方式進(jìn)行設(shè)置,通過(guò)PCI總線將所設(shè)置的各種參數(shù)信息傳到CPLD中,CPLD根據(jù)預(yù)先編好的Verilog HDL程序,將PCI總線傳來(lái)的參數(shù)信息轉(zhuǎn)換成DDS的控制信息,控制DDS芯片的工作狀態(tài)和寫(xiě)入DDS中相應(yīng)的寄存器,完成DDS的配置,生成所需要的信號(hào)。
2 系統(tǒng)主要硬件設(shè)計(jì)
2.1 PCI總線接口部分設(shè)計(jì)
PCI總線作為計(jì)算機(jī)與外部設(shè)備的一個(gè)重要連接總線,數(shù)據(jù)傳輸穩(wěn)定、靈活、傳輸速度快,還具有即插即用和良好的擴(kuò)展性等優(yōu)點(diǎn),被廣泛應(yīng)用在各種與計(jì)算機(jī)互聯(lián)的設(shè)備中。
圖1 系統(tǒng)主要流程圖
考慮到PCI總線的協(xié)議比較復(fù)雜,所以本設(shè)計(jì)采用了PLX公司生產(chǎn)的PCI接口專用芯片PCI9052用于PCI總線的控制。圖2是PCI9052芯片的主要接口電路圖。主要包括9052與PCI插槽間的連接信號(hào)線、與E2PROM之間的連接線和與局部總線之間的連接線。與PCI插槽的信號(hào)包括地址數(shù)據(jù)復(fù)用信號(hào)AD[31:0],總線命令信號(hào)C/BE[3:0]#和 PCI協(xié)議控制信號(hào)PAR,F(xiàn)RAME#,IRDY#,TRDY#,STOP#,IDSEL,DEVSEL#,PERR#,SERR#。與串行E2PROM的連線有4根信號(hào)線:EESK,EEDO,EEDI和EECS。本設(shè)計(jì)中需要傳輸?shù)臄?shù)據(jù)量比較少,同時(shí)考慮到對(duì)早期的ISA設(shè)備的兼容性,所以采用了9052中的ISA模式。在ISA模式下,9052與ISA總線的連接有數(shù)據(jù)線LAD[7:0],地址線ISAA[1:0],LA[23:2], I/O讀寫(xiě)信號(hào)線IOWR#,IORD#,地址鎖存BALE。
圖2 PCI9052接口電路
9052的工作方式及配置信息主要由E2PROM加載,這里采用了Motorola公司的93LC46B,E2PROM的數(shù)據(jù)可以提前用燒寫(xiě)器燒好,也可以在線燒寫(xiě)。配置信息包括:設(shè)備號(hào)DID、制造商號(hào)VID、子設(shè)備號(hào)SDID、子制造商號(hào)SVID、中斷號(hào)、設(shè)備類型號(hào)、局部空間基地址、局部空間描述符、工作模式、LOCAL 端數(shù)據(jù)線的寬度、片選以及局部響應(yīng)控制CNTRL 等信號(hào)。根據(jù)需要配置好這些信息,寫(xiě)入E2PROM中。本設(shè)計(jì)中E2PROM的配置信息如表1所示。
表1 E2PROM配置信息
2.2 CPLD控制部分設(shè)計(jì)
CPLD在系統(tǒng)中的主要作用是用來(lái)將PCI控制器傳輸過(guò)來(lái)的數(shù)據(jù),經(jīng)過(guò)一定的算法處理,得到DDS外圍管腳的狀態(tài)及向DDS中寫(xiě)入控制寄存器數(shù)值,使DDS根據(jù)配置信息產(chǎn)生所需要的信號(hào)。
本設(shè)計(jì)中使用的CPLD是Altera公司的7000S系列,工作電壓為5 V,具有192個(gè)宏單元,采用通用JTAG方式下載。CPLD與DDS之間的接口電路主要包括8位數(shù)據(jù)線D[7:0],6位地址線ADD[5:0],串并選擇信號(hào)PMODE,復(fù)位信號(hào)RESET,外部更新信號(hào)UDCLK、讀寫(xiě)信號(hào)WR、RD和控制信號(hào)ORAMP、FDATA。如圖3所示。
圖3 CPLD與DDS之間的接口電路
考慮到DDS信號(hào)輸出的實(shí)時(shí)性和減少CPLD的宏單元的占用,本設(shè)計(jì)中使用9052的IOWR#信號(hào)去觸發(fā)DDS的寫(xiě)入信號(hào)WR。DDS控制寄存器的寫(xiě)入方式有串行和并行兩種,由PMODE管腳控制,當(dāng)PMODE信號(hào)為高時(shí),為并行寫(xiě)入模式,當(dāng)PMODE信號(hào)為低時(shí),為串行工作模式。由于設(shè)計(jì)中PCI9052寫(xiě)入CPLD的數(shù)據(jù)為8位并行輸入,所以在這里選用了并行的方式向DDS的控制寄存器中寫(xiě)入數(shù)據(jù)。寫(xiě)入的時(shí)序如圖4所示。
圖4 CPLD寫(xiě)入DDS的時(shí)序圖
CPLD的程序在Altera公司提供的QuartusⅡ開(kāi)發(fā)系統(tǒng)下通過(guò)Verilog HDL語(yǔ)言來(lái)實(shí)現(xiàn)。在QuartusⅡ環(huán)境中,可以方便地對(duì)波形進(jìn)行仿真,便于查看和修改程序中可能存在的問(wèn)題。QuartusⅡ仿真環(huán)境如圖5所示。
圖5 利用QuartusⅡ進(jìn)行時(shí)序仿真圖
2.3 DDS輸出部分設(shè)計(jì)
DDS部分電路設(shè)計(jì)除了與CPLD之間的連接電路外,還有DDS的外圍電路設(shè)計(jì)。本系統(tǒng)中DDS的外圍電路主要包括電壓轉(zhuǎn)換、差分時(shí)鐘信號(hào)輸入和低通濾波器三個(gè)部分,如圖6所示。設(shè)計(jì)中的DDS采用的是AD公司的通用DDS芯片AD9852,芯片的工作電壓為3.3 V,最高系統(tǒng)時(shí)鐘為300 MHz。
圖6 DDS輸出部分框圖
在整個(gè)系統(tǒng)中,PCI9052和CPLD的工作電壓為5 V,所以需要將工作電壓由5 V轉(zhuǎn)換為DDS正常工作的3.3 V,設(shè)計(jì)中采用了專用的電壓轉(zhuǎn)換模塊,完成電壓轉(zhuǎn)換工作,為DDS及其外圍電路提供3.3 V工作電壓。
差分時(shí)鐘輸入模塊是為了DDS輸出信號(hào)能夠得到較好頻譜純凈度,本設(shè)計(jì)采用了20 MHz的有源晶振,通過(guò)MC100LVEL16D芯片產(chǎn)生20 MHz的差分時(shí)鐘信號(hào),作為DDS的外部輸入時(shí)鐘。
為了濾去不需要的頻率成分和抑制輸出信號(hào)的雜散,在信號(hào)的輸出部分,采用了一個(gè)π型結(jié)構(gòu)的LC低通濾波器,濾波器的結(jié)構(gòu)圖如圖7所示。
圖7 120 MHz低通濾波器結(jié)構(gòu)圖
3 系統(tǒng)主要軟件設(shè)計(jì)
系統(tǒng)的軟件部分包括面向硬件的WDM驅(qū)動(dòng)程序和面向用戶的應(yīng)用程序兩部分,其結(jié)構(gòu)如圖8所示。WDM驅(qū)動(dòng)負(fù)責(zé)硬件的電源管理、各種空間訪問(wèn)和初始化等硬件控制操作。用戶通過(guò)應(yīng)用程序與驅(qū)動(dòng)程序通信、與PC機(jī)進(jìn)行數(shù)據(jù)交換,傳遞所需參數(shù)和控制信息,再通過(guò)信號(hào)生成部分根據(jù)設(shè)置的參數(shù)產(chǎn)生所需要的各種信號(hào)。
圖8 軟件部分結(jié)構(gòu)圖
本設(shè)計(jì)的軟件部分開(kāi)發(fā)環(huán)境為:Windows XP,WinXP DDK,MS.Net Framework SDK,DriverStudio 3.3,Windriver5.02,VC++6.0。根據(jù)9852的工作特性,用戶軟件中設(shè)置了信號(hào)種類選擇、信號(hào)的頻率、分頻系數(shù)等參數(shù)的設(shè)置,還可以根據(jù)以后更進(jìn)一步的需要,產(chǎn)生其他需要的
各種實(shí)際信號(hào),編譯完成的軟件如圖9所示。實(shí)際產(chǎn)生的信號(hào)如圖10所示。
圖9 用戶軟件界面
圖10 實(shí)際信號(hào)頻譜圖
4 結(jié) 語(yǔ)
本文詳細(xì)介紹了基于PCI總線和CPLD的任意信號(hào)發(fā)生器的開(kāi)發(fā)過(guò)程,并對(duì)其中的關(guān)鍵技術(shù),如PCI總線控制、CPLD邏輯控制、DDS信號(hào)輸出部分、控制軟件的編寫(xiě)等主要部分做出分析和研究。提出了基于用戶軟件控制信號(hào)產(chǎn)生的任意信號(hào)發(fā)生器的設(shè)計(jì)思路并加以實(shí)現(xiàn)。通過(guò)頻譜儀觀察實(shí)際的輸出信號(hào),信號(hào)的頻譜比較純凈,信號(hào)的樣式多樣,參數(shù)設(shè)置直觀方便。同時(shí)提供了一個(gè)通用的軟件平臺(tái),可以根據(jù)以后的實(shí)際需要進(jìn)行相關(guān)功能的擴(kuò)展,以得到更多的信號(hào)樣式和一些非常規(guī)信號(hào)。
參 考 文 獻(xiàn)
[1]Analog Devices Inc..CMOS 300 MSPS Complete DDS\\[Z\\].2005.
[2]PCI 9052 data book Revision1.0\\[Z\\].1997.
[3]陳潮紅,王正英.基于DDS 技術(shù)的智能信號(hào)源[J].現(xiàn)代電子技術(shù),2006,29(24):148-149,151.
[4]求是科技.CPLD/FPGA 應(yīng)用開(kāi)發(fā)技術(shù)與工程實(shí)踐[M].北京:人民郵電出版社,2005.
[5]武安河.Windows 2000/XP WDM設(shè)備驅(qū)動(dòng)程序開(kāi)發(fā)[M].北京:電子工業(yè)出版社,2003.
[6]Chris Cant.Windows WDM 設(shè)備驅(qū)動(dòng)程序開(kāi)發(fā)指南[M].孫義,馬莉波,國(guó)雪飛,等譯.北京:機(jī)械工業(yè)出版社,2000.
[7]Walter Oney.Programming the Microsoft Windows Driver Model[Z].微軟公司,2000.
作者簡(jiǎn)介 焦均均 男,1982年出生,合肥電子工程學(xué)院研究生。主要從事光電信息技術(shù)方面研究。
注:本文中所涉及到的圖表、注解、公式等內(nèi)容請(qǐng)以PDF格式閱讀原文。