基于FPGA和Qt技術的音頻廣播系統
摘要:介紹了一種使用Altera DE2開發板以及Qt技術實現的定時音頻廣播系統。該系統使用C/S架構,使用跨平臺Qt技術在Ubuntu系統平臺下建立起服務器程序,用于管理所有在線的DE2音頻播放終端,使用Sqlite輕量級數據庫進行數據存儲。通過基于Nios II實現的軟核進行外圍設備的管理,并播放位于SD卡中的音頻文件。
本文引用地址:http://cqxgywz.com/article/262225.htm引言
隨著數字和網絡等技術的發展,廣播技術已經呈現出越來越多元化的趨勢,其最主要的趨勢便是從模擬到數字的轉化。從宏觀來說,廣播技術大體上可以分為三類:傳統公共廣播系統,采用的是定壓式線路,傳輸損耗小,負載連接較為方便,但是傳輸的電壓較高,需在揚聲器端加接降壓設備;數字可尋址音頻廣播系統,此類系統采用數字信號進行音頻信號的傳輸,并具有可尋址特性,具有更遠的傳輸距離和可靠性;流媒體(IP)智能廣播系統,其特點是無需另行布線,結合網絡的便利性,系統的擴展性進一步增強,將廣播技術與其他技術進行充分融合,易于構建功能更加完善和易于管理的系統平臺。
目前校園中使用的系統大都還停留在傳統公共廣播系統層次,由于線路老化等原因,如出現故障則不容易維修,而重新布線容易增加成本。基于此,本文提出一種使用FPGA和網絡技術實現的音頻廣播方案,使用現有的網絡線路進行數據的傳輸。因FPGA高度的可編程特性可以將控制電路做得更加集成,易于布設,同時增加了系統的可擴展性。
1 系統概述
本系統主要包括DE2播放終端(以下簡稱終端)以及服務器程序兩部分。服務器程序負責制定并管理播放項列表以及與終端的交互,終端接收服務器發送的命令信息并驅動擴音設備播放所需音頻。系統整體結構如圖1所示。

由圖1可以看到本系統支持多終端的管理,采用SD卡的方式進行音頻廣播是因為相較使用直接的數字編碼在線路傳輸來說,SD卡的方式在需要播放音頻時,只需由服務器發出相應的很短的命令報文至終端,這保證了各個揚聲器播放在時間上的一致性。不會因為系統網絡架構及解碼速度不一致而產生播放進度不同步問題。因系統采用短命令報文形式且需進行廣播傳輸,故系統使用的通信方式為UDP(User Datagram Protocol,用戶數據報)的通信方式。
FPGA的可編程特性決定了其可參考資源很多,首要的參考資源為開發板自帶光盤文件。通過查閱開發板光盤可發現與本項目相關的有兩個資源:SD卡音樂播放系統,網絡測試程序。SD卡音樂播放系統實現了本項目中所需要的SD卡音頻播放功能。網絡測試程序只是通過硬編碼的形式將一個以太網幀通過DM9000A網卡發送出去,沒有實現本系統所需的UDP協議及解析工作。依托于Altera提供的現有平臺,可將系統工作簡化為實現一個具有跨平臺特性的服務器端程序,同時對現有的SD卡音樂播放系統進行擴展,增加UDP網絡協議支持,并實現與服務器端通信報文的發送與解析工作。
系統簡要的工作過程為:首先在服務器端,建立一個音頻庫,該音頻庫將與終端中存在的音頻文件同步。然后,建立一周的音頻播放方案指明學校中上下課的時間。服務器程序將根據選用的播放方案按照設定的時間發送廣播命令報文至終端。當終端接收到命令后,將檢測命令中指定的歌曲是否在SD卡中,如果存在則播放對應的歌曲。
2 服務器程序設計
為了在PC機上構建一個管理系統,選擇了具有跨平臺的Qt技術。Qt是一個跨平臺的應用和UI框架,開發者使用C++或者UML(Unified Modeling Language)進行開發。本服務器程序的主界面如圖2所示。

如圖2所示,服務器程序主界面中包含了當前的系統時間、在線終端數信息、應用方案中本日的作息安排情況。系統中的兩個管理按鈕用于媒體管理和作息管理。在媒體管理中可以管理目前系統SD卡中的歌曲英文縮寫及對應的描述信息。在作息管理中可以創建和管理播放方案。
本系統依照方案對作息進行管理,可根據需要靈活切換當前選擇的播放方案。對于每個方案,可設置星期一到星期日的播放列表。
考慮到本系統中存儲的信息不會太龐大,所以采用了輕量級的Sqlite數據庫對方案信息和媒體信息及終端信息進行存儲。
fpga相關文章:fpga是什么
c++相關文章:c++教程














評論