于小強,楊 暉,2,,楊海馬,宋磊磊,李 軍,V.Zivkovic,胡恒慶
(1.上海理工大學(xué)光學(xué)與電子信息工程學(xué)院,上海 200093;2.上海理工大學(xué),上海市現(xiàn)代光學(xué)重點實驗室,上海 200093;3.阿德雷德大學(xué)電氣與電子工程學(xué)院,阿德雷德 5005 )
目前,信號發(fā)生器廣泛應(yīng)用于通信、測控、醫(yī)療等領(lǐng)域,但是所采用的精密儀器大多成本過高,造成資源的浪費。所以,如何采用低成本實現(xiàn)高精度的信號發(fā)生器是亟需要解決的問題。通常,采用可編程DDS芯片[1-2]為核心,通過內(nèi)置函數(shù)查找表的方式進行設(shè)計,如文獻[1],不僅成本高且波形種類少;文獻[2]中提出改進,在波形類型上加以擴充,但是在控制上及數(shù)據(jù)存儲方面沒有詳細方案,幅頻的精度調(diào)節(jié)可行性不高。結(jié)合上述方案提出文中的設(shè)計方法。
為了克服傳統(tǒng)信號發(fā)生器[3]的可調(diào)節(jié)性差的缺點,該設(shè)計主要先進行以下改進:(1)具備波形數(shù)據(jù)存儲空間;(2)波形輸出頻率10 Hz~20 kHz,輸出幅值0~10 V,最大輸出功率18 W;(3)幅頻手動可控,幅值增益最小調(diào)節(jié)0.5 dB,自定義頻率調(diào)節(jié)單位;(4)無波形數(shù)據(jù)輸出時,噪聲輸出電壓小于0.4 mV.
系統(tǒng)如圖1所示,主要由數(shù)據(jù)存儲單元、幅頻調(diào)節(jié)單元及波形數(shù)據(jù)處理單元構(gòu)成。主控器通過SDIO接口從FAT文件系統(tǒng)中獲取波形數(shù)據(jù)文件,通過SPI總線將WAV數(shù)據(jù)流送至解碼器,解碼后高精度D/A輸出,經(jīng)過程控增益放大器調(diào)節(jié)幅值后送至功率放大器放大輸出。程控放大器增益由主控器控制。
圖1 系統(tǒng)結(jié)構(gòu)
系統(tǒng)的主控制芯片采用的是32位處理器STM32F103ZET6,該芯片使用高性能的ARM Cortex-M3
32位的RISC內(nèi)核,工作頻率為72 MHz,內(nèi)置高達512 K字節(jié)的閃存和64 K字節(jié)的SRAM.具有SDIO接口,最大數(shù)據(jù)傳輸速度48 Mbit/s.并且提供兩個SPI串行接口,最大通信速率18 Mbit/s.
主控器支持MMC卡系統(tǒng)規(guī)范4.2版中的3種數(shù)據(jù)總線模式:1 bit、4 bits和8 bits.文中采用2.0版本Micro SD卡,通過4 bits數(shù)據(jù)總線模式完成數(shù)據(jù)通信。SD存儲卡與控制器的接口定義如下:
表1 SDIO接口定義
表1中,SDIO_CK時鐘是通過PC12引腳連接到SD卡的,是SDIO接口與SD卡用于同步的時鐘。所有命令及命令響應(yīng),都是通過SDIO_CMD引腳來傳輸?shù)?4 bits數(shù)據(jù)總線是PC[8:11] 。主控器與Micro SD的硬件連接如圖2所示,
圖2 主控器與SDIO、SPI接口電路
波形數(shù)據(jù)采用的是WAV數(shù)據(jù)流存儲與解碼,解碼芯片采用高性能解碼芯片VS1053,支持MP3及WAV數(shù)據(jù)流解碼。且內(nèi)部具有低功耗DSP 處理器內(nèi)核VS_DSP4,為用戶提供5 KB的指令RAM和0.5 KB的數(shù)據(jù) RAM。通過SPI總線接收數(shù)據(jù)流,解碼后18位高精度模擬量輸出,且內(nèi)置部分函數(shù)測試查找表。VS10534是通過7根線同主控器連接的,VS-XRST是復(fù)位信號線,低電平有效,VS-DREO是數(shù)據(jù)請求信號,通知主機是否可以接收數(shù)據(jù),剩余的為SPI2四線接口,硬件電路見圖1。
2.4.1 幅值調(diào)節(jié)電路
解碼器模擬量輸出后,為了達到高精度的幅值控制,采用程控增益放大器PGA2310。由于其增益調(diào)節(jié)范圍為+31.5~-95.5 dB,最小調(diào)歩距為0.5 dB,且噪聲低、失真小。硬件連接電路如圖3所示,主控器通過PGA_CS、PGA_DATA、PGA_CLK引腳控制輸出信號與輸入信號之間的幅值比。由于解碼器輸出左右通道2路信號,程控增益放大器同樣也具備;2路放大與輸出,該設(shè)計只采用了圖中的一路信號VSOUT1及一路增益輸出信號POUT1。
圖3 幅值控制電路
2.4.2 功率放大電路
解碼器的信號輸出端已足夠驅(qū)動20 Ω的負載,但是考慮到信號發(fā)生器的輸出信號所用的場合不同,輸出級的負載也不同,所以設(shè)計功率放大電路以滿足不同場合的需要。該設(shè)計采用TDA2030功率放大芯片,采用正負供電電源。該芯片具有上升速率高、失真小、輸出功率大等優(yōu)點,最大輸出功率可達18 W,完全滿足常用場合要求。程控增益輸出信號通過1 μF的極性電容后與TDA2310的1號腳相連。如圖4所示:
圖4 功率放大電路
為了實現(xiàn)不同種類的信號輸出,利用SDIO接口將波形數(shù)據(jù)存儲在Micro SD卡中,并且在SDIO底層硬件驅(qū)動的基礎(chǔ)上移植FAT文件系統(tǒng)。以正弦波數(shù)據(jù)存儲為例,波形數(shù)據(jù)是以數(shù)字序號為文件名的WAV音頻文件。不同頻率的波形以不同數(shù)字作為文件名。FAT文件系統(tǒng)通過函數(shù)將存儲區(qū)的WAV波形文件名信息讀取出,可通過結(jié)構(gòu)體finfo訪問:f_mount(0,&fs);//注冊工作區(qū),初始化盤符為0f_opendir(&dirs,path);//打開卡的根目錄,并將這個根目錄關(guān)聯(lián)到dirs這個結(jié)構(gòu)指f_readdir(&dirs,&finfo);//讀取目錄信息result=strstr(finfo.lfname,".wav");//判斷文件名圖1中,4個按鍵控制幅值與頻率,通過調(diào)用函數(shù)KEY_Scan()進行按鍵掃描,按鍵S1、S2調(diào)節(jié)輸出波形幅值,按鍵S3、S4調(diào)節(jié)波形頻率。如圖5。
圖5 波形幅頻控制流程
通過SPI2接口對VS1053解碼器進行配置及數(shù)據(jù)流的傳輸。解碼器的寫時序如圖6所示,讀寫過程相似,都是先發(fā)指令后發(fā)地址,最后傳輸數(shù)據(jù),數(shù)據(jù)通過SI端寫入,SO維持低電平,通過判斷DREQ電平?jīng)Q定是否進行下一步操作。
圖6 解碼器寫時序
下面以一次數(shù)據(jù)傳輸為例:復(fù)位VS1053,調(diào)用VS_Soft_Reset();配置工作寄存器,調(diào)用WriteRegister(3,0x98,0x00),設(shè)置VS1053的時鐘3倍頻,調(diào)用WriteRegister(5,0xBB,0x81),采樣率設(shè)置為48 K;傳輸波形數(shù)據(jù),調(diào)用VS1053_WriteByte( buffer[count] ),一次最大32個字節(jié),解碼數(shù)據(jù)流并模擬量輸出。
采用上述配置,在Micro SD卡中存儲頻率10 kHz,幅值為0.4 V的正弦波形,解碼后,經(jīng)過程控增益放大器10倍增益放大,F(xiàn)OUT端信號輸出,示波器測得波形圖如圖7所示。
圖7 10 kHz正弦波形
由示波器測得結(jié)果可見,幅頻可控且波形頻率精確,最大誤差小于0.5%。無輸入時,基本無電壓。
設(shè)計了基于SDIO及SPI接口的信號發(fā)生器,移植了FAT文件系統(tǒng)作為系統(tǒng)存儲,采用按鍵及串口進行幅頻調(diào)節(jié),實驗證明可實現(xiàn)不同種類的波形輸出,且幅頻調(diào)節(jié)精度高。
參考文獻:
[1] 王丹.采用DDS頻率合成的虛擬信號發(fā)生器研究.傳感技術(shù)學(xué)報,2007,20(3) :586-591.
[2] 郝迎吉.基于VS1003 解碼器的信號發(fā)生器.儀表技術(shù)與傳感器,2013(2):19-20.
[3] 盧華英.基于LabVIEW和FPGA的模擬信號源設(shè)計.測控技術(shù),2013(5):9-11.