基于FPGA和Qt技術的音頻廣播系統
3 終端設計
本文引用地址:http://www.104case.com/article/262225.htm 通過在SoPC中查看并更改SD卡音樂播放系統的鏈接結構,確定了系統的硬件平臺結構如圖3所示,其主要改動為增加了網絡模塊。
如圖3所示,系統通過使用Nios II軟核來處理SD卡信息的讀取、發送數據到音頻解碼模塊以及和服務器進行通信。硬件系統軟件的主要處理流程如圖4所示。
如圖4所示,當終端上電后,首先將初始化外部設備,設置初始音量等參數。當完成后,等待SD卡插入并掛載,系統創建支持的播放列表。上述初始化工作完成后,等待服務器發送播放命令并解析該播放項在播放列表中的索引值,找到后播放系統中存儲的音頻文件。
通常在Nios II軟核上實現UDP協議有兩種方式,一種為使用LwIp的方式進行處理,另一種方式則為自己實現該協議的簡化版本。本系統因所需的通信量較少,為了簡化軟核程序采用了自己實現的方式。自己實現UDP協議主要需要注意的問題有兩點:① ARP協議的實現;② UDP報文的組包和解包操作。組包流程為首先組成UDP數據包,然后組成Ip報文最終生成以太網中傳輸的以太網幀。這些報文格式都可以很容易地通過相關標準得到。同時,在調試系統UDP實現情況時,可通過WireShark網絡監測軟件對通信過程發送的信息進行監控,提高開發效率。
在UDP基本通信完成后,設定通信中服務器端命令報文的格式為:@@命令內容@;終端命令報文的格式為:@@終端序列@命令內容@。服務器程序和終端通過解析命令幀中的命令內容進行通信。
音頻編解碼芯片WM8731使用I2C協議進行控制,在系統工作過程中,Nios II軟核首先將檢測音頻DAC控制模塊中的FIFO是否滿,如果檢測結果為非滿,則Nios II軟核將通過Avalon總線讀取512字節數據到FIFO中。音頻DAC控制模塊采用48 KHz的采樣頻率將數據送到音頻解碼模塊。目前系統實現所支持的文件格式只有采用48 KHz采樣頻率和16bit采樣深度的wav格式文件。所支持的SD卡文件格式為FAT格式。
3 總結
本文介紹了一種使用軟硬件相結合實現的網絡定時音頻廣播系統,在Altera原有項目資源的基礎上通過擴展實現網絡通信UDP協議、通信協議制定、服務器程序設計進行設計。從上文中可以看出,本文所實現的平臺目前功能還比較單一,有待于借助網絡平臺的優勢對系統進一步擴展,增加如視頻監控、在線點播、流媒體播放等構成真正意義上的IP廣播方案。
參考文獻:
[1]陳琳.基于校園網的嵌入式廣播系統設計[J].計算機與數字工程,2009,37(7):96-98
[2]徐源.基于 FPGA 的以太網音頻廣播系統的設計[D].大連海事大學,2011
[3]HAI X,ZHAO C,JIANG X.Train Station Classification for Passenger Dedicated Line[J]. International Journal of Advancements in Computing Technology,2012,4(15)
[4]Altera DE2 多媒體開發平臺[R/OL].http://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=China&CategoryNo=60&No=31&PartNo=4
[5]LU Z,Li J,ZHANG Y.The reading/writing SD card system based on FPGA[C].Pervasive Computing Signal Processing and Applications (PCSPA), 2010 First International Conference on.IEEE,2010:419-422
[6]UEHARA T,SATO T,YAMAOKA K.The design and implementation of a music broadcasting system via IP multicast with user-authentication[C].Communications, Computers and signal Processing,2003.PACRIM.2003 IEEE Pacific Rim Conference on.IEEE,2003(2):984-987
[7]Liang Hongwei,Li Jiangai,Kan Lingling.Implementation of SD Card Music Player Using Altera DE2-70[C].Multimedia and Signal Processing (CMSP), 2011 International Conference on.IEEE,2011(2):150-153
fpga相關文章:fpga是什么
c++相關文章:c++教程
評論