<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于嵌入式的以太網(wǎng)數(shù)字語音廣播系統(tǒng)設(shè)計

          基于嵌入式的以太網(wǎng)數(shù)字語音廣播系統(tǒng)設(shè)計

          作者: 時間:2012-02-29 來源:網(wǎng)絡(luò) 收藏

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

          本文引用地址:http://www.ex-cimer.com/article/149545.htm

            中MS6336的數(shù)據(jù)輸入格式采用I2S格式,由于LM3S8962不支持該數(shù)據(jù)格式,所以通過GPIO口采用軟件模擬實現(xiàn)I2S功能。為了完整還原出語音信號,需要保證I2S信號時序嚴格精確,高低電平的轉(zhuǎn)換采用延時程序?qū)崿F(xiàn),I2S時序圖如圖5所示。


            播放終端時鐘頻率為40 MHz,由采樣率計算可得每發(fā)送一個數(shù)據(jù)位的時間為600 ns。LM3S8962給MS6336提供語音數(shù)據(jù),按照采樣點通過GPIO口實現(xiàn)串行傳輸。每個采樣點包含四個字節(jié),一個采樣點數(shù)據(jù)發(fā)送流程如圖6所示。


            4 結(jié)果分析

            該系統(tǒng)通過傳輸?shù)恼Z音數(shù)據(jù)包大小為1024B,為了避免網(wǎng)絡(luò)抖動,終端在收到5個數(shù)據(jù)包的時候開始廣播,廣播延時時間為30 ms左右,滿足功能指標。服務(wù)器端可以同時控制10個播放終端的工作,通過在服務(wù)器端選定相應(yīng)終端的編號,可以成功實現(xiàn)的全區(qū)廣播和局域廣播功能。

            5 結(jié)語

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

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

          上一頁 1 2 3 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();