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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于Linux/Qt的智能家居系統(tǒng)設(shè)計(jì)

          基于Linux/Qt的智能家居系統(tǒng)設(shè)計(jì)

          作者: 時(shí)間:2013-02-25 來源:網(wǎng)絡(luò) 收藏

          }

          2.4 音視頻同步傳輸技術(shù)

          i.MX51處理器包含了支持硬件視頻編解碼的VPU單元,并自帶了完整的多媒體解決方案。因此,中采用其自帶的多媒體軟件包進(jìn)行音視頻流的采集和編解碼[2]。

          考慮到小區(qū)內(nèi)可視通話時(shí)因并發(fā)數(shù)過大而可能導(dǎo)致的網(wǎng)絡(luò)擁塞情況,還需要提供一定的QoS機(jī)制來保證在網(wǎng)絡(luò)帶寬較低時(shí)也能達(dá)到音視頻的同步傳輸。本文采用時(shí)間戳的實(shí)時(shí)同步傳輸技術(shù),通過設(shè)置可變大小的緩沖區(qū)機(jī)制,根據(jù)小區(qū)網(wǎng)絡(luò)情況自動調(diào)節(jié)傳輸參數(shù),以音頻質(zhì)量優(yōu)先保證為原則,根據(jù)時(shí)間戳實(shí)時(shí)調(diào)節(jié)視頻數(shù)據(jù)的播放。具體實(shí)現(xiàn)過程如下[3]:

          (1)發(fā)送端采用兩個(gè)獨(dú)立的進(jìn)程分別對音視頻信息進(jìn)行采樣和打包,然后放到各自的緩沖隊(duì)列中等待發(fā)送。

          (2)音視頻數(shù)據(jù)通過同一個(gè)通道發(fā)送到網(wǎng)絡(luò)(采用信號量機(jī)制保證音視頻數(shù)據(jù)對通道的互斥訪問)。

          (3)由于音視頻兩個(gè)數(shù)據(jù)包的長度差別很大,所以將接收端收到的數(shù)據(jù)根據(jù)包的大小進(jìn)行區(qū)分。

          (4)音視頻各自拆包組幀。由于人的聽覺對聲音的不連續(xù)比視覺對圖像的不連續(xù)更敏感,所以采用音頻流作為主流,視頻流作為從流??蛻舳私邮盏揭纛l數(shù)據(jù)包后,不必與視頻數(shù)據(jù)包協(xié)調(diào)就可立即播放,而視頻幀到達(dá)時(shí)則根據(jù)時(shí)間戳進(jìn)行對比,從而進(jìn)行相應(yīng)的同步處理。

          (5)為保證音視頻的實(shí)時(shí)同步,采用多線程分別對音頻和視頻進(jìn)行播放。

          3 i.MX51平臺移植

          3.1 搭建LTIB開發(fā)環(huán)境

          LTIB(Linux Target Image Builder)是飛思卡爾公司開發(fā)的一個(gè)用于部署B(yǎng)SP的工具,含有U-Boot等引導(dǎo)加載程序,支持Bootloader和內(nèi)核映像的構(gòu)建。利用該工具,可以定制出符合GNU/Linux標(biāo)準(zhǔn)的跨平臺的根文件。本選擇使用飛思卡爾公司提供的L2.6.31_10.07.11_ER_source.tar.gz集成源碼包,在一臺安裝了Ubuntu 10.04操作系統(tǒng)的PC機(jī)上配置安裝LTIB[4]。其過程如下:

          (1)解壓縮源碼包,執(zhí)行./install進(jìn)入安裝LTIB的命令提示。

          (2)執(zhí)行./ltib進(jìn)入LTIB的配置界面。

          (3)在LTIB配置Platform時(shí)選擇i.MX51平臺。

          (4)配置Kernel時(shí)選擇CLAA WVGA Panel(LCD觸摸屏驅(qū)動)和SoC Audio support for IMX - SGTL5000(聲卡驅(qū)動),其他保持默認(rèn)。

          (5)將交叉編譯工具arm-none-linux-gnueabi-gcc加入PATH環(huán)境變量,在ltib根目錄執(zhí)行下述命令,交叉編譯Qt庫:

          ./ltib -m prep -p qt-embedded.spec

          ./ltib -m scbuild -p qt-embedded.spec

          (6)執(zhí)行make install,在ltib下的rootfs目錄就會生成相應(yīng)的U-Boot、內(nèi)核和文件系統(tǒng),將將其復(fù)制到目標(biāo)板的TF卡上。

          3.2 架設(shè)NFS文件系統(tǒng)

          為了簡化調(diào)試過程和縮短開發(fā)周期,在Linux主機(jī)上建立了NFS網(wǎng)絡(luò)文件系統(tǒng),這樣就實(shí)現(xiàn)了宿主機(jī)與目標(biāo)板的文件共享。開發(fā)過程簡化為:Linux主機(jī)編譯生成目標(biāo)平臺的可執(zhí)行文件→復(fù)制文件到NFS共享目錄→目標(biāo)板運(yùn)行程序,從而省去了重復(fù)制作鏡像、下載鏡像、重啟開發(fā)板等步驟,節(jié)省了大量的開發(fā)時(shí)間。目標(biāo)板的NFS啟動信息如圖3所示。

          4 系統(tǒng)測試及結(jié)果

          4.1 并發(fā)測試

          并發(fā)測試主要用來測試多個(gè)用戶同時(shí)訪問同一個(gè)應(yīng)用程序、同一個(gè)數(shù)據(jù)記錄時(shí)是否存在死鎖或其他問題。由于本系統(tǒng)是面向一個(gè)小區(qū)的住戶,因此系統(tǒng)的并發(fā)測試尤為重要。

          數(shù)據(jù)庫并發(fā)測試:室內(nèi)機(jī)開啟多個(gè)線程同時(shí)訪問中心機(jī)服務(wù)器,界面并不會因大量的數(shù)據(jù)操作而出現(xiàn)“凍結(jié)”現(xiàn)象,CPU占用穩(wěn)定,數(shù)據(jù)庫返回結(jié)果顯示正常。

          信息發(fā)布測試:中心機(jī)開啟多個(gè)線程同時(shí)發(fā)送廣播信息,各室內(nèi)機(jī)接收正常,不會出現(xiàn)顯示錯誤或“丟包”現(xiàn)象。

          4.2 跨網(wǎng)段測試

          考慮到小區(qū)用戶一般在幾百甚至上千,一個(gè)網(wǎng)段的IP地址不能滿足需求。為了檢測在不同網(wǎng)段下通信模塊能否正常工作,使用一臺華為S5300交換機(jī)(switch)和兩臺華為5200交換機(jī)搭建了一個(gè)小型的網(wǎng)絡(luò)環(huán)境進(jìn)行相關(guān)測試。如圖4所示,測試采用IPv4靜態(tài)路由,使不同網(wǎng)段的任意兩臺室內(nèi)機(jī)之間能夠互通。測試表明,分屬不同網(wǎng)段的室內(nèi)機(jī)之間,可視通話、信息互發(fā)等模塊均正常工作,從而驗(yàn)證了本方案的可行性。

          4.3 可視對講性能測試

          可視對講性能測試主要是檢測室內(nèi)機(jī)終端中音視頻的采集、編解碼、收發(fā)和顯示。對于音視頻的采集、收發(fā)和顯示,可通過揚(yáng)聲器和LCD顯示直觀地檢測。而對編解碼的測試則比較復(fù)雜,本是從最長時(shí)間、最短時(shí)間和平均時(shí)間三個(gè)方面來測試編解碼一幀音視頻所需要消耗的時(shí)間。i.MX51平臺上音視頻編解碼的性能測試如表1所示。

          由表1可以看出,i.MX51平臺上能夠?qū)崟r(shí)地完成音頻和視頻通信,且音頻清晰、視頻流暢、失真度小,達(dá)到了可視對講對音視頻編解碼器的實(shí)時(shí)性要求。

          本文采用Linux和Qt相關(guān)技術(shù),在飛思卡爾公司i.MX51平臺上設(shè)計(jì)了一種多功能的控制系統(tǒng),實(shí)現(xiàn)了客戶端與服務(wù)器的Socke通信和音視頻同步傳輸?shù)群诵墓δ?。下一步還需要擴(kuò)展家電控制、安防控制等功能。

          繼續(xù)閱讀

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

          上一頁 1 2 下一頁

          評論


          相關(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); })();