嵌入式以太網(wǎng)數(shù)字語音廣播系統(tǒng)的設計與實現(xiàn)

相關專題: 芯片

以太網(wǎng)數(shù)字語音廣播系統(tǒng)主要是指以以太網(wǎng)為傳播介質提供音頻服務的廣播系統(tǒng),可以很好地利用以太網(wǎng)解決語音信號遠距離傳輸難題。允許設計者創(chuàng)建大型網(wǎng)絡結構來實現(xiàn)數(shù)以千路的數(shù)字語音信號在以太網(wǎng)上傳輸,充分利用了現(xiàn)有網(wǎng)絡資源,避免重復架設線路的麻煩,實現(xiàn)了廣播與計算機網(wǎng)絡的多網(wǎng)合一,徹底解決了傳統(tǒng)廣播系統(tǒng)存在的音質不佳、容易受干擾、維護管理復雜以及互動性差等問題。同時可以實現(xiàn)選擇全部、部分或特定區(qū)域進行定向分組廣播,突破了傳統(tǒng)廣播系統(tǒng)只能對全部區(qū)域進行公共廣播的局限,F(xiàn)有的以太網(wǎng)數(shù)字語音廣播系統(tǒng)在實現(xiàn)區(qū)域廣播功能上大都采用控制信號控制播放終端加入或者離開組播組的方式實現(xiàn),需要在實現(xiàn)廣播之前發(fā)送控制信號使終端加入組播組然后才能實現(xiàn)廣播,或者在服務器端建立一張復雜的映射表來維護播放終端的狀態(tài)以實現(xiàn)區(qū)域廣播,功能實現(xiàn)較為復雜。

在此給出一種嵌入式以太網(wǎng)數(shù)字語音廣播系統(tǒng)解決方案,能夠較簡單地實現(xiàn)廣播系統(tǒng)的區(qū)域廣播功能。該系統(tǒng)基于ARM架構,采用系統(tǒng)播放終端仲裁的方法控制區(qū)域廣播的實現(xiàn),廣播內容能夠同步播放和保存。

1 結構設計

該系統(tǒng)采用C/S結構,由廣播系統(tǒng)服務器端與廣播系統(tǒng)播放終端兩部分組成,如圖1所示。

廣播系統(tǒng)服務器端在PC機上實現(xiàn),是一個由VC++實現(xiàn)的語音信號采集、存儲、網(wǎng)絡傳輸?shù)某绦。該部分通過麥克風對語音信號進行采集存儲,然后將語音數(shù)據(jù)通過UDP的方式傳輸?shù)揭蕴W(wǎng)上,實現(xiàn)語音數(shù)據(jù)的網(wǎng)絡傳輸功能。

廣播系統(tǒng)播放終端為基于LM3S8962的嵌入式終端,實現(xiàn)從以太網(wǎng)上接收發(fā)送給它的IP語音數(shù)據(jù)包,并由音頻解碼芯片MS6336完成語音數(shù)據(jù)的數(shù)/模轉換及播放。

2 廣播系統(tǒng)播放終端硬件設計

廣播系統(tǒng)播放終端主控制芯片采用LuminaryMicro公司所提供的微控制器LM3S8962。該系列芯片是首款基于ARM CortexTM-M3的控制器,內部集成以太網(wǎng)控制器,是業(yè)界首款支持工業(yè)以太網(wǎng)(IEEE)的ARM芯片,可以方便地實現(xiàn)網(wǎng)絡功能。

音頻解碼芯片采用MOSA公司生產(chǎn)的MS6336芯片。該芯片是一款16位立體聲音頻數(shù)字模擬轉換器,支持的數(shù)字輸入格式有Right Justifl-ed,Left Justified,I2S。MS6336控制接口采用I2C總線,接口容易設定。DAC部分具有精確穩(wěn)定的電流量,結合極好的對稱譯碼方式,能夠重現(xiàn)出高質量的音頻信號。

主控制芯片LM3S8962通過磁性元件與RJ45接口相連,用于從以太網(wǎng)上接收語音數(shù)據(jù)。LM3S8962為音頻解碼芯片MS6336提供控制信號和語音數(shù)據(jù)信號。LM3S8962支持I2C功能,PB2和PB3口分別提供了I2C的時鐘和數(shù)據(jù)信號,可以將這兩個引腳和MS6336的I2C功能引腳直接相連,并且需要加上拉電阻。LM3S8962不支持MS6336需要的數(shù)據(jù)輸入格式,系統(tǒng)中MS6336的數(shù)據(jù)輸入格式采用I2S,所以要給MS6336提供語音數(shù)據(jù),需要采用LM3S8962的GPIO口軟件模擬實現(xiàn)MS6336需要的I2S數(shù)據(jù)輸入格式。在設計中采用PA5,PA6,PA7口來模擬實現(xiàn)該功能。三個引腳分別對應I2S的聲道選擇信號、時鐘信號和數(shù)據(jù)信號,將這三個引腳和MS6336的I2S功能引腳相連。

以太網(wǎng)數(shù)字語音廣播系統(tǒng)播放終端硬件結構如圖2所示。

3 廣播系統(tǒng)軟件設計

廣播系統(tǒng)軟件分為廣播系統(tǒng)服務器端軟件和播放終端軟件兩部分。

該設計實現(xiàn)語音數(shù)據(jù)的實時播放,所以要求語音數(shù)據(jù)傳輸?shù)膶崟r性得到保障,而對于數(shù)據(jù)的完整性要求不是太嚴格,少量的丟包也不會影響整體的播放效果,所以該系統(tǒng)的語音數(shù)據(jù)傳輸采用UDP傳輸方式,同時本系統(tǒng)工作在局域網(wǎng)內,臨時用戶較少,故采用IP地址靜態(tài)分配,簡化播放終端軟件部分的實現(xiàn)。

3.1 廣播系統(tǒng)服務器端語音數(shù)據(jù)的采集、存儲與發(fā)送

語音數(shù)據(jù)的采集利用低層WAVE音頻API函數(shù)實現(xiàn),為了不造成語音數(shù)據(jù)的丟失,該設計利用雙緩沖來存儲語音數(shù)據(jù),實現(xiàn)流程如圖3所示。

當一個錄音緩沖區(qū)滿時,系統(tǒng)立刻將另一個錄音緩沖區(qū)發(fā)送給錄音設備繼續(xù)錄音,而應用程序此時要讀取已經(jīng)錄音滿的緩沖區(qū)中的數(shù)據(jù),并進行處理。然后調用waveInAddBuffer函數(shù)將該緩沖區(qū)重新賦給錄音設備,循環(huán)利用。

為了防止錄音過程中語音數(shù)據(jù)的丟失,只是簡單地利用雙緩沖是不夠的,還要注意的一點是,當一個緩沖區(qū)錄音滿以后,應用程序對該緩沖區(qū)的數(shù)據(jù)進行處理,同時第二個緩沖區(qū)用于錄音,數(shù)據(jù)處理的時間一定要小于第二個緩沖區(qū)錄音滿需要的時間,否則在第二個緩沖區(qū)錄音滿以后第一個緩沖區(qū)還沒有重新賦給錄音設備,就會造成語音數(shù)據(jù)的丟失。當語音信號采樣率大的時候適當增加緩沖區(qū)的大小,可以有效地解決這個問題。

為了將廣播的內容進行保存以備后需,需要將廣播內容保存在一個WAV文件中。WAV文件具有固定的頭格式,在保存語音數(shù)據(jù)之前,需要先將WAV文件的頭部設定好,否則保存的WAV文件無法播放。在每一次錄音緩沖區(qū)滿時,首先找到WAV文件的結尾處,然后將采集到的數(shù)據(jù)依次寫在文件尾部。當整個廣播過程結束時,所有的語音數(shù)據(jù)都被保存在了WAV文件中,實現(xiàn)了語音數(shù)據(jù)的存儲。

當一個錄音緩沖區(qū)滿后,這時就需要將已經(jīng)采集到的語音數(shù)據(jù)通過網(wǎng)絡發(fā)送出去。在設計中首先利用Csocket類創(chuàng)建一個套接字,接下來只需要將采集到的數(shù)據(jù)封裝成IP包發(fā)送出去。該設計中語音信號的采樣率為44.1 kHz,16位雙聲道。為了避免語音數(shù)據(jù)丟失,錄音緩沖區(qū)的大小設定為1024B。

 

作者:閆紅超 茍先太   來源:現(xiàn)代電子技術
微信掃描分享本文到朋友圈
掃碼關注5G通信官方公眾號,免費領取以下5G精品資料
  • 1、回復“YD5GAI”免費領取《中國移動:5G網(wǎng)絡AI應用典型場景技術解決方案白皮書
  • 2、回復“5G6G”免費領取《5G_6G毫米波測試技術白皮書-2022_03-21
  • 3、回復“YD6G”免費領取《中國移動:6G至簡無線接入網(wǎng)白皮書
  • 4、回復“LTBPS”免費領取《《中國聯(lián)通5G終端白皮書》
  • 5、回復“ZGDX”免費領取《中國電信5GNTN技術白皮書
  • 6、回復“TXSB”免費領取《通信設備安裝工程施工工藝圖解
  • 7、回復“YDSL”免費領取《中國移動算力并網(wǎng)白皮書
  • 8、回復“5GX3”免費領取《R1623501-g605G的系統(tǒng)架構1
  • 本周熱點本月熱點

     

      最熱通信招聘

      最新招聘信息