嵌入式以太網(wǎng)數(shù)字語(yǔ)音廣播系統(tǒng)技術(shù)設(shè)計(jì)
本文引用地址:http://butianyuan.cn/article/151868.htm
語(yǔ)音數(shù)據(jù)的接收存儲(chǔ)采用循環(huán)隊(duì)列的方式,由于UDP數(shù)據(jù)傳輸?shù)臒o(wú)序性,在語(yǔ)音數(shù)據(jù)接收端接收到語(yǔ)音數(shù)據(jù)以后需要對(duì)語(yǔ)音數(shù)據(jù)包進(jìn)行排序,以保證對(duì)語(yǔ)音數(shù)據(jù)的順序處理,還原出正確的語(yǔ)音信號(hào)。同時(shí)為了避免網(wǎng)絡(luò)抖動(dòng),每次在循環(huán)隊(duì)列中包含至少5個(gè)數(shù)據(jù)包的時(shí)候才對(duì)數(shù)據(jù)進(jìn)行處理。
設(shè)計(jì)中MS6336的數(shù)據(jù)輸入格式采用I2S格式,由于LM3S8962不支持該數(shù)據(jù)格式,所以通過(guò)GPIO口采用軟件模擬實(shí)現(xiàn)I2S功能。為了完整還原出語(yǔ)音信號(hào),需要保證I2S信號(hào)時(shí)序嚴(yán)格精確,高低電平的轉(zhuǎn)換采用延時(shí)程序?qū)崿F(xiàn),I2S時(shí)序圖如圖5所示。
廣播系統(tǒng)播放終端時(shí)鐘頻率為40 MHz,由采樣率計(jì)算可得每發(fā)送一個(gè)數(shù)據(jù)位的時(shí)間為600 ns。LM3S8962給MS6336提供語(yǔ)音數(shù)據(jù),按照采樣點(diǎn)通過(guò)GPIO口實(shí)現(xiàn)串行傳輸。每個(gè)采樣點(diǎn)包含四個(gè)字節(jié),一個(gè)采樣點(diǎn)數(shù)據(jù)發(fā)送流程如圖6所示。
4 結(jié)果分析
該系統(tǒng)通過(guò)以太網(wǎng)傳輸?shù)恼Z(yǔ)音數(shù)據(jù)包大小為1024B,為了避免網(wǎng)絡(luò)抖動(dòng),終端在收到5個(gè)數(shù)據(jù)包的時(shí)候開(kāi)始廣播,廣播延時(shí)時(shí)間為30 ms左右,滿足功能指標(biāo)。服務(wù)器端可以同時(shí)控制10個(gè)播放終端的工作,通過(guò)在服務(wù)器端選定相應(yīng)終端的編號(hào),可以成功實(shí)現(xiàn)廣播系統(tǒng)的全區(qū)廣播和局域廣播功能。
5 結(jié)語(yǔ)
這里從實(shí)際需求出發(fā),設(shè)計(jì)實(shí)現(xiàn)一個(gè)以太網(wǎng)數(shù)字語(yǔ)音廣播系統(tǒng),實(shí)驗(yàn)結(jié)果表明由系統(tǒng)播放終端決定是否進(jìn)行語(yǔ)音廣播來(lái)實(shí)現(xiàn)區(qū)域廣播是一種簡(jiǎn)單有效的實(shí)現(xiàn)語(yǔ)音信號(hào)全局廣播和區(qū)域廣播的方法。系統(tǒng)播放終端采 用GPIO口軟件模擬實(shí)現(xiàn)了I2S功能,能夠精確地實(shí)現(xiàn)I2S時(shí)序,完成語(yǔ)音信號(hào)的數(shù)據(jù)傳輸,實(shí)現(xiàn)語(yǔ)音信號(hào)的實(shí)時(shí)廣播。該設(shè)計(jì)結(jié)構(gòu)合理,并且能夠方便地實(shí)現(xiàn)功能擴(kuò)充,如定時(shí)播音、音樂(lè)播放、遠(yuǎn)程管理、實(shí)時(shí)監(jiān)控等。該設(shè)計(jì)具有重要的現(xiàn)實(shí)意義,為解決大型復(fù)雜的以太網(wǎng)廣播系統(tǒng)提供了基礎(chǔ)。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評(píng)論