任意波形發生器(ArbitraryWaveGenerator,以下簡稱AWG)在通信系統、測試系統等方面得到廣泛應用。本文利用自主研制的150MSPS(MillionSamplingPerSecond)12位DAC(DigitalAnalogConverter)和300MSPS12位DAC,基于CPLD技術,設計了一種AWG。要產生的波形通過上位機軟件設置,然后將波形數據下載到AWG,AWG在CPLD的高速控制電路下將波形數據送高速DAC進行轉換形成所要的波形。下面先分析AWG的硬件結構。
任意波形發生器的硬件結構
AWG的工作過程是,首先接收上位機送來的波形數字信號存儲到SRAM,然后啟動控制電路從SRAM取出數據送DAC進行數摸轉換,轉換后的模擬信號送低通濾波器形成波形。如果DAC工作在150MSPS的速度下,可以以150MHz的頻率送數據到DAC進行轉換,微控制器的晶振輸入一般工作在40MHz以下,沒有這么高的速度送出數據到DAC,所以考慮采用CPLD構建硬件控制電路。數據首先傳送到SRAM,然后在CPLD硬件控制電路的控制下,以150MHz的頻率從SRAM中取數送DAC轉換。其體系結構如圖一所示。如果要形成正弦周期信號,每周期4個點就可以合成一個波形,此時可以輸出約38MHz的高頻信號。
CPLD(ComplexProgrammableLogicDevice,復雜可編程邏輯器件)是在傳統的PAL、GAL基礎上發展而來的,具有多種工作方式和高集成、高速、高可靠性等明顯的特點,在超高速領域和實時測控方面有非常廣泛的應用。與FPGA相比,CPLD比較適合計算機總線控制、地址譯碼、復雜狀態機、定時/計數器、存儲控制器等I/O密集型應用,且無須外部配置ROM、時延可預測等。目前的CPLD普遍基于E2PROM和Flash電可擦技術,可實現循環擦寫。Altera公司的MAX7000CPLD配置有JTAG口,支持ISP編程。用VHDL或VerilogHDL(HardwareDescriptionLanguage,硬件描述語言)設計的程序,借助EDA工具經過行為仿真、功能仿真和時序仿真后,通過綜合工具產生網表,下載到目標器件,從而生成硬件電路。
本裝置中,CPLD采用Altera公司的EPM7128AE,其最高工作頻率達200MHz。微控制器采用Atmel公司AVR微控制器AT90S8515,其主要特征有:增強型RISC體系結構CPU,8KFlash,512字節EEPROM,512字節InternalSRAM,UART,SPI,寬電壓范圍:2.7-6.0V。SRAM選用64Kx16的CY7C1021V。
下面對CPLD控制電路進行分析。
CPLD電路設計
CPLD主要負責以高速率(150MHz)從SRAM中取數到DAC,其核心電路是一個13位的計數器。波形數據文件的大小為8Kbytes。如果要擴大波形文件的大小,可以根據需要增加CPLD的地址計數器容量。在CPLD內部構造的DAC控制電路如圖二所示,下面對其控制流程進行分析。
PA[15:0]接AT90S8515的2個8位并行口;D[15:0]接SRAM的數據線D0-D15;AD[12:0]接SRAM的地址線A0-A12;DB[15:0]接DAC的D0-D11(D12-D15不用);CLK_SEL選擇計數器的時鐘輸入方式;CLK_AVR接MCU的一個I/O端,通過軟件編程在CLK_AVR輸出脈沖信號作為計數器的時鐘;CLK_CPLD接150MHz時鐘信號;/WR和/WE接MCU的I/O端。
當PC機下載數據時,其控制流程如下:
①CLK_SEL=0,選擇軟件時鐘
②復位地址計數器
③MCU送數據到PA[15:0]
④/WR從0變到1,打開從MCU到SRAM的數據緩沖器將數據寫入SRAM
⑤給CLK_AVR一個脈沖,讓計數器增1從而指向SRAM的下一個接收地址單元。
當數據下載完成后,啟動CPLD從SRAM取數據到DAC,其控制流程如下:
①WE=1,打開從SRAM到DAC的緩沖器。
②CLK_SEL=1,計數器的輸入時鐘選擇150MHz的外部時鐘,
③復位地址計數器,外部高速時鐘的驅動下地址計數器開始計數,從SRAM中取出數據送到DAC進行數據轉換。
CPLD的編程在QuartusII5.0環境下進行,Quartus的設計輸入支持AHDL、VHDL、VerilogHDL等硬件描述語言的程序輸入和圖形輸入,這里采用圖形輸入的方式。完成設計輸入后,依次進行編譯、功能仿真、時序仿真。下圖三是CPLD取數據到DAC進行轉換的時序仿真結果。圖中CPLD的工作頻率為125MHz,實際工作中最高工作在200MHz,從圖中可以看出,每來一個時鐘,CPLD從SRAM中取出一個數據送DAC進行A/D轉換。最后將結果下載到CPLD內部運行。
軟件設計
AWG的軟件采用CodeVisionAVRC編寫,AT90S8515支持ISP(InSystemProgramming,在系統編程),程序編譯后經JTAG口下載到AT90S8515中。為配合該裝置的使用,我們在VB開發環境下設計了上位機軟件,其運行界面如圖四所示,在該軟件中選擇要產生的波形,然后下載到AWG。
AWG和PC機采用RS-232串口通信,上電運行后等待PC傳送波形,接收完波形數據后,啟動CPLD從SRAM中取出數據送DAC進行D/A轉換,經低通濾波器形成輸出波形。
結語
AWG和PC機通過RS232串口連接后,運行PC機軟件,在PC機上選擇要生成的波形,生成波形數據下載到AWG,可以選擇線性調制技術的絕對相移鍵控(BPSK)、相對相移鍵控(DPSK)、四相相移鍵控(QPSK)、交錯正交相移鍵控(OQPSK)、π/4偏移差分相移鍵控(π/4—DQPSK),恒包絡調制的二進制頻移鍵控(FSK)、最小頻移鍵控(MSK)、高斯濾波最小頻移鍵控(GMSK),混合線性和恒包絡調制技術的M相相移鍵控(MPSK)、多進制正交幅度調制(QAM)、多進制頻移鍵控(MFSK)等波形,下載到AWG生成所要的波形。下圖五是DAC工作在125MHz下合成的2FSK(FrequencyShiftKey)波形。
-
cpld
+關注
關注
32文章
1257瀏覽量
169584 -
通信
+關注
關注
18文章
6069瀏覽量
136340 -
計數器
+關注
關注
32文章
2261瀏覽量
94924
發布評論請先 登錄
相關推薦
評論