新聞中心

EEPW首頁 > 模擬技術(shù) > 設(shè)計應(yīng)用 > 基于PC機(jī)的模擬信號發(fā)生器的設(shè)計

基于PC機(jī)的模擬信號發(fā)生器的設(shè)計

作者: 時間:2007-08-28 來源:網(wǎng)絡(luò) 收藏

摘要:本文介紹了一種利用設(shè)備來設(shè)計的方案。該方案通過利用內(nèi)的充分資源來產(chǎn)生各種所需波形,然后通過USB2.0接口輸出。在外采用DAC8580對數(shù)字信號進(jìn)行DA轉(zhuǎn)換,并用CPLD對整個電路進(jìn)行控制。
關(guān)鍵詞:CPLD;DAC;并串行轉(zhuǎn)換;數(shù)字濾波器

1 引言

在實際研發(fā)各種控制器、顯示器等涉及到數(shù)據(jù)采集的電子儀器的時候,對這些產(chǎn)品進(jìn)行性能測試是必不可少的。購買專用的信號發(fā)生器不但價格昂貴,而且可擴(kuò)展性能較差;把研發(fā)的產(chǎn)品放到實際工作環(huán)境,不但不便于調(diào)試,而且很多工業(yè)現(xiàn)場也不允許??紤]到PC機(jī)的普及程度,可以利用現(xiàn)有的資源來設(shè)計一個,同時運用CPLD進(jìn)行電路控制,可以方便的實現(xiàn)電路擴(kuò)展。

2 設(shè)計與實現(xiàn)

21 設(shè)計思想

在PC機(jī)上產(chǎn)生波形信號通過USB2.0接口傳入USB接收模塊。USB接收模塊將接收到的波形信號傳輸給CPLD。由于DAC8580是16位串行輸入的DA轉(zhuǎn)換器,CPLD需要對波形信號的數(shù)據(jù)格式進(jìn)行并行到串行的轉(zhuǎn)換。DAC8580對從CPLD傳輸過來的串行數(shù)據(jù)進(jìn)行DA轉(zhuǎn)換,輸出所需的模擬信號。

模擬信號發(fā)生器整體框圖如圖一所示。

圖一 整體框圖

22 基于CPLD的數(shù)據(jù)并串行轉(zhuǎn)換

DAC8580是串行輸入的DA轉(zhuǎn)換器,而從USB模塊中傳出的是并行數(shù)據(jù),所以需要在CPLD中進(jìn)行數(shù)據(jù)的并串行轉(zhuǎn)換。數(shù)據(jù)轉(zhuǎn)換器的工作原理圖如圖二所示,其中TXD[7:0]是并行數(shù)據(jù)輸入信號,TCLK是數(shù)據(jù)轉(zhuǎn)換器的時鐘信號,RESET是數(shù)據(jù)轉(zhuǎn)換器控制模塊內(nèi)部復(fù)位信號,MWDSL是電平敏感鎖存器使能信號,TRST是一位鎖存器模塊復(fù)位信號,TXDATA是串行數(shù)據(jù)輸出信號。當(dāng)數(shù)據(jù)轉(zhuǎn)換器開始工作的時候,電平敏感鎖存器使能信號(MWDSL)有效,并行數(shù)據(jù)被送入鎖存器,之后,控制模塊產(chǎn)生并入串出移位寄存器裝入信號(STLD),以在時鐘信號(TCLK)的作用下,將并行數(shù)據(jù)裝入并入串出移位寄存器,然后,控制模塊再產(chǎn)生并入串出移位寄存器移位信號(STLD),并在時鐘信號(TCLK)的作用下,將并行數(shù)據(jù)移出。

圖二 數(shù)據(jù)并串行轉(zhuǎn)換器工作原理圖

本設(shè)計中采用Altera的CPLD(FLEX EPF10K20RC240)來實現(xiàn)數(shù)據(jù)轉(zhuǎn)換器的硬件電路功能,并用Quartus Ⅱ軟件進(jìn)行源文件設(shè)計。在電路頂層,我們采用原理圖和結(jié)構(gòu)圖的形式進(jìn)行數(shù)據(jù)轉(zhuǎn)換器的整體框架設(shè)計。Quartus Ⅱ為實現(xiàn)不同的邏輯功能提供了大

量的基本單元符號和宏功能模塊,這些符號與模塊的管腳定義與功能一般都是默認(rèn)的,而在結(jié)構(gòu)圖輸入方式中,我們可以根據(jù)自行定義模塊的管腳與功能。結(jié)構(gòu)圖定義的模塊上只是一些自行定義的方框和管腳符號, 沒有涉及其內(nèi)部具體邏輯, 因而這種模塊稱之為頂層模塊。頂層模塊的內(nèi)部具體邏輯可以通過硬件描述語言來編寫,也可以通過底層模塊來充實和支持頂層模塊。底層模塊是與頂層模塊相對的概念,一個源文件可以包涵多級模塊,但是最底層的模塊必然是一種由各種門和觸發(fā)器等基本邏輯器件組成的基本原理圖或者是用硬件描述語言描述的電路邏輯,可以說它是頂層原理圖的內(nèi)核所在。

電平敏感鎖存器、一位鎖存器模塊以及控制模塊部分調(diào)用系統(tǒng)庫內(nèi)的宏模塊, 因為這一部分硬件電路已很成熟, 而且并不是很復(fù)雜。并入串出移位寄存器采用結(jié)構(gòu)圖方式輸入,其內(nèi)部具體邏輯通過VHDL硬件描述語言來實現(xiàn),其VHDL 源文件如下:

LIBRARY ieee;

USE ieee.std_logic_1164.all;

ENTITY parrial IS

PORT

(

STLD : IN STD_LOGIC;

CLK : IN STD_LOGIC;

Q1 : IN STD_LOGIC;

Q2 : IN STD_LOGIC;

Q3 : IN STD_LOGIC;

Q4 : IN STD_LOGIC;

Q5 : IN STD_LOGIC;

Q6 : IN STD_LOGIC;

Q7 : IN STD_LOGIC;

Q8 : IN STD_LOGIC;

shiftout : OUT STD_LOGIC

);

END parrial;

ARCHITECTURE parrial_architecture OF parrial IS

signal latch : std_logic_vector (7 downto 0) ;

begin

process (CLK,STLD,Q1 ,Q2 ,Q3,Q4 ,Q5 ,Q6 ,Q7,Q8)

begin

if (CLK’event and CLK=‘1’) then

if (STLD =‘1’) then

latch(7) = Q8;

latch(6) = Q7;

latch(5) = Q6;

latch(4) = Q5;

latch(3) = Q4;

latch(2) = Q3;

latch(1) = Q2;

latch(0) = Q1;

else

latch(0) = latch(1) ;

latch(1) = latch(2) ;

latch(2) = latch(3) ;

latch(3) = latch(4) ;

latch(4) = latch(5) ;

latch(5) = latch(6) ;

latch(6) = latch(7) ;

latch(7) = ‘1’;

end if ;

end if ;

end process;

shiftout=latch(0);

END parrial_architecture;

通過調(diào)試、編譯,最后得出仿真結(jié)果,接收的并行數(shù)據(jù)為:D0=‘1’,D1=‘0’,D2=‘1’,D3=‘0’,D4=‘0’,D5=‘1’,D6=‘1’,D7=‘0’,仿真圖如圖三所示。

圖三 數(shù)據(jù)轉(zhuǎn)換器仿真圖

23 基于CPLDDA轉(zhuǎn)換

DAC8580是16位串行輸入、電壓輸出,高速低噪聲DA轉(zhuǎn)換器,可以實現(xiàn)2~16倍內(nèi)部插值。最高數(shù)據(jù)更新率為16MSPS。其內(nèi)部邏輯電路如圖四所示。

圖四 DAC8580內(nèi)部邏輯電路

DAC8580通過3條信號線與CPLD進(jìn)行通信,這3跟信號線分別是:FSYNC(字節(jié)時鐘信號)、SLCK(位時鐘信號)、SDIN(串行數(shù)據(jù)輸入)。輸入數(shù)據(jù)在SCLK的上升沿被鎖存在輸入移位寄存器中(最高有效位最先輸入),F(xiàn)SYNC的下降沿將最后一次接收到的一個16位的輸入數(shù)據(jù)(被認(rèn)證為有效的數(shù)據(jù))從移位寄存器鎖存到暫時存儲器。暫時存儲器可以通過管腳控制來選擇連接到數(shù)字濾波器或者連接到DAC鎖存器。在FSYNC的下降沿后的第二個SCLK的上升沿,數(shù)據(jù)被轉(zhuǎn)移到DAC鎖存器(數(shù)字濾波器關(guān)閉),或是轉(zhuǎn)移到數(shù)字濾波器(數(shù)字濾波器開啟)。數(shù)字濾波器的工作也需要一個持續(xù)的SCLK信號。

CPLD通過控制OSR2、OSR1、BPB、RSTB四個管腳的信號值,可以實現(xiàn)對DAC8580中的數(shù)字濾波器的設(shè)置。可以通過在CPLD中集成一個CASE結(jié)構(gòu)來實現(xiàn)多頻率的DA轉(zhuǎn)換,串行數(shù)據(jù)輸入頻率與經(jīng)過DAC內(nèi)部數(shù)字濾波器插值后的數(shù)據(jù)頻率關(guān)系如圖五所示。

圖五 插值后數(shù)據(jù)頻率與輸入頻率的關(guān)系圖

3 結(jié)束語

本文利用CPLD的邏輯控制技術(shù)和DAC8580高效的DA轉(zhuǎn)換能力,完成了對PC機(jī)內(nèi)產(chǎn)生的數(shù)字波形到模擬信號的轉(zhuǎn)換。最后,通過軟件仿真,得到了預(yù)期目標(biāo)。

本文的創(chuàng)新點在于對傳統(tǒng)的模擬信號發(fā)生器進(jìn)行了創(chuàng)造性重構(gòu), 利用PC機(jī)和數(shù)模轉(zhuǎn)換技術(shù)實現(xiàn)了模擬信號發(fā)生器的基本功能;并且由于CPLD可以以任意位寬實現(xiàn)運算,所以該設(shè)計可以方便的進(jìn)行擴(kuò)展,實現(xiàn)更高的系統(tǒng)精度。

參考文獻(xiàn)

[1] Altera Corporation. University Program Design Laboratory Package. http://www.altera.com

[2] 李永軍,胡昌林,胡文華. 基于CPLD的某BIT系統(tǒng)研制,微計算機(jī)信息[J], 2006,3: 177-178

[3] Altera Corporation. Quartus Ⅱ Handbook. http://www.altera.com

[4] Texas Instruments Incorporated. DAC8580 Data Sheet. http://www.ti.com

[5] Uwe Meyer-Baese. 數(shù)字信號處理的FPGA實現(xiàn). 北京:清華大學(xué)出版社,2003



評論


相關(guān)推薦

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

關(guān)閉