?

基于SDIO與SPI接口的信號發生器

2014-03-26 00:58于小強楊海馬宋磊磊Zivkovic胡恒慶
儀表技術與傳感器 2014年12期
關鍵詞:解碼器數據流解碼

于小強,楊 暉,2,,楊海馬,宋磊磊,李 軍,V.Zivkovic,胡恒慶

(1.上海理工大學光學與電子信息工程學院,上海 200093;2.上海理工大學,上海市現代光學重點實驗室,上海 200093;3.阿德雷德大學電氣與電子工程學院,阿德雷德 5005 )

0 引言

目前,信號發生器廣泛應用于通信、測控、醫療等領域,但是所采用的精密儀器大多成本過高,造成資源的浪費。所以,如何采用低成本實現高精度的信號發生器是亟需要解決的問題。通常,采用可編程DDS芯片[1-2]為核心,通過內置函數查找表的方式進行設計,如文獻[1],不僅成本高且波形種類少;文獻[2]中提出改進,在波形類型上加以擴充,但是在控制上及數據存儲方面沒有詳細方案,幅頻的精度調節可行性不高。結合上述方案提出文中的設計方法。

1 系統參數與設計

為了克服傳統信號發生器[3]的可調節性差的缺點,該設計主要先進行以下改進:(1)具備波形數據存儲空間;(2)波形輸出頻率10 Hz~20 kHz,輸出幅值0~10 V,最大輸出功率18 W;(3)幅頻手動可控,幅值增益最小調節0.5 dB,自定義頻率調節單位;(4)無波形數據輸出時,噪聲輸出電壓小于0.4 mV.

系統如圖1所示,主要由數據存儲單元、幅頻調節單元及波形數據處理單元構成。主控器通過SDIO接口從FAT文件系統中獲取波形數據文件,通過SPI總線將WAV數據流送至解碼器,解碼后高精度D/A輸出,經過程控增益放大器調節幅值后送至功率放大器放大輸出。程控放大器增益由主控器控制。

圖1 系統結構

2 信號發生器硬件設計

2.1 硬件介紹

系統的主控制芯片采用的是32位處理器STM32F103ZET6,該芯片使用高性能的ARM Cortex-M3

32位的RISC內核,工作頻率為72 MHz,內置高達512 K字節的閃存和64 K字節的SRAM.具有SDIO接口,最大數據傳輸速度48 Mbit/s.并且提供兩個SPI串行接口,最大通信速率18 Mbit/s.

2.2 SDIO接口電路設計

主控器支持MMC卡系統規范4.2版中的3種數據總線模式:1 bit、4 bits和8 bits.文中采用2.0版本Micro SD卡,通過4 bits數據總線模式完成數據通信。SD存儲卡與控制器的接口定義如下:

表1 SDIO接口定義

表1中,SDIO_CK時鐘是通過PC12引腳連接到SD卡的,是SDIO接口與SD卡用于同步的時鐘。所有命令及命令響應,都是通過SDIO_CMD引腳來傳輸的,4 bits數據總線是PC[8:11] 。主控器與Micro SD的硬件連接如圖2所示,

圖2 主控器與SDIO、SPI接口電路

2.3 SPI接口解碼器電路設計

波形數據采用的是WAV數據流存儲與解碼,解碼芯片采用高性能解碼芯片VS1053,支持MP3及WAV數據流解碼。且內部具有低功耗DSP 處理器內核VS_DSP4,為用戶提供5 KB的指令RAM和0.5 KB的數據 RAM。通過SPI總線接收數據流,解碼后18位高精度模擬量輸出,且內置部分函數測試查找表。VS10534是通過7根線同主控器連接的,VS-XRST是復位信號線,低電平有效,VS-DREO是數據請求信號,通知主機是否可以接收數據,剩余的為SPI2四線接口,硬件電路見圖1。

2.4 輸出波形調節硬件電路設計

2.4.1 幅值調節電路

解碼器模擬量輸出后,為了達到高精度的幅值控制,采用程控增益放大器PGA2310。由于其增益調節范圍為+31.5~-95.5 dB,最小調歩距為0.5 dB,且噪聲低、失真小。硬件連接電路如圖3所示,主控器通過PGA_CS、PGA_DATA、PGA_CLK引腳控制輸出信號與輸入信號之間的幅值比。由于解碼器輸出左右通道2路信號,程控增益放大器同樣也具備;2路放大與輸出,該設計只采用了圖中的一路信號VSOUT1及一路增益輸出信號POUT1。

圖3 幅值控制電路

2.4.2 功率放大電路

解碼器的信號輸出端已足夠驅動20 Ω的負載,但是考慮到信號發生器的輸出信號所用的場合不同,輸出級的負載也不同,所以設計功率放大電路以滿足不同場合的需要。該設計采用TDA2030功率放大芯片,采用正負供電電源。該芯片具有上升速率高、失真小、輸出功率大等優點,最大輸出功率可達18 W,完全滿足常用場合要求。程控增益輸出信號通過1 μF的極性電容后與TDA2310的1號腳相連。如圖4所示:

圖4 功率放大電路

3 軟件設計

3.1 波形數據提取及幅頻調節

為了實現不同種類的信號輸出,利用SDIO接口將波形數據存儲在Micro SD卡中,并且在SDIO底層硬件驅動的基礎上移植FAT文件系統。以正弦波數據存儲為例,波形數據是以數字序號為文件名的WAV音頻文件。不同頻率的波形以不同數字作為文件名。FAT文件系統通過函數將存儲區的WAV波形文件名信息讀取出,可通過結構體finfo訪問:f_mount(0,&fs);//注冊工作區,初始化盤符為0f_opendir(&dirs,path);//打開卡的根目錄,并將這個根目錄關聯到dirs這個結構指f_readdir(&dirs,&finfo);//讀取目錄信息result=strstr(finfo.lfname,".wav");//判斷文件名圖1中,4個按鍵控制幅值與頻率,通過調用函數KEY_Scan()進行按鍵掃描,按鍵S1、S2調節輸出波形幅值,按鍵S3、S4調節波形頻率。如圖5。

圖5 波形幅頻控制流程

3.2 WAV數據流解碼輸出

通過SPI2接口對VS1053解碼器進行配置及數據流的傳輸。解碼器的寫時序如圖6所示,讀寫過程相似,都是先發指令后發地址,最后傳輸數據,數據通過SI端寫入,SO維持低電平,通過判斷DREQ電平決定是否進行下一步操作。

圖6 解碼器寫時序

下面以一次數據傳輸為例:復位VS1053,調用VS_Soft_Reset();配置工作寄存器,調用WriteRegister(3,0x98,0x00),設置VS1053的時鐘3倍頻,調用WriteRegister(5,0xBB,0x81),采樣率設置為48 K;傳輸波形數據,調用VS1053_WriteByte( buffer[count] ),一次最大32個字節,解碼數據流并模擬量輸出。

4 實驗結果及分析

采用上述配置,在Micro SD卡中存儲頻率10 kHz,幅值為0.4 V的正弦波形,解碼后,經過程控增益放大器10倍增益放大,FOUT端信號輸出,示波器測得波形圖如圖7所示。

圖7 10 kHz正弦波形

由示波器測得結果可見,幅頻可控且波形頻率精確,最大誤差小于0.5%。無輸入時,基本無電壓。

5 結語

設計了基于SDIO及SPI接口的信號發生器,移植了FAT文件系統作為系統存儲,采用按鍵及串口進行幅頻調節,實驗證明可實現不同種類的波形輸出,且幅頻調節精度高。

參考文獻:

[1] 王丹.采用DDS頻率合成的虛擬信號發生器研究.傳感技術學報,2007,20(3) :586-591.

[2] 郝迎吉.基于VS1003 解碼器的信號發生器.儀表技術與傳感器,2013(2):19-20.

[3] 盧華英.基于LabVIEW和FPGA的模擬信號源設計.測控技術,2013(5):9-11.

猜你喜歡
解碼器數據流解碼
《解碼萬噸站》
科學解碼器(一)
科學解碼器(二)
科學解碼器(三)
汽車維修數據流基礎(上)
汽車維修數據流基礎(下)
線圣AudioQuest 發布第三代Dragonfly Cobalt藍蜻蜓解碼器
解碼eUCP2.0
NAD C368解碼/放大器一體機
Quad(國都)Vena解碼/放大器一體機
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合