PCI總線和CPLD的任意信號(hào)發(fā)生器設(shè)計(jì)
1 基本原理和系統(tǒng)主要框圖
本文引用地址:http://m.butianyuan.cn/article/201612/329430.htm基于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)和寫入DDS中相應(yīng)的寄存器,完成DDS的配置,生成所需要的信號(hào)?! ?/p>
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è)備中。
考慮到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:O].總線命令信號(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:O],LA[23:2],I/O讀寫信號(hào)線IOWR#,IORD#,地址鎖存BALE?! ?/p>
9052的工作方式及配置信息主要由E2PROM加載,這里采用了Motorola公司的93LC46B,E2PROM的數(shù)據(jù)可以提前用燒寫器燒好,也可以在線燒寫。配置信息包括:設(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ù)需要配置好這些信息,寫入E2PROM中。本設(shè)計(jì)中E2PROM的配置信息如表1所示?! ?/p>
2.2 CPLD控制部分設(shè)計(jì)
CPLD在系統(tǒng)中的主要作用是用來(lái)將PCI控制器傳輸過(guò)來(lái)的數(shù)據(jù),經(jīng)過(guò)一定的算法處理,得到DDS外圍管腳的狀態(tài)及向DDS中寫入控制寄存器數(shù)值,使DDS根據(jù)配置信息產(chǎn)生所需要的信號(hào)。
本設(shè)計(jì)中使用的CPLD是Altera公司的7000S系列,工作電壓為5 V,具有192個(gè)宏單元,采用通用JTAG方式下載。CPLD與DDS之間的接口電路主要包括8位數(shù)據(jù)線D[7:O]。6位地址線ADD[5:0],串并選擇信號(hào)PMODE,復(fù)位信號(hào)RESET,外部更新信號(hào)UDCLK、讀寫信號(hào)WR、RD和控制信號(hào)0RAMP、FDATA。如圖3所示?! ?/p>
考慮到DDS信號(hào)輸出的實(shí)時(shí)性和減少CPLD的宏單元的占用,本設(shè)計(jì)中使用9052的IOWR#信號(hào)去觸發(fā)DDS的寫入信號(hào)WR。DDS控制寄存器的寫入方式有串行和并行兩種,由PMODE管腳控制,當(dāng)PMODE信號(hào)為高時(shí),為并行寫入模式,當(dāng)PMODE信號(hào)為低時(shí),為串行工作模式。由于設(shè)計(jì)中PCI9052寫入CPLD的數(shù)據(jù)為8位并行輸入,所以在這里選用了并行的方式向DDS的控制寄存器中寫入數(shù)據(jù)。寫入的時(shí)序如圖4所示。
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所示?! ?/p>
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?!?/p>
在整個(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ò)MCl00LVEL16D芯片產(chǎn)生20 MHz的差分時(shí)鐘信號(hào),作為DDS的外部輸入時(shí)鐘。
為了濾去不需要的頻率成分和抑制輸出信號(hào)的雜散,在信號(hào)的輸出部分,采用了一個(gè)π型結(jié)構(gòu)的LC低通濾波器,濾波器的結(jié)構(gòu)圖如圖7所示?! ?/p>
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)?! ?/p>
本設(shè)計(jì)的軟件部分開(kāi)發(fā)環(huán)境為:Windows XP,WinXPDDK,MS.Net Framework SDK,DriverStudio 3.3,Win—driver5.02,VC++6.O。根據(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所示?! ?/p>
4 結(jié)語(yǔ)
本文詳細(xì)介紹了基于PCI總線和CPLD的任意信號(hào)發(fā)生器的開(kāi)發(fā)過(guò)程,并對(duì)其中的關(guān)鍵技術(shù),如PCI總線控制、CPLD邏輯控制、DDS信號(hào)輸出部分、控制軟件的編寫等主要部分做出分析和研究。提出了基于用戶軟件控制信號(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)。
評(píng)論