PCI總線和CPLD的任意信號發(fā)生器設(shè)計
1 基本原理和系統(tǒng)主要框圖
本文引用地址:http://www.ex-cimer.com/article/201612/329430.htm基于PCI總線和CPLD的任意信號發(fā)生器如圖1所示,PC端的控制程序?qū)π盘柕念l率、相位等各種參數(shù)以及調(diào)制方式進行設(shè)置,通過PCI總線將所設(shè)置的各種參數(shù)信息傳到CPLD中,CPLD根據(jù)預(yù)先編好的Verilog HDL程序,將PCI總線傳來的參數(shù)信息轉(zhuǎn)換成DDS的控制信息,控制DDS芯片的工作狀態(tài)和寫入DDS中相應(yīng)的寄存器,完成DDS的配置,生成所需要的信號?! ?/p>
2 系統(tǒng)主要硬件設(shè)計
2.1 PCI總線接口部分設(shè)計
PCI總線作為計算機與外部設(shè)備的一個重要連接總線,數(shù)據(jù)傳輸穩(wěn)定、靈活、傳輸速度快,還具有即插即用和良好的擴展性等優(yōu)點,被廣泛應(yīng)用在各種與計算機互聯(lián)的設(shè)備中。
考慮到PCI總線的協(xié)議比較復(fù)雜,所以本設(shè)計采用了PLX公司生產(chǎn)的PCI接口專用芯片PCI9052用于PCI總線的控制。圖2是PCI9052芯片的主要接口電路圖。主要包括9052與PCI插槽間的連接信號線、與E2PROM之間的連接線和與局部總線之間的連接線。與PCI插槽的信號包括地址數(shù)據(jù)復(fù)用信號AD[31:O].總線命令信號C/BE[3:0]#和PCI協(xié)議控制信號PAR,F(xiàn)RAME#,IRDY#,TRDY#,STOP#,IDSEL,DEVSEL#,PERR#,SERR#。與串行E2PROM的連線有4根信號線:EESK,EEDO,EEDI和EECS。本設(shè)計中需要傳輸?shù)臄?shù)據(jù)量比較少,同時考慮到對早期的ISA設(shè)備的兼容性,所以采用了9052中的ISA模式。在ISA模式下,9052與ISA總線的連接有數(shù)據(jù)線LAD[7:0],地址線ISAA[1:O],LA[23:2],I/O讀寫信號線IOWR#,IORD#,地址鎖存BALE?! ?/p>
9052的工作方式及配置信息主要由E2PROM加載,這里采用了Motorola公司的93LC46B,E2PROM的數(shù)據(jù)可以提前用燒寫器燒好,也可以在線燒寫。配置信息包括:設(shè)備號DID、制造商號VID、子設(shè)備號SDID、子制造商號SVID、中斷號、設(shè)備類型號、局部空間基地址、局部空間描述符、工作模式、LOCAL端數(shù)據(jù)線的寬度、片選以及局部響應(yīng)控制CNTRL等信號。根據(jù)需要配置好這些信息,寫入E2PROM中。本設(shè)計中E2PROM的配置信息如表1所示?! ?/p>
2.2 CPLD控制部分設(shè)計
CPLD在系統(tǒng)中的主要作用是用來將PCI控制器傳輸過來的數(shù)據(jù),經(jīng)過一定的算法處理,得到DDS外圍管腳的狀態(tài)及向DDS中寫入控制寄存器數(shù)值,使DDS根據(jù)配置信息產(chǎn)生所需要的信號。
本設(shè)計中使用的CPLD是Altera公司的7000S系列,工作電壓為5 V,具有192個宏單元,采用通用JTAG方式下載。CPLD與DDS之間的接口電路主要包括8位數(shù)據(jù)線D[7:O]。6位地址線ADD[5:0],串并選擇信號PMODE,復(fù)位信號RESET,外部更新信號UDCLK、讀寫信號WR、RD和控制信號0RAMP、FDATA。如圖3所示?! ?/p>
考慮到DDS信號輸出的實時性和減少CPLD的宏單元的占用,本設(shè)計中使用9052的IOWR#信號去觸發(fā)DDS的寫入信號WR。DDS控制寄存器的寫入方式有串行和并行兩種,由PMODE管腳控制,當(dāng)PMODE信號為高時,為并行寫入模式,當(dāng)PMODE信號為低時,為串行工作模式。由于設(shè)計中PCI9052寫入CPLD的數(shù)據(jù)為8位并行輸入,所以在這里選用了并行的方式向DDS的控制寄存器中寫入數(shù)據(jù)。寫入的時序如圖4所示。
CPLD的程序在Altera公司提供的QuartusⅡ開發(fā)系統(tǒng)下通過Verilog HDL語言來實現(xiàn)。在QuartusⅡ環(huán)境中,可以方便地對波形進行仿真,便于查看和修改程序中可能存在的問題。QuartusⅡ仿真環(huán)境如圖5所示?! ?/p>
2.3 DDS輸出部分設(shè)計
DDS部分電路設(shè)計除了與CPLD之間的連接電路外,還有DDS的外圍電路設(shè)計。本系統(tǒng)中DDS的外圍電路主要包括電壓轉(zhuǎn)換、差分時鐘信號輸入和低通濾波器三個部分,如圖6所示。設(shè)計中的DDS采用的是AD公司的通用DDS芯片AD9852,芯片的工作電壓為3.3 V,最高系統(tǒng)時鐘為300 MHz?!?/p>
在整個系統(tǒng)中,PCI9052和CPLD的工作電壓為5 V,所以需要將工作電壓由5 V轉(zhuǎn)換為DDS正常工作的3.3 V,設(shè)計中采用了專用的電壓轉(zhuǎn)換模塊,完成電壓轉(zhuǎn)換工作,為DDS及其外圍電路提供3.3 V工作電壓。
差分時鐘輸入模塊是為了DDS輸出信號能夠得到較好頻譜純凈度,本設(shè)計采用了20 MHz的有源晶振,通過MCl00LVEL16D芯片產(chǎn)生20 MHz的差分時鐘信號,作為DDS的外部輸入時鐘。
為了濾去不需要的頻率成分和抑制輸出信號的雜散,在信號的輸出部分,采用了一個π型結(jié)構(gòu)的LC低通濾波器,濾波器的結(jié)構(gòu)圖如圖7所示?! ?/p>
3 系統(tǒng)主要軟件設(shè)計
系統(tǒng)的軟件部分包括面向硬件的WDM驅(qū)動程序和面向用戶的應(yīng)用程序兩部分,其結(jié)構(gòu)如圖8所示。WDM驅(qū)動負責(zé)硬件的電源管理、各種空間訪問和初始化等硬件控制操作。用戶通過應(yīng)用程序與驅(qū)動程序通信、與PC機進行數(shù)據(jù)交換,傳遞所需參數(shù)和控制信息,再通過信號生成部分根據(jù)設(shè)置的參數(shù)產(chǎn)生所需要的各種信號。
本設(shè)計的軟件部分開發(fā)環(huán)境為:Windows XP,WinXPDDK,MS.Net Framework SDK,DriverStudio 3.3,Win—driver5.02,VC++6.O。根據(jù)9852的工作特性,用戶軟件中設(shè)置了信號種類選擇、信號的頻率、分頻系數(shù)等參數(shù)的設(shè)置,還可以根據(jù)以后更進一步的需要,產(chǎn)生其他需要的各種實際信號,編譯完成的軟件如圖9所示。實際產(chǎn)生的信號如圖10所示?! ?/p>
4 結(jié)語
本文詳細介紹了基于PCI總線和CPLD的任意信號發(fā)生器的開發(fā)過程,并對其中的關(guān)鍵技術(shù),如PCI總線控制、CPLD邏輯控制、DDS信號輸出部分、控制軟件的編寫等主要部分做出分析和研究。提出了基于用戶軟件控制信號產(chǎn)生的任意信號發(fā)生器的設(shè)計思路并加以實現(xiàn)。通過頻譜儀觀察實際的輸出信號,信號的頻譜比較純凈,信號的樣式多樣,參數(shù)設(shè)置直觀方便。同時提供了一個通用的軟件平臺,可以根據(jù)以后的實際需要進行相關(guān)功能的擴展,以得到更多的信號樣式和一些非常規(guī)信號。
評論