<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 嵌入式以太網(wǎng)數字語(yǔ)音廣播系統的設計與實(shí)現

嵌入式以太網(wǎng)數字語(yǔ)音廣播系統的設計與實(shí)現

作者: 時(shí)間:2012-02-17 來(lái)源:網(wǎng)絡(luò ) 收藏

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

本文引用地址:http://dyxdggzs.com/article/149643.htm

在此給出一種以太網(wǎng)數字語(yǔ)音廣播系統解決方案,能夠較簡(jiǎn)單地實(shí)現廣播系統的區域廣播功能。該系統基于A(yíng)RM架構,采用系統播放終端仲裁的方法控制區域廣播的實(shí)現,廣播內容能夠同步播放和保存。

1 結構

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

廣播系統服務(wù)器端在PC機上實(shí)現,是一個(gè)由VC++實(shí)現的語(yǔ)音信號采集、存儲、網(wǎng)絡(luò )傳輸的程序。該部分通過(guò)麥克風(fēng)對語(yǔ)音信號進(jìn)行采集存儲,然后將語(yǔ)音數據通過(guò)UDP的方式傳輸到以太網(wǎng)上,實(shí)現語(yǔ)音數據的網(wǎng)絡(luò )傳輸功能。

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

2 廣播系統播放終端硬件

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

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

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

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

3 廣播系統軟件設計

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

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

3.1 廣播系統服務(wù)器端語(yǔ)音數據的采集、存儲與發(fā)送

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

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

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

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

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

3.2 區域廣播的實(shí)現

以太網(wǎng)數字語(yǔ)音廣播系統的一個(gè)重要應用就是不僅可以實(shí)現全區廣播,同時(shí)可以實(shí)現局域廣播功能,即對指定的終端進(jìn)行廣播。因此,在語(yǔ)音IP數據包的網(wǎng)絡(luò )傳輸中采用UDP組播包的形式進(jìn)行數據傳輸。采用組播包傳輸數據,在局域網(wǎng)內所有包含在該組中的終端都可以接收到數據,實(shí)現全區廣播。為了實(shí)現局域廣播功能,該設計中在語(yǔ)音數據前面添加了一個(gè)結構體,如下所示,同時(shí)還有一個(gè)配置文件用于存儲系統各終端的IP地址。

  struct STRING

  {String IPNO1;

  String IPNO2;

  …

  String IPNO9;

  String IPNO10};

當需要對某幾個(gè)終端進(jìn)行區域廣播時(shí),在廣播系統服務(wù)器端的面板上(如圖4所示)將這幾個(gè)終端對應的編號選上。這時(shí)就將被選中終端的IP地址從配置文件中讀出并賦給該結構體中對應的變量。當終端接收到IP組播包時(shí),首先判斷該結構體是否有和自己的IP地址相同的變量,如果有,則進(jìn)行數據的接收播放,如果沒(méi)有則對數據進(jìn)行丟棄處理,這樣就實(shí)現了區域廣播功能。相對于采用控制信號控制播放終端加入或者離開(kāi)組播組,或者通過(guò)動(dòng)態(tài)維護復雜的映射表以實(shí)現區域廣播功能的方法。該方法不需要在每次廣播之前對播放終端進(jìn)行交互控制,也不需要動(dòng)態(tài)跟蹤終端狀態(tài),只需要在終端第一次加入系統時(shí)將終端對應的IP地址寫(xiě)入配置文件即可,功能實(shí)現簡(jiǎn)單。

3.3 廣播系統播放終端軟件的實(shí)現

廣播系統播放終端分為兩個(gè)部分來(lái)實(shí)現,音頻數據接收部分用于接收語(yǔ)音數據并進(jìn)行存儲轉發(fā),音頻解碼器實(shí)現語(yǔ)音信號的D/A轉換并播放。音頻數據接收部分采用Socket編程實(shí)現從以太網(wǎng)上接收語(yǔ)音數據,在接收到語(yǔ)音數據包以后,首先要對數據包進(jìn)行判斷,是否是發(fā)給自己的數據包。終端通過(guò)將IP包中結構體struct STRING的成員變量與自己的IP地址進(jìn)行比較,如果有成員變量和自己的IP地址相等,則存儲該數據包中的數據,否則丟棄。

語(yǔ)音數據的接收存儲采用循環(huán)隊列的方式,由于UDP數據傳輸的無(wú)序性,在語(yǔ)音數據接收端接收到語(yǔ)音數據以后需要對語(yǔ)音數據包進(jìn)行排序,以保證對語(yǔ)音數據的順序處理,還原出正確的語(yǔ)音信號。同時(shí)為了避免網(wǎng)絡(luò )抖動(dòng),每次在循環(huán)隊列中包含至少5個(gè)數據包的時(shí)候才對數據進(jìn)行處理。

設計中MS6336的數據輸入格式采用I2S格式,由于LM3S8962不支持該數據格式,所以通過(guò)GPIO口采用軟件模擬實(shí)現I2S功能。為了完整還原出語(yǔ)音信號,需要保證I2S信號時(shí)序嚴格精確,高低電平的轉換采用延時(shí)程序實(shí)現,I2S時(shí)序圖如圖5所示。

廣播系統播放終端時(shí)鐘頻率為40 MHz,由采樣率計算可得每發(fā)送一個(gè)數據位的時(shí)間為600 ns。LM3S8962給MS6336提供語(yǔ)音數據,按照采樣點(diǎn)通過(guò)GPIO口實(shí)現串行傳輸。每個(gè)采樣點(diǎn)包含四個(gè)字節,一個(gè)采樣點(diǎn)數據發(fā)送流程如圖6所示。

4 結果分析

該系統通過(guò)以太網(wǎng)傳輸的語(yǔ)音數據包大小為1024B,為了避免網(wǎng)絡(luò )抖動(dòng),終端在收到5個(gè)數據包的時(shí)候開(kāi)始廣播,廣播延時(shí)時(shí)間為30 ms左右,滿(mǎn)足功能指標。服務(wù)器端可以同時(shí)控制10個(gè)播放終端的工作,通過(guò)在服務(wù)器端選定相應終端的編號,可以成功實(shí)現廣播系統的全區廣播和局域廣播功能。

5 結語(yǔ)

這里從實(shí)際需求出發(fā),設計實(shí)現一個(gè)以太網(wǎng)數字語(yǔ)音廣播系統,實(shí)驗結果表明由系統播放終端決定是否進(jìn)行語(yǔ)音廣播來(lái)實(shí)現區域廣播是一種簡(jiǎn)單有效的實(shí)現語(yǔ)音信號全局廣播和區域廣播的方法。系統播放終端采 用GPIO口軟件模擬實(shí)現了I2S功能,能夠精確地實(shí)現I2S時(shí)序,完成語(yǔ)音信號的數據傳輸,實(shí)現語(yǔ)音信號的實(shí)時(shí)廣播。該設計結構合理,并且能夠方便地實(shí)現功能擴充,如定時(shí)播音、音樂(lè )播放、遠程管理、實(shí)時(shí)監控等。該設計具有重要的現實(shí)意義,為解決大型復雜的以太網(wǎng)廣播系統提供了基礎。

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)


評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>