基于FPGA和Qt技術(shù)的音頻廣播系統(tǒng)
摘要:介紹了一種使用Altera DE2開發(fā)板以及Qt技術(shù)實現(xiàn)的定時音頻廣播系統(tǒng)。該系統(tǒng)使用C/S架構(gòu),使用跨平臺Qt技術(shù)在Ubuntu系統(tǒng)平臺下建立起服務(wù)器程序,用于管理所有在線的DE2音頻播放終端,使用Sqlite輕量級數(shù)據(jù)庫進行數(shù)據(jù)存儲。通過基于Nios II實現(xiàn)的軟核進行外圍設(shè)備的管理,并播放位于SD卡中的音頻文件。
本文引用地址:http://m.ptau.cn/article/262225.htm引言
隨著數(shù)字和網(wǎng)絡(luò)等技術(shù)的發(fā)展,廣播技術(shù)已經(jīng)呈現(xiàn)出越來越多元化的趨勢,其最主要的趨勢便是從模擬到數(shù)字的轉(zhuǎn)化。從宏觀來說,廣播技術(shù)大體上可以分為三類:傳統(tǒng)公共廣播系統(tǒng),采用的是定壓式線路,傳輸損耗小,負(fù)載連接較為方便,但是傳輸?shù)碾妷狠^高,需在揚聲器端加接降壓設(shè)備;數(shù)字可尋址音頻廣播系統(tǒng),此類系統(tǒng)采用數(shù)字信號進行音頻信號的傳輸,并具有可尋址特性,具有更遠(yuǎn)的傳輸距離和可靠性;流媒體(IP)智能廣播系統(tǒng),其特點是無需另行布線,結(jié)合網(wǎng)絡(luò)的便利性,系統(tǒng)的擴展性進一步增強,將廣播技術(shù)與其他技術(shù)進行充分融合,易于構(gòu)建功能更加完善和易于管理的系統(tǒng)平臺。
目前校園中使用的系統(tǒng)大都還停留在傳統(tǒng)公共廣播系統(tǒng)層次,由于線路老化等原因,如出現(xiàn)故障則不容易維修,而重新布線容易增加成本?;诖?,本文提出一種使用FPGA和網(wǎng)絡(luò)技術(shù)實現(xiàn)的音頻廣播方案,使用現(xiàn)有的網(wǎng)絡(luò)線路進行數(shù)據(jù)的傳輸。因FPGA高度的可編程特性可以將控制電路做得更加集成,易于布設(shè),同時增加了系統(tǒng)的可擴展性。
1 系統(tǒng)概述
本系統(tǒng)主要包括DE2播放終端(以下簡稱終端)以及服務(wù)器程序兩部分。服務(wù)器程序負(fù)責(zé)制定并管理播放項列表以及與終端的交互,終端接收服務(wù)器發(fā)送的命令信息并驅(qū)動擴音設(shè)備播放所需音頻。系統(tǒng)整體結(jié)構(gòu)如圖1所示。
由圖1可以看到本系統(tǒng)支持多終端的管理,采用SD卡的方式進行音頻廣播是因為相較使用直接的數(shù)字編碼在線路傳輸來說,SD卡的方式在需要播放音頻時,只需由服務(wù)器發(fā)出相應(yīng)的很短的命令報文至終端,這保證了各個揚聲器播放在時間上的一致性。不會因為系統(tǒng)網(wǎng)絡(luò)架構(gòu)及解碼速度不一致而產(chǎn)生播放進度不同步問題。因系統(tǒng)采用短命令報文形式且需進行廣播傳輸,故系統(tǒng)使用的通信方式為UDP(User Datagram Protocol,用戶數(shù)據(jù)報)的通信方式。
FPGA的可編程特性決定了其可參考資源很多,首要的參考資源為開發(fā)板自帶光盤文件。通過查閱開發(fā)板光盤可發(fā)現(xiàn)與本項目相關(guān)的有兩個資源:SD卡音樂播放系統(tǒng),網(wǎng)絡(luò)測試程序。SD卡音樂播放系統(tǒng)實現(xiàn)了本項目中所需要的SD卡音頻播放功能。網(wǎng)絡(luò)測試程序只是通過硬編碼的形式將一個以太網(wǎng)幀通過DM9000A網(wǎng)卡發(fā)送出去,沒有實現(xiàn)本系統(tǒng)所需的UDP協(xié)議及解析工作。依托于Altera提供的現(xiàn)有平臺,可將系統(tǒng)工作簡化為實現(xiàn)一個具有跨平臺特性的服務(wù)器端程序,同時對現(xiàn)有的SD卡音樂播放系統(tǒng)進行擴展,增加UDP網(wǎng)絡(luò)協(xié)議支持,并實現(xiàn)與服務(wù)器端通信報文的發(fā)送與解析工作。
系統(tǒng)簡要的工作過程為:首先在服務(wù)器端,建立一個音頻庫,該音頻庫將與終端中存在的音頻文件同步。然后,建立一周的音頻播放方案指明學(xué)校中上下課的時間。服務(wù)器程序?qū)⒏鶕?jù)選用的播放方案按照設(shè)定的時間發(fā)送廣播命令報文至終端。當(dāng)終端接收到命令后,將檢測命令中指定的歌曲是否在SD卡中,如果存在則播放對應(yīng)的歌曲。
2 服務(wù)器程序設(shè)計
為了在PC機上構(gòu)建一個管理系統(tǒng),選擇了具有跨平臺的Qt技術(shù)。Qt是一個跨平臺的應(yīng)用和UI框架,開發(fā)者使用C++或者UML(Unified Modeling Language)進行開發(fā)。本服務(wù)器程序的主界面如圖2所示。
如圖2所示,服務(wù)器程序主界面中包含了當(dāng)前的系統(tǒng)時間、在線終端數(shù)信息、應(yīng)用方案中本日的作息安排情況。系統(tǒng)中的兩個管理按鈕用于媒體管理和作息管理。在媒體管理中可以管理目前系統(tǒng)SD卡中的歌曲英文縮寫及對應(yīng)的描述信息。在作息管理中可以創(chuàng)建和管理播放方案。
本系統(tǒng)依照方案對作息進行管理,可根據(jù)需要靈活切換當(dāng)前選擇的播放方案。對于每個方案,可設(shè)置星期一到星期日的播放列表。
考慮到本系統(tǒng)中存儲的信息不會太龐大,所以采用了輕量級的Sqlite數(shù)據(jù)庫對方案信息和媒體信息及終端信息進行存儲。
fpga相關(guān)文章:fpga是什么
c++相關(guān)文章:c++教程
評論