基于ADSL的視頻傳輸系統(tǒng)
引言
本文引用地址:http://m.butianyuan.cn/article/20801.htm信息技術(shù)的不斷發(fā)展使得人們不再滿足于文字、語(yǔ)音等通信手段,融合文字、語(yǔ)音、圖片、視頻等媒介的多媒體通信應(yīng)運(yùn)而生,適應(yīng)了當(dāng)前人們的通信需求。而目前adsl接入網(wǎng)技術(shù)已經(jīng)成熟,并得到了廣泛的應(yīng)用,隨之成為人們相互交流、獲取各種信息的有效途徑。adsl接入網(wǎng)帶寬大,為實(shí)時(shí)可靠地傳輸視頻提供了很好的硬件基礎(chǔ)。因此在adsl網(wǎng)絡(luò)上的視頻傳輸成為了一個(gè)迫切需要解決的難點(diǎn)。
本文討論基于ip2022的adsl接入網(wǎng)視頻傳輸系統(tǒng)。將本地的視頻圖像傳送到internet上,使連接到internet的遠(yuǎn)程主機(jī)可以隨時(shí)隨地地瀏覽本地視頻。我們按照mpeg-4視頻壓縮標(biāo)準(zhǔn),在dsp芯片上實(shí)現(xiàn)高效視頻壓縮處理;根據(jù)pppoe、ppp、tcp/ip等協(xié)議,使用ip2022網(wǎng)絡(luò)處理芯片,提出了通過(guò)adsl網(wǎng)絡(luò)傳輸視頻的完整解決方案,并對(duì)系統(tǒng)的硬件接口以及軟件設(shè)計(jì)做了詳細(xì)的描述,經(jīng)實(shí)際測(cè)試,此系統(tǒng)實(shí)用性強(qiáng),將在網(wǎng)絡(luò)視頻會(huì)議、小區(qū)家居智能化以及安防監(jiān)控等領(lǐng)域具有非常好的應(yīng)用前景。
系統(tǒng)模型
圖1是本文討論的系統(tǒng)模型。攝像頭獲取的圖像以mpeg-4標(biāo)準(zhǔn)在dsp中進(jìn)行壓縮處理,生成低碼流的視頻數(shù)據(jù),經(jīng)過(guò)ip2022打包處理,由adsl調(diào)制解調(diào)器發(fā)送到internet上。
工作流程可概括如下:
(1)本地pc通過(guò)rs232串口,將用戶名、密碼、遠(yuǎn)程主機(jī)的ip地址及端口等信息寫入ip2022的內(nèi)部flash中保存下來(lái)。
(2) ip2022讀出flash中的數(shù)據(jù),配置相關(guān)的網(wǎng)絡(luò)參數(shù),使用adsl用戶名和密碼按照pppoe協(xié)議進(jìn)行adsl撥號(hào)連接。
(3) 撥號(hào)連接成功后,ip2022通過(guò)spi數(shù)據(jù)接口接收視頻數(shù)據(jù),經(jīng)過(guò)tcp、ip、ppp和pppoe層等各層打包處理后,將數(shù)據(jù)通過(guò)10base-t以太網(wǎng)接口傳送給adsl調(diào)制解調(diào)器,由其發(fā)送到internet上。
(4) 連接到internet的遠(yuǎn)程主機(jī)(視頻接收端),通過(guò)接收軟件可以實(shí)時(shí)瀏覽本地視頻。
系統(tǒng)設(shè)計(jì)
硬件設(shè)計(jì)
ip2022是美國(guó)ubicom推出的一顆功能強(qiáng)大的網(wǎng)絡(luò)通信處理器,處理器速度可達(dá)120~160mips,片上有64k flash、16k sram(program)、4k sram(data)、10位adc。它采用軟件模塊的方式在芯片上實(shí)現(xiàn)多種通信接口,是業(yè)界領(lǐng)先的單芯片網(wǎng)絡(luò)通信處理器,可以實(shí)現(xiàn)802.11b、802.11g、802.11a、bluetooth、homeplug、ethernet、 usb、 mii、 i2c、 spi、gpsi、 uart等協(xié)議,適用于無(wú)線通信和embedded internet的應(yīng)用。ip2022內(nèi)含全雙工硬件串/并(serdes)模塊,能直接與各種常用網(wǎng)絡(luò)接口連接。可實(shí)現(xiàn)片內(nèi)10base-t 以太網(wǎng)( mac 和phy)usb,以及其他各種快速串行協(xié)議。由于其內(nèi)含兩個(gè)serdes部件,能方便地從一種格式轉(zhuǎn)換為另一種格式,所以也能作協(xié)議轉(zhuǎn)換器。ip2022的工作頻率為100mhz,大多數(shù)指令均為單周期執(zhí)行,其吞吐量能滿足各種新型網(wǎng)絡(luò)連通應(yīng)用的要求。ip2022以軟件模塊(ipmodules) 形式實(shí)現(xiàn)外設(shè)通信和控制功能,比傳統(tǒng)硬件具有更大的系統(tǒng)設(shè)計(jì)靈活性,還提供了傳輸控制協(xié)議、網(wǎng)際協(xié)議、網(wǎng)絡(luò)協(xié)議棧,并具有一系列完整的端到端連通方案所必須的附加軟件。
本文所設(shè)計(jì)系統(tǒng)的核心就是ip2022網(wǎng)絡(luò)處理器,基于ip2022的系統(tǒng)原理框圖如圖2所示。在本系統(tǒng)中,使用了ip2022的兩個(gè)ser/des硬件單元、一個(gè)ser/des軟件單元以及tcp/ip協(xié)議棧、ppp協(xié)議棧、uart協(xié)議棧、spi協(xié)議棧等等。其中的一個(gè)ser/des硬件單元配置成spi串口,與dsp視頻處理器連接,接收其發(fā)來(lái)的視頻數(shù)據(jù)。另一個(gè)ser/des硬件單元配置成10base-t以太網(wǎng)口,與adsl調(diào)制解調(diào)器連接,負(fù)責(zé)連接internet并向其發(fā)送從spi口接收到的視頻數(shù)據(jù)。還有一個(gè)ser/des軟件單元經(jīng)過(guò)電平轉(zhuǎn)換電路(max232)轉(zhuǎn)換成標(biāo)準(zhǔn)的rs232接口,與本地的pc機(jī)連接,負(fù)責(zé)配置ip2022網(wǎng)絡(luò)處理器的相關(guān)網(wǎng)絡(luò)參數(shù)。
系統(tǒng)時(shí)鐘模塊為硬件系統(tǒng)提供工作所需要的時(shí)鐘脈沖,這部分比較簡(jiǎn)單,我們選擇4.8mhz的無(wú)源晶振,經(jīng)測(cè)試可保證系統(tǒng)穩(wěn)定工作。
程序的寫入和調(diào)試是通過(guò)在線編程接口實(shí)現(xiàn)的,ip2022支持在線編程和調(diào)試,該部分主要把ip2022的編程接口引出,加以適當(dāng)?shù)母綦x保護(hù),并通過(guò)spi和主機(jī)并口的轉(zhuǎn)換電路與調(diào)試主機(jī)的并口相連接。
在本系統(tǒng)中,內(nèi)部電壓有兩種,一種是接口設(shè)備所需要的3.3v,另一種是ip2022內(nèi)核所需要的2.5v。這兩種電壓是經(jīng)過(guò)電源轉(zhuǎn)換模塊轉(zhuǎn)換而成。
dsp視頻處理器主要負(fù)責(zé)采集攝像頭獲取的圖像,并對(duì)其進(jìn)行壓縮編碼,得到低碼率的視頻數(shù)據(jù),通過(guò)內(nèi)部的主spi接口模塊把視頻數(shù)據(jù)發(fā)送給ip2022網(wǎng)絡(luò)處理器。
軟件設(shè)計(jì)
軟件設(shè)計(jì)的主要任務(wù)是按照pppoe協(xié)議、ppp協(xié)議、tcp/ip協(xié)議實(shí)現(xiàn)adsl網(wǎng)絡(luò)接入,包含有本地rs232串口配置、撥號(hào)連接、spi口數(shù)據(jù)接收處理、tcp層數(shù)據(jù)傳輸?shù)人膫€(gè)部分。首先對(duì)所使用的相關(guān)協(xié)議作一簡(jiǎn)單介紹,然后分別詳細(xì)闡述軟件四個(gè)組成部分的功能及實(shí)現(xiàn)。
涉及協(xié)議介紹
adsl(asymmetrical digital subscriber line,非對(duì)稱數(shù)字用戶環(huán)路)是一種能夠通過(guò)普通電話線提供寬帶數(shù)據(jù)業(yè)務(wù)的技術(shù),是目前極具發(fā)展前景的一種接入技術(shù)。adsl接入技術(shù)中,核心的是pppoe協(xié)議。
pppoe(point to point protocol over ethernet)是以太網(wǎng)上傳送ppp數(shù)據(jù)包的協(xié)議,它提供了在廣播式的網(wǎng)絡(luò)(如以太網(wǎng))中多臺(tái)主機(jī)連接到遠(yuǎn)端的訪問(wèn)集中器(我們對(duì)目前能完成上述功能的設(shè)備為寬帶接入服務(wù)器)上的一種標(biāo)準(zhǔn)。pppoe協(xié)議共包括兩個(gè)階段,即pppoe的發(fā)現(xiàn)階段(pppoe discovery stage)和pppoe的會(huì)話階段(pppoe session stage)。在發(fā)現(xiàn)(discovery)過(guò)程中,用戶主機(jī)以廣播方式尋找可以連接的所有的接入集線器,并獲得其以太網(wǎng)mac地址。然后選擇需要連接的主機(jī)并確定所要建立的ppp會(huì)話識(shí)別標(biāo)號(hào)。在會(huì)話階段,用戶主機(jī)與接入集線器根據(jù)在發(fā)現(xiàn)階段所協(xié)商的ppp會(huì)話連接參數(shù)進(jìn)行ppp會(huì)話。依次進(jìn)行ppp層的lcp包的配置、pap包的配置、ipcp包的配置,在協(xié)商好ppp協(xié)議的各選項(xiàng)之后,就可以進(jìn)行ip數(shù)據(jù)包傳輸了。為保證視頻傳輸?shù)母呖煽啃?,我們采用tcp/ip協(xié)議傳輸視頻數(shù)據(jù)。
系統(tǒng)軟件的四個(gè)重要組成模塊
(1)本地串口配置軟件模塊
接收pc機(jī)通過(guò)rs232串口發(fā)送的數(shù)據(jù),這些數(shù)據(jù)包括ip2022網(wǎng)絡(luò)處理器的mac地址、ip地址、子網(wǎng)掩碼等網(wǎng)絡(luò)參數(shù),還包括需要連接的遠(yuǎn)程主機(jī)的ip地址、端口號(hào)等信息,同時(shí)還有adsl撥號(hào)上網(wǎng)的用戶名及密碼等數(shù)據(jù);接收正確后,ip2022將這些數(shù)據(jù)存儲(chǔ)在它內(nèi)部的flash中,便于掉電或系統(tǒng)重啟后能按原有的配置模式正常工作。
(2)撥號(hào)連接軟件模塊
按照pppoe協(xié)議,初始化ip2022網(wǎng)絡(luò)處理器的網(wǎng)絡(luò)設(shè)置,選擇ppp協(xié)議的各項(xiàng)參數(shù),使用有效的adsl用戶名和密碼連接到internet網(wǎng)絡(luò)上,如果一次未能連接上,則延時(shí)后自動(dòng)重連,直到連上為止;若由于網(wǎng)絡(luò)擁塞或遠(yuǎn)程主機(jī)故障導(dǎo)致網(wǎng)絡(luò)連接斷開(kāi),則需要延時(shí)后繼續(xù)嘗試連接。此軟件模塊主要就是負(fù)責(zé)建立與internet之間的連接鏈路。
(3)spi數(shù)據(jù)接收處理軟件模塊
作為spi從設(shè)備,以中斷方式接收dsp視頻處理器發(fā)送過(guò)來(lái)的視頻數(shù)據(jù),存放在ip2022的內(nèi)部存儲(chǔ)區(qū)內(nèi),當(dāng)一個(gè)數(shù)據(jù)塊接收完成后,再讀出視頻數(shù)據(jù)并發(fā)送到網(wǎng)絡(luò)上。此軟件模塊主要完成與dsp視頻處理器之間的數(shù)據(jù)傳輸,為確保數(shù)據(jù)不丟失,dsp在發(fā)數(shù)據(jù)前先給ip2022發(fā)送請(qǐng)求信號(hào),ip2022開(kāi)辟一定大小的存儲(chǔ)空間成功后,判斷dsp發(fā)來(lái)的請(qǐng)求信號(hào),并反饋一個(gè)確認(rèn)信號(hào),通知dsp可以開(kāi)始發(fā)送數(shù)據(jù)了;而dsp數(shù)據(jù)發(fā)送完成后會(huì)等待ip2022的確認(rèn)接收完成信號(hào)。這樣的交互過(guò)程可以保證數(shù)據(jù)準(zhǔn)確可靠地通過(guò)spi口傳輸。其時(shí)序圖如圖3。
(4)tcp層數(shù)據(jù)傳輸軟件模塊系統(tǒng)撥號(hào)連接到internet之后,根據(jù)遠(yuǎn)程主機(jī)的ip地址和端口號(hào)請(qǐng)求與其建立tcp連接,此過(guò)程包括定義并初始化tcp_socket,發(fā)送建立tcp連接請(qǐng)求,若成功則允許系統(tǒng)將spi口接收到的視頻數(shù)據(jù)發(fā)送到網(wǎng)絡(luò)上,否則釋放tcp_socket占用的內(nèi)存空間并將其刪除,延時(shí)后再次新建tcp_socket并請(qǐng)求建立tcp連接,如此反復(fù)直到tcp連接建立成功。若由于其他原因tcp連接斷開(kāi)了,則此軟件模塊在判斷并確認(rèn)連接斷開(kāi)后,自動(dòng)請(qǐng)求再次建立tcp連接,以確保視頻數(shù)據(jù)不間斷地傳送到遠(yuǎn)程主機(jī)。
系統(tǒng)軟件工作流程如圖4所示。
經(jīng)過(guò)實(shí)際測(cè)試,系統(tǒng)的視頻處理部分能以每秒20幀以上的速度實(shí)時(shí)處理視頻圖像,對(duì)于視頻質(zhì)量的評(píng)測(cè),我們采用foreman序列作為固定的視頻源輸入進(jìn)行相應(yīng)的測(cè)試,圖像質(zhì)量良好,其psnr值平均大于34db以上如圖5所示;系統(tǒng)在512kbps帶寬下實(shí)測(cè)的幀率統(tǒng)計(jì),如圖6所示。
tcp/ip相關(guān)文章:tcp/ip是什么
評(píng)論