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